版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 手機(jī)制定協(xié)議書(shū)
- 煤礦大包協(xié)議合同
- 苗木?;顓f(xié)議書(shū)
- 苗木轉(zhuǎn)運(yùn)協(xié)議書(shū)
- 蔬菜包銷(xiāo)協(xié)議書(shū)
- 融資平臺(tái)協(xié)議書(shū)
- 解除就業(yè)意向協(xié)議書(shū)
- 設(shè)備分期協(xié)議書(shū)
- 設(shè)計(jì)人合同范本
- 訴訟分成協(xié)議書(shū)
- 護(hù)理溝通中的積極反饋與正向激勵(lì)
- 2024年河北醫(yī)科大學(xué)第四醫(yī)院招聘筆試真題
- 四川省教育考試院2025年公開(kāi)招聘編外聘用人員考試筆試模擬試題及答案解析
- 餐廳前廳經(jīng)理合同范本
- (2025年)(完整版)醫(yī)療器械基礎(chǔ)知識(shí)培訓(xùn)考試試題及答案
- 口腔科手術(shù)安全核查制度
- 山東魯商集團(tuán)招聘筆試2025
- 智慧樹(shù)知道網(wǎng)課《算法大視界(中國(guó)海洋大學(xué))》課后章節(jié)測(cè)試答案
- 高考《數(shù)學(xué)大合集》專(zhuān)題突破強(qiáng)化訓(xùn)練682期【圓錐】細(xì)說(shuō)高考卷里圓錐同構(gòu)式的妙用
- 《天邊有顆閃亮的星》 課件 2025-2026學(xué)年人音版(簡(jiǎn)譜)(2024)初中音樂(lè)八年級(jí)上冊(cè)
- 牲畜家禽屠宰場(chǎng)建設(shè)與布局設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論