目标检测应用竞赛 | 天池铝型材表面瑕疵(含数据集、详细解决方案)
點擊上方“AI算法修煉營”,選擇加星標或“置頂”
標題以下,全是干貨
目標檢測應用競賽——天池鋁型材表面瑕疵
數據集下載鏈接:
https://tianchi.aliyun.com/competition/entrance/231682/information
數據介紹:在鋁型材的實際生產過程中,由于各方面因素的影響,鋁型材表面會產生裂紋、起皮、劃傷等瑕疵,這些瑕疵會嚴重影響鋁型材的質量。為保證產品質量,需要人工進行肉眼目測。然而,鋁型材的表面自身會含有紋路,與瑕疵的區分度不高。傳統人工肉眼檢查十分費力,不能及時準確的判斷出表面瑕疵,質檢的效率難以把控。近年來,深度學習在圖像識別等領域取得了突飛猛進的成果。鋁型材制造商迫切希望采用最新的AI技術來革新現有質檢流程,自動完成質檢任務,減少漏檢發生率,提高產品的質量,使鋁型材產品的生產管理者徹底擺脫了無法全面掌握產品表面質量的狀態。
大賽數據集里有1萬份來自實際生產中有瑕疵的鋁型材監測影像數據,每個影像包含一個或多種瑕疵。供機器學習的樣圖會明確標識影像中所包含的瑕疵類型。
解決方案與答辯情況
?這是在天池大數據平臺上一個比賽的決賽答辯筆記。比賽的名字:廣東工業制造大數據創新大賽,智能算法賽。比賽的初賽是分類,物體識別;復賽:目標檢測。
視頻地址:https://b23.tv/av66819151
第一組 ?shuzhilian?ai
1?模型:faster rcnn + fpn + cascade ? basebone:resnet152
2?數據:原始的數據分布不平衡,用了圖像處理的方法將每一類做到了5000張。大體上分為兩種數據集,有瑕疵的一類,無瑕疵的10類。各種類別之間的瑕疵規格相差很大,類別內的瑕疵大小規格相差也沒有規律。
3 創新點
(1)多階段的訓練:先是用負樣本來訓練模型,然后用正樣本驗證學到的模型,最后將正樣本中訓練錯誤的和負樣本一起來訓練模型。
(2)Scale Normalization for training :?使用rpn 。理由:缺陷里面有很多正確的紋理,這些正確的紋理將會是判別缺陷的噪音。所以使用一個合適大小的框來減少這種噪音。
(3)cascade結構
4?項目落地:
1 時間太長(多尺度輸入)?
2 自動檢測,增量學習,重新訓練。?
3 充分運用云(1流失處理,2靈活調度,3松耦合高內聚,4日志收集)
5 問答
1 改進三部分哪一個部分提升的效果最好?cascade 結構
2 cascade為什么會表現更好,它可能不會收斂??因為在級聯前它保存了傳統的方法,只是在傳統的結構上加了額外的級聯結構,所以可以在調參后收斂。
? ? ? ? ??
3 cascade結構中每一級都是哪些樣本進入到了該級?按照閾值來決定那些樣本來進入該級
? ? ? ? ??
?4 cascade結構是怎么樣來劃分每一級的正負樣本的?端到端訓練的。(答辯的人沒有說出來,其實論文中講到閾值其實也就決定了正負樣本。和上一個問題基本上是一樣的。)
5 負樣本是怎么取的?負樣本對于提升有多大?77.8%,加上以后就是80.3%。
6 圖像增強的時候,數據量增加到多少能達到一個最終的結果,這時增加圖片就沒有提升效果了?這要看數據集的復雜度,平常做的上下翻轉,高斯模糊等等不能夠做的太多,如果做的太多實際上訓練樣本對于最終的真實樣本分布已經不一致了。復雜度小,增強小,復雜度高,增強多。這次做了一些的嘗試,最后定在了4000到5000張左右。
第二組? 風不動
1?模型:backbone:resnet101(快速版本),兩階段模型Faster rcnn。模型版本:快速模型到最高精度模型的比較,基模型的數量從1達到了4;從單尺度測試改為6尺度測試;框的過濾閾值從0.05降低到0.01。
2?數據分析:圖片分辨率高,缺陷的尺寸差異大,瑕疵的形狀不規則,標注不貼合?。
? ?
出發點
(1)由于缺陷長款比例分布不均勻采用兩階段回歸,適應更多長寬比。
(2)由于缺陷尺度分布差異大,采用FPN結構適應更多的大小尺度。
(3)缺陷往往是獨立且以不規則的形狀組合出現,利用可形變卷積有著更強的針對性。
(4)在訓練中利用可形變卷積(DCN)能夠學習到瑕疵更多形態。不規則卷積對應不規則形狀有更好的針對性。( ps:通過對卷積核學習一個位置偏移權重,使得卷積核不再是標準的3*3卷積核,而是通過位置偏移實現出不規則形狀的卷積核。)
(5)由于小瑕疵的缺陷定位不準確,導致被判為誤檢;不完全的ROIPooling可能會未學到瑕疵的特征。? 解決方案:利用ROIAlign 使得特征與空間有著更準確的對應關系;通過線性插值獲得對應位置的特征值。
3 訓練和測試:
由于瑕疵中有非常細長的box,所以在anchor中預設一個細長的框子,他的長寬比是5:1。
困難樣本學習:(1)無困難樣本增強(2)困難樣本增強(3)Batch級別的困難樣本增強,這個提升最強
最后的框體預測:Soft-NMS,NMS,投票平均三種方法的比較
經驗:閾值的設置影響了召回率,但是在精度上面的提升非常有限。
4 實用性分析:
怎樣更快?更小的基網路(resnet50,VGG);更小的輸入尺度(640*480);更少的候選框(1000到50)
??
實際場景中應用:可以采用多級分類糾正,在保證相同的MAP的情況下,刪除三分之二的冗余框,大大減少對正常類的誤報。
5. 問答?
1 目的?驗證算法;獎金比較吸引人的;數據不容易;
? ? ? ? ??
2 如果提升的話,只做一個你會選擇哪個方面提升??選擇使用ResNet50;其次就是更少的候選框。
? ? ? ? ? ????
3 anchor雖然使用了一些狹長框體,但是這并不能夠全部的包含所有的情況?本來就是一個大體上的框體。已經能夠近似包含所有的情況。
? ? ? ? ??
4 多級分類糾正在時間統計上是怎么考慮的?提交的模型不包含該模塊,只是在部署的時候可以使用該部署方式。該方法對精度的提升不明顯。
第三組? 樹根互聯AILab
1?模型:backbone:resnet101(快速版本),兩階段模型Faster rcnn+FPN。
? ?
??模型改進:
(1)用聚類算法獲取定制anchors尺寸;
(2)用RoI Align替換掉ROIPooling;? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
(3)用softNMS替換掉NMS
2?數據分析:數據分布不平衡,瑕疵面積占比小,瑕疵的尺度分布變化大?。工作:數據增強采用了左右翻轉,隨機剪裁,中心剪裁。
3?創新點
(1)kmeans聚類算法分析訓練集中真實框的分布;
?
(2)ROI Align 替換掉ROI Pooling,作用:消除ROIPooling過程中的量化,獲取更精準的候選框的特征,從而提高檢測性能。
(3)softNMS替換掉NMS,作用:針對臟點等容易大數量集中在某個區域的小瑕疵進行更好的檢測。
結論:是一個較高準確度最快且高速度的檢測算法。
4 實用性分析:
(1)圖片分辨率降低,光纖變化?加入更多的樣本。
??
(2)流水線吞吐量?使用一個更加輕量化的模型;MobileNet、shuffleNet、模型剪枝&壓縮
(3)如何分揀?滑道型二叉流水線
(4)硬件成本太高?更實時:Nvidia jetson tx2 4000元、Pynq z2 1800元、更經濟:多Zigbee網關+中央gpu服務器
(5)云計算?流水線拍攝圖片,zigbee網關傳輸,中央GPU檢測圖片,流水線分揀。有點性價比高,可遷移性強,批量檢測速度快,容易維護。
5 問題?
???????????
1 圖像上尺寸的分布怎么會有代表性?其中一種主要分布在左下角,一部分集中在右部一條線;
?2 當分辨率降低以后,如何在數據增強中體現出應對的策略??亮度變化,測試集中沒有加入亮度差異變化,所以效果不明顯,后期加入。
3 聚類的anchor和原來的anchor之間的差別有多大?提升了大概1個百分點,尺寸大小變化了,比例不變。
第四組? GDUT-WWW
1?模型:?
平臺Detectron;框架Faster RCNN+FPN;Backbone:resnet50
模型改進:Faster R-CNN默認的RPN_ASPECT_RATIONS為[1,0.5,2]手動改寬高比是[0.125,0.25,0.5,1,2,4,8];
2?數據處理:制作成coco格式的數據集,數據增強(水平翻轉,旋轉[range(0,30,360)]),多尺度訓練
3?創新點?
????????(1)模型寬高比的優化;
? ? ? ? (2)訓練的時候講train.scales參數優化為:[500,550,600,650,700,750,800,850,900,950,1000]實現多尺度訓練
? ? ? ? (3)在預測的時候講test.scales的參數優化為:[400,450,500,550,600,650,700,750,800,850,900,950,1000,1050,1100,1150,1200];水平翻轉;NMS
4?實用性分析:
(1)使用人工智能專用計算芯片,降低成本。
(2)將傳感器與模型融合,即軟件硬件化。
5?優劣性分析:
(1)優點:泛化能力強,模型較小。
(2)缺點:多尺度預測,耗費了大量的時間。
6?落地實例:酷睿I7處理器cpu的使用情況是25%;8個Movidius Myriad X VPU加速器? 占用了7%。
7?落地構想??
(1)構建云計算平臺。
(2)在平臺搭建上,采用“1+1+n”的模式,從底層開始,一個合作伙伴用一套共?性技術,服務于N個垂直行業。
(3)底層的共性技術是開發平臺、數據平臺,資源管理平臺,中間是與客戶共建的SaaS級產品。
(4)SaaS級產品包括與用戶共建的能效云,與客戶共建的工業大腦。
(5)在平臺上,做一個垂直的應用服務,服務于廣大中小企業。
(6)最后打造工業云平臺的生態,構建國家級工業物聯網平臺。
8 問答?
1 為什么50層的網絡要比更深層次的好?單塊的1080Ti不夠;
? ? ? ? ??
2 數據增強方面只是簡單的旋轉嗎??只是簡單的旋轉,另外標注啊框也跟著旋轉。
3 你說可以做遷移學習到其他任務,怎么做?提升了大概1個百分點,尺寸大小變化了,比例不變。
第五組? 打怪升級
1?模型:
Mask-rcnn ,Caffe2,Caffe2go(可以部署在一個手機上,4G到6G內存)
2?數據分析:
尺寸差異大,數據不平衡,形狀不規則,人工標注則不統一。ps:標框的規則就是沒有規則,按心情標。
3?方案設計思路:
4?功能模塊介紹:
思路解析:
(1)由于考慮到害怕把小的瑕疵切掉,所以沒有使用切片。
? ? ? ? ? ?
(2)網絡的輸入尺度不同,對結果的影響是很大的。隨機尺度輸入相當于做了增強,而且也加快了速度,適合比賽用。
? ? ? ? ??
(3)Soft-NMS可以減少重疊框誤刪的問題。
?測試思路:
5 問題?
1 box voting提升怎么樣,會造成誤檢提升嗎?map提高0.8個百分點,弊大于益;
2 你認為什么是創新?box stacking,多尺度預測。
3 detection中常用隨機擾動?是的,從原始的精調到了600。
4 傳統方法和deeplearnning比較?傳統方法部署沒有更多的靈活性,精度上也沒有deeplearnning高。
第六組(第一)? Are you OK?
1?模型:Faster R-CNN
2?數據分析:尺寸差異大,形狀不規則,背景和瑕疵差異小。
3?模型結構創新:
4 數據利用和訓練處理:
5 問題?
?1 deformable convolution?每個點都有一個偏移量,這樣更好的擬合瑕疵的形狀,計算量會有差別;
?2 圖片處理的部分,是兩張圖片做一個融合來進入模型的嗎??兩張圖片是兩路輸入,瑕疵候選框只能通過瑕疵照片,無瑕疵照片只能夠生成背景類,這樣能夠讓RPN能夠更好的學習瑕疵和背景的區別。
第七組?都都都都都都
1?模型:Faster R-CNN
?
模型變化:將maskrcnn中的Align Pooling加入到該模型中;加入空洞卷積;
3 兩種方案:
(1)雙路集成的目標檢測特征提取:從兩路上進行特征提取。1.2fps
(2)多層Align?Pooling
4 問題分析和采用的措施:
數據增強:
水平或者豎直翻轉;color jitter;Multi-scales Training:scaling invariance;Transfer Learning:Pretrained on Coco dataset
效果:3個點的提升
5?小的創新點:(1)加入stochastic weight averaging這個和SGD比較有更好的準確度和更快的收斂速度。(2)Hierachical Feature Ensembling
6 問答?
1 第二個階段在經過RoiAlignPooling的時候極限長寬比的?每個點都有一個偏移量,這樣更好的擬合瑕疵的形狀,計算量會有差別;
? ? ? ? ?
2 去背景是比賽前做的還是比賽后做的?是在比賽后做的,減少的輸入面積,map上有一點波動,但是速度提升了,map實際上是降低了。
3 模型將有些臟點是定位到了背景上了,分數應該是上升啊?去掉一個背景padding以后就會影響原來的鋁材圖片。可以考慮將背景的顏色去掉,換成一個新的數據集。
4 最后做的落地這個圖片轉換后方向是固定的切割的,但是如果改變了方向呢?假設在流水線上這種情況是可控的。
5 用數字圖像處理過后將對光照等等有一個很好的魯棒性。場景中的全部背景基本上都是藍色背景。
第八組?BOOMBOOM
1?整體分析:
?(1)和傳統的目標檢測的任務差別
? (2)為什么要用Deep Learning?弱語義信息不代表沒有語義信息;規則無窮盡,不能遍舉
? (3)最大的困難是什么?數據,數據,數據。其次困難是什么?進場困難,缺陷樣本少,標記困難。
? (4)為什么coco預訓練模型比imagenet預訓練模型好(大家基本上都是用fpn加上coco預訓練模型)?
? (5)FPN為什么是殺手級的結構?除了加上多尺度,其實還是增強了較底層的紋理。和深度學習中語義不斷深化相比這里更像是一個淺層網絡級聯起來的一個網絡。低層次的特征在這次更加接近輸出結果。
? (6)瑕疵檢測需要很細化的特征。
? (7)同類型的模型融合SWA;不同類模型之間的融合:DCN+G-R-CNN
2?模型:Faster R-CNN
3 問題?
1 這個框合適嗎?做缺陷或者瑕疵來說,什么框最好,最好的是Segment其實是最好的方式,但是選擇框其實是一種無奈的選擇;
2 對于劃痕來說這東西很難學到的,你覺得這種東西該怎么標框呢?可以在外標一個框,然后在內用一個弱監督的方式來聚焦這些瑕疵。
總結
以上是生活随笔為你收集整理的目标检测应用竞赛 | 天池铝型材表面瑕疵(含数据集、详细解决方案)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: windows操作系统与linux操作系
- 下一篇: 1+X云计算平台运维与开发认证(初级)样