OCR - 光學字元辨識

OCR英文全稱是Optical Character Recognition,中文叫做光學字元識別。它是利用光學技術和計算機技術把印在或寫在紙上的文字讀取出來,並轉換成一種計算機能夠接受、人又可以理解的格式。

找個測試範例 - 中華郵政3+2驗證碼圖片

分析圖片

首先看到這圖片除了數字之外有很多斜的灰色干擾線,然後驗證碼都是以數字為主,且每個數字各自不同顏色 除了干擾線背景是有顏色且無邊匡。 理出幾個結論:

  • 驗證碼皆為數字且不同顏色。

  • 背景有顏色無邊匡

  • 主要為灰色干擾線

解析圖片策略架構(Policy)

主要為處理圖片噪點策略,設計圖片RGB輸出Console Log,以利後續判斷噪點處置方式,將圖片上每個店都以座標形式呈現並且存入Map方便取用檢視。

RGB輸出Console Log

判斷噪點參考範圍(shape)

根據每個點產生不一樣大小的判斷範圍

去噪流程架構(Clean)

主要流程架構
	獲取圖片、判斷OCR辨識結果是否預期(contain code)
副流程架構
	初始化圖片(取得圖片參數[長、寬]、GIF圖檔等等)
	圖片進行去噪(設計需要使用哪些過濾器Queue)
設計要使用哪個圖片策略

設計Web架構

為了方便測試先設計一個API接收圖片進行測試

實際去噪測試

先將圖片增加亮度,根據增加亮度的結果超過一定數值直接判斷成噪點並且變成白色。

再根據圖上孤立的噪點進行判斷並去除

完成兩項已經可以發現噪點已經都不見了,可以再將圖片進行二階化

再將最終圖片進行OCR判斷,當你能將塗上噪點去除完整,辨識結果就會提高。

另外測試玉山菁英甄選系統登入驗證碼

Last updated