• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于改進的YOLOv3的托盤檢測方法研究*

    2021-08-27 07:35:42王平凱孫光澤朱芮萱
    機電工程技術(shù) 2021年7期
    關(guān)鍵詞:邊界損失聚類

    王平凱,孫光澤,朱芮萱

    (長春工業(yè)大學(xué)機電工程學(xué)院,長春 130012)

    0 引言

    卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一種人工神經(jīng)網(wǎng)絡(luò)[1],1998 年,LeCun[2]提出了第一個卷積神經(jīng)網(wǎng)絡(luò)模型LeNet,隨著Relu 和Dropout 的提出,以及GPU 和大數(shù)據(jù)帶來的歷史機遇,相繼誕生了AlexNet、VggNet、Gool?eNet、ResNet[3-6]。由于圖像數(shù)據(jù)可以看作二維的像素網(wǎng)格,卷積神經(jīng)網(wǎng)絡(luò)通過特殊的線性運算可以處理圖像數(shù)據(jù),因此常被應(yīng)用于圖像處理與目標檢測。

    目標檢測目前有一階段(one-stage)和兩階段(two-stage)兩種方法,其中,一階段是指通過一遍網(wǎng)絡(luò)就可以得出目標的位置和類別信息,常見的方法有括YOLO(you only look once)[7]、SSD(single shot multibox detector)[8]等。兩階段是指當輸入圖片通過網(wǎng)絡(luò)后,會生成一些候選區(qū)域,這些區(qū)域可能會包含一個待檢測目標,然后進一步區(qū)分這些候選區(qū)域具體包含了哪些待檢測的目標。常見的方法有R-CNN(region-conventional neural network)、Fast R-CNN、Faster R-CNN、Mask R-CNN 和SPP-net(spatial pyramid pool?ing-net)[9-12]。

    基于卷積神經(jīng)網(wǎng)絡(luò)的目標檢測方法能夠快速準確地定位到目標,通過輔助設(shè)備能向人類用戶傳遞實時的場景信息。隨著物流業(yè)的蓬勃發(fā)展,智能化叉車不斷涌現(xiàn),目標檢測起了推動性的作用,除了基于卷積神經(jīng)網(wǎng)絡(luò)的目標檢測方法,還有傳統(tǒng)的檢測方法。J.Pagès等[13]介紹了一個完整的計算機視覺系統(tǒng),提出了基于顏色和幾何特征的托盤識別方法。Mi?chael Seelinger等[14]提出了一種移動相機空間操作(MCSM)的視覺引導(dǎo)控制方法,將基準放在托盤本身,實驗的精度與速度都很高,但同時需要預(yù)先給托盤添加基準和多攝像頭的高成本。Sungmin Byun等[15]提出了一種基于單目視覺的托盤定位方法,該方法快速、準確,同時采用了攝像機標定技術(shù)來確定托盤的位置。

    為了更好地滿足實時檢測的工程應(yīng)用場景,本文采用YOLOv3 算法,其采用一個單獨的CNN 模型實現(xiàn)end-to-end的目標檢測[2],為了提高該算法對托盤檢測的平均精度與檢測速度,首先在YOLOv3算法的基礎(chǔ)上使用K-Means++聚類算法重新聚類,得到新的適用于托盤檢測的先驗框。其次引入了二元交叉熵損失函數(shù)對原有的損失函數(shù)進行改進,同時改進了輸入圖像劃分網(wǎng)格的機制,引入了權(quán)重矩陣,通過數(shù)據(jù)增強的手段對采集到的圖像進行擴充。最后在本文制作的數(shù)據(jù)集上進行訓(xùn)練以及測試,并與其他的目標檢測算法進行比較,結(jié)果表明改進后的YOLOv3算法在平均精度以及速度上都有提升。

    1 YOLOv3基本原理

    YOLOv3將目標檢測作為一個空間分離的邊界盒和相關(guān)類概率的回歸問題,單個神經(jīng)網(wǎng)絡(luò)可以在一次評估中直接從完整圖像中預(yù)測邊界框和類概率[7]。通過對輸入圖像的特征提取,得到一定大小的特征圖,然后將得倒的特征圖像劃分成S×S的網(wǎng)格,當圖像中某個目標的中心位置落入到其中的一個網(wǎng)格,那么該網(wǎng)格將會負責(zé)預(yù)測該目標。每個網(wǎng)格都會預(yù)測B 個邊界框,該網(wǎng)絡(luò)會預(yù)測3 個固定數(shù)量的邊界框,通過K-means聚類得出9種尺寸的Anchor Box,分別為10×13、16×30、33×23、30×61、62×45、59×119、116×90、156×198、372×326。

    在網(wǎng)絡(luò)中實際訓(xùn)練的參數(shù)為tx、ty、tw、th,其中tx、ty為預(yù)測的坐標偏移值,tw、th為尺度縮放值。在先驗框的基礎(chǔ)上通過平移加尺度縮放進行微調(diào),得到最終的邊界框坐標值(x,y,w,h),分別表示檢測框的橫坐標、縱坐標、寬度和高度。Bounding Box 與Anchor Box的對應(yīng)關(guān)系如圖1所示。

    圖1 Bounding Box 與Anchor Box的對應(yīng)關(guān)系

    Bounding Box的坐標計算公式為:

    式中:bx、by、bw、bh分別為Bounding Box 的中心坐標、寬度和高度;cx、cy分別為當前單元網(wǎng)格相對于圖像左上角的橫縱偏移量;pw、ph分別為對應(yīng)Anchor Box 的寬和高;σ 為Sig?moid激活函數(shù)。

    每個邊界框有(x,y,w,h,confidence)5個基本參數(shù),其中confidence為預(yù)測邊界框的置信度,其計算公式為:

    式中:P(object)為網(wǎng)格中含有某類目標的類別概率,為真實邊界框和預(yù)測邊界框的交并比。

    采用邏輯回歸方式對先驗框進行目標性評分,通過非極大值抑制方法從9種不同尺寸的先驗框中找到目標存在可能性得分最高的。最終輸出特征圖的尺度為13×13、26×26 以及52×52。

    2 改進的K-means聚類算法

    在目標檢測中,選擇合適的先驗框可以顯著提高目標檢測的速度和精度。Yolov3 使用的先驗框思想是從Faster-rcnn中引入的,其是一個具有固定寬度和高度的初始候選框。Yo?lov3 算法在mscoco 和pascal voc 數(shù)據(jù)集上通過使用K-means 聚類算法得到9 組先驗框,分別為(10,13)、(16,30)、(33,23)、(30,61)、(62,45)、(59,119)、(116,90)、(156,198)、(372,326),但是,在COCO 和VOC 數(shù)據(jù)集中使用的先驗框并不適合本文使用的托盤數(shù)據(jù)集。因此,本文采用K-means++算法對托盤數(shù)據(jù)集的w和h進行重新聚類。本文使用AvgIOU 作為目標的度量標準進行聚類分析,AvgIOU 聚類的目標函數(shù)如下:

    式中:nk為第k 個聚類中心的樣本數(shù)量;K 為樣本總數(shù);n 為聚類個數(shù);bbox為樣本手動標注的矩形框的值;center為簇中心;IOU(bbox,center)為樣本和聚類的交并集。

    本文采用訓(xùn)練中生成的當前迭代中交并比IOU(Intersec?tion over Union)參數(shù)替代K-means 算法中的歐幾里得距離,其評估標準為:

    式中:d(bbox,center)為邊界框與中心框之間的距離;IOU(bbox,center)為兩個框的交并比。

    當d(bbox,center)的值較小時,說明聚類的效果好,同時IOU(bbox,center)的值較大,這樣才能保證1-IOU(bbox,center)的值較小。這種聚類方法可以在同一聚類中產(chǎn)生較大的交并比和較小的兩個框之間的距離。

    本文對樣本信息重新聚類,選取的k值為1~9,在聚類過程中發(fā)現(xiàn)隨著k值增加,平均交并比AvgIOU也呈現(xiàn)逐步上升的趨勢,當k=6時出現(xiàn)拐點,此時為最佳的預(yù)測框數(shù)量。本文中數(shù)據(jù)集對應(yīng)聚類中心的寬和高分別為(23,13)、(66,22)、(143,30)、(163,47)、(219,56)、(340,70)。該聚類方法可以加快網(wǎng)絡(luò)的收斂速度,有效的改善訓(xùn)練過程中的梯度下降。

    3 改進的損失函數(shù)

    損失函數(shù)是一種可以很好地反映模型與實際數(shù)據(jù)差距的工具。在神經(jīng)網(wǎng)絡(luò)的正向傳播過程中生成損失函數(shù),同時得到的損失函數(shù)也是反向傳播的起點。該網(wǎng)絡(luò)中的損失函數(shù)包括中心坐標的損失、預(yù)測邊界框的損失、置信度的損失和預(yù)測類別的損失。本文應(yīng)用以數(shù)據(jù)的最大似然法則得到交叉熵來作為損失函數(shù),在YOLOv3目標檢測中,通過對輸入圖像的特征提取,得到一定大小的特征圖,然后將得到的特征圖像劃分成S×S的網(wǎng)格,在coco、voc數(shù)據(jù)集上,先驗框在x軸和y軸上同等密度分布。但是在實際的托盤檢測中,托盤實際的成像呈現(xiàn)出在y軸稀疏、在x軸上相對密集的形態(tài),因此為了降低劃分輸入圖像網(wǎng)格的長寬比例對目標檢測所帶來的影響,調(diào)整劃分網(wǎng)格的機制,將原來的S?S 的尺寸更改為大小為2S?S,增加了沿x 軸方向的檢測密度。同時為了提高對托盤分類的準確性,避免進行錯誤的分類,引入了權(quán)重矩陣T,T=[T1,…,Ti],表示不同類別的目標分類錯誤的懲罰權(quán)重。改進后的損失函數(shù)為:

    式中:L1為預(yù)測中心坐標的損失函數(shù);λcoord為坐標誤差的權(quán)重參數(shù),在該網(wǎng)絡(luò)中λcoord=5;B 為該網(wǎng)格具有的Bounding Box 個數(shù);為有無目標對象中心落在預(yù)測邊界框中,當需要被識別的目標落入到第i 個網(wǎng)格生成的第j 個邊界框中時,分別為預(yù)測框的寬度和高度;為真實框中心點的橫縱坐標;為預(yù)測框中心點的橫縱坐標。

    式中:L2為預(yù)測邊界框的損失函數(shù);分別為真實框的寬度和高度。

    式中:L3為置信度的損失函數(shù);為預(yù)測的置信度;ci為真實的置信度;λnoobj為不含目標的置信度權(quán)重參數(shù),在該網(wǎng)絡(luò)為第i個網(wǎng)格的第j個邊界框不負責(zé)該目標。

    式中:L4為類別概率的損失函數(shù);pi(c) 為類別概率預(yù)測;為真實的類別概率預(yù)測。

    4 數(shù)據(jù)集的建立

    4.1 圖像增強

    由于沒有專門用來識別托盤信息的數(shù)據(jù)集。因此本文在實際的倉儲環(huán)境中進行了托盤圖片的采集,數(shù)據(jù)集中的數(shù)據(jù)越大,整個網(wǎng)絡(luò)的魯棒性就越好。本次采集到的圖片935張,為了提高整體網(wǎng)絡(luò)的性能,增加識別精度,提高泛化能力,通過數(shù)據(jù)增強的辦法將原始圖片進行處理來擴充數(shù)據(jù)集。本文用來數(shù)據(jù)擴充的方法有3種:第一種方法包括鏡像對稱、翻轉(zhuǎn)、縮放、平移和隨機裁剪;第二種方法為添加噪聲,在擴充數(shù)據(jù)樣本的同時,也有效地提升了神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力;第三種方法為對比度變換。擴充之后部分數(shù)據(jù)集如圖2所示。

    圖2 對原有圖片進行數(shù)據(jù)增強

    4.2 圖像標注

    在完成數(shù)據(jù)擴充之后,借助LableImg 標注工具進行數(shù)據(jù)集的標注,找出每張圖片中的感興趣區(qū)域(ROI),并用矩形框?qū)⑵錁俗⑸蓌ml格式的文件,如圖3所示。將標注后的數(shù)據(jù)通過修改生成訓(xùn)練所需的數(shù)據(jù)形式,其中包括類別,還有歸一化后的中心點橫坐標、縱坐標、寬、高。該研究運用的是和PASCAL VOC 2007 數(shù)據(jù)集一樣的結(jié)構(gòu),分為訓(xùn)練集、測試集和驗證集。

    圖3 標注數(shù)據(jù)集

    5 實驗結(jié)果及分析

    5.1 實驗環(huán)境

    本文實驗基于Ubuntu 18.04操作系統(tǒng),CPU 為Inte?li9-9900k,主頻為3.6 GHz,內(nèi)存32G,顯卡為NVIDIA Ge?Force GTX1080Ti,顯存為8 GB,深度學(xué)習(xí)框架為Dark?net-53,CUDA版本為10.0,CUDNN的版本為7.6.4。

    5.2 參數(shù)配置與模型訓(xùn)練

    本研究對包含尺寸大小為416×416 的5 000 張訓(xùn)練集圖片、2 000張測試集圖片的托盤數(shù)據(jù)集進行訓(xùn)練。在準備訓(xùn)練之前將參數(shù)batch 設(shè)置為64,表示網(wǎng)絡(luò)積累64 個樣本進行一次正向傳播,將subdivisions設(shè)置為16,這樣64個樣本將會分為16 次完成正向傳播,每次4 個樣本數(shù)量。初始學(xué)習(xí)率設(shè)為0.001,動量系數(shù)設(shè)置為0.9,權(quán)重衰減率設(shè)為0.000 5,配置完訓(xùn)練參數(shù)后隨即對模型進行訓(xùn)練,當?shù)螖?shù)到達3 000次,學(xué)習(xí)率衰減為初始值的0.1 倍;當?shù)螖?shù)到達3 500次,學(xué)習(xí)率進一步衰減為初始值的0.01 倍。損失值隨著迭代次數(shù)變化的曲線如圖4所示。

    圖4 損失值隨迭代次數(shù)變化曲線

    可以看出,損失值隨著迭代次數(shù)的上升而逐漸降低,當?shù)螖?shù)小于2 000 時,損失值迅速下降,當?shù)螖?shù)達到8 000時,損失值逐漸趨于平穩(wěn)。檢測效果如圖5所示。

    圖5 托盤識別效果

    6 對比實驗與評價指標

    6.1 對比實驗

    在目標檢測中,目前比較常用的目標檢測網(wǎng)絡(luò)包括Faster RCNN以及SSD,在基于本研究的數(shù)據(jù)集上,對Faster RCNN以及SSD網(wǎng)絡(luò)進行訓(xùn)練與測試,對比分析各種算法的性能。如表1 所示,對比的內(nèi)容包括檢測速度、mAP 值、AP 值以及漏檢率,本文用IOU=0.5,也就是PASCAL VOC數(shù)據(jù)集常用的指標這一標準來作為準確性評估的方法,當IOU=0.7時,是實際工程應(yīng)用中的標準。由表可以看出,本文的算法相較于YOLOv3在檢測速度上由45 幀/s 提升至47 幀/s,當IOU=0.5 時,mAP 由91.4%上升至94.6%,提高了3.2%,漏檢率由8.7%降至5.9%,降低了2.8%。由此可以看出本文使用K-Means++算法進行重新聚類以及改進的損失函數(shù),可以提高對托盤的檢測速度與檢測精度。

    表1 不同網(wǎng)絡(luò)結(jié)構(gòu)的測試性能對比

    6.2 評價指標

    為了評估該模型對托盤孔的檢測效果,使用精確率(Pre?cision)和召回率(Recall)對模型進行評價。通過這兩個指標可以對模型的準確性進行評估。兩個指標的計算公式分別為:

    式中:Precision 為托盤的精確率;TP 為一個正例被預(yù)測為正例,在這里表示的是正確檢測到的托盤樣本數(shù);FP為一個負例被預(yù)測為正例,表示的是檢測的誤差樣本數(shù);Recall為托盤的召回率;FN為一個實例被預(yù)測為負例,表示的是錯過檢測的托盤樣本數(shù)量。

    不同網(wǎng)絡(luò)結(jié)構(gòu)的測試對比如表2所示,由表中數(shù)據(jù)可以看出,本文改進的檢測算法在測試集上所得到的評價指標Preci?sion和Recall都要優(yōu)于未改進的YOLOv3,F(xiàn)aster RCNN和SSD。

    表2 不同網(wǎng)絡(luò)結(jié)構(gòu)的測試對比

    7 結(jié)束語

    為了解決倉儲環(huán)境中對托盤以及貨物的實時檢測,本文對原有的YOLOv3算法進行改進。為了提高對檢測物體的平均精度以及檢測速度,首先運用K-Means++算法重新聚類出更合適的Anchor Box,然后調(diào)整劃分網(wǎng)格機制,改進損失函數(shù)。并與其他算法在本文制作的數(shù)據(jù)集上進行測試,采用在不同IOU 情況下的mAP 值、AP 值、漏檢率以及檢測速度、Preci?sion和Recall來聯(lián)合評價本文算法與其他算法的性能。雖然本文算法在托盤實時檢測以及分類方面取得了令人滿意的結(jié)果,但其性能還有待進一步提高。

    猜你喜歡
    邊界損失聚類
    少問一句,損失千金
    拓展閱讀的邊界
    胖胖損失了多少元
    玉米抽穗前倒伏怎么辦?怎么減少損失?
    論中立的幫助行為之可罰邊界
    基于DBSACN聚類算法的XML文檔聚類
    電子測試(2017年15期)2017-12-18 07:19:27
    基于改進的遺傳算法的模糊聚類算法
    一般自由碰撞的最大動能損失
    一種層次初始的聚類個數(shù)自適應(yīng)的聚類方法研究
    “偽翻譯”:“翻譯”之邊界行走者
    怀宁县| 吉木乃县| 阳原县| 郯城县| 隆子县| 浠水县| 三门县| 邓州市| 英吉沙县| 柞水县| 平罗县| 平乡县| 山阴县| 青铜峡市| 大港区| 屏东县| 天津市| 元氏县| 黑龙江省| 苍南县| 丹东市| 安岳县| 嘉鱼县| 彩票| 汉中市| 潮安县| 定结县| 讷河市| 苗栗县| 遂昌县| 武穴市| 江都市| 玉树县| 新建县| 桃园县| 内丘县| 西乌珠穆沁旗| 治县。| 临湘市| 新乡市| 鸡东县|