0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于Halcon OCR識(shí)別

新機(jī)器視覺(jué) ? 來(lái)源:新機(jī)器視覺(jué) ? 作者:新機(jī)器視覺(jué) ? 2021-05-11 09:55 ? 次閱讀

OCR(Optical Character Recognition),光學(xué)字符識(shí)別的英文縮寫(xiě)。

OCR主要步驟

圖像預(yù)處理

目標(biāo)區(qū)域分割(ROI)

字符識(shí)別

結(jié)果處理

1. 圖像預(yù)處理

對(duì)原始圖像進(jìn)行灰度化,二值化,模板匹配,降噪,增強(qiáng)等!

2.目標(biāo)區(qū)域分割(ROI)

對(duì)預(yù)處理后的圖像進(jìn)行ROI提取,分割出單個(gè)字符組成的區(qū)域

3.字符識(shí)別,即模式識(shí)別技術(shù)

訓(xùn)練OCR,利用大量的模板圖片訓(xùn)練出一個(gè)字符分類(lèi)器

使用OCR,將訓(xùn)練好的分類(lèi)器用于字符分類(lèi),類(lèi)似于手寫(xiě)數(shù)字識(shí)別!

4.結(jié)果處理

將識(shí)別完的文字按特定的次序和規(guī)則組合輸出!

上述4個(gè)步驟中,OCR的核心部分自然是第3步,即模式識(shí)別技術(shù)

模式識(shí)別技術(shù)

訓(xùn)練分類(lèi)器

第一步:將分割好的字符區(qū)域加入訓(xùn)練集,使用函數(shù)

append_ocr_trainf(Character,Image::Class,TrainingFile:)

參數(shù)解析:

Character:字符區(qū)域

Image:灰度圖像

Class:分類(lèi)標(biāo)簽

TrainingFile:訓(xùn)練集文件名,一般后綴為.trf

功能說(shuō)明:用于制作訓(xùn)練集,使用與TrainingFile文件相同的訓(xùn)練文件格式,將字符附加到現(xiàn)有文件。如果該文件不存在,則生成新文件。TrainingFile如果未指定擴(kuò)展名,則默認(rèn)添加擴(kuò)展名.trf

第二步:創(chuàng)建分類(lèi)器,使用函數(shù)

create_ocr_class_mlp(::WidthCharacter, HeightCharacter,Interpolation,F(xiàn)eatures,Characters,NumHidden,Preprocessing,NumComponents,RandSeed:OCRHandle)

參數(shù)解析:

WidthCharacter:輸入被分割的字符縮放到指定的寬度

HeightCharacter:輸入被分割的字符縮放到指定的高度

Interpolation:縮放的插值方式

Features:特征類(lèi)型,一般選’default’

Characters:分類(lèi)的特征向量

NumHidden: MLP(多層感知器-人工神經(jīng)網(wǎng)絡(luò))中隱藏層神經(jīng)元的個(gè)數(shù)

Preprocessing:矢量特征轉(zhuǎn)換的預(yù)處理類(lèi)型

NumComponents:匹配字符的數(shù)量

RandSeed:隨機(jī)種子

OCRHandle:OCR分類(lèi)器的句柄

功能說(shuō)明:創(chuàng)建一個(gè)MLP模型并初始化

第三步:訓(xùn)練、保存、清除分類(lèi)器,使用函數(shù)

trainf_ocr_class_mlp(::OCRHandle,TrainingFile,MaxIterations,WeightTolerance,ErrorTolerance:Error,ErrorLog) write_ocr_class_mlp(::OCRHandle,F(xiàn)ileName:) clear_ocr_class_mlp(:)

訓(xùn)練MLP分類(lèi)器參數(shù)解析:

OCRHandle:OCR分類(lèi)器的句柄

TrainingFile:訓(xùn)練集

MaxIterations:最大迭代次數(shù)

WeightTolerance:初始權(quán)重公差

ErrorTolerance:初始損失學(xué)習(xí)率

Error:整個(gè)訓(xùn)練集上的均差

ErrorLog:每一次訓(xùn)練的均差記錄

功能說(shuō)明:使用訓(xùn)練集訓(xùn)練模型,

保存分類(lèi)器模型參數(shù)解析:

FileName:輸出的模型文件名,不指定擴(kuò)展名,則擴(kuò)展名默認(rèn)為.omc

功能說(shuō)明:將訓(xùn)練好的模型保存為文件

清除分類(lèi)器模型功能說(shuō)明:清除模型,釋放緩存

使用分類(lèi)器

讀取、使用訓(xùn)練好的模型分類(lèi)的函數(shù)如下:

read_ocr_class_mlp(:OCRHandle) do_ocr_single_class_mlp(Character,Image::OCRHandle,Num:Class,Confidence) do_ocr_multi_class_mlp(Character,Image:Class,Confidence)

讀取模型函數(shù)參數(shù)解析:

FileName:模型文件名,如果未指定擴(kuò)展名,則默認(rèn)使用擴(kuò)展名.omc

OCRHandle:成功讀取模型后生成的模型句柄

功能說(shuō)明:從模型文件中讀出模型

模型單個(gè)字符識(shí)別參數(shù)解析:

Character:字符區(qū)域

Image:字符圖片

Num:輸出概率最大的前Num個(gè)分類(lèi)類(lèi)別

Class:輸出類(lèi)別

Confidence:輸出分類(lèi)的置信度

功能說(shuō)明:對(duì)單個(gè)區(qū)域進(jìn)行的字符識(shí)別

模型多個(gè)字符識(shí)別參數(shù)解析:

Class:輸出的分類(lèi)數(shù)組

功能說(shuō)明:輸出多個(gè)字符區(qū)域的類(lèi)別

其它函數(shù)

獲取訓(xùn)練集信息

read_ocr_trainf_names (: CharacterNames, CharacterCount)

參數(shù)解析:

TrainingFile:訓(xùn)練集

CharacterNames:輸出分類(lèi)數(shù)組

CharacterCount:訓(xùn)練集字符區(qū)域總數(shù)

完整示例代碼如下(僅作為代碼示例,無(wú)法運(yùn)行):

WindowHandle:=3600 dev_open_window (0, 0, 512, 512, ‘black’, WindowHandle) gen_empty_obj (EmptyObject) read_image (Image, ‘test1.jpg’) rgb1_to_gray (Image, GrayImage) for Index := 1 to 4 by 1 disp_message (WindowHandle, ‘手動(dòng)ROI’,‘window’, 12, 12, ‘yellow’, ‘false’) draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2) gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2) reduce_domain (GrayImage, Rectangle, ImageReduced1) threshold (ImageReduced1, Region1, 128, 255) concat_obj (EmptyObject, Region1, EmptyObject) endfor words:=[‘1’,‘2’,‘3’,‘4’] *按列位置排序 sort_region (EmptyObject, SortedRegions1, ‘character’, ‘true’, ‘column’) FontName := ‘F:DataSetNum’ TrainingFileName := FontName+‘.trf’ for Index1:=1 to 4 by 1 select_obj (SortedRegions1, ObjectSelected1, Index1) append_ocr_trainf (ObjectSelected1, Image, words[Index1-1], TrainingFileName) endfor read_ocr_trainf_names (TrainingFileName, CharacterNames, CharacterCount) create_ocr_class_mlp (8, 10, ‘constant’, ‘default’, CharacterNames, 80, ‘none’, 10, 42, OCRHandle) trainf_ocr_class_mlp (OCRHandle, TrainingFileName, 200, 1, 0.01, Error, ErrorLog) write_ocr_class_mlp (OCRHandle, FontName) *導(dǎo)入另一張做測(cè)試的圖 read_image (Image1, ‘test2.jpg’) threshold (Image1, testwordregion, 125, 255) connection (testwordregion, ConnectedwordRegions) select_shape (ConnectedwordRegions, SelectedwordRegions, ‘height’, ‘a(chǎn)nd’, 50, 250) sort_region (SelectedwordRegions, SortedRegions2, ‘upper_left’, ‘true’, ‘column’) count_obj(SortedRegions2, Number) *開(kāi)始識(shí)別 read_ocr_class_mlp (FontName, OCRHandle1) do_ocr_multi_class_mlp (SortedRegions2, Image1, OCRHandle1, Class, Confidence) *顯示結(jié)果 disp_message(WindowHandle, ‘識(shí)別結(jié)果:’, ‘image’, 30, 50, ‘white’, ‘false’) for i:=1 to Number by 1 disp_message(WindowHandle, Class[i-1], ‘image’, 30, 120+40*i, ‘yellow’, ‘false’) endfor

Halcon的OCR模型主要有多層神經(jīng)網(wǎng)絡(luò)MLP、支持向量機(jī)SVM、K最近鄰KNN、卷積神經(jīng)網(wǎng)絡(luò)CNN四種,以上關(guān)于MLP的各類(lèi)函數(shù),其它模型也有對(duì)應(yīng)的函數(shù),這里就不作詳細(xì)介紹了。在OCR領(lǐng)域,CNN和MLP應(yīng)用比較廣泛,而SVM在打印體的識(shí)別上也可以使用,KNN的計(jì)算量和模型原理并不適合用于多屬性(點(diǎn))的算法訓(xùn)練!

責(zé)任編輯:lq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 光學(xué)
    +關(guān)注

    關(guān)注

    3

    文章

    731

    瀏覽量

    35960
  • OCR
    OCR
    +關(guān)注

    關(guān)注

    0

    文章

    141

    瀏覽量

    16264
  • 識(shí)別技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    198

    瀏覽量

    19623

原文標(biāo)題:Halcon OCR識(shí)別

文章出處:【微信號(hào):vision263com,微信公眾號(hào):新機(jī)器視覺(jué)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    光學(xué)字符識(shí)別是什么的一種技術(shù)

    光學(xué)字符識(shí)別(Optical Character Recognition,簡(jiǎn)稱(chēng)OCR)是一種將文本資料轉(zhuǎn)換為計(jì)算機(jī)可編輯和可搜索的數(shù)據(jù)格式的技術(shù)。這項(xiàng)技術(shù)廣泛應(yīng)用于文檔掃描、數(shù)據(jù)錄入、自動(dòng)化處理等
    的頭像 發(fā)表于 09-10 15:48 ?207次閱讀

    光學(xué)識(shí)別技術(shù)的工作原理是什么?

    光學(xué)識(shí)別技術(shù)(Optical Character Recognition,簡(jiǎn)稱(chēng)OCR)是一種將圖像中的文字信息轉(zhuǎn)換成可編輯和可搜索的文本數(shù)據(jù)的技術(shù)。它廣泛應(yīng)用于文檔掃描、數(shù)據(jù)錄入、自動(dòng)識(shí)別等領(lǐng)域
    的頭像 發(fā)表于 09-10 15:46 ?186次閱讀

    光學(xué)識(shí)別字符是自動(dòng)識(shí)別技術(shù)嗎

    光學(xué)識(shí)別字符(Optical Character Recognition,簡(jiǎn)稱(chēng)OCR)是一種自動(dòng)識(shí)別技術(shù),它能夠?qū)⒏鞣N類(lèi)型文檔(如掃描的紙質(zhì)文檔、PDF文件或數(shù)字相機(jī)拍攝的圖片)中的文字轉(zhuǎn)換成可編
    的頭像 發(fā)表于 09-10 15:43 ?193次閱讀

    明治案例 | PE編織袋【大視野】【OCR識(shí)別

    OCR識(shí)別技術(shù)OCR識(shí)別技術(shù)在工業(yè)生產(chǎn)中扮演著至關(guān)重要的角色。它利用先進(jìn)的圖像處理技術(shù),自動(dòng)、高效地識(shí)別并轉(zhuǎn)換圖像中的文字信息為可編輯的文本
    的頭像 發(fā)表于 08-13 08:25 ?289次閱讀
    明治案例 | PE編織袋【大視野】【<b class='flag-5'>OCR</b><b class='flag-5'>識(shí)別</b>】

    Labview與Halcon圖片Image互相轉(zhuǎn)換

    Labview 與Halcon 聯(lián)合開(kāi)發(fā) 分享一下Labview 與Halcon Image格式相互轉(zhuǎn)換的程序, 整理了一個(gè)VI,LV_to _Halconxl.vi,可以直接調(diào)用,相互轉(zhuǎn)換兩種格式
    發(fā)表于 06-27 23:00

    智能手機(jī)充電頭OCR精準(zhǔn)識(shí)別

    文本是人類(lèi)最重要的信息來(lái)源之一,自然場(chǎng)景中充滿了形形色色的文字符號(hào)。光學(xué)字符識(shí)別(OCR)相信大家都不陌生。而工業(yè)場(chǎng)景的圖像文字識(shí)別更加復(fù)雜,OCR出現(xiàn)在很多不同的場(chǎng)合,對(duì)某些特殊的表
    的頭像 發(fā)表于 06-11 08:24 ?302次閱讀
    智能手機(jī)充電頭<b class='flag-5'>OCR</b>精準(zhǔn)<b class='flag-5'>識(shí)別</b>

    NI視覺(jué)圖像轉(zhuǎn)halcon圖像

    labview采集圖片可用用它轉(zhuǎn)halcon,就可用使用halcon算子處理了
    發(fā)表于 02-21 16:35

    Labview調(diào)用Halcon識(shí)別二維碼

    Labview調(diào)用Halcon識(shí)別二維碼 可一次識(shí)別多個(gè)二維碼 使用Labview 2020編輯,halcon的版本是 19.11,32位
    發(fā)表于 02-21 16:31

    Halcon和Opencv圖像處理庫(kù)對(duì)比

    在工業(yè)視覺(jué)領(lǐng)域?qū)儆诮?jīng)常使用的軟件,相對(duì)于opencv的開(kāi)源精神Halcon屬于商業(yè)非開(kāi)源項(xiàng)目并且收費(fèi)。Halcon起源于德國(guó)在國(guó)內(nèi)的工業(yè)視覺(jué)領(lǐng)域市場(chǎng)占用率遙遙領(lǐng)先。
    的頭像 發(fā)表于 12-20 10:30 ?832次閱讀

    基于OpenVINO+OpenCV的OCR處理流程化實(shí)現(xiàn)

    預(yù)處理主要是基于OpenCV、場(chǎng)景文字檢測(cè)與識(shí)別基于OpenVINO框架 + PaddleOCR模型完成。直接按圖索驥即可得到最終結(jié)果。 OpenCV預(yù)處理主要是完成偏斜矯正、背景矯正等操作,然后使用場(chǎng)景文字檢測(cè)模型+OCR識(shí)別
    的頭像 發(fā)表于 11-07 11:21 ?618次閱讀
    基于OpenVINO+OpenCV的<b class='flag-5'>OCR</b>處理流程化實(shí)現(xiàn)

    OCR如何自動(dòng)識(shí)別圖片文字

    OCR 是光學(xué)字符識(shí)別(英語(yǔ):Optical Character Recognition,OCR)是指對(duì)文本資料的圖像文件進(jìn)行分析識(shí)別處理,獲取文字及版面信息的過(guò)程。 很早之前就有同學(xué)
    的頭像 發(fā)表于 10-31 16:45 ?642次閱讀
    <b class='flag-5'>OCR</b>如何自動(dòng)<b class='flag-5'>識(shí)別</b>圖片文字

    easyocr:超級(jí)簡(jiǎn)單且強(qiáng)大的OCR文本識(shí)別工具

    今天給大家介紹一個(gè)超級(jí)簡(jiǎn)單且強(qiáng)大的OCR文本識(shí)別工具: easyocr . 這個(gè)模塊支持70多種語(yǔ)言的即用型OCR,包括中文,日文,韓文和泰文等。 下面是這個(gè)模塊的實(shí)戰(zhàn)教程。 1.準(zhǔn)備 開(kāi)始之前,你
    的頭像 發(fā)表于 10-30 09:30 ?2344次閱讀
    easyocr:超級(jí)簡(jiǎn)單且強(qiáng)大的<b class='flag-5'>OCR</b>文本<b class='flag-5'>識(shí)別</b>工具

    關(guān)于兩個(gè)Python開(kāi)源識(shí)別工具的效果

    OCR 是光學(xué)字符識(shí)別(英語(yǔ):Optical Character Recognition,OCR)是指對(duì)文本資料的圖像文件進(jìn)行分析識(shí)別處理,獲取文字及版面信息的過(guò)程。 很早之前就有同學(xué)
    的頭像 發(fā)表于 10-17 11:36 ?528次閱讀
    <b class='flag-5'>關(guān)于</b>兩個(gè)Python開(kāi)源<b class='flag-5'>識(shí)別</b>工具的效果

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】Vitis AI Library體驗(yàn)之OCR識(shí)別

    OCR (Optical Character Recognition,光學(xué)字符識(shí)別)是指電子設(shè)備(例如掃描儀或數(shù)碼相機(jī))檢查紙上打印的字符,通過(guò)檢測(cè)暗、亮的模式確定其形狀,然后用字符識(shí)別方法將形狀
    發(fā)表于 10-16 23:25

    【KV260視覺(jué)入門(mén)套件試用體驗(yàn)】七、VITis AI字符和文本檢測(cè)(OCR&amp;Textmountain)

    視覺(jué)領(lǐng)域的重要問(wèn)題,主要是識(shí)別和理解圖像或視頻中的文字信息。字符檢測(cè)和識(shí)別OCR)技術(shù)最早在1929年由德國(guó)科學(xué)家Tausheck提出,定義為將印刷體的字符從紙質(zhì)文檔中識(shí)別出來(lái)。隨著
    發(fā)表于 09-26 16:31