Java基於opencv實現圖像數字識別(二)—基本流程


Java基於opencv實現圖像數字識別(二)—基本流程

做一個項目之前呢,我們應該有一個總體把握,或者是進度條;來一步步的督促着我們來完成這個項目,在我們正式開始前呢,我們先討論下流程。

我做的主要是表格中數字的識別,但這個不是重點。重點是通過這個我們可以舉一反三,來實現我們自己的業務。

圖像的識別主要分為兩步:圖片預處理和圖像識別;這兩步都很重要

圖像預處理:
1、 圖像灰度化;二值化
2、 圖像降噪,去除干擾線
3、 圖像腐蝕、膨脹處理
4、 字符分割
5、 字符歸一化

圖像識別:
1、 特征值提取
2、 訓練
3、 測試

灰度化:

在RGB模型中,如果R=G=B時,則彩色表示灰度顏色,其中R=G=B的值叫灰度值;因此,灰度圖像每個像素點只需一個字節存放灰度值(又稱強度值、亮度值),灰度范圍為0-255。一般常用的是加權平均法來求像素點的灰度值

常見的加權方法如下:
1:)Gray = B ; Gray = G ; Gray = R
2:)Gray = max({B , G , R})
3:)Gray = (B + G + R) / 3
4:)Gray = 0.072169 * B + 0.715160 * G + 0.212671 * R
5:)Gray = 0.11 * B + 0.59 * G + 0.3 * R

這幾種方法中,第一為分量法,即用RGB三個分量的某一個分量作為該點的灰度值;第二種方法為最大值法,將彩色圖像中的三個分量亮度的最大值作為灰度圖的灰度值;第三種方法是將彩色圖像中的三分量求平均得到一個灰度圖;后兩種都屬於加權平均法,其中第四種是opencv開發庫所采用的一種求灰度值算法;第五種為從人體生理學角度所提出的一種求灰度值算法(人眼對綠色的敏感最高,對藍色敏感最低)

二值化:

圖像的二值化,就是將圖像上的像素點的灰度值設置位0或255這兩個極點,也就是將整個圖像呈現出明顯的只有黑和白的視覺效果

圖像降噪:

就是處理掉一些干擾因素;

主要的降噪算法

濾波類:通過設計濾波器對圖像進行處理。特點是速度往往比較快,很多卷積濾波可以借助快速傅里葉變化來加速

稀疏表達類:自然圖片之所以看起來不同於隨機噪音/人造結構,是因為大家發現他們總會在某一個橫型下存在稀疏表達。而我們想排除的噪音往往無法被稀疏化。基於這個判別式模型,用稀疏性來約束自然圖像,在很多逆問題里取得了拔群的效果

外部先驗:如果從有噪音的圖片本身無法找到規律,我們也可以借助其他類似但又沒有噪音的圖片,來總結圖片具有的固有屬性。這一類方法利用的外部圖片來創造先驗條件,然后用於約束需要預測的圖片。最有代表性就是混合高斯模型

聚類低秩:除了可稀疏性,低秩性也是自然圖片常見的一個特性。數學上,可稀疏表達的數據可以被認為是在Union of low-dimensional subspaces;而低秩數據則是直接存在於一個Low-dimensional subspace。這個更嚴格的限制往往也可以取得很好的降噪效果。

深度學習(Deep Learning):這類可以歸於外部先驗的子類,如果說解決逆問題的關鍵,是尋找一個好的圖像約束器,那么我們為什么不用一個最好的約束器?深度學習方法的精髓,就在於通過大量的數據,學習得到一個高復雜度(多層網絡結構)的圖片約束器,從而將學習外部先驗條件這一途徑推到極限。近期的很多這類工作,都是沿着這一思路,取得了非常逆天的效果。

字符分割:就是把圖片有用的部分一個個分割下來;字符分割有很多方法,但並不是每一種方法都是萬能的,我們需要根據自己的業務來調整;常見的就是投影法和連通域法

投影法:就是分析每一維上黑色像素點的個數(假設是二值化的圖像),然后設置一個闕值,根據這個闕值來分割圖片

圖像腐蝕、膨脹處理

腐蝕:圖像的一部分區域與指定的核進行卷積,求核的最小值並賦值給指定區域。 腐蝕可以理解為圖像中高亮區域的領域縮小。

膨脹:圖像的一部分區域與指定的核進行卷積,求核的最大值並賦值給指定區域。 膨脹可以理解為圖像中高亮區域的領域擴大。

字符的歸一化:

就是將分割好的圖像內的字符歸一化到一個標准模板大小;歸一化的理想結果就是:歸一化到標准模板大小;傾斜校正;筆畫寬度歸一化;字形歸一化。

注:
本文章參考了很多博客,感謝;主要是跟着一個博客來實現的https://blog.csdn.net/ysc6688/article/category/2913009(也是基於opencv來做的,只不過他是用c++實現的)感謝


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM