謝智陽, 陳澤鑫, 陳 婷, 魏曉青
(1.河源職業(yè)技術(shù)學(xué)院, 廣東 河源 517000; 2.河源市工業(yè)機器人技術(shù)應(yīng)用工程技術(shù)研究中心, 廣東 河源 517000)
隨著科技文化的發(fā)展,獲取資源的途徑各式各樣,知識不僅能從書本中獲取,還能從網(wǎng)絡(luò)各媒體中獲取,例如在學(xué)校中,一些零部件粘貼有二維碼,學(xué)生通過手機掃描二維碼,獲取該零部件信息,讓學(xué)生不僅可以學(xué)到課堂中的知識,也可以擴展該零部件知識,還可以隨時進行零部件知識的復(fù)習(xí)。文獻[1]中研究了基于二維碼技術(shù)的多媒體學(xué)習(xí)效率分析;文獻[2]中研究了基于機器視覺的條碼在線缺陷檢測系統(tǒng),解決了條碼品質(zhì)檢測的問題;文獻[3]中采用基于邊緣像素寬度和灰度運算雙可控的數(shù)學(xué)形態(tài)學(xué)方法,解決了二維碼的缺陷檢測問題。
鑒于前人對傳統(tǒng)二維碼缺陷的研究較少,本文旨在設(shè)計一種基于人工智能的零部件識別學(xué)習(xí)系統(tǒng),實現(xiàn)多角度拍攝零部件識別獲取資源,解決了過塑紙質(zhì)二維碼所存在的缺陷,而且有效降低人力資源成本,為用戶提供了方便。
本系統(tǒng)主要分為四大部分:機械與結(jié)構(gòu)設(shè)計、電控電路設(shè)計、UI界面設(shè)計、圖像識別系統(tǒng)設(shè)計。該系統(tǒng)以JETSON NANO嵌入式開發(fā)板為硬件基礎(chǔ),Windows 10操作系統(tǒng)為軟件基礎(chǔ),系統(tǒng)框架圖如圖1所示,其功能有以下幾點。
圖1 系統(tǒng)框架圖
1) Arduino控制板是攝像平臺實現(xiàn)的控制核心,所設(shè)計裝置通過USB攝像頭多角度采集零部件圖像。
2) JETSON NANO嵌入式開發(fā)板是識別系統(tǒng)的控制核心,對采集到的圖像進行處理分析,最后將所需圖像及資料選擇頁面呈現(xiàn)于LED觸摸顯示屏中。
鑒于汽車零部件色調(diào)單一,主要以輪廓特征為主,單一角度采集到的圖像難以滿足識別的要求,因此需設(shè)計可采集到多角度的圖像采集裝置。攝像平臺外觀3D展示圖如圖2所示。
通過設(shè)定Arduino控制板驅(qū)動電動舵機7的轉(zhuǎn)速帶動攝像頭支架聯(lián)軸器10,攝像頭支架聯(lián)軸器10進一步帶動攝像頭支架2轉(zhuǎn)動。攝像頭旋轉(zhuǎn)結(jié)構(gòu)如圖3所示。圖2攝像頭支架2中央設(shè)置有USB攝像頭。
圖3 攝像頭旋轉(zhuǎn)結(jié)構(gòu)
通過設(shè)定Arduino控制板控制旋轉(zhuǎn)電機25的轉(zhuǎn)速帶動主動齒輪23,主動齒輪23進一步帶動從動齒輪22轉(zhuǎn)動,從而實現(xiàn)零部件擺放臺8的旋轉(zhuǎn)。零部件旋轉(zhuǎn)云臺如圖4所示。
圖4 零部件旋轉(zhuǎn)云臺
系統(tǒng)采用機電一體化結(jié)構(gòu),在底盤底部設(shè)置了4個萬向輪,便于系統(tǒng)移動,為了裝置整潔美觀,配件主要集中于主機機箱后方。主要電子硬件有Arduino 控制板、JETSON NANO 嵌入式開發(fā)板、電機驅(qū)動板、旋轉(zhuǎn)電機、電動舵機、USB攝像頭、LED觸摸顯示屏、主機機箱、電池等部件。Arduino控制板的型號為Arduino UNO R3,Arduino UNO R3板數(shù)字輸出端子帶有PWM功能,可以直接驅(qū)動微型直流電動舵機和電機,控制方便[4-6];電機驅(qū)動板為L298N電機驅(qū)動模塊,可實現(xiàn)電機正反轉(zhuǎn)及調(diào)速、啟動性能好、啟動轉(zhuǎn)矩大。
本電控系統(tǒng)流程如下:按下啟動按鈕,主機機箱開機,LED觸摸顯示屏啟動,Arduino 控制板驅(qū)動電機驅(qū)動板來控制電機的轉(zhuǎn)動,從而實現(xiàn)攝像頭支架的轉(zhuǎn)動,進一步地,Arduino控制板控制電動舵機轉(zhuǎn)動角度,進而實現(xiàn)零部件擺放臺的旋轉(zhuǎn),結(jié)合攝像頭旋轉(zhuǎn)結(jié)構(gòu)和零部件旋轉(zhuǎn)云臺的結(jié)構(gòu)裝置,從而實現(xiàn)多角度拍攝零部件,USB攝像頭獲取零部件圖像信息,進而JETSON NANO 嵌入式開發(fā)板對圖像進行圖像處理、資料匹配等功能,并將其顯示在LED觸摸顯示屏上,電池給整個裝置供電。電控系統(tǒng)總原理圖如圖5所示。
圖5 電控系統(tǒng)總原理圖
UI界面的開發(fā)以Windows 10系統(tǒng)作為開發(fā)環(huán)境,主要將Python編程語言、Qt Designer以及PyQt5和Eric6技術(shù)相結(jié)合。在開始進行界面設(shè)計時,需要先搭建Eric6界面環(huán)境,然后經(jīng)Eric6轉(zhuǎn)入Qt Designer[7]。根據(jù)開發(fā)要求,界面功能主要包括界面登錄、控件交互以及界面交互功能。UI界面設(shè)計流程圖如圖6所示。
圖6 UI界面設(shè)計流程圖
4.1.1 登陸界面設(shè)計
在Qt Designer中創(chuàng)建一個對話框窗口,拖動2個lineEdit控件并設(shè)置屬性,分別作為賬號account、密碼password,本設(shè)計設(shè)置賬戶名為小小,賬戶密碼為123456,可選擇記住密碼功能或者自動登錄功能,拖動2個pushButton控件,分別為“確定”和“取消”,然后進入槽函數(shù)編輯界面,對2個pushButton控件 添 加 觸 發(fā) 信 號[8-9]。登陸界面如圖7所示。
4.1.2 主界面設(shè)計
首先在Qt Designer中創(chuàng)建一個主窗口,拖動12 個Push Button 控件、2個Label控件、1個DateTileEdit、1個LineEdit控件放置主窗口區(qū),本系統(tǒng)將12個控件分別命名為打開攝像頭、攝像頭實時識別、捕獲圖片、打開圖片識別、查看預(yù)處理圖像、清除識別數(shù)據(jù)、再次識別、識別結(jié)果、原理、視頻、PPT與相似對比;2個Label控件分別命名為攝像圖和捕獲圖;LineEdit控件命名為汽車零件識別系統(tǒng),然后對控件以及界面進行調(diào)整和布局,最后進入槽函數(shù)編輯界面,設(shè)置槽函數(shù)[8-9]。主界面布局如圖8所示。
圖7 登錄界面
圖8 主界面布局
4.1.3 控件交互以及界面交互
將主界面和登錄界面的.ui文件在Eric6轉(zhuǎn)化為.py文件,把兩個.py文件源代碼中的QMainWindow和QLogindialog兩個類融合,其中,繼承QMainWindow作為主界面,QLogindialog類則用于設(shè)計和實現(xiàn)登錄界面的功能。在登錄界面中,右鍵“確定”pushbutton控件,然后選擇轉(zhuǎn)為槽添加信號clicked() 事件,最后在源代碼中添加跳轉(zhuǎn)界面的核心代碼[10]。
4.2.1 JETSON NANO圖像采集處理系統(tǒng)
啟動JETSON NANO嵌入式開發(fā)板首先需要安裝ubuntu18.04,下載系統(tǒng)鏡像。JETSON NANO嵌入式開發(fā)板主要包括圖像采集模塊、預(yù)處理模塊和圖像識別模塊。功能模塊流程圖如圖9所示。
圖9 功能模塊流程圖
4.2.2 圖像采集模塊流程
在攝像平臺的輔助下,JETSON NANO嵌入式開發(fā)板驅(qū)動USB攝像頭進行多角度拍攝零部件圖像。
4.2.3 圖像預(yù)處理流程
本系統(tǒng)主要核心算法采用SIFT特征提取法,圖像采集模塊采集到圖像,預(yù)處理模塊對圖像進行圖像灰度化,然后檢測關(guān)鍵點進行暴力匹配,進而提取圖像特征,特征點匹配成功將會累加,如果最佳匹配累加數(shù)值大于10,認(rèn)定2幅圖像匹配成功,隨后跳轉(zhuǎn)鏈接,反之匹配失敗,最后匹配成功后JETSON NANO嵌入式開發(fā)板將處理后的圖像呈現(xiàn)于LED觸摸顯示屏中[11-12]。
特征點連線如圖10所示。
圖10 特征點連線圖
本文基于JETSON NANO 嵌入式開發(fā)板為硬件基礎(chǔ)、Windows 10操作系統(tǒng)為軟件基礎(chǔ),通過結(jié)合圖像識別以及界面開發(fā)技術(shù),實現(xiàn)了一種基于人工智能的零部件識別學(xué)習(xí)系統(tǒng)所需的功能,整套系統(tǒng)架構(gòu)合理,不僅提高了課堂學(xué)習(xí)效率,滿足學(xué)生自主學(xué)習(xí)需求的問題,極大地增強了學(xué)習(xí)的靈活性和高效率,還有效地降低人力資源成本,解決了如今市面上過塑紙質(zhì)二維碼所存在的問題。