張湖波,鄒細勇,邵建文,趙存彬,駱 蕾
(1.中國計量大學光學與電子科技學院,浙江 杭州 310018;2.浙江省計量科學研究院,浙江 杭州 310018)
呼出氣體酒精含量檢測儀(以下簡稱酒檢儀)是交通執法部門巡查駕駛員酒駕、醉駕時的檢測工具。目前,酒檢儀的計量檢定人員往往是手動記錄數據并填入原始記錄表,經過三級審查審批程序后出具檢定證書[1],耗費大量的時間和精力。為了實現模擬人體呼出酒精氣體的要求,設計恒溫恒流的配氣裝置,氣源選擇來自國家一級標準物質的空氣中乙醇氣體(以下簡稱乙醇鋼瓶氣)。依據文獻[2],每檢定一臺酒檢儀,后續檢定需要用酒檢儀測量52 個數據作為檢定點,首次檢定需要超過100 個檢定點,人工讀數工作量大,這不符合計量技術和智慧檢測的發展趨勢。
為了實現工業自動化和智能化,采用機器視覺技術代替人眼視覺對圖像進行識別處理已經應用在工業電子裝配缺陷檢測、汽車制造、食品監控、交通、紡織加工等多個領域[3],在計量行業主要應用于尺寸檢測[4]、水表檢定[5]、指針式儀表檢定[6]、儀表數字字符識別[7]等領域。文獻[8]基于彩色圖像的顏色判定、字符分割、字符粗細判定、字符手寫體或打印體判定的方法,實現對復雜背景下的票據字符類型的識別。文獻[9]基于LabVIEW 設計了一套適用于多表位數字溫濕度計的自動校準系統,通過Niblack 算法進行動態閾值分割,通過NI Vision Assistant 視覺助手中OCR 字符訓練功能訓練后進行字符識別。文獻[10]通過圖像傳感器采集存儲鋼板板坯噴標字符圖像,采用開源平臺實現了板坯字符在線自動識別。文獻[11]針對出租車計價器七段碼類別的圖像數字,提出采用SIFT 特征匹配算法識別計價器型號,為了減小視角形變,對匹配出來的計價器圖像進行圖像矯正,再進行跳表數字定位與識別,提高了識別準確率。酒檢儀品牌型號眾多,屏幕存在反光、尺寸大小不一等問題,為了實現對酒檢儀示值字符的識別,設計了穩定的機器視覺系統,對多型號酒檢儀酒檢儀示值字符進行在線實時識別,對數據進行保存和處理,自動生成報表。經人工核查比對,在實現自動化檢定工作的同時提高了工作效率。
呼出氣體酒精含量檢測儀自動檢定裝置由配氣裝置和機器視覺系統及設計的上位機軟件組成。配氣裝置的進氣口使用國家一級標準物質的空氣中乙醇氣體作為輸入氣體,向酒檢儀通入氣體時,酒檢儀進氣管對準配氣裝置的出氣口。開始檢定時,檢定裝置產生恒溫恒流的乙醇氣體,通入被檢酒檢儀,同時相機采集酒檢儀的示值圖像。由軟件內設計的識別算法識別出結果,進行數據保存和處理。按照檢定規程的要求,完成所有檢定項目后,自動生成相關的報告并保存。
檢定裝置實現指標包括:
1)通過上位機軟件控制配氣裝置,實現對各氣體管路的選通控制,實現對氣體管路內氣體的恒溫恒流控制,實現流量在(6~36)L/min 連續可調和溫度穩定在(34±0.5)℃的要求;
2)采用機器視覺技術設計識別算法,在軟件內選擇酒檢儀的型號,應用相應型號酒檢儀的識別程序實現對酒檢儀示值的準確識別;
3)軟件具有用戶登錄和歷史數據查詢功能,能夠進行查詢、刪除和預覽記錄的操作,能夠對配氣裝置和工業相機進行實時控制,能夠自動生成原始記錄表和檢定證書。
如圖1 所示,系統的硬件組成主要包括配氣裝置、機器視覺系統、計算機和被檢酒檢儀等部分。計算機通過USB 轉RS 485 線連接現有檢定裝置,通過Modbus RTU 協議收發指令。計算機控制現有檢定裝置,將恒溫恒流氣體輸入至被檢酒檢儀中,被檢酒檢儀顯示示值。計算機通過GigE 網口連接工業相機,通過機器視覺系統采集圖像,識別被檢酒檢儀的示值,傳輸至計算機中。
配氣裝置主要包括:單片機、人機界面、六路鋼瓶氣和對應的減壓閥、一路壓縮空氣鋼瓶氣和對應的減壓閥、六路電磁閥、六路氣動閥、質量流量控制器、兩級溫度控制器、三處溫度傳感器和開關電源等。
如圖2 所示,開始工作時,打開外接的一路壓縮空氣鋼瓶氣,氣體輸入至六路電磁閥處,在軟件中選擇某路氣體管路后,開啟對應的電磁閥,壓縮氣體進入對應的氣體管路,相應的氣動閥達到壓力范圍,自動打開對應輸入氣體管路的開關,使得該路的輸入氣體進入氣體管路。輸入氣體經過質量流量控制器,流量被控制為15 L/min。經過兩級溫度控制模塊的控制,出氣口輸出溫度為(34±0.5)℃的氣體,溫度由PT100 溫度傳感器進行測量,溫度傳感器位于兩級溫度控制器和出氣口這三處。在人機界面可以對各項參數進行手動修改,使單片機實現控制功能。
配氣裝置實物圖如圖3 所示,裝置左側為外接鋼瓶氣的進氣口(六路)和壓縮空氣鋼瓶氣的進氣口,右側為出氣口,裝置正面的右上側為人機界面,右下側為電源開關。

圖3 配氣裝置實物圖
機器視覺系統精度高、速度快,系統包括工業相機、鏡頭、光源和支架等,支架用于固定工業相機和光源的位置。
不同品牌型號酒檢儀需要不同大小的拍攝范圍,屏幕尺寸較小的谷雨S80 型號的屏幕尺寸為3.5 cm×3 cm,屏幕尺寸較大的大帝730Li 型號的屏幕尺寸為11.1 cm×6.3 cm。根據實際測量,相機與酒檢儀的垂直距離約為20 cm 時,適配各型號酒檢儀。
工業相機選擇分辨率為1 280×960 像素,最高幀率為45 f/s 的映美精工業相機,型號為23GM021。相機通過GigE 網口向上位機軟件傳輸圖像,由軟件程序識別結果。選取焦距為6 mm,最大光圈為F16 的鏡頭。根據實際需要,為了環境穩定,選擇條形LED 光源,將兩個條形光源平行安裝于相機的兩側,均勻照射被拍攝的目標區域,如圖4 所示。

圖4 機器視覺系統
上位機軟件使用C#語言開發,該軟件可以控制配氣裝置中的下位機和機器視覺系統中的工業相機,下位機即配氣裝置中的單片機。上位機軟件通過Modbus 串口通信協議與下位機建立通信,對功能的各個地址位賦值進行控制。利用MySQL 數據庫開發數據庫,在上位機軟件中設計用戶登錄功能,并設計后續的檢定信息填寫功能。設計串口設置模塊用于連接下位機,在實時數據模塊中設計對溫度、流量、閥門等的控制和讀取。在Halcon 中開發針對酒檢儀示值的識別方法,然后嵌入上位機軟件中進行實時識別和數據處理。通過編寫Spire組件的程序,處理識別得到的數據,并生成至模板中,自動得到原始記錄表和檢定報告證書。圖5為軟件總體結構。

圖5 軟件總體結構
上位機軟件界面如圖6 所示,用戶注冊登錄界面為起始界面,登錄成功后進入檢定界面。檢定界面上的主要功能分為檢定設置和報告生成,主要模塊分為串口設置、實時數據、氣路設置、檢定項目、圖像等功能模塊。

圖6 上位機軟件界面
對被檢酒檢儀進行單次檢測時,軟件控制的實現流程如圖7 所示。登錄軟件后,填寫檢定信息,然后連接串口,裝置開始預熱,預熱完成后,選擇手動模式或自動模式,然后分別實現手動和自動選擇氣路,經由圖像識別得到示值結果,然后對數據進行保存和處理。

圖7 軟件實現流程
手動模式由人工判斷是否結束,人工選擇下一次需要的氣體管路和通氣時間。自動模式通過軟件自動進行檢定項目的執行,如在示值誤差的檢定中,軟件自動選擇通和斷的時間,一次結束后自動進行下一次工作。完成所有需要的檢定項目后,最后點擊生成報告。
對于酒檢儀的示值圖像識別主要分為兩個部分[12]:示值字符定位、示值字符識別。進行圖像處理首先要去除非目標區域,從而得到需要的感興趣(Region of Interest, ROI)區域。酒檢儀示值字符的定位是通過定位提取酒檢儀屏幕區域,然后在這個ROI 區域中提取出字符的。圖像識別算法流程如圖8 所示。

圖8 圖像識別算法流程
2.2.1 圖像采集
為了節省資源,使用黑白工業相機省去了彩色圖像的灰度化過程,因此采集的圖像為灰度圖像。圖9a)為采集的酒檢儀示值原圖像(以谷雨S80 為例),圖像中酒檢儀以外的區域為背景。

圖9 提取屏幕區域
2.2.2 邊緣檢測
圖像邊緣是圖像中灰度值導數較大的區域邊界,也就是灰度值變化劇烈的區域,在圖像中觀察到酒檢儀的屏幕具有明顯的邊緣特征。邊緣檢測是一種圖像濾波算法,可以分割出邊緣區域。典型的算子包括Roberts、Sobel、Prewitt、Kirsch 和Canny 算子等[13]。酒檢儀有多種品牌型號,但通過圖像邊緣檢測均可提取出屏幕所在區域。
Canny 邊緣算子具有較好的邊緣檢測性能,被視為最成功的邊緣檢測算法之一[14]。原理是先用高斯濾波器平滑圖像;然后采用非極值抑制技術處理得到需要的邊緣圖像;調用edges_sub_pix 算子得到圖像中的邊緣,如圖9b)所示得到多個邊緣;再調用select_contours_xld算子根據特征選擇酒檢儀屏幕區域的邊緣;最后再調用gen_region_contour_xld 算子填充邊緣內的區域,如圖9c)所示。
2.2.3 傾斜校正
由于人眼的視覺誤差,酒檢儀的擺放會有不同程度的傾斜,采集到的圖像一般會存在小于5°的傾斜,但最大一般不超過30°。圖10a)即為傾斜擺放的酒檢儀,為了便于后續的識別,屏幕區域及其中的字符區域需處于水平位置。由于圖像為平面圖像,所以考慮進行圖像的旋轉變換。圖像的旋轉是指圖像以某一點(一般是圖像的中心)為原點旋轉一定的角度,圖像上所有像素或灰度值都會隨之旋轉。圖像旋轉的原理是將輸入圖像繞笛卡爾坐標系逆時針旋轉一個角度θ,旋轉校正主要是依靠檢測區域旋轉的角度來生成一個旋轉矩陣[15],旋轉變換后的圖像坐標可以表示為:

圖10 圖像傾斜校正
為了確定旋轉角,需要尋找圖像中直線的傾斜角,或區域的傾斜角,采用orientation_region 算子計算ROI區域的方向,得到傾斜角的大小,再利用area_center 算子找到區域中心作為原點。調用vector_angle_to_rigid算子進行旋轉,然后用affine_trans_image 算子得到旋轉后的屏幕區域圖像。
2.2.4 字符提取
在屏幕區域提取出示值字符,首先要進行閾值分割,將灰度值較低的區域篩選出來,實際篩選灰度范圍為0~25。篩選出的圖像通過連通域操作,打斷不同的像素區域,形成多個連通域。觀察圖像,為了避免字符斷裂的情況出現,利用形態學的閉運算處理圖像。閉運算是形態學中的一種,可以彌合較窄的間斷和細長的溝壑[16],使得提取的示值字符更加完整。接著對字符區域進行特征篩選,實際篩選的參數范圍為高度在20~35 像素之間,寬度在70~135 像素之間。提取出示值字符后,進行字符分割,采用partition_dynamic 算子以距離的長度和百分比對字符進行動態分割。
在屏幕區域的定位提取過程中,可以采取和示值字符提取相似的方法,先對全局進行閾值分割,再利用連通域操作分割區域,利用區域提取區域。由于圖像不可避免會有少量的灰度不均衡存在,閾值分割對測試的圖像分割效果不太理想。利用Canny 邊緣檢測的方式解決了這一問題,該定位方式極大地削弱了光線的影響,提高了系統的魯棒性。準備數據集時,需要二值化單字符,將圖11 中提取出的字符進行二值化處理,得到白底黑字的圖像。

圖11 示值字符定位提取
多層感知器(Multi Layer Perceptron, MLP)也被稱為人工神經網絡,屬于前饋人工神經網絡[17]。在多層感知器中,層與層之間是全連接的。如圖12 所示,最左側是輸入層,接收網絡外部信息;中間是隱含層;最右側是輸出層,輸出網絡的結果。神經網絡的訓練過程如圖13 所示。

圖12 神經網絡結構圖

圖13 神經網絡訓練過程
Halcon 中有許多預訓練字體,可以對提取成功的字符進行識別,但受到字體的影響較大,識別正確率無法保障。在拍攝的1 500 張圖像中,將1 000 張劃為訓練集,其余500 張作為測試集。將1 000 張訓練圖像中分割出的二值化單字符圖像分別存放在對應數字的文件夾中,在Halcon 中訓練并得到了分類器[18]。利用MLP 分類器對500 張測試圖像進行識別實驗,觀察識別準確率、識別速度等,與軟件自帶的預訓練字體作比較。圖像識別實驗的測試原理如圖14 所示,成功識別的圖像如圖15 所示,示值字符被成功分割,打上方框,標注正確的結果。

圖14 圖像識別的測試原理

圖15 示值字符識別成功
由于不同品牌、型號的酒檢儀的屏幕尺寸、示值所在區域和字體等均不相同,需各自設計算法進行識別,然后由人工選擇型號。以兩種型號為例,用第2 節中相同的處理方法設計對應算法,測試的結果如表1 所示。

表1 圖像識別實驗結果
實驗結果表明,MLP 分類器對谷雨S80 識別正確499 張,每張圖像的平均耗時為197.2 ms,識別正確率達到99.5%。軟件內置的預訓練字體對谷雨S80 識別正確487 臺,平均耗時185.4 ms,識別正確率為97.4%。對于大帝730Li,MLP 分類器識別正確500 臺,平均耗時150.6 ms,預訓練字體對大帝730Li 識別正確468 張,識別正確率僅為93.6%,所以,采用MLP 分類器進行圖像分類與識別。對其他三種型號的測試過程中,也得到了和大帝730Li 接近的識別準確率和時間。五種品牌型號的酒檢儀對測試圖片的識別準確率達到了99.5%以上,平均耗時200 ms 以下。
呼氣中酒精濃度可以按照式(2)換算為實際狀態質量濃度。
式中:C為呼氣中酒精濃度,單位為mg/L;P為檢定時大氣壓,單位為kPa;M為酒精分子的摩爾質量,取46.07 g/mol;R為氣體常數,取8.314 5 L·kPa/(mol·K);T為酒精氣體溫度,取307.15 K;x為呼氣中酒精濃度,單位為μmol/mol。
在檢定中,C可以簡化為:
呼氣中酒精質量濃度(單位為mg/L)的數值是血液中酒精質量濃度(單位為mg/100 mL)數值的220 倍。因此,只需要讀取大氣壓和鋼瓶上標示的呼氣中酒精濃度,即可根據式(3)得到出口氣體的實際狀態質量濃度。測量的大氣壓為101.3 kPa,呼氣中酒精濃度為鋼瓶氣上標示的示數,血液中酒精質量濃度如表2 所示。

表2 濃度轉換結果
以送檢的五種型號各選取一臺進行測試,以后續檢定中的示值誤差、重復性和記憶殘留效應這三項檢定項目,對自動檢定裝置進行測試,測試結果數據如表3 所示。

表3 酒檢儀檢定的測試結果
結合人工復核,可保證自動檢定工作正確運行。由于大部分業務為后續檢定,以30 臺酒檢儀的后續檢定為例,對酒檢儀進行所有呼氣測試的時間為操作時間,從開始測試酒檢儀到審核完成并出具檢定證書為全過程時間。漂移的檢定需要間隔4 h,對全過程時間有一定影響。手動檢定30 臺酒檢儀一般需要橫跨2 個工作日,平均操作時間共為9 h,平均全過程時間為3.5 個工作日。而使用本文裝置的自動檢定方式,平均操作時間為3 h,平均全過程時間為1.5 個工作日即可完成工作,大大提升了工作效率。對于首次檢定中的呼氣阻力檢定項目,本裝置采用外置差壓計進行檢定。
本文設計了基于機器視覺技術的呼出氣體酒精含量檢測儀自動檢定裝置,可選手動或自動檢定模式,實現酒檢儀的自動化檢定。該自動檢定裝置解決了呼出氣體酒精含量檢測儀手動檢定過程中氣體獲取方式繁瑣、裝置預熱時間過長、操作精度低等問題,縮短了獲得氣體的時長。該裝置結構實用且符合自動化要求,能夠滿足多種型號酒檢儀的檢定工作。實驗結果表明,該裝置的上位機軟件可以實現五種型號酒檢儀示值的識別,對測試圖片的識別正確率達到了99.5%,單臺平均識別耗時200 ms 以內。將檢定平均全過程時間從3.5 個工作日壓縮為1.5 個工作日,平均操作時間從9 h 降為3 h,為酒檢儀的自動化檢定提供了可行性方案,在未來的研究中,可以對酒檢儀的型號進行自動識別。