深度學(xué)習(xí)能取代其他圖像處理算法嗎
最近這些年,隨著深度學(xué)習(xí)技術(shù)的出現(xiàn),視覺(jué)圖像處理變得越來(lái)越火熱,在各個(gè)領(lǐng)域都得到了大量的應(yīng)用,同時(shí)也出現(xiàn)了大量的從業(yè)人員。但是,很多人只會(huì)用深度學(xué)習(xí),并且認(rèn)為傳統(tǒng)的圖像處理算法已經(jīng)沒(méi)用了,曾經(jīng)聽(tīng)到有人說(shuō),圖像處理已經(jīng)爛大街了,傳統(tǒng)的圖像處理算法已經(jīng)過(guò)時(shí)了,圖像處理門(mén)檻很低,是個(gè)人都可以用。說(shuō)實(shí)話(huà),聽(tīng)到這樣的言論,有時(shí)候我真的很無(wú)語(yǔ)。
今天剛好有點(diǎn)時(shí)間,我想來(lái)說(shuō)說(shuō)這個(gè)事情。首先,我們來(lái)分析一下,圖像處理主要在干什么事情?不管圖像處理用在哪個(gè)行業(yè),其實(shí)現(xiàn)的功能主要有識(shí)別、分類(lèi)、定位、檢測(cè)、尺寸測(cè)量、視覺(jué)引導(dǎo)等。
既然總有人說(shuō)深度學(xué)習(xí)已經(jīng)代替了傳統(tǒng)的圖像處理技術(shù),今天我就給幾個(gè)具體的案例。看看深度學(xué)習(xí)應(yīng)該實(shí)現(xiàn)?看看傳統(tǒng)的圖像處理技術(shù)到底有沒(méi)有用。
首先簡(jiǎn)單說(shuō)一下上面提到的視覺(jué)主要功能是在什么的。識(shí)別和分類(lèi)有一定關(guān)聯(lián)性。人臉識(shí)別、車(chē)牌識(shí)別、字符識(shí)別、條形碼/二維碼識(shí)別、產(chǎn)品類(lèi)別識(shí)別、水果識(shí)別等,都是圖像識(shí)別技術(shù),識(shí)別完后有時(shí)候直接給出識(shí)別結(jié)果,有時(shí)候還需要進(jìn)行分類(lèi)。比如混裝產(chǎn)線(xiàn)上的產(chǎn)品識(shí)別后,需要進(jìn)行分類(lèi)裝箱。
定位也有很多種,有時(shí)候只需要知道目標(biāo)大概在什么位置,有時(shí)候需要精確定位,從而讓機(jī)器人自動(dòng)抓取。檢測(cè)有目標(biāo)檢測(cè)、缺陷檢測(cè)等。目標(biāo)檢測(cè)很多時(shí)候只需要知道場(chǎng)景中是否存在該目標(biāo),缺陷檢測(cè)很多時(shí)候除了檢測(cè)是否存在缺陷之外,還需要確定缺陷的大小和類(lèi)別。
尺寸測(cè)量目標(biāo)很明確,就是通過(guò)視覺(jué)檢測(cè)目標(biāo)對(duì)象的某些具體尺寸是否符合要求。視覺(jué)引導(dǎo)是結(jié)合機(jī)器人自動(dòng)抓取用的,需要精確定位目標(biāo)位置,同時(shí)很多時(shí)候還需要定位抓取的具體位置,避免沒(méi)有抓牢,在機(jī)器人移動(dòng)時(shí)抓取對(duì)象可能掉下來(lái)。
下面我就列舉幾個(gè)具體的案例,看大家用深度學(xué)習(xí)怎么實(shí)現(xiàn)。由于企業(yè)并不想把這些圖像公之于眾,所以下面所有的圖我都只截取了其中一小部分,也看不出是什么東西。
下面所有的例子都是企業(yè)實(shí)際需求,圖像也是現(xiàn)場(chǎng)拍的。先來(lái)個(gè)簡(jiǎn)單的字符識(shí)別。這是一個(gè)簡(jiǎn)單的字符識(shí)別,識(shí)別要求:判斷這些字符是否正確,速度每秒鐘20個(gè),預(yù)算2萬(wàn)塊錢(qián)一臺(tái)視覺(jué)系統(tǒng),100條產(chǎn)線(xiàn),總共200萬(wàn)。做不做呢?200萬(wàn)已經(jīng)不小了,可是每臺(tái)只有2萬(wàn)。做下來(lái)有沒(méi)有利潤(rùn)?上位機(jī)識(shí)別到字符有錯(cuò)誤,需要自動(dòng)剔除。
簡(jiǎn)單分析一下,檢測(cè)速度每秒鐘20個(gè),也就是每個(gè)產(chǎn)品需要50毫秒之內(nèi)完成,同時(shí)上位機(jī)需要給剔除機(jī)構(gòu)發(fā)信號(hào),為了發(fā)信號(hào)穩(wěn)定,預(yù)留20毫秒時(shí)間,剩下的30毫秒就是拍照和圖像處理時(shí)間。想一下深度學(xué)習(xí)怎么訓(xùn)練?工控機(jī)怎么配置?PLC、剔除裝置、相機(jī)、光源、鏡頭、機(jī)柜以及其它一些小配件多少錢(qián)?人工現(xiàn)場(chǎng)調(diào)試成本多少?總共成本是多少?
再來(lái)一個(gè)例子。下面這個(gè)圖是焊接缺陷檢測(cè),焊接缺陷有很多種,曾經(jīng)有人用了一周時(shí)間利用深度學(xué)習(xí)來(lái)訓(xùn)練和檢測(cè),然后給我說(shuō)檢測(cè)結(jié)果很好,過(guò)來(lái)一個(gè)月后來(lái)找我說(shuō)用不起,檢測(cè)效果很差,大家想想為什么?
再來(lái)一個(gè)例子,下面這個(gè)圖是條形碼識(shí)別,是不是很少見(jiàn)這么不清楚的條形碼?請(qǐng)用深度學(xué)習(xí)識(shí)別出來(lái)。
再來(lái)一個(gè)例子,下面的圖檢測(cè)兩側(cè)粗細(xì)是否一致以及檢測(cè)表面是否有缺陷。用深度學(xué)習(xí)怎么做?有人用深度學(xué)習(xí)在現(xiàn)場(chǎng)調(diào)試了半年,最后客戶(hù)不滿(mǎn)意。
下面這個(gè)圖,要實(shí)現(xiàn)機(jī)器人自動(dòng)抓取,需要檢測(cè)抓取對(duì)象傾斜的角度,從而調(diào)整機(jī)器人位姿,用深度學(xué)習(xí)怎么做?
下面這個(gè)是已經(jīng)使用過(guò)一段時(shí)間的彈簧,需要測(cè)量彈簧的尺寸,判斷是否合格,還有類(lèi)似的軸承、齒輪、螺紋等參數(shù)測(cè)量,用深度學(xué)習(xí)怎么做?
上面的例子只是眾多實(shí)際案例中的極小一部分,類(lèi)似的檢測(cè)層出不窮,比如自動(dòng)擰螺栓,無(wú)序抓取、微米級(jí)的精確定位等。然而,遺憾的是,很多人就只會(huì)用深度學(xué)習(xí),某些人連基本的圖像概念都沒(méi)有搞清楚,就得出結(jié)論認(rèn)為圖像處理已經(jīng)爛大街,深度學(xué)習(xí)已經(jīng)代替其他圖像處理方法了。多接觸點(diǎn)實(shí)際案例,就不會(huì)說(shuō)出這樣的話(huà)來(lái)。
很多人用深度學(xué)習(xí),以為把圖像傳進(jìn)去訓(xùn)練一下就可以了,如果效果不好就增加訓(xùn)練樣本,調(diào)整下參數(shù),以為就會(huì)達(dá)到效果,我只能說(shuō)對(duì)圖像的理解有點(diǎn)淺。人們最常見(jiàn)的圖像應(yīng)用就是人臉識(shí)別、車(chē)牌識(shí)別等,這種識(shí)別用深度學(xué)沒(méi)有什么問(wèn)題,本身要求也不高,就算識(shí)別時(shí)間很長(zhǎng),或者識(shí)別錯(cuò)誤也問(wèn)題不大,刷臉支付如果識(shí)別不出來(lái),還可以手動(dòng)支付;車(chē)牌識(shí)別、門(mén)禁系統(tǒng)人臉識(shí)別不出來(lái)還可以手動(dòng)開(kāi)門(mén)。在全自動(dòng)的應(yīng)用場(chǎng)景可不允許出現(xiàn)這樣的情況。
產(chǎn)品缺陷檢測(cè)、分類(lèi)、識(shí)別用深度學(xué)習(xí)比較多,但是也要分情況。而且,很多時(shí)候都不是單純的只用深度學(xué)習(xí)訓(xùn)練下就可以的,在訓(xùn)練之前還可能要用到其它的圖像處理算法。
有些人拿公開(kāi)的數(shù)據(jù)集跑下深度學(xué)習(xí)模型,寫(xiě)點(diǎn)文章,是沒(méi)有問(wèn)題的。但是,要做到應(yīng)用層面,還有很長(zhǎng)的路要走。曾經(jīng)熟悉的一家企業(yè)招聘了不少博士去搞視覺(jué)檢測(cè),大半年時(shí)間沒(méi)有出來(lái)任何結(jié)果,被領(lǐng)導(dǎo)大罵了一頓,知道為什么嗎?
不可否認(rèn),深度學(xué)習(xí)有它的應(yīng)用場(chǎng)景,但是,這只是視覺(jué)檢測(cè)中的一部分,還有很多方面的檢測(cè)深度學(xué)習(xí)是沒(méi)法實(shí)現(xiàn)的。而且,現(xiàn)在的視覺(jué)檢測(cè)其實(shí)也只能完成很多簡(jiǎn)單場(chǎng)景的應(yīng)用,很多復(fù)雜場(chǎng)景不管采用什么算法,現(xiàn)在根本沒(méi)法檢測(cè),視覺(jué)圖像處理算法還有很長(zhǎng)的路要走。
就算直接用深度學(xué)習(xí)訓(xùn)練圖像,很多時(shí)候也不是直接拿原圖進(jìn)行訓(xùn)練,而需要對(duì)原圖進(jìn)行一些處理,比如濾波、增強(qiáng)、閾值分割、邊緣檢測(cè)、形態(tài)學(xué)運(yùn)算。而還有些時(shí)候,是對(duì)圖像做一些處理之后,直接提取圖像特征在進(jìn)行深度學(xué)習(xí)訓(xùn)練,很多做視覺(jué)的人都明白這個(gè)道理。
以前也說(shuō)過(guò),如果只是想寫(xiě)點(diǎn)論文,往一個(gè)方向深入研究就可以了,深入進(jìn)行理論研究也是有前途的,但是對(duì)個(gè)人的理論能力要求有點(diǎn)高。如果沒(méi)有接觸過(guò)多少實(shí)際視覺(jué)應(yīng)用,最好不要提什么圖像處理已經(jīng)爛大街了,別的圖像處理算法已經(jīng)沒(méi)人用了,深度學(xué)習(xí)已經(jīng)代替別的圖像處理算法了。
所以,傳統(tǒng)的圖像處理算法是否還有用?我想這個(gè)問(wèn)題的答案已經(jīng)很清楚了。如果還有不明白的,請(qǐng)仔細(xì)思考下,自己到底接觸了多少視覺(jué)方面的項(xiàng)目,還有哪些是自己不知道的,自己是否真的明白視覺(jué)檢測(cè)可以做哪些事情,應(yīng)該怎么去做?很少有哪個(gè)視覺(jué)檢測(cè)是借助于某個(gè)單一的圖像處理算法就實(shí)現(xiàn)的。所以,對(duì)于應(yīng)用層面而言,需要熟練掌握各種圖像處理算法的使用,需要熟練掌握各種算法的組合應(yīng)用,才能做到在視覺(jué)行業(yè)游刃有余。很快就到暑假了,暑假是非常好的學(xué)習(xí)時(shí)間,利用這個(gè)假期,利用這個(gè)學(xué)習(xí)平臺(tái),快速掌握?qǐng)D像處理相關(guān)算法的應(yīng)用吧。