Labview OCR数字识别
::: keywords
labview,OCR,灰度,對比度,數字識別
:::
下載文件
前言
OCR (Optical Character
Recognition,光學字符識別)是指電子設備(例如掃描儀或數碼相機)檢查紙上打印的字符,通過檢測暗、亮的模式確定其形狀,然后用字符識別方法將形狀翻譯成計算機文字的過程。
本文基于labview設計了一個學號識別系統,可以識別學生卡上學號并保存在文件中,同時也可以識別身份證號、名片電話等。
該系統包含圖像獲取、圖像處理、數據輸出,是一個綜合性的設計,作為學習labview的階段性練習。
運行環境
本系統運行在labview2020或2018環境,需要安裝labview的視覺組件。
LabVIEW軟件
Vision Development
Module(視覺開發模塊)
NI Vision Acquisition
Software(視覺采集軟件)
安裝過程
設計原理
圖像格式
彩色圖像:由RGB三原色數值排列表示一個像素,有RGB888(24位)和RGB565(16位)等格式。其中,24位全彩色圖像中的每個像素占據3個byte的空間,分別表示RGB3個通道,總共可以顯示2563256^32563種顏色
灰度圖:由灰度信息表示一個像素(8位,0-255:0表示最暗色,255表示最亮色),每個像素存放在一個byte空間
二值圖像:由二值信息表示一個像素,每個下昂蘇存放在一個bit空間
OCR數字識別
OCR(光學字符識別)是指機器自動從圖像中識別文本字符的過程,是目標分類和識別的一種應用,包括訓練與分類過程,可用于對被測件的識別和分類。
OCR訓練過程主要從圖像中提取用于字符識別的特征向量,并對各字符圖像賦予準確的字符值。具有相同字符值的字符樣本圖像構成一個字符類,該類可以用其中一個最能代表該類字符的樣本圖像來代表,稱為參考字符。字符訓練完成后,就可得到一個用于對字符進行識別的字符集。
OCR對圖像中的文本進行讀取時,會先將圖像中的各個字符圖像分割開來,并將字符的特征向量與字符集中保存的特征向量進行對比,選取滿足條件的最佳匹配向量所對應的字符值作為讀取識別結果。若有必要,也可以通過字符驗證過程對OCR的識別質量進行驗證。
常見的OCR識別應用包括:藥品包裝標簽識別、IC芯片編碼讀取、沖壓零件上的字符識別、汽車零件編碼讀取以及車牌識別等。
利用Labview的Vision模塊的OCR組件可以實現從訓練到識別的過程。
圖像處理
機器視覺系統開發過程中常見的特征包括像素灰度、邊緣、輪廓和形狀、紋理、角點、色彩以及各種與圖像顆粒相關的屬性等。
本文進行OCR識別的對象為學生卡或其他證件,一般有明顯的數字特征,字體之間有明確間隔,字體背景為淺顏色,故獲取彩色圖像后,需要對其灰度化、增強亮度和對比度處理。這些函數都可以在labview的vision組件中找到
文件存儲
利用labview的文件I/O組件可以實現將字符串換行寫入txt文件中,實現OCR識別結果的存儲。
程序設計
程序流程
程序步驟
相機獲取
利用IMAQdx Open Camera
VI開啟攝像頭,查詢相機功能,加載相機配置文件,輸入攝像頭名稱(cam0為筆記本自帶攝像頭),輸出相機引用。
利用IMAQ Create VI為圖像創建臨時內存位置。
攝像頭引用節點輸入IMAQdx Configure Grab
VI,配置并從緩沖區抓取圖像。
創建while循環,將圖像和引用輸入IMAQdx Grab2
VI,輸出最新的幀獲取到Image Out,并通過Image顯示。
圖像處理
·
將攝像頭實時獲取的彩色圖像輸入IMAQ ExtractSingleColorPlane
VI,輸出單通道灰度圖。
將單通道灰度圖輸入IMAQ BCGLookup VI
,創建亮度、對比度和gamma矯正輸入,調節典型值(80,80,1),獲得圖像增強后的輸出。
當環節內有error輸出或按下暫停鍵,停止圖像更新,并將最新一幀增強圖像輸出。
OCR訓練
OCR的字符集可由Nl OCR訓練器應用程序離線訓練得到。
打開軟件Vision Assistant 2021 (32-bit)
利用手機、相機拍攝多張彩色、灰色、增強圖像,用OCR訓練器打開
創建訓練集,對圖片手動添加數據集并標定
保存為文件studentnumber.abc,驗證模型效果
OCR識別
利用IMAQ OCR Create Session VI ,創建OCR會話,返回句柄。
利用IMAQ OCR Read Character Set File
VI讀取字符集studentnumber.abc,添加到讀取過程使用的訓練字符集。
Labview的Image可以創建ROI屬性節點,框選區域,輸出矩形對角坐標。創建鼠標釋放事件,當框選結束時,執行對框選區域的OCR識別。
利用IMAQ Clear Overlay VI,清除圖像覆蓋,保證識別幀為最新一幀。
利用IMAQ OCR Read Text 3
VI,利用訓練字符集讀取ROI框選圖像中的文本,將每個對象與字符集的每個字符比較,選擇與對象最匹配的字符,輸出為字符串。
文件保存
讀取當前路徑和文件名,利用**創建路徑(函數)**生成路徑。
利用打開/創建/替換文件 (函數) ,打開路徑對應的Save.txt文件。
利用設置文件位置 (函數) ,設置寫入位置為文件末尾。
利用連接字符串 (函數) ,在輸出的字符串前添加回車符。
利用寫入文本文件 (函數) ,將識別結果寫入txt文件。
至此,OCR數字識別程序已完成
實驗結果
經測試,對學生卡等白背景數字識別準確率較高,而對銀行卡等帶顏色背景數字識別有誤差。
對于長串數字,若光照和顏色均勻,有較為準確的識別結果。
數據集的完整性對識別結果有明顯影響,采集數據時未能找到學號帶有數字6的學生卡,故數據集中數字6只有一個,在對銀行卡號中的數字6,有高概率誤認為數字8.
下載
關注公眾號小電動車,回復數字識別獲取Labview工程文件
總結
以上是生活随笔為你收集整理的Labview OCR数字识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬虫之利用pyquery爬取
- 下一篇: 台达DVP50MC11T与威纶触摸屏Mo