最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【Halcon學(xué)習(xí)筆記】09.字符檢測

2022-07-14 15:37 作者:Ryou2  | 我要投稿

1.概述

? ? ? ? 光學(xué)字符識別(OCR)是在圖像中識別字符的過程。它包含兩個任務(wù):將圖像中單個字符分割出來以及將分割得到的字符進行分類,即分割得到一個區(qū)域后分配一個符號標記。

????????字符分割涉及圖像預(yù)處理、圖像分割、形態(tài)學(xué)運算、區(qū)域特征等知識(本節(jié)不重點闡述)。字符分類具體含義是將一個目標字符根據(jù)某種特征劃到某個類別中去,即為分類器。Halcon提供了不同的分類器,其中比較重要的分類器有:基于神經(jīng)網(wǎng)絡(luò)的MLP分類器、基于支持向量機的SVM分類器、基于高斯混合模型的GMM分類器、基于k臨近的k-NN分類器。其中MLP分類器在字符識別中較為常用。


2.相關(guān)算子

2.1 創(chuàng)建、添加(將字符添加到.trf訓(xùn)練文件中)

????????append_ocr_trainf()? ??

????????Character:字符Region

????????Image:字符Image

????????Class:字符文本

????????TrainingFile:OCR訓(xùn)練的.trf文件路徑(路徑文件不存在時自動創(chuàng)建)

2.2 查詢(查詢.trf訓(xùn)練文件中存儲有哪些字符,以及每個字符在訓(xùn)練器中的數(shù)量)

????????read_ocr_trainf_names()? ?

????????TrainingFile:OCR訓(xùn)練的.trf文件路徑

????????CharacterNames:所讀取的字符文本

????????CharacterCoun:字符文本的數(shù)量

2.3 創(chuàng)建(創(chuàng)建mlp類型的OCR分類器)

????????create_ocr_class_mlp()? ?

????????WidthCharacter:字符寬度

????????HeightCharacter:字符高度

????????Interpolation:字符縮放樣式

????????Features:用于分類的特征

????????Characters:要讀取的字符集的所有字符

????????NumHidden:對MLP隱藏單元數(shù)

????????Preprocessing:用于轉(zhuǎn)換特征向量的預(yù)處理類型

????????NumComponents:變換特征的個數(shù)

????????RandSeed:隨機數(shù)生成器的種子值

????????OCRHandle:OCR分類器句柄

2.4 訓(xùn)練(用訓(xùn)練樣本訓(xùn)練OCR分類器)

????????trainf_ocr_class_mlp()? ??

????????OCRHandle:OCR分類器句柄

????????TrainingFile:OCR訓(xùn)練的.trf文件路徑

????????MaxIterations:優(yōu)化算法的最大迭代次數(shù)

????????WeightTolerance:優(yōu)化算法兩次迭代中MLP權(quán)重差的閾值

????????ErrorTolerance:優(yōu)化算法兩次迭代訓(xùn)練數(shù)據(jù)上MLP平均誤差的閾值

????????Error:訓(xùn)練數(shù)據(jù)中MLP的平均誤差

????????ErrorLog:訓(xùn)練數(shù)據(jù)上的MLP的平均誤差作為優(yōu)化算法迭代次數(shù)的函數(shù)

2.5 保存(保存OCR的.omc分類器到本地)

????????write_ocr_class_mlp()? ??

????????OCRHandle:OCR分類器句柄

????????FileName:OCR分類器.omc文件路徑

2.6 讀?。◤谋镜芈窂街凶x取OCR的.omc分類器)

????????read_ocr_class_mlp? ? ? ?

????????FileName:OCR分類器.omc文件路徑

????????OCRHandle:OCR分類器句柄

2.7 識別(識別出最符合的字符)

????????do_ocr_multi_class_mlp? ?

????????Character:需要識別的字符Region

????????Image:需要識別的字符Image

????????OCRHandle:OCR分類器句柄

????????Class:識別出的字符文本

????????Confidence:識別的自信度

2.8 釋放(釋放OCR分類器)

????????clear_ocr_class_mlp()? ? ??

????????OCRHandle:OCR分類器句柄


3.字符檢測在Halcon中的應(yīng)用步驟

????????OCR檢測一般分為離線訓(xùn)練和在線檢測兩部分。

3.1 離線訓(xùn)練實現(xiàn)步驟

1)讀取樣本圖像,分割單個字符區(qū)域

????????read_image (Image, path+'/Traning.bmp')?

????????threshold (Image, Region1, 0, 10)

????????connection (Region1, ConnectedRegions)

????????select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 99999)

????????sort_region (SelectedRegions, SortedRegions, 'first_point', 'true', 'column')

????????count_obj (SortedRegions, Number)

????????if (Number#10)

????????????disp_message (WindowHandle, '分割錯誤', 'window', 0, 0, 'red', 'false')

????????????stop ()

????????endif

? ? ? ? select_obj (SortedRegions, ObjectSelected1, 1)

2)將分割出的區(qū)域添加到訓(xùn)練文件中

????????smallest_rectangle1 (ObjectSelected1, Row11, Column11, Row21, Column21)

????????charWidth:=Row21-Row11

????????charHeight:=Column21-Column11

????????charList:=[ '0','1','2','3','4','5','6','7','8','9']

? ? ????for Number := 1 to Number by 1

????????????select_obj (SortedRegions, ObjectSelected, Number)

? ? ????????append_ocr_trainf (ObjectSelected, Image, charList[Number-1], path+'/Model0-9.trf')

????????endfor?

3)獲取字符列表,創(chuàng)建、訓(xùn)練、保存OCR分類器

????????read_ocr_trainf_names (path+'/Model0-9.trf', CharacterNames, CharacterCount)

????????create_ocr_class_mlp (charWidth, charHeight, 'constant', 'default', CharacterNames, 80, 'none', 10, 42, OCRHandle)

????????trainf_ocr_class_mlp (OCRHandle, path+'/Model0-9.trf', 200, 1, 0.01, Error, ErrorLog)

????????write_ocr_class_mlp (OCRHandle, path+'/Model0-9.omc')

????????dev_display (Image)

????????disp_message (WindowHandle, '訓(xùn)練完成', 'window', 0, 0, 'green', 'false')

3.2 在線檢測實現(xiàn)步驟

1)讀取檢測圖像

2)提取圖像中單個字符區(qū)域

3)讀取OCR分類器

4)使用OCR分類器對區(qū)域字符進行分類

5)釋放分類器

read_ocr_class_mlp (path+'/Model0-9.omc', OCRHandle)

list_files (path, ['files','follow_links'], ImageFiles)

tuple_regexp_select (ImageFiles, ['\\.(bmp|jpg|jpeg)$','ignore_case'], ImageFiles)

for Index := 0 to |ImageFiles| - 1 by 1

????read_image (Image, ImageFiles[Index])?

????threshold (Image, Region1, 0, 1)

????connection (Region1, ConnectedRegions)

????select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 1000, 99999)

????sort_region (SelectedRegions, SortedRegions, 'first_point', 'true', 'column')

????count_obj (SortedRegions, Number)

????do_ocr_multi_class_mlp (SortedRegions, Image, OCRHandle, Class, Confidence)

????dev_display (Image)

????for Number := 1 to Number by 1

????????disp_message (WindowHandle, Class[Number-1], 'image', 100, 30+((Number-1)*59), 'green', 'false')

????endfor? ? ? ? ??

endfor

endif

clear_ocr_class_mlp (OCRHandle)

4.補充

4.1 注意事項

1)關(guān)于分類器文件。Halcon內(nèi)置了許多針對數(shù)字、字母的.omc分類器,識別目標為標準、非中文字符,是可以直接調(diào)用這些分類器文件(路徑:.\MVTec\HALCON-12.0\ocr);如果識別目標不屬于這些情況,需要自己訓(xùn)練。

2)關(guān)于訓(xùn)練分類器。Halcon的OCR助手可以快速便捷訓(xùn)練分類器。其步驟為:加載圖片>>框選識別目標>>輸入目標文本>>應(yīng)用快速設(shè)置>>創(chuàng)建新的訓(xùn)練文件>>加入訓(xùn)練數(shù)據(jù)>>開始訓(xùn)練。

3)關(guān)于訓(xùn)練分類器。訓(xùn)練時,盡量把字符本身轉(zhuǎn)正;盡量用多一點的數(shù)據(jù)去訓(xùn)練。

4)關(guān)于字符分割。離線訓(xùn)練和在線檢測的程序中,圖像預(yù)處理和閾值分割方式要盡量保持一致,這樣才能得到最好的識別效果。



by Ryou2-


【Halcon學(xué)習(xí)筆記】09.字符檢測的評論 (共 條)

分享到微博請遵守國家法律
莱州市| 军事| 普洱| 桐柏县| 和龙市| 永新县| 平山县| 宁都县| 青海省| 城步| 健康| 拉萨市| 巨鹿县| 安泽县| 宝鸡市| 安国市| 铜山县| 马边| 北安市| 连江县| 理塘县| 青田县| 休宁县| 阿巴嘎旗| 江达县| 拜城县| 称多县| 循化| 当涂县| 松原市| 黔西县| 准格尔旗| 小金县| 神池县| 文昌市| 确山县| 海林市| 兴隆县| 长丰县| 太保市| 濮阳县|