0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

傳統(tǒng)檢測、深度神經(jīng)網(wǎng)絡框架、檢測技術的物體檢測算法全概述

新機器視覺 ? 來源:新機器視覺 ? 作者:新機器視覺 ? 2020-10-22 15:07 ? 次閱讀

物體檢測一向是比較熱門的研究方向,它經(jīng)歷了傳統(tǒng)的人工設計特征+淺層分類器的框架,到基于大數(shù)據(jù)和深度神經(jīng)網(wǎng)絡的End-To-End的物體檢測框架的發(fā)展,然而許多人其實并未系統(tǒng)的了解過物體檢測算法的整個發(fā)展內(nèi)容。正因如此,本次閱面科技邀請了資深研究員童志軍從傳統(tǒng)檢測算法核心、深度神經(jīng)網(wǎng)絡框架、檢測技術難點等方面來進行干貨分享。

童志軍:閱面科技資深研究員,2012年畢業(yè)于東南大學獲碩士學位,先后加入虹軟、阿里巴巴從事圖像算法和機器學習工作,曾參與淘寶“拍立淘圖像搜索”、“3D試衣”等產(chǎn)品研發(fā),目前主要專注于深度學習的視覺檢測分類和移動端深度學習模型壓縮技術。

在傳統(tǒng)視覺領域,物體檢測是一個非常熱門的研究方向。受70年代落后的技術條件和有限應用場景的影響,物體檢測直到上個世紀90年代才開始逐漸走入正軌。物體檢測對于人眼來說并不困難,通過對圖片中不同顏色、紋理、邊緣模塊的感知很容易定位出目標物體,但對于計算機來說,面對的是RGB像素矩陣,很難從圖像中直接得到狗和貓這樣的抽象概念并定位其位置,再加上物體姿態(tài)、光照和復雜背景混雜在一起,使得物體檢測更加困難。

檢測算法里面通常包含三個部分,第一個是檢測窗口的選擇, 第二個是特征的設計,第三個是分類器的設計。隨著2001年Viola Jones提出基于Adaboost的人臉檢測方法以來,物體檢測算法經(jīng)歷了傳統(tǒng)的人工設計特征+淺層分類器的框架,到基于大數(shù)據(jù)和深度神經(jīng)網(wǎng)絡的End-To-End的物體檢測框架,物體檢測一步步變得愈加成熟。

傳統(tǒng)檢測算法

在2001年,一篇基于Haar+Adaboost的檢測方法在學術界和工業(yè)界引起了非常大的轟動,它第一次把檢測做到實時,并且在當時的技術限制下,檢測性能也做的非常亮眼??v觀2012年之前的物體檢測算法,可以歸結為三個方面的持續(xù)優(yōu)化:

檢測窗口的選擇

拿人臉檢測舉例,當給出一張圖片時,我們需要框出人臉的位置以及人臉的大小,那么最簡單的方法就是暴力搜索候選框,把圖像中所有可能出現(xiàn)框的位置從左往右、從上往下遍歷一次。并且通過縮放一組圖片尺寸,得到圖像金字塔來進行多尺度搜索。

但是這種方法往往計算量很大并且效率不高,在實際應用中并不可取。人臉具有很強的先驗知識,比如人臉膚色YCbCr空間呈現(xiàn)很緊湊的高斯分布,通過膚色檢測可以去除很大一部分候選區(qū)域,僅留下極小部分的區(qū)域作為人臉檢測搜索范圍。由于膚色的提取非??欤皇抢靡恍╊伾植嫉?a target="_blank">信息,把每個像素判斷一下,整體速度提升很多。但膚色提取只是用到簡單的顏色先驗,如果遇到和膚色很像的,比如黃色的桌子,很有可能被誤判成人臉的候選檢測區(qū)域。

進一步提高精度衍生出如Selective Search或EdgeBox等proposal提取的方法,基于顏色聚類、邊緣聚類的方法來快速把不是所需物體的區(qū)域給去除,相對于膚色提取精度更高,極大地減少了后續(xù)特征提取和分類計算的時間消耗。

特征的設計

在傳統(tǒng)的檢測中,Haar由于提取速度快,能夠表達物體多種邊緣變化信息,并且可以利用積分圖快速計算,得到廣泛的應用;LBP更多的表達物體的紋理信息,對均勻變化的光照有很好的地適應性;HOG通過對物體邊緣使用直方圖統(tǒng)計來進行編碼,特征表達能力更強,在物體檢測、跟蹤、識別都有廣泛的應用。傳統(tǒng)特征設計往往需要研究人員經(jīng)驗驅(qū)動,更新周期往往較長,通過對不同的特征進行組合調(diào)優(yōu),從不同維度描述物體可以進一步提升檢測精度,如ACF檢測,組合了20種不同的特征表達。

分類器的設計

傳統(tǒng)的分類器包含Adaboost、SVM、Decision Tree等。

Adaboost

一個弱分類器往往判斷精度不高,通過Adaboost自適應地挑選分類精度高的弱分類器并將它們加權起來,從而提升檢測性能。比如說,人臉檢測中一個候選窗口需要判斷是否為人臉,其中一些弱分類器為顏色直方圖分量(如紅黃藍三種顏色),如果黃色分量大于100,那我就認為這塊可能是人臉的候選區(qū)域,這就是個非常簡單的弱分類器。可是,單個這么弱的分類器判斷是很不準的,那么我們就需要引入另外一些分量做輔助。比如再引入紅色分量大于150,將幾個條件疊加起來,就組成了一個比較強的分類器。

這里弱分類器的設計往往就是確定顏色判斷的閾值,為什么會選擇100呢?其實這是我們需要學習得到的閾值,學習得到,當閾值設定為100時,分類的精度是最高的。另外,為什么要選擇紅黃藍三種顏色?同樣,因為它們分類的精度更高。通過不斷進行特征挑選并學習弱分類器,最終組合提升為Adaboost強分類器。

SVM分類器

SVM通過最大化分類間隔得到分類平面的支持向量,在線性可分的小數(shù)據(jù)集上有不錯的分類精度,另外通過引入核函數(shù)將低維映射到高維,從而線性可分,在檢測場景被廣泛使用。

比如線性SVM分類器就是一些支持向量,將物體表示為一些特征向量,實際當中學到的分類器就是一些系數(shù)向量,這些系數(shù)向量和特征向量做一個加權的話可以得到分類分數(shù),對分數(shù)進行閾值判斷,就可以判斷是否是某一類。

Decision Tree

決策樹是一種樹形結構,其中每個內(nèi)部節(jié)點表示一個屬性上的測試,每個分支代表一個測試輸出,每個葉子節(jié)點代表一種類別。

用從樹根到樹葉的二叉樹來舉個簡單例子。假如從樹根進來有個二分類,我們需要區(qū)分它是人臉或者是非人臉,左邊是非人臉,右邊是人臉。當我進入第一個二叉樹分類器節(jié)點判斷,如果是非人臉的話直接輸出結果,如果是人臉候選的話進入下一層再做進一步的分類。通過學習每個節(jié)點的分類器來構造決策樹,最終形成一個強分類器。

Random Forest

通過對決策樹進行Ensemble,組合成隨機森林更好的提高分類或者回歸精度。假設剛剛提到的決策樹是一棵樹,那么現(xiàn)在我想學十棵樹,每個樹采用不同的輸入或者分類準則,從不同維度來做分類。以十棵樹的分類結果進行投票,8個樹認為這個框是人臉,2個認為是非人臉,最終輸出為人臉。投票策略可以更好地降低分類誤差,在實際場景中得到廣泛應用。

從傳統(tǒng)方法到深度學習

眾所周知,檢測算法的演變分為兩個階段,一個就是基于傳統(tǒng)特征的解決方法,另外一個就是深度學習算法。在2013年之前傳統(tǒng)方法還算是主流,大家都是基于傳統(tǒng)的feature優(yōu)化檢測方法。然而,在2013年之后,,整個學術界和工業(yè)界都逐漸利用深度學習來做檢測。

實際上,這是由于深度學習在分類上超越了很多傳統(tǒng)的方法,在2012年的ImageNet上,Hinton兩個學生就曾用ConvNet獲得了冠軍。與傳統(tǒng)方法相比,深度學習在分類精度上提高很多。起先,深度學習只是在分類上有非常明顯的提升,之后也帶動了檢測這一塊。從物體分類到物體檢測,利用了深度學習比較強的feature的表達能力,可以進一步提高檢測的精度。

檢測方面有兩個比較典型的公開測試集,PASCAL VOC和COCO。從這兩個測試集上可以看到傳統(tǒng)的檢測方法和深度學習的檢測方法在精度上的差別非常的大。傳統(tǒng)的物體檢測方法因為其特征比較弱,所以每類都需要訓練一個檢測器。每個檢測器都是針對特定的物體訓練,如果有20類的話,就需要跑20次前向預測,相當于單次檢測的20倍,作為一個2C端產(chǎn)品,時間消耗和精度性能使得傳統(tǒng)方法檢測的應用場景不是很多。

目前最新的檢測都是基于深度學習的方法,最開始的RCNN,它算是深度學習應用到檢測里的鼻祖,從起初它平均49.6的精度記錄,到如今已然提升了快40個點。而在傳統(tǒng)的方法中SVM-HOG,它的精度才到了31.5,和深度學習相比低了很多。

值得注意的是,傳統(tǒng)檢測方法隨著數(shù)據(jù)量增大檢測性能會趨于飽和,也就是說隨著數(shù)據(jù)量的增大,檢測性能會逐漸提高,但到了一定程度之后數(shù)據(jù)量的提高帶來的性能增益非常少。而深度學習的方法則不同,當符合實際場景分布的數(shù)據(jù)越來越多時,其檢測性能會越來越好。

深度學習的物體檢測

深度學習早期的物體檢測,大都使用滑動窗口的方式進行窗口提取,這種方式本質(zhì)是窮舉法 R-CNN。后來提出Selective Search等Proposal窗口提取算法,對于給定的圖像,不需要再使用一個滑動窗口進行圖像掃描,而是采用某種方式“提取”出一些候選窗口,在獲得對待檢測目標可接受的召回率的前提下,候選窗口的數(shù)量可以控制在幾千個或者幾百個。

之后又出現(xiàn)了SPP,其主要思想是去掉了原始圖像上的crop/warp等操作,換成了在卷積特征上的空間金字塔池化層。那么為什么要引入SPP層呢?其實主要原因是CNN的全連接層要求輸入圖片是大小一致的,而實際中的輸入圖片往往大小不一,如果直接縮放到同一尺寸,很可能有的物體會充滿整個圖片,而有的物體可能只能占到圖片的一角。SPP對整圖提取固定維度的特征,首先把圖片均分成4份,每份提取相同維度的特征,再把圖片均分為16份,以此類推??梢钥闯?,無論圖片大小如何,提取出來的維度數(shù)據(jù)都是一致的,這樣就可以統(tǒng)一送至全連接層。

實際上,盡管R-CNN 和SPP在檢測方面有了較大的進步,但是其帶來的重復計算問題讓人頭疼,而 Fast R-CNN 的出現(xiàn)正是為了解決這些問題。Fast R-CNN使用一個簡化的SPP層 —— RoI(Region of Interesting) Pooling層,其操作與SPP類似,同時它的訓練和測試是不再分多步,不再需要額外的硬盤來存儲中間層的特征,梯度也能夠通過RoI Pooling層直接傳播。Fast R-CNN還使用SVD分解全連接層的參數(shù)矩陣,壓縮為兩個規(guī)模小很多的全連接層。

Fast R-CNN使用Selective Search來進行區(qū)域提取,速度依然不夠快。Faster R-CNN則直接利用RPN(Region Proposal Networks)網(wǎng)絡來計算候選框。RPN以一張任意大小的圖片為輸入,輸出一批矩形區(qū)域,每個區(qū)域?qū)粋€目標分數(shù)和位置信息。從 R-CNN 到 Faster R-CNN,這是一個化零為整的過程,其之所以能夠成功,一方面得益于CNN強大的非線性建模能力,能夠?qū)W習出契合各種不同子任務的特征,另一方面也是因為人們認識和思考檢測問題的角度在不斷發(fā)生改變,打破舊有滑動窗口的框架,將檢測看成一個回歸問題,不同任務之間的耦合。

R-CNN到Faster R-CNN都是一些通用的檢測器。深度學習中還有許多特定物體檢測的方法,如Cascade CNN等,隨著技術的發(fā)展,深度學習的檢測越來越成熟。

難點

盡管深度學習已經(jīng)使得檢測性能提升了一大截,但其實依舊存在許多難點。主要難點就是復雜光照情況(過暗、過曝)以及非剛性物體形變(如人體、手勢的各種姿態(tài))、低分辨率和模糊圖片的檢測場景。

眾所周知,目前大多數(shù)檢測算法還是靜態(tài)圖的檢測,而海量視頻數(shù)據(jù)已然出現(xiàn)了,未來檢測數(shù)據(jù)支持的類別肯定越來越多,涵蓋的面越來越廣,檢測技術在這方面也需要繼續(xù)發(fā)展?;谝曨l時序連續(xù)性的物體檢測和像素級的實例檢測將是未來重點突破的方向。

聲明:部分內(nèi)容來源于網(wǎng)絡,僅供讀者學術交流之目的。文章版權歸原作者所有。如有不妥,請聯(lián)系刪除。

責任編輯:psy

原文標題:物體檢測算法全概述:從傳統(tǒng)檢測方法到深度神經(jīng)網(wǎng)絡框架

文章出處:【微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 檢測
    +關注

    關注

    5

    文章

    4348

    瀏覽量

    91101
  • 分類器
    +關注

    關注

    0

    文章

    152

    瀏覽量

    13149
  • 物體檢測
    +關注

    關注

    0

    文章

    8

    瀏覽量

    9159

原文標題:物體檢測算法全概述:從傳統(tǒng)檢測方法到深度神經(jīng)網(wǎng)絡框架

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    深度神經(jīng)網(wǎng)絡在雷達系統(tǒng)中的應用

    深度神經(jīng)網(wǎng)絡(Deep Neural Networks,DNN)在雷達系統(tǒng)中的應用近年來取得了顯著進展,為雷達信號處理、目標檢測、跟蹤以及識別等領域帶來了革命性的變化。以下將詳細探討深度
    的頭像 發(fā)表于 07-15 11:09 ?363次閱讀

    pytorch中有神經(jīng)網(wǎng)絡模型嗎

    當然,PyTorch是一個廣泛使用的深度學習框架,它提供了許多預訓練的神經(jīng)網(wǎng)絡模型。 PyTorch中的神經(jīng)網(wǎng)絡模型 1. 引言 深度學習是
    的頭像 發(fā)表于 07-11 09:59 ?527次閱讀

    基于深度學習的小目標檢測

    在計算機視覺領域,目標檢測一直是研究的熱點和難點之一。特別是在小目標檢測方面,由于小目標在圖像中所占比例小、特征不明顯,使得檢測難度顯著增加。隨著深度學習
    的頭像 發(fā)表于 07-04 17:25 ?419次閱讀

    深度神經(jīng)網(wǎng)絡概述及其應用

    通過模仿人類大腦神經(jīng)元的連接方式和處理機制,設計多層神經(jīng)元結構來處理復雜的數(shù)據(jù)模式,從而在各種數(shù)據(jù)驅(qū)動的問題中展現(xiàn)出強大的能力。本文將從深度神經(jīng)網(wǎng)絡的基本概念、結構、工作原理、關鍵
    的頭像 發(fā)表于 07-04 16:08 ?343次閱讀

    深度神經(jīng)網(wǎng)絡與基本神經(jīng)網(wǎng)絡的區(qū)別

    在探討深度神經(jīng)網(wǎng)絡(Deep Neural Networks, DNNs)與基本神經(jīng)網(wǎng)絡(通常指傳統(tǒng)神經(jīng)網(wǎng)絡或前向
    的頭像 發(fā)表于 07-04 13:20 ?329次閱讀

    神經(jīng)網(wǎng)絡芯片與傳統(tǒng)芯片的區(qū)別和聯(lián)系

    引言 隨著人工智能技術的快速發(fā)展,深度學習算法在圖像識別、自然語言處理、語音識別等領域取得了顯著的成果。然而,深度學習算法對計算資源的需求非
    的頭像 發(fā)表于 07-04 09:31 ?376次閱讀

    cnn卷積神經(jīng)網(wǎng)絡分類有哪些

    卷積神經(jīng)網(wǎng)絡(CNN)是一種深度學習模型,廣泛應用于圖像分類、目標檢測、語義分割等領域。本文將詳細介紹CNN在分類任務中的應用,包括基本結構、關鍵技術、常見
    的頭像 發(fā)表于 07-03 09:28 ?320次閱讀

    卷積神經(jīng)網(wǎng)絡的基本概念和工作原理

    卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network, CNN)是深度學習中非常重要的一類神經(jīng)網(wǎng)絡,主要用于圖像識別、圖像分類、物體檢測等計算機視覺任務。CNN以其獨
    的頭像 發(fā)表于 07-02 18:17 ?1301次閱讀

    深度神經(jīng)網(wǎng)絡模型有哪些

    模型: 多層感知器(Multilayer Perceptron,MLP): 多層感知器是最基本的深度神經(jīng)網(wǎng)絡模型,由多個連接層組成。每個隱藏層的神經(jīng)元數(shù)量可以不同,通常使用激活函數(shù)如
    的頭像 發(fā)表于 07-02 10:00 ?533次閱讀

    口罩佩戴檢測算法

    ,口罩佩戴檢測算法利用YOLOv5模型框架,修改其相關配置文件和檢測參數(shù),并采用數(shù)據(jù)增強和Dropout技術防止過擬合。實驗結果驗證了YOLOv5模型人群口罩佩戴圖
    的頭像 發(fā)表于 07-01 20:20 ?203次閱讀
    口罩佩戴<b class='flag-5'>檢測算法</b>

    安全帽佩戴檢測算法

    安全帽佩戴監(jiān)控是鐵路工程施工人員安全管理中的重點和難點,它對檢測算法的準確 率與檢測速度都有較高的要求。本文提出一種基于神經(jīng)網(wǎng)絡架構搜索的安全帽佩戴檢測算法 NAS-YOLO。該
    的頭像 發(fā)表于 06-26 22:22 ?277次閱讀
    安全帽佩戴<b class='flag-5'>檢測算法</b>

    咳嗽檢測深度神經(jīng)網(wǎng)絡算法

    疾病。因此,實現(xiàn)早期檢測和高級診斷的自動化框架將有助于醫(yī)生治療呼吸道感染。有鑒于此,提出了使用改進的卷積神經(jīng)網(wǎng)絡(CNN)對聲音文件進行有用分類的慢性咳嗽檢測方法。 在該系統(tǒng)中,壓電傳
    發(fā)表于 05-15 19:05

    詳解深度學習、神經(jīng)網(wǎng)絡與卷積神經(jīng)網(wǎng)絡的應用

    處理技術也可以通過深度學習來獲得更優(yōu)異的效果,比如去噪、超分辨率和跟蹤算法等。為了跟上時代的步伐,必須對深度學習與神經(jīng)網(wǎng)絡技術有所學習和研究
    的頭像 發(fā)表于 01-11 10:51 ?1599次閱讀
    詳解<b class='flag-5'>深度</b>學習、<b class='flag-5'>神經(jīng)網(wǎng)絡</b>與卷積<b class='flag-5'>神經(jīng)網(wǎng)絡</b>的應用

    淺析深度神經(jīng)網(wǎng)絡壓縮與加速技術

    深度神經(jīng)網(wǎng)絡深度學習的一種框架,它是一種具備至少一個隱層的神經(jīng)網(wǎng)絡。與淺層神經(jīng)網(wǎng)絡類似
    的頭像 發(fā)表于 10-11 09:14 ?595次閱讀
    淺析<b class='flag-5'>深度</b><b class='flag-5'>神經(jīng)網(wǎng)絡</b>壓縮與加速<b class='flag-5'>技術</b>

    基于改進FCOS的表面缺陷檢測算法

    首先使用深度卷積神經(jīng)網(wǎng)絡提取輸入圖像特征圖,然后使用分類網(wǎng)絡、回歸網(wǎng)絡、中心度網(wǎng)絡對特征圖上的所有特征點逐個進行
    發(fā)表于 09-28 09:41 ?394次閱讀
    基于改進FCOS的表面缺陷<b class='flag-5'>檢測算法</b>