高旭升 陳曉榮 王原野 王子旋 徐挺
關(guān)鍵詞:邊緣檢測(cè);模板匹配;直線擬合;圖像金字塔
0 引言(Introduction)
隨著鋁材需求的增加,鋁材的入庫(kù)和出庫(kù)頻率相應(yīng)增加,準(zhǔn)確統(tǒng)計(jì)鋁材數(shù)量對(duì)庫(kù)存調(diào)配愈發(fā)重要。傳統(tǒng)的統(tǒng)計(jì)方法通常依賴人工清點(diǎn)計(jì)數(shù),但是人工計(jì)數(shù)方式不僅效率低下,而且無(wú)法確保統(tǒng)計(jì)數(shù)據(jù)的準(zhǔn)確性,此外鋁材存放環(huán)境復(fù)雜、堆積量大,在這樣的環(huán)境下采用人工計(jì)數(shù)方法統(tǒng)計(jì)鋁材的入庫(kù)和出庫(kù)數(shù)據(jù)存在巨大的安全隱患。
目前,自動(dòng)化技術(shù)[1-2]在各個(gè)領(lǐng)域都有應(yīng)用。在鋁材數(shù)量統(tǒng)計(jì)方面,采用自動(dòng)化技術(shù)可以提高統(tǒng)計(jì)效率和統(tǒng)計(jì)結(jié)果的準(zhǔn)確性,同時(shí)降低作業(yè)風(fēng)險(xiǎn)。自動(dòng)化的鋁材數(shù)量統(tǒng)計(jì)方法使用計(jì)算機(jī)視覺(jué)算法和圖像處理技術(shù)實(shí)現(xiàn)對(duì)鋁材數(shù)量的識(shí)別和計(jì)算,為解決傳統(tǒng)人工計(jì)數(shù)方式存在的效率低、耗時(shí)長(zhǎng)及無(wú)法保證統(tǒng)計(jì)結(jié)果準(zhǔn)確性的問(wèn)題提供了較好的方案。
1 相關(guān)研究(Related research
CHEN等[3]提出了一種基于深度學(xué)習(xí)的YOLOv4模型,通過(guò)無(wú)人機(jī)采集圖像對(duì)楊梅樹(shù)數(shù)量進(jìn)行統(tǒng)計(jì)的方法。SOZZI等[4]提出了一種使用YOLO模型對(duì)每株葡萄樹(shù)進(jìn)行自動(dòng)化計(jì)數(shù),實(shí)現(xiàn)對(duì)葡萄產(chǎn)量的估算。CHOWDHURY等[5]提出了一種使用無(wú)人機(jī)捕獲圖像并結(jié)合YOLOv5模型對(duì)棕櫚樹(shù)進(jìn)行計(jì)數(shù)的方法。上述基于深度學(xué)習(xí)算法的檢測(cè)方法需使用大量的圖像進(jìn)行訓(xùn)練且訓(xùn)練結(jié)果不能預(yù)期。馮書(shū)慶等[6]借鑒模板匹配的方法,設(shè)計(jì)了一種圖像分割掃描及特征匹配的模板檢測(cè)算法,提出了一種基于機(jī)器視覺(jué)的魚(yú)類目識(shí)別算法。楊俊杰等[7]提出了對(duì)圖像金字塔頂層使用Linemod-2D(基于特征匹配的快速目標(biāo)識(shí)別算法)的快速查表法,并結(jié)合Otsu(最大類間方差法)算法和自動(dòng)雙閾值分割法對(duì)多目標(biāo)工件進(jìn)行快速識(shí)別定位及分揀。應(yīng)捷等[8]運(yùn)用仿射變換和模板匹配的方法對(duì)道路車(chē)位進(jìn)行識(shí)別并計(jì)數(shù)。上述方法雖然不必使用大量圖像進(jìn)行訓(xùn)練,但是在面對(duì)復(fù)雜圖像時(shí),其識(shí)別速度較慢、召回率較低。
本文通過(guò)基于雙閾值的Sobel邊緣檢測(cè)算法提取模板輪廓,針對(duì)輪廓可能會(huì)出現(xiàn)斷續(xù)、凹凸不平等問(wèn)題,采用直線擬合算法求出最優(yōu)的模板輪廓,提出一種基于圖像金字塔裁剪的改進(jìn)圖像金字塔算法,并在此基礎(chǔ)上進(jìn)行模板匹配,實(shí)現(xiàn)對(duì)鋁材的準(zhǔn)確計(jì)數(shù)。
2 模板輪廓提?。═emplate contour extraction)
本研究檢測(cè)所用圖像均由相機(jī)拍攝,采集到的鋁材待測(cè)圖像如圖1所示。
檢測(cè)所需圖像處理操作如下:首先進(jìn)行圖像預(yù)處理,使用Sobel算法進(jìn)行邊緣提取、直線擬合,其次采用經(jīng)過(guò)改進(jìn)的圖像金字塔算法進(jìn)行多目標(biāo)模板匹配等操作。測(cè)出圖像中每個(gè)板材的位置,并將檢測(cè)結(jié)果顯示在板材對(duì)應(yīng)位置。圖像處理流程圖如圖2所示。
2.1 圖像預(yù)處理
為簡(jiǎn)化圖像處理過(guò)程,需要將采集到的圖像轉(zhuǎn)成灰度圖像,減少計(jì)算量。采集的圖像易受到光照、曝光等因素的影響,容易出現(xiàn)局部模糊、細(xì)節(jié)丟失等情況,因此需對(duì)圖像進(jìn)行細(xì)節(jié)增強(qiáng)。
為 了增強(qiáng)圖像細(xì)節(jié),經(jīng)多組實(shí)驗(yàn)對(duì)比,采用導(dǎo)向?yàn)V波[9]對(duì)圖像進(jìn)行增強(qiáng),平滑圖像邊緣的同時(shí),圖像的整體細(xì)節(jié)也可以得到很好的控制;實(shí)現(xiàn)原理如公式(1)和公式(2)所示:
其中:pi 為輸入圖像,Ii 為導(dǎo)向圖,qi 為濾波后的輸出圖像,系數(shù)ak 和bk 是對(duì)導(dǎo)向圖Ii 進(jìn)行線性變換的參數(shù),ni 可以看成為輸入圖像的紋理和噪聲。
原圖像如圖3(a)所示,預(yù)處理后的結(jié)果圖像如圖3(b)所示。通過(guò)圖3可以觀察到,通過(guò)導(dǎo)向?yàn)V波處理后的圖像對(duì)比原圖像,邊緣更加平滑、細(xì)節(jié)更加清晰。
2.2 模板輪廓預(yù)處理
對(duì)圖像進(jìn)行預(yù)處理后,需要選擇合適的模板進(jìn)行模板匹配,選擇的模板通過(guò)圖像預(yù)處理后如圖4(a)所示。本文通過(guò)Sobel邊緣檢測(cè)算法對(duì)預(yù)處理后的模板圖像進(jìn)行邊緣提取。Sobel邊緣檢測(cè)算法的優(yōu)點(diǎn)是具有較高的抗噪聲和抗干擾能力,但在處理復(fù)雜背景的圖像時(shí),無(wú)法嚴(yán)格區(qū)分背景和所需提取的圖像,可能導(dǎo)致提取的圖像邊緣輪廓模糊[10]。因此,本文引入滯后閾值法,用于優(yōu)化Sobel算法對(duì)邊緣輪廓的提取[11]。該方法設(shè)置高低閾值各一個(gè),并通過(guò)遍歷像素的方法進(jìn)行比對(duì)。高于高閾值的像素點(diǎn),認(rèn)為是強(qiáng)邊緣,予以保留;低于低閾值的邊緣點(diǎn),認(rèn)為是弱邊緣,予以舍棄;對(duì)于介于高低閾值的像素點(diǎn),如果該像素點(diǎn)連接強(qiáng)邊緣時(shí),予以保留,如果連接到弱邊緣時(shí),予以舍棄。對(duì)經(jīng)過(guò)預(yù)處理后的模板圖像,運(yùn)用Sobel邊緣檢測(cè)算法提取的模板輪廓如圖4(b)所示。
使用Sobel邊緣檢測(cè)算法提取的模板輪廓并不適用于直接匹配模板。如圖4(b)所示,Sobel邊緣檢測(cè)算法檢測(cè)到的邊緣可能會(huì)出現(xiàn)斷斷續(xù)續(xù)、凹凸不平的問(wèn)題,因此如果直接使用該模板輪廓進(jìn)行匹配,會(huì)產(chǎn)生許多錯(cuò)誤匹配,并且召回率較低,無(wú)法滿足實(shí)際應(yīng)用的要求。為了優(yōu)化模板輪廓,需要對(duì)Sobel算子提取的模板輪廓進(jìn)行直線擬合。
2.3 直線擬合算法
由于最小二乘法[12]對(duì)直線擬合是將時(shí)間序列中各項(xiàng)數(shù)據(jù)予以同等對(duì)待,直接使用最小二乘法對(duì)模板輪廓進(jìn)行直線擬合,最終得到的結(jié)果并不理想。這是因?yàn)樗玫降哪0遢喞皇且粭l簡(jiǎn)單的直線,而是對(duì)模板圖像最貼合的邊緣。基于加權(quán)最小二乘法的擬合,通過(guò)對(duì)臨近的像素點(diǎn)賦予較高的權(quán)重,對(duì)較遠(yuǎn)的像素點(diǎn)給予較低的權(quán)重,因此能得到更真實(shí)的模板圖像輪廓[13]。加權(quán)最小二乘法采用指數(shù)權(quán)數(shù)Wn-1,0
對(duì)圖4(b)進(jìn)行直線擬合后,得到的模板輪廓如圖5所示。從圖5中可以清晰地看到直線擬合后的模板輪廓與真實(shí)的模板輪廓非常接近,相比Sobel算法提取的模板輪廓更加準(zhǔn)確。圖5可以作為模板輪廓進(jìn)行匹配操作。
3 模板匹配(Template matching)
模板匹配的原理是將一個(gè)預(yù)定義的模板或樣本圖像與目標(biāo)圖像進(jìn)行比較,通過(guò)計(jì)算它們之間的相似度或差異度確定匹配的位置。傳統(tǒng)的模板匹配方法采用遍歷的方式,在原圖像上從左到右、從上到下以像素為單位采用滑動(dòng)方式進(jìn)行匹配。在每個(gè)像素位置,將原圖像中與模板圖像大小相同的區(qū)域截取出來(lái),并進(jìn)行像素值比較運(yùn)算,找到最佳匹配位置或最高相似度得分[14]。
由于傳統(tǒng)模板匹配方法是采用遍歷的方式進(jìn)行搜索,因此存在匹配時(shí)間長(zhǎng)、內(nèi)存消耗高等缺陷,不適用于大規(guī)模檢測(cè)計(jì)算。本文引入圖像金字塔算法對(duì)模板匹配進(jìn)行加速。
3.1 圖像金字塔算法
圖像金字塔算法[15]是一種多尺度圖像處理技術(shù),用于在不同分辨率下對(duì)圖像進(jìn)行分析和處理;它以金字塔的形式表示圖像的多個(gè)尺度,每個(gè)尺度對(duì)應(yīng)圖像的不同分辨率,通常包括兩個(gè)主要步驟,通過(guò)重復(fù)進(jìn)行向下采樣和向上采樣,可以構(gòu)建圖像金字塔。每個(gè)金字塔級(jí)別都對(duì)應(yīng)于原始圖像的不同分辨率。常見(jiàn)的圖像金字塔算法有高斯金字塔算法和拉普拉斯金字塔算法。
如圖6所示,金字塔底部為高分辨率圖像,頂部為低分辨率圖像,將一層一層的圖像比喻成金字塔,層級(jí)越高,則圖像越小、分辨率越低。
將圖像金字塔和傳統(tǒng)模板匹配方法相結(jié)合,先使用圖像金字塔算法生成一系列不同尺度的圖像,然后將模板放在金字塔最高級(jí)別(即最高層)進(jìn)行匹配。在當(dāng)前級(jí)別的金字塔中找到一個(gè)匹配位置后,可以將該匹配結(jié)果傳遞到較低級(jí)別的金字塔中,作為下一級(jí)別的初始估計(jì)。重復(fù)以上步驟,在下一級(jí)別的金字塔中繼續(xù)匹配過(guò)程,直到達(dá)到金字塔的最低級(jí)別。通過(guò)這種迭代的方式,可以在不同尺度的圖像中搜索匹配,從而提高匹配的效率,有效地解決傳統(tǒng)模板匹配效率較低的問(wèn)題。本文采用高斯金字塔算法對(duì)原圖像進(jìn)行連續(xù)的下采樣生成用于模板匹配的金字塔。
3.2 改進(jìn)的圖像金子塔算法
采用基于圖像金字塔的算法對(duì)模板匹配進(jìn)行加速,雖然在匹配速度上已經(jīng)有了很大的提高,但是未能滿足實(shí)際應(yīng)用的要求。因此,本文提出了一種更高效的圖像金字塔算法,具體步驟如下。
(1)創(chuàng)建圖像金字塔:使用高斯圖像金字塔算法生成不同分辨率的圖像金字塔,其中包括多個(gè)層級(jí)。
(2)確定中間層級(jí):根據(jù)匹配需求和圖像金字塔的層級(jí)數(shù),選擇適當(dāng)?shù)闹虚g層級(jí)作為匹配的目標(biāo)層級(jí)。
(3)在中間層級(jí)進(jìn)行搜索:使用圖像金字塔裁剪算法,在選定的中間層級(jí)上進(jìn)行匹配搜索。具體步驟如下:①計(jì)算金字塔尺寸:根據(jù)輸入的圖像金字塔,由函數(shù)確定金字塔的總層數(shù)以及每個(gè)層級(jí)的尺寸。②確定層級(jí)范圍:根據(jù)輸入的起始層級(jí)和結(jié)束層級(jí),確定需要保留的層級(jí)范圍。③獲取指定層級(jí)的圖像域:由函數(shù)根據(jù)指定的層級(jí)從金字塔中獲取對(duì)應(yīng)的圖像域。④裁剪圖像域:對(duì)金字塔中的每個(gè)層級(jí)的圖像域進(jìn)行裁剪,保留指定層級(jí)范圍內(nèi)的圖像域。裁剪操作可以調(diào)整圖像域的尺寸,使其符合指定范圍。⑤返回結(jié)果:由函數(shù)返回一個(gè)新的金字塔,其中僅包含在指定層級(jí)范圍內(nèi)的圖像域。
(4)結(jié)果映射回原始圖像:根據(jù)中間層級(jí)的匹配結(jié)果,將結(jié)果映射回原始圖像的坐標(biāo)系統(tǒng),這樣可以得到原始圖像上的匹配結(jié)果,包括每個(gè)匹配的中心坐標(biāo)和偏移角度。
4 實(shí)驗(yàn)和結(jié)果(Experiments and results)
為了對(duì)本文提出的改進(jìn)的圖像金字塔算法的實(shí)際效率進(jìn)行驗(yàn)證,使用同一圖像數(shù)據(jù)集對(duì)本文提出的算法、傳統(tǒng)方法及圖像金字塔算法進(jìn)行多組實(shí)驗(yàn),對(duì)各類算法的耗時(shí)進(jìn)行統(tǒng)計(jì),不同算法的耗時(shí)結(jié)果如表1所示。
根據(jù)表1中的數(shù)據(jù)可以得出以下結(jié)論:在相同的實(shí)驗(yàn)條件下,傳統(tǒng)算法的執(zhí)行時(shí)間較長(zhǎng),而圖像金字塔算法極大地提高了傳統(tǒng)算法的效率。本文提出的算法在圖像金字塔算法的基礎(chǔ)上進(jìn)行了改進(jìn),取得了顯著的效果。
為了驗(yàn)證本文所提算法的有效性,進(jìn)行多組實(shí)驗(yàn),部分實(shí)驗(yàn)結(jié)果展示如圖7和圖8所示,檢測(cè)結(jié)果用加粗線條表示。
如圖7所示,鋁材1的實(shí)際數(shù)量為76個(gè),檢測(cè)結(jié)果為76個(gè);如圖8所示,鋁材2的實(shí)際數(shù)量為105個(gè),檢測(cè)結(jié)果為99個(gè)。
為了對(duì)算法的有效性進(jìn)行判斷,根據(jù)實(shí)際應(yīng)用中的幾個(gè)關(guān)鍵指標(biāo)進(jìn)行數(shù)據(jù)采集,記錄的實(shí)驗(yàn)數(shù)據(jù)如表2所示。
根據(jù)表2中的數(shù)據(jù)可以得出以下結(jié)論:本文提出的改進(jìn)算法在匹配耗時(shí)及召回率方面均有良好的表現(xiàn),平均檢測(cè)準(zhǔn)確率達(dá)到98.4%,匹配效率相較于傳統(tǒng)圖像金字塔算法提升了37.0%,漏檢率和誤檢率都在可接受的誤差范圍內(nèi),本文所提算法滿足實(shí)際應(yīng)用要求。
5 結(jié)論(Conclusion)
本文采用基于雙閾值的Sobel邊緣檢測(cè)算法進(jìn)行模板邊緣的提取,結(jié)合基于權(quán)重的直線擬合方法對(duì)模板輪廓進(jìn)行優(yōu)化處理,提出改進(jìn)的圖像金字塔算法對(duì)入庫(kù)鋁材進(jìn)行計(jì)數(shù)檢測(cè)。實(shí)驗(yàn)結(jié)果表明,該算法具有召回率高、識(shí)別效率高等特點(diǎn),可滿足工業(yè)生產(chǎn)的實(shí)際檢測(cè)要求。但是,本文提出的檢測(cè)方法在面對(duì)目標(biāo)被遮擋或堆疊的情況時(shí)存在漏檢和誤檢的情況。為了解決這些問(wèn)題,希望未來(lái)的研究可以利用目標(biāo)周?chē)纳舷挛男畔⑤o助檢測(cè)過(guò)程,例如通過(guò)對(duì)目標(biāo)與背景之間的關(guān)系或目標(biāo)與其他目標(biāo)之間的關(guān)聯(lián)進(jìn)行建模,提高檢測(cè)的魯棒性,減少誤檢和漏檢情況。