0
本文作者: 張夢華 | 2020-04-05 10:43 |
雷鋒網(wǎng)按:本文為矩視智能創(chuàng)始人弭寶瞳投稿。矩視智能成立于 2017 年 10 月,專注于機器視覺,主要通過 SaaS 云平臺幫助提升工廠機器視覺開發(fā)、升級效率。弭寶瞳為中國人民大學(xué)計算機博士,曾在奇虎 360 任產(chǎn)品經(jīng)理、研發(fā)工程師。
一、背景知識
目標定位是計算機視覺的重要應(yīng)用場景之一。在工業(yè)生產(chǎn)、航空航海、農(nóng)產(chǎn)品包裝等眾多領(lǐng)域內(nèi)均已得到廣泛應(yīng)用。在工業(yè)生產(chǎn)中,通過目標定位可以實現(xiàn)精準地完成自動抓取、自動上料等操作;在航空航海中,利用目標定位可以為海上打撈等工作提供可靠的位置服務(wù);在交通運輸中,借助目標定位可以準確獲取車輛的位置信息。
由于上述領(lǐng)域相關(guān)的圖片信息都具有十分復(fù)雜的背景,對待識別目標干擾性強,且通常存在目標重疊、相似度高、部分遮擋等問題,進行目標定位具有相當(dāng)大的難度。
二、傳統(tǒng)算法
傳統(tǒng)的目標定位算法通常使用滑動窗的方法,主要可分為以下三個步驟:
(1) 候選框:利用不同尺寸的滑動窗,在圖片中標記一塊區(qū)域作為候選區(qū);
(2) 特征提?。横槍斎雸D片的候選區(qū)域,提取視覺特征(例如人臉檢測常用的Harr特征、行人檢測和普通目標檢測常用的HOG特征等);
(3) 分類器識別:利用分類器進行目標和背景的判定,比如常用的SVM模型等。
上述傳統(tǒng)算法在一些特定的應(yīng)用方面已經(jīng)取得了不錯的成績,但仍有不少缺點。首先,其需要手動提取圖像特征,提取方法需要不斷嘗試比較才能得到好的特征;其次,提取的特征與模型性能的優(yōu)劣直接相關(guān),導(dǎo)致模型針對性強,不能靈活應(yīng)用于其他情景;此外,有些算法中還涉及到復(fù)雜的邊緣檢測過程,包括閾值分割、分水嶺算法等。繁雜的處理過程導(dǎo)致模型檢測效率較低,無法滿足在工業(yè)生產(chǎn)中的廣泛應(yīng)用。
三、深度學(xué)習(xí)
在2012年的ImageNet競賽中,AlexNet神經(jīng)網(wǎng)絡(luò)一舉成名,也使CNN成為了計算機視覺研究的中心,同時再一次掀起了深度學(xué)習(xí)的研究熱潮。
3.1R-CNN[1]
R-CNN是先進的視覺對象檢測系統(tǒng),它將自下而上的候選區(qū)域提取與卷積神經(jīng)網(wǎng)絡(luò)的豐富功能結(jié)合在一起。R-CNN在不使用上下文記錄或要素類型集成的情況下實現(xiàn)了檢測精度的大幅提升。
R-CNN算法的具體實現(xiàn)方法如下:
輸入圖片,基于區(qū)域候選方法(如selective search方法)生成約2000個候選區(qū)域;
對每個候選區(qū)域進行Resize,固定大小后送入CNN模型中并得到特征向量;
將特征向量送入一個多類別的分類器中,判斷候選區(qū)域中所含物體屬于每個類別的概率大?。?/p>
在R-CNN最后訓(xùn)練一個邊界框回歸模型,以提升目標定位的準確性。
本方法使用CNN網(wǎng)絡(luò)自動提取特征,避免了手動提取特征的復(fù)雜操作,提升了工作效率。但由于每個候選區(qū)域都需要送入CNN模型計算特征向量,會耗費一定的時間。
3.2FasterR-CNN[2]
Faster R-CNN是目標檢測領(lǐng)域最經(jīng)典的算法之一。它主要由用于生成候選區(qū)域框的深度全卷積網(wǎng)絡(luò)和Fast R-CNN 檢測模型兩部分構(gòu)成。
Faster R-CNN的網(wǎng)絡(luò)結(jié)構(gòu)如上圖所示,由圖中可以看出其由四部分組成:
Conv layers:對輸入的整張圖片,提取其特征圖;
Region Proposal Networks:用于推薦候選區(qū)域(通過softmax判斷anchors屬于前景還是后景,并借助box regression修正anchors,輸出多個候選區(qū)域);
ROI Pooling:將不同大小的輸入轉(zhuǎn)換為固定長度的輸出,送入后續(xù)的全連接層判定目標類別;
Classification:輸出候選區(qū)域所屬的類別及其精確的位置。
RPN層是Faster R-CNN網(wǎng)絡(luò)最大的亮點,使用RPN代替啟發(fā)式候選區(qū)域的方法,極大的加快了訓(xùn)練的速度和精度。
3.3 Yolov3[3,4]
前面介紹的兩種算法均為Two-stage,而Yolo屬于One-stage,它不需要提取候選區(qū)域,可以直接產(chǎn)生物體的類別概率和位置坐標值,這里將針對目前更受歡迎的Yolo v3展開介紹。
Yolo v3的具體實現(xiàn)可以分為三步,分別為:
多尺度預(yù)測:借助殘差網(wǎng)絡(luò)結(jié)構(gòu)形成了更深的網(wǎng)絡(luò)層次,可以在三種不同的尺度上進行檢測;
基礎(chǔ)網(wǎng)絡(luò):使用Darknet的變體Darknet-53,在Imagenet上訓(xùn)練了53層網(wǎng)絡(luò),并在檢測任務(wù)時再次堆疊53層,形成了106層完全卷積的底層架構(gòu);
分類器:使用多個logistic分類器,以進行多標簽對象的分類。
作為Yolo算法多次優(yōu)化后的產(chǎn)物,Yolo v3是當(dāng)前目標檢測最優(yōu)的算法之一,其具有結(jié)構(gòu)清晰,實時性好,可以通過改變模型結(jié)構(gòu)的大小平衡速度與精度等優(yōu)點。此外,Yolo v3還提升了小尺寸物體的檢測效果,解決了前兩個版本存在的問題。
3.4 SSD[5]
SSD算法(全稱Single Shot MultiBox Detector)同Yolo一樣屬于One-stage,且整體穩(wěn)定性比Yolo好很多,其網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示。
SSD的基本實現(xiàn)流程較Yolo復(fù)雜,可概括如下:
輸入圖片,使用卷積神經(jīng)網(wǎng)絡(luò)CNN提取特征,并生成特征圖;
抽取其中6層的特征圖,并在特征圖的每個點上生成default box;
將所得的default box全部集合起來,并輸入極大值抑制NMS中,篩選并輸出最后的default box。
同樣作為One-stage方法,SSD采用CNN直接檢測的方法替代Yolo在全連接層之后做檢測的方法提升了訓(xùn)練速度。此外,SSD提取不同尺寸的特征圖,分別用來檢測大小不同的物體;還使用不同尺度和長寬比的Anchors提升了定位準確度,實現(xiàn)了在高速運行的同時保持高精度的重大突破。
四、總結(jié)
本文參考前沿文獻,總結(jié)了部分目前應(yīng)用較為廣泛的部分目標定位算法框架及具體思路??偟膩碚f,目標定位檢測可分為Two-stage(產(chǎn)生候選區(qū)+確定位置)和One-stage(直接產(chǎn)生物體的位置坐標值)兩大類,均可以實現(xiàn)快速準確且魯棒性好的目標定位,且可以靈活的應(yīng)用于建筑業(yè)、航天工程以及工業(yè)生產(chǎn)等眾多行業(yè)。
參考文獻:
[1] Girshick R, Donahue J, Darrell T, et al. Region-based convolutional networks for accurate object detection and segmentation[J]. IEEE transactions on pattern analysis and machine intelligence, 2015.
[2] Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015.
[3] Redmon J, Farhadi A. Yolov3: An incremental improvement[J]. arXiv preprint arXiv:1804.02767, 2018.
[4] https://towardsdatascience.com/yolo-v3-object-detection-53fb7d3bfe6b.
[5] Liu W, Anguelov D, Erhan D, et al. Ssd: Single shot multibox detector[C]//European conference on computer vision. Springer, Cham, 2016.
雷鋒網(wǎng),雷鋒網(wǎng)
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。