李 彥,朱凌云
(1.東華大學信息科學與技術學院,上海 201620;2.數字化紡織服裝技術教育部工程研究中心,上海 201620)
對生產線的紐扣進行計數是紐扣生產流程中非常重要的步驟,而現在依然有許多紐扣生產廠采用人工計數的方法。即便是自動計數,一般也是采用機械計數、定位計量、光學計數等方法,由排隊裝置排列出一個個紐扣,在傳送帶上進行計數。姚暢[1]設計了一種采用3路傳輸的大批量紐扣排隊與分揀設備,分揀速度較高但結構較為復雜。楊海洋[2]提出了一種粗略人群計數方法,能夠實現流量預測。王杰[3]采用改進的Vibe目標檢測算法實現鉆桿計數。
近年來,卷積神經網絡(convolutional neural network,CNN)得到了很大程度的發展[4-6]。你只看一次(you only look once,YOLO)是一種端到端的目標檢測算法,其在檢測速度與效率上都有不錯的表現[7-10]。強恩超等[11]提出基于YOLOv3的闖紅燈行人數統計系統設計,驗證了在計數方面的可實現性,但計數算法不適用于目標太密集的情況。
為了保證基于YOLOv3檢測后紐扣計數的高適應性和準確性,本文提出了基于YOLOv3算法的多通道紐扣計數,通過類似軟件防抖的方式消除由YOLOv3算法帶來的定位誤差影響。采用多通道計數,提高計數效率。采用K-means++算法對紐扣標簽進行聚類分析,以確定最優的檢測框寬高值。
YOLOv3采用端到端的檢測方法,并將圖像劃分為S×S的網格,判斷目標中心點是否位于該網格內,從而實現多目標檢測。該算法在檢測速度上具有很大的優勢,同時可滿足較高的檢測準確度。
針對紐扣數據集單一以及制作大量數據集標簽困難的問題,對數據集進行擴增,有利于提高檢測效率并減少不必要的時間開支。因為紐扣自身是較為對稱的結構,本文對紐扣進行旋轉操作,可以避免不必要的信息損失。對已打標簽的紐扣圖像以及標簽作旋轉操作(60°、90°、120°、150°、210°、240°以及300°旋轉,即數據集變為原來的8倍),并對旋轉后的空白處作填零處理。不同角度的旋轉圖像如圖1所示。

圖1 不同角度的旋轉圖像Fig.1 Rotated images at different angles
目前,紐扣自動計數依然主要采用光學設備。隨著機器視覺技術的發展,將有更多的工業產品采用機器視覺的方法計數。本文設計了基于YOLOv3的多行紐扣計數方法,可以準確地實現多行密集紐扣計數。
對于傳送帶上單行傳輸的紐扣,因為紐扣穿過圖像上任意一條豎線的次數為1,可以借此來判斷傳送帶上跑過紐扣的數量。但使用YOLOv3算法來進行定位,存在一定的定位誤差,極易造成計數誤差。因此,本文對此進行改變,并且使用了如圖2所示的單通道計數矩形框。

圖2 單通道計數矩形框Fig.2 Single channel counting rectangle
單通道紐扣計數的步驟如下。
①將采集到的圖像送入YOLOv3網絡,對紐扣進行檢測與定位。
②獲取檢測到的紐扣矩形框中心點坐標,并判斷其是否位于矩形框內。當連續3次以上檢測到紐扣中心坐標位于矩形框,置紐扣標志位為1;當連續2次及以上未檢測到中心點位于矩形框的紐扣,置該標志位為0。
③當標志位為下降沿,即標志位由1變為0時,紐扣數目加1。
基于軟件消抖的思想,通過多次檢測box中心點位于矩形框的紐扣,能夠降低由于YOLOv3算法漏檢造成的錯誤計數風險。
對于傳送帶上密集多行傳輸的紐扣,使用YOLOv3算法對其定位,并提出了一種多通道的紐扣計數方法。其實現步驟如下。
①設定K值(K值為可同時檢測的通道數),初始化K條橫向通道為封閉并設定寬度,初始化豎向通道為開啟并設定寬度。
②設定所有橫向通道的mask位(用于判斷是否檢測到紐扣)為0。
③獲取YOLOv3檢測到的預測框及其對應的中心點。
④得到所有中心點位于豎向通道內的預測框,判斷這些預測框是否位于已開放的橫向通道內。若是,則該通道mask位置為1;否則,置一封閉橫向通道為開放,其mask位為1,設該通道位置為該中心點。
⑤根據mask位,對所有已開放的橫向通道采用單通道計數方法,連續兩次橫向通道mask為0,則置該橫向通道為封閉。
⑥回到步驟②,處理下一張圖像。
紐扣數據集制作的效果,會在一定程度上影響算法檢測的效果。為了與實際的檢測情形保持一致,使用運動的紐扣圖片作為數據集。同時,因為紐扣矩形框標簽制作的效率問題,采用單行紐扣圖片作為訓練集,以LabelImg軟件制作標簽。試驗表明,采用該方法檢測多行紐扣,也能達到很高的檢測效率。
本文采用的試驗設備CPU與顯卡分別為i5 9400F與GTX 1060 6g,操作系統為Ubuntu 18.04。模型訓練結果如圖3所示。由LOSS曲線可以看出,在模型進行2 000次的batches迭代后,模型LOSS基本穩定,并且維持在0.1以下,說明已基本擬合。由IOU曲線可以看出,模型IOU基本接近于1,說明矩形框擬合得很好。

圖3 模型訓練結果Fig.3 Model training results
由IOU曲線與LOSS曲線可以得出,YOLOv3算法模型已基本擬合。而在對該檢測系統的測試過程中,該算法對一幀圖片的運行時間約為0.07s,能夠實現紐扣的快速檢測。
本文針對紐扣進行實時計數檢測。該算法完成了紐扣計數,能夠檢測傳送帶上是否有紐扣,以及傳送帶是否處于正常速度運行狀態。試驗結果表明,該算法能夠實現對紐扣的定位以及準確計數,并能夠進行實時故障監測,說明該算法具有可行性與實用性,性能也能達到要求。
本文基于YOLOv3算法,結合多通道計數與類似軟件消抖的方法,提出了一種多通道紐扣計數方法。在數據集方面,對紐扣圖像集進行擴增,提高了檢測效率和減少了不必要的時間開支。在試驗方面,該算法能夠實現紐扣的準確計數與簡單的故障檢測,并且能夠達到較好的實時性。該檢測系統能夠運用于生產線,提高了檢測效率與正確率,減輕了工人的勞動強度。下一步工作是在計數的同時,實現紐扣的表面瑕疵檢測,以進一步提高工作效率。