• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于OpenCV的深度學(xué)習(xí)目標(biāo)檢測與跟蹤

      2018-02-14 12:49:08柯研劉信言鄭鈺輝

      柯研 劉信言 鄭鈺輝

      摘要:目標(biāo)檢測和跟蹤在工業(yè)應(yīng)用中占有較大的比重,通過目標(biāo)識(shí)別技術(shù),可以快速準(zhǔn)確的檢驗(yàn)產(chǎn)品的一致性,降低工人勞動(dòng)強(qiáng)度,提高企業(yè)效益,本文主要介紹了一種開源的計(jì)算機(jī)視覺庫——OpenCV,OpenCV中集成的模塊能夠減少開發(fā)人員工作強(qiáng)度。本文對OpenCV中用于目標(biāo)檢測和跟蹤的模塊,和這些模塊的算法基礎(chǔ)進(jìn)行了簡要的介紹,本文還將對OpenCV中提供的DNN深度神經(jīng)網(wǎng)絡(luò)模塊的相關(guān)內(nèi)容和算法框架進(jìn)行簡要的介紹。

      關(guān)鍵詞:OpenCV;DNN;目標(biāo)檢測與跟蹤

      中圖分類號(hào):TP391.41? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):1007-9416(2018)10-0000-00

      人類獲取信息的主要途徑有聽覺、視覺、觸覺等,視覺是最直接、最有效的獲取信息的途徑。本文介紹了一種廣泛使用的計(jì)算機(jī)開源視覺庫——OpenCV。OpenCV作為一種計(jì)算機(jī)視覺庫,可以讓計(jì)算機(jī)像人類一樣獲取圖像的信息,讓冰冷的機(jī)器更加智能化。OpenCV中提供了多種集成了各種算法的模塊,開發(fā)人員可以利用這些模塊輕易開發(fā)出需要的程序。OpenCV中既包含了一些傳統(tǒng)的圖像處理方法,隨著神經(jīng)網(wǎng)絡(luò)的普及,也集成了相關(guān)的深度網(wǎng)絡(luò)算法。

      計(jì)算機(jī)視覺是通過計(jì)算機(jī)相關(guān)的算法,模擬出生物視覺功能的學(xué)科。通過圖像設(shè)備獲取圖像,傳入計(jì)算機(jī)進(jìn)行處理,獲得圖像中有用的信息。傳統(tǒng)的圖像識(shí)別方法,主要是先通過提取一些特征點(diǎn),然后再通過數(shù)學(xué)統(tǒng)計(jì)模型表示圖像,最后通過圖像匹配的算法對圖像進(jìn)行識(shí)別,再次過程中,需要人工指定相關(guān)參數(shù)和方法。近年來發(fā)表的多篇論文[2]已經(jīng)指出,未來圖像的處理方向會(huì)以基于神經(jīng)網(wǎng)絡(luò)的模型來進(jìn)行研究。深度神經(jīng)網(wǎng)絡(luò)由于其層次多,復(fù)雜性高,能夠處理獲得圖像中更加復(fù)雜的特征信息。與傳統(tǒng)方法相比,深度神經(jīng)網(wǎng)絡(luò)的表現(xiàn)能力更加優(yōu)異,能夠表示更加復(fù)雜的函數(shù)關(guān)系。訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò),不需要人為的輸入某些值來優(yōu)化結(jié)果,可以自動(dòng)完成圖像學(xué)習(xí)和檢測,自己訓(xùn)練自己,得到更精準(zhǔn)的結(jié)果,同時(shí)也減少了人工勞動(dòng)。

      1 深度神經(jīng)網(wǎng)絡(luò)

      DNN全稱為深度神經(jīng)網(wǎng)絡(luò)[3],是多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。深度神經(jīng)網(wǎng)絡(luò)由感知機(jī)發(fā)展而來,結(jié)構(gòu)上與多層感知機(jī)(MLP)極其相似,結(jié)構(gòu)上二者都擁有輸入層、隱藏層、輸出層。多層感知機(jī)也稱為人工神經(jīng)網(wǎng)絡(luò),實(shí)際只含有一層隱層節(jié)點(diǎn)的淺層模型。感知機(jī)模型是機(jī)器學(xué)習(xí)中的一種淺層學(xué)習(xí)模型,深度神經(jīng)網(wǎng)絡(luò)是更復(fù)雜更深層次的深度學(xué)習(xí)模型。

      深度神經(jīng)網(wǎng)絡(luò)與RNN循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)、CNN卷積神經(jīng)網(wǎng)絡(luò)不同的是,深度神經(jīng)網(wǎng)絡(luò)是一個(gè)更多層的全連接神經(jīng)元結(jié)構(gòu),每層之間的節(jié)點(diǎn)之間做全連接,整個(gè)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)包含了多種已知的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)層,如卷積層、池化層、GRU等,將不同的神經(jīng)網(wǎng)絡(luò)融合使用,真正達(dá)到了深度神經(jīng)網(wǎng)絡(luò)的更深的深度,使得在應(yīng)用中更容易達(dá)到最優(yōu)解。

      2 目標(biāo)檢測與跟蹤

      目標(biāo)檢測使用圖像序列單幀信息或者靜態(tài)圖像,依據(jù)先驗(yàn)知識(shí)、或者顯著等特性找到某些感興趣的區(qū)域。目標(biāo)跟蹤僅用于連續(xù)的圖像序列,根據(jù)已有目標(biāo)的位置,在后續(xù)幀中找到最佳匹配位置,更側(cè)重于目標(biāo)的匹配上,形成目標(biāo)的運(yùn)動(dòng)軌跡。目標(biāo)跟蹤依賴于目標(biāo)檢測,必須先定位目標(biāo)位置,才能進(jìn)行目標(biāo)跟蹤。多數(shù)情況下目標(biāo)跟蹤的第一幀由人工指定,也有通過目標(biāo)檢測進(jìn)行全自動(dòng)跟蹤。但是目標(biāo)檢測需要對整張圖像全局進(jìn)行搜索,目標(biāo)跟蹤只對上一幀圖像中的目標(biāo)進(jìn)行搜索,目標(biāo)跟蹤的速度明顯快于目標(biāo)檢測。當(dāng)一張圖像出現(xiàn)多個(gè)與目標(biāo)相似的圖像時(shí),目標(biāo)檢測很容易檢測出相似值,在視頻等連續(xù)多幀的圖像序列中,目標(biāo)檢測很容易出現(xiàn)誤差,所以常用目標(biāo)跟蹤以提高速度。

      在OpenCV中提供了如下的幾個(gè)目標(biāo)跟蹤與檢測的算法:

      2.1基于SIFT特征匹配的對象檢測

      SIFT,即尺度不變特征變換,是一種局部特征描述子,可在圖像中檢測出關(guān)鍵點(diǎn),特征穩(wěn)定,在圖像旋轉(zhuǎn)、尺度變換、亮度時(shí)有保持不變性,對視角變換、噪聲也有一定程度的穩(wěn)定性。SIFT分為以下幾個(gè)步驟:建立尺度空間,尋找極值;尋找關(guān)鍵點(diǎn)準(zhǔn)確位置與刪除弱邊緣;關(guān)鍵點(diǎn)方向指定;關(guān)鍵點(diǎn)描述子。

      建立尺度空間,尋找極值:構(gòu)建圖像高斯金字塔,求取差分,發(fā)現(xiàn)最大與最小值在每一級(jí),構(gòu)建的高斯金字塔,每一層根據(jù)求和的值不同,劃分等級(jí)。搜索圖像上的所有位置,通過高斯微分函數(shù)來識(shí)別潛在的對于尺度和旋轉(zhuǎn)不變的興趣點(diǎn),尋找極值。

      尋找關(guān)鍵點(diǎn)準(zhǔn)確位置與刪除弱邊緣:通過Hessian矩陣特征值實(shí)現(xiàn)刪除弱邊緣,小于閾值的自動(dòng)舍棄。

      關(guān)鍵點(diǎn)方向指定:通過計(jì)算每一層對應(yīng)圖像的梯度,根據(jù)給定的窗口大小,計(jì)算每個(gè)高斯權(quán)重。然后建立36個(gè)直方圖Bins,尋找最高值對應(yīng)的Bin,大于80%最大值的Bin保留。通過這種操作實(shí)現(xiàn)了旋轉(zhuǎn)不變性,提高了匹配時(shí)候的穩(wěn)定性。

      關(guān)鍵點(diǎn)描述子:在每個(gè)關(guān)鍵點(diǎn)周圍的鄰域內(nèi),通過在一定范圍內(nèi)設(shè)定的值,測量圖像局部的梯度,計(jì)算結(jié)果表示允許的局部形狀的變形和光照變化。

      2.2基于SURF特征匹配的對象檢測

      SURF(Speeded Up Robust Features)改進(jìn)了SIFT的特征提取和描述方式,通過一種更高效的方式提取和描述目標(biāo)特征。SIFT算法的優(yōu)點(diǎn)是但是SIFT實(shí)時(shí)性不高,對提取邊緣光滑的特征點(diǎn)能力弱。SURF基于積分圖計(jì)算、快速提取關(guān)鍵點(diǎn),具有尺度、光照不變性,快速的描述子匹配的特性。SURF的基本思想是:構(gòu)建Hessian矩陣,生成目標(biāo)的所有能夠用于提取特征的興趣點(diǎn);構(gòu)建尺度空間;特征點(diǎn)定位;特征點(diǎn)主方向分配;生成特征點(diǎn)描述子;特征點(diǎn)匹配。

      2.3 HAAR特征人臉檢測

      HAAR特征是一種常用算子,用來描述圖像的特征,多用于人臉檢測、行人檢測等目標(biāo)檢測。特征模板內(nèi)只有白色和黑色兩種顏色矩形,HAAR特征值反映了圖像的灰度變化情況。例如人臉的一些明亮深淺比較大的區(qū)域的特征,可以通過矩形特征進(jìn)行簡單的描述,但矩形特征只會(huì)描述一些簡單的圖形結(jié)構(gòu),復(fù)雜的結(jié)構(gòu)不能進(jìn)行描述。HAAR的基本特征可以劃分為三類:邊緣特征、線性特征、點(diǎn)特征。

      3 DNN模塊簡介

      在深度神經(jīng)網(wǎng)絡(luò)大火的今天,OpenCV也不甘落后。在OpenCV的發(fā)行版中提供了DNN模塊,但是開發(fā)人員想要使用該模塊的全部功能,還需要下載DNN模塊的相關(guān)擴(kuò)展庫。OpenCV的DNN模塊可以實(shí)現(xiàn)多數(shù)計(jì)算機(jī)視覺的應(yīng)用。OpenCV的DNN模塊功能強(qiáng)大,提供廣泛的支持,支持目前開發(fā)工作上流行的tensorflow、caffe、pytorch深度學(xué)習(xí)庫,支持LSTM、CNN、RNN等網(wǎng)絡(luò)層,也包含了Alexnet、GoogleNet、VGG等模型。

      與其他深度學(xué)習(xí)網(wǎng)絡(luò)框架不同的是,OpenCV的DNN模塊是前饋網(wǎng)絡(luò),不能進(jìn)行訓(xùn)練,開發(fā)過程中直接加載調(diào)用已經(jīng)訓(xùn)練好的模型,實(shí)現(xiàn)圖像的預(yù)測分類等功能。但在編寫檢測層代碼時(shí)仍需要分層編寫。

      接下來介紹幾個(gè)OpenCV中常用的DNN對象檢測網(wǎng)絡(luò):

      3.1 SSD對象檢測網(wǎng)絡(luò)

      SSD對象檢測網(wǎng)絡(luò),或稱單目標(biāo)多窗口檢測器[4]。SSD是基于卷積神經(jīng)網(wǎng)絡(luò)的一種網(wǎng)絡(luò)結(jié)構(gòu),是第一個(gè)基于深層網(wǎng)絡(luò)的對象檢測器,相比于R-CNN、Fast-RCNN,SSD的準(zhǔn)確性更高,實(shí)時(shí)性的預(yù)測速度表現(xiàn)更好。

      SSD的網(wǎng)絡(luò)架構(gòu)以VGG-16為基礎(chǔ),因?yàn)閂GG-16擁有高質(zhì)量的圖像分類和遷移學(xué)習(xí)的能力。SSD對VGG-16進(jìn)行了調(diào)整,刪除了VGG-16中的圖像分類,添加了額外的卷積層,減小圖像尺度,增加圖像深度,在更小的規(guī)模內(nèi)保留了更多的圖像信息。SSD網(wǎng)絡(luò)的核心思想是分層提取目標(biāo)圖像特征,只對圖像的分層進(jìn)行特征提取的操作,并對邊框信息一次進(jìn)行回歸分類。

      3.2 YOLO對象檢測網(wǎng)絡(luò)

      對象檢測網(wǎng)絡(luò)上分為兩種:兩步法、一步法。基于圖像分類加上滑動(dòng)窗口的方式對象檢測是兩步法的代表,兩步法先進(jìn)行卷積神經(jīng)網(wǎng)絡(luò)的操作,再使用一個(gè)滑動(dòng)窗口標(biāo)注,但是這種方法太慢,預(yù)測一些感興趣的區(qū)域,計(jì)算量比較大,導(dǎo)致性能差,無法進(jìn)行實(shí)時(shí)預(yù)測。

      YOLO的一步法,對圖像每個(gè)區(qū)域只計(jì)算一次。YOLO先將圖像分為13x13的目標(biāo)框,每個(gè)方格細(xì)胞負(fù)責(zé)預(yù)測5個(gè)目標(biāo)框,輸出的置信度數(shù)值,告訴每個(gè)目標(biāo)框包含某個(gè)對象的可能性是多少,不會(huì)直接輸出檢測的目標(biāo)是什么,而是目標(biāo)框形狀的契合程度,相似度越高,目標(biāo)框就越粗。YOLO只對圖像進(jìn)行一次計(jì)算,沒有進(jìn)行池化和全連接層操作,大大減少了計(jì)算時(shí)間。

      4 結(jié)語

      良好的課擴(kuò)展性和強(qiáng)大的可擴(kuò)展性,使得OpenCV現(xiàn)在已經(jīng)用于廣泛的工業(yè)生產(chǎn)之中,越來越多的手機(jī)客戶端軟件也是基于OpenCV開發(fā)的。本文簡單介紹了OpenCV中科院直接用于生產(chǎn)的方法,OpenCV仍然有一些框架值得開發(fā)者進(jìn)行二次開發(fā)和研究,擴(kuò)展庫中的方法仍然存在科院提升的地方以提高準(zhǔn)確性、實(shí)時(shí)性。OpenCV中DNN模塊可以方便的實(shí)現(xiàn)基于神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測與追蹤,這樣也使得OpenCV能夠與當(dāng)前流行的深度學(xué)習(xí)框架融合,開發(fā)出更好的應(yīng)用。此外想要實(shí)現(xiàn)OpenCV中以外的功能,仍需研究人員自行開發(fā)。

      最后感謝我的導(dǎo)師鄭老師給我提供了這次學(xué)習(xí)交流的機(jī)會(huì),讓我可以與業(yè)界精英交流學(xué)習(xí),解決了我對深度學(xué)習(xí)和圖像處理方面的許多疑惑。

      參考文獻(xiàn)

      [1]毛星云.OpenCV3編程入門[M].北京:電子工業(yè)出版社,2015.

      [2]李衛(wèi).深度學(xué)習(xí)在圖像識(shí)別中的研究及應(yīng)用[D].武漢:武漢理工大學(xué),2014.

      [3]白亞龍.基于深度神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別系統(tǒng)的研究與改進(jìn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2014.

      [4]陳立里,張正道,彭力.基于改進(jìn)Single Shot MultiBox Detector的實(shí)時(shí)檢測方法[J/OL]. 激光與光電子學(xué)進(jìn)展:1-12[2018-10-29].

      Deep Learning Target Detection and Tracking Based on OpenCV

      KE Yan,LIU Xin-yan,ZHENG Yu-hui

      (Nanjing University of Information Science and Technology, Nanjing Jiangsu 210044)

      Abstract: Target detection and tracking occupy a large proportion in industrial applications. Through target recognition technology, product consistency can be quickly and accurately tested, labor intensity is reduced, and enterprise efficiency is improved. This paper mainly introduces an open source computer vision library— —OpenCV, the integrated modules in OpenCV can reduce the developer's work intensity. In this paper, the modules for target detection and tracking in OpenCV, and the algorithm basis of these modules are briefly introduced. This paper also briefly introduces the related content and algorithm framework of DNN deep neural network module provided in OpenCV.

      Keywords:? OpenCV; DNN; target detection and tracking

      天门市| 化隆| 胶南市| 华阴市| 游戏| 库车县| 农安县| 涡阳县| 茌平县| 津市市| 邻水| 甘谷县| 香河县| 额尔古纳市| 夹江县| 罗平县| 张掖市| 子洲县| 贡觉县| 冕宁县| 惠来县| 封开县| 夏津县| 留坝县| 平昌县| 沅江市| 杨浦区| 托克逊县| 陕西省| 平和县| 房山区| 遂宁市| 南昌县| 天气| 敦化市| 嘉义市| 建始县| 宜兰县| 门源| 沧州市| 武宁县|