張湖波,鄒細(xì)勇,邵建文,趙存彬,駱 蕾
(1.中國計量大學(xué)光學(xué)與電子科技學(xué)院,浙江 杭州 310018;2.浙江省計量科學(xué)研究院,浙江 杭州 310018)
呼出氣體酒精含量檢測儀(以下簡稱酒檢儀)是交通執(zhí)法部門巡查駕駛員酒駕、醉駕時的檢測工具。目前,酒檢儀的計量檢定人員往往是手動記錄數(shù)據(jù)并填入原始記錄表,經(jīng)過三級審查審批程序后出具檢定證書[1],耗費大量的時間和精力。為了實現(xiàn)模擬人體呼出酒精氣體的要求,設(shè)計恒溫恒流的配氣裝置,氣源選擇來自國家一級標(biāo)準(zhǔn)物質(zhì)的空氣中乙醇?xì)怏w(以下簡稱乙醇鋼瓶氣)。依據(jù)文獻[2],每檢定一臺酒檢儀,后續(xù)檢定需要用酒檢儀測量52 個數(shù)據(jù)作為檢定點,首次檢定需要超過100 個檢定點,人工讀數(shù)工作量大,這不符合計量技術(shù)和智慧檢測的發(fā)展趨勢。
為了實現(xiàn)工業(yè)自動化和智能化,采用機器視覺技術(shù)代替人眼視覺對圖像進行識別處理已經(jīng)應(yīng)用在工業(yè)電子裝配缺陷檢測、汽車制造、食品監(jiān)控、交通、紡織加工等多個領(lǐng)域[3],在計量行業(yè)主要應(yīng)用于尺寸檢測[4]、水表檢定[5]、指針式儀表檢定[6]、儀表數(shù)字字符識別[7]等領(lǐng)域。文獻[8]基于彩色圖像的顏色判定、字符分割、字符粗細(xì)判定、字符手寫體或打印體判定的方法,實現(xiàn)對復(fù)雜背景下的票據(jù)字符類型的識別。文獻[9]基于LabVIEW 設(shè)計了一套適用于多表位數(shù)字溫濕度計的自動校準(zhǔn)系統(tǒng),通過Niblack 算法進行動態(tài)閾值分割,通過NI Vision Assistant 視覺助手中OCR 字符訓(xùn)練功能訓(xùn)練后進行字符識別。文獻[10]通過圖像傳感器采集存儲鋼板板坯噴標(biāo)字符圖像,采用開源平臺實現(xiàn)了板坯字符在線自動識別。文獻[11]針對出租車計價器七段碼類別的圖像數(shù)字,提出采用SIFT 特征匹配算法識別計價器型號,為了減小視角形變,對匹配出來的計價器圖像進行圖像矯正,再進行跳表數(shù)字定位與識別,提高了識別準(zhǔn)確率。酒檢儀品牌型號眾多,屏幕存在反光、尺寸大小不一等問題,為了實現(xiàn)對酒檢儀示值字符的識別,設(shè)計了穩(wěn)定的機器視覺系統(tǒng),對多型號酒檢儀酒檢儀示值字符進行在線實時識別,對數(shù)據(jù)進行保存和處理,自動生成報表。經(jīng)人工核查比對,在實現(xiàn)自動化檢定工作的同時提高了工作效率。
呼出氣體酒精含量檢測儀自動檢定裝置由配氣裝置和機器視覺系統(tǒng)及設(shè)計的上位機軟件組成。配氣裝置的進氣口使用國家一級標(biāo)準(zhǔn)物質(zhì)的空氣中乙醇?xì)怏w作為輸入氣體,向酒檢儀通入氣體時,酒檢儀進氣管對準(zhǔn)配氣裝置的出氣口。開始檢定時,檢定裝置產(chǎn)生恒溫恒流的乙醇?xì)怏w,通入被檢酒檢儀,同時相機采集酒檢儀的示值圖像。由軟件內(nèi)設(shè)計的識別算法識別出結(jié)果,進行數(shù)據(jù)保存和處理。按照檢定規(guī)程的要求,完成所有檢定項目后,自動生成相關(guān)的報告并保存。
檢定裝置實現(xiàn)指標(biāo)包括:
1)通過上位機軟件控制配氣裝置,實現(xiàn)對各氣體管路的選通控制,實現(xiàn)對氣體管路內(nèi)氣體的恒溫恒流控制,實現(xiàn)流量在(6~36)L/min 連續(xù)可調(diào)和溫度穩(wěn)定在(34±0.5)℃的要求;
2)采用機器視覺技術(shù)設(shè)計識別算法,在軟件內(nèi)選擇酒檢儀的型號,應(yīng)用相應(yīng)型號酒檢儀的識別程序?qū)崿F(xiàn)對酒檢儀示值的準(zhǔn)確識別;
3)軟件具有用戶登錄和歷史數(shù)據(jù)查詢功能,能夠進行查詢、刪除和預(yù)覽記錄的操作,能夠?qū)ε錃庋b置和工業(yè)相機進行實時控制,能夠自動生成原始記錄表和檢定證書。
如圖1 所示,系統(tǒng)的硬件組成主要包括配氣裝置、機器視覺系統(tǒng)、計算機和被檢酒檢儀等部分。計算機通過USB 轉(zhuǎn)RS 485 線連接現(xiàn)有檢定裝置,通過Modbus RTU 協(xié)議收發(fā)指令。計算機控制現(xiàn)有檢定裝置,將恒溫恒流氣體輸入至被檢酒檢儀中,被檢酒檢儀顯示示值。計算機通過GigE 網(wǎng)口連接工業(yè)相機,通過機器視覺系統(tǒng)采集圖像,識別被檢酒檢儀的示值,傳輸至計算機中。
配氣裝置主要包括:單片機、人機界面、六路鋼瓶氣和對應(yīng)的減壓閥、一路壓縮空氣鋼瓶氣和對應(yīng)的減壓閥、六路電磁閥、六路氣動閥、質(zhì)量流量控制器、兩級溫度控制器、三處溫度傳感器和開關(guān)電源等。
如圖2 所示,開始工作時,打開外接的一路壓縮空氣鋼瓶氣,氣體輸入至六路電磁閥處,在軟件中選擇某路氣體管路后,開啟對應(yīng)的電磁閥,壓縮氣體進入對應(yīng)的氣體管路,相應(yīng)的氣動閥達(dá)到壓力范圍,自動打開對應(yīng)輸入氣體管路的開關(guān),使得該路的輸入氣體進入氣體管路。輸入氣體經(jīng)過質(zhì)量流量控制器,流量被控制為15 L/min。經(jīng)過兩級溫度控制模塊的控制,出氣口輸出溫度為(34±0.5)℃的氣體,溫度由PT100 溫度傳感器進行測量,溫度傳感器位于兩級溫度控制器和出氣口這三處。在人機界面可以對各項參數(shù)進行手動修改,使單片機實現(xiàn)控制功能。
配氣裝置實物圖如圖3 所示,裝置左側(cè)為外接鋼瓶氣的進氣口(六路)和壓縮空氣鋼瓶氣的進氣口,右側(cè)為出氣口,裝置正面的右上側(cè)為人機界面,右下側(cè)為電源開關(guān)。
圖3 配氣裝置實物圖
機器視覺系統(tǒng)精度高、速度快,系統(tǒng)包括工業(yè)相機、鏡頭、光源和支架等,支架用于固定工業(yè)相機和光源的位置。
不同品牌型號酒檢儀需要不同大小的拍攝范圍,屏幕尺寸較小的谷雨S80 型號的屏幕尺寸為3.5 cm×3 cm,屏幕尺寸較大的大帝730Li 型號的屏幕尺寸為11.1 cm×6.3 cm。根據(jù)實際測量,相機與酒檢儀的垂直距離約為20 cm 時,適配各型號酒檢儀。
工業(yè)相機選擇分辨率為1 280×960 像素,最高幀率為45 f/s 的映美精工業(yè)相機,型號為23GM021。相機通過GigE 網(wǎng)口向上位機軟件傳輸圖像,由軟件程序識別結(jié)果。選取焦距為6 mm,最大光圈為F16 的鏡頭。根據(jù)實際需要,為了環(huán)境穩(wěn)定,選擇條形LED 光源,將兩個條形光源平行安裝于相機的兩側(cè),均勻照射被拍攝的目標(biāo)區(qū)域,如圖4 所示。
圖4 機器視覺系統(tǒng)
上位機軟件使用C#語言開發(fā),該軟件可以控制配氣裝置中的下位機和機器視覺系統(tǒng)中的工業(yè)相機,下位機即配氣裝置中的單片機。上位機軟件通過Modbus 串口通信協(xié)議與下位機建立通信,對功能的各個地址位賦值進行控制。利用MySQL 數(shù)據(jù)庫開發(fā)數(shù)據(jù)庫,在上位機軟件中設(shè)計用戶登錄功能,并設(shè)計后續(xù)的檢定信息填寫功能。設(shè)計串口設(shè)置模塊用于連接下位機,在實時數(shù)據(jù)模塊中設(shè)計對溫度、流量、閥門等的控制和讀取。在Halcon 中開發(fā)針對酒檢儀示值的識別方法,然后嵌入上位機軟件中進行實時識別和數(shù)據(jù)處理。通過編寫Spire組件的程序,處理識別得到的數(shù)據(jù),并生成至模板中,自動得到原始記錄表和檢定報告證書。圖5為軟件總體結(jié)構(gòu)。
圖5 軟件總體結(jié)構(gòu)
上位機軟件界面如圖6 所示,用戶注冊登錄界面為起始界面,登錄成功后進入檢定界面。檢定界面上的主要功能分為檢定設(shè)置和報告生成,主要模塊分為串口設(shè)置、實時數(shù)據(jù)、氣路設(shè)置、檢定項目、圖像等功能模塊。
圖6 上位機軟件界面
對被檢酒檢儀進行單次檢測時,軟件控制的實現(xiàn)流程如圖7 所示。登錄軟件后,填寫檢定信息,然后連接串口,裝置開始預(yù)熱,預(yù)熱完成后,選擇手動模式或自動模式,然后分別實現(xiàn)手動和自動選擇氣路,經(jīng)由圖像識別得到示值結(jié)果,然后對數(shù)據(jù)進行保存和處理。
圖7 軟件實現(xiàn)流程
手動模式由人工判斷是否結(jié)束,人工選擇下一次需要的氣體管路和通氣時間。自動模式通過軟件自動進行檢定項目的執(zhí)行,如在示值誤差的檢定中,軟件自動選擇通和斷的時間,一次結(jié)束后自動進行下一次工作。完成所有需要的檢定項目后,最后點擊生成報告。
對于酒檢儀的示值圖像識別主要分為兩個部分[12]:示值字符定位、示值字符識別。進行圖像處理首先要去除非目標(biāo)區(qū)域,從而得到需要的感興趣(Region of Interest, ROI)區(qū)域。酒檢儀示值字符的定位是通過定位提取酒檢儀屏幕區(qū)域,然后在這個ROI 區(qū)域中提取出字符的。圖像識別算法流程如圖8 所示。
圖8 圖像識別算法流程
2.2.1 圖像采集
為了節(jié)省資源,使用黑白工業(yè)相機省去了彩色圖像的灰度化過程,因此采集的圖像為灰度圖像。圖9a)為采集的酒檢儀示值原圖像(以谷雨S80 為例),圖像中酒檢儀以外的區(qū)域為背景。
圖9 提取屏幕區(qū)域
2.2.2 邊緣檢測
圖像邊緣是圖像中灰度值導(dǎo)數(shù)較大的區(qū)域邊界,也就是灰度值變化劇烈的區(qū)域,在圖像中觀察到酒檢儀的屏幕具有明顯的邊緣特征。邊緣檢測是一種圖像濾波算法,可以分割出邊緣區(qū)域。典型的算子包括Roberts、Sobel、Prewitt、Kirsch 和Canny 算子等[13]。酒檢儀有多種品牌型號,但通過圖像邊緣檢測均可提取出屏幕所在區(qū)域。
Canny 邊緣算子具有較好的邊緣檢測性能,被視為最成功的邊緣檢測算法之一[14]。原理是先用高斯濾波器平滑圖像;然后采用非極值抑制技術(shù)處理得到需要的邊緣圖像;調(diào)用edges_sub_pix 算子得到圖像中的邊緣,如圖9b)所示得到多個邊緣;再調(diào)用select_contours_xld算子根據(jù)特征選擇酒檢儀屏幕區(qū)域的邊緣;最后再調(diào)用gen_region_contour_xld 算子填充邊緣內(nèi)的區(qū)域,如圖9c)所示。
2.2.3 傾斜校正
由于人眼的視覺誤差,酒檢儀的擺放會有不同程度的傾斜,采集到的圖像一般會存在小于5°的傾斜,但最大一般不超過30°。圖10a)即為傾斜擺放的酒檢儀,為了便于后續(xù)的識別,屏幕區(qū)域及其中的字符區(qū)域需處于水平位置。由于圖像為平面圖像,所以考慮進行圖像的旋轉(zhuǎn)變換。圖像的旋轉(zhuǎn)是指圖像以某一點(一般是圖像的中心)為原點旋轉(zhuǎn)一定的角度,圖像上所有像素或灰度值都會隨之旋轉(zhuǎn)。圖像旋轉(zhuǎn)的原理是將輸入圖像繞笛卡爾坐標(biāo)系逆時針旋轉(zhuǎn)一個角度θ,旋轉(zhuǎn)校正主要是依靠檢測區(qū)域旋轉(zhuǎn)的角度來生成一個旋轉(zhuǎn)矩陣[15],旋轉(zhuǎn)變換后的圖像坐標(biāo)可以表示為:
圖10 圖像傾斜校正
為了確定旋轉(zhuǎn)角,需要尋找圖像中直線的傾斜角,或區(qū)域的傾斜角,采用orientation_region 算子計算ROI區(qū)域的方向,得到傾斜角的大小,再利用area_center 算子找到區(qū)域中心作為原點。調(diào)用vector_angle_to_rigid算子進行旋轉(zhuǎn),然后用affine_trans_image 算子得到旋轉(zhuǎn)后的屏幕區(qū)域圖像。
2.2.4 字符提取
在屏幕區(qū)域提取出示值字符,首先要進行閾值分割,將灰度值較低的區(qū)域篩選出來,實際篩選灰度范圍為0~25。篩選出的圖像通過連通域操作,打斷不同的像素區(qū)域,形成多個連通域。觀察圖像,為了避免字符斷裂的情況出現(xiàn),利用形態(tài)學(xué)的閉運算處理圖像。閉運算是形態(tài)學(xué)中的一種,可以彌合較窄的間斷和細(xì)長的溝壑[16],使得提取的示值字符更加完整。接著對字符區(qū)域進行特征篩選,實際篩選的參數(shù)范圍為高度在20~35 像素之間,寬度在70~135 像素之間。提取出示值字符后,進行字符分割,采用partition_dynamic 算子以距離的長度和百分比對字符進行動態(tài)分割。
在屏幕區(qū)域的定位提取過程中,可以采取和示值字符提取相似的方法,先對全局進行閾值分割,再利用連通域操作分割區(qū)域,利用區(qū)域提取區(qū)域。由于圖像不可避免會有少量的灰度不均衡存在,閾值分割對測試的圖像分割效果不太理想。利用Canny 邊緣檢測的方式解決了這一問題,該定位方式極大地削弱了光線的影響,提高了系統(tǒng)的魯棒性。準(zhǔn)備數(shù)據(jù)集時,需要二值化單字符,將圖11 中提取出的字符進行二值化處理,得到白底黑字的圖像。
圖11 示值字符定位提取
多層感知器(Multi Layer Perceptron, MLP)也被稱為人工神經(jīng)網(wǎng)絡(luò),屬于前饋人工神經(jīng)網(wǎng)絡(luò)[17]。在多層感知器中,層與層之間是全連接的。如圖12 所示,最左側(cè)是輸入層,接收網(wǎng)絡(luò)外部信息;中間是隱含層;最右側(cè)是輸出層,輸出網(wǎng)絡(luò)的結(jié)果。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程如圖13 所示。
圖12 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
圖13 神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程
Halcon 中有許多預(yù)訓(xùn)練字體,可以對提取成功的字符進行識別,但受到字體的影響較大,識別正確率無法保障。在拍攝的1 500 張圖像中,將1 000 張劃為訓(xùn)練集,其余500 張作為測試集。將1 000 張訓(xùn)練圖像中分割出的二值化單字符圖像分別存放在對應(yīng)數(shù)字的文件夾中,在Halcon 中訓(xùn)練并得到了分類器[18]。利用MLP 分類器對500 張測試圖像進行識別實驗,觀察識別準(zhǔn)確率、識別速度等,與軟件自帶的預(yù)訓(xùn)練字體作比較。圖像識別實驗的測試原理如圖14 所示,成功識別的圖像如圖15 所示,示值字符被成功分割,打上方框,標(biāo)注正確的結(jié)果。
圖14 圖像識別的測試原理
圖15 示值字符識別成功
由于不同品牌、型號的酒檢儀的屏幕尺寸、示值所在區(qū)域和字體等均不相同,需各自設(shè)計算法進行識別,然后由人工選擇型號。以兩種型號為例,用第2 節(jié)中相同的處理方法設(shè)計對應(yīng)算法,測試的結(jié)果如表1 所示。
表1 圖像識別實驗結(jié)果
實驗結(jié)果表明,MLP 分類器對谷雨S80 識別正確499 張,每張圖像的平均耗時為197.2 ms,識別正確率達(dá)到99.5%。軟件內(nèi)置的預(yù)訓(xùn)練字體對谷雨S80 識別正確487 臺,平均耗時185.4 ms,識別正確率為97.4%。對于大帝730Li,MLP 分類器識別正確500 臺,平均耗時150.6 ms,預(yù)訓(xùn)練字體對大帝730Li 識別正確468 張,識別正確率僅為93.6%,所以,采用MLP 分類器進行圖像分類與識別。對其他三種型號的測試過程中,也得到了和大帝730Li 接近的識別準(zhǔn)確率和時間。五種品牌型號的酒檢儀對測試圖片的識別準(zhǔn)確率達(dá)到了99.5%以上,平均耗時200 ms 以下。
呼氣中酒精濃度可以按照式(2)換算為實際狀態(tài)質(zhì)量濃度。
式中:C為呼氣中酒精濃度,單位為mg/L;P為檢定時大氣壓,單位為kPa;M為酒精分子的摩爾質(zhì)量,取46.07 g/mol;R為氣體常數(shù),取8.314 5 L·kPa/(mol·K);T為酒精氣體溫度,取307.15 K;x為呼氣中酒精濃度,單位為μmol/mol。
在檢定中,C可以簡化為:
呼氣中酒精質(zhì)量濃度(單位為mg/L)的數(shù)值是血液中酒精質(zhì)量濃度(單位為mg/100 mL)數(shù)值的220 倍。因此,只需要讀取大氣壓和鋼瓶上標(biāo)示的呼氣中酒精濃度,即可根據(jù)式(3)得到出口氣體的實際狀態(tài)質(zhì)量濃度。測量的大氣壓為101.3 kPa,呼氣中酒精濃度為鋼瓶氣上標(biāo)示的示數(shù),血液中酒精質(zhì)量濃度如表2 所示。
表2 濃度轉(zhuǎn)換結(jié)果
以送檢的五種型號各選取一臺進行測試,以后續(xù)檢定中的示值誤差、重復(fù)性和記憶殘留效應(yīng)這三項檢定項目,對自動檢定裝置進行測試,測試結(jié)果數(shù)據(jù)如表3 所示。
表3 酒檢儀檢定的測試結(jié)果
結(jié)合人工復(fù)核,可保證自動檢定工作正確運行。由于大部分業(yè)務(wù)為后續(xù)檢定,以30 臺酒檢儀的后續(xù)檢定為例,對酒檢儀進行所有呼氣測試的時間為操作時間,從開始測試酒檢儀到審核完成并出具檢定證書為全過程時間。漂移的檢定需要間隔4 h,對全過程時間有一定影響。手動檢定30 臺酒檢儀一般需要橫跨2 個工作日,平均操作時間共為9 h,平均全過程時間為3.5 個工作日。而使用本文裝置的自動檢定方式,平均操作時間為3 h,平均全過程時間為1.5 個工作日即可完成工作,大大提升了工作效率。對于首次檢定中的呼氣阻力檢定項目,本裝置采用外置差壓計進行檢定。
本文設(shè)計了基于機器視覺技術(shù)的呼出氣體酒精含量檢測儀自動檢定裝置,可選手動或自動檢定模式,實現(xiàn)酒檢儀的自動化檢定。該自動檢定裝置解決了呼出氣體酒精含量檢測儀手動檢定過程中氣體獲取方式繁瑣、裝置預(yù)熱時間過長、操作精度低等問題,縮短了獲得氣體的時長。該裝置結(jié)構(gòu)實用且符合自動化要求,能夠滿足多種型號酒檢儀的檢定工作。實驗結(jié)果表明,該裝置的上位機軟件可以實現(xiàn)五種型號酒檢儀示值的識別,對測試圖片的識別正確率達(dá)到了99.5%,單臺平均識別耗時200 ms 以內(nèi)。將檢定平均全過程時間從3.5 個工作日壓縮為1.5 個工作日,平均操作時間從9 h 降為3 h,為酒檢儀的自動化檢定提供了可行性方案,在未來的研究中,可以對酒檢儀的型號進行自動識別。