曾慶湖 陳新儒



摘要:隨著西江內河河道漂浮物污染問題日益引起人們的重視,智能漂浮物檢測也成為西江內河流域治理的重要研究內容之一。針對人工巡檢西江內河河道效率偏低和花銷大的問題,文章提出了基于微服務技術設計的西江河道漂浮物智能檢測系統。該系統采用SpringBoot Alibaba技術構建,使用YOLOv5算法對漂浮物進行識別。系統根據業務需求設計微服務,能夠實時觀察河道情況,并及時發現異常情況,從而降低人工定點巡視的次數。
關鍵詞:漂浮物檢測;生態環境;微服務架構
中圖分類號:TP391 文獻標識碼:A
文章編號:1009-3044(2024)14-0046-03 開放科學(資源服務)標識碼(OSID) :
1 漂浮物檢測研究背景和現狀
1.1 研究背景
經濟的繁榮通常伴隨著大規模的城市化,但也影響了發展地區的生態環境。西江部分內河河道中遍布的漂浮物已經威脅到了水生生物的棲息環境,也對西江內河河道航運的發展產生了不利影響。西江作為一個重要的水域資源,其環境治理工作尤為重要,這些工作需要多個部門的協調配合,要有科學的方略,按時踐行。只有做好西江流域環境保護工作,才能夠實現西江內河河道環境的持久改善,確保西江流域經濟的可持續發展。
1.2 研究現狀
當前,國內外學者在水面漂浮物檢測領域已有一定的研究。例如,ZHANG等[1]針對早期的水面物體檢測方法存在魯棒性差和檢測效果容易受到背景影響的問題,提出了一種基于改進的RefineDet模型的表面漂浮物體實時檢測方法,能有效實現較高精度和實時檢測。LIN F等[2]提出了一種FMA-YOLOv5s算法,通過在主干網絡的底端添加FMA層,進而達到航道漂浮物實時監測的效果。國內學者李寧等[3]提出了一種水面漂浮物識別方法,該方法比基于傳統的HOG特征提取方法,能夠卓有成效地提高漂浮物識別率。陳任飛等[4]則通過改進SSD算法實現了水面漂浮物檢測。SUN H等[5]基于MobileNet V2網絡模型提出一種水面漂浮物檢測方法,該方法與現有圖像識別方法相比,能夠減少模型參數量,并實現高效率檢測。唐小敏[6]提出了基于SSD神經網絡的識別方法,并基于該方法設計了基于安卓端的檢測系統。
雖然眾多學者在河道漂浮物研究領域投入了大量精力,但仍然存在很多問題需要解決。西江河道漂浮物的運動軌跡會受到多種外因的影響,包括水流速度、水深、漂浮物形狀和重量等,這些因素都會對漂浮物的預測精度造成不同程度的影響。研究智能漂浮物檢測能夠有效減少多種因素對識別結果的影響,提高檢測效率,因此研究西江河道漂浮物智能檢測系統具有重要意義。
2 需求分析
2.1 業務需求分析
系統主要包括圖片推理微服務、攝像推理微服務、統計微服務和日志微服務,其中不同的推理微服務所用的業務處理流程不同。為了能夠讓市民也參與西江環境保護工作,系統還設有投訴模塊的微服務。一旦市民拍照或拍視頻上傳,并填寫好相關表單,系統將通過自動識別并將推理結果推送至生態環境局工作人員,幫助工作人員快速處理。
2.2 用戶和安全性分析
系統的用戶分別為生態環境局工作人員和市民,其中市民通過小程序端進行訪問,而生態環境局工作人員則在后臺管理端進行處理。不同用戶擁有不同的權限,系統能夠自動鑒別不同用戶,并根據用戶身份展示不同的界面。
3 系統總體設計
3.1 系統架構設計
系統架構圖如圖1所示,分為訪問層、接口層、業務服務層和存儲層。
3.1.1 訪問層
用戶在PC端或者Mobile端接入系統,并向系統發送推理和識別漂浮物服務的請求。通過負載均衡方法處理請求后,向各個微服務發送,最后將處理結果渲染在前端界面。
3.1.2 接口層
接口層主要用于處理用戶請求,并轉發至各個微服務。通過Ribbon和Feign的使用,能夠有效處理并發的請求,從而提高系統的處理能力和性能,并能有效地降低服務器的壓力,降低出現故障的概率。
3.1.3 業務服務層
在業務服務層,在前期系統規劃中,按照業務邏輯將系統分成多個獨立的微服務模塊。采用Nacos組件管理各個微服務,降低系統管理開支;采用Gateway 組件為微服務提供路由和監控等服務;而Feign作為聲明式的客戶端,使得調用各個微服務成本降低,減低系統的響應時間;消息管理則采用RabbitMQ中間件,為各個微服務提供異步的消息服務支持。
3.1.4 存儲層
存儲層采用關系型數據庫和非關系型數據庫。每個微服務都有自己的本地數據,采用KingBase 存儲,保證了數據的獨立性和隔離性。Redis非關系型數據庫作為緩存中間件使用,能夠降低查詢壓力,減低查詢的等待時間。
3.2 數據庫設計
系統主要包括了用戶表、圖片檢測表和視頻檢測表等3張數據表。
4 基于微服務架構的西江漂浮物檢測系統的主要實現
4.1 圖片推理微服務
圖像推理微服務模塊主要負責圖片的推理。待測圖像輸入系統后,便進行圖像推理。用戶通過該模塊輸入待識別的西江內河河道漂浮物的航拍圖片,系統會對圖像進行預處理,調整圖像至模型識別的尺寸大小,隨后調用算法識別漂浮物,并在頁面顯示結果如圖2所示。
4.2 攝像頭推理微服務
攝像頭推理微服務模塊負責視頻推理,攝像頭實時拍攝的視頻作為輸入視頻,然后進行推理。通過對RTSP視頻推流進行視頻處理,然后識別漂浮物和實時推理。
4.3 視頻推理微服務
視頻推理微服務模塊負責視頻推理,按照輸入視頻的格式要求輸入視頻,然后進行視頻結果推理,如圖3所示。通過對RTSP視頻推流進行視頻處理,然后識別漂浮物和結果,可以識別出漂浮物類別、地理位置等信息,如圖4所示。
4.4 日志微服務
通過日志微服務,用戶可以方便地查看系統檢測到的漂浮物信息,包括圖像和位置等細節。這種實時的信息展示可以幫助相關用戶更快速地了解西江內河河道中的漂浮物情況,從而提高處理效率。用戶可以根據日志中提供的信息,有針對性地采取措施,例如派遣人員前往特定位置清理漂浮物,或者調整巡航路線等。
4.5 統計微服務
統計微服務主要用于統計各個推理任務的結果,或在攝像頭推理中實時統計,并可視化表現出必要的統計信息。統計微服務可以通過設定時間段,周期性統計并保存西江河道某處出現漂浮物的頻率和種類等信息,并且可以對比各個時間段的信息。統計微服務的統計結果能夠為后期西江河道環境治理提供數據支持,既能夠直觀展現信息,又便于對西江河道環境治理進度進行實時把控。
5 結束語
本文基于微服務架構,設計和實現了西江河道漂浮物檢測系統。在算法方面,采用了基于YOLOv5算法對西江內河河道漂浮物進行檢測,通過YO?LOv5算法快速對西江內河道河漂浮物進行識別和定位;然后對系統的架構和各個模塊做出了詳細的介紹。
參考文獻:
[1] ZHANG L L, WEI Y X, WANG H B, et al.Real-time detection of river surface floating object based on improved RefineDet[J].IEEEAccess,2021(9):81147-81160.
[2] LIN F,HOU T,JIN Q N,et al.Improved YOLO based detection algorithm for floating debris in waterway[J].Entropy,2021,23(9):1111.
[3] 李寧,王雨萱,徐守坤,等.基于AlexNet的小樣本水面漂浮物識別[J].計算機應用與軟件,2019,36(2):245-251.
[4] 陳任飛,彭勇,吳劍,等.基于深度學習的水面漂浮物智能檢測方法[J].工程科學與技術,2023,55(3):165-174.
[5] SUN H X,ZHANG S J,REN R,et al.Maturity classification of “hupingzao” jujubes with an imbalanced dataset based on im?proved MobileNet V2[J].Agriculture,2022,12(9):1305.
[6] 唐小敏.河道漂浮物智能檢測系統研究與開發[D].南昌:南昌航空大學,2020.
【通聯編輯:謝媛媛】
基金項目:梧州市科技計劃項目(項目編號:2022C01002) ;梧州學院大學生創新創業訓練計劃項目(項目編號:S202311354069)