999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Qt與Arm NN的嵌入式噴碼檢測(cè)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2020-04-09 04:48:53王斌宋樹祥王宜瑜龐中秋
關(guān)鍵詞:嵌入式

王斌 宋樹祥 王宜瑜 龐中秋

摘? ?要:現(xiàn)存的噴碼檢測(cè)系統(tǒng)大多基于工控PC電腦實(shí)現(xiàn),其在價(jià)格、體積、功耗、靈活性等方面存在著較大的局限性。為此,設(shè)計(jì)了一種基于Qt與Arm NN的嵌入式噴碼檢測(cè)系統(tǒng),該系統(tǒng)的核心處理器采用Arm cortex-a9,搭載配置有相關(guān)軟件工具的嵌入式linux操作系統(tǒng),采用位置檢測(cè)算法來實(shí)現(xiàn)軟件檢測(cè)待測(cè)目標(biāo)的位置,通過由圖像預(yù)處理、噴碼區(qū)域提取、條形碼識(shí)別、字符子串分割、基于卷積神經(jīng)網(wǎng)絡(luò)及caffe框架的噴碼字符識(shí)別模型訓(xùn)練、利用Arm NN將識(shí)別模型引入到ARM端實(shí)現(xiàn)噴碼字符識(shí)別、識(shí)別結(jié)果處理等過程組成的噴碼檢測(cè)算法來實(shí)現(xiàn)對(duì)噴碼內(nèi)容的檢測(cè)。該系統(tǒng)還基于Qt多線程技術(shù)開發(fā)了具有完善系統(tǒng)功能的圖形應(yīng)用程序,便于現(xiàn)場生產(chǎn)人員使用。經(jīng)相關(guān)測(cè)試表明該系統(tǒng)有效可行、正檢率高,能夠滿足包裝生產(chǎn)流水線噴碼檢測(cè)的實(shí)際需求。

關(guān)鍵詞:嵌入式;區(qū)域提取;字符分割;卷積神經(jīng)網(wǎng)絡(luò);Arm NN;字符識(shí)別

中圖分類號(hào):TP752? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

Design and Implementation of Embedded Printing Character

Inspection System Based on Qt and Arm NN

WANG Bin,SONG Shu-xiang?覮,WANG Yi-yu,PANG Zhou-qiu

(College of Electronic Engineering,Guangxi Normal University,Guilin,Guangxi 541004,China)

Abstract:Most of the existing printing character inspection systems are based on industrial PC,but they are limited in price,volume,power consumption and flexibility.To solve this problem,an embedded printing character inspection system based on Qt and Arm NN is designed. The core processor of the system is Arm cortex-a9,which is equipped with embedded Linux operating system with relevant software tools. The position detection algorithm is adopted to realize the location of the target to be tested.By image preprocessing,region extraction,bar code identification,character substring,based on convolutional neural network segmentation and caffe framework of character recognition model training,using Arm NN identification model is introduced into the Arm end realize the recognition of character recognition,the results of treatment process,such as printing inspection algorithm to implement to spurt the code content detection.The system also developed a graphic application program with perfect system function based on Qt multi-thread technology,which is convenient for field production personnel.Relevant tests show that the system is effective and feasible,with high positive inspection rate,and can meet the actual needs of the packaging production line for the printing character inspection.

Key words:embedded;area extraction;character segmentation;convolutional neural network;arm NN;character? recognition

工業(yè)產(chǎn)品的包裝上的噴碼通常包含諸多重要信息包裝在噴碼機(jī)噴碼完成之后,由于整個(gè)噴印過程中可能出現(xiàn)的機(jī)械故障、產(chǎn)線環(huán)境變化、運(yùn)輸過程磨損等因素,進(jìn)而造成產(chǎn)品包裝噴印質(zhì)量的變化,導(dǎo)致包裝信息噴印錯(cuò)誤的產(chǎn)生。包裝信息錯(cuò)誤的產(chǎn)品將會(huì)對(duì)企業(yè)的生產(chǎn)成本效率、產(chǎn)品物流倉儲(chǔ)、品牌形象等方面造成一系列不利影響。為了保證噴碼的正確可讀,生產(chǎn)過程中噴碼檢測(cè)的環(huán)節(jié)不可或缺。傳統(tǒng)的由人工辨別噴碼好壞并不適合應(yīng)用在企業(yè)的大規(guī)模包裝生產(chǎn)流水線上。而現(xiàn)有的噴碼檢測(cè)儀器主控平臺(tái)多基于工控PC電腦,其與滿足同等運(yùn)算能力需求的嵌入式ARM工控板相比,存在價(jià)格,功耗較高、占用體積大、隨生產(chǎn)線設(shè)備移動(dòng)部署能力差等問題。

近年來,卷積神經(jīng)網(wǎng)絡(luò)在圖像分類識(shí)別領(lǐng)域具有超越其他傳統(tǒng)算法的出色表現(xiàn)[1],此外,而深度學(xué)習(xí)框架的出現(xiàn)避免了從頭編寫復(fù)雜神經(jīng)網(wǎng)絡(luò)以及通用代碼的重復(fù)編寫,使用框架提供的底層標(biāo)準(zhǔn)模塊、組件進(jìn)行開發(fā)能提高深度學(xué)習(xí)相關(guān)的工作效率。而Arm NN[2]是ARM官方免費(fèi)推出的一套基于ARM處理器上運(yùn)行的開源神經(jīng)網(wǎng)絡(luò)推理引擎及相關(guān)SDK,其作用是對(duì)框架下訓(xùn)練出的模型進(jìn)行針對(duì)ARM架構(gòu)的優(yōu)化,并使之能在ARM處理器上高效運(yùn)行,將其應(yīng)用于ARM端噴碼檢測(cè)的字符識(shí)別環(huán)節(jié)。

依托某醫(yī)療器械公司的試劑紙箱包裝生產(chǎn)流水線作為實(shí)際研發(fā)環(huán)境,設(shè)計(jì)了一種基于Qt與Arm NN的嵌入式噴碼檢測(cè)系統(tǒng),系統(tǒng)能夠自動(dòng)識(shí)別紙箱噴碼內(nèi)容,檢測(cè)出識(shí)別異常的紙箱。本系統(tǒng)以嵌入式ARM平臺(tái)為硬件載體,結(jié)合Qt界面編程、多線程、圖像處理、卷積神經(jīng)網(wǎng)絡(luò)等技術(shù)進(jìn)行嵌入式軟件開發(fā),實(shí)現(xiàn)了對(duì)運(yùn)轉(zhuǎn)中的包裝紙箱生產(chǎn)線上的包裝噴碼進(jìn)行自動(dòng)實(shí)時(shí)檢測(cè)。

1? ?系統(tǒng)總體結(jié)構(gòu)

系統(tǒng)硬件設(shè)計(jì)部分主要由圖像采集單元、ARM工控板、觸屏顯示模塊、報(bào)警裝置組成。圖像采集單元負(fù)責(zé)采集產(chǎn)線上運(yùn)動(dòng)紙箱的清晰噴碼圖像,ARM工控板為系統(tǒng)提供核心運(yùn)算CPU及所需的相應(yīng)的外圍存儲(chǔ)、通信等資源,觸屏顯示模塊為系統(tǒng)人機(jī)交互的硬件載體,報(bào)警裝置用于識(shí)別異常時(shí)發(fā)出警報(bào)信息。

系統(tǒng)軟件設(shè)計(jì)部分主要由軟件環(huán)境搭建和檢測(cè)算法設(shè)計(jì)及應(yīng)用程序設(shè)計(jì)三個(gè)部分組成。軟件環(huán)境搭建包括嵌入式linux操作系統(tǒng)以及應(yīng)用程序開發(fā)過程中所需相關(guān)工具移的移植與配置。檢測(cè)算法設(shè)計(jì)包括紙箱位置檢測(cè)算法設(shè)計(jì)及紙箱噴碼檢測(cè)算法設(shè)計(jì),前者用于在生產(chǎn)狀態(tài)下軟件檢測(cè)是否有紙箱經(jīng)過相機(jī)鏡頭并采集相應(yīng)的噴碼圖像,而后者用于檢測(cè)具體的噴碼內(nèi)容。應(yīng)用程序設(shè)計(jì)基于Qt多線程開發(fā)將圖像采集、紙箱位置檢測(cè)、噴碼檢測(cè)、 GUI人機(jī)交互等獨(dú)立線程集成到系統(tǒng)中。實(shí)現(xiàn)了自動(dòng)檢測(cè)、單個(gè)檢測(cè)、數(shù)據(jù)入庫、可視化調(diào)試等系統(tǒng)功能。

2? ?系統(tǒng)硬件設(shè)計(jì)

本系統(tǒng)采用基于ARM cortex-A9內(nèi)核的三星Exynos-4412處理器,運(yùn)行主頻 1.5GHz,能流暢運(yùn)行嵌入式linux系統(tǒng),CPU外圍模塊包括DDR3內(nèi)存和eMMC閃存,microUSB 接口、串口、網(wǎng)口、SD卡、電源、觸控屏、USB工業(yè)相機(jī)等。串口接報(bào)警裝置,相機(jī)接圖像輔助采集模塊共同構(gòu)成圖像采集單元,圖像輔助采集模塊包含了遮光罩、補(bǔ)光燈、調(diào)位桿等設(shè)備,用于采集盡量清晰,外部干擾少的噴碼圖片。系統(tǒng)硬件設(shè)計(jì)如圖1所示。

圖1? ?系統(tǒng)硬件結(jié)構(gòu)圖

3? ?系統(tǒng)軟件設(shè)計(jì)

3.1? ?軟件環(huán)境搭建

首先需要搭建嵌入式linux系統(tǒng):在宿主機(jī)上安裝交叉編譯環(huán)境后,再依次編譯并移植Bootloader、linux內(nèi)核、根文件系統(tǒng)到ARM端。本文移植的嵌入式系統(tǒng)是基于linux3.8內(nèi)核的Xubuntu Desktop13.10,該系統(tǒng)支持 Xfce 圖形桌面環(huán)境、電容觸摸屏等功能。

3.1.1? ?OpenCV、Qt、Zbar、SQLite移植

OpenCV能很方便處理噴碼檢測(cè)過程中涉及到的圖像處理及通用算法[3]。Qt是一款優(yōu)秀的使用C++語言開發(fā)的跨多平臺(tái)的應(yīng)用程序及圖形界面開發(fā)框架,適合用于開發(fā)本系統(tǒng)的圖形應(yīng)用程序。zbar是一個(gè)開源的條形碼識(shí)別庫,可以從攝像頭、圖像文件、視頻等來源讀取條形碼[4],并支持多種常用條碼類型的識(shí)別,這里將其用于紙箱噴碼中條形碼的識(shí)別。SQLite是一款以能在嵌入式系統(tǒng)有限的硬件資源下正常使用為設(shè)計(jì)目標(biāo)的輕量型的數(shù)據(jù)庫,故將其用于滿足本系統(tǒng)檢測(cè)結(jié)果的入庫、查詢等需求。因此我們通過依次執(zhí)行下載相關(guān)源碼、使用cmake或./configure等生成Makefile、make及 install、 生成相關(guān)的bin及庫文件、拷貝到ARM端相應(yīng)目錄并配置系統(tǒng)環(huán)境等步驟即可將這些軟件工具移植到ARM中。

3.1.2? ?為caffe框架構(gòu)建并配置Arm NN SDK

如圖2所示,Arm NN建立起了現(xiàn)有深度學(xué)習(xí)框架(TensorFlow 、Caffe[5]等)與底層ARM處理器之間的連接。它可以加載、轉(zhuǎn)換、優(yōu)化在現(xiàn)有的深度學(xué)習(xí)框架下訓(xùn)練出來的模型,使其再無需修改地能夠在Arm Cortex CPU和Arm Mali GPU上高效運(yùn)行。本次配置Arm NN SDK版本號(hào)為18_11。

圖2? ?Arm NN SDK作用示意圖

在宿主機(jī)Ubuntu已經(jīng)配置好caffe、protobuf 等環(huán)境的前提下,為caffe配置并構(gòu)建Arm NN SDK開發(fā)環(huán)境可以分為如下幾個(gè)步驟:首先:從ARM官方GitHub下載Arm NN SDK和Arm Compute Library文件,并且配置好Cmake,SCons等編譯安裝工具。其次,指定armnn所需的依賴項(xiàng)的路徑,包括boost、caffe。然后,構(gòu)建armnn,具體包括使用scons 編譯Arm Compute Library以及使用Cmake構(gòu)建Arm NN SDK(通過CMakeLists.txt傳遞armnn構(gòu)建所需的諸多配置參數(shù))生成主要的3個(gè)庫文件libarmnn.so libarmnnCaffeParser.so libarmnnUtils.a。最后,運(yùn)行上一步生成的UnitTests測(cè)試文件以便驗(yàn)證Arm NN SDK是否完全構(gòu)建成功。

3.2? ?檢測(cè)算法設(shè)計(jì)

3.2.1? ?紙箱位置檢測(cè)

進(jìn)行紙箱噴碼內(nèi)容檢測(cè)的前提是采集到清晰完整噴碼的紙箱圖像。本系統(tǒng)以生產(chǎn)線上紙箱運(yùn)到相機(jī)鏡頭相對(duì)中心位置作為觸發(fā)條件來觸發(fā)紙箱噴碼內(nèi)容檢測(cè)。因此需要進(jìn)行紙箱相對(duì)相機(jī)鏡頭位置的檢測(cè),本文利用紙箱與背景的亮度差異作為特征使用圖像處理方法進(jìn)行軟件上的位置檢測(cè)。

在本系統(tǒng)固定環(huán)境下大量測(cè)試統(tǒng)計(jì)表明,相機(jī)采集到不含紙箱的背景圖像,轉(zhuǎn)換到HSV色彩空間后[6],其V明度分量值大于0.6的像素點(diǎn)數(shù)約占全圖像素的40%,而采集到的紙箱圖像相應(yīng)的的占比約為90%。據(jù)此設(shè)定閾值判別一個(gè)圖像區(qū)域內(nèi)是否含有紙箱。將采集到的圖像左邊1/4區(qū)域設(shè)定為in區(qū)域,將圖像右邊1/4區(qū)域設(shè)定為out區(qū)域。具體步驟:(1)設(shè)置標(biāo)志位g_flag_in、g_flag_match表明當(dāng)前采集到的幀圖像內(nèi)的紙箱狀態(tài),均初始化為0。(2)獲取相機(jī)采集到的幀圖像,并將尺寸縮減到原幀的1/3以減少運(yùn)算量(3)將源RGB圖轉(zhuǎn)換到HSV色彩空間,提取明度V分量并計(jì)算當(dāng)前幀圖像的in、out區(qū)域明度百分比P_in、P_out。

(4)進(jìn)行判別:

當(dāng)(g_flag_in=0)且(g_flag_match=0)且(P_in>0.9)且(P_out<0.4)時(shí)認(rèn)為此幀圖像屬于"有紙箱進(jìn)入鏡頭并充滿了in區(qū)域"的情形,令g_flag_in=1。

當(dāng)(g_flag_in=1)且(g_flag_match=0)且(P_in>0.9)且(P_out>0.9)時(shí)認(rèn)為此幀圖像屬于"有紙箱在進(jìn)入in區(qū)域之后又進(jìn)入并充滿out區(qū)域"的情形,此時(shí),整個(gè)紙箱應(yīng)處于鏡頭的相對(duì)中心,能采集到當(dāng)前紙箱上的完整噴碼內(nèi)容,認(rèn)為匹配一幀有效紙箱圖像,發(fā)送此幀圖像到相關(guān)顯示、識(shí)別線程,且令g_flag_match=1防止對(duì)同一個(gè)紙箱重復(fù)匹配。

當(dāng)(g_flag_in=1)且(g_flag_match=1)且(P_in<0.4)且(P_out<0.4)時(shí)認(rèn)為此幀圖像屬于"匹配紙箱后首次出現(xiàn)in、out區(qū)域均不含紙箱"的情形,此時(shí),說明匹配紙箱走出鏡頭范圍。令g_flag_in、g_flag_match標(biāo)志清零等待新幀繼續(xù)進(jìn)行判別。整個(gè)紙箱位置檢測(cè)算法簡潔有效,能在嵌入式平臺(tái)上實(shí)時(shí)運(yùn)行,一次紙箱位置檢測(cè)流程如圖3所示。

圖3? ?紙箱位置檢測(cè)流程圖

3.2.2? ?紙箱噴碼檢測(cè)

紙箱噴碼檢測(cè)的內(nèi)容包括圖像預(yù)處理、噴碼區(qū)域提取、條形碼識(shí)別、字符子串分割、噴碼字符識(shí)別模型訓(xùn)練、Arm端字符識(shí)別,識(shí)別結(jié)果處理。

3.2.2.1? ?圖像預(yù)處理

噴碼圖像的預(yù)處理步驟為:對(duì)如圖4(a)所示的原始彩色圖像進(jìn)行轉(zhuǎn)灰度變換,使用檢測(cè)水平邊緣的Sobel算子進(jìn)行邊緣檢測(cè),再使用OTSU算法進(jìn)行全局二值化。如圖所示3-1,使用邊緣檢測(cè)減少無關(guān)信息后的OTSU全局二值化效果良好,如圖4(b)所示。

(a)原始圖? ? ? ? ? ? ? ? ? ? ? ? (b)Otsu算法后二值圖

圖4? ?噴碼圖像預(yù)處理

3.2.2.2? ?噴碼區(qū)域提取

為了去除紙箱上除待識(shí)別噴碼區(qū)域以外的干擾信息,需要對(duì)中心噴碼區(qū)域進(jìn)行提取。對(duì)此,使用形態(tài)學(xué)操作后提取連通域提取的算法可以實(shí)現(xiàn)。具體的,對(duì)由預(yù)處理得到二值圖使用3*3的形態(tài)學(xué)操作核開操作消除點(diǎn)狀噪聲以及增大中心噴碼與外圍無關(guān)噴碼之間的距離,再使用25*25的操作核膨脹將各個(gè)噴碼子串形成連通域,如圖5(a)所示,查找圖中輪廓,排序輪廓面積,最大者即為該連通域,獲取該輪廓的外接矩形,再使用ROI框選即可提取到中心噴碼區(qū)域,如圖5(b)所示。提取到中心噴碼區(qū)域后,需要進(jìn)一步提取各噴碼子串。首先,進(jìn)行開操作濾波去除散落的小點(diǎn)狀噪聲后再進(jìn)行水平投影分割大致分割出4個(gè)噴碼子串區(qū)域。其次,分別在各子串區(qū)域內(nèi)使用25*1的操作核膨脹使得各子串自身橫向聯(lián)通,再查找輪廓及通過面積、縱橫比等篩選輪廓。最后,使用opencv中的RotatedRect類獲取輪廓的最小外接旋轉(zhuǎn)矩形即可實(shí)現(xiàn)各噴碼子串區(qū)域的精確提取,結(jié)果如圖5(c)所示。利用getRectSubPix()提取出對(duì)應(yīng)的噴碼子串的矩形ROI區(qū)域。由于提取到的矩形ROI區(qū)域可能存在一定的傾斜角度,故采用仿射變換對(duì)每個(gè)旋轉(zhuǎn)矩形進(jìn)行傾斜校正。

計(jì)算機(jī)圖形學(xué)中一般按照公式(1)的方式處理仿射變換:

i′1 = A? b0? 1i1? ? ? ? (1)

其中A = a11? a12a21? a22 ,i = xy,b = a13a23,i′ = x′y,A? b,為仿射變換矩陣。旋轉(zhuǎn)矩形的傾斜校正后即完成了各噴碼子串的提取,如圖5(d)所示。

(a)二值圖形態(tài)學(xué)操作結(jié)果? ? ? ? ? ? ? ? ? ? ?(b)中心噴碼區(qū)域

(c)提取到的噴碼子串區(qū)域? ? ? ? ? ?(d)傾斜校正后的噴碼子串

圖5? ?噴碼區(qū)域提取

3.2.2.3? ?字符子串分割

由于光照的并不能做到完全的均勻,子串左右兩端存在一定的灰度差異,全局二值化產(chǎn)生的閾值會(huì)使得端點(diǎn)附近字符二值化效果較差,所以這里需采取局部自適應(yīng)二值化。最后,對(duì)二值化后微量的散落的黑斑塊采取形態(tài)學(xué)操作核為5*5的閉操作,獲得干擾最小化的子串,如圖6(a)所示。其中,經(jīng)過同等處理的條形碼子串已經(jīng)可以調(diào)用zbar庫進(jìn)行條碼識(shí)別。

本系統(tǒng)環(huán)境下出現(xiàn)投影分割異常的基本都是相鄰字符粘連的情形,故采用帶有粘連處理的垂直投影分割法進(jìn)行噴碼子串字符分割:首先,按列統(tǒng)計(jì)各列黑色字符點(diǎn)數(shù)到數(shù)組,創(chuàng)建同尺寸純背景圖,根據(jù)統(tǒng)計(jì)的列點(diǎn)數(shù)逐列繪制垂直投影直方圖。然后,從左到右按列遍歷,再設(shè)定標(biāo)志位inBlock以表達(dá)當(dāng)前遍歷點(diǎn)是否位于字符區(qū)域內(nèi)部。最后,以列的黑像素點(diǎn)數(shù)為0時(shí),inBlock是否為真來判定當(dāng)前遍歷點(diǎn)是字符區(qū)域的起點(diǎn)還是終點(diǎn),從而分割字符。在上述過程中,遍歷到終點(diǎn)時(shí)進(jìn)行字符粘連情形判斷,即:(1)取原圖寬的1/9作為平均字符寬度Width_avr,設(shè)定Width_max=1.25*Width_avr。(2)若投影寬度為i*Width_max與(i+1)*Width_max之間時(shí)認(rèn)為有i個(gè)相鄰字符粘連。(3)在當(dāng)前投影段橫向上[1/2i,3/2i]、[3/2i,5/2i]...[2i-3/2i,2i-1/2i]等區(qū)間內(nèi)分別尋找該區(qū)間內(nèi)列黑像素?cái)?shù)點(diǎn)和最少的列,將其視作區(qū)間內(nèi)相鄰粘連字符的實(shí)際分割列,再使用ROI提取實(shí)際分割區(qū)域以完成分割。效果如圖6(b)所示。

(a)噴碼子串的全局與局部自適應(yīng)二值化效果

(b)粘連噴碼子串分割效果

圖6? ?字符子串分割

3.2.2.4噴碼字符識(shí)別模型訓(xùn)練

在大量生產(chǎn)的過程中,難免地會(huì)產(chǎn)生規(guī)整性較差的噴碼字符,如圖7所示。

圖7? ?規(guī)整性較差的噴碼字符

相對(duì)于傳統(tǒng)機(jī)器學(xué)習(xí),卷積神經(jīng)網(wǎng)絡(luò)不需要手動(dòng)或使用特征提取算法來進(jìn)行特征提取,而是用多個(gè)不同的卷積核在訓(xùn)練階段就完成了特征提取及抽象。此外,由于其采用了局部連接、權(quán)值共享、下采樣層等能大幅降低參數(shù)總量的特性,能夠在參數(shù)量可接受的情況下加深網(wǎng)絡(luò)層數(shù),使得網(wǎng)絡(luò)整體的表達(dá)能力更強(qiáng),實(shí)現(xiàn)更好的學(xué)習(xí)效果。LeNet是一種經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu) ,已經(jīng)在手寫數(shù)字?jǐn)?shù)據(jù)集Mnist上取得的優(yōu)異的識(shí)別效果,所以我們?cè)趌enet-5網(wǎng)絡(luò)的基礎(chǔ)上作出調(diào)整后用于噴碼字符的識(shí)別:根據(jù)分割后噴碼字符的縱橫比,將輸入層數(shù)據(jù)尺寸改為32*16。這樣可以減少形變丟失特征信息也減少了參數(shù)量,加快了網(wǎng)絡(luò)訓(xùn)練及推理的速度。此外,池化層的池化方式改用最大值池化,激活函數(shù)改用PReLU[7-8]函數(shù),輸出層的分類器改用Softmax回歸分類器。 調(diào)整后lenet網(wǎng)絡(luò)結(jié)構(gòu)如圖8所示。其中,由于標(biāo)準(zhǔn)RELU函數(shù)在訓(xùn)練過程中可能出現(xiàn)部分神經(jīng)元“壞死”現(xiàn)象,PReLU近年被提出,PReLU表示帶參數(shù)的ReLU函數(shù),ReLU、PReLU函數(shù)如公式(2)、(3)所示,PReLU相對(duì)于 ReLU的不同在于新引入了可訓(xùn)練的參數(shù)ai作用于x負(fù)半軸,這避免了函數(shù)在x負(fù)半軸范圍內(nèi)倒數(shù)變成0,從而修正了數(shù)據(jù)的分布,解決了訓(xùn)練過程中可能出現(xiàn)的神經(jīng)元“壞死”問題,而更新參數(shù)ai時(shí),使用帶動(dòng)量的BP算法進(jìn)行更新,如公式(4)所示,式中μ、η兩個(gè)系數(shù)分別表示動(dòng)量系數(shù)與學(xué)習(xí)率。

RELU(xi) = xi? ?if xi > 00? ?if xi ≤ 0? ? ? ? (2)

PRELU(xi) = xi? ?if xi > 0aixi? ?if xi ≤ 0i? ? ? ? (3)

Δai = μΔai + η■? ? ? ? (4)

圖8? ?調(diào)整后的lenet網(wǎng)絡(luò)結(jié)構(gòu)

噴碼數(shù)據(jù)集制作,將系統(tǒng)硬件架設(shè)于生產(chǎn)線上,驅(qū)動(dòng)相機(jī)持續(xù)采集包裝噴碼圖片,從中選取出各型號(hào)及批次紙箱1000多幅原始噴碼圖片,經(jīng)過預(yù)處理,區(qū)域提取,噴碼分割及尺寸歸一化后,得到大量32*16尺寸的單字符圖片,于其中手動(dòng)篩選數(shù)字0至9十類圖片使每類圖片都達(dá)560張(取決于出現(xiàn)較低頻率的數(shù)字的數(shù)量),再在一定范圍內(nèi)隨機(jī)平移和旋轉(zhuǎn)擾動(dòng)增強(qiáng)數(shù)據(jù)集,使數(shù)據(jù)集總數(shù)達(dá)到22400張,按比例分成訓(xùn)練集和測(cè)試集存放于caffe對(duì)應(yīng)目錄下,并從文件名提取各圖片標(biāo)簽。以shuffle打亂文件順序方式生成數(shù)據(jù)集lmdb文件。拷貝數(shù)據(jù)集、網(wǎng)絡(luò)定義文件、超參數(shù)文件等到caffe相關(guān)目錄,執(zhí)行網(wǎng)絡(luò)訓(xùn)練命令。本文調(diào)整后的lenet網(wǎng)絡(luò)在自制的噴碼字符數(shù)據(jù)集上迭代約6000輪后訓(xùn)練結(jié)果趨向穩(wěn)定,準(zhǔn)確率達(dá)到了99.37%。

此外,還在宿主機(jī)環(huán)境下構(gòu)建了基于模板匹配和傳統(tǒng)的三層BP神經(jīng)網(wǎng)絡(luò)的噴碼字符識(shí)別實(shí)驗(yàn),使用相同的測(cè)試集數(shù)據(jù)進(jìn)行測(cè)試,得到識(shí)別率及性能對(duì)比如表1所示。

表1? ?不同識(shí)別算法的識(shí)別率比較

顯然,基于lenet5調(diào)整的卷積神經(jīng)網(wǎng)絡(luò)在噴碼字符的識(shí)別上相較基于模板匹配及傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)的算法識(shí)別率有明顯提高,雖然識(shí)別耗時(shí)也相應(yīng)變長,但對(duì)系統(tǒng)整體的的實(shí)時(shí)性影響較小,屬于可接受的范圍內(nèi)。

3.2.2.5? ?Arm端字符識(shí)別

在ARM端通過Arm NN SDK加載由宿主機(jī)環(huán)境下訓(xùn)練出的caffemodel執(zhí)行噴碼字符識(shí)別步驟如下:

(1)使用opencv加載分割出的噴碼字符圖片逐像素輸入到輸入張量InputTensors。

(2)調(diào)用Arm NN接口ICaffeParserPtr::CreateNetworkFromBinaryFile()從前述步驟中訓(xùn)練出的caffemodel文件中讀取網(wǎng)絡(luò)結(jié)構(gòu)及權(quán)值參數(shù)等信息。同時(shí)通過GetNetworkInputBindingInfo()接口為網(wǎng)絡(luò)中的data輸入層、prob輸出層尋找綁定結(jié)點(diǎn),并返回給armnnCaffeParser::BindingPointInfo類型變量。

(3)根據(jù)ARM底層處理器類型(gpu、cpu、無neon優(yōu)化cpu)選擇網(wǎng)絡(luò)優(yōu)化參數(shù)(GpuAcc、CpuAcc、CpuRef),本文硬件平臺(tái)ARM cortex-A9內(nèi)核處理器基于ARMv7-A架構(gòu),屬于可開啟neon運(yùn)算加速的ARM CPU,選擇CpuAcc優(yōu)化參數(shù)。Optimize(*network,CpuAcc,runtime->GetDeviceSpec())。

(4)創(chuàng)建Arm NN runtime并加載優(yōu)化過的網(wǎng)絡(luò):runtime->LoadNetwork(networkIdentifier,std::move(optNet))。

(5)調(diào)用runtime->EnqueueWorkload(networkIdentifier,InputTensors,OutputTensors)執(zhí)行單向推斷識(shí)別噴碼字符。

3.3? ?應(yīng)用程序設(shè)計(jì)

由于系統(tǒng)在使用自動(dòng)檢測(cè)模式時(shí)需要處理相機(jī)的實(shí)時(shí)采集、紙箱位置檢測(cè)、噴碼內(nèi)容檢測(cè)、主界面的人機(jī)交互4個(gè)模塊的任務(wù),為提升系統(tǒng)運(yùn)行效率以及防止Qt主界面的凍結(jié),需采取Qt的多線程技術(shù)來應(yīng)對(duì)[9-10]。在主界面線程的基礎(chǔ)上新開辟3個(gè)線程,并使用Qt的信號(hào)與槽、線程同步實(shí)現(xiàn)線程間通信、數(shù)據(jù)傳輸。

如圖9所示,圖像采集子線程負(fù)責(zé)循環(huán)的采集幀圖片并且發(fā)給主界面及紙箱位置檢測(cè)子線程,紙箱位置檢測(cè)子線程負(fù)責(zé)循環(huán)的對(duì)接收到的幀圖片進(jìn)行檢測(cè)是否含有有效紙箱,若是則將其發(fā)送給噴碼檢測(cè)子線程,噴碼檢測(cè)子線程負(fù)責(zé)循環(huán)的對(duì)收到的有效紙箱幀圖片進(jìn)行內(nèi)容識(shí)別并返回結(jié)果到主界面。主界面線程與各子線程的交互分為顯示控件與功能控件兩部分:主界面上將各子線程返回信息實(shí)時(shí)顯示到相應(yīng)的顯示控件和用主界面上的功能控件實(shí)現(xiàn)對(duì)各子線程內(nèi)容的調(diào)用。

圖9? ?Qt多線程應(yīng)用程序結(jié)構(gòu)

4? ?系統(tǒng)功能實(shí)現(xiàn)及應(yīng)用測(cè)試

4.1? ?系統(tǒng)功能實(shí)現(xiàn)

系統(tǒng)菜單主要由“檢測(cè)”、“查詢”、“設(shè)置”、“調(diào)試”四個(gè)功能模塊組成。

檢測(cè)模塊分為自動(dòng)檢測(cè)與單個(gè)檢測(cè),其中自動(dòng)檢測(cè)為系統(tǒng)的核心功能。具體的,界面左上方的圖形視圖窗口用來實(shí)時(shí)顯示相機(jī)采集,右上方的QLabel窗口用來顯示匹配到的有效紙箱,點(diǎn)擊“自動(dòng)檢測(cè)”按鈕開啟系統(tǒng)的自動(dòng)檢測(cè)模式。檢測(cè)中會(huì)將檢測(cè)信息返回到主界面實(shí)時(shí)顯示,如圖所示,識(shí)別結(jié)果欄會(huì)顯示識(shí)別出的噴碼內(nèi)容。當(dāng)前編號(hào)欄的值會(huì)根據(jù)識(shí)別過的紙箱數(shù)遞增,當(dāng)前結(jié)果欄會(huì)顯示識(shí)別是否成功。實(shí)時(shí)信息輸出欄會(huì)輸出程序運(yùn)行過程的實(shí)時(shí)打印信息。失敗列表欄輸出識(shí)別失敗的紙箱編號(hào),同時(shí)報(bào)警提示產(chǎn)線人員確認(rèn)復(fù)檢及檢出。

單個(gè)檢測(cè),主要用于單個(gè)紙箱檢測(cè)、自動(dòng)檢測(cè)模式下的遺漏復(fù)檢、檢測(cè)本地紙箱噴碼圖片等需求。

查詢模塊分為屬性查詢與統(tǒng)計(jì)查詢.系統(tǒng)會(huì)將每次識(shí)別的紙箱信息自動(dòng)保存到本地?cái)?shù)據(jù)庫。屬性查詢按照檢測(cè)日期、紙箱序列號(hào)、檢測(cè)編號(hào)、型號(hào)容量、是否成功等屬性來查詢某條檢測(cè)記錄。如圖所示。而統(tǒng)計(jì)查詢可以進(jìn)行設(shè)定首尾日期內(nèi)的檢測(cè)的成功率,型號(hào)、容量檢測(cè)數(shù)量的統(tǒng)計(jì)。

調(diào)試模塊可以實(shí)時(shí)顯示檢測(cè)算法各步驟運(yùn)行的結(jié)果以及對(duì)一些步驟的參數(shù)進(jìn)行調(diào)整。系統(tǒng)整體的軟件功如圖10所示。

圖10? ?系統(tǒng)軟件功能圖

4.2? ?系統(tǒng)應(yīng)用測(cè)試

分別在6組不同型號(hào)、容量的包裝紙箱進(jìn)行生產(chǎn)時(shí),調(diào)節(jié)好對(duì)應(yīng)的相機(jī)距離,讓系統(tǒng)進(jìn)入自動(dòng)檢測(cè)模式進(jìn)行持續(xù)測(cè)試,當(dāng)系統(tǒng)識(shí)別異常報(bào)警時(shí),進(jìn)行人工復(fù)檢,確認(rèn)該紙箱噴碼是否噴印異常,最后依據(jù)公式(5)統(tǒng)計(jì)得出系統(tǒng)的正檢率。統(tǒng)計(jì)結(jié)果如表2所示。

正檢率=(1 - ■) × 100%

(5)

測(cè)試結(jié)果基本達(dá)到了系統(tǒng)預(yù)設(shè)的指標(biāo),表明本系統(tǒng)在生產(chǎn)線上運(yùn)轉(zhuǎn)良好,能實(shí)現(xiàn)對(duì)多種型號(hào)、容量下的紙箱噴碼檢測(cè)。

表2? ?系統(tǒng)運(yùn)行正檢率

5? ?結(jié)? 論

針對(duì)目前的噴碼檢測(cè)系統(tǒng)的一些不足,設(shè)計(jì)了一套基于Qt與Arm NN的嵌入式噴碼檢測(cè)系統(tǒng),分別進(jìn)行了系統(tǒng)軟硬件的設(shè)計(jì)。硬件上,設(shè)計(jì)了以高性能ARM處理器為運(yùn)算核心與其他外設(shè)組成硬件平臺(tái)。軟件上,首先進(jìn)行了軟件環(huán)境的搭建。其次設(shè)計(jì)了位置檢測(cè)算法來用于檢測(cè)待測(cè)目標(biāo)位置、噴碼檢測(cè)算法用于檢測(cè)噴碼內(nèi)容,其中,在字符識(shí)別環(huán)節(jié)利用Arm NN將在caffe框架下訓(xùn)練出的噴碼字符識(shí)別模型引入到ARM端并實(shí)現(xiàn)了對(duì)噴碼字符準(zhǔn)確識(shí)別。最后根據(jù)生產(chǎn)人員的需求分析開發(fā)了功能完善的人機(jī)交互軟件。實(shí)際使用表明,本系統(tǒng)運(yùn)作良好,噴碼檢測(cè)過程中的識(shí)別率、正檢率均較高,可以滿足實(shí)際生產(chǎn)中的需求。

參考文獻(xiàn)

[1]? ? 劉海龍,李寶安,呂學(xué)強(qiáng),等. 基于深度卷積神經(jīng)網(wǎng)絡(luò)的圖像檢索算法研究[J].計(jì)算機(jī)應(yīng)用研究,2017,34(12):3816—3819.

[2]? ? Arm Limited. About arm NN SDK[EB/OL].https://developer.arm.com/ip-products/processor s/machine-learning/arm-nn,2018-02-09.

[3]? ? 毛星云. OPENCV3編程入門[M]. 北京:電子工業(yè)出版社,2015.

[4]? ? 吳兆林. 基于Zbar條形碼圖像識(shí)別的實(shí)現(xiàn)[J]. 數(shù)字技術(shù)與應(yīng)用,2016(8):128—129.

[5]? ? 歐先鋒,向燦群,郭龍?jiān)矗? 基于Caffe深度學(xué)習(xí)框架的車牌數(shù)字字符識(shí)別算法研究[J].四川大學(xué)學(xué)報(bào):自然科學(xué)版,2017(05):83—89.

[6]? ? 李潘,吳少波,王麗娜. 基于機(jī)器視覺的寬厚板噴碼自動(dòng)識(shí)別系統(tǒng)[J]. 冶金自動(dòng)化,2013(4):12—15.

[7]? ? COLNAGHI S,HONEINE J L,SOZZI S,et al. Body sway increases after functional inactivation of the cerebellar vermis by cTBS[J]. Cerebellum,2017,16(1):1—14.

[8]? ? ZHANG H,YING L,ZHANG Y,et al. Spectral-spatial classification of hyperspectral imagery using a dual-channel convolutional neural network[J]. Remote Sensing Letters,2017,8(5):438—447.

[9]? ? 張慶.車牌識(shí)別算法及其在QT平臺(tái)上的實(shí)現(xiàn)[D]. 北京:北方工業(yè)大學(xué),2017.

[10]? 姚宇樂,陳強(qiáng),張九衛(wèi),等. 基于ARM920T的嵌入式圖像處理平臺(tái)搭建及應(yīng)用[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用,2016(7):208—212.

猜你喜歡
嵌入式
Focal&Naim同框發(fā)布1000系列嵌入式揚(yáng)聲器及全新Uniti Atmos流媒體一體機(jī)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設(shè)計(jì)與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發(fā)平臺(tái)
基于嵌入式系統(tǒng)Windows CE的應(yīng)用程序開發(fā)
嵌入式單片機(jī)在電機(jī)控制系統(tǒng)中的應(yīng)用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 亚洲69视频| 蜜桃臀无码内射一区二区三区 | 亚洲成人一区二区三区| 日韩欧美中文亚洲高清在线| 一本一本大道香蕉久在线播放| 色天天综合| 欧美精品成人一区二区视频一| 国产91成人| 91福利国产成人精品导航| 色综合久久综合网| 国产女人爽到高潮的免费视频| 亚洲大学生视频在线播放| 91色在线观看| 日韩精品无码不卡无码| 精品成人免费自拍视频| 99无码熟妇丰满人妻啪啪| 国产jizzjizz视频| 四虎精品国产AV二区| 91毛片网| 欧美一区二区三区欧美日韩亚洲| 久久久久无码国产精品不卡 | 日韩精品一区二区三区中文无码| 成人免费视频一区二区三区| 国产永久免费视频m3u8| 亚洲另类国产欧美一区二区| 国产精品午夜福利麻豆| 亚洲最大综合网| 波多野结衣在线一区二区| 2021国产在线视频| 亚洲精品国产综合99久久夜夜嗨| 91精品人妻互换| 亚洲精品大秀视频| 国产成人一区| 青青青国产视频| 国产精品漂亮美女在线观看| a级高清毛片| 精品亚洲欧美中文字幕在线看| 日韩毛片基地| 亚洲精品男人天堂| 九九久久精品免费观看| 啪啪啪亚洲无码| 亚洲有无码中文网| 国产三级国产精品国产普男人| 夜夜操天天摸| 97精品伊人久久大香线蕉| 国产黑人在线| 欧美中文字幕在线二区| 国产精品自在在线午夜| 亚亚洲乱码一二三四区| 久久久久久高潮白浆| 国产精品毛片一区| 毛片免费在线视频| 国模视频一区二区| 自偷自拍三级全三级视频 | 婷婷久久综合九色综合88| 免费不卡视频| 欧美成一级| 综合亚洲色图| 国产日韩欧美黄色片免费观看| 强奷白丝美女在线观看| 国产一级精品毛片基地| 亚洲无码A视频在线| 国产毛片一区| 在线另类稀缺国产呦| 好吊日免费视频| 伊人国产无码高清视频| 欧美性色综合网| 扒开粉嫩的小缝隙喷白浆视频| 成人精品区| 国产精品久久久久婷婷五月| 亚洲无码视频喷水| 精品国产一区91在线| 热re99久久精品国99热| 欧美一区二区三区欧美日韩亚洲| 不卡无码网| 怡红院美国分院一区二区| 亚洲区欧美区| 在线观看的黄网| 成人亚洲天堂| 亚洲国产av无码综合原创国产| 国产视频a| 亚洲精品手机在线|