深度學習在很多學術領域,比非深度學習算法往往有20-30%成績的提高。很多大公司也逐漸開始出手投資這種算法,并成立自己的深度學習團隊,其中投入最大的就是谷歌,2008年6月披露了谷歌腦項目。2014年1月谷歌收購DeepMind,然后2016年3月其開發的Alphago算法在圍棋挑戰賽中,戰勝了韓國九段棋手李世石,證明深度學習設計出的算法可以戰勝這個世界上最強的選手。
在硬件方面,Nvidia最開始做顯示芯片,但從2006及2007年開始主推用GPU芯片進行通用計算,它特別適合深度學習中大量簡單重復的計算量。目前很多人選擇Nvidia的CUDA工具包進行深度學習軟件的開發。
微軟從2012年開始,利用深度學習進行機器翻譯和中文語音合成工作,其人工智能小娜背后就是一套自然語言處理和語音識別的數據算法。
百度在2013年宣布成立百度研究院,其中最重要的就是百度深度學習研究所,當時招募了著名科學家余凱博士。不過后來余凱離開百度,創立了另一家從事深度學習算法開發的公司地平線。
Facebook和Twitter也都各自進行了深度學習研究,其中前者攜手紐約大學教授Yann Lecun,建立了自己的深度學習算法實驗室;2015年10月,Facebook宣布開源其深度學習算法框架,即Torch框架。Twitter在2014年7月收購了Madbits,為用戶提供高精度的圖像檢索服務。
前深度學習時代:計算機視覺
互聯網巨頭看重深度學習當然不是為了學術,主要是它能帶來巨大的市場。那為什么在深度學習出來之前,傳統算法為什么沒有達到深度學習的精度?
在深度學習算法出來之前,對于視覺算法來說,大致可以分為以下5個步驟:特征感知,圖像預處理,特征提取,特征篩選,推理預測與識別。早期的機器學習中,占優勢的統計機器學習群體中,對特征是不大關心的。
我認為,計算機視覺可以說是機器學習在視覺領域的應用,所以計算機視覺在采用這些機器學習方法的時候,不得不自己設計前面4個部分。
但對任何人來說這都是一個比較難的任務。傳統的計算機識別方法把特征提取和分類器設計分開來做,然后在應用時再合在一起,比如如果輸入是一個摩托車圖像的話,首先要有一個特征表達或者特征提取的過程,然后把表達出來的特征放到學習算法中進行分類的學習。
過去20年中出現了不少優秀的特征算子,比如最著名的SIFT算子,即所謂的對尺度旋轉保持不變的算子。它被廣泛地應用在圖像比對,特別是所謂的structure from motion這些應用中,有一些成功的應用例子。另一個是HoG算子,它可以提取物體,比較魯棒的物體邊緣,在物體檢測中扮演著重要的角色。
這些算子還包括Textons,Spin image,RIFT和GLOH,都是在深度學習誕生之前或者深度學習真正的流行起來之前,占領視覺算法的主流。
幾個(半)成功例子
這些特征和一些特定的分類器組合取得了一些成功或半成功的例子,基本達到了商業化的要求但還沒有完全商業化。
一是八九十年代的指紋識別算法,它已經非常成熟,一般是在指紋的圖案上面去尋找一些關鍵點,尋找具有特殊幾何特征的點,然后把兩個指紋的關鍵點進行比對,判斷是否匹配。
然后是2001年基于Haar的人臉檢測算法,在當時的硬件條件下已經能夠達到實時人臉檢測,我們現在所有手機相機里的人臉檢測,都是基于它或者它的變種。
第三個是基于HoG特征的物體檢測,它和所對應的SVM分類器組合起來的就是著名的DPM算法。DPM算法在物體檢測上超過了所有的算法,取得了比較不錯的成績。
但這種成功例子太少了,因為手工設計特征需要大量的經驗,需要你對這個領域和數據特別了解,然后設計出來特征還需要大量的調試工作。說白了就是需要一點運氣。
另一個難點在于,你不只需要手工設計特征,還要在此基礎上有一個比較合適的分類器算法。同時設計特征然后選擇一個分類器,這兩者合并達到最優的效果,幾乎是不可能完成的任務。
仿生學角度看深度學習
如果不手動設計特征,不挑選分類器,有沒有別的方案呢?能不能同時學習特征和分類器?即輸入某一個模型的時候,輸入只是圖片,輸出就是它自己的標簽。比如輸入一個明星的頭像,出來的標簽就是一個50維的向量(如果要在50個人里識別的話),其中對應明星的向量是1,其他的位置是0。
這種設定符合人類腦科學的研究成果。
1981年諾貝爾醫學生理學獎頒發給了David Hubel,一位神經生物學家。他的主要研究成果是發現了視覺系統信息處理機制,證明大腦的可視皮層是分級的。他的貢獻主要有兩個,一是他認為人的視覺功能一個是抽象,一個是迭代。抽象就是把非常具體的形象的元素,即原始的光線像素等信息,抽象出來形成有意義的概念。這些有意義的概念又會往上迭代,變成更加抽象,人可以感知到的抽象概念。
像素是沒有抽象意義的,但人腦可以把這些像素連接成邊緣,邊緣相對像素來說就變成了比較抽象的概念;邊緣進而形成球形,球形然后到氣球,又是一個抽象的過程,大腦最終就知道看到的是一個氣球。
模擬人腦識別人臉,也是抽象迭代的過程,從最開始的像素到第二層的邊緣,再到人臉的部分,然后到整張人臉,是一個抽象迭代的過程。
再比如看到圖片中的摩托車,我們可能在腦子里就幾微秒的時間,但是經過了大量的神經元抽象迭代。對計算機來說最開始看到的根本也不是摩托車,而是RGB圖像三個通道上不同的數字。
所謂的特征或者視覺特征,就是把這些數值給綜合起來用統計或非統計的形式,把摩托車的部件或者整輛摩托車表現出來。深度學習的流行之前,大部分的設計圖像特征就是基于此,即把一個區域內的像素級別的信息綜合表現出來,利于后面的分類學習。
如果要完全模擬人腦,我們也要模擬抽象和遞歸迭代的過程,把信息從最細瑣的像素級別,抽象到“種類”的概念,讓人能夠接受。
深度學習工業應用:缺陷檢測
1. 應用背景
隨著機器視覺,工業自動化的快速發展,工業4.0的概念已經被提上日程。傳統很多需要人工來手動操作的工作,漸漸的被機器所替代。這當然也是人類科技進步和發展的必然趨勢,工業的進步到頭來還是服務于人類,給人類帶來高質量的生活體驗,而不是整天做著乏味無趣的工作。
這里我要討論的話題是關于缺陷檢測機器自動化方面,先說下現狀吧,在富士康,伯恩光學,藍思,信利等國內幾大知名半導體制造廠商的朋友肯定看到過下面的畫面。
近幾年隨著智能手機,平板,各種觸摸設備的火速發展,促進了玻璃半導體行業的巨大需求。不乏看看周邊的朋友,平均每個人都至少有2部移動設備吧,一部手機,一部平板。但是使用者有沒有思考過這些電子產品的構成。我們就拿屏幕和內部芯片來舉個例子。
每一臺智能觸摸設備都會佩戴一塊屏幕,其中就有蓋板玻璃。蓋板玻璃在安裝在觸摸設備之前,在車間中經過了好幾道檢測工序, 其中很關鍵的一道工序就需要無數QC質檢的火眼金睛幫我們剔除掉有缺陷的玻璃, 最終來到我們用戶手中的玻璃是沒有缺陷,或者說基本沒有缺陷的。當我們看到車間的情景,是否想用如今的高科技來解救一下他們繁瑣無趣的工作。
2. 傳統視覺檢測
在機器學習,深度學習還沒有發展的這么火熱之前, 國外幾款做的幾款非常好的視覺軟件業內人士應該都很清楚。比如:NIVISION,Halcon, Visionpro, Cognix, MIL等等都是業內用的比較多,而且比較成功的視覺軟件。其中很多模塊都有定位,測量,檢測等功能。
但是這些傳統的方法來做缺陷檢測大多都是靠人來特征工程,從形狀,顏色, 長度,寬度,長寬比來確定被檢測的目標是否符合標準,最終定義出一系列的規則來進行缺陷檢測。這樣的方法當然在一些簡單的case中已經應用的很好, 唯一的缺點是隨著被檢測物體的變動,所有的規則和算法都要重新設計和開發,即使是同樣的產品,不同批次的變化都會造成不能重用的現實。
總結:傳統機器視覺算法通常處理容易提取,容易量化的特征:顏色、面積、圓度、角度、長度等。
3. 深度學習檢測
隨著機器學習, 深度學習的發展,很多人眼很難去直接量化的特征, 深度學習可以搞定, 這就是深度學習帶給我們的優點和前所未有的吸引力。很多特征我們通過傳統算法無法量化,或者說很難去做到的, 深度學習可以搞定。特別是在圖像分類, 目標檢測這些問題上取得了顯著的提升。下圖是近幾年來深度學習在圖像分類問題上取得的成績。
下圖是近幾年來深度學習算法在目標檢測問題上的發展。
之所以提出上面的算法, 是因為這些算法給其他領域提供了很多參考和借鑒意義。比如本文討論的缺陷檢測, 上面的很多網絡的特點,以及方法都給了我們很多的啟發,我們在設計網絡結構的時候,配合自己在產線部署的硬件性能,設計適合項目的網絡結構。
當然,深度學習的方法用來檢測,也有自己的很多缺點。例如:數據量要求大,工業數據收集成本高。但是隨著數據增強技術,無監督學習的不斷進步,在某些應用場景上,這些缺點漸漸被隱藏了。例如學術界正在研究的,自動網絡結構設計,自動數據標注等等。所以作者認為隨著技術的發展,這個領域將會得到很大的提升,人工檢測終將會被機器檢測替代。然后你看到的無人工廠更加會無人化。
深度學習在缺陷檢測中的意義
隨著自動化技術的快速發展,在工業生產中很多需要人工操作的環節逐漸轉由機器完成,工業生產自動化也將越來越多的工人們從枯燥乏味的工作中解放出來,讓他們去發揮更大的價值。
產品表面缺陷檢測是工業生產中的重要環節,是產品質量把控的關鍵步驟,借助缺陷檢測技術可以有效的提高生產質量和效率。但是由于設備及工藝等因素的影響,產品表面的缺陷類型往往五花八門,比如織物生產中方出現的污點、破損,金屬產品上的劃痕、裂紋、凹凸不平等各種不同類型的缺陷,如下圖所示:
單張圖片中的缺陷多樣且不同缺陷表現形式的也不相同,給缺陷的自動化檢測帶來了困難。
下面,我們再講一下傳統算法。
傳統的表面缺陷檢測算法結構通過圖像預處理得到便于檢測的圖像,隨后借助統計機器學習方法來提取圖像特征,進而實現缺陷檢測的目標。
圖像預處理通常包括直方圖均衡化、濾波去噪、灰度二值化、再次濾波幾部分,以得到前后景分離的簡單化圖像信息;隨后利用數學形態學、傅里葉變換、Gabor 變換等算法以及機器學習模型完成缺陷的標記與檢測。
上述傳統算法在某些特定的應用中已經取得了較好的效果,但仍然存在許多不足。例如:圖像預處理步驟繁多且具有強烈的針對性,魯棒性差;多種算法計算量驚人且無法精確的檢測缺陷的大小和形狀。而深度學習可以直接通過學習數據更新參數,避免了人工設計復雜的算法流程,并且有著極高的魯棒性和精度。
基于深度學習檢測的案例及實現
目前,基于深度學習的缺陷檢測已經應用于金屬固件、布匹絲織物、建筑裂紋、鋼筋裂紋等多個領域,并取得了不錯的成果。下面將結合具體案例介紹其實現方法。
1. 裂紋缺陷檢測
建筑材料(如磁瓦等)的外觀變化(如裂紋或腐蝕等)與其建筑結構的安全性密不可分,而依靠檢察員視覺檢查的效果局限性大,相比之下,基于計算機視覺的結構損傷檢測更為可靠便捷。
Fast RCNN的作用為對圖像中的缺陷位置進行定位和分類,其結構流程如上圖所示。
從輸入圖像中提取特征圖并獲得感興趣區域(ROI);在ROI池中,預先計算的興趣區域覆蓋在特征圖上,提取固定大小的特征向量;將所得向量輸入全連接層,計算邊界框的位置并對框內對象進行分類。
2. 破損缺陷檢測
在電氣化鐵路等工業中,有許多關系著安全的重要固件,這些固件的缺陷檢測十分重要。
利用深度卷積神經網絡SSD等網絡方法構建了一個從粗到細的級聯檢測網絡,包括固件的定位、缺陷檢測與分類,其實現流程如下圖所示:
(1)緊固件提取
借助在速度和精度方面都表現良好的SSD框架,對圖像中的懸臂節點進行定位;
(2)固件缺陷檢測與分類
根據第二階段對緊固件的檢測來判斷缺陷;具有良好的魯棒性和自適應性,有利于檢測的快速進行,因此本方法在緊固件的缺陷檢測和分類中具有良好的應用前景。
3. 斑點缺陷檢測
斑點缺陷檢測在紡織、木材、瓷磚等許多行業中都很常見,通常利用其紋理的一致性實現檢測的目的。近年來,利用深度學習視覺檢測技術對相關產業的表面缺陷檢測引起了廣泛關注。
4. 劃痕缺陷檢測
劃痕缺陷檢測通常用于金屬類產品的表面缺陷檢測中,隨著生活質量的提高,人們對產品的外觀完整性與美觀程度的要求也越來越高,因此精準地檢測到產品外觀的劃痕等缺陷在生產環節十分重要。
總的來說,使用基于深度學習的算法可快速準確地實現的缺陷檢測,且適用范圍廣能夠靈活地應用于建筑、金屬固件以及布匹絲織物等眾多行業的生產過程中。
機器視覺的行業發展現狀
(1)就業人員及人才市場現狀
目前,深度學習從業人員薪資處于高位,且屬于人才緊缺的行業,就業前景廣闊。基本上掌握深度學習的視覺工程師,月起薪至少3W元起,縱觀近幾年,還有逐步上升的趨勢。
(2)國家政策扶持,刺激AI行業經濟
2017兩會“人工智能”首次被列入政府工作報告,隨之而來的是人工智能板塊領跑大盤漲勢,無疑這一切將刺激人工智能在多個領域的全面發展。
2016年,國內人工智能企業約284家獲投,獲投企業中,A輪(Pre-A、A、A+)企業占比最高,111家企業獲得融資,匯頂科技完成IPO上市,募資8.74億人民幣。
(3)技術及企業應用爆發,獲得快速發展
目前,我國人工智能企業在圖像和語音識別兩個類別企業占比相對較高,人臉識別技術水平處于領先地位,各創業公司也從一開始專注研究逐步發展至探索合適的商業模式,從“互聯網+”向“人工智能+”過渡。
人工智能爆發的兩個重要時間節點:
2011年基于深度學習的人工智能技術陸續在微軟、Facebook、百度等頂尖互聯網公司獲得廣泛應用,微軟和百度使用的FPGA,基于海量數據訓練出的深度學習系統能夠完成更快、更精準的判斷,同年蘋果公司發布語音助手Siri 。
2016年4月,谷歌(Google)首席執行官桑德爾·皮蔡(Sundar Pichai)在一封致股東信中,把機器學習譽為人工智能和計算的真正未來。
這一切,似乎印證了2011年和2016年AI崛起和爆發式增長的原因所在,行業巨頭的全面布局同時也帶動了國內AI創業型公司的快速發展。
傳統視覺及深度學習檢測,存在哪些問題?
編者大概匯總了一下,現階段的機器視覺缺陷檢測,仍然存在以下幾大行業發展問題,具體如下:
(1)受環境、光照、生產工藝和噪聲等多重因素影響,檢測系統的信噪比一般較低,微弱信號難以檢出或不能與噪聲有效區分。如何構建穩定、可靠、魯棒的檢測系統,以適應光照變化、噪聲以及其他外界不良環境的干擾,是要解決的問題之一。
(2)由于檢測對象多樣、表面缺陷種類繁多、形態多樣、復雜背景,對于眾多缺陷類型產生的機理以及其外在表現形式之間的關系尚不明確,致使對缺陷的描述不充分,缺陷的特征提取有效性不高,缺陷目標分割困難;同時,很難找到“標準”圖像作為參照,這給缺陷的檢測和分類帶來困難,造成識別率尚有待提高。
(3)機器視覺表面缺陷檢測,特別是在線檢測,其特點是數據量龐大、冗余信息多、特征空間維度高,同時考慮到真正的機器視覺面對的對象和問題的多樣性,從海量數據中提取有限缺陷信息的算法能力不足,實時性不高。
(4)與機器視覺表面檢測密切相關的人工智能理論雖然得到了很大的發展,但如何模擬人類大腦的信息處理功能去構建智能機器視覺系統還需要理論上的進一步研究,如何更好的基于生物視覺認識、指導機器視覺得檢測也是研究人員的難點之一。
(5)從機器視覺表面檢測的準確性方面來看,盡管一系列優秀的算法不斷出現,但在實際應用中準確率仍然與滿足實際應用的需求尚有一定差距,如何解決準確識別與模糊特征之間、實時性與準確性之間的矛盾仍然是目前的難點。
傳統算法在某些特定的應用中已經取得了較好的效果,但仍然存在許多不足。例如:圖像預處理步驟繁多且具有強烈的針對性,魯棒性差;多種算法計算量驚人且無法精確的檢測缺陷的大小和形狀。而深度學習可以直接通過學習數據更新參數,避免了人工設計復雜的算法流程,并且有著極高的魯棒性和精度。
國內知名企業是如何解決的?
康耐視:一家大型視覺系統供應商,2017年收購了ViDi系統公司,該公司是一家瑞士制造深度學習機器視覺軟件,該軟件市場售價15萬/套。
德國MVTec公司:Halcon視覺軟件,自2018年加入了深度學習模塊,可以使用CPU進行缺陷檢測。
美國NI公司:自2018年在視覺模塊中加入深度學習模塊,支持TensorFlow相關版本的模型調用。
而由于LabVIEW具備圖形化編程、易學、易用的特點,在自動化行業內廣受歡迎,而且其TensorFlow模型推理庫經過CPU優化編譯,能滿足工業缺陷檢測實際需求。
原文標題:一文追溯機器視覺發展史,深度學習是如何融入產品檢測的
文章出處:【微信公眾號:電子發燒友網】歡迎添加關注!文章轉載請注明出處。
-
芯片
+關注
關注
455文章
50721瀏覽量
423165 -
深度學習
+關注
關注
73文章
5500瀏覽量
121113
原文標題:一文追溯機器視覺發展史,深度學習是如何融入產品檢測的
文章出處:【微信號:elecfans,微信公眾號:電子發燒友網】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論