1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        萬字長文細(xì)說工業(yè)缺陷檢測(cè)

        共 13978字,需瀏覽 28分鐘

         ·

        2021-07-28 03:06

        點(diǎn)擊下方AI算法與圖像處理”,一起進(jìn)步!

        重磅干貨,第一時(shí)間送達(dá)

        作者丨皮特潘
        編輯丨極市平臺(tái)

        導(dǎo)讀

         

        本文主要內(nèi)容還是圍繞著場(chǎng)景分析與數(shù)據(jù)理解、方法論與算法設(shè)計(jì)、工具鏈與部署落地等方面進(jìn)行展開,重點(diǎn)關(guān)注的是頂層設(shè)計(jì)。

        注意:本文從我的一個(gè)PPT整理而來,行文可能比較隨意,很多細(xì)節(jié)沒有寫清楚,后續(xù)有時(shí)間會(huì)持續(xù)修改。

        上次說到,要寫一個(gè)系列,最后整理才發(fā)現(xiàn),還是合成一篇比較好一點(diǎn)。

        皮特潘:AI 工業(yè)缺陷檢測(cè) —— 寫在前面的話

        https://zhuanlan.zhihu.com/p/375383384

        主要內(nèi)容還是圍繞著場(chǎng)景分析與數(shù)據(jù)理解、方法論與算法設(shè)計(jì)、工具鏈與部署落地等方面進(jìn)行展開。重點(diǎn)關(guān)注的還是頂層設(shè)計(jì),因此涉及到的很多具體的細(xì)節(jié)沒有說太多,仁者見仁智者見智吧。在平時(shí)工作中和思考問題上,我喜歡用簡單粗暴的手段去分析,比如:本質(zhì)上,和某某沒有區(qū)別,說白了就這等語氣。目的就是透過現(xiàn)象看本質(zhì),抓住主要矛盾。

        皮特潘:談一談我對(duì)AI項(xiàng)目落地的看法

        https://zhuanlan.zhihu.com/p/336671388

        內(nèi)容提要

        本文大致的脈絡(luò)是按照?qǐng)鼍?、?shù)據(jù)分析,方法論算法設(shè)計(jì),工具鏈與部署等進(jìn)行展開。行文中一些比較重要點(diǎn)的,會(huì)單獨(dú)開篇幅進(jìn)行展開。包含以下論點(diǎn):

        • 主要難點(diǎn)
        • 場(chǎng)景分析
        • 缺陷歸納
        • 簡單粗暴的可行性分析
        • 數(shù)據(jù)的四大難點(diǎn)
        • 數(shù)據(jù)生成
        • 場(chǎng)景VS數(shù)據(jù)
        • 方法論
        • 算法積木
        • 任務(wù)拆分
        • 定制分類模型
        • 定制語義分割模型
        • 語義分割利器dice loss
        • 定制目標(biāo)檢測(cè)模型
        • 正常樣本建模
        • 工具鏈
        • 技術(shù)壁壘
        • 總結(jié)

        (一) 主要難點(diǎn)

        我認(rèn)為缺陷檢測(cè)沒有啥難的,基本上都可以做。那為啥槽點(diǎn)還那么多?我認(rèn)為很大一部分是AI的槽點(diǎn),因?yàn)槟壳笆褂肁I來做是主流,或者說只傳統(tǒng)方法搞不定的,沒辦法,只有上AI的方法。AI的槽點(diǎn)有很多,例如:

        • 多少人工就有多少智能,太依賴于標(biāo)注的數(shù)據(jù);
        • 過擬合嚴(yán)重,泛化能力差;
        • 容易被攻擊到,沒有提取到真正的特征;
        • 提取特征太多抽象,可解釋性差,大家都是“黑盒子”玩家;
        • 經(jīng)驗(yàn)學(xué)、嘗試學(xué),沒有建立起方法論,trick太多,很多都是馬后炮強(qiáng)行解釋;
        • “內(nèi)卷”嚴(yán)重,nlp領(lǐng)域的sota 拿到CV,各種模改就work了?甚至都使用mlp進(jìn)行返租現(xiàn)象,讓我們一時(shí)半會(huì)摸不到方向。

        當(dāng)然,學(xué)術(shù)界和工業(yè)界也有一條巨大的鴻溝。學(xué)術(shù)界在于新,有創(chuàng)新點(diǎn),在開源數(shù)據(jù)上各種嘗試。工業(yè)界強(qiáng)調(diào)的是精度、成本、落地。再者場(chǎng)景過于分散,沒辦法達(dá)成一致的共識(shí),場(chǎng)景、數(shù)據(jù)、需求等均是如此。

        單單從工業(yè)界來看,在“缺陷檢測(cè)”這一個(gè)細(xì)分的場(chǎng)景(其實(shí)也不是啥細(xì)分場(chǎng)景,所有找異常的都可以叫缺陷檢測(cè))。也有很多的槽點(diǎn)或者坑點(diǎn),我認(rèn)為原因如下:

        • 方法論沒做好:例如迭代中涉及多個(gè)環(huán)節(jié),管理容易混亂,或沒有意識(shí)到baseline數(shù)據(jù)集的重要性,敏捷開發(fā)變成扯皮甩鍋。
        • demo難做:業(yè)務(wù)場(chǎng)景分散,沒有現(xiàn)成的可以直接展示。方案涉及光學(xué)硬件,做demo耗時(shí)耗力,關(guān)鍵的是最后不一定能拿下。
        • 更換型號(hào)難做:光學(xué)+標(biāo)注+訓(xùn)練+部署一條龍,對(duì)工具鏈的用戶體驗(yàn)要求非常高。有時(shí)別提用戶體驗(yàn)了,甚至一個(gè)項(xiàng)目現(xiàn)做一套也不夸張。
        • 高度定制:還是那句話,業(yè)務(wù)場(chǎng)景分散,推廣困難,復(fù)制基本等于重做。
        • 精度需求:用戶期待高,動(dòng)輒要求100%?超過人類?
        • 檢測(cè)時(shí)間:人工一個(gè)小小的動(dòng)作,自動(dòng)化執(zhí)行超級(jí)復(fù)雜。尷尬的是面對(duì)的產(chǎn)品價(jià)值可能很低,比如幾毛錢的一個(gè)塑料制品。
        • AI+傳統(tǒng):AI信不過,傳統(tǒng)來兜底。結(jié)果超參過多,運(yùn)維困難。單純AI有時(shí)也會(huì)存在模型過多的情況。

        從業(yè)務(wù)、工具、管理上來說,有三大難點(diǎn):

        • 業(yè)務(wù)難點(diǎn):場(chǎng)景分散,更換型號(hào)困難,大規(guī)模標(biāo)注困難,理解數(shù)據(jù)需要一個(gè)過程。
        • 工具難點(diǎn): 工具都有,但是整合困難。
        • 管理難點(diǎn):更新迭代,敏捷開發(fā),需要需求、光學(xué)、標(biāo)注、算法、運(yùn)維等多方人員協(xié)同完成。

        (二)場(chǎng)景分析

        本文討論的是工業(yè)場(chǎng)景,那就先和自然場(chǎng)景比一比吧!如下:


        當(dāng)然有一個(gè)非常重要的特性沒有說:

        自然場(chǎng)景一般是強(qiáng)語義信息,缺陷檢測(cè)一般為弱語義信息。近期利用輕量級(jí)語義分割訓(xùn)練缺陷檢測(cè)不好使有感而發(fā)。缺陷檢測(cè)不需要特別大的感受野,一般為紋路上的缺陷,局部區(qū)域就可以判別。

        貌似難度比自然場(chǎng)景少不少,再仔細(xì)分析一下,工業(yè)場(chǎng)景其實(shí)有以下幾個(gè)特點(diǎn):

        • 業(yè)務(wù)場(chǎng)景過于分散 ,對(duì)標(biāo)一下“人臉”,甚至“OCR”等領(lǐng)域,缺陷檢測(cè)場(chǎng)景還是非常分散的,難以歸納。
        • 受限、可控 ,有比較的大人工干預(yù)空間。例如可以利用一些光學(xué)、機(jī)械結(jié)構(gòu)等設(shè)計(jì)降低場(chǎng)景的復(fù)雜,使得我們面臨的場(chǎng)景更加純粹。
        • 一般面臨目標(biāo)比較微弱 ,這個(gè)目標(biāo)缺陷的形態(tài)、顏色等有關(guān)。有時(shí)還會(huì)有一些例如黑色紋理上的黑色缺陷,強(qiáng)烈吃視角的缺陷等;
        • 需求不太明確,很多時(shí)候做不到非黑即白的“一刀切。其實(shí)仔細(xì)思考,并不是客戶給不粗明確的需求,而是場(chǎng)景和數(shù)據(jù)本身的固有屬性,需求在執(zhí)行的時(shí)候很難做到一致性,這點(diǎn)下面的數(shù)據(jù)分析會(huì)細(xì)說。
        • 精度指標(biāo)要求比較高,動(dòng)輒100%還是比較夸張的。不過以我個(gè)人的經(jīng)驗(yàn),100%需求的地方,還是比較好做的。一般1個(gè)點(diǎn)的漏檢,2到3個(gè)點(diǎn)的誤檢也算比較理想的結(jié)果了。不過有一點(diǎn)值得說明的是,非常明顯的漏檢和誤檢就是低級(jí)錯(cuò)誤,要不得的。

        以上是工業(yè)缺陷檢測(cè)場(chǎng)景的固有屬性。針對(duì)該場(chǎng)景,主要有以下三點(diǎn)需求:

        • 撿出NG和GOOD,這個(gè)是最基礎(chǔ)的任務(wù),不然不能稱之為缺陷檢測(cè);
        • 定位缺陷的位置,方便歸因分析、指標(biāo)統(tǒng)計(jì)、設(shè)備升級(jí)、維修等;
        • 給出缺陷的量化指標(biāo),例如面積、長度、對(duì)比度;一般對(duì)應(yīng)的上層任務(wù)有缺陷分級(jí)、需求定制或變更。

        (三)缺陷歸納

        做好缺陷的歸類,才容易下手。這里給出三種歸納方法:

        歸納一:

        • 紋理缺陷:替代原始樣本紋路表現(xiàn),位置、大小、形態(tài)不固定;劃痕、臟污等;
        • 結(jié)構(gòu)缺陷:與目標(biāo)結(jié)構(gòu)有關(guān),其位置、形態(tài)較固定,可能不存在量化的概念(錯(cuò)漏反);
        • 其他缺陷:例如醫(yī)學(xué)圖像、一些紅外熱成像、超聲波成像等,可能無法靠肉眼建立精準(zhǔn)的對(duì)應(yīng)關(guān)系
        • 綜合以上

        歸納二(站在正常樣本建模的角度):

        • 紋理(一般指重復(fù)的結(jié)構(gòu),可能存在顆粒比較大的紋理)
        • 非紋理對(duì)齊:與結(jié)構(gòu)相關(guān),但是可以做到對(duì)齊
        • 非紋理無法對(duì)齊:與結(jié)構(gòu)無關(guān),但是很難對(duì)齊
        • 綜合以上

        歸納三(形態(tài)上):

        • 加法:臟污、異物、附著、
        • 減法:殘缺、劃痕、破損
        • 替換:混色、異色、雜質(zhì)、混淆
        • 變形:扭曲、尺寸、褶皺

        (四)簡單粗暴的可行性分析

        需求非常多,有時(shí)甚至來不及打光驗(yàn)證。因此我有一套簡單粗暴的可行性分析辦法。主要針對(duì)業(yè)務(wù)場(chǎng)景來說。當(dāng)然這只是粗糙的可行性分析,只能建立大致的、初步的印象。具體能不能做,還要從光學(xué)、結(jié)構(gòu)復(fù)雜度、成本、運(yùn)維、打開市場(chǎng)、推廣等多個(gè)維度進(jìn)行評(píng)估。

        簡單粗暴包括以下兩個(gè)點(diǎn):


        • 明顯:缺陷清晰可見,肉眼容易辨別,同時(shí)也是對(duì)光學(xué)成像提出要求;
        • 明確:缺陷標(biāo)準(zhǔn)定義明確,沒有爭議,是對(duì)需求進(jìn)行篩選;

        基本上滿足以上兩點(diǎn),就可以認(rèn)為該case是可行的,基本可以做的。不過實(shí)際的情況是比較復(fù)雜的。僅僅靠“明顯”和“明確”會(huì)把很多機(jī)會(huì)攔截在外。這種定義無可厚非,但是不夠深入,給算法設(shè)限。缺陷檢測(cè),很難做到這兩點(diǎn)的理想情況。且看下一小結(jié)數(shù)據(jù)的詳細(xì)分析。

        (五)數(shù)據(jù)的四大難點(diǎn)

        難分、多樣性、不平衡、數(shù)據(jù)臟。把握難點(diǎn),針對(duì)舉措。


        5.1 數(shù)據(jù)難分

        直接后果就是標(biāo)準(zhǔn)難定,學(xué)術(shù)一點(diǎn)來說就是正負(fù)樣本類間差距較小,不是非黑既白的一刀切能夠搞定的,很難有一個(gè)一致性的標(biāo)注將正負(fù)樣本分開。也就是需求標(biāo)準(zhǔn)難定,即便是人工也很難保證。標(biāo)準(zhǔn)可能還比較好定,但是執(zhí)行起來較為困難。

        這個(gè)放到第一點(diǎn),因?yàn)樗菆?chǎng)景和數(shù)據(jù)的固有屬性,人工很難改變,這也是大家吐槽缺陷檢測(cè)難做的主要原因。不管用任何手段去描述缺陷,都不能做到明顯可分。比如按照面積、灰度值等繪制其直方圖,中間過渡區(qū)域永遠(yuǎn)存在一定量的樣本,處于灰色地帶,模棱兩可。不管你是多人標(biāo)注也好,不管你是做量化指標(biāo)也好,總很難有好的辦法改變這一現(xiàn)狀。

        有人可能會(huì)說,直接給閾值進(jìn)行一刀切或兩刀切,閾值交給客戶來定。不過我們自己本身要想明白這個(gè)事情:不管是AI,還是人工,都會(huì)檢出灰色地帶。該場(chǎng)景存在這種情況,那么說明其需求本應(yīng)該能夠接受灰色地帶的數(shù)據(jù)分錯(cuò)。

        標(biāo)注測(cè)試集就很難做,例如甲方合同明確要給出準(zhǔn)確率。該問題的存在,很難達(dá)到理想的指標(biāo)。所以如果面臨該場(chǎng)景,建議在統(tǒng)計(jì)指標(biāo)上,給出明顯漏、明顯誤等。不然會(huì)陷入“清洗數(shù)據(jù)”、“更改需求”、“重復(fù)試驗(yàn)”的死循環(huán),無法解脫。

        能否給出對(duì)應(yīng)的量化指標(biāo),也是很大的問題,比如明顯的缺陷判分很低,微弱的缺陷置信度又很高。降低客戶的期望也好,讓客戶理解AI判定過程也好,總之就是既然想讓AI代替人工,我是可以做到。

        針對(duì)該場(chǎng)景,我們要做的是:易分樣本(也就是明顯缺陷和明顯不是缺陷)不能出錯(cuò),然后在漏檢和誤檢的tradeoff尋求一個(gè)平衡。一般客戶會(huì)有“直通率”這個(gè)概念,可以多次磨合,多次迭代,趨向用戶期待。

        5.2 多樣性不夠

        這點(diǎn)表現(xiàn)為類內(nèi)差異過大。比如同樣是劃痕,表現(xiàn)形式各種各樣,有的發(fā)白,有的發(fā)黑,有的吃視角,有的發(fā)生在邊緣地帶等等,出現(xiàn)在不同位置,表現(xiàn)形式都不一樣。因此導(dǎo)致一個(gè)問題:你很難收集到全部形態(tài)的缺陷樣本,所以在測(cè)試集上很難有一個(gè)不錯(cuò)的表現(xiàn)。也就是你的訓(xùn)練集和測(cè)試集存在的明顯影響性能的偏差,這里的偏差不是標(biāo)注導(dǎo)致的,而是數(shù)據(jù)本身導(dǎo)致的。這種情況還是比較高頻率能夠遇到,比如和客戶聊一個(gè)需求的時(shí)候,對(duì)于某一種缺陷,他會(huì)說比較大概率發(fā)生在A處,但是不能排除發(fā)生在其他地方的概率。問題就是目前很難收集到樣本,即便收集到樣本,也很難覆蓋所有的情況。

        一般我們做一個(gè)任務(wù),會(huì)有一份標(biāo)準(zhǔn)測(cè)試集,方便我們的方案、算法進(jìn)行迭代。沒有測(cè)試集,精度指標(biāo)無從談起。由于缺陷表現(xiàn)的多樣性問題,我們的標(biāo)準(zhǔn)測(cè)試集可能就沒有那么的“標(biāo)準(zhǔn)”。實(shí)際數(shù)據(jù)集構(gòu)建的過程中,盡量保證較大的覆蓋率。多樣性圖片拿不到,但是“缺陷描述”還是可以拿得到的。因此需要結(jié)合一些正常樣本學(xué)習(xí)和數(shù)據(jù)生成的方法來降低“多樣性不夠”帶來的影響。

        5.3 樣本不平衡

        表現(xiàn)在3個(gè)方面:

        1. 從樣本級(jí)別來看,是不平衡的,大量的都是正常樣本,NG樣本占比較小;每天會(huì)收集海量的圖,有缺陷的比較少。
        2. 從缺陷實(shí)例級(jí)別來看,缺陷占整體較小,例如500w相機(jī)拍攝圖片,25002000pix尺度上,缺陷尺度可能小到1010pix的水平。缺陷過小會(huì)帶來一個(gè)嚴(yán)重問題。沒辦法進(jìn)行resize(當(dāng)然使用高分辨率的相機(jī)本意也是更精準(zhǔn)的檢測(cè)尺度小的缺陷)。導(dǎo)致的問題是:測(cè)試的時(shí)候,1是耗時(shí),2是比較難控制誤檢的。例如siliding window檢測(cè),即便每一個(gè)patch預(yù)測(cè)準(zhǔn)確率是99.9%,綜合起來,性能下降的非常厲害。
        3. 從類別上來看是不平衡的,會(huì)存在某一類占比較大,有些缺陷占比較小。實(shí)踐證明:只要有足夠多的樣本,即便是非常微弱的缺陷(這里的定義是肉眼可判別),網(wǎng)絡(luò)也可以識(shí)別。應(yīng)對(duì)方法很多,無外乎是數(shù)據(jù)生成、數(shù)據(jù)增強(qiáng)、過采樣、loss上設(shè)計(jì)、訓(xùn)練策略上等等。

        5.4 數(shù)據(jù)臟

        工程上的問題,必須考慮數(shù)據(jù)臟的情況。

        數(shù)據(jù)臟就是標(biāo)注的時(shí)候把標(biāo)注類別搞錯(cuò)。搞錯(cuò)大家一般會(huì)認(rèn)為是數(shù)據(jù)難分的原因,其實(shí)不然,數(shù)據(jù)難分,也就是標(biāo)準(zhǔn)難定或者無法清晰給出,因此這部分導(dǎo)致的原因不能單純歸納為數(shù)據(jù)臟。但是這里為了便于分析,我們區(qū)別對(duì)待。臟數(shù)據(jù)會(huì)對(duì)網(wǎng)絡(luò)訓(xùn)練帶來不利的影響,強(qiáng)行訓(xùn)練會(huì)有過擬合的風(fēng)險(xiǎn)。因?yàn)榫W(wǎng)絡(luò)提取通用特征,擬合不到缺陷只能去擬合其他噪聲了。不過也有說法是,臟數(shù)據(jù)作為噪聲,也能給網(wǎng)絡(luò)帶來好的收益,讓網(wǎng)絡(luò)搜索參數(shù)的時(shí)候增加擾動(dòng),避免陷入局部最優(yōu),卻能防止網(wǎng)絡(luò)過擬合。不過一般任務(wù):數(shù)據(jù)還是越干凈越好。

        那就是數(shù)據(jù)清洗,例如交叉驗(yàn)證。學(xué)術(shù)上也有一些噪聲樣本學(xué)習(xí)的方案。數(shù)據(jù)臟還比較好辦,歸根到底是數(shù)據(jù)標(biāo)注的問題。隨著訓(xùn)練迭代以及人工清洗,可以很好的改善這一情況。

        (六)數(shù)據(jù)生成

        雖然是工業(yè)場(chǎng)景,數(shù)據(jù)會(huì)源源不斷過來。但是上文提到數(shù)據(jù)的幾大問題,例如樣本不平衡等,所以有時(shí)我們會(huì)需要生成一部分的數(shù)據(jù)。還有一種情況,在項(xiàng)目初期,我們往往“打樣”。所謂demo階段,是拿不到足夠多的數(shù)據(jù)的。另外,數(shù)據(jù)肯定是多多益善,如果我們有生成數(shù)據(jù)的巧妙方法,訓(xùn)練從中受益的話,也很大程度上降低了數(shù)據(jù)收集、標(biāo)注、清洗的成本。

        數(shù)據(jù)生成有傳統(tǒng)方法和深度學(xué)習(xí)方法兩種可用。傳統(tǒng)方法可以進(jìn)行一些圖像融合,例如直接將缺陷裁剪下來到處貼,為了保證生成的逼真一點(diǎn),還是需要一些融合的手段,例如泊松融合和邊緣融合等。當(dāng)然,有些場(chǎng)景,直接修改圖片局部的灰度值也可以生成逼真的缺陷。我就單單利用修改圖片的灰度和對(duì)比度就生成了很多以假亂真的圖片。深度學(xué)習(xí)方法一般用GAN和VAE等生成模型可用,利用GAN可以直接從噪聲生成數(shù)據(jù),不過產(chǎn)生新的對(duì)網(wǎng)絡(luò)訓(xùn)練有受益的信息比較有限??梢岳妙愃苝ix2pix的方案進(jìn)行圖片編輯。傳統(tǒng)方法中的圖片融合也可以利用GAN來做。


        (七)場(chǎng)景VS數(shù)據(jù)

        前面主要說了場(chǎng)景和數(shù)據(jù)的一些東西,這里對(duì)比再看一下。場(chǎng)景是客觀的,固有屬性,你做與不做,它都在那里。

        數(shù)據(jù)是有主觀的成分在里面:從其光學(xué)設(shè)計(jì)、標(biāo)準(zhǔn)執(zhí)行等上來說,有很大人為因素。也是上文說的可控。具有很大的操作和設(shè)計(jì)空間。

        但是有時(shí)還要思考:值不值得做?可能是時(shí)間、成本、性價(jià)比、大規(guī)模推廣等方面的原因。當(dāng)然,大部分場(chǎng)景還是很容易做的,因?yàn)樵诠I(yè)領(lǐng)域,至少是受限的和可控的場(chǎng)景。關(guān)鍵要分清主要矛盾和次要矛盾。

        (八)方法論


        缺陷檢測(cè)是整個(gè)系統(tǒng)工程,每個(gè)階段都有不同的人參與,而算法工程師幾乎要從頭打到尾。

        這里重要要建設(shè)四種意識(shí),要進(jìn)行全員建設(shè)。從產(chǎn)品經(jīng)理、光學(xué)工程、結(jié)構(gòu)工程師、算法工程師、應(yīng)用工程師、運(yùn)維工程師,當(dāng)然也包括決策者:

        • 版本管理意識(shí):不光代碼有版本管理,算法、數(shù)據(jù)、環(huán)境甚至硬件都要有版本管理的概念。
        • baseline意識(shí):baseline也就是我們版本管理的起點(diǎn),不斷優(yōu)化的基石。
        • 閉環(huán)意識(shí):既然用AI,數(shù)據(jù)驅(qū)動(dòng)的工程,那么請(qǐng)問能夠一次性給到我完美的數(shù)據(jù)集?如果不能,請(qǐng)具備閉環(huán)意識(shí),做好更新迭代、持續(xù)優(yōu)化的工作。
        • tradeoff意識(shí):精度和時(shí)間是tradeoff,準(zhǔn)確率和召回率是tradeoff,虛檢和漏檢是tradeoff。tradeoff的意思就是要綜合考慮。

        在進(jìn)行需求挖掘和可行性分析的時(shí)候,有一些一些值得思考點(diǎn)

        • 用戶理解上,建立一致性的期望。全員更加理性認(rèn)識(shí)AI方案。
        • 用戶可能給不出明確的需求,要共同發(fā)掘一致性的需求。
        • 需求、光學(xué)確定以后,建立標(biāo)準(zhǔn)測(cè)試集。
        • 對(duì)于算法難以界定的灰色地帶,接不接受人工二次復(fù)檢?
        • 是否涉及更換型號(hào)?
        • 什么是絕對(duì)不能容忍的錯(cuò)誤,算法的下限在哪里?
        • 對(duì)時(shí)間上的要求?
        • 標(biāo)準(zhǔn)確認(rèn)上,采用多人標(biāo)注,便于評(píng)估數(shù)據(jù)的一致性。

        (九)算法積木


        如上圖所示,我們能用到的深度學(xué)習(xí)算法積木很多,首先是分類、分割、檢測(cè)三大任務(wù),這是我們的主菜。當(dāng)然還有一些別的方法,例如分類算法中有細(xì)粒度分類,可以更加精準(zhǔn)的提取微弱的特征,細(xì)粒度算法一般會(huì)用到打亂和注意力機(jī)制,對(duì)紋理上的缺陷識(shí)別會(huì)更優(yōu)一點(diǎn)。另外,應(yīng)用語義分割任務(wù)做缺陷檢測(cè),其實(shí)缺陷檢測(cè)并不局限語義分割,它更像提取一張高斯熱圖,有缺陷的地方概率高,背景區(qū)域概率低。因此有一些熱圖回歸的做法也可以應(yīng)用。除了監(jiān)督方案,在應(yīng)對(duì)缺陷樣本少的場(chǎng)景,我們還可以選擇無監(jiān)督學(xué)習(xí)方案。

        當(dāng)然,上面也說了,數(shù)據(jù)場(chǎng)景復(fù)雜,一致性問題難以保證。而且面臨的數(shù)據(jù)量比較大,因此你還可以使用一些半監(jiān)督、弱監(jiān)督的手段來降低標(biāo)注的工作量。

        (十)任務(wù)拆分

        任務(wù)拆分,可以降低算法的難度。多個(gè)結(jié)果進(jìn)行分?jǐn)側(cè)蝿?wù)難度,另外不同階段對(duì)數(shù)據(jù)的依賴不一樣,多個(gè)階段拆分更容易控制,尤其是在樣本平衡方面。多個(gè)階段對(duì)標(biāo)的是端到端,可以做到精度方面的提升。


        (十一)定制語義分割模型

        語義分割容易擴(kuò)展,可以輸出最精準(zhǔn)的逐像素特征,依賴樣本更少(當(dāng)然標(biāo)注量比較大),非常適合來做缺陷檢測(cè)任務(wù)。下面給出一些經(jīng)常叫魔改也好,定制也好的特性。

        定制特性:

        • 多通道輸入:適配多個(gè)光源的復(fù)雜場(chǎng)景
        • 骨架任意切換:resnet、effecientnet
        • 多個(gè)head:多任務(wù),處理互斥類別
        • attention輔助head: aspp、danet、senet、non_local
        • 中繼監(jiān)督:增強(qiáng)梯度信息
        • refine module(Cascaded):結(jié)果精修,過濾虛檢
        • 不對(duì)等輸出:256256 > 88等,加速,犧牲定位精度,降低擬合難度
        • attention機(jī)制:通道、空間、nonlocal,提升全局感知能力
        • 通道剪枝:手動(dòng),network-slimming

        當(dāng)然再配合一些訓(xùn)練tricks,可以達(dá)到事半功倍的效果:

        • 過采樣:進(jìn)行正負(fù)樣本平衡,非?;A(chǔ)和常用的手段,經(jīng)常使用crop的手段。
        • 動(dòng)態(tài)平衡dataset:其實(shí)和過采樣有異曲同工之妙,不過該方法是隨著訓(xùn)練過程動(dòng)態(tài)調(diào)整的,可以理解為作用在數(shù)據(jù)層面的難樣本挖掘。
        • 標(biāo)簽平滑:語義分割標(biāo)注是有偏差的,主要體現(xiàn)在邊界上,所以可以進(jìn)行標(biāo)簽平滑策略。
        • diceloss:樣本不平衡神器,必須好好利用;
        • 難樣本挖掘:
        • loss截?cái)啵和瑯討?yīng)對(duì)標(biāo)注偏差的情況
        • 對(duì)抗訓(xùn)練:預(yù)防對(duì)抗攻擊

        (十二)dice loss 10 問



        眾所周知,diceloss是語義分割,尤其是應(yīng)對(duì)正負(fù)樣本不平衡的一把利器。但是它也有一些槽點(diǎn),因此必須整明白。下面提出diceloss十問,暫時(shí)不給出答案。之前也寫過一個(gè)diceloss的深度解析,可以參考一下:

        皮特潘:語義分割之dice loss深度分析(梯度可視化)

        https://zhuanlan.zhihu.com/p/269592183

        1. 和ce的區(qū)別?
        2. label為0的像素區(qū)域有無監(jiān)督?
        3. 正常樣本有無作用?
        4. 正負(fù)樣本比例的影響、怎么設(shè)置?
        5. epsilon的影響?
        6. 有無梯度消失或飽和的現(xiàn)象?
        7. 能否不使用sigmoid激活函數(shù)?
        8. 能否通過權(quán)重初始化改善梯度消失?
        9. 震蕩的本質(zhì)原因?
        10. 預(yù)測(cè)邊緣更銳利?

        (十三)定制分類

        分類是最簡單的任務(wù),當(dāng)然缺陷檢測(cè)可能會(huì)對(duì)它提出了更高的要求。例如下面這個(gè)方法

        皮特潘:DCL細(xì)粒度分類網(wǎng)絡(luò)小記

        https://zhuanlan.zhihu.com/p/328377321

        分類任務(wù)有時(shí)會(huì)結(jié)合交叉驗(yàn)證、多模型boosting、弱監(jiān)督語義分割。

        (十四)定制目標(biāo)檢測(cè)

        很多技巧性的東西,都是通用的目標(biāo)檢測(cè)技巧,例如:尺度問題、形變問題等等;本文不再敘述。

        (十五)正常樣本建模

        傳統(tǒng)方法:(場(chǎng)景受限,需要調(diào)參數(shù),可用于防呆,明顯缺陷沒問題,微弱缺陷效果不行)

        • 對(duì)齊+對(duì)減
        • 對(duì)齊+GMM

        深度學(xué)習(xí):

        • 基于特征統(tǒng)計(jì)
        • 基于GAN
        • 基于樣本生成

        對(duì)場(chǎng)景進(jìn)行篩選,從簡單、對(duì)齊入手。注意:可以利用監(jiān)督學(xué)習(xí)尋找算法的上限


        (十六)工具鏈


        如上圖,缺陷檢測(cè)落地需要非常多的工具支撐:

        1. 圖像采集:相機(jī)、運(yùn)動(dòng)設(shè)備、光學(xué)控制;
        2. 數(shù)據(jù)托管:服務(wù)器、數(shù)據(jù)庫、版本管理、數(shù)據(jù)積累;
        3. 數(shù)據(jù)處理:圖像分析、定位、裁剪;
        4. 數(shù)據(jù)標(biāo)注:適配各種任務(wù)、半自動(dòng)標(biāo)注;
        5. 數(shù)據(jù)清洗:半自動(dòng)、交叉驗(yàn)證、一致性分析;
        6. 缺陷生成:傳統(tǒng)方法、融合、GAN;
        7. 訓(xùn)練框架:分類、分割、檢測(cè)、熱圖回歸等;
        8. 測(cè)試框架:多模型測(cè)試、指標(biāo)統(tǒng)計(jì)、可視化;
        9. 部署平臺(tái):模型融合、模型加速、平臺(tái)移植;
        10. 前端框架:GUI、數(shù)據(jù)持續(xù)收集、用戶體驗(yàn);

        難點(diǎn):整合散亂的工具,甚至完全交給用戶。市面是有很多做自動(dòng)訓(xùn)練軟件的,例如比較知名的VIDI,國內(nèi)也有AIDI、Alpha等??赡艽蠹疫x擇的模型不是非常先進(jìn),但是從標(biāo)注到訓(xùn)練,再到模型導(dǎo)出,用戶體驗(yàn)和跨平臺(tái)做的比較好。工業(yè)場(chǎng)景,特定場(chǎng)景特定算法,工具做好,不必追求SOTA模型,SOTA模型只是提高了自然場(chǎng)景精度的上限,而我們需要把握模型的下限。

        (十七)部署

        部署沒啥可說的,可其他任務(wù)沒有太大區(qū)別,這里列舉一些總結(jié)的點(diǎn)吧!

        部署兩大任務(wù):

        1. 平臺(tái)移植
        2. 模型加速

        模型加速:

        1. 模型輕量化:mobilenet, EfficientNet
        2. 量化:INT8、INT16、2BIT
        3. 剪枝:network-slimming
        4. 蒸餾:Knowledge Distillation

        部署的兩種方式:

        1. 服務(wù)端:服務(wù)器、云端(微信小程序)、工控機(jī)
        2. 邊緣設(shè)備:jetson, NPU,rk, arm

        常用推理庫:

        1. c、c++原生態(tài):darknet
        2. pytorch原生態(tài):libtorch、torch.jit
        3. 中間轉(zhuǎn)換:onnxruntime
        4. GPU: tensorRT、onnxruntime-GPU、TVM
        5. CPU: openvino、onnxruntime-CPU
        6. ARM: ncnn TNN MNN等

        (十八)技術(shù)壁壘

        1. 系統(tǒng)工程:硬件、光學(xué)、算法、部署,穩(wěn)定、可靠
        2. 數(shù)據(jù)積累:用戶理解、場(chǎng)景理解、數(shù)據(jù)理解,在專用領(lǐng)域形成數(shù)據(jù)積累
        3. 工具鏈:可以支撐項(xiàng)目快速落地
        4. 成本控制:開發(fā)周期、硬件成本、運(yùn)維成本

        所以缺陷檢測(cè)不單單是一個(gè)算法模型的問題,而是整個(gè)系統(tǒng)工程。可能不需要非常前言的算法,但是需要成熟的工具鏈。即便是基礎(chǔ)的算法、看似容易的場(chǎng)景,也可以形成技術(shù)壁壘。如果想復(fù)刻,也沒有那么輕松。很多時(shí)候,不是不能做,而是值不值得做?

        Nothing is impossible, what you want is simply expensive

        (十九)總結(jié)

        1. 場(chǎng)景分散,硬件結(jié)構(gòu)、光學(xué)強(qiáng)相關(guān),復(fù)刻難度大,高度定制、推廣成本高。任務(wù)可行性分析,系統(tǒng)工程層面(整套方案、數(shù)據(jù))形成技術(shù)壁壘;
        2. 數(shù)據(jù)一致性問題:難分、類內(nèi)差異大、樣本不平衡、數(shù)據(jù)臟等,難以在一個(gè)標(biāo)注測(cè)試集上輸出比較好的指標(biāo)。需求理解、數(shù)據(jù)理解、數(shù)據(jù)管理;
        3. 不需要特別前沿的算法;
        4. 問題模型定制、訓(xùn)練技巧、任務(wù)拆分;
        5. 工具鏈完善;

        最后,缺陷檢測(cè)都是可以做的。那些非常難的,AI是目前最好的方案。


        本文亮點(diǎn)總結(jié)


        1.缺陷檢測(cè)沒有啥難的,基本上都可以做。那為啥槽點(diǎn)還那么多?很大一部分是AI的槽點(diǎn),因?yàn)槟壳笆褂肁I來做是主流,或者說只傳統(tǒng)方法搞不定的,沒辦法,只有上AI的方法。

        2.數(shù)據(jù)是有主觀的成分在里面:從其光學(xué)設(shè)計(jì)、標(biāo)準(zhǔn)執(zhí)行等上來說,有很大人為因素。也是上文說的可控。具有很大的操作和設(shè)計(jì)空間。但是有時(shí)還要思考:值不值得做?可能是時(shí)間、成本、性價(jià)比、大規(guī)模推廣等方面的原因。當(dāng)然,大部分場(chǎng)景還是很容易做的,因?yàn)樵诠I(yè)領(lǐng)域,至少是受限的和可控的場(chǎng)景。關(guān)鍵要分清主要矛盾和次要矛盾。


        努力分享優(yōu)質(zhì)的計(jì)算機(jī)視覺相關(guān)內(nèi)容,歡迎關(guān)注:

             
        個(gè)人微信(如果沒有備注不拉群!
        請(qǐng)注明:地區(qū)+學(xué)校/企業(yè)+研究方向+昵稱



        下載1:何愷明頂會(huì)分享


        AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經(jīng)典工作的總結(jié)分析


        下載2:終身受益的編程指南:Google編程風(fēng)格指南


        AI算法與圖像處理」公眾號(hào)后臺(tái)回復(fù):c++,即可下載。歷經(jīng)十年考驗(yàn),最權(quán)威的編程規(guī)范!



           
        下載3 CVPR2021

        AI算法與圖像處公眾號(hào)后臺(tái)回復(fù):CVPR即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

        點(diǎn)亮 ,告訴大家你也在看




        瀏覽 56
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日本色情视频免费 | 美女露胸露尿口 | 亚洲中文字幕无码在线 | heyzo色臀少妇小早川怜子视频 | 欧美三级电影中文字幕 | www夜片内射视频日韩精品成人 | 又爽又黄A片免费观看直播蜜桃 | 天天摸天天碰天天看 | 久久成人网站 | 乱伦精品视频 |