方曉東, 朱婷婷, 吳 旻, 李星佑, 薛 勝
(南京林業(yè)大學(xué)機(jī)械電子工程學(xué)院,江蘇 南京 210037)
企業(yè)在生產(chǎn)硬糖的過程中往往會(huì)出現(xiàn)氣泡缺陷[1],主要有以下幾點(diǎn)原因:糖漿中的空氣未充分排出:制作硬糖時(shí),如果沒有充分去除糖漿中的微小氣泡,這些氣泡在糖塊成形過程中會(huì)被保留下來;糖漿中含水量、溫度過高,會(huì)導(dǎo)致硬糖在成形過程中出現(xiàn)沸騰,從而形成表面氣泡;冷卻速度過快,糖漿外部會(huì)迅速凝固形成硬殼,將內(nèi)部氣泡困住。
硬糖中出現(xiàn)氣泡缺陷會(huì)影響其外觀和口感,因此需要對含氣泡的硬糖進(jìn)行檢測剔除。檢測氣泡缺陷的常用方法分為人工檢測與在線檢測[2,3]。其中人工檢測是通過對硬糖的外觀進(jìn)行仔細(xì)觀察,可以直觀地看出表面或內(nèi)部存在的氣泡;還可以用小錘等工具敲擊糖塊,聽聲音判斷是否存在空洞。這種方法簡單易行,但容易遺漏, 且主觀性較大,只能檢查樣品的一部分。在線檢測包括透光檢測[4]、X光檢測[5]。透光檢測是利用光線透過糖塊,觀察到內(nèi)部的氣泡。這種方法使用透光裝置,能夠全面地檢查每個(gè)糖塊。X光檢測是使用X光片或CT掃描進(jìn)行無損檢測,可以清楚地顯示出糖塊內(nèi)部的氣泡情況。這種方法準(zhǔn)確可靠,但需要專門設(shè)備,成本較高。剔除方法通常是利用人工目視或借助工具檢測氣泡后,手動(dòng)將其舀除或挑掉。也可以在線檢測后,設(shè)置氣嘴將含氣泡糖塊自動(dòng)挑剔,確保送入包裝的硬糖無氣泡缺陷,以保證產(chǎn)品質(zhì)量。
目標(biāo)檢測是計(jì)算機(jī)視覺領(lǐng)域的一個(gè)重要任務(wù),旨在識(shí)別圖像或視頻中的物體并確定它們的位置。目標(biāo)檢測具有廣泛的用途,如自動(dòng)駕駛、安全監(jiān)控、工業(yè)質(zhì)檢、醫(yī)療影像分析等。
在目標(biāo)檢測任務(wù)中,模型需要識(shí)別物體的類別,并且精確地標(biāo)定出物體在圖像中的位置,通常以矩形邊界框的形式表示。早期的目標(biāo)檢測方法主要基于手工設(shè)計(jì)的特征提取器和機(jī)器學(xué)習(xí)分類器,如Haar級(jí)聯(lián)檢測器和Histogram of Oriented Gradients (HOG)。這些方法在一些場景下表現(xiàn)不錯(cuò),但通常對于復(fù)雜的背景和物體變化敏感性較高。
深度學(xué)習(xí)的興起改變了目標(biāo)檢測領(lǐng)域。卷積神經(jīng)網(wǎng)絡(luò)(CNN)在圖像特征提取方面表現(xiàn)出色,為目標(biāo)檢測任務(wù)提供了更強(qiáng)大的工具。一些重要的深度學(xué)習(xí)目標(biāo)檢測算法包括:Region-CNN (R-CNN)[6]、Fast R-CNN[7]、Faster R-CNN[8]等,它們引入了候選區(qū)域生成和卷積神經(jīng)網(wǎng)絡(luò)來提高檢測性能和速度;YOLO(You Only Look Once)[9]算法通過將目標(biāo)檢測問題轉(zhuǎn)化為回歸問題,同時(shí)預(yù)測目標(biāo)的類別和位置,實(shí)現(xiàn)了實(shí)時(shí)性能和較高的準(zhǔn)確度;SSD[10](Single Shot MultiBox Detector)是一種基于單次前向傳播的目標(biāo)檢測器,可以同時(shí)檢測多個(gè)不同尺寸的目標(biāo);RetinaNet[11]引入了Focal Loss來處理目標(biāo)檢測中的類別不平衡問題,提高了目標(biāo)檢測的魯棒性。
目標(biāo)檢測算法的訓(xùn)練需要大量的標(biāo)記數(shù)據(jù),常用的數(shù)據(jù)集包括COCO、PASCAL VOC、ImageNet等。這些數(shù)據(jù)集包含了多種不同類別的物體和相應(yīng)的邊界框標(biāo)注,用于模型訓(xùn)練和性能評(píng)估。目標(biāo)檢測領(lǐng)域仍然在不斷發(fā)展,包括改進(jìn)性能、提高魯棒性、減少標(biāo)注成本、處理遮擋和多目標(biāo)等方面的挑戰(zhàn)。近年來,深度強(qiáng)化學(xué)習(xí)和自監(jiān)督學(xué)習(xí)等方法也在目標(biāo)檢測中得到了應(yīng)用。
總之,目標(biāo)檢測算法經(jīng)歷了從傳統(tǒng)方法到深度學(xué)習(xí)方法的演進(jìn),不斷取得了突破性的進(jìn)展,為許多實(shí)際應(yīng)用提供了有力的支持。
對采集到的相關(guān)糖果圖像進(jìn)行預(yù)處理,讓圖像更好地適應(yīng)模型:采用直方圖均衡化方法來調(diào)整糖果圖像的亮度分布,使得糖果圖像中的亮度級(jí)別更加均勻,從而增強(qiáng)圖像的對比度,使得氣泡缺陷細(xì)節(jié)更加清晰;采用中值濾波[12]方法:用中值代替像素周圍鄰域的值,可以有效去除圖像中的噪聲,使得圖像更加清晰。傳統(tǒng)的圖片縮放方法按照固定尺寸來進(jìn)行縮放會(huì)造成圖片扭曲變形的問題。Letterbox自適應(yīng)縮放技術(shù)通過填充最少的灰邊像素來將任意大小的圖片調(diào)整為所需輸入圖片大小。resize為640×640的RGB圖像。通過圖像預(yù)處理,便于后續(xù)的糖果氣泡缺陷檢測。
圖1 輸入圖層ReOrg操作
ReOrg操作是對輸入的信息進(jìn)行切片操作,和YOLOv5的focus操作類似,使輸入圖層盡可能保持原信息并進(jìn)行下采樣:將一張圖隔列隔行取值,切分成4塊再進(jìn)行信息的拼接,類似的下采樣操作還包括均值池化,最大值池化等,但池化操作會(huì)將原始信息進(jìn)行加工(均值)或舍棄(最大值),丟失原始信息源,在一定程度上,切片拼接操作可以最大程度保留信息源。
2.3.1 simOTA
Label assignment在目標(biāo)檢測中非常重要,它是一個(gè)預(yù)定義的規(guī)則,能夠分配每個(gè)anchor的正負(fù),不同大小、形狀、遮擋程度的目標(biāo),其positive/negative的判定條件不同,需要使用動(dòng)態(tài)的分配方法實(shí)現(xiàn)Label assignment。OTA將Label assignment問題從global層面出發(fā)并看成了一個(gè)最優(yōu)傳輸?shù)膯栴}[13],“全局花費(fèi)最小”時(shí),可得到最優(yōu)的標(biāo)簽分配方式。OTA[14]需要使用Sinkhorn-Knopp algorithm來優(yōu)化,這會(huì)增加額外的訓(xùn)練時(shí)間。使用simOTA能夠做到自動(dòng)地分析每個(gè)gt要擁有多少個(gè)正樣本、能自動(dòng)決定每個(gè)gt要從哪個(gè)特征圖來檢測。相比較OTA,simOTA運(yùn)算速度更快、避免額外超參數(shù)。
2.3.2 重參化
結(jié)構(gòu)重參數(shù)化[15](structural re-parameterization)指的是首先構(gòu)造一系列結(jié)構(gòu)(一般用于訓(xùn)練),并將其參數(shù)等價(jià)轉(zhuǎn)換為另一組參數(shù)(一般用于推理),從而將這一系列結(jié)構(gòu)等價(jià)轉(zhuǎn)換為另一系列結(jié)構(gòu)。在現(xiàn)實(shí)場景中,訓(xùn)練資源一般是相對豐富的,我們更在意推理時(shí)的開銷和性能,因此我們想要訓(xùn)練時(shí)的結(jié)構(gòu)較大,具備某種好的性質(zhì)(更高的精度),轉(zhuǎn)換得到的推理時(shí)結(jié)構(gòu)較小且保留這種性質(zhì)(相同的精度),即用一個(gè)結(jié)構(gòu)的一組參數(shù)轉(zhuǎn)換為另一組參數(shù),并用轉(zhuǎn)換得到的參數(shù)來參數(shù)化(parameterize)另一個(gè)結(jié)構(gòu)。只要參數(shù)的轉(zhuǎn)換是等價(jià)的,這兩個(gè)結(jié)構(gòu)的替換就是等價(jià)的。在卷積計(jì)算中:
(1)
對于輸入特征圖,先進(jìn)行K(1)和I卷積,K(2)和I卷積后再對結(jié)果進(jìn)行相加,與先進(jìn)行K(1)和K(2)的逐點(diǎn)相加后再和I進(jìn)行卷積得到的結(jié)果是一致的。說明在YOLOv7中可使用結(jié)構(gòu)重參數(shù)化,在保證結(jié)構(gòu)不變的情況下獲得更高的檢測精度。原本在訓(xùn)練的時(shí)候,identity支路、3×3支路、1×1支路推理前需要融合三者的w、b來獲取訓(xùn)練時(shí)各支路的w、b ;w1在identity支路上進(jìn)行bn后得到w11,b11;w2在3×3支路上進(jìn)行bn后得到w21,b21;w3 在1×1支路上進(jìn)行bn后得到w31,b31;重參化后identity和1×1支路的權(quán)重會(huì)轉(zhuǎn)換為3×3形狀的權(quán)重后進(jìn)行bn,bn的公式如下:
(2)
其中:β、γ是可訓(xùn)練參數(shù),參與整個(gè)網(wǎng)絡(luò)的BP。訓(xùn)練時(shí)三條支路如圖2所示。
圖2 訓(xùn)練時(shí)三條支路
轉(zhuǎn)換后的3×3的權(quán)重為wnew=w11+w21+w31;推理時(shí)的新的3×3卷積將是:
(3)
推理時(shí)結(jié)構(gòu)重參化如圖3所示。
圖3 推理時(shí)結(jié)構(gòu)重參化為一條支路
搭建的糖果圖像采集裝置如圖4所示。
圖4 糖果圖像采集裝置1.上料機(jī)構(gòu);2.傳送帶;3.硬糖;4.工業(yè)相機(jī);5.光源;6.Jetson Xavier NX板;7.PLC與噴閥機(jī)構(gòu);8.氣動(dòng)噴嘴;9.缺陷糖果收集箱;10.標(biāo)準(zhǔn)糖果收集箱
采用專門的儀器設(shè)備采集到相關(guān)的糖果圖像。具體為:使用專門的儀器設(shè)備3D激光輪廓傳感器[16],型號(hào)為MV-DP2470-01H。首先將3D激光輪廓傳感器固定在距離撒有糖果的傳送帶高75 cm的位置,然后打開光源,通過3DMVS軟件控制傳感器啟動(dòng)、調(diào)換模式進(jìn)行圖像的拍攝,接著檢查傳感器是否可以拍攝照片。準(zhǔn)備完畢后啟動(dòng)傳送帶進(jìn)行拍攝,糖果的RGB圖如圖5所示。最后關(guān)閉傳感器,整理收到的圖像數(shù)據(jù)。運(yùn)用2.1節(jié)中的圖像處理技術(shù)對圖像進(jìn)行預(yù)處理使后續(xù)的缺陷檢測提高精度。根據(jù)采集到的圖片,觀察缺陷種類,將所有糖果劃分為正常糖果、輪廓不規(guī)則糖果、表面光滑帶氣泡糖果、表面坑洞帶氣泡糖果,隨后進(jìn)行數(shù)據(jù)集的劃分。
圖5 相關(guān)糖果的RGB圖
YOLOv7網(wǎng)絡(luò)主要由BackBone網(wǎng)絡(luò)、Neck網(wǎng)絡(luò)和Detect網(wǎng)絡(luò)組成,YOLOv7結(jié)構(gòu)示意圖如圖6所示。BackBone網(wǎng)絡(luò)[17]包含CBS結(jié)構(gòu)、SPP結(jié)構(gòu)、CSP結(jié)構(gòu),作為特征提取器,用來從輸入圖像中學(xué)習(xí)和提取視覺特征。這些視覺特征包含了輸入圖像的空間信息,是對象檢測任務(wù)的重要信息來源。Neck網(wǎng)絡(luò)[18]包含路徑聚合網(wǎng)絡(luò)PAN[19]和特征金字塔FPN網(wǎng)絡(luò)[20],可以做到如下內(nèi)容。(1)在不同尺度上聚合特征: Neck網(wǎng)絡(luò)會(huì)聚合和整合Backbone網(wǎng)絡(luò)輸出的不同尺度的特征圖,合并它們的語義信息。這對檢測不同尺度目標(biāo)非常有幫助。(2)強(qiáng)化特征表達(dá): Neck網(wǎng)絡(luò)中通常會(huì)引入注意力機(jī)制或殘差結(jié)構(gòu)來增強(qiáng)特征圖在通道或空間方向的表示能力,輸出更強(qiáng)大的特征。(3)減少目標(biāo)丟失: 通過跨尺度信息交互,可以減少僅存在于某一個(gè)尺度下的小目標(biāo)被漏檢的情況。(4)提升檢測頭效率: Neck網(wǎng)絡(luò)縮減了特征圖的大小和通道,減少了檢測頭的計(jì)算量,提高檢測速度。這種多尺度特征融合增強(qiáng)了檢測網(wǎng)絡(luò)表示不同大小目標(biāo)的能力,既提高了檢測精度,也優(yōu)化了檢測速度。Detect網(wǎng)絡(luò)根據(jù)Backbone和Neck提取到的特征圖,來預(yù)測和生成最終的對象檢測結(jié)果,包括如下內(nèi)容。(1)生成邊界框(Bounding Box): Detect網(wǎng)絡(luò)會(huì)在特征圖的每個(gè)位置上,預(yù)測 potential 的邊界框坐標(biāo)(如框的中心點(diǎn)、寬高等)。(2)類別預(yù)測(Classification): 為每個(gè)預(yù)測到的邊界框生成一個(gè)類別概率分布,預(yù)測該框所包含目標(biāo)的類別。(3)評(píng)分預(yù)測(Scoring): 為每個(gè)邊界框預(yù)測一個(gè)置信度分?jǐn)?shù),表示預(yù)測框中是否包含某個(gè)目標(biāo)的置信程度。Detect網(wǎng)絡(luò)中的關(guān)鍵是令牌分配算法(Token Labeling Algorithm)。該算法使用迭代優(yōu)化的方式為每個(gè)特征圖位置分配最匹配的邊界框。這樣一來,Detect網(wǎng)絡(luò)可以高效且準(zhǔn)確地完成檢測和識(shí)別。
圖6 YOLOv7網(wǎng)絡(luò)結(jié)構(gòu)示意圖
本研究采用召回率(recall)、精準(zhǔn)率(precision)、作為YOLOv7網(wǎng)絡(luò)評(píng)價(jià)指標(biāo)。
(3)
(4)
其中TP表示將正確類預(yù)測為正確類別的個(gè)數(shù),FN表示將正確類別預(yù)測為錯(cuò)誤類別的個(gè)數(shù),FP表示將負(fù)類別預(yù)測為正確類別的個(gè)數(shù)。
實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果顯示,在經(jīng)過200次迭代后,YOLOv7網(wǎng)絡(luò)趨于收斂,其召回率達(dá)到97%,這表明該網(wǎng)絡(luò)能夠?qū)崿F(xiàn)對缺陷的糖果的精準(zhǔn)檢測分類。