




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
I一種基于YOLOv5模型的船舶進港檢測裝置實現摘要海洋運輸是國際商務的主要手段之一,隨著全球貿易量的增加,海洋運輸對經濟增長至關重要。然而,海上船舶的安全監(jiān)管和管理一直是國際海事組織和各國政府面臨的重大挑戰(zhàn)。由于海域范圍廣闊,對船舶進行實時監(jiān)控和管理要求高度的自動化和智能化技術支持。隨著環(huán)保被重視,對船舶排放物監(jiān)控的要求也在增加。因此,發(fā)展能夠實現海上船舶實時監(jiān)測和分類的高效智能檢測系統顯得十分必要。本項目我專注于解決一個重要的技術挑戰(zhàn):將基于YOLOv5的船舶檢測算法部署到RK3588芯片上,這是一種配備了能夠執(zhí)行人工智能推理任務的NPU的高性能芯片。我的目標是實現一個系統,該系統能夠通過連接的攝像頭實時檢測和識別海上船舶的種類。為了達到這一目標,我首先對YOLOv5模型進行了優(yōu)化,以確保它能夠在RK3588芯片的NPU上高效運行。通過這種方式,我能夠利用芯片的強大計算能力,處理攝像頭捕獲的實時圖像,并準確快速地識別出圖像中的船舶。整個項目的實施證明了RK3588芯片在處理復雜圖像識別任務時的能力,同時也展示了優(yōu)化后的YOLOv5算法在實時船舶檢測和分類方面的有效性。這不僅為海上交通安全和船只管理提供了有力的技術支持,而且也推動了在類似硬件平臺上部署高級人工智能算法的可能性。我的工作不僅展現了在邊緣計算設備上部署復雜人工智能模型的潛力,而且還為海洋監(jiān)控、自動航行等領域的技術進步提供了實證基礎。關鍵詞:YOLOv5,神經處理單元(NPU),船舶檢測ShipTargetDetectionandRecognitionMethodonSeaSurfaceBasedonMulti-LevelHybridNetworkAbstractAsglobaltradevolumecontinuestogrow,maritimetransportation,asoneofthemainmethodsofinternationaltrade,playsavitalroleineconomicdevelopment.However,thesafetysupervisionandmanagementofmaritimevesselshasalwaysbeenamajorchallengefacedbytheInternationalMaritimeOrganizationandvariousgovernments.Duetothevastseaarea,real-timemonitoringandmanagementofshipsrequiresahighdegreeofautomationandintelligenttechnicalsupport.Inaddition,asenvironmentalregulationsbecomeincreasinglystringent,monitoringshipemissionshasbecomeparticularlyimportant.Therefore,itisverynecessarytodevelopanefficientintelligentdetectionsystemthatcanrealizereal-timemonitoringandclassificationofmaritimeships.Inthisproject,Ifocusedonsolvinganimportanttechnicalchallenge:deployingtheYOLOv5-basedshipdetectionalgorithmontotheRK3588chip,ahigh-performancechipequippedwithanNPUcapableofperformingartificialintelligenceinferencetasks.Mygoalistoimplementasystemthatisabletodetectandidentifytypesofshipsatseainrealtimeviaconnectedcameras.Inordertoachievethisgoal,IfirstoptimizedtheYOLOv5modeltoensurethatitcanrunefficientlyontheNPUoftheRK3588chip.Inthisway,Iwasabletousethechip'spowerfulcomputingpowertoprocessreal-timeimagescapturedbythecameraandaccuratelyandquicklyidentifytheshipintheimage.TheimplementationoftheentireprojectprovedtheabilityoftheRK3588chiptohandlecompleximagerecognitiontasks,andalsodemonstratedtheeffectivenessoftheoptimizedYOLOv5algorithminreal-timeshipdetectionandclassification.MyworknotonlydemonstratesthepotentialfordeployingcomplexAImodelsonedgecomputingdevices,butalsoprovidesanempiricalbasisfortechnologicaladvancementsinareassuchasoceanmonitoringandautonomousnavigation.Keywords:YOLOv5,NeuralProcessingUnit(NPU),shipdetection目錄TOC\o"1-3"\u摘要 IAbstract II第1章緒論 11.1論文研究背景和意義 11.2國內外現狀 21.2.1基于機器學習的圖像識別算法 21.2.2基于卷積神經網絡的圖像識別算法 21.2.3船舶識別研究現狀 4第2章關鍵技術介紹 52.1OpenCV 52.1.1簡介 52.2Pytorch 52.2.1主要特點 52.3Yolov5 52.3.1簡介 52.3.2主要特點 52.4NPU 62.4.1簡介 6第3章系統分析 83.1系統需求分析 83.2系統框架 83.3系統流程分析 9第4章系統設計 104.1設計指導思想和原則 104.1.1指導思想 104.1.2軟件設計原則 104.2構架概述 104.2.1硬件層: 104.2.2軟件層: 104.2.3圖像處理與目標檢測層: 104.2.4用戶界面層: 114.2.5系統集成與測試: 114.3人機交互界面設計 114.3.1設計目標和原則 11第5章系統實現 135.1環(huán)境配置 135.1.1Windows操作系統環(huán)境配置 135.1.2電腦中虛擬機Linux操作系統環(huán)境配置 145.1.3香橙派Linux操作系統環(huán)境配置 165.2主要界面 175.3代碼設計 185.3.1QT界面設計 185.3.2核心算法圖像處理主要函數 18第6章系統測試 206.1 模型可執(zhí)行性測試 206.2 測試用例 216.3測試總結 23第7章結論 25參考文獻 26致謝 27-第1章緒論隨著全球化的加速和國際貿易的持續(xù)增長,海上運輸作為主要的物流方式之一,對于連接全球市場和促進經濟發(fā)展扮演著不可或缺的角色。然而,海上航行的安全性和效率面臨著種種挑戰(zhàn),如船舶碰撞、海盜襲擊、環(huán)境保護等問題。因此,提高海上航行的安全性和減少海上事故的發(fā)生成為了迫切需要解決的問題。實時船舶識別與檢測技術尤為關鍵?在這種情況下在此類情況。1.1論文研究背景和意義這些年來,我國的航海事業(yè)發(fā)展迅速,我國正努力成為世界航海強國。對船舶機械能目標檢測技術[1]在海上安全方面有著廣泛的應用前景。在民用領域,確定非法漁船和偷渡者的位置有助于管理和監(jiān)督海上運輸。在軍事領域,確定具體目標有助于戰(zhàn)略部署和加強海上攻擊的預警能力。在復雜環(huán)境下進行實時檢測成為領域內難點之一。傳統的目標檢測算法是使用滑動窗口[2],收集候選區(qū)域的HOG和SIFT特征[3][4],在這時候利用SVM[5]進行識別。這些算法主要用于背景簡單、目標清晰可見且需要測量的場景。由于某些紅外艦船照片的背景區(qū)分度較差,而且目標類型復雜、多樣、多變,因此通過一般抽象特征識別艦船具有挑戰(zhàn)性(《信號與信息處理2022年無線電工程》第52卷第12期2117頁)。由于深度學習技術的不斷提升,船舶目標技術也在不斷提高。單級和兩級目標檢測算法是采用深度學習的目標檢測方法的兩大類,可根據是否使用多級處理來劃分。兩階段策略,如R-CNN[6]、Faster-RCNN[7]等,通常要求算法事先生成一些候選幀,然后再通過CNN[8]進行目標分類;單階段技術,如SSD[9]、CenterNet[10]、RetinaNet[11]、EfficientDet[12]、YOLO[13]等,則采用回歸作為高效解決目標邊緣定位問題的方法,無需事先生成候選幀。如YOLO[13]和EfficientDet[12]等。它們無需事先生成候選幀,因為它們可以利用回歸問題高效地解決目標邊緣定位問題。利用深度學習的船舶目標識別系統通過CNN實現自動特征檢索,然后進行基于神經網絡的分類和回歸,最后將分類和回歸的損失統一在一幀中。劉暢等人[14]利用從GA-RPN結構中重新獲得的圖片特征來指導錨幀的建立,解決了與建立錨幀相關的難題。王燕妮等人[15]在主特征提取網絡中加入了ShuffleNetV2,從而減少了計算量并壓縮了模型?;诙鄠容敵鋈诤希∕SOF)策略技術,Li等人[16]將UNet++網絡用于精確定位目標,并通過在常規(guī)目標檢測模型中加入特征融合層創(chuàng)建了多尺度檢測模型。于野等人[17]基于FPN的多維感官輸入CNN模型A-FPN,通過結合目標特征中最重要的特征,優(yōu)化了模型的判別特征。在YOLOv4的基礎上,趙玉榮等人[18]提出了YOLO-Marine模型;利用K-Means++聚類技術找到初始錨點,從而使船舶目標定位更準。隨著深度學習技術的使用,目標檢測的效率和準確性大幅提高,但在輕量級檢測模型的完成、移動內置人工智能平臺的實施以及其他重要技術方面仍存在問題。單級算法的精確度低于A對系統,但它更適用于嵌入式應用,而且推導速度快、資源消耗低。1.2國內外現狀1.2.1基于機器學習的圖像識別算法1998年,第一個叫LeNet-5的基本神經網絡的構建,讓人們對神經網絡的最終創(chuàng)建有了樂觀的預期[5]。該網絡只有五層,使用兩個一維全連接將輸入數據分為十類。研究人員Viola通過動態(tài)編程計算指定圖片數據,恢復相關信息,然后合并多個分類器進行分類。在人臉識別方向上效果非常好[6]。為了嘗試描繪圖像中獨特的輪廓,研究人員在2005年恢復了一定量的邊緣信息。計算信息后,他們使用SVM進行分類。之后,貝葉斯分類器被用于識別圖像,利用統計專業(yè)知識為分類提供精確的結論[7]。當時,在某些研究人員利用他們掌握的決策樹進行的圖像識別測試中,平均識別率達到95%。與基于卷積神經網絡的現代技術相比,傳統的圖片識別技術所需的解讀工作量相對較小,而且只需要有限數量的樣本。在某些無法獲得大量樣本的圖片認證案例中,即使數據量很大,傳統技術也能高精度地檢測出目標。此外,傳統的圖片識別過程不需要先進的計算機硬件,而且模型易懂、參數少、訓練周期短。但是傳統的識別有明顯缺點。首先,圖像特征需要人工提取,既費力又費時。此外,所獲得的目標特征是單一的,這意味著所學習到的模型可能只能檢測到少數非常具體的特征,因此不足以用于市場營銷。隨著照片質量的提高和獲取照片數量的增加,使用老式攝影處理方法處理大量高分辨率圖像變得越來越困難?;谏疃韧股窠浘W絡的圖像識別技術目前已成為圖像識別研究的主題,這是因為該技術應用廣泛,能夠端到端處理圖像,能夠從大量訓練數據中提取特征,并且能夠將鏡頭直接輸入模型,而無需先由人工識別特征。1.2.2基于卷積神經網絡的圖像識別算法AlexKrizhevsky的七層AlexNet把卷積核當成網絡模型,逐層對圖像進行特征采樣,在當時的ImageNet數據集競賽中獲得了84.6%的識別率[9],這使神經網絡模型再次成為研究的焦點。幾年后,SimonyanK等人推薦了經典的VGG-Net模型,該模型有19層網絡,在當時的ImageNet競賽中獲得了92.7%的準確率[10]。它使用兩個緊密堆疊的小卷積核,而不是一個7x7的大卷積核,從而降低了參數數量,增加了非線性系數。為了發(fā)現前瞻性區(qū)域,2014年開發(fā)了R-CNN圖像識別程序[11]。這種方法利用了CNN網絡的有限搜索。后來,開明等科學家為了不將設定比例大小的圖片輸入到模型中,設計了空間金字塔網絡,利用池化方法的分數將圖片調整到所需羅斯等人在2015年提出了基于空間金字塔網絡的FastR-CNN方案。該算法不需要將一個大數據模塊分解成許多小模塊,然后分別計算每個模塊以提取必要的細節(jié),而是能夠一次性計算每個值。此外,由于只需對數據進行一次計算,因此減少了必須對數據進行仔細計算的總次數。更高效的R-CNN是一種更快的算法,通常會保留卷積網絡的參數,通過尋找目標有很大幾率出現的位置,而不是隨機地多次查看每個區(qū)域,從而大大減少了工作量,提高了圖片中的目標檢測速度。這種方法比檢查圖像中的每個區(qū)域更有效。何開明等人建立了ResNet網絡模型,通過在早期網絡模型的基礎上不斷探索網絡模型來提高識別率。通過將前兩層獲得的信息傳輸到后一層,該模型保持了其非線性,并在當時的圖像識別比賽中證明了其高準確率。2016年,Kim和他的同事談到了PVANet網絡技能,該技能在PascalLexicon數據庫中實現了超過78%的平均mAP。他們是通過利用ResNet的屬性,同時使用FasterR-CNN網絡實現這一目標的。GidarisS.等人在2015年擴展了本地創(chuàng)建網絡,提出了MR-CNN網絡。戴杰在2016年發(fā)明了R-FCN目標識別算法。更快的R-CNN算法利用上下兩個網絡的信息來識別圖像中不同大小的目標,2013年,Lin進一步發(fā)展了這一算法,創(chuàng)建了FPN算法。通過利用上層系統收集的數據,可以特別識別出小型攻擊。何開明等人在2018年提出了MaskR-CNN方法,將它的積極作用與雙線性插值相結合,以更好地識別合格區(qū)域。2019年,何偉龍在應用MaskR-CNN模型識別無人機攝像頭拍攝的建筑物時,獲得了超過95%的整體判斷率。在閱讀照片中的交通標志時,楊萌萌部署了FasterR-CNN網絡,準確率超過97%。Madjiao使用ResNet和FasterR-CNN掃描合成孔徑雷達圖片,對大型目標的發(fā)現率達到98.5%,對小型目標的發(fā)現率超過80%。在檢測系統需要立即提供檢測結果的特定場景中,更快的檢測方法至關重要。約瑟夫-雷德蒙(JosephRedmon)于2016年創(chuàng)建了YOLOv1算法,這個是最初的YOLO系列算法。1.2.3船舶識別研究現狀雖然深度機器學習已在尋找物體的應用中得到大量部署,但船舶識別應用卻非常罕見。大量的船舶識別方法都依賴于機器學習,尤其是文獻,首先通過胡氏不變數據矩陣捕捉船舶特征,然后通過SVM分類器對船舶目標進行分類[33][34]。其中閻利斌對運砂船、巡邏船和沉砂船的發(fā)現率都是90%左右,朱成和實驗結果的平均分類誤解率是5%。吳女士在使用景別技術確定船只照片后,也得到了更準確的結果。上述三人都在努力改進視覺圖像處理技術。中國的韓亮在遙感圖像船舶目標識別中使用大津過程進行主成分評估,獲得了90%以上的準確率[36]。作者孟云在一種方法中結合了itti和RX,在另一種方法中結合了HOG特征提取并建立了Adaboot分類器,從而能夠從遙感設備的圖像中發(fā)現艦船目標。第一種檢測技術通過檢測五個目標實現了100%的準確率;第二種方法對民用貨船的識別率為80%,對游艇的識別率為76%。對于游艇,上述方法的精確度超過76%。王鵬將幀間差分法與背景顏色變化技術相結合,在遙感圖像識別中取得了可接受的結果,可靠性超過83%。在此基礎上,王鵬利用最大共享和平滑方法對Alexnet模型中的圖形數據進行了評估,測試集的圖像識別錯誤率低于10%。第2章關鍵技術介紹2.1OpenCV2.1.1簡介用于視覺分析和數據挖掘的最著名的免費開源模塊之一叫做OpenCV(即開源計算機視覺庫)。OpenCV最初于2000年問世,現已發(fā)展成為利用計算機視覺構建快速、成功應用程序的首選工具。OpenCV框架提供從基本圖像增強到復雜視覺分類的各種任務,通常用于各種計算機視覺應用,包括圖像分析、視頻分析、人臉識別和其他信息視覺領域。2.2Pytorch2.2.1主要特點PyTorch具有靈活的動態(tài)函數圖、自主的差異化方法和簡單易用的API,因此大受歡迎。它擁有巨大的GPU加速處理能力,使深度學習的創(chuàng)建、訓練和部署變得異常簡單。此外,PyTorch還擁有一個充滿活力的社區(qū)和大量的預訓練模型資源,這兩者已經對學術研究和實踐應用的發(fā)展產生了重要影響。所有這些特點使PyTorch成為學術界和開發(fā)人員最喜愛的平臺,同時在幾類機器學習和深度學習學科中占據了重要地位。2.3Yolov52.3.1簡介YOLOv5的目標是在保持高精度的同時提供驚人的檢測速度,這使其成為便攜式應用、自動駕駛汽車和實時間諜等各種計算視覺應用場景的理想選擇。2.3.2主要特點YOLOv5卓越的功效和適應性是其主要賣點。YOLOv5對網絡架構進行了大幅改進,這使得模型能夠高效地解釋數據,同時具有極高的準確性。這對于自動駕駛汽車和交通監(jiān)控等需要立即做出反應的應用條件尤為重要。其次,YOLOv5為不同大小的模型提供了可擴展性:較大的模型適用于服務器端應用以及精度更高的應用,較小的模型適用于邊緣和移動設備上的計算。網絡結構圖如下圖2.1:圖2.1YOLOv5的網絡結構圖示YOLOv5的網絡結構,包括其各種組件和模塊,將在圖中清楚地說明,以及它們如何相互連接,以實現既有效又準確的處理速度和精度。由于YOLOv5采用了多尺寸模型架構,因此可以根據不同的機器馬力和資源進行調整,是各種情況和應用的理想選擇。2.4NPU2.4.1簡介在深度學習技術剛開始流行的時候,人們主要使用通用計算設備,如CPU和GPU,來執(zhí)行神經網絡計算。但是,隨著神經網絡的復雜度和規(guī)模不斷增加,傳統的計算設備已經不能滿足快速、高效地執(zhí)行神經網絡計算的需求。因此,研究人員開始探索如何設計一種專門用于加速神經網絡計算的處理器,這就是NPU的由來。早期的NPU主要是基于FPGA實現的。由于FPGA靈活可編程,所以它可以用于實現各種不同類型的神經網絡處理器。隨著深度學習技術的不斷發(fā)展和普及,NPU的研究和開發(fā)也取得了越來越多的進展。2013年,Google推出TPU芯片,專門用于加速深度學習模型的訓練和推理。TPU采用了特定的硬件架構和優(yōu)化算法,可以實現高效、低功耗的神經網絡計算。TPU的成功引起了業(yè)界的廣泛關注,也促進了NPU的發(fā)展。隨后,其他公司也開始研發(fā)自己的NPU。2015年,華為發(fā)布了一款名為“Kirin950”的處理器,集成了一種名為“NeuralProcessingUnit”(NPU)的模塊,用于加速神經網絡計算。2018年,華為推出了全新的“昇騰”(Ascend)系列處理器,其中包括專門用于加速深度學習計算的NPU模塊。隨著NPU技術的不斷發(fā)展和普及,越來越多的公司開始將NPU集成到自己的芯片中,以加速神經網絡計算。例如,蘋果公司在2017年發(fā)布的A11芯片中集成了神經網絡處理器,用于支持人臉識別等功能。瑞芯微也為了讓芯片實現人工智能的應用,所以把NPU添加到了自研的芯片中,它叫做RKNPU。
第3章系統分析3.1系統需求分析首先,功能需求上,系統必須實現通過連接的攝像頭實時捕捉畫面,并利用RK3588上部署的優(yōu)化過的YOLOv5模型進行船舶的實時檢測與分類。性能需求方面,鑒于應用的實時性要求,系統需要具備低延遲處理圖像和執(zhí)行目標檢測的能力,它還能一直保持準確率。此外,穩(wěn)定性需求也至關重要,系統需要在長時間運行的情況下保持穩(wěn)定,確保不會因為軟件或硬件故障導致的服務中斷。這些需求共同構成了項目成功的基礎,我們將通過精心設計和嚴格測試,確保每項需求都能得到滿足,從而為用戶提供一個既快速又準確、穩(wěn)定的船舶檢測系統。3.2系統框架系統框架是設計在通過整合RK3588芯片、優(yōu)化后的YOLOv5模型、實時攝像頭輸入以及PyQt界面,構建一個既高效又用戶友好的船舶檢測系統。核心硬件RK3588芯片內置的NPU為運行深度學習模型提供了強大的計算支持,保障了系統的高效性和穩(wěn)定性。優(yōu)化后的YOLOv5模型能夠在此平臺上高效執(zhí)行,實現對攝像頭捕獲圖像的實時檢測和分類。系統通過PyQt開發(fā)的界面,為用戶提供了一種直觀且易于操作的方式來啟動/停止檢測任務、調整檢測參數和查看實時檢測結果,它既方便又易操作。整個系統框架的設計充分考慮了性能優(yōu)化與用戶交互的需求,確保了船舶檢測任務的高效執(zhí)行同時,也保證了良好的用戶體驗。系統框架如下圖3.1所示:圖3.1系統框架3.3系統流程分析在本項目的船舶檢測系統中,整個工作流程是一連串精心設計的步驟,從用戶通過PyQt界面的互動開始,到系統最終呈現出的檢測結果,每個環(huán)節(jié)都經過了周密的規(guī)劃。初始階段,用戶通過圖形界面激活系統,觸發(fā)一系列自檢和初始化操作,這包括驗證RK3588芯片及其內置NPU的狀態(tài),確保攝像頭的正確連接和配置,以及加載經過優(yōu)化適配的YOLOv5模型。攝像頭開始捕獲海域的實時畫面,這些畫面經過預處理—比如調整對比度、去除噪點—以提升后續(xù)檢測的準確度。緊接著,處理后的圖像被實時傳輸到NPU執(zhí)行YOLOv5模型,進行復雜的圖像分析和船舶識別。由于RK3588芯片的強大處理能力,即便面對高分辨率的圖像流,系統也能夠保持低延遲和高準確性的檢測。檢測到的船舶信息,如船舶類型、大小、位置等,實時呈現在用戶界面上。這個界面不僅提供了即時的檢測結果,還允許用戶深入查詢每艘船的詳細數據,甚至包括歷史檢測記錄和數據分析。在這一過程中,用戶的交互起著關鍵作用。他們可以通過界面調整檢測參數,比如改變檢測敏感度或專注于特定類型的船舶。系統還能根據實時反饋和累計數據進行自我優(yōu)化,比如調整圖像處理流程,以更好地適應不同的環(huán)境條件和用戶需求。此外,系統在持續(xù)運行中還自動記錄關鍵性能指標和檢測結果,便于后續(xù)的維護和升級。用戶完成檢測任務后,可以選擇結束程序或重新啟動以進行新一輪的監(jiān)測。系統設計了一套高效的關閉流程,確保在結束操作前自動保存當前的配置和數據,以便下次啟動時能夜無縫繼續(xù)運行。這一連串的操作流程不僅充分考慮了技術實現的高效性和準確性,還重視了用戶的操作體驗和系統的長期穩(wěn)定性,確保了船舶檢測任務能夠高效、準確、并且用戶友好地執(zhí)行。第4章系統設計4.1設計指導思想和原則4.1.1指導思想本項目旨在開發(fā)一個基于RK3588芯片和YOLOv5模型的船舶檢測系統,其指導思想主要體現在提升海域安全監(jiān)控的效能,能夠高效能檢測。通過集成高性能硬件和先進的深度學習技術,設計一個既能滿足高速、高準確性需求,同時又易于操作和維護的系統,以服務于海上交通管理和海域安全的廣泛領域。4.1.2軟件設計原則在軟件設計方面,項目遵循以下原則以保證系統的優(yōu)越性能和良好用戶體驗:高內聚低耦合:系統模塊化設計不僅便于管理和維護,還通過降低各個模塊之間的依賴性,增強了系統的靈活性和穩(wěn)定性??蓽y試性:在設計之初就考慮到了測試的便捷性,確保每個模塊都能夠獨立進行測試,從而提高系統的可靠性和穩(wěn)定性。4.2構架概述本項目設計時采用了多分層的架構思想,讓系統擁有靈活,可擴展的特點,設計的架構如下:4.2.1硬件層:RK3588芯片平臺:選擇RK3588芯片是因為其強大的處理能力和內置NPU,這為運行復雜的深度學習模型提供了硬件保障。攝像頭:高清攝像頭的選用是為了獲取高質量的實時海域圖像,這對于提高船舶檢測的準確率至關重要。4.2.2軟件層:操作系統與開發(fā)環(huán)境:選擇Linux操作系統作為項目環(huán)境,使用PyQt等工具開發(fā)用戶界面。深度學習模型與算法優(yōu)化:不僅選用了性能卓越的YOLOv5模型,還通過算法優(yōu)化確保模型在NPU上的高效執(zhí)行。4.2.3圖像處理與目標檢測層: 圖像預處理:有調整圖像大小、裁剪圖像并使其標準化,以便為模型提供適當的數據。。目標檢測與分類:YOLOv5模型在此層執(zhí)行,實時地識別和分類圖像中的船舶對象。4.2.4用戶界面層: PyQt界面:提供了直觀的操作界面,用戶可以實時查看視頻流、檢測結果,及進行系統配置等操作?;有耘c反饋:界面設計考慮了用戶互動性,如實時更新的檢測結果、系統狀態(tài)指示等,以及反饋機制,包括錯誤提示和操作確認。4.2.5系統集成與測試: 集成測試:當我把整個項目做完后,我會進行集成測試保證模塊與整體之間能夠完整運行。性能評估:我會對系統的實時、準確、穩(wěn)定這些方面進行對比總結,保證系統能夠達到要求。通過這樣的設計和實現,系統不僅具備高效準確的船舶檢測能力,還提供了良好的用戶體驗和操作便利性。這種綜合性的設計方法使得系統不僅適用于海域安全監(jiān)控,還能滿足海上交通管理等多種應用場景的需求。、4.3人機交互界面設計在本項目中,我使用了PyQt來構建人機交互界面。通過PyQt,我們能夠利用Python的簡潔語法和強大功能,同時享受Qt的豐富控件和模塊,來構建直觀、美觀且功能豐富的用戶界面。4.3.1設計目標和原則在本項目中,PyQt被用來創(chuàng)建一個用戶友好的界面,通過該界面用戶可以進行如下操作:實時視頻流顯示:界面中有一個專門的區(qū)域顯示來自連接攝像頭的實時視頻流,用戶可以直觀地看到當前的監(jiān)控畫面。檢測結果展示:當系統檢測到船舶時,結果將在界面上以圖形化的方式展示,如在檢測到的船舶周圍繪制邊框,并顯示船舶的類型。系統配置與控制:用戶可以通過界面上的控制元素(如按鈕、滑動條等)來調整檢測參數(如敏感度、特定類型船舶的識別優(yōu)先級等),或是啟動和停止檢測任務。通過PyQt創(chuàng)建的界面不僅美觀,而且實用,大大增強了本項目船舶檢測系統的用戶體驗和互動性,如圖4.1所示:圖4.1界面設計圖第5章系統實現5.1環(huán)境配置本設計基于Windows操作系統和Linux操作系統,使用Python語言、采用Pychram作為開發(fā)工具。瑞芯微的Rk3588芯片的微控制器作為船舶進港檢測系統的下位機負責對實時數據的推理。通過Pychram作為開發(fā)工具的電腦端作為上位機,進行模型的訓練和Qt界面的設計。5.1.1Windows操作系統環(huán)境配置Windows在項目的系統實現過程中,Windows操作系統扮演了至關重要的角色。為了確保開發(fā)環(huán)境的穩(wěn)定性和模型訓練的高效性,我對Windows系統進行了細致的配置。Anconda環(huán)境的安裝與設置首先,我在Windows操作系統中安裝了Anconda。它可以建立不同的環(huán)境,使不同項目環(huán)境獨立。此外,Anconda還提供了便捷的包管理功能,使得安裝和更新Python庫變得簡單快捷。Python版本的選擇我選擇了Python3.8版本進行開發(fā)。它是當前廣泛使用的Python版本之一,它提供了許多改進和新特性,如更強大的類型提示、更高效的數據處理能力等。Yolov5模型的訓練在Windows環(huán)境下,我使用Pytorch框架來訓練自己的Yolov5模型。通過在Windows系統上進行模型訓練,并使用GPU加速訓練,調參來提高準確率??傊?,通過對Windows操作系統的精心配置,我們?yōu)閅olov5模型的訓練和整個船舶進港檢測系統的開發(fā)提供了一個高效、穩(wěn)定和易于管理的環(huán)境。下面是Windows系統下安裝的部分主要庫如圖5.1所示圖5.1Windows系統的主要庫5.1.2電腦中虛擬機Linux操作系統環(huán)境配置虛擬機的安裝與配置首先,我在電腦端安裝了VMware軟件進行創(chuàng)建虛擬機。在其中安裝Ubuntu20.04操作系統的鏡像,如下圖5.2所示。Ubuntu20.04是一個廣泛使用的Linux發(fā)行版,它提供了穩(wěn)定、安全且用戶友好的操作環(huán)境,非常適合用于開發(fā)和測試。圖5.2Ubuntu20.04操作系統Miniconda的安裝在Ubuntu虛擬機中,我安裝了Miniconda。我首先將安裝包拷貝到了Ubuntu系統中,然后通過在終端運行“./Miniconda3-latest-Linux-x86_64.sh”命令來啟動安裝過程,如圖5.3所示Miniconda安裝完成。圖5.3Miniconda安裝完成環(huán)境依賴的安裝接下來,我將rknn_toolkit2-1.4.0_22dcfef4-cp38-cp38-linux_x86_64.whl文件和requirements_cp38-1.4.0.txt文件拷貝到了Ubuntu系統中,文件如圖5.4所示。這些文件包含了項目運行所需的依賴庫和工具。其中,rknn_toolkit2-1.4.0_22dcfef4-cp38-cp38-linux_x86_64.whl是一個Python輪子文件,它包含了rknn工具包,這是實現NPU加速所必需的。而requirements_cp38-1.4.0.txt文件則列出了所有必要的Python庫及其版本,我通過運行pipinstall-rrequirements_cp38-1.4.0.txt命令來安裝這些庫。至此,我成功地在Ubuntu20.04虛擬機中搭建了一個適合項目開發(fā)的RKNN環(huán)境。圖5.4Ubuntu20.04操作系統5.1.3香橙派Linux操作系統環(huán)境配置系統環(huán)境配置香橙派的系統和電腦的系統環(huán)境有區(qū)別,所以系統配置的Ubuntu的版本有所不同香橙派的系統是arm64,所以安裝的Ubuntu鏡像也是Ubuntu20(aarch64)版本這個也是Rk3588芯片所支持的版本。環(huán)境搭建系統燒錄完成后,首先需要要進行系統環(huán)境的搭建以適配模型,保證模型可以正常執(zhí)行。由于香橙派的系統是arm64架構所以Miniconda3的版本與電腦虛擬機中安裝的版本有所不同,安裝所使用的版本是aarch64版本的安裝包。使用conda的命令創(chuàng)建RKNN虛擬環(huán)境,安裝RKNN-ToolkitLite2軟件包rknn_toolkit_lite2-1.4.0-cp39-cp39-linux_aarch64.whl文件拷貝到開發(fā)板,以完成推理環(huán)境的布置。如下圖5.5為ToolkitLite2的安裝過程。圖5.5ToolkitLite2的安裝至此全部的環(huán)境安裝已經完畢,香橙派開發(fā)板已經能夠進行模型的推理功能。5.2主要界面啟動Yolov5船舶進港檢測系統,軟件整體界面如下圖5.6所示:圖5.6軟件整體界面軟件界面介紹:(1)圖片選擇區(qū)域在軟件界面的圖片選擇區(qū)域,用戶可以通過點擊“選擇圖片”按鈕來瀏覽并加載本地存儲的圖像文件。選擇圖片,識別結果將會在界面的相應位置顯示,通常包括船舶的類型、位置(如邊界框坐標)以及置信度等信息。這個功能使得用戶能夠輕松地對靜態(tài)圖像進行船舶檢測和分析。(2)視頻選擇區(qū)域視頻選擇區(qū)域允許用戶加載并播放視頻文件,軟件可以將對視頻幀進行檢測并在窗口中顯示推理結果,并提供相關信息。這個功能對于分析船舶的移動軌跡和行為模式非常有用,尤其是在監(jiān)控和安全領域。(3)攝像頭啟動區(qū)域攝像頭啟動區(qū)域提供了啟動選項。用戶只需點擊按鈕,軟件會獲取攝像頭設備視頻流。同時,軟件會實時分析視頻流中的畫面并將檢測結果實時展示在界面上。這個功能特別適合于實時監(jiān)控場景,如港口監(jiān)控、海岸巡邏等,能夠為用戶提供即時的船舶檢測結果。5.3代碼設計5.3.1QT界面設計Qt界面是基于Pyqt進行創(chuàng)建其中包含窗口,按鍵,布局的相關定義,確??梢詫崿F可以提供簡介命令的圖形操作界面。defsetupUi(self,MainWindow):defretranslateUi(self,MainWindow):definit_slots(self):5.3.2核心算法圖像處理主要函數下面是部分主要的核心函數,主要在該項目中對圖像處理方面起到核心作用。激活函數-defsigmoid(x)本項目使用了sigmoid函數,它的定義是sigmoid(x)=1/(1+exp(-x))。在二元分類問題中,該函數常用于將輸入值x轉換為區(qū)間(0,1),并將結果解釋為概率。坐標轉換函數-defxywh2xyxy(x)為了更好地理解和表示目標的位置,需要將目標的坐標格式從中心點加寬高轉換為所需要的左右角坐標,便于后續(xù)的目標檢測和框繪制。目標處理函數-defprocess(input,mask,anchors)process函數是目標檢測后處理的關鍵步驟,它接收網絡的原始輸出、掩碼和錨點框作為輸入。該函數首先計算目標的置信度和類別概率,然后根據網格大小和錨點框調整目標的坐標和尺寸,展示信息。非極大值抑制函數-defnms_boxes(boxes,scores)為了去除重疊的目標幀并保留最佳檢測結果,非極大值抑制是一種常用的目標檢測后處理方法。nms_boxes函數實現了NMS算法,它通過計算目標框之間的交并比(IoU)來抑制重疊度過高的目標,確保每個目標只被檢測一次。YOLOv5后處理函數-defyolov5_post_process(input_data)yolov5_post_process函數是整個目標檢測后處理流程的整合,它首先對網絡的輸出應用多個處理掩碼,然后調用process、filter_boxes和nms_boxes函數,最終得到經過篩選和優(yōu)化的目標檢測結果。目標繪制函數-defdraw(image,boxes,scores,classes)draw函數用于在原始圖像上繪制檢測到的目標框,并標注類別和置信度。它通過循環(huán)遍歷每個目標的邊界框、分數和類別,使用OpenCV庫的繪圖和文本函數在圖像上進行標注。圖像預處理函數-defletterbox(im,new_shape=(640,640),color=(0,0,0))為了減少預處理對檢測結果的影響,信箱功能可對圖片進行縮放和填充,以確保圖片尺寸符合網絡的需要,同時保持目標的縱橫比不變。第6章系統測試在本章中,我將介紹如何在實際情況下測試艦船入港探測系統。我將執(zhí)行一系列測試案例,以確保系統符合設計規(guī)范,并在實際環(huán)境中正常運行。模型可執(zhí)行性測試首先會進行模型推理環(huán)境加載測試,下面的代碼可以檢測模型推理環(huán)境是否成功,根據結果會輸出相應信息。ret=rknn.init_runtime(target='rk3588')ifret!=0:print('Initruntimeenvironmentfailed!')exit(ret)然后調用下面代碼可以加載模型并對目標文件推理,最后安最缺率輸出排名前5的類別。defsetupUi(self,MainWindow):MainWindow.setObjectName("MainWindow")defshow_outputs(output):output_sorted=sorted(output,reverse=True)top5_str='\nTOP5\n'foriinrange(5):value=output_sorted[i]index=np.where(output==value)forjinrange(len(index)):if(i+j)>=5:breakifvalue>0:topi='{}:{}\n'.format(index[j],value)else:topi='-1:0.0\n'top5_str+=topiprint(top5_str)defshow_perfs(perfs):perfs='perfs:{}\n'.format(perfs)print(perfs)defsoftmax(x):returnnp.exp(x)/sum(np.exp(x))show_outputs(softmax(np.array(outputs[0][0])))最終的輸出結果如下圖6.1所示:圖6.1模型推理輸出結果測試用例圖像檢測測試:檢查系統識別各種船舶的準確性。。視頻流處理測試:當處理提供的視頻時檢測系統是否還能正常處理。攝像頭實時監(jiān)控測試:驗證系統是否能夠對攝像頭獲取的數據正常處理。測試類型測試項目測試樣例編號測試結果通過標準備注圖像檢測測試船舶識別準確性001√正確識別所有船舶類型測試多個圖片002√003√視頻流處理測試實時性和穩(wěn)定性001√視頻流無延遲,穩(wěn)定運行連續(xù)視頻測試002√003√攝像頭實時監(jiān)控測試實時圖像檢測能力001√圖像清晰,實時響應通過攝像頭捕獲002√003√6.3測試總結系統測試這步對于整個系統保證項目的有效執(zhí)行至關重要。通過本章的測試和分析,確認了船舶入口檢測系統的有效性,保證了項目在實時工作環(huán)境下的準確執(zhí)行。這為系統的最終項目落地和使用定下了不可磨滅的基礎。第7章結論本項目所做的工作是將先進的人工智能算法應用于海上船舶檢測,以提高海上交通安全和船只管理的效率。項目的核心任務是將基于YOLOv5的船舶檢測算法成功部署到RK3588芯片上。RK3588芯片配備了高性能的NPU,專門用于執(zhí)行人工
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 癱瘓搬運試題及答案
- 對數函數試題及答案
- 暑假駕照考試試題及答案
- 家電公司質量改進管理細則
- 專職安全員C3考試試題及答案
- 2026屆河南省中原名校、大連市、赤峰市部分學?;瘜W高二上期中考試試題含解析
- 礦山汽車考試題及答案
- 殯儀館考試題及答案
- 航向操作考試題及答案
- 上虞招聘面試題及答案
- 切削刀具項目實施方案
- 常見行政案件筆錄模版
- 手術室甲狀腺切除術手術配合護理查房
- 國家電網電力中級職稱考試題
- 美國專利法及實務培訓-上傳課件
- 新版中國電信員工手冊
- 2023年中國工商銀行軟件開發(fā)中心春季校園招聘500人筆試模擬試題及答案解析
- D500-D505 2016年合訂本防雷與接地圖集
- 中國重癥加強治療病房(ICU)建設與管理指南
- 社區(qū)矯正法課件
- 后勤保障樓幕墻施工方案新
評論
0/150
提交評論