




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于圖像的目標(biāo)自動識別與跟蹤技術(shù)研究摘要:近年來,由于科學(xué)技術(shù)的飛速發(fā)展,計算機(jī)的視覺技術(shù)與視覺圖像的并行處理技術(shù)在我們生活中所扮演的角色越來越重要。本課題將會圍繞著在視頻監(jiān)控圖像中,對運(yùn)動目標(biāo)進(jìn)行檢測識別以及對目標(biāo)跟蹤的算法展開研究,以此來重點實現(xiàn)算法的實時性、可靠性、算法的軟硬件兼容以及算法的處理速度。為了實現(xiàn)算法的流程,將利用Python語言和OpenCV視覺庫來搭建運(yùn)行平臺,對數(shù)字圖像的去噪、目標(biāo)檢測的實時性和可靠性與跟蹤算法的穩(wěn)定性與可靠性進(jìn)行研究。本文中所運(yùn)行的算法將實現(xiàn)從視頻監(jiān)控圖像里自動識別出不同輪廓外形的物體并對其運(yùn)動的軌跡進(jìn)行持續(xù)跟蹤。關(guān)鍵詞:OpenCV視覺庫;Python語言;目標(biāo)識別與跟蹤;數(shù)字圖像處理
目錄1. 引言 11.1 課題背景 11.2 研究現(xiàn)狀 11.2.1 目標(biāo)的自動識別與追蹤技術(shù)發(fā)展歷史 11.2.2 OpenCV的發(fā)展現(xiàn)狀 21.2.3 Python的發(fā)展現(xiàn)狀 31.3 研究的意義與目的 31.4 主要研究內(nèi)容 42 計算機(jī)圖像處理相關(guān)技術(shù) 52.1 圖像顏色模型 52.2 圖像處理 52.3 圖像灰度化 62.4 Canny邊緣檢測 62.5 常見的圖像濾波方式 73 基于圖像的目標(biāo)自動識別與跟蹤技術(shù)研究的設(shè)計 93.1 程序運(yùn)行開發(fā)環(huán)境搭載 93.2 算法流程設(shè)計 93.3 圖像的識別 103.3.1 YOLOv4算法 103.3.2 YOLOv4算法的調(diào)用 113.3.3 程序框架的設(shè)計 113.3.4 目標(biāo)識別的設(shè)計 133.4 目標(biāo)圖像的跟蹤設(shè)計 144結(jié)論 18致謝 19參考文獻(xiàn) 20
引言 課題背景視覺系統(tǒng)是我們?nèi)祟惖闹饕杏X系統(tǒng),是我們獲取外界信息的主要途徑來源,它是一種為我們?nèi)祟愄峁┴S富的外界信息的重要媒介。跟據(jù)統(tǒng)計顯示,我們所接收到的80%左右的信息都是通過視覺系統(tǒng)接收的。然而,因為人類的視野和精力問題限制,我們的視覺系統(tǒng)在各個領(lǐng)域的應(yīng)用受到了很大的限制,工作效率也很低。隨著近幾年以來,圖像處理技術(shù)的快速發(fā)展,也相應(yīng)地對目標(biāo)自動識別和跟蹤技術(shù)的發(fā)展產(chǎn)生了極大的促進(jìn)作用。尤其是在不同的環(huán)境下,如何實現(xiàn)目標(biāo)的準(zhǔn)確識別和穩(wěn)定的跟蹤,其相關(guān)方面的研究具有重要的理論價值和實踐意義。圖像處理與識別技術(shù)是一項包含眾多學(xué)科領(lǐng)域的先進(jìn)高科技研究。隨著計算機(jī)軟件技術(shù)和硬件技術(shù)的不斷提高,計算機(jī)圖像處理與識別技術(shù)在20世紀(jì)80年代中期到90年代末期得到了高速發(fā)展,并且開始在工業(yè)、農(nóng)業(yè)、公共交通、經(jīng)濟(jì)金融、地質(zhì)勘探、海洋觀察、氣象預(yù)報、生物醫(yī)學(xué)、軍事研究、公安監(jiān)控、電商服務(wù)、衛(wèi)星定位、機(jī)器人視覺系統(tǒng)、目標(biāo)跟蹤、車輛GPS導(dǎo)航、多媒體網(wǎng)絡(luò)信息通信等眾多領(lǐng)域被廣泛應(yīng)用,收獲了明顯的經(jīng)濟(jì)效益和不錯的社會反響。研究價值大到戰(zhàn)爭中對敵人的飛機(jī),艦船,導(dǎo)彈等軍事目標(biāo)的攔截,小到我們生活中手機(jī)照相自動對人臉識別并對焦,這項技術(shù)在我們身邊可謂是無處不在。其在機(jī)械工業(yè)領(lǐng)域也有廣泛運(yùn)用的前景,例如對精細(xì)的小零件進(jìn)行分類,人眼在這種高精度環(huán)境下不能時刻保持高強(qiáng)度狀態(tài),所以需要利用計算機(jī)來進(jìn)行識別和分類。目前,計算機(jī)圖像的處理與識別技術(shù)被人們當(dāng)作是認(rèn)識和改造新世界的重要方法,是在21世紀(jì)信息化時代能引領(lǐng)我們未來發(fā)展的一門高新技術(shù)學(xué)科[1]。研究現(xiàn)狀目標(biāo)的自動識別與追蹤技術(shù)發(fā)展歷史目標(biāo)的自動識別和跟蹤技術(shù)是現(xiàn)代科學(xué)界在視覺領(lǐng)域研究的熱門話題,伴隨著計算機(jī)技術(shù)的高速發(fā)展和計算機(jī)應(yīng)用的廣泛普及,目標(biāo)的自動識別和跟蹤技術(shù)取得了顯著的進(jìn)步[2]。上個世紀(jì)對于圖像的處理主要集中在對單幅圖像的處理,即使在處理動態(tài)圖像時跟蹤其中運(yùn)動的目標(biāo),也具有明顯的靜態(tài)圖像處理色彩。直至上世紀(jì)80年代,光流法被提出,目標(biāo)的跟蹤研究才在真正意義上踏入了研究動態(tài)圖像序列的領(lǐng)域。但是光流法對于現(xiàn)在的計算機(jī)處理速度來說挑戰(zhàn)過于艱巨,在實際應(yīng)用時很難滿足實時性[3]。此外,在視頻序列中存在的噪聲會對光流法的追蹤產(chǎn)生極大的干擾,因此光流法現(xiàn)在很難得到廣泛的應(yīng)用。由于對視覺跟蹤這一項技術(shù)的研究價值和研究回報非常高,并且隨著計算機(jī)技術(shù)在上世紀(jì)末期取得的卓越進(jìn)步,人們對于計算機(jī)視覺跟蹤技術(shù)發(fā)展的需求愈發(fā)強(qiáng)烈,這使得歐美等發(fā)達(dá)國家開始了對視覺跟蹤技術(shù)開展了深入探索和研究。1997年通過美國國防署牽頭,美國CarnegieMellon大學(xué)為首,由麻省理工大學(xué)等眾多知名高校參與的視覺監(jiān)控重大項目VASM(VisualSurveillanceandMonitoring)成立,在對用于戰(zhàn)場和普通民用場所進(jìn)行監(jiān)控的自動視頻理解技術(shù)這一課題展開研究。美國波士頓大學(xué)研制的用于在高速公路上行駛的汽車上的實時視覺系統(tǒng)采用顏色,邊緣和運(yùn)動信息來識別和跟蹤道路邊界、車道和其他車輛。Maryland大學(xué)所研制的實時視覺監(jiān)控系統(tǒng)是對一個人及其肢體行為進(jìn)行實時處理的系統(tǒng),它不僅能夠檢測并跟蹤人的肢體活動,還可以通過建立人物的外觀模型來實現(xiàn)對多個人進(jìn)行目標(biāo)跟蹤,甚至還能夠檢測出是否有物體被跟蹤對象攜帶等行為[4]。此外,英國的雷丁大學(xué)對車輛和行人進(jìn)行跟蹤并開展其交互作用識別的相關(guān)研究。美國麻省理工大學(xué)在物體的檢測、識別和跟蹤方面也做了大量研究工作。國內(nèi)在1986年開始對視覺跟蹤技術(shù)展開研究,在視覺跟蹤領(lǐng)域的理論知識與實踐技術(shù)方面得到了發(fā)展[5]。除此之外,中國科學(xué)院自動化研究所、清華大學(xué)、交通大學(xué)等在目標(biāo)檢測、識別和跟蹤方面做了大量研究工作,取得了一系列研究成果。目前這項技術(shù)在民用領(lǐng)域,如視頻監(jiān)控,人臉識別,車輛識別等場合應(yīng)用研究比較多,取得了較大的成就。OpenCV的發(fā)展現(xiàn)狀OpenCV是OpenSourceComputerVisionLibrary的簡稱,是由英特爾公司所資助的開源計算機(jī)視覺庫,包含許多計算機(jī)視覺方面的通用算法來實現(xiàn)圖像的處理,比如說圖像的特征檢測與追蹤、運(yùn)動軌跡分析以及目標(biāo)的識別和分割。隨著時代發(fā)展,人們對數(shù)字圖像的處理需求不斷增加,越來越多的圖像處理軟件和程序也應(yīng)運(yùn)而生。但它們或多或少都有些缺點:很少有軟件包對高級數(shù)學(xué)函數(shù)進(jìn)行收錄;MATLAB雖然擁有豐富的數(shù)學(xué)函數(shù),但是其運(yùn)行速度相比較其他的軟件不夠理想;大多數(shù)軟件包對網(wǎng)絡(luò)服務(wù)器程序的應(yīng)用支持較差;大部分軟件包缺少可嵌入性。OpenCV是在C/C++語言的基礎(chǔ)上所開發(fā)的一種開源軟件,它可以在Linux、Windows、Android等操作系統(tǒng)上運(yùn)行,還提供有MATLAB、Python等語言的接口,使許多計算機(jī)視覺方面的很多算法以及圖像處理的實際操作得以實現(xiàn),其巨大的函數(shù)庫可以為大多數(shù)計算機(jī)視覺問題創(chuàng)建一個完整的解決方案[6]。OpenCV因為其高水平的圖像處理和矩陣運(yùn)算能力,函數(shù)處理庫豐富多樣,可以大大減少開發(fā)人員開發(fā)時的投入精力,有效地提高程序的開發(fā)效率并減少運(yùn)行時程序報錯的幾率。因此在計算機(jī)視覺的圖像處理上廣泛使用OpenCV,OpenCV近幾年在圖像的特征檢測以及圖像識別方面所發(fā)揮的作用越來越重要。CV圖像處理和視覺算法MCV圖像處理和視覺算法MLL統(tǒng)計分類器HihhGUIGUI、圖像和視頻輸入、輸出CCXCORE基本結(jié)構(gòu)和算法、XML支持、繪圖函數(shù)圖STYLEREF1\s1.SEQ圖\*ARABIC\s11OpenCV基本架構(gòu)Python的發(fā)展現(xiàn)狀Python是在上世紀(jì)90年代初所設(shè)計的一門計算機(jī)編程語言,它不僅有高效的高級數(shù)據(jù)結(jié)構(gòu)可以選擇,還可以簡潔明了地直接面向編程對象進(jìn)行編程。自2004年起,Python的使用率逐年增長。Python語言作為解釋型的通用語言,因為其擁有簡潔、易讀和可擴(kuò)展性等相比于其他編程開發(fā)語言所不具備的特點,國外進(jìn)行一些科學(xué)計算的研發(fā)也越來越傾向于使用Python語言,有些知名的大學(xué)甚至采用Python語言來進(jìn)行程序設(shè)計的教學(xué)。此外,Python的調(diào)用接口在眾多開源的科學(xué)計算軟件中都能提供,例如計算機(jī)OpenCV視覺庫、三位可視化庫VTK以及醫(yī)學(xué)圖像處理庫ITK;而Python也有不少專用科學(xué)計算擴(kuò)展庫,比如說為Python分別提供了數(shù)值的快速處理、數(shù)值的計算和繪制圖片等功能的NumPy、SciPy和Matplotlib。因此在實驗數(shù)據(jù)處理、圖表繪制以及對應(yīng)用程序開發(fā)方面選擇Python語言以及用它眾多的程序擴(kuò)展庫來搭建開發(fā)環(huán)境成了眾多人的選擇。Python目前的前景發(fā)展良好,是人工智能編程首選的語言,除此之外Python還在Web開發(fā)、嵌入式應(yīng)用開發(fā)和自動化運(yùn)行等方面展現(xiàn)出了越來越大的作用。研究的意義與目的感覺是人們與外界交流的橋梁,是人們感受外界信息的窗口,它的主要作用是識別我們周圍的物體并判別它們的聯(lián)系,使人類的主觀思維和客觀世界建立起關(guān)系。而視覺系統(tǒng)是人類的主要感官系統(tǒng)之一,是獲取外界信息的主要媒介。但我們的眼睛受到視野和精度限制,使我們的視覺系統(tǒng)在各領(lǐng)域發(fā)揮的作用都非常有限。隨著計算機(jī)技術(shù)的高速發(fā)展,讓計算機(jī)處理視覺信息,彌補(bǔ)人類視覺系統(tǒng)的不足成為了一項重要研究課題,計算機(jī)視覺技術(shù)這一項研究的發(fā)展因此得到了推動。計算機(jī)視覺這一學(xué)科是將圖像處理、人工智能、計算機(jī)識別模式、計算機(jī)圖形、物理和數(shù)學(xué)等領(lǐng)域相融合交互性很強(qiáng)的學(xué)科。計算機(jī)視覺的研究目的是把我們感官所感知到的外部世界中物體的形狀,位置以及運(yùn)動信息進(jìn)行識別、描述和儲存。對運(yùn)動的目標(biāo)進(jìn)行追蹤是視頻分析方面的研究,視頻分析的研究方向是對圖像的序列進(jìn)行分析處理,分析預(yù)測出目標(biāo)運(yùn)動的軌跡和運(yùn)動的規(guī)律或者是向系統(tǒng)決策提供是否支持執(zhí)行上報信息的支持,主要研究內(nèi)容有對運(yùn)動物體檢測、對目標(biāo)識別并分類以及目標(biāo)追蹤等[7]。對視頻中運(yùn)動的目標(biāo)進(jìn)行追蹤的研究和應(yīng)用是人們對計算機(jī)視覺領(lǐng)域重點關(guān)心的科學(xué)技術(shù),現(xiàn)在在科學(xué)建設(shè)、國防技術(shù)、航空航天等科學(xué)研究方面正被日漸廣泛地應(yīng)用,上到國家科研,下到人民生活,目標(biāo)的自動識別和跟蹤技術(shù)在現(xiàn)代社會中正扮演著重要作用并且發(fā)展前景廣闊。主要研究內(nèi)容1.熟悉OpenCV的整體結(jié)構(gòu),熟悉并掌握OpenCV編程,了解OpenCV的算法,并使用算法運(yùn)行出結(jié)果,實現(xiàn)在場景中的自動識別與追蹤系統(tǒng)。2.使用Python語言編程運(yùn)行目標(biāo)自動識別和跟蹤的程序并分析程序結(jié)構(gòu),了解其原理。3.了解計算機(jī)圖像處理的過程,即對數(shù)字圖像去噪、目標(biāo)檢測的實時性和可靠性與跟蹤算法的穩(wěn)定性與可靠性進(jìn)行研究。4.從監(jiān)控視頻圖像中的眾多物體中準(zhǔn)確識別出不同的物體并進(jìn)行位置持續(xù)追蹤。
計算機(jī)圖像處理相關(guān)技術(shù)圖像顏色模型計算機(jī)圖像中的顏色模型就是用一組數(shù)值來對顏色進(jìn)行描述的數(shù)學(xué)模型。下面主要介紹下RGB模型。RGB顏色模型又被叫做三基色模型,是計算機(jī)圖像中最常用的顏色模型,也是編輯圖像模型所用到的最佳色彩模式。RGB色彩模型采用三維笛卡爾坐標(biāo)系,在顏色坐標(biāo)空間內(nèi),任何一種色光都可以由紅(R,波長700nm)、綠(G,波長546.1nm)、藍(lán)(B,波長435.8nm)三基色按照不同的比例相加混合而成[8]。圖STYLEREF1\s2.SEQ圖\*ARABIC\s11RGB顏色模型RGB模型如圖2.1所示,其坐標(biāo)系原點位置(0,0,0)所對應(yīng)的顏色為黑色,離原點距離最遠(yuǎn)的頂點為白色。圖像處理為了對視頻中運(yùn)動的目標(biāo)進(jìn)行識別并追蹤,要先對視頻中的圖像序列開展目標(biāo)分割并識別,即先對所要分析處理的圖像序列進(jìn)行處理前的準(zhǔn)備工作。為了消除圖像中的噪聲等一些沒有用的信息,我們可以通過對圖像進(jìn)行預(yù)處理來達(dá)成目的,這有助于我們在后續(xù)過程中對圖像中運(yùn)動的目標(biāo)進(jìn)行準(zhǔn)確地識別,這樣不僅可以簡化圖像數(shù)據(jù),還可以提高算法的可靠性。對圖像進(jìn)行平滑去噪是預(yù)處理中所使用的常見方法,它去除圖像中的無用信息的方式是抑制圖像中的噪聲,然后高亮顯示出圖像中重要的外部輪廓信息并進(jìn)行提取。圖像的平滑處理令圖像的亮度平緩漸變,圖像突變梯度減小以達(dá)到改善圖像質(zhì)量這一目的[9]。讓圖像的顏色灰度變化更光滑是圖像平滑處理的目的。圖像的平滑可以通過低通濾波來達(dá)成[10]。不同的濾波所發(fā)揮的作用各不相同,低通濾波是將圖像中的噪聲去除,而高通濾波則是將圖像邊緣提取出來。圖像的銳化是對圖像邊緣輪廓進(jìn)行補(bǔ)償,通過增強(qiáng)圖像的邊緣以及灰度跳變部分來讓圖像變得清晰。圖像銳化的目的是突出圖像上物體的邊緣輪廓,或是某些線性目標(biāo)要素的特征,從而有利于對目標(biāo)物體的邊界進(jìn)行分割提取。圖像的銳化提高了地物邊緣與周圍像元之間的反差,因此也被稱為邊緣增強(qiáng)[11]。圖像灰度化由于彩色圖像中所存儲的數(shù)據(jù)量較大,會增加后續(xù)目標(biāo)檢測和追蹤的計算量,所以需要對圖像進(jìn)行灰度化處理?;叶戎傅氖敲恳粋€像素在灰度圖像上的顏色值,指的是在黑白圖像中每一個點的顏色深度,范圍在0~255之間,0代表黑色,255代表白色,灰度值指的是色彩的濃淡程度?,F(xiàn)在大部分的彩色圖像采用的都是RGB顏色模式,所以在對圖像進(jìn)行處理的時候,要分別對R、G、B三種顏色分量進(jìn)行處理,但是實際上RGB顏色模型并不能完全反映出圖像的形態(tài)特征,只是從光學(xué)的原理上來對顏色進(jìn)行調(diào)配[12]。圖像的灰度化處理是圖像預(yù)處理的重要步驟,為之后進(jìn)行圖像分割、圖像識別和圖像分析等后續(xù)上層操作打下基礎(chǔ)。圖像灰度化主要有分量法,最大值法和平均值法三種方法。分量法是將彩色圖像中的三分量的亮度作為三個灰度圖像的灰度值??梢粤袨镕1(i,j)=R(i,j);F2(i,j)=G(i,j);F3(i,j)=B(i,j)三個分式,其中Fk(i,j)(k=1,2,3)為轉(zhuǎn)換后的灰度圖像在(i,j)處的灰度值。最大值法是將彩色圖像中的RGB三原色分量中,亮度的最大值作為灰度圖的灰度值。即R=G=B=max(R,G,B)(2.1)平均值法是求取彩色圖像中的RGB三原色分量亮度的平均值得到的一個灰度值。即R=G=B=(R+G+B)/3(2.2)Canny邊緣檢測Canny邊緣檢測法是在1986年被提出的,但直到今天它仍然是圖像邊緣檢測算法中最優(yōu)異的算法之一。和其他算法比較,Canny邊緣檢測不僅可以充分利用邊緣的梯度方向,抑制了邊緣梯度方向的非極大值,還對最后得到的二值圖像利用了雙閾值滯后閾值處理。Canny邊緣檢測基于三個基本條件:低錯誤率;很好地定位邊緣點;單一邊緣點響應(yīng)[13]。所以,Canny邊緣檢測法的步驟如下:首先,用高斯濾波平滑處理輸入的圖像來濾除噪聲以降低報錯率;接著通過一階偏導(dǎo)的有限差分法運(yùn)算梯度幅度的大小和方向,以此估算出每一點的邊緣方向和強(qiáng)度;然后根據(jù)計算得出的梯度方向,對梯度幅值進(jìn)行非極大值抑制,通過這一步操作來獲得梯度幅值內(nèi)最大的像素點并把它設(shè)定為邊緣點;除去所有不滿足成為邊緣點條件的點,通過留下的邊緣點來確定輪廓的邊緣;雙閾值處理和邊緣的連接,對梯度幅值進(jìn)行邊緣點的檢測。常見的圖像濾波方式圖像濾波是在盡量不破壞圖像的細(xì)節(jié)特征的基礎(chǔ)上,抑制目標(biāo)圖像中的噪聲,是在圖像預(yù)處理過程中不可缺少的一部分,這一操作對圖像進(jìn)行預(yù)處理的結(jié)果會令后續(xù)更上層的圖像處理和圖像分析的可靠性、有效性直接產(chǎn)生重大影響。又因為成像系統(tǒng)、傳輸介質(zhì)和記錄設(shè)備目前還不夠完善,數(shù)字圖像在形成和傳輸?shù)倪^程中經(jīng)常會被各種各樣的噪聲所污染。除此之外,在圖像處理的某些過程當(dāng)中,當(dāng)輸入的圖片不符合預(yù)期圖像效果時,會在生成出的圖像中引入噪聲。產(chǎn)生的這些噪聲通常會以孤立的像素點或像素塊的形式出現(xiàn)在圖像中,產(chǎn)生強(qiáng)烈的視覺效果。一般來說,噪聲信號是獨立于被研究的對象的,并且以干擾圖像可觀察信息的無用信息的形式出現(xiàn)。對于數(shù)字圖像信號,噪聲表是指噪聲的最大值或最小值。這些極值對各個圖像像素的真實的灰度值或增大,或減小,使得圖像中產(chǎn)生亮點和暗點,對視覺觀感造成了影響,使圖像的質(zhì)量大大降低,對后續(xù)的圖像恢復(fù)、分割、特征提取和圖像識別等操作產(chǎn)生影響。為了有效地去除目標(biāo)和背景中的噪聲,構(gòu)造一個有效的噪聲抑制濾波器必須考慮。同時,可以很好地保護(hù)圖像對象的形狀、大小以及特定的幾何和拓?fù)涮卣?。常見的濾波方法有均值濾波,高斯濾波,中值濾波和雙邊濾波等。均值濾波是一種典型的線性濾波算法。它是在圖像上給目標(biāo)像素一個模板,該模板包括目標(biāo)像素在內(nèi)和周圍8個像素共同構(gòu)成一個濾波模板,然后再用模板中的全體像素的平均值來代替每一個像素原來的像素值,這樣能夠降低圖像中像素點“突然”的變化,這一特點也使得均值濾波器在降低圖像當(dāng)中噪聲的同時,也會使圖像的邊緣變得模糊[14]。均值濾波器的處理結(jié)果是把圖像中與濾波器模板大小相比較小的像素區(qū)域濾除。圖STYLEREF1\s2.SEQ圖\*ARABIC\s12均值濾波后效果中值濾波是一種非線性信號處理方法,因此它既是一種非線性濾波器,又是一種統(tǒng)計排序濾波器。它是將每一個像素點的灰度值設(shè)置為該點所在的周圍區(qū)域內(nèi)的所有像素的灰度中值。它處理孤立的噪聲像素,如椒鹽噪聲和脈沖噪聲有很好的濾波效果,可以保持圖像的邊緣特性,不會造成圖像外部輪廓的顯著模糊。中值濾波是將數(shù)字圖像或數(shù)字序列中的一個像素點的值替換為該點附近所有像素點的中值,使其周圍的所有像素值都接近于一個真實值,從而消除孤立的噪聲點。中值濾波對于脈沖噪聲有很好的濾波效果,特別是在濾波噪聲時,它可以保護(hù)信號的邊緣不被模糊。而線性濾波方法不具備這些優(yōu)良的特性。此外,中值濾波算法相比于其他濾波算法較為簡潔,更容易通過硬件實現(xiàn)。因此,中值濾波方法被廣泛應(yīng)用于數(shù)字信號處理領(lǐng)域。高斯濾波是一種線性平滑濾波,主要被用來消除高斯噪聲,在圖像處理的降噪過程中被廣泛運(yùn)用。一般來說,高斯濾波就是對整個圖像的像素點進(jìn)行加權(quán)平均的過程。每個像素的值都是通過對其本身和鄰域內(nèi)其他像素值的加權(quán)平均得到的。高斯濾波的具體工作原理是用一個模板去掃描圖像中的每一個像素點,然后用模板所確定的鄰域像素的加權(quán)平均灰度值去替換掉模板中心像素的值。高斯濾波的作用相當(dāng)于是信號的濾波器,用于對信號的平滑處理。雙邊濾波是一種非線性的濾波方法,是集合了圖像的空間的鄰近性和像素值的相似度,并同時考慮了空間信息和灰度的相似度,以實現(xiàn)保持原有的邊緣輪廓和去除噪聲的目的。雙邊濾波對輪廓邊緣的保持較好。通常用來降低噪聲的高斯濾波會使輪廓邊緣的模糊更加明顯,而對于高頻細(xì)節(jié)的保護(hù)效果不夠明顯。雙邊濾波器是比高斯濾波器多一個高斯方差sigma-d,即基于空間分布的高斯濾波器函數(shù)。因此,在靠近輪廓邊緣的地方,離邊緣較遠(yuǎn)的像素點不會對邊緣上的像素值產(chǎn)生太大的影響,從而使輪廓邊緣附近的像素值得到了較好的保存。但由于這種方法保留了太多的高頻信息,對于彩色圖像中的高頻噪聲,雙邊濾波器不能完全干凈地將高頻噪聲濾除,只能用于對低頻信息中的噪聲進(jìn)行濾波。由于不同類型的噪聲其產(chǎn)生的原因也各不相同,每一種濾波器對于不同的噪聲濾波效果也不一樣,選擇濾波器的時候要根據(jù)具體的濾波要求對不同的噪聲選用合適的濾波器來進(jìn)行濾除。濾除高斯噪聲,雙邊濾波器相較于其他幾種濾波器的去噪效果較好,圖像輪廓邊緣能很好地保留。處理椒鹽噪聲,相比其他幾種濾波器來說,中值濾波器的去噪效果更好,能夠基本濾除噪聲而其他幾種濾波方式只是稍微弱化了噪聲影響,效果甚微。基于圖像的目標(biāo)自動識別與跟蹤技術(shù)研究的設(shè)計實現(xiàn)目標(biāo)的自動識別和跟蹤技術(shù)的程序主要分兩部分:識別不同圖像的邊緣輪廓和對識別的目標(biāo)的持續(xù)跟蹤。程序運(yùn)行開發(fā)環(huán)境搭載程序開發(fā)環(huán)境的配置是運(yùn)行算法的重要基礎(chǔ)。本文中運(yùn)行的目標(biāo)自動識別和跟蹤程序是以Python語言為基礎(chǔ),OpenCV視覺庫中豐富的函數(shù)及算法為支持,在PyCharm中安裝Python解釋器來輸入程序進(jìn)行試運(yùn)行,利用Anaconda軟件運(yùn)行結(jié)果。PyCharm是一種Python語言的集成開發(fā)環(huán)境,擁有一整套提高Python語言開發(fā)效率的工具,能幫助我們進(jìn)行調(diào)試、代碼行跳轉(zhuǎn)、項目管理、函數(shù)語法高亮提示等一系列高級的輔助功能,對于檢查程序的語法問題非常有幫助,故在下載了PyCharm的基礎(chǔ)上加裝Python解釋器來調(diào)試程序完善代碼。由于VisualStudio軟件平臺對Python語言支持不夠,換用Anaconda來執(zhí)行運(yùn)算算法結(jié)果。Anaconda支持眾多操作系統(tǒng),還提供有環(huán)境管理功能,能很好地解決眾多Python版本的共存問題以及外部環(huán)境安裝配置等。圖STYLEREF1\s3.SEQ圖\*ARABIC\s11Python解釋器配置算法流程設(shè)計程序設(shè)計主要思路是先通過函數(shù)命令讀取文件夾中所需用到的視頻文件,接著將讀取的視頻文件拆分成一幀一幀的圖像,并對每一幀圖像進(jìn)行預(yù)處理,濾除圖像噪聲并提取運(yùn)動目標(biāo)的外部輪廓,為之后的目標(biāo)識別打下基礎(chǔ)。隨后識別視頻圖像中的不同汽車并對不同的汽車編不同的號碼。最后部分是對識別出的不同汽車在較近距離的視野內(nèi)進(jìn)行持續(xù)穩(wěn)定的追蹤,同時能看到坐標(biāo)位置的變化。圖像采集圖像采集使圖像平滑使圖像平滑圖像預(yù)處理圖像預(yù)處理噪聲去除噪聲去除目標(biāo)識別圖像分割目標(biāo)識別圖像分割目標(biāo)特征提取目標(biāo)特征提取跟蹤算法跟蹤算法目標(biāo)跟蹤確定目標(biāo)位置目標(biāo)跟蹤確定目標(biāo)位置圖STYLEREF1\s3.SEQ圖\*ARABIC\s12算法流程設(shè)計思路圖像的識別識別運(yùn)動中的目標(biāo)物體是要在背景圖像中將某一部分確定的區(qū)域分割并提取出來的過程[15]。要想準(zhǔn)確地識別出運(yùn)動狀態(tài)下的目標(biāo)就必須消除周圍場景的干擾如光線,云層,影子等一系列自然性因素造成的干擾?,F(xiàn)在對運(yùn)動目標(biāo)進(jìn)行檢測的算法主要分為兩類,一類是以背景差分法和光流法為代表,基于檢測目標(biāo)運(yùn)動信息的算法[16]。另一類是對特定的目標(biāo)進(jìn)行檢測的算法,這種算法是通過讀取目標(biāo)的特征信息來建立運(yùn)動模型,不會受到目標(biāo)運(yùn)動信息影響,可以準(zhǔn)確地檢測到特定目標(biāo),更具有準(zhǔn)確性和可靠性,但是計算量較大,所以實時性較差[17]。YOLOv4算法YOLO系列的目標(biāo)檢測算法是一種較為經(jīng)典的單階段目標(biāo)檢測框架,具有較快的推算速度,可以較好地滿足現(xiàn)實場景的要求。YOLO一開始是被Redmon提出的一個基于回歸單階段的算法,在YOLOv3版本中設(shè)計引入了特征金字塔網(wǎng)絡(luò)提高了檢測的精度以及檢測目標(biāo)的能力[18]。目標(biāo)檢測部分程序所用到的YOLOv4算法是以YOLOv3為基礎(chǔ)進(jìn)行改進(jìn),使得其運(yùn)算速度和運(yùn)算精度都得到了極大提升。下圖展示了YOLOv4目標(biāo)檢測算法的整體架構(gòu)圖。圖STYLEREF1\s3.SEQ圖\*ARABIC\s13YOLOv4網(wǎng)絡(luò)架構(gòu)一個目標(biāo)檢測算法通??梢詣澐譃樗膫€通用模塊:輸入端、基準(zhǔn)網(wǎng)絡(luò)、Neck網(wǎng)絡(luò)與Head輸出端。輸入端就是所需處理的圖像輸入的端口,這一階段是圖像進(jìn)行預(yù)處理的階段,系統(tǒng)會將要輸入的圖像進(jìn)行縮放,使其與網(wǎng)絡(luò)的輸入大小一致并進(jìn)行歸一化操作?;鶞?zhǔn)網(wǎng)絡(luò)一般是用于提取通用特征來表示的。YOLOv4使用了CSPDarknet53結(jié)構(gòu)作為基準(zhǔn)網(wǎng)絡(luò);用Mish激活函數(shù)來代替原來的RELU激活函數(shù)。此外,該模塊中還加入了DropBlock模塊,進(jìn)一步提高了模型的泛化能力。Neck網(wǎng)絡(luò)是用來提升特征的多樣性和魯棒性的,YOLOv4算法通過SSP模塊來融合不同尺寸的特征圖像。最后Head輸出端是用來輸出目標(biāo)檢測的結(jié)果。YOLOv4利用CIOU_LOSS函數(shù)來代替SmoothL1Loss函數(shù),并利用DIOU_NMS來代替?zhèn)鹘y(tǒng)的NMS操作,進(jìn)一步提升了算法的檢測精度[19]。YOLOv4算法的調(diào)用本文的目標(biāo)識別檢測程序是調(diào)用了YOLOv4算法架構(gòu),調(diào)用并讀取了路徑為dnn_model文件夾中物體的各種信息特征及數(shù)字圖像處理的卷積模板,對每幀的運(yùn)動目標(biāo)特征完成提取,將其從背景圖像中提取出來,以此對目標(biāo)進(jìn)行識別。輸入端將每幀圖像縮放為608*608的大小,非極大抑制值設(shè)為0.4。圖STYLEREF1\s3.SEQ圖\*ARABIC\s14調(diào)用命令程序框架的設(shè)計在正式程序開始前,先使用import命令將OpenCV庫和Python擴(kuò)展程序庫以方便后續(xù)的程序命令實現(xiàn)和運(yùn)行。接著要讀取所需要用到的視頻文件,通過VideoCapture命令來加載讀取所需要的視頻文件素材。視頻的本質(zhì)上是一幀一幀眾多連續(xù)圖像的集合,對圖像中的目標(biāo)識別也是建立在識別目標(biāo)在每一幀上的位置,故需編輯算法完成視頻循環(huán)時逐幀提取視頻中的圖像。同時設(shè)定停止運(yùn)行并關(guān)閉程序窗口命令的鍵位,按Esc鍵釋放視頻文件,退出程序運(yùn)行,關(guān)閉所有窗口。此處使用了基礎(chǔ)的選擇結(jié)構(gòu)編寫程序來實現(xiàn)本次操作。圖STYLEREF1\s3.SEQ圖\*ARABIC\s15視頻幀圖像的提取按鍵按鍵所按鍵位是否為“Esc”是否釋放視頻,退出程序的運(yùn)行并關(guān)閉所有相關(guān)窗口繼續(xù)程序的運(yùn)行圖STYLEREF1\s3.SEQ圖\*ARABIC\s16中途退出運(yùn)行的程序流程當(dāng)前幀數(shù)讀取當(dāng)前幀數(shù)讀取當(dāng)前幀數(shù)+1當(dāng)前幀數(shù)+1當(dāng)前幀是否還有圖像當(dāng)前幀是否還有圖像否是否是視屏結(jié)束視屏結(jié)束結(jié)束程序運(yùn)行關(guān)閉所有窗口圖STYLEREF1\s3.SEQ圖\*ARABIC\s17逐幀判斷視頻是否結(jié)束的算法流程圖由于視頻的時長是有限的,即圖像集合的幀數(shù)有限,當(dāng)視頻播放完畢時,不能檢測到圖像,需要結(jié)束程序并退出運(yùn)行窗口。這里需要加入一個多結(jié)構(gòu)的程序來完成實現(xiàn)操作。先加入選擇結(jié)構(gòu)讀取當(dāng)前幀數(shù),初始幀數(shù)計數(shù)為0,先執(zhí)行操作使當(dāng)前幀數(shù)+1,接著判斷當(dāng)前幀是否還有圖像,如果沒有圖像則退出循環(huán),結(jié)束所有進(jìn)程并關(guān)閉窗口,如果還有圖像則說明當(dāng)前幀不是最后一幀,嵌套加入循環(huán)結(jié)構(gòu)繼續(xù)執(zhí)行count命令令當(dāng)前幀幀數(shù)+1,同時對當(dāng)前幀進(jìn)行計數(shù),繼續(xù)判斷,直到檢測到最后一幀圖像為止或手動按下“Esc”鍵退出程序的運(yùn)行。目標(biāo)識別的設(shè)計為了完成對視頻中出現(xiàn)的各種車輛進(jìn)行目標(biāo)識別,再次使用import命令將對象檢測算法載入后,可以來檢測視頻框架中的目標(biāo)對象。在目標(biāo)檢測算法中讀取的名稱為dnn_model的文件里含有足夠的目標(biāo)對象信息來準(zhǔn)確地檢測識別出不同的目標(biāo)。不同的目標(biāo)經(jīng)過識別區(qū)分后,是要明確顯示出不同的運(yùn)動目標(biāo)并簡化算法,下面將直接通過程序把識別出的不同目標(biāo)分別用同一類型的矩形框框出一個個區(qū)域。此處由于視野較遠(yuǎn)處的目標(biāo)特征輪廓提取較為模糊,圖像特征信息難以被準(zhǔn)確識別,故距離鏡頭視野較遠(yuǎn)的目標(biāo)將不會被識別框出。完成了框出目標(biāo)物體的代碼后要確定框大小位置等信息,要想確定矩形框的位置就要有矩形起始點的位置和矩形的長和寬。程序中使用(x,y,w,h)四個參數(shù)來確定框的大小和位置。其中x,y確定了矩形框左上角的頂點的坐標(biāo),w和h分別表示矩形框的長和寬,(x+w,y+h)確定了矩形框右下角的點,同時通過RGB顏色模型設(shè)定框的顏色,綠色(0,255,0)和框的粗細(xì),以此完成目標(biāo)識別并且框出識別到的不同目標(biāo)物體。程序中加入print命令來打印當(dāng)前幀的幀數(shù)以及此時屏幕中識別到的目標(biāo)物體框的頂點坐標(biāo)及長寬確定當(dāng)前幀數(shù)中目標(biāo)的位置,為后續(xù)進(jìn)行目標(biāo)跟蹤的設(shè)計打下基礎(chǔ)。圖STYLEREF1\s3.SEQ圖\*ARABIC\s18框出識別出的運(yùn)動目標(biāo)目標(biāo)圖像的跟蹤設(shè)計目前常見的目標(biāo)跟蹤算法分為四種:一種是基于建立的物體模型進(jìn)行跟蹤,一種是基于主動輪廓進(jìn)行跟蹤,一種是基于區(qū)域進(jìn)行跟蹤,還有一種是基于特征進(jìn)行跟蹤[20]。本文采用基于對區(qū)域的跟蹤設(shè)計,通過上一部分的設(shè)計,在將識別出的目標(biāo)框出后,以每個目標(biāo)框作為區(qū)域,利用框出的目標(biāo)區(qū)域?qū)Σ煌哪繕?biāo)進(jìn)行跟蹤,在每個目標(biāo)框內(nèi)取中心點作為位置參考,以同一個中心點在不同幀的坐標(biāo)位置變化反應(yīng)物體的位置變化,通過對不同目標(biāo)框的跟蹤來實現(xiàn)對不同物體的跟蹤。根據(jù)上圖3.2的設(shè)計流程,之前已經(jīng)完成了對視頻逐幀圖像進(jìn)行預(yù)處理的準(zhǔn)備,并搭建完整個程序流程的框架和識別出圖像中不同的目標(biāo)后,是要設(shè)計出對識別出對不同的目標(biāo)進(jìn)行持續(xù)跟蹤的算法。盡管上一章運(yùn)行的程序已經(jīng)能夠識別并框出不同的目標(biāo),但是隨著視頻的播放,幀與幀之間圖像上的目標(biāo)并沒有關(guān)聯(lián),如果我們要跟蹤其中一個物體的位置變化,就要看這個物體識別框的坐標(biāo)位置變化,但是現(xiàn)在還不能實現(xiàn),因為現(xiàn)在無法判斷該識別框?qū)?yīng)了上一幀圖像中哪一個識別框,無法準(zhǔn)確匹配到同一輛車,得到確切的坐標(biāo)位置變化。現(xiàn)在只是做到檢測一輛輛車的隨機(jī)框的坐標(biāo),隨著時間推移,他們之間沒有位置變化的聯(lián)系。所以這里要先取出框架的中心點并對其進(jìn)行編號以此確定每個物體的移動位置變化。設(shè)框架中心點橫坐標(biāo)cx?。▁+x+w)/2,中心點縱坐標(biāo)cy取(y+y+h)/2,同時以每個中心點為圓心,以RGB顏色模型確定中心點顏色(255,0,0)為紅色,畫一個小的實心圓,并創(chuàng)建一個數(shù)組來儲存這些中心點坐標(biāo)信息。此時隨著圖像上視頻的播放,不僅存在這一幀的中心點,上一幀的中心點也被留在了視頻圖像上。雖然已經(jīng)能跟蹤到物體的位置變化,能比較物體和前一幀的坐標(biāo)位置,但隨著視頻的進(jìn)行,屏幕上的中心點會越來越多,進(jìn)而引發(fā)混亂,令存儲位置信息的數(shù)組越來越大,影響后續(xù)的運(yùn)行。我們需要進(jìn)行新的操作讓其僅檢查前后兩幀之間的變化,一步一步跟隨對象而不是保留對象所有的歷史紀(jì)錄。這里首先需要建立一個數(shù)組來存放當(dāng)前幀的中心點坐標(biāo),在這段程序后面建立一個用來存放前一幀的中心點坐標(biāo),并把當(dāng)前幀的中心點坐標(biāo)復(fù)制給它,便于比較,并用print指令將前后幀的中心點坐標(biāo)打印?,F(xiàn)在不僅可以得到前一幀和后一幀的坐標(biāo)比較,還可以利用兩坐標(biāo)點和勾股定理的計算函數(shù)來計算兩點間距離。同時把上一幀的坐標(biāo)點覆蓋存放先前幀坐標(biāo)的數(shù)組中,把當(dāng)前幀的坐標(biāo)點覆蓋存放進(jìn)這一幀坐標(biāo)的數(shù)組中。圖STYLEREF1\s3.SEQ圖\*ARABIC\s19前后幀坐標(biāo)比較完成了前后幀坐標(biāo)的對比,我們還要準(zhǔn)確判斷跟蹤的目標(biāo),并對他編號。這里通過插入一個判斷結(jié)構(gòu)比較前后幀之間的距離判斷是否為同一目標(biāo),假設(shè)兩坐標(biāo)點之間在兩幀之間移動的距離小于10個像素,判斷是否,如果是,則認(rèn)為是同一個目標(biāo)對象。此處要添加一個新變量名稱tracking_objects來存放跟蹤的目標(biāo)坐標(biāo)信息,還要建立trackid對目標(biāo)進(jìn)行編號,因為識別到的不同的汽車要有不同的編號。當(dāng)跟蹤目標(biāo)和編號開始計數(shù)時,將一個中心坐標(biāo)點賦值給跟蹤目標(biāo)tracking_objects,同時編號trackid值+1,同時將跟蹤的目標(biāo)物體編號和中心點坐標(biāo)信息加入,并用print指令打印現(xiàn)在這幀圖像上跟蹤目標(biāo)tracking_objects的信息使其與對應(yīng)坐標(biāo)點一起顯示以及用for…in…語句將對應(yīng)編號加入視頻中并出現(xiàn)在對應(yīng)坐標(biāo)附近。圖STYLEREF1\s3.SEQ圖\*ARABIC\s110目標(biāo)識別并跟蹤初次調(diào)試此時距視野鏡頭較近處的一輛車未能顯示編號id和中心點。猜測是由于視線效果近大遠(yuǎn)小的緣故,靠近底部的汽車距離鏡頭較近,所以一幀之間移動速度較快,移動距離超過10個像素,導(dǎo)致系統(tǒng)判斷其不是同一個目標(biāo),沒有對其進(jìn)行編號和保存坐標(biāo)點。這里對判斷規(guī)則稍作修改,但距離不能設(shè)定過遠(yuǎn),否則可能誤判到其他目標(biāo)。修改前后幀之間移動的位置距離小于20個像素則判定為同一目標(biāo)。修改后識別出的目標(biāo)都能被準(zhǔn)確跟蹤到,并正確識別。圖STYLEREF1\s3.SEQ圖\*ARABIC\s111調(diào)試后運(yùn)行結(jié)果但是隨著視頻的播放,同一中心點坐標(biāo)的id一直在更新變化,這意味著現(xiàn)在的目標(biāo)跟蹤做到還不夠精確,跟蹤設(shè)計的目標(biāo)是讓識別為相同目標(biāo)的一輛車保持相同的id?,F(xiàn)在的程序只是在添加坐標(biāo)點的id當(dāng)運(yùn)行到新的一幀時前一幀坐標(biāo)依然被顯示,且同一輛車在新幀的坐標(biāo)id在不斷更新,這意味著程序還需要改進(jìn)。首先在計算兩幀之間距離的基礎(chǔ)上附加嵌套一個選擇結(jié)構(gòu),讓程序只在開始時的前兩幀比較前一幀中心點和當(dāng)前幀中心點的距離。否則將比較對象換成當(dāng)前幀中心點與擁有目標(biāo)跟蹤id的中心點,如果兩點之間的距離小于20個像素則說明是同一輛車,則在存儲坐標(biāo)信息的數(shù)組中更新目標(biāo)坐標(biāo)點位置,將其id賦值給新位置的中心坐標(biāo)點并持續(xù)跟蹤。但此時出現(xiàn)了一個問題,當(dāng)車輛駛出圖像丟失id時,失去跟蹤目標(biāo)的id會留在屏幕上,需要添加代碼使目標(biāo)不再存在在圖像上時刪除他們。圖STYLEREF1\s3.SEQ圖\*ARABIC\s112目標(biāo)丟失因此當(dāng)循環(huán)執(zhí)行上述指令時,可以建立一個字典遍歷循環(huán)和坐標(biāo)數(shù)組,如果有沒更新的坐標(biāo)位置就及時更新,如果跟蹤的目標(biāo)不在圖像上就刪除它。在新的一幀中將上一幀已經(jīng)識別到的目標(biāo)id和坐標(biāo)點放入存放復(fù)制跟蹤的目標(biāo)信息的數(shù)組中進(jìn)行檢查,判斷是否為同一目標(biāo),檢查圖像及坐標(biāo)后通過創(chuàng)建新的變量并賦值trueorfalse來告知系統(tǒng)目標(biāo)是否還存在,并用選擇結(jié)構(gòu)決定:存在,則刪除上一幀坐標(biāo)信息用這一幀的坐標(biāo)信息覆蓋;若目標(biāo)不存在,即目標(biāo)離開了這陣圖像,則直接刪除該點坐標(biāo)和id信息。此外,對新識別到并進(jìn)行跟蹤的目標(biāo)要添加新的id,將新識別到的坐標(biāo)點放入現(xiàn)有的中心點數(shù)組中,建立新的識別目標(biāo)坐標(biāo)信息并用循環(huán)結(jié)構(gòu)不斷地為新識別的目標(biāo)賦予新的id。圖STYLEREF1\s3.SEQ圖\*ARABIC\s113識別與跟蹤效果圖跟蹤物體和圖像中中心點坐標(biāo)分別復(fù)制存放入不同數(shù)組跟蹤物體和圖像中中心點坐標(biāo)分別復(fù)制存放入不同數(shù)組在已識別目標(biāo)信息數(shù)組中遍歷物體i在已識別目標(biāo)信息數(shù)組中遍歷物體id和坐標(biāo)點信息否物體是否存在否物體是否存在是是距離計算距離計算兩點間距離<兩點間距離<20個像素判斷為同一物體,更新坐標(biāo)信息,刪除上一幀坐標(biāo)信息判斷為同一物體,更新坐標(biāo)信息,刪除上一幀坐標(biāo)信息移除坐標(biāo)id移除坐標(biāo)id繼續(xù)下一幀圖STYLEREF1\s3.SEQ圖\*ARABIC\s114坐標(biāo)位置跟新流程
4結(jié)論全文首先介紹了目標(biāo)的自動識別和跟蹤技術(shù)在現(xiàn)代生活中的各種應(yīng)用,并且指出該項研究技術(shù)在各個領(lǐng)域中發(fā)揮的重要作用,描述了其在國內(nèi)外的研究和發(fā)展歷史,隨后介紹了實現(xiàn)這項研究技術(shù)所使用到的計算機(jī)語言Python和OpenCV視覺庫,還解釋了選擇它們作為工具開發(fā)的原因,又介紹了一些圖像處理方面的相關(guān)知識以及要對圖像處理做的一些準(zhǔn)備工作。接著敘述了本文所要實現(xiàn)運(yùn)行的程序的大概要求:使用Python語言運(yùn)行能實現(xiàn)對不同的運(yùn)動目標(biāo)進(jìn)行識別并持續(xù)穩(wěn)定地對識別到的目標(biāo)分別進(jìn)行跟蹤的程序。隨后對系統(tǒng)的整體實現(xiàn)分別進(jìn)行了分析與解釋:先將整體程序的框架進(jìn)行搭建,完成視頻文件的讀取,在此基礎(chǔ)上將視頻逐幀圖像并預(yù)處理;接著通過調(diào)用的YOLOv4模塊及含有的多種物體信息來對圖像中不同的汽車進(jìn)行識別并將識別出的目標(biāo)分別用框框出;框出識別到的目標(biāo)后,對目標(biāo)的跟蹤程序進(jìn)行了一步一步的細(xì)化,成功通過對不同的目標(biāo)框進(jìn)行編號,并在不同幀之間保持編號不變來實現(xiàn)目標(biāo)的跟蹤,直到目標(biāo)消失在屏幕中。程序較為精確地實現(xiàn)了設(shè)計要求。通過這一次的畢業(yè)設(shè)計使我對程序的開發(fā)和Python語言的運(yùn)用有了更加深入的學(xué)習(xí)和了解。本系統(tǒng)還存在有不足之處,那就是對于視野距離較遠(yuǎn)處的物體無法提取足夠外部信息進(jìn)行識別,這是由于遠(yuǎn)處物體目標(biāo)輪廓較為模糊,隨意使用輪廓近似算法來修復(fù)外部輪廓可能導(dǎo)致外部輪廓失真影響到識別的準(zhǔn)確性;同時,由于識別方面是通過導(dǎo)入的物體信息來對視頻中的物體來進(jìn)行對比識別,要想識別出更多類型的目標(biāo)需要導(dǎo)入更多的信息。目標(biāo)自動識別和跟蹤技術(shù)具有非常廣闊的發(fā)展前景,它在未來的發(fā)展趨勢一定是逐步上升的,并且能越來越好地滿足我們的各種需求。隨著現(xiàn)代社會計算機(jī)視覺技術(shù)的高速發(fā)展,目標(biāo)識別和跟蹤技術(shù)也被大大地推動著發(fā)展,甚至在國防軍事領(lǐng)域也得到了應(yīng)用。在今后的學(xué)習(xí)和發(fā)展中,這項技術(shù)會得到越來越多的提升,取得我們難以想象的進(jìn)步,為我們帶來更多的便利。緊跟時代發(fā)展的潮流,把握
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)低年級趣味數(shù)學(xué)游戲設(shè)計
- 2025-2030光伏制氫產(chǎn)業(yè)鏈協(xié)同發(fā)展機(jī)遇與政策導(dǎo)向解讀報告
- 2025-2030兒童財商啟蒙教育的市場需求與社會價值雙重評估
- 2025-2030兒童腦科學(xué)應(yīng)用產(chǎn)品市場準(zhǔn)入壁壘與合規(guī)化路徑
- 2025-2030兒童繪畫表征能力與視覺皮層髓鞘化進(jìn)程的對照分析
- 2025-2030兒童神經(jīng)反饋治療設(shè)備的家庭版與醫(yī)療版市場細(xì)分策略
- 2025-2030兒童早期財商教育課程的市場需求與發(fā)展趨勢預(yù)測報告
- 2025-2030兒童數(shù)字閱讀產(chǎn)品對視知覺發(fā)展的促進(jìn)作用及內(nèi)容創(chuàng)作指南
- 2025-2030兒童康復(fù)醫(yī)學(xué)中心建設(shè)標(biāo)準(zhǔn)與連鎖化運(yùn)營可行性研究
- 2025-2030健身器材租賃商業(yè)模式可行性及運(yùn)營風(fēng)險預(yù)警報告
- 2024年河南鄭州高新區(qū)招聘社區(qū)工作人員筆試真題
- 財務(wù)部門增值稅發(fā)票管理操作手冊
- 完整版消防應(yīng)急預(yù)案范本三篇
- 2025版靜脈輸液治療實踐指南
- 骨科術(shù)后并發(fā)肺栓塞護(hù)理
- 人教PEP版(2024)2025-2026學(xué)年英語四年級上學(xué)期期中測試卷(含答案)
- 2025年融媒體中心招聘考試筆試試題(60題)含答案
- 滑雪場造雪培訓(xùn)課件模板
- 學(xué)堂在線 軍事理論 章節(jié)測試答案
- 六年級科學(xué)上冊各單元知識點梳理歸納
- 高邊坡施工危險源辨識及風(fēng)險評價一覽表
評論
0/150
提交評論