安小松,宋竹平,梁千月,杜璇,李善軍,2,3
1.華中農(nóng)業(yè)大學(xué)工學(xué)院,武漢 430070;2.國(guó)家柑橘保鮮技術(shù)研發(fā)專(zhuān)業(yè)中心,武漢 430070;3.農(nóng)業(yè)農(nóng)村部長(zhǎng)江中下游農(nóng)業(yè)裝備重點(diǎn)實(shí)驗(yàn)室,武漢 430070
柑橘是世界上最豐富的水果之一,含有大量有益的次生代謝產(chǎn)物,年產(chǎn)量超過(guò)1.24億t,每年約1/3的柑橘被用于后處理加工[1]。水果的后處理過(guò)程一般包括清洗、打蠟、分選、分級(jí)、包裝、運(yùn)輸和儲(chǔ)存,其中柑橘的分選和分級(jí)有利于鮮果銷(xiāo)售利潤(rùn)空間的增加[2]。目前,雖然已經(jīng)開(kāi)發(fā)了各種柑橘后處理加工機(jī)器[3-4],但柑橘表面缺陷檢測(cè)主要還是由人工進(jìn)行,耗時(shí)且成本昂貴[2]。開(kāi)發(fā)自動(dòng)化的分揀系統(tǒng)可以更有效、更經(jīng)濟(jì)、更準(zhǔn)確地對(duì)柑橘進(jìn)行分類(lèi),有利于克服柑橘表面缺陷導(dǎo)致的對(duì)消費(fèi)者購(gòu)買(mǎi)意愿產(chǎn)生的負(fù)面影響,以及大幅度地提高其市場(chǎng)價(jià)格。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)作為深度學(xué)習(xí)常用技術(shù)之一,在機(jī)器視覺(jué)中顯示出了各種應(yīng)用潛力,如圖像分類(lèi)、目標(biāo)檢測(cè)和圖像分割等[5-6]。由于它強(qiáng)大的特征提取能力和自動(dòng)學(xué)習(xí)能力,與傳統(tǒng)的圖像處理方法相比,可以收獲更好的識(shí)別精度[7-8]。在目標(biāo)檢測(cè)領(lǐng)域,它也常被應(yīng)用于農(nóng)業(yè)各種檢測(cè)任務(wù)中,如田間害蟲(chóng)檢測(cè)、茶葉品質(zhì)鑒定、水稻產(chǎn)量預(yù)測(cè)等[8-9]。
Transformer起源于2017年[10],常被應(yīng)用于自然語(yǔ)言處理,在機(jī)器翻譯、文本分類(lèi)等方向表現(xiàn)極佳[11]。最近也被應(yīng)用于多目標(biāo)跟蹤[12]和軌跡預(yù)測(cè)領(lǐng)域,均取得良好效果。相比循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN),Transformer因其并行運(yùn)算可以避免遞歸,從而減少由于長(zhǎng)期依賴(lài)而導(dǎo)致的性能下降[13]。
目前,有關(guān)柑橘缺陷檢測(cè)的研究報(bào)道不多。章海亮等[14]使用高光譜成像(HSI)技術(shù)檢測(cè)缺陷柑橘,通過(guò)主成分分析提取特征波長(zhǎng)實(shí)現(xiàn)缺陷柑橘的分類(lèi),識(shí)別率達(dá)到94%,但該方法存在實(shí)時(shí)應(yīng)用困難且設(shè)備成本較高等問(wèn)題。龔中良等[15]通過(guò)柑橘的顏色特征差異使用邊緣分割實(shí)現(xiàn)缺陷柑橘的分類(lèi),分類(lèi)識(shí)別率達(dá)到92%,但這種基于RGB的判別方法受環(huán)境、光照等影響較大。針對(duì)產(chǎn)線缺陷分選,李善軍等[16]提出了一種基于改進(jìn)SSD深度學(xué)習(xí)模型的缺陷柑橘實(shí)時(shí)檢測(cè)方法,該方法精度達(dá)到87.89%,但該方法無(wú)法跟蹤分類(lèi)的歷史信息,從而無(wú)法判斷最終柑橘的真實(shí)類(lèi)別。
本研究基于CNN強(qiáng)大的特征提取能力和Transformer的時(shí)間序列處理能力,設(shè)計(jì)了一種基于CNN與Transformer相結(jié)合的視覺(jué)系統(tǒng);通過(guò)結(jié)合檢測(cè)器和跟蹤器提出了一種新的基于檢測(cè)的跟蹤分類(lèi)策略,檢測(cè)器檢測(cè)柑橘的缺陷表面,而跟蹤器則沿著它們的路徑記住它們的分類(lèi)信息,通過(guò)歷史信息識(shí)別它們的真實(shí)類(lèi)別;同時(shí)利用軌跡預(yù)測(cè)算法對(duì)缺陷果實(shí)的未來(lái)路徑進(jìn)行預(yù)測(cè),旨在實(shí)現(xiàn)缺陷柑橘的分揀并快速地實(shí)現(xiàn)在線柑橘分類(lèi)。
樣品柑橘為蜜萘夏橙(Midknight Valencia Orange),來(lái)源于宜昌市秭歸縣,其特點(diǎn)是糖酸比適中,在成熟階段表皮顏色處于綠色到黃色之間。首先通過(guò)人工篩選將柑橘分為3類(lèi),分別為正常(N,指表面沒(méi)有任何缺陷并準(zhǔn)備好進(jìn)入新鮮水果市場(chǎng)的柑橘,圖1A)、機(jī)械損傷(MD,指在收獲或收獲后處理過(guò)程中由于處理不當(dāng)而受到機(jī)械損傷的樣本,圖1B)和表皮病變(SL,對(duì)于被真菌或昆蟲(chóng)感染的果實(shí),表面呈現(xiàn)缺陷的柑橘被歸類(lèi)為SL類(lèi),圖1C)。隨機(jī)抽取300個(gè)柑橘用于數(shù)據(jù)收集,其中N、MD、SL類(lèi)均為100個(gè)。
圖1 3類(lèi)柑橘示意圖Fig.1 Examples of 3 types of citrus
在實(shí)驗(yàn)室中組裝了1條市面上可用的柑橘加工生產(chǎn)線(GJDLX-5),該生產(chǎn)線裝備有自動(dòng)柑橘清洗和打蠟設(shè)備(圖2A)。傳統(tǒng)的柑橘加工生產(chǎn)線上,輸送機(jī)自由旋轉(zhuǎn)柑橘,以便分揀員檢查每個(gè)柑橘的所有表面,挑選出缺陷的柑橘;然后將健康的果實(shí)輸送到清洗機(jī)和打蠟機(jī)進(jìn)行再加工。
圖2 平臺(tái)設(shè)置和計(jì)算機(jī)視覺(jué)系統(tǒng)Fig.2 Platform setup and computer vision system
自動(dòng)化分揀過(guò)程使用網(wǎng)絡(luò)攝像頭(GuceeHD98)安裝在輸送機(jī)上方0.5 m,用于實(shí)時(shí)傳輸柑橘視頻圖像到分類(lèi)系統(tǒng),以便檢測(cè)和跟蹤有缺陷的柑橘;網(wǎng)絡(luò)攝像頭的圖像分辨率為640像素×480像素,每秒30幀(FPS);同時(shí)使用100 W的LED燈在工作空間內(nèi)增強(qiáng)和平衡照明條件。
視覺(jué)系統(tǒng)包括缺陷柑橘的檢測(cè)、跟蹤和軌跡預(yù)測(cè)共3步。第1步,傳送帶不間斷地旋轉(zhuǎn)柑橘,讓攝像頭查看柑橘的不同表面;為檢測(cè)有缺陷的柑橘,開(kāi)發(fā)了一種基于單階段神經(jīng)網(wǎng)絡(luò)的Mobile-Citrus檢測(cè)器,用于檢測(cè)柑橘果實(shí)并將其暫時(shí)分類(lèi)為相應(yīng)的類(lèi)別。第2步,采用自定義Transformer-One-Step的實(shí)時(shí)跟蹤算法用于跟蹤缺陷柑橘,通過(guò)存儲(chǔ)的歷史信息識(shí)別柑橘的真實(shí)類(lèi)別。第3步,利用Transformer-Multi-Step軌跡預(yù)測(cè)算法將未來(lái)路徑與類(lèi)別發(fā)送到中央控制系統(tǒng)。以上步驟已通過(guò)PC端實(shí)現(xiàn),在未來(lái)將會(huì)通過(guò)PC端的計(jì)算結(jié)果引導(dǎo)機(jī)器人手臂分揀缺陷柑橘,實(shí)現(xiàn)真正的產(chǎn)業(yè)化,如圖2B所示。
在圖像采集過(guò)程中,柑橘被放置在傳送帶上,傳送速度為0.3 m/s。將300個(gè)柑橘放在傳送帶上拍攝視頻,共拍攝6次,每次拍攝之前隨機(jī)打亂。即共收集了6個(gè)幀率為30 FPS的視頻,每個(gè)視頻持續(xù)時(shí)間為60~70 s。在這些視頻中,其中5個(gè)被用于所開(kāi)發(fā)的檢測(cè)器。為避免相鄰幀之間的信息重疊,每個(gè)視頻序列間隔10幀抽取1幀圖像,即每秒取3幀圖像,經(jīng)過(guò)人工篩選后,總共收集2 400張圖像;隨機(jī)選擇1 200幅圖像作為網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù),另外500幅圖像作為驗(yàn)證數(shù)據(jù),其余700幅圖像作為測(cè)試數(shù)據(jù)。使用LabelImg工具對(duì)采集到的圖像進(jìn)行手動(dòng)標(biāo)記,只有當(dāng)表面損壞或破壞性傷口被捕獲時(shí),柑橘被標(biāo)記為MD或SL類(lèi)。剩余1個(gè)視頻用于評(píng)估跟蹤器的性能。由于跟蹤并不需要訓(xùn)練,只需制作一個(gè)跟蹤相關(guān)的測(cè)試集即可,最終跟蹤測(cè)試數(shù)據(jù)集由1 800個(gè)連續(xù)序列構(gòu)成。由于軌跡預(yù)測(cè)與檢測(cè)跟蹤沒(méi)有聯(lián)系,錄制的6個(gè)視頻都可用于軌跡預(yù)測(cè),最終收集了8 074個(gè)連續(xù)序列作為軌跡預(yù)測(cè)的訓(xùn)練數(shù)據(jù),2 525個(gè)連續(xù)序列作為軌跡預(yù)測(cè)的測(cè)試數(shù)據(jù)。
提出的檢測(cè)網(wǎng)絡(luò)Mobile-Citrus基于YOLO-v4[17]架構(gòu)。輕量級(jí)分類(lèi)網(wǎng)絡(luò) MobileNet-V2[18]被用于替換YOLOv4中CSPDarknet53主干網(wǎng)絡(luò),用于從輸入圖像中提取多尺度特征圖。之后,使用路徑-聚合網(wǎng)絡(luò)(PANet)[19]作為檢測(cè)分支,從特征圖中聚合多尺度信息到P5。最后將檢測(cè)分支的輸出遵循YOLOv4網(wǎng)絡(luò)設(shè)計(jì)對(duì)YOLO head進(jìn)行解碼獲取柑橘的類(lèi)別信息、置信度、位置信息(圖3)。
圖3 檢測(cè)器的網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Network architecture of the detector
與原MobileNet-V2模型不同,輸入圖像尺寸從(224,224,3)變?yōu)椋?16,416,3),只使用了原模型中前面18層網(wǎng)絡(luò)架構(gòu),即18個(gè)深度可分離模塊(depthwise dodule),每個(gè)模塊具有倒殘差(inverted residual)結(jié)構(gòu)。最后將第7層C3、第14層C4、第18層C5模塊的特征圖作為檢測(cè)分支的輸入,以執(zhí)行缺陷柑橘的檢測(cè)。
Mobile-citrus的檢測(cè)分支從MobileNet網(wǎng)絡(luò)接收C3、C4和C5的特征圖,特征圖隨后遵循PANet的特定路徑到達(dá)P5。如C5特征圖通過(guò)P1路徑執(zhí)行卷積操作(Conv)和上采樣(Upsample)操作得到與C4大小一致的特征圖,該特征圖是P2路徑的輸入之一。P2路徑的另一個(gè)輸入是C4經(jīng)過(guò)卷積操作后得到的特征圖,即P2將會(huì)聚合C4特征圖與C5特征圖信息。同理,P5路徑將會(huì)聚合由P4經(jīng)過(guò)下采樣(Downsample)得到的特征圖與P2輸出的特征圖信息,即P5將會(huì)聚合C3、C4、C5模塊所有特征。與YOLOv4不同,Mobile-citrus只聚合了1個(gè)YOLO head,最終只會(huì)對(duì)1個(gè)YOLO head進(jìn)行解碼獲取柑橘的類(lèi)別信息、置信度、位置信息。
在訓(xùn)練過(guò)程中應(yīng)用多種圖像增強(qiáng)方法,讓模型學(xué)習(xí)更多有效特征,使模型魯棒性更優(yōu)。包括縮放(0.8~1.2)、翻轉(zhuǎn)(水平和垂直方向)、旋轉(zhuǎn)(±20°)以及HSV顏色空間中飽和度(0.8~1.2)和亮度(0.8~1.2)的調(diào)整。網(wǎng)絡(luò)訓(xùn)練時(shí),Adam優(yōu)化器用于梯度下降,批次大小為24,訓(xùn)練圖像分辨率為416像素×416像素。在訓(xùn)練過(guò)程中,凍結(jié)骨干網(wǎng)絡(luò)內(nèi)的權(quán)重,只對(duì)檢測(cè)分支進(jìn)行了訓(xùn)練。網(wǎng)絡(luò)訓(xùn)練前80個(gè)迭代的學(xué)習(xí)率為0.001,后40個(gè)迭代的學(xué)習(xí)率為0.000 1。
由于加工生產(chǎn)線上柑橘在做實(shí)時(shí)運(yùn)動(dòng),機(jī)器手需要一定的抓取時(shí)間,為了更準(zhǔn)確地抓取,可以將未來(lái)幀的信息輸入到執(zhí)行器,實(shí)現(xiàn)動(dòng)態(tài)抓取。這里采用了基于Transformer算法的預(yù)測(cè)器對(duì)未來(lái)的軌跡進(jìn)行預(yù)測(cè)。
另外,針對(duì)柑橘滾動(dòng)時(shí)會(huì)呈現(xiàn)不同的特征面,檢測(cè)模型難以確定同一柑橘的真實(shí)類(lèi)別的問(wèn)題,設(shè)計(jì)一套跟蹤算法,可以在不同的特征面中對(duì)相同的柑橘進(jìn)行歸類(lèi)標(biāo)記。為了獲得更好的檢測(cè)精度,提出了基于Transformer算法的實(shí)時(shí)多目標(biāo)跟蹤器,用于跟蹤和記錄工作空間內(nèi)每個(gè)柑橘在其路徑上的分類(lèi)信息。然后,視覺(jué)系統(tǒng)可以根據(jù)歷史分類(lèi)信息確定每個(gè)柑橘的真實(shí)類(lèi)別。
1)Transformer算法。Transformer的特點(diǎn)是編碼器和解碼器之間的相互注意,以及編碼器和解碼器內(nèi)部的自我注意。自我注意的主要優(yōu)點(diǎn)是它能夠?qū)⑤斎胄蛄械娜魏?個(gè)位置聯(lián)系起來(lái),而不管它們的距離如何,從而允許在廣泛的任務(wù)上性能顯著提高。與原始架構(gòu)有所不同,提出的Transformer架構(gòu)主要分為3個(gè)模塊,分別是輸入模塊(input block)、編碼器模塊(encoder block)以及輸出模塊(output block),如圖4所示。
圖4 Transformer網(wǎng)絡(luò)架構(gòu)Fig.4 Network architecture of the Transformer
輸入模塊由尺度化(MinMaxScaler)操作和位置編碼(Positional embedding)操作組成,MinMaxScaler操作類(lèi)似于歸一化,具有數(shù)據(jù)縮放的能力。與歸一化的效果相似,可以防止因輸入很大使得反向傳播時(shí)輸入層的梯度太大,從而造成越過(guò)最優(yōu)解的情況出現(xiàn)。對(duì)于本研究,像素?cái)?shù)據(jù)被縮放到{-15,15}。MinMaxScaler運(yùn)算如下:
假設(shè)x={x(1),…,x(n)}∈Rn×d由d維的n個(gè)序列組成。上述運(yùn)算可以將輸入值x從范圍{xmin,xmax}縮放到{min,max}中,其中x表示輸入值,xmin表示所有輸入值中最小值,xmax表示所有輸入值中最大值,xscaled為縮放后的值。
Positional embedding操作可以讓特征與特征之間具有相對(duì)位置關(guān)系,使得模型的學(xué)習(xí)更加容易。Positional embedding運(yùn)算如下:
其中,pos代表序列長(zhǎng)度所處位置,i代表每個(gè)序列對(duì)應(yīng)的特征維度,如偶數(shù)位置的特征將會(huì)進(jìn)行sin計(jì)算,奇數(shù)位置的特征會(huì)進(jìn)行cos計(jì)算。
編碼器模塊的輸入是輸入模塊的輸出,用XA表示,運(yùn)算公式如下:
編碼器模塊由L個(gè)編碼層組成,每個(gè)編碼層可以劃分為多頭注意力模塊(multi-head attention)和前饋網(wǎng)絡(luò)模塊(FFN),每個(gè)編碼器中都有殘差連接和分層歸一化(LayerNorm)。
注意力模塊會(huì)通過(guò)給定的3個(gè)矩陣Q、K、V進(jìn)行注意力得分運(yùn)算,如第i個(gè)Q與第j個(gè)K的注意力得分越大,那么第j個(gè)值對(duì)第i個(gè)值的影響就越大。Q、K、V是輸入模塊的輸出與對(duì)應(yīng)權(quán)重矩陣相乘的結(jié)果,可以表示為:
這里的WQ、WK、WV∈Rn×d,Q、K、V∈Rn×d,將通過(guò)梯度下降來(lái)更新WQ、WK、WV,最終獲得1個(gè)合適的權(quán)重來(lái)擬合真值。
為了獲得特征位置上的概率分布,注意力計(jì)算使用了Softmax函數(shù);同時(shí)為了防止當(dāng)d值較大時(shí),Q與KT的點(diǎn)積會(huì)變大,從而Softmax值趨于0,因此引入比例因子。注意力(Attention)的計(jì)算如下:
為了在多方面、多空間上關(guān)注特征之間的注意力,提出了多頭注意力(MultiHead)機(jī)制,它通過(guò)聯(lián)合多個(gè)獨(dú)立的注意力實(shí)例共同決定最終注意力,即將不同空間的頭部(head)輸出簡(jiǎn)單連接了起來(lái)[10]。多頭注意力(MultiHead)計(jì)算如下:
編碼器模塊中的殘差結(jié)構(gòu)可以理解為初始輸入與對(duì)初始輸入進(jìn)行操作后的結(jié)果的疊加處理。隨后將殘差連接后的結(jié)果進(jìn)行分層歸一化(LayerNorm),LayerNorm操作可以一定程度上防止模型的過(guò)擬合,以及加快模型的收斂速度[20]。具體操作如下:
LayerNorm計(jì)算中⊙表示逐元素乘積,增益g與偏置b是模型訓(xùn)練過(guò)程中可學(xué)習(xí)的參數(shù),F(xiàn)FN中的權(quán)重W與偏置b同理,μ和δ2分別是根據(jù)輸入x計(jì)算的均值與方差,?是一個(gè)固定的小常數(shù),可以防止根號(hào)下為0的情況出現(xiàn)。
最后輸出模塊是將編碼器模塊的輸出作為輸入,使用全連接(fully connected)計(jì)算輸出最終的結(jié)果。
2)基于Transformer的多柑橘跟蹤。本研究提出的跟蹤算法實(shí)現(xiàn)需要3個(gè)步驟,分別為CNN檢測(cè)當(dāng)前幀圖像,Transformer根據(jù)過(guò)去柑橘序列位置信息預(yù)測(cè)當(dāng)前幀柑橘位置信息,然后將當(dāng)前幀檢測(cè)到的柑橘位置信息與Transformer預(yù)測(cè)到的當(dāng)前幀柑橘位置信息做數(shù)據(jù)關(guān)聯(lián)(data association),如圖5所示。這里使用Transformer-One-Step模型用于跟蹤,可以根據(jù)上1幀的柑橘位置信息預(yù)測(cè)下1幀的柑橘位置信息,即輸入與輸出是一對(duì)一的,因?yàn)樵跊](méi)有跟蹤之前,如果想要知道該柑橘的歷史軌跡,必須做到跟蹤,讓柑橘對(duì)象一一匹配。因?yàn)樵谖醋龈欀盁o(wú)法獲取某個(gè)柑橘對(duì)象的多個(gè)歷史軌跡,所以采用了輸入與輸出為一對(duì)一的模式。每幀柑橘圖像都會(huì)進(jìn)入CNN模型做進(jìn)行目標(biāo)檢測(cè),以獲取單幀圖像的所有柑橘的位置信息和類(lèi)別信息,同時(shí)Transformer-One-Step會(huì)根據(jù)CNN檢測(cè)器檢測(cè)出的上1幀柑橘位置信息預(yù)測(cè)出當(dāng)前幀柑橘位置信息,最后將檢測(cè)器檢測(cè)到的柑橘與Transformer-One-Step預(yù)測(cè)器預(yù)測(cè)的柑橘進(jìn)行數(shù)據(jù)匹配,從而實(shí)現(xiàn)不同幀對(duì)象與對(duì)象之間的關(guān)聯(lián)。
圖5 多目標(biāo)跟蹤工作流程Fig.5 Workflow of the multi-object tracking
如果新檢測(cè)到的柑橘與現(xiàn)有的跟蹤柑橘相匹配,則使用新檢測(cè)柑橘的包圍框來(lái)更新現(xiàn)有柑橘的狀態(tài),并基于Transformer模型預(yù)測(cè)下一幀中柑橘的包圍框。通過(guò)交并比(IOU)計(jì)算預(yù)測(cè)的包圍框與新檢測(cè)包圍框之間的相似性,利用匈牙利算法(Hungray algorithm)[21]進(jìn)行數(shù)據(jù)關(guān)聯(lián),當(dāng)匹配的包圍框之間的交并比(IOU)比最小交并比(IOUmin)低時(shí),則匹配失敗,此類(lèi)柑橘將會(huì)放入下一幀繼續(xù)匹配。最小交并比(IOUmin)設(shè)置為0.3。
3)基于Transformer的缺陷柑橘軌跡預(yù)測(cè)。由于本研究提出的軌跡預(yù)測(cè)方案是基于跟蹤算法的,因此,對(duì)于每個(gè)柑橘都會(huì)分配1個(gè)Tracker-citrus跟蹤器,該跟蹤器會(huì)記錄柑橘的歷史信息,該歷史信息會(huì)以信息棧的形式更新,同時(shí)信息棧會(huì)一直維持最新的40幀歷史信息。當(dāng)信息棧儲(chǔ)存到40幀柑橘歷史信息時(shí),開(kāi)始執(zhí)行軌跡預(yù)測(cè)。具體預(yù)測(cè)方法是以連續(xù)40幀圖像信息作為輸入,經(jīng)過(guò)CNN目標(biāo)檢測(cè)后,將連續(xù)40幀的柑橘信息先做跟蹤,獲取某個(gè)柑橘連續(xù)40幀運(yùn)動(dòng)軌跡,然后將過(guò)去連續(xù)40幀運(yùn)動(dòng)軌跡輸入到基于Transformer-Multi-Step軌跡預(yù)測(cè)器中輸出未來(lái)40幀的軌跡,最后對(duì)每個(gè)柑橘分別做未來(lái)幀的軌跡預(yù)測(cè)。對(duì)于連續(xù)的40幀未來(lái)信息,可以根據(jù)機(jī)械手抓取柑橘所需的時(shí)間動(dòng)態(tài)輸出0~40幀的柑橘位置(圖6)。
圖6 軌跡預(yù)測(cè)工作流程Fig.6 Workflow of trajectory prediction
4)從跟蹤中分類(lèi)。在分類(lèi)過(guò)程中,檢測(cè)器檢測(cè)工作空間內(nèi)的所有柑橘,并在每個(gè)圖像中暫時(shí)將它們分為N、SL、MD類(lèi)。然而,缺陷柑橘(SL+MD)在旋轉(zhuǎn)中,向攝像機(jī)呈現(xiàn)其正常(N)表面時(shí),將存在識(shí)別誤差。在這里,提出的跟蹤器可以將檢測(cè)器的結(jié)果記錄到一個(gè)歷史記錄表,然后應(yīng)用一個(gè)邏輯來(lái)檢查每個(gè)柑橘的歷史列表并確定其真實(shí)類(lèi)別。將相鄰5幀的圖像劃分為歷史列表,該歷史列表一直維持最新的5幀,如果歷史列表中存在2幀及其以上的缺陷柑橘,則當(dāng)前幀的柑橘將被歸類(lèi)為缺陷,而不去關(guān)注當(dāng)前幀檢測(cè)結(jié)果。如果它們還沒(méi)有被歸類(lèi)為缺陷,則將被標(biāo)記為正常。這樣的策略可以消除一些隨機(jī)識(shí)別誤差,提高檢測(cè)精度。
如圖7所示,缺陷柑橘在旋轉(zhuǎn)中,從進(jìn)入攝像機(jī)視野到離開(kāi)攝像機(jī)視野,大約捕獲140~150幀,期間柑橘大約旋轉(zhuǎn)540°。可以看出,雖然在70~85幀中,柑橘呈現(xiàn)正常表面,但依舊會(huì)將其歸類(lèi)為缺陷。
圖7 跟蹤分類(lèi)過(guò)程Fig.7 Tracking classification process
對(duì)于檢測(cè)性能評(píng)估,檢測(cè)器單獨(dú)工作在一個(gè)單一的圖像上,而不考慮在分類(lèi)過(guò)程中連續(xù)跟蹤的問(wèn)題。使用F1值衡量檢測(cè)的整體性能。
R(recall)指的是被預(yù)測(cè)為正例的樣本占總的正例樣本的比重,P(precision)代表被分類(lèi)器判定正例中的正樣本的比重。同時(shí)還引入了推理時(shí)間(inference time)來(lái)表示檢測(cè)1張圖像所花的時(shí)間。
Mobile-citrus檢測(cè)器對(duì)柑橘的檢測(cè)結(jié)果見(jiàn)表1。Mobile-citrus獲得的總體召回率R、準(zhǔn)確率A(accuracy)、F1值分別為 0.870、0.880、0.871。相比原 YOLOv4的結(jié)果,雖然F1精度略有下降,但檢測(cè)速度會(huì)得到大幅度的提升,約是原YOLOv4模型的4~5倍左右,這樣的速度給與下一階段的跟蹤算法與軌跡預(yù)測(cè)算法預(yù)留了充足的時(shí)間。
表1 檢測(cè)器的性能評(píng)估Table 1 Performance evaluation of detector
實(shí)際檢測(cè)結(jié)果如圖8所示。圖8中檢測(cè)到的綠色框代表正常(N)柑橘,檢測(cè)到的藍(lán)色框代表表皮病變(SL)柑橘,檢測(cè)到的紅色框則代表機(jī)械損傷(MD)柑橘,圖8中所示都是同一批柑橘不同時(shí)刻的檢測(cè)結(jié)果,可以看出檢測(cè)算法對(duì)于單幀檢測(cè)情況良好。但不同的幀中同個(gè)柑橘可能會(huì)出現(xiàn)不同的類(lèi)型,如第153幀與第202幀中,同一個(gè)柑橘會(huì)被標(biāo)記為不同類(lèi)別。針對(duì)這一情況,表明需要開(kāi)發(fā)跟蹤算法用于柑橘類(lèi)別的固定識(shí)別。
圖8 Mobile-citrus模型缺陷檢測(cè)結(jié)果Fig.8 Mobile-citrus model defect detection results
對(duì)于跟蹤性能評(píng)估,使用多目標(biāo)跟蹤精度(MOTA)和多目標(biāo)跟蹤準(zhǔn)確度(MOTP)來(lái)評(píng)估跟蹤的整體性能,測(cè)試指標(biāo)來(lái)源于 MOT20 Benchmark[22]。MOTA規(guī)定如下:
FNt表示跟蹤過(guò)程中t時(shí)刻目標(biāo)的漏檢數(shù),如圖9A所示,第4幀中真實(shí)軌跡(GT)既可以與紅色軌跡匹配,又可以與藍(lán)色軌跡匹配,但紅色軌跡目標(biāo)與真實(shí)目標(biāo)更接近,所以最終匹配到了紅色軌跡,生成了真陽(yáng)性(TP),但相對(duì)而言,因?yàn)檎鎸?shí)目標(biāo)已經(jīng)被紅色軌跡匹配,所以藍(lán)色軌跡的目標(biāo)丟失,導(dǎo)致了假陰性(FN)的生成。FPt表示跟蹤過(guò)程中t時(shí)刻目標(biāo)的誤檢數(shù)。如圖9A所示,第3幀中真實(shí)軌跡與紅色軌跡實(shí)現(xiàn)了匹配,但藍(lán)色軌跡并沒(méi)有完成匹配,因?yàn)檐壽E預(yù)測(cè)目標(biāo)與真實(shí)目標(biāo)之間的IOU太小,不在閾值通道內(nèi),導(dǎo)致了假陽(yáng)性(FP)的生成。IDSWt衡量跟蹤過(guò)程中t時(shí)刻目標(biāo)身份發(fā)生變動(dòng)(IDSW)的數(shù)量,如圖9A所示,當(dāng)紅色軌跡切換到藍(lán)色軌跡時(shí)會(huì)產(chǎn)生IDSW;如圖9B所示,當(dāng)由于目標(biāo)的重識(shí)別處理不當(dāng),真實(shí)軌跡(GT)產(chǎn)生中斷,也會(huì)導(dǎo)致IDSW的產(chǎn)生。GTt是時(shí)間t時(shí)刻物體跟蹤的真實(shí)目標(biāo)。
圖9 跟蹤指標(biāo)參數(shù)示意圖Fig.9 Schematic diagram of tracking indicator parameters
MOTP用來(lái)衡量預(yù)測(cè)目標(biāo)與真實(shí)目標(biāo)之間的靠近程度,是一種定位精度的度量,MOTP的表述如下:
跟蹤器使視覺(jué)系統(tǒng)能夠記憶歷史分類(lèi)信息,并跟蹤每個(gè)柑橘的位置。試驗(yàn)采用記錄的跟蹤列表執(zhí)行分類(lèi),對(duì)自定義多目標(biāo)跟蹤數(shù)據(jù)集進(jìn)行了評(píng)估。結(jié)果顯示MOTA=98.4%,MOTP=81.5%,IDSW=0。MOTA得到了98.4%的高精度,其原因是柑橘與柑橘之間不會(huì)出現(xiàn)遮擋,且柑橘一直都是向前運(yùn)動(dòng)并不會(huì)往復(fù)運(yùn)動(dòng),這樣就大幅度避免了柑橘對(duì)象ID的轉(zhuǎn)換,可以從IDSW為0驗(yàn)證這一點(diǎn)。MOTP得到了81.5%的高精度,可以看出基于Transformer的預(yù)測(cè)模型效果較好,預(yù)測(cè)的值可以和真實(shí)值獲取較大的交并比(IOU)。即較高的MOTA和MOTP表示該跟蹤系統(tǒng)具有良好的性能。
如圖10所示,綠色、藍(lán)色和紅色的方框分別表示N、SL和MD型柑橘的位置。方框左上角的數(shù)字表示柑橘?gòu)倪M(jìn)入視野開(kāi)始計(jì)數(shù)的幀號(hào),而不是每個(gè)子圖對(duì)應(yīng)的視頻流的幀數(shù),右下角的數(shù)字表示對(duì)象號(hào)??梢钥闯鲈摳櫹到y(tǒng)可以一直確定一個(gè)柑橘對(duì)象,即對(duì)象的ID號(hào)不會(huì)發(fā)生任何改變。例如圖10中4號(hào)柑橘,64~66幀時(shí)分別檢測(cè)到機(jī)械傷口,但在113~115幀呈現(xiàn)正常表面,也能判斷出該柑橘為缺陷柑橘,即會(huì)被標(biāo)記為紅色框,不會(huì)因?yàn)闄z測(cè)為正常柑橘而標(biāo)記為綠色框。
圖10 缺陷檢測(cè)和跟蹤結(jié)果Fig.10 Defect detection and tracking results
對(duì)于軌跡預(yù)測(cè)性能評(píng)估,使用平均絕對(duì)誤差(MAE)表示預(yù)測(cè)值與真實(shí)值的差值,表達(dá)如下:
其中,e(error)表示4個(gè)像素坐標(biāo)的誤差平均值,每個(gè)坐標(biāo)的誤差值表示預(yù)測(cè)的邊界框和檢測(cè)的邊界框之間的絕對(duì)坐標(biāo)差值。如圖11所示,圖11A中紫色框表示算法預(yù)測(cè)10幀之后的柑橘邊界框,表示預(yù)測(cè)框的左上角坐標(biāo),表示預(yù)測(cè)框的右下角坐標(biāo)。圖11B中綠色框表示10幀之后的真實(shí)柑橘邊界框,(x1,y1)表示真實(shí)框的左上角坐標(biāo),(x2,y2)表示真實(shí)框的右下角坐標(biāo)。最后對(duì)所有樣本的誤差取平均值獲取最終誤差MAE。
圖11 軌跡預(yù)測(cè)誤差計(jì)算示意圖Fig.11 Schematic diagram of trajectory prediction error calculation
經(jīng)過(guò)軌跡預(yù)測(cè)測(cè)試集驗(yàn)證,Transformer算法無(wú)論預(yù)測(cè)多少幀,準(zhǔn)確度始終保持在3個(gè)左右像素誤差范圍,最佳平均絕對(duì)誤差為2.98個(gè)像素。這也在一定程度上體現(xiàn)了Transformer強(qiáng)大的長(zhǎng)序列處理能力。
最終的軌跡預(yù)測(cè)結(jié)果如圖12所示,其中紫色框是缺陷柑橘的未來(lái)軌跡,圖12顯示的是未來(lái)第10幀的位置??梢钥闯鰧?duì)于每幀,每個(gè)柑橘的預(yù)測(cè)情況都基本相同,不會(huì)存在個(gè)別預(yù)測(cè)誤差特別大的情況。
圖12 軌跡預(yù)測(cè)結(jié)果Fig.12 Trajectory prediction results
在模型訓(xùn)練過(guò)程中Transformer-Multi-Step模型與Transformer-One-Step模型所用參數(shù)一致,優(yōu)化器使用Adam算法,學(xué)習(xí)率設(shè)置為0.000 1,編碼器層數(shù)(encoder layer)設(shè)置為2,批次大小為5,多頭注意力頭數(shù)設(shè)置為2,Transformer-Multi-Step輸入輸出大小均為40×4的矩陣,Transformer-One-Step輸入輸出大小均為1×4的矩陣。
普通分類(lèi)中常用準(zhǔn)確率A(accuracy)來(lái)表達(dá)模型的分類(lèi)性能。準(zhǔn)確率A被定義為:
以視頻序列x為輸入經(jīng)過(guò)視覺(jué)模型后,預(yù)測(cè)出結(jié)果f(xi),將f(xi)與真實(shí)類(lèi)別yi進(jìn)行對(duì)比,如果相同記為1,不同記為0,最后對(duì)n個(gè)樣本求平均。為了評(píng)估視覺(jué)系統(tǒng)的分類(lèi)效果,制作了270個(gè)柑橘樣本,其中MD、N、SL類(lèi)柑橘分別為43、47、180個(gè),結(jié)果顯示A值為89%,如圖13所示。圖13中,0、1、2分別代表對(duì)應(yīng)N、SL、MD。
圖13 最終分類(lèi)結(jié)果Fig.13 Final classification results
由圖13可知,該視覺(jué)系統(tǒng)對(duì)SL的識(shí)別率較高,N、MD的識(shí)別率較差且大部分會(huì)識(shí)別為SL,這可能是MD的特征表現(xiàn)不明顯時(shí),與SL的特征具有很多相似的地方;同時(shí)由于SL柑橘呈現(xiàn)的暗黑和腐爛的外觀與正常區(qū)域上的深綠色區(qū)域相似,因此識(shí)別精度可能受到影響。如果只分缺陷(SL+MD)與正常(N)兩類(lèi),識(shí)別率可達(dá)到92.8%。這說(shuō)明該方法不僅解決了柑橘在滾動(dòng)過(guò)程中因特征面一直改變而無(wú)法確定真實(shí)類(lèi)別的問(wèn)題,同時(shí)運(yùn)用Transformer的方法,結(jié)合了歷史信息之后,也具有較高的分類(lèi)精度。
在自動(dòng)柑橘分選中,視覺(jué)信息的更新是實(shí)時(shí)的,分類(lèi)系統(tǒng)具有實(shí)時(shí)性能是必不可少的。所提出的視覺(jué)系統(tǒng)由1個(gè)檢測(cè)器和1個(gè)跟蹤器以及軌跡預(yù)測(cè)器3個(gè)部分組成。試驗(yàn)結(jié)果顯示:檢測(cè)器的平均處理時(shí)間為12 ms,跟蹤器平均處理時(shí)間為20 ms,軌跡預(yù)測(cè)平均處理時(shí)間為1 ms,總體平均運(yùn)行時(shí)間34 ms,基本可以實(shí)現(xiàn)實(shí)時(shí)視覺(jué)檢測(cè)。以上處理時(shí)間均在攝像頭視野中平均存在20個(gè)左右柑橘時(shí)的試驗(yàn)結(jié)果。對(duì)于視野同時(shí)出現(xiàn)20個(gè)以上柑橘時(shí),由于需要同時(shí)檢測(cè)跟蹤和軌跡預(yù)測(cè)的數(shù)量增多將無(wú)法達(dá)到實(shí)時(shí),這是未來(lái)將要改進(jìn)的地方。另外測(cè)試時(shí)硬件算力相對(duì)較低,隨著硬件算力的增加,能同時(shí)處理的柑橘數(shù)量將越多。
本研究提出了一種基于CNN-Transformer的視覺(jué)系統(tǒng),它可以與機(jī)器手結(jié)合進(jìn)行實(shí)時(shí)柑橘分類(lèi)。Mobile-citrus算法可以檢測(cè)到視圖中的缺陷柑橘,Tracker-citrus算法可以在柑橘旋轉(zhuǎn)過(guò)程中跟蹤它們,并識(shí)別出它們的真實(shí)類(lèi)型,Transformer-Multi-Step算法可以預(yù)測(cè)柑橘的未來(lái)路徑以指導(dǎo)機(jī)器手的抓取。跟蹤獲得的總體MOTA為98.4%,表明系統(tǒng)可以跟蹤視野中的大部分柑橘,并可以對(duì)缺陷柑橘與正常柑橘進(jìn)行識(shí)別分類(lèi),識(shí)別分類(lèi)準(zhǔn)確率達(dá)到92.8%,路徑預(yù)測(cè)的最低絕對(duì)平均誤差為2.98個(gè)像素,約為柑橘直徑的5%,這在機(jī)械手抓取可接受的范圍內(nèi)。單幀平均運(yùn)行時(shí)間34 ms,約為29.4 FPS,具有良好的實(shí)時(shí)性能。
華中農(nóng)業(yè)大學(xué)學(xué)報(bào)(自然科學(xué)版)2022年4期