《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目10 利用Halcon軟件進(jìn)行信息識(shí)別_第1頁(yè)
《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目10 利用Halcon軟件進(jìn)行信息識(shí)別_第2頁(yè)
《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目10 利用Halcon軟件進(jìn)行信息識(shí)別_第3頁(yè)
《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目10 利用Halcon軟件進(jìn)行信息識(shí)別_第4頁(yè)
《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》課件 項(xiàng)目10 利用Halcon軟件進(jìn)行信息識(shí)別_第5頁(yè)
已閱讀5頁(yè),還剩27頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

機(jī)器視覺(jué)系統(tǒng)編程與開(kāi)發(fā)<Halcon版>《HALCON機(jī)器視覺(jué)系統(tǒng)編程基礎(chǔ)》項(xiàng)目10利用Halcon軟件進(jìn)行信息識(shí)別【知識(shí)目標(biāo)】1.了解二維碼的概念;2.掌握Halcon軟件中二維碼處理的過(guò)程;3.掌握OCR字符創(chuàng)建與識(shí)別操作。1.能夠根據(jù)二維碼的樣式來(lái)選擇合適的參數(shù)。2.能夠做一個(gè)簡(jiǎn)單的讀碼器。1.熟悉視覺(jué)工程師的工作任務(wù),制定職業(yè)精神養(yǎng)成計(jì)劃。2.有團(tuán)隊(duì)合作意識(shí),按照企業(yè)的工作模式分組協(xié)作研究?!灸芰δ繕?biāo)】【素養(yǎng)目標(biāo)】項(xiàng)目導(dǎo)讀

隨著圖像處理技術(shù)的發(fā)展,各類(lèi)圖像算法的不斷涌現(xiàn),機(jī)器視覺(jué)技術(shù)在各領(lǐng)域中的應(yīng)用越來(lái)越廣泛,特別是一些非標(biāo)自動(dòng)化生產(chǎn)線(xiàn),配合機(jī)器人的操作,可以大幅度的提高生產(chǎn)效率,隨著人工智能技術(shù)的應(yīng)用普及,機(jī)器視覺(jué)技術(shù)在各行業(yè)的作用愈發(fā)凸顯,視覺(jué)是獲取現(xiàn)場(chǎng)信息的主要途徑,為自動(dòng)化提供信息判斷依據(jù)。信息識(shí)別是機(jī)器視覺(jué)常見(jiàn)的應(yīng)用之一,當(dāng)前許多產(chǎn)品的資料信息都是以二維碼或字符標(biāo)識(shí)來(lái)顯示,本項(xiàng)目主要完成2個(gè)任務(wù),一是二維碼的識(shí)別,二是OCR字符的訓(xùn)練和識(shí)別。識(shí)別產(chǎn)品的二維碼信息訓(xùn)練與識(shí)別OCR字符任務(wù)2任務(wù)1識(shí)別產(chǎn)品的二維碼信息任務(wù)12課時(shí)【任務(wù)要求】

需要檢測(cè)的是該零件上二維碼的信息,每次零件的位置不確定,二維碼標(biāo)簽也可能會(huì)貼斜,利用視覺(jué)檢測(cè)識(shí)別二維碼信息?!救蝿?wù)解決思路】

獲取圖像后,首先通過(guò)圖像處理,將二維碼區(qū)域和其它部分區(qū)分開(kāi),然后利用閾值分割,準(zhǔn)確的提取出二維碼標(biāo)簽,通過(guò)仿射變換,校正二維碼,最后通過(guò)Halcon軟件二維碼識(shí)別算子對(duì)二維碼進(jìn)行讀取識(shí)別?!局R(shí)鏈接】

二維條碼/二維碼是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的、黑白相間的、記錄數(shù)據(jù)符號(hào)信息的圖形;在代碼編制上巧妙地利用構(gòu)成計(jì)算機(jī)內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念,使用若干個(gè)與二進(jìn)制相對(duì)應(yīng)的幾何形體來(lái)表示文字?jǐn)?shù)值信息,通過(guò)圖像輸入設(shè)備或光電掃描設(shè)備自動(dòng)識(shí)讀以實(shí)現(xiàn)信息自動(dòng)處理:它具有條碼技術(shù)的一些共性:每種碼制有其特定的字符集;每個(gè)字符占有一定的寬度;具有一定的校驗(yàn)功能等。同時(shí)還具有對(duì)不同行的信息自動(dòng)識(shí)別功能、及處理圖形旋轉(zhuǎn)變化點(diǎn)。常見(jiàn)的二維碼為QRCode,QR全稱(chēng)QuickResponse,是一種編碼方式。它比傳統(tǒng)的BarCode條形碼能存更多的信息,也能表示更多的數(shù)據(jù)類(lèi)型。。Halcon軟件中檢測(cè)二維碼的步驟:

1)創(chuàng)建二維碼閱讀器模板create_bar_code_model;2)設(shè)置二維碼閱讀器模板參數(shù)set_data_code_2d_param;3)檢測(cè)和讀取圖像中的二維碼find_data_code_2d;4)

獲取解讀二維碼標(biāo)志時(shí)計(jì)算得到的結(jié)果;5)釋放二維碼閱讀器模板clear_data_code_2d_model。1.讀取圖像并初始化*讀取圖像read_image

(Image,

'二維碼.bmp')

*獲取圖像大小

get_image_size

(Image,

Width,

Height)

*關(guān)閉窗口

dev_close_window

()

*打開(kāi)新的窗口,大小為圖像尺寸的1/4

dev_open_window

(0,

0,

Width/4,

Height/4,

'black',

WindowHandle)

*設(shè)置字體

set_display_font

(WindowHandle,

20,

'mono',

'true',

'false')

*顯示原圖,如圖10-3所示dev_display(Image)2.圖像處理,特征定位*閾值處理,選取白色,如圖10-4所示threshold

(Image,

Region,

128,

255)

*填充孔洞

fill_up

(Region,

RegionFillUp)

*連通域處理,打斷

,如圖10-5所示connection

(RegionFillUp,

ConnectedRegions)

*以“矩形度”為篩選條件

select_shape

(ConnectedRegions,

SelectedRegions,

'rectangularity',

'and',

0.7781,

1)*以“面積”為篩選條件,篩選結(jié)果如圖10-6所示select_shape

(SelectedRegions,

SelectedRegions1,

'area',

'and',

95428.6,

200000)

*裁剪圖像,不改變?cè)瓐D大小,相當(dāng)于屏蔽選中區(qū)域以外的部分,如圖10-7所示reduce_domain

(Image,

SelectedRegions1,

ImageReduced)*將標(biāo)簽從原圖中裁剪出來(lái),大小發(fā)生改變,如圖10-8所示

crop_domain

(ImageReduced,

ImagePart)*獲取裁剪后標(biāo)簽圖像的尺寸,如圖10-9所示get_image_size

(ImagePart,

Width1,

Height1)*顯示原圖dev_display

(Image)3.新建窗口進(jìn)行區(qū)域處理

*重新打開(kāi)一個(gè)窗口,如圖10-10所示dev_open_window

(0,

200,

Width1,

Height1,

'black',

WindowHandle1)

*顯示標(biāo)簽dev_display

(ImagePart)*閾值分割threshold

(ImagePart,

Region1,

128,

255)*填充孔洞fill_up

(Region1,

RegionFillUp1)*閉運(yùn)算closing_rectangle1

(RegionFillUp1,

RegionClosing,

10,

10)

*求最小外接矩形,用rectangle2,帶角度,求出角度,為仿射變換做準(zhǔn)備

smallest_rectangle2

(RegionClosing,

Row,

Column,

Phi,

Length1,

Length2)*計(jì)算旋轉(zhuǎn)變換矩陣vector_angle_to_rigid

(Row,

Column,

Phi,

Row,

Column,

0,

HomMat2D)

*進(jìn)行仿射變換,校正標(biāo)簽位置,如圖10-11所示affine_trans_image

(ImagePart,

ImageAffineTrans,

HomMat2D,

'constant',

'false')4.識(shí)別二維碼*創(chuàng)建二維碼模型create_data_code_2d_model

('QR

Code',

[],

[],

DataCodeHandle1)*查找匹配二維碼,如圖10-12所示

find_data_code_2d

(ImageAffineTrans,

SymbolXLDs,

DataCodeHandle1,

[],

[],

ResultHandles,

DecodedDataStrings)

5、處理結(jié)果*顯示標(biāo)簽

dev_display

(ImageAffineTrans)*顯示查找匹配結(jié)果dev_display

(SymbolXLDs)*設(shè)定顯示位置set_tposition

(WindowHandle1,

Row-100,

Column-80)*顯示二維碼讀取信息,如圖10-13所示write_string

(WindowHandle1,

DecodedDataStrings)*釋放二維碼模型clear_data_code_2d_model(DataCodeHandle1)

下一任務(wù)介紹:訓(xùn)練與識(shí)別OCR字符。訓(xùn)練與識(shí)別OCR字符任務(wù)2【任務(wù)要求】圖10-14為一張存儲(chǔ)卡的包裝,檢測(cè)識(shí)別“海雀MicroSDXC存儲(chǔ)卡”這串字符?!救蝿?wù)解決思路】光學(xué)字符識(shí)別流程:

1.讀取樣本圖像,對(duì)樣本中已知字符進(jìn)行區(qū)域分割,為已知字符創(chuàng)建一個(gè)數(shù)組,然后利用append_ocr_trainf算子將區(qū)域形狀與字符建立對(duì)應(yīng)關(guān)聯(lián),存放到一個(gè)訓(xùn)練文件中。2.訓(xùn)練分類(lèi)器,首先創(chuàng)建一個(gè)分類(lèi)器,可以使用create_ocr_class_mlp算子創(chuàng)建一個(gè)基于MLP分類(lèi)器,然后用trainf_ocr_class_mlp算子訓(xùn)練基于“.trf”文件的分類(lèi)器,接著用write_ocr_class_mlp算子將OCR分類(lèi)器寫(xiě)入文件,最后使用clear_ocr_class_mlp算子清除分類(lèi)器,釋放內(nèi)存。1.讀取圖像并初始化*讀取圖像

read_image

(Image12,

'字符.png')

*獲取圖像大小

get_image_size

(Image12,

Width,

Height)

*關(guān)閉窗口

dev_close_window

()

*打開(kāi)新窗口

dev_open_window

(0,

0,

Width/5,

Height/5,

'black',

WindowHandle)

*彩色轉(zhuǎn)灰度圖像,如圖10-16所示【任務(wù)實(shí)施】一、OCR字符訓(xùn)練2.圖像處理rgb1_to_gray

(Image12,

GrayImage)

*繪制ROI區(qū)域

gen_rectangle1

(ROI_0,

1146.46,

431.976,

1457.5,

2587.22)

*裁剪區(qū)域,如圖10-17所示reduce_domain

(GrayImage,

ROI_0,

ImageReduced)

*閾值分割

threshold

(ImageReduced,

Region,

0,

100)

*膨脹處理

dilation_rectangle1

(Region,

RegionDilation,

5,

36)

*打斷處理

connection

(RegionDilation,

ConnectedRegions1)

*形狀轉(zhuǎn)換,如圖10-18所示shape_trans

(ConnectedRegions1,

RegionTrans,

'rectangle1')

*計(jì)算兩區(qū)域的交集,是將漢字的分散的筆畫(huà),組成一個(gè)區(qū)域,如圖10-19所示

intersection

(RegionTrans,

Region,

RegionIntersection)

*將字符區(qū)域排序sort_region

(RegionIntersection,

SortedRegions,

'first_point',

'true',

'column')

*計(jì)算區(qū)域數(shù)量

count_obj

(SortedRegions,

Number)

*將各字符存到數(shù)組中,如圖10-20所示class1

:=

['海','雀','M','i','c','r','o','S','D','X','C','存','儲(chǔ)','卡']

*刪除文件'train_ocr.trf',訓(xùn)練的字符要放入'train_ocr.trf'文件中

*在程序調(diào)試過(guò)程中,delete_file

('train_ocr.trf')

運(yùn)行后,可將這條語(yǔ)句注釋掉,否則調(diào)試的時(shí)候容易出錯(cuò)*因?yàn)榈谝淮芜\(yùn)行刪除了訓(xùn)練文件,如果沒(méi)有重新生成這個(gè)文件,第二次運(yùn)行時(shí),這個(gè)文件不存在,該語(yǔ)句就會(huì)報(bào)錯(cuò)

delete_file

('train_ocr.trf')

*依次讀取圖像區(qū)域與字符對(duì)應(yīng)起來(lái)

for

Index

:=

0

to

|class1|-1

by

1

*選擇對(duì)象

select_obj

(SortedRegions,

ObjectSelected,

Index+1)

*將字符一個(gè)一個(gè)添加到訓(xùn)練文件中,在程序的目錄中將會(huì)出現(xiàn),如圖10-21所示append_ocr_trainf

(ObjectSelected,

ImageReduced,

class1[Index],

'train_ocr'+'.trf')

endfor

*

去除class1數(shù)組中相同的元素

chans:=uniq(sort(class1))

*使用多層感知器構(gòu)建一個(gè)OCR分類(lèi)器

create_ocr_class_mlp

(8,

10,

'constant',

'default',

chans,

80,

'none',

10,

42,

OCRHandle)

*訓(xùn)練一個(gè)OCR分類(lèi)器

trainf_ocr_class_mlp

(OCRHandle,

'train_ocr.trf',

200,

1,

0.01,

Error,

ErrorLog)

*把OCR分類(lèi)器寫(xiě)到文件'train_ocr'里

write_ocr_class_mlp

(OCRHandle,

'train_ocr')

*釋放OCR分類(lèi)器,調(diào)用clear_ocr_class_mlp之后,分類(lèi)器就不能再使用了,句柄OCRHandle變得無(wú)效clear_ocr_class_mlp

(OCRHandle)

算子釋義:append_ocr_trainf--Addcharacterstoatrainingfile.格式:append_ocr_trainf(Character,Image::Class,TrainingFile:)參數(shù):Character--選中當(dāng)前目標(biāo);Image--目標(biāo)對(duì)應(yīng)圖片;Class--預(yù)先創(chuàng)建的字符數(shù)組;TrainingFile--培訓(xùn)文件的名稱(chēng),文件位于程序文件夾中。作用:向訓(xùn)練文件一個(gè)一個(gè)的添加字符。例:append_ocr_trainf(ObjectSelected,ImageReduced,class1[Index],'train_ocr'+'.trf')表示:建立選中的目標(biāo)ObjectSelected及對(duì)應(yīng)的圖片ImageReduced與預(yù)先創(chuàng)建的字符數(shù)組class1[Index]建立對(duì)應(yīng)關(guān)系,然后將訓(xùn)練的字符圖像存放入文件'train_ocr.trf'中。

二、OCR識(shí)別算子釋義:read_ocr_class_mlp

ReadanOCRclassifierfromafile.格式:read_ocr_class_mlp(::FileName:OCRHandle)參數(shù):

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論