http://www.kadhoai.com.cn 2026-04-10 05:57:18 來源:OpenCV與AI深度學習
隨著機器視覺技術的快速發展,傳統很多需要人工來手動操作的工作,漸漸地被機器所替代。
傳統方法做目標識別大多都是靠人工實現,從形狀、顏色、長度、寬度、長chang寬kuan比bi來lai確que定ding被bei識shi別bie的de目mu標biao是shi否fou符fu合he標biao準zhun,最zui終zhong定ding義yi出chu一yi係xi列lie的de規gui則ze來lai進jin行xing目mu標biao識shi別bie。這zhe樣yang的de方fang法fa當dang然ran在zai一yi些xie簡jian單dan的de案an例li中zhong已yi經jing應ying用yong的de很hen好hao,唯wei一yi的de缺que點dian是shi隨sui著zhe被bei識shi別bie物wu體ti的de變bian動dong,所suo有you的de規gui則ze和he算suan法fa都dou要yao重zhong新xin設she計ji和he開kai發fa,即ji使shi是shi同tong樣yang的de產chan品pin,不bu同tong批pi次ci的de變bian化hua都dou會hui造zao成cheng不bu能neng重zhong用yong的de現xian實shi。
ersuizhejiqixuexi,shenduxuexidefazhan,henduorouyanhennanquzhijielianghuadetezheng,shenduxuexikeyizidongxuexizhexietezheng,zhejiushishenduxuexidaigeiwomendeyoudianheqiansuoweiyoudexiyinli。
很多特征我們通過傳統算法無法量化,或者說很難去做到的,深度學習可以。特別是在圖像分類、目標識別這些問題上有顯著的提升。
視覺常用的目標識別方法有三種:Blob分析法(BlobAnalysis)、模板匹配法、深度學習法。下麵就三種常用的目標識別方法進行對比。
Blob分析法
BlobAnalysis
在計算機視覺中的Blob是指圖像中的具有相似顏色、紋理等特征所組成的一塊連通區域。Blob分析(BlobAnalysis)是對圖像中相同像素的連通域進行分析(該連通域稱為Blob)。其過程就是將圖像進行二值化,分割得到前景和背景,然後進行連通區域檢測,從而得到Blob塊的過程。簡單來說,blob分析就是在一塊“光滑”區域內,將出現“灰度突變”的小區域尋找出來。
舉例來說,假如現在有一塊剛生產出來的玻璃,表麵非常光滑,平整。如果這塊玻璃上麵沒有瑕疵,那麼,我們是檢測不到“灰度突變”的;相反,如果在玻璃生產線上,由於種種原因,造成了玻璃上麵有一個凸起的小泡、有一塊黑斑、有一點裂縫,那麼,我們就能在這塊玻璃上麵檢測到紋理,經二值化(BinaryThresholding)處理後的圖像中色斑可認為是blob。而這些部分,就是生產過程中造成的瑕疵,這個過程,就是Blob分析。
Blob分析工具可以從背景中分離出目標,並可以計算出目標的數量、位置、形狀、方fang向xiang和he大da小xiao,還hai可ke以yi提ti供gong相xiang關guan斑ban點dian間jian的de拓tuo撲pu結jie構gou。在zai處chu理li過guo程cheng中zhong不bu是shi對dui單dan個ge像xiang素su逐zhu一yi分fen析xi,而er是shi對dui圖tu像xiang的de行xing進jin行xing操cao作zuo。圖tu像xiang的de每mei一yi行xing都dou用yong遊you程cheng長chang度du編bian碼ma(RLE)來表示相鄰的目標範圍。這種算法與基於像素的算法相比,大大提高了處理的速度。

但另一方麵,Blob分析並不適用於以下圖像:
1.低對比度圖像;
2.必要的圖像特征不能用2個灰度級描述;
3.按照模版檢測(圖形檢測需求)。
總的來說,Blob分析就是檢測圖像的斑點,適用於背景單一,前景缺陷不區分類別,識別精度要求不高的場景。
模板匹配法
template matching
模板匹配是一種最原始、zuijibendemoshishibiefangfa,yanjiumouyitedingduixiangwudetuanweiyutuxiangdeshenmedifang,jinershibieduixiangwu,zhejiushiyigepipeiwenti。tashituxiangchulizhongzuijiben、最zui常chang用yong的de匹pi配pei方fang法fa。換huan句ju話hua說shuo就jiu是shi一yi副fu已yi知zhi的de需xu要yao匹pi配pei的de小xiao圖tu像xiang,在zai一yi副fu大da圖tu像xiang中zhong搜sou尋xun目mu標biao,已yi知zhi該gai圖tu中zhong有you要yao找zhao的de目mu標biao,且qie該gai目mu標biao同tong模mo板ban有you相xiang同tong的de尺chi寸cun、方向和圖像元素,通過統計計算圖像的均值、梯度、距離、方差等特征可以在圖中找到目標,確定其坐標位置。
這(zhe)就(jiu)說(shuo)明(ming),我(wo)們(men)要(yao)找(zhao)的(de)模(mo)板(ban)是(shi)圖(tu)像(xiang)裏(li)標(biao)標(biao)準(zhun)準(zhun)存(cun)在(zai)的(de),這(zhe)裏(li)說(shuo)的(de)標(biao)標(biao)準(zhun)準(zhun),就(jiu)是(shi)說(shuo),一(yi)旦(dan)圖(tu)像(xiang)或(huo)者(zhe)模(mo)板(ban)發(fa)生(sheng)變(bian)化(hua),比(bi)如(ru)旋(xuan)轉(zhuan),修(xiu)改(gai)某(mou)幾(ji)個(ge)像(xiang)素(su),圖(tu)像(xiang)翻(fan)轉(zhuan)等(deng)操(cao)作(zuo)之(zhi)後(hou),我(wo)們(men)就(jiu)無(wu)法(fa)進(jin)行(xing)匹(pi)配(pei)了(le),這(zhe)也(ye)是(shi)這(zhe)個(ge)算(suan)法(fa)的(de)弊(bi)端(duan)。
所以這種匹配算法,就是在待檢測圖像上,從左到右,從上向下對模板圖像與小東西的圖像進行比對。

這種方法相比Blob分析有較好的檢測精度,同時也能區分不同的缺陷類別,這相當於是一種搜索算法,在待檢測圖像上根據不同roi用指定的匹配方法與模板庫中的所有圖像進行搜索匹配,要求缺陷的形狀、大小、方法都有較高的一致性,因此想要獲得可用的檢測精度需要構建較完善的模板庫。
深度學習法
deep learning method
2014年R-CNN的提出,使得基於CNN的目標檢測算法逐漸成為主流。深度學習的應用,使檢測精度和檢測速度都獲得了改善。
卷積神經網絡不僅能夠提取更高層、表達能力更好的特征,還能在同一個模型中完成對於特征的提取、選擇和分類。
在這方麵,主要有兩類主流的算法:
一類是結合RPN網絡的,基於分類的R-CNN係列兩階目標檢測算法(twostage);
另一類則是將目標檢測轉換為回歸問題的一階目標檢測算法(singlestage)。
物體檢測的任務是找出圖像或視頻中的感興趣物體,同時檢測出它們的位置和大小,是機器視覺領域的核心問題之一。

物體檢測過程中有很多不確定因素,如圖像中物體數量不確定,物體有不同的外觀、形狀、姿態,加之物體成像時會有光照、遮擋等因素的幹擾,導致檢測算法有一定的難度。
進入深度學習時代以來,物體檢測發展主要集中在兩個方向:twostage算法如R-CNN係列和onestage算法如YOLO、SSD等。兩者的主要區別在於twostage算法需要先生成proposal(一個有可能包含待檢物體的預選框),然後進行細粒度的物體檢測。而onestage算法會直接在網絡中提取特征來預測物體分類和位置。
兩階算法中區域提取算法核心是卷積神經網絡CNN,先利用CNN骨幹提取特征,然後找出候選區域,最後滑動窗口確定目標類別與位置。
R-CNN首先通過SS算法提取2k個左右的感興趣區域,再對感興趣區域進行特征提取。存在缺陷:感興趣區域彼此之間權值無法共享,存在重複計算,中間數據需單獨保存占用資源,對輸入圖片強製縮放影響檢測準確度。

SPP-NET在最後一個卷積層和第一個全連接層之間做些處理,保證輸入全連接層的尺寸一致即可解決輸入圖像尺寸受限的問題。SPP-NET候選區域包含整張圖像,隻需通過一次卷積網絡即可得到整張圖像和所有候選區域的特征。
FastR-CNN借鑒SPP-NET的特征金字塔,提出ROIPooling把各種尺寸的候選區域特征圖映射成統一尺度的特征向量,首先,將不同大小的候選區域都切分成M×N塊,再對每塊都進行maxpooling得到1個值。這樣,所有候選區域特征圖就都統一成M×N維的特征向量了。但是,利用SS算法產生候選框對時間消耗非常大。
FasterR-CNN是先用CNN骨幹網提取圖像特征,由RPN網絡和後續的檢測器共享,特征圖進入RPN網絡後,對每個特征點預設9個ge不bu同tong尺chi度du和he形xing狀zhuang的de錨mao盒he,計ji算suan錨mao盒he和he真zhen實shi目mu標biao框kuang的de交jiao並bing比bi和he偏pian移yi量liang,判pan斷duan該gai位wei置zhi是shi否fou存cun在zai目mu標biao,將jiang預yu定ding義yi的de錨mao盒he分fen為wei前qian景jing或huo背bei景jing,再zai根gen據ju偏pian差cha損sun失shi訓xun練lianRPN網絡,進行位置回歸,修正ROI的位置,最後將修正的ROI傳入後續網絡。但是,在檢測過程中,RPN網絡需要對目標進行一次回歸篩選以區分前景和背景目標,後續檢測網絡對RPN輸出的ROI再一次進行細分類和位置回歸,兩次計算導致模型參數量大。
MaskR-CNN在FasterR-CNN中加了並行的mask分支,對每個ROI生成一個像素級別的二進製掩碼。在FasterR-CNN中,采用ROIPooling產chan生sheng統tong一yi尺chi度du的de特te征zheng圖tu,這zhe樣yang再zai映ying射she回hui原yuan圖tu時shi就jiu會hui產chan生sheng錯cuo位wei,使shi像xiang素su之zhi間jian不bu能neng精jing準zhun對dui齊qi。這zhe對dui目mu標biao檢jian測ce產chan生sheng的de影ying響xiang相xiang對dui較jiao小xiao,但dan對dui於yu像xiang素su級ji的de分fen割ge任ren務wu,誤wu差cha就jiu不bu容rong忽hu視shi了le。MaskR-CNN中用雙線性插值解決像素點不能精準對齊的問題。但是,由於繼承兩階段算法,實時性仍不理想。
一階算法在整個卷積網絡中進行特征提取、mubiaofenleiheweizhihuigui,tongguoyicifanxiangjisuandedaomubiaoweizhiheleibie,zaishibiejingdushaoruoyuliangjieduanmubiaojiancesuanfadeqiantixia,suduyoulejidadetisheng。
YOLOv1把輸入圖像統一縮放到448×448×3,再劃分為7×7個網格,每格負責預測兩個邊界框bbox的位置和置信度。這兩個b-box對應同一個類別,一個預測大目標,一個預測小目標。bbox的位置不需要初始化,而是由YOLO模型在權重初始化後計算出來的,模型在訓練時隨著網絡權重的更新,調整b-box的預測位置。但是,該算法對小目標檢測不佳,每個網格隻能預測一個類別。
YOLOv2把原始圖像劃分為13×13個網格,通過聚類分析,確定每個網格設置5個錨盒,每個錨盒預測1個類別,通過預測錨盒和網格之間的偏移量進行目標位置回歸。
SSD保留了網格劃分方法,但從基礎網絡的不同卷積層提取特征。隨著卷積層數的遞增,錨盒尺寸設置由小到大,以此提升SSD對多尺度目標的檢測精度。
YOLOv3通過聚類分析,每個網格預設3個錨盒,隻用darknet前52層,並大量使用殘差層。使用降采樣降低池化對梯度下降的負麵效果。YOLOv3通過上采樣提取深層特征,使其與將要融合的淺層特征維度相同,但通道數不同,在通道維度上進行拚接實現特征融合,融合了13×13×255、26×26×255和52×52×255共3個尺度的特征圖,對應的檢測頭也都采用全卷積結構。
YOLOv4在原有YOLO目標檢測架構的基礎上,采用了近些年CNN領域中最優秀的優化策略,從數據處理、主幹網絡、網絡訓練、激活函數、損失函數等各個方麵都進行了不同程度的優化。時至今日,已經有很多精度比較高的目標檢測算法提出,包括最近視覺領域的transformer研究也一直在提高目標檢測算法的精度。
zongjielaikan,biaoshidexuanzehuiduijiqixuexisuanfadexingnengchanshengjudadeyingxiang,jianduxuexixunliandeqiankuiwangluokeshiweibiaoshixuexideyizhongxingshi。yicilaikanchuantongdesuanfaruBlob分(fen)析(xi)和(he)模(mo)板(ban)匹(pi)配(pei)都(dou)是(shi)手(shou)工(gong)設(she)計(ji)其(qi)特(te)征(zheng)表(biao)示(shi),而(er)神(shen)經(jing)網(wang)絡(luo)則(ze)是(shi)通(tong)過(guo)算(suan)法(fa)自(zi)動(dong)學(xue)習(xi)目(mu)標(biao)的(de)合(he)適(shi)特(te)征(zheng)表(biao)示(shi),相(xiang)比(bi)手(shou)工(gong)特(te)征(zheng)設(she)計(ji)來(lai)說(shuo)其(qi)更(geng)高(gao)效(xiao)快(kuai)捷(jie),也(ye)無(wu)需(xu)太(tai)多(duo)的(de)專(zhuan)業(ye)的(de)特(te)征(zheng)設(she)計(ji)知(zhi)識(shi),因(yin)此(ci)其(qi)能(neng)夠(gou)識(shi)別(bie)不(bu)同(tong)場(chang)景(jing)中(zhong)形(xing)狀(zhuang)、大小、紋理等不一的目標,隨著數據集的增大,檢測的精度也會進一步提高。