人工智能技術的突破往往來自于多方面技術間的融合互通。近日,百度在語音識別技術方面再獲突破,將圖像識別技術成功“跨界”到語音領域,大幅度提升語音識別產品性能,是繼端對端語音識別后取得的另一次重大技術突破。那么,圖像識別究竟是什么?
近些年比較經典的一個應用,就是谷歌和百度推出的識圖功能,相信大家都已經有所體驗;IT行業同事炒得火熱的人臉識別,也是圖像識別應用的一個典例;當然,現在的日常生活中也少不了網上購物中的識圖,只要把想買的東西拿在某寶APP拍一下,就會立即搜索出此物品的種類和價格。
不過,這些厲害的功能究竟是怎么實現的呢?未來圖像識別還會和我們生活有哪些更深的接觸,又跟大數據有什么關系?今天為你慢慢探索。
數字圖像(又稱數碼圖像或數位圖像),是二維圖像用有限數字數值像素的表示。完成數字圖像的識別需要大致經過信息獲取圖像采集->圖像預處理(如二值化、反色等處理方法)得到特征數據->訓練過程(分類器涉及和分類決策)->識別這幾個步驟。由于數字圖像和文字、數字均以像素為基本元素,加之數字圖像識別和數字識別的基本過程類似,我將以圖像識別技術中比較基礎的數字識別簡單講述識別的過程。
先介紹一下幾個后面會用到的基本概念:
1.模式識別:當前,模式識別的應用范圍十分廣泛,它的觀察對象囊括了人類感官直接或間接接受的外界信息。而運用模式識別的目的,則是利用計算機模仿人的識別能力來辨別觀察對象。模式識別方法大致可分為兩種,即結構方法和決策理論方法,其中決策理論方法又稱為統計方法。字符模式識別的方法可以大致分為統計模式識別、結構模式識別和人工神經網絡等。上述的圖像識別步驟就是模式識別的基本步驟了。
常用的模式識別方法之一是模板匹配,顧名思義,就是在輸入圖像上不斷切割出臨時圖像、并將之與模板圖像匹配,如果相似度足夠高,就認為我們尋找到了應有的目標。最常見的匹配方法包括平方差匹配法、相關匹配法、相關系數匹配法等。以下我們都將以模板匹配為例,說明模型識別的概念。
2.支持向量機(SVM):支持向量機是一種可訓練的、基于結構風險最小化原則的通用機器學習方法,簡單來說就是一種分類器。SVM方法的原理簡單說即是線性化和升維的過程。SVM是從線性可分情況下的最優分類超平面發展而來的。如下圖所示,空心點和實心點分別代表兩類樣本,H為H維分類超平面,HI和H2分別為過各類點且離分類超平面舉例最近且平行于H的超平面。最優分類超平面理論要求分類超平面在可將兩類正確分開的基礎上,使分類間隔最大化。
3.OpenCV:是一個基于BSD許可證授權發型的跨平臺計算機視覺庫。與其他函數庫相比,致力于真實世界的實時應用。同時通過優化的C代碼的編寫,為其執行速度帶來了客觀的提升。
4.LIBSVM:一個簡單、易于使用的SVM模式識別與回歸軟件包。軟件包內包含python,svmtoy等文件夾,以及SVM-predict,svm-scale,svm-train等。
首先運用OpenCV函數庫讀取原始圖像庫中的圖像數據,存儲特征值到外部.txt文檔。隨后對數據進行預處理,并形成待訓練數據;隨后對及格過預處理的數據進行參數尋優、模型訓練。在對待測試圖像進行數據特征的提取后,將特征數據放進模型中進行預測并得到識別率預測值。最后對識別率情況進行分析。
下面是實戰步驟:
1.圖像采集
手繪了0-9共十個數字,每個數字10個樣本,共100個樣本。樣本均為5*5模板。通過代碼實現獲得了手寫數字圖像的特征信息。
2.預處理
在得到特征數據后,需對特征數據進行一定的預處理以保證后續工作的正常進行。此次我們選用歸一化處理,用svm-scale實現。進行歸一化,目的是保證提取的數據處在一定范圍內,避免過大或過小的情況發生,進而為模型的訓練提供了保障。
此外,過程中還運用了參數尋優,目的是為模型的訓練提供好的參數,以得到準確率更高的模型。下圖為對數據進行參數尋優操作的截圖。
圖像識別技術是什么?從實戰告訴你答案
上圖中最后一行就是最佳參數。通常,我們會使用幾個正確的模型,提取出特征值,作為參數尋優的結果;之后進行預測工作,都要以尋找出來的最優值作為標桿,進行預測,滿足這些特征值的就會被識別成功。
3.模型訓練
模型訓練即是根據之前提取到的樣本特征數據,放到LIBSVM分類器中進行分類,分類的依據是每組特征值的標簽。SVM機器學習方法是基于統計學理論的,因此大量的數據會得到更為精準的模型文件。
實戰結果:
進行了幾組簡單的試驗。
1.使用相同的訓練集和測試樣本,分別基于模板匹配法和基于SVM的識別方法,以觀察數據維度對于識別準確率的影響。
原因分析:由于模板匹配方法使用網絡特征的提取方法,對每個區域內黑色像素個數進行統計,計算得到每個區域占得總體區域的百分比;而SVM是針對每個像素點的坐標進行統計分析的,加之高緯度可以使得坐標定位更加精準,因此SVM方法優勢較大。
結論:在相同測試樣本、相同緯度的前提下,運用SVM方法訓練得到的模型分別在16維和25維下預測,運用SVM方法得到的準確率高于模板匹配法。
2.運用SVM方法,使用相同訓練樣本和測試樣本,在不同維度下對比準確率。訓練樣本500個,測試樣本100個。
結論:對于相同樣本,使用SVM方法對模型進行預測,維度的高低對于準確率起到一定積極的影響,但準確率不會隨維度的升高而無限升高。
3.對于相同測試樣本,在相同維度下,測試訓練樣本數對于準確率的影響。
原因分析:由于SVM方法的圖像識別是基于統計學理論進行研究的,因此大量的訓練樣本有助于得到更加準確的訓練模型,對模型訓練的預測準確度起到一定積極的影響。
圖像識別和大數據有著密不可分的關系。有前輩指出,數據挖掘=大數據+機器學習;也有專家認為,模式識別=數據+機器學習。大數據是一個時代性的概念,也是社會發展的必然產物。我們通過大數據技術實現我們最終的目的——即數據挖掘。無疑,“圖像”也是一種數據,而圖像識別是將非結構化數據結構化的必要過程。
圖像識別技術日益火熱,每年都在以火箭般的速度更新著新的技術和成果,當然并不局限于圖像處理和購物方面。如今,圖像識別技術更是從搜圖識物發展到了視頻領域,不斷給我們帶來驚喜。比如新興的互動視頻技術video++,已經可以實現在視頻中捕捉待識別的人臉和同款服飾。科技是第一生產力,在21世紀,最火的技術之一當屬人工智能,然而圖像識別技術又是人工智能的核心,它是未來智能AI的“眼睛”,它的發展必然會帶動人工智能的迅速發展。未來已至,你準備好了嗎?