<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          2021科大訊飛-X光安檢圖像識(shí)別賽Top1方案!

          共 4628字,需瀏覽 10分鐘

           ·

          2021-11-09 19:12

          ↑↑↑關(guān)注后"星標(biāo)"Datawhale
          每日干貨?&?每月組隊(duì)學(xué)習(xí),不錯(cuò)過
          ?Datawhale干貨?
          作者:宋志龍、王威啄云智能GOAT戰(zhàn)隊(duì)

          大家好,我們是來自浙江啄云智能科技有限公司的GOAT算法團(tuán)隊(duì),團(tuán)隊(duì)多年來專注于X光安檢領(lǐng)域算法研究。今天給大家分享的是我們團(tuán)隊(duì)在2021科大訊飛--X光安檢圖像識(shí)別挑戰(zhàn)賽中所做的一些工作,在訊飛2021年的賽事中,這個(gè)比賽可以說是競爭最激烈了,前后歷時(shí)三個(gè)多月,我們團(tuán)隊(duì)進(jìn)行了大量實(shí)驗(yàn),最終拿到了復(fù)賽第一、決賽第一的成績

          下面我將從賽題背景、賽題內(nèi)容分析、解決方案和總結(jié)這四個(gè)方面進(jìn)行介紹,歡迎大家在評(píng)論區(qū)進(jìn)行交流。

          一、賽題背景

          X光安檢機(jī)是目前我國使用最廣泛的安檢技術(shù)手段,廣泛應(yīng)用于城市軌交、鐵路、機(jī)場、重點(diǎn)場館、物流寄遞等場景。使用人工智能技術(shù),輔助一線安檢員進(jìn)行X光安檢判圖,可以有效降低因?yàn)槿藛T疲勞或注意力不集中帶來的漏報(bào)等問題。但在實(shí)際場景中,因物品的多樣性、成像角度、遮擋等問題,為算法的開發(fā)帶來了一定的挑戰(zhàn)。


          賽題鏈接:

          http://challenge.xfyun.cn/topic/info?type=Xray-2021

          二、賽題內(nèi)容及分析

          1. 賽題內(nèi)容

          賽題數(shù)據(jù)組成

          • 初賽:

            1)帶標(biāo)注的訓(xùn)練數(shù)據(jù),即待識(shí)別物品在包裹中的X光圖像及其標(biāo)注文件;

            2)不帶標(biāo)注的測試數(shù)據(jù);

          • 復(fù)賽:

            1)無標(biāo)注訓(xùn)練數(shù)據(jù)即包裹X光圖像(其中有的包裹包含待識(shí)別物品);

            2)部分待識(shí)別物品X光圖像(無背景);

          • 目標(biāo)類別:

            刀、剪刀、尖銳工具、甩棍、小玻璃瓶、電棍、塑料飲料瓶、帶噴嘴塑料瓶、電子設(shè)備、電池、公章、傘, 共12類。

          模型評(píng)價(jià)指標(biāo)

          wAP50,即各個(gè)類別的AP50按照權(quán)重進(jìn)行加權(quán)的結(jié)果。

          其中各類別權(quán)重為:

          刀1、剪刀1、尖銳工具1、甩棍1、小玻璃瓶1、電棍1、塑料飲料瓶0.7、帶噴嘴塑料瓶0.7、電子設(shè)備0.7、電池0.7、公章0.7、傘0.7。

          模型大小

          600M以內(nèi)

          2. 賽題分析

          • 賽題數(shù)據(jù)中,提供了大量的無標(biāo)注數(shù)據(jù),利用好這些無標(biāo)注數(shù)據(jù)進(jìn)行半監(jiān)督學(xué)習(xí)是關(guān)鍵。
          • 數(shù)據(jù)可視化發(fā)現(xiàn)數(shù)據(jù)背景較復(fù)雜且差異較大,設(shè)計(jì)合適的數(shù)據(jù)增強(qiáng)方法是關(guān)鍵。
          • 模型評(píng)價(jià)指標(biāo)為AP50,因此更關(guān)注于模型的分類效果。
          • 在模型大小范圍內(nèi),允許進(jìn)行一定的模型融合。

          三、方案介紹

          基本方案從數(shù)據(jù)增強(qiáng)、模型訓(xùn)練、半監(jiān)督學(xué)習(xí)、模型融合三個(gè)角度進(jìn)行介紹。

          數(shù)據(jù)增強(qiáng)

          1. 數(shù)據(jù)均衡

          首先對(duì)數(shù)據(jù)進(jìn)行分析,如圖所示,經(jīng)統(tǒng)計(jì)發(fā)現(xiàn),數(shù)據(jù)存在嚴(yán)重的不平衡問題,需要進(jìn)行數(shù)據(jù)平衡操作。

          數(shù)據(jù)平衡策略

          • 統(tǒng)計(jì)每個(gè)類別bbox數(shù)量,做歸一化得到n

          • 類別采樣次數(shù)= max(1,oversample_thr/n)

          • 圖片實(shí)際的采樣次數(shù)等于圖片中最大的類別采樣次數(shù)

          均衡化之后的數(shù)據(jù)分布:

          可以看到,經(jīng)過數(shù)據(jù)均衡化操作之后,極端分布的類別樣本得到了緩和,各個(gè)類別分別相對(duì)均衡。

          2. 基本數(shù)據(jù)增強(qiáng)

          隨機(jī)反轉(zhuǎn)RandomFlip、隨機(jī)90°旋轉(zhuǎn)RandomRotate。

          幾何層面的數(shù)據(jù)增強(qiáng)一般都能提升模型性能,比較穩(wěn)定。X光圖像對(duì)于色彩比較敏感,因此常見的color層面的數(shù)據(jù)增強(qiáng)經(jīng)測試基本沒什么效果。

          3. MixUpObject

          初賽階段:可供訓(xùn)練的數(shù)據(jù)只有帶標(biāo)簽的訓(xùn)練數(shù)據(jù),為了提升模型對(duì)前景的識(shí)別能力,在訓(xùn)練期間,從訓(xùn)練集中隨機(jī)選取一張圖片的目標(biāo)bbox,通過mixup的方式粘貼到正在訓(xùn)練的樣本上。

          復(fù)賽階段:官方提供了一些目標(biāo)的patch,因此訓(xùn)練時(shí)可以直接將目標(biāo)patch給mixup到正在訓(xùn)練的樣本上。

          mixup效果如圖所示(看起來貼的一般,但訓(xùn)起來好啊):

          4. FixScaleResize

          結(jié)合X光安檢圖像的成像特點(diǎn),由于設(shè)備限制,其光源到物品的目標(biāo)的距離是在一定范圍內(nèi)的,因此同一類別的目標(biāo)的尺寸差異不會(huì)特別大。這一點(diǎn)和自然場景下的目標(biāo)有較大不同,自然場景下的目標(biāo)是有近大遠(yuǎn)小的情況的,也就是同一目標(biāo)在不同距離的成像上,尺度可能會(huì)有非常大的差異。

          因此,在進(jìn)行多尺度訓(xùn)練時(shí),首先需要統(tǒng)計(jì)數(shù)據(jù)集中同一類別目標(biāo)的面積差異分布,然后據(jù)此設(shè)計(jì)出大致的縮放范圍,再進(jìn)行消融實(shí)驗(yàn)找到最佳的縮放尺度。

          基本步驟:

          首先,以圖片原始大小為基準(zhǔn),設(shè)置縮放比例范圍為(1.5, 3.5)進(jìn)行圖片和目標(biāo)的縮放;

          然后,設(shè)置最大縮放面積,對(duì)于縮放后超出最大面積的圖片,使用最大面積進(jìn)行截?cái)嗵幚怼?/p>

          5. StackImage

          在比賽后期,由于提供了大量的無標(biāo)簽數(shù)據(jù),因此自然想到為無標(biāo)簽數(shù)據(jù)生成偽標(biāo)簽來進(jìn)行半監(jiān)督學(xué)習(xí),為此我們開發(fā)了StackImage數(shù)據(jù)增強(qiáng)方法,其目的在于:

          a. 增強(qiáng)樣本多樣性

          b. 學(xué)習(xí)無標(biāo)簽數(shù)據(jù)上的前景和背景信息

          c. 通過拼接強(qiáng)監(jiān)督信息和弱監(jiān)督信息,達(dá)到弱化偽標(biāo)簽中噪音數(shù)據(jù)的目的。

          基本步驟:

          a. 同時(shí)取一張帶標(biāo)簽的圖片和一張無標(biāo)簽的圖片,無標(biāo)注圖片使用半監(jiān)督標(biāo)注信息

          b. 將兩張圖像以水平或垂直的方式進(jìn)行stack,方向按照面積最小的原則

          c. 無法完全對(duì)齊的地方用255填充

          可視化效果:

          模型選擇和訓(xùn)練

          1. 模型選擇

          檢測框架:mmdetection

          檢測模型:

          雖然目前swin-transformer很火,但是由于對(duì)其不是非常熟悉,另外transformer系列模型訓(xùn)練一般都需要較長時(shí)間和較大的GPU顯存,因此選用二階段經(jīng)典網(wǎng)絡(luò)faster-rcnn作為基線模型。

          這里沒有使用去年冠軍方案使用的cascade-rcnn作為檢測模型基線,主要是考慮到以下幾點(diǎn):

          a. cascade-rcnn主要是對(duì)與gt的iou大于0.5的bbox的進(jìn)一步優(yōu)化坐標(biāo),對(duì)AP50的提升貢獻(xiàn)較小。

          b. cascade-rcnn模型較大,不利于后期模型融合策略的使用。

          c. cascade-rcnn模型占用顯存較大,且需要更長的訓(xùn)練時(shí)間。

          backbone選擇:

          res2net101,不解釋了,又強(qiáng)又快。

          模型選擇小技巧:根據(jù)經(jīng)驗(yàn),coco檢測模型預(yù)訓(xùn)練相比于imagenet分類預(yù)訓(xùn)練有更好的效果,因此優(yōu)先選擇mmdetection中有coco檢測預(yù)訓(xùn)練權(quán)重的模型。

          2. Tricks

          基本調(diào)參,根據(jù)對(duì)賽題的分析和對(duì)賽題的理解,對(duì)模型內(nèi)相關(guān)參數(shù)盡量調(diào)整,比如學(xué)習(xí)率、rcnn正負(fù)樣本采樣數(shù)量、學(xué)習(xí)率衰減策略等。

          模型組件--FPN,增強(qiáng)對(duì)小目標(biāo)的識(shí)別能力,一般mmdetection實(shí)現(xiàn)的fasterrcnn有自帶。

          模型組件--DCN,DCN一般都會(huì)有比較好的效果,但是也會(huì)增加較長訓(xùn)練時(shí)間,可以考慮在比賽的后期再加上

          模型組件--GC,有類似于空間注意力機(jī)制的作用。

          訓(xùn)練策略--Class Loss Weight,由于AP50的指標(biāo)更看重模型的分類性能,因此可以適當(dāng)調(diào)大分類損失的權(quán)重,經(jīng)過實(shí)驗(yàn)由1調(diào)整至1.25效果較好。

          預(yù)訓(xùn)練權(quán)重--CocoPretrain,相比較于僅使用ImageNet的分類模型預(yù)訓(xùn)練,使用COCO的檢測模型預(yù)訓(xùn)練能穩(wěn)定漲點(diǎn)。

          模型壓縮--FP16,本次比賽有模型大小限制,因此在模型訓(xùn)練之后將其權(quán)重由FP32轉(zhuǎn)變?yōu)镕P16,其大小能降低一半。

          半監(jiān)督學(xué)習(xí)

          本次比賽提供了大量的無標(biāo)簽數(shù)據(jù),如表所示,可以看到有四批數(shù)據(jù)共15000張無標(biāo)簽數(shù)據(jù),僅4000張有標(biāo)簽數(shù)據(jù),因此如何使用半監(jiān)督學(xué)習(xí)的方式利用好這15000張半監(jiān)督數(shù)據(jù)樣本,也是本次比賽的關(guān)鍵。

          數(shù)據(jù)數(shù)量說明劃分
          train14000初賽A榜訓(xùn)練with_label
          test1_A3000初賽A榜測試without_label
          test1_B4000初賽B榜測試without_label
          domain54000官方提供未標(biāo)注數(shù)據(jù)without_label
          domain64000官方提供未標(biāo)注數(shù)據(jù)without_label
          patch422只包含單個(gè)物體的圖片patch

          基本流程有以下步驟:

          a. 首先使用有標(biāo)簽數(shù)據(jù),訓(xùn)練出一個(gè)較好的模型,然后在無標(biāo)簽數(shù)據(jù)上推理,得到偽標(biāo)簽,并使用閾值進(jìn)行過濾掉分?jǐn)?shù)低的目標(biāo)框。

          b. 然后重新訓(xùn)練模型,將有標(biāo)簽的樣本和偽標(biāo)簽的樣本使用StackImage的方式進(jìn)行拼接,然后送入到模型進(jìn)行訓(xùn)練。

          c. 訓(xùn)練后的模型,在測試集上效果變的更好了,再使用這個(gè)模型重新生成無標(biāo)注數(shù)據(jù)的偽標(biāo)簽并進(jìn)行閾值過濾,然后再重復(fù)上述訓(xùn)練過程。

          d. 直至模型在測試集上的分?jǐn)?shù)不再上升為止。

          由于這些無標(biāo)簽數(shù)據(jù)的獲取順序是,初賽A榜時(shí)有test1_A,初賽B榜時(shí)有test1_B,復(fù)賽時(shí)有domain5, domain6,因此整個(gè)半監(jiān)督學(xué)習(xí)的過程如下圖所示:

          模型融合

          1. 模型內(nèi)部融合

          模型內(nèi)部融合我們采取的策略是結(jié)合圖像尺度和數(shù)據(jù)增強(qiáng),其實(shí)也就是TTA。

          在尺度方面,在訓(xùn)練時(shí)設(shè)置的(1.5, 3.5)范圍內(nèi)選擇多個(gè)尺度進(jìn)行消融實(shí)驗(yàn),最終確定使用2.0, 2.5, 3.0的縮放比例,然后分別進(jìn)行模型推理。

          在數(shù)據(jù)增強(qiáng)方面,在不同的尺度下,進(jìn)行verticalFlip、Rotate90、Horizontal Flip數(shù)據(jù)增強(qiáng),然后進(jìn)行模型推理。

          最終將得到的多尺度多數(shù)據(jù)增強(qiáng)的推理結(jié)果進(jìn)行融合。

          2. 模型之間的融合

          比賽最后發(fā)現(xiàn),僅使用res2net101-fasterrcnn單模型TTA就已經(jīng)能夠穩(wěn)坐第一的位置,但是為了能有更好的成績,我們選擇在比賽限制內(nèi),融合更多的模型。

          由于比賽限制模型大小600M,因此在這個(gè)范圍內(nèi),經(jīng)過了FP16的壓縮,可以進(jìn)行以下三個(gè)模型的融合:

          a. res2net101-fasterrcnn

          b. resnext101_32x4d-fasterrcnn

          c. resnext101_64x4d-fasterrcnn

          使用這個(gè)三個(gè)模型,分別完成上述的模型訓(xùn)練過程,然后各自進(jìn)行模型內(nèi)部融合,將各自的融合結(jié)果進(jìn)行模型之間的融合。

          3. 模型融合方法

          模型融合采用WBF融合策略,如下圖所示。

          注意:針對(duì)不同的任務(wù),WBF的過程需要一定程度的調(diào)參實(shí)驗(yàn),可得到較好的效果。

          四、總結(jié)和思考

          總結(jié)

          1. 模型選擇

            基線模型:Faster-RCNN

            BackBone:Res2Net101、Resnext101_32×4d、Resnext101_64×4d

            檢測框架:MMDetection

          2. 主要技術(shù)

            數(shù)據(jù)增強(qiáng):數(shù)據(jù)平衡、StackImage、 MixupObject、FixScale

            Tricks:半監(jiān)督學(xué)習(xí)、DCN、 Global Context、COCO預(yù)訓(xùn)練、TTA、 WBF、ClsLossWeight

          思考

          1. 充分理解賽題和評(píng)價(jià)指標(biāo),充分理解經(jīng)典模型的原理及其適用場景,以便更好地進(jìn)行模型選型。
          2. 關(guān)注新技術(shù),決賽時(shí)發(fā)現(xiàn)大部分選手都使用了swin-transformer,說明應(yīng)該還是很強(qiáng)的。
          3. 充分理解數(shù)據(jù),決賽時(shí)才知道domain5、domain6是來自兩個(gè)不同X光機(jī)器的圖片,如果更細(xì)致去分析其中的特點(diǎn)進(jìn)行相關(guān)工作,可能會(huì)有更好的效果。
          4. 充分理解評(píng)價(jià)指標(biāo),可以看到計(jì)算AP50時(shí),不同類別的權(quán)重是不一樣的,這一點(diǎn)暫時(shí)沒想好更好的辦法利用這一點(diǎn)得到更好的結(jié)果。

          以上就是我們的分享,希望有興趣的同學(xué)一起交流,啄云智能算法團(tuán)隊(duì)常年招收優(yōu)秀算法工程師(郵箱:[email protected]),謝謝大家。


          宋志龍

          啄云智能算法工程師

          王威

          啄云智能算法工程師



          整理不易,點(diǎn)三連
          瀏覽 234
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  高潮毛片77777777毛片 | 亚洲乱码中文字幕 | 内射视频免费看 | 啪啪啪啪啪啪网站 | 无码操B 亚洲操屄 |