本發(fā)明涉及汽車(chē)儀表生產(chǎn)檢測(cè)領(lǐng)域,尤其涉及到一種基于模板匹配的汽車(chē)駕駛位儀表區(qū)多指針式儀表自動(dòng)識(shí)別系統(tǒng)及方法。
背景技術(shù):
汽車(chē)的生產(chǎn)為模塊化生產(chǎn),各個(gè)模塊完成后再組裝成整車(chē)。模塊化生產(chǎn)過(guò)程中,對(duì)各個(gè)環(huán)節(jié),各個(gè)零部件的檢測(cè)都很重要。新車(chē)在量產(chǎn),銷(xiāo)售之前,都需要對(duì)駕駛位中控儀表區(qū)的各個(gè)指針式儀表進(jìn)行檢測(cè),查看汽車(chē)啟動(dòng)是否正常。
傳統(tǒng)的汽車(chē)指針式儀表檢測(cè)通過(guò)人工讀數(shù),耗時(shí)耗力,并且人工讀數(shù)經(jīng)驗(yàn)性和主觀性較強(qiáng),導(dǎo)致評(píng)價(jià)標(biāo)準(zhǔn)不一,誤差較大。另外,傳統(tǒng)人工檢測(cè)一次只能檢測(cè)一個(gè)汽車(chē)儀表,而汽車(chē)駕駛位存在包括包括燃油表、機(jī)油壓力表、水溫表、電流表、車(chē)速里程表、轉(zhuǎn)速表、氣壓表等在內(nèi)的多個(gè)儀表,人工檢測(cè)耗時(shí)耗力,對(duì)人的眼睛也有很大損害。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提供一種節(jié)省人力、工作效率高、能同時(shí)識(shí)別多個(gè)汽車(chē)指針儀表、儀表識(shí)別準(zhǔn)確率高的基于模板匹配的汽車(chē)駕駛位儀表區(qū)多指針式儀表自動(dòng)識(shí)別系統(tǒng)。
為實(shí)現(xiàn)上述目的,本發(fā)明所提供的技術(shù)方案為:系統(tǒng)包括圖像采集模塊、ftp云端以及圖像處理模塊;
圖像采集模塊,實(shí)時(shí)捕捉汽車(chē)駕駛位儀表區(qū)圖像;
ftp云端,存儲(chǔ)實(shí)時(shí)捕捉到的汽車(chē)駕駛位儀表區(qū)圖像,實(shí)現(xiàn)上傳和下載功能;
圖像處理模塊,對(duì)從ftp云端下載到的汽車(chē)駕駛位儀表區(qū)圖像進(jìn)行處理和識(shí)別;
其中,圖像處理模塊包括圖像預(yù)處理單元、儀表區(qū)分割單元、圖像校正單元、指針和刻度線(xiàn)信息提取單元、圓心定位和刻度線(xiàn)間角度計(jì)算單元、讀數(shù)模型創(chuàng)建單元、指針示數(shù)計(jì)算單元以及報(bào)表生成單元;
圖像預(yù)處理單元,消除采集到的指針式儀表圖像表面噪聲和污染,分開(kāi)目標(biāo)區(qū)域和背景區(qū)域;
儀表區(qū)分割單元,使用模板匹配對(duì)多儀表進(jìn)行分割;
圖像校正單元,采用sobel算子提取儀表信息特征,圖像中有明顯的直線(xiàn)信息,使用hough變換找出最長(zhǎng)的直線(xiàn)并計(jì)算其斜率,求其傾角并進(jìn)行水平校正;
指針和刻度線(xiàn)信息提取單元,腐蝕掉表盤(pán)外緣輪廓,只留下表盤(pán)內(nèi)圓信息;選取包括指針和鄰近30°的roi區(qū)域;將指針和鄰近區(qū)域內(nèi)的刻度線(xiàn)進(jìn)行膨脹后提取骨架;
圓心定位和刻度線(xiàn)間角度計(jì)算單元,用于定位圓心和計(jì)算刻度線(xiàn)間角度;
讀數(shù)模型創(chuàng)建單元,對(duì)得到的表盤(pán)最小單元夾角值和表盤(pán)兩示數(shù)單元間夾角值,創(chuàng)建讀數(shù)模型;
指針示數(shù)計(jì)算單元,用于獲取指針當(dāng)前所在位置的讀數(shù);
報(bào)表生成單元,將識(shí)別結(jié)果生成檢測(cè)報(bào)告,以.xls格式保存下來(lái)。
進(jìn)一步地,所述圖像預(yù)處理單元包括灰度化處理單元、中值濾波處理單元以及對(duì)比度增強(qiáng)處理單元;
其中,灰度化處理單元,采用對(duì)rgb三分量進(jìn)行加權(quán)平均得到較合理的灰度圖像;
中值濾波處理單元,通過(guò)中值濾波處理技術(shù)消除圖像表面噪聲和污染;
對(duì)比度增強(qiáng)處理單元,通過(guò)增強(qiáng)圖像對(duì)比度使目標(biāo)區(qū)域和背景區(qū)域分開(kāi)。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種用于基于模板匹配的汽車(chē)駕駛位儀表區(qū)多指針式儀表自動(dòng)識(shí)別系統(tǒng)的方法,該方法包括以下步驟:
(1)圖像采集;
將帶有網(wǎng)絡(luò)模塊的攝像頭安置在汽車(chē)駕駛位儀表前適當(dāng)范圍,進(jìn)行汽車(chē)駕駛位儀表區(qū)圖像的實(shí)時(shí)捕捉;
(2)圖像上傳;
攝像頭網(wǎng)絡(luò)模塊將捕捉到的汽車(chē)駕駛位儀表區(qū)圖像上傳至ftp云端;
(3)軟件處理;
對(duì)從ftp云端下載的汽車(chē)駕駛位儀表區(qū)圖像進(jìn)行處理和識(shí)別,最后將識(shí)別結(jié)果生成檢測(cè)報(bào)告,以.xls格式保存下來(lái)。
進(jìn)一步地,步驟(3)中對(duì)圖像處理和識(shí)別包括以下步驟:
1)圖像預(yù)處理;
2)儀表區(qū)分割;
3)圖像校正;
4)提取指針和刻度線(xiàn)信息;
5)定位圓心和計(jì)算刻度線(xiàn)間角度;
6)創(chuàng)建讀數(shù)模型;
7)計(jì)算指針示數(shù);
8)生成報(bào)表。
進(jìn)一步地,所述步驟1)圖像預(yù)處理具體步驟如下:先對(duì)采集到的指針式儀表圖像進(jìn)行灰度化和中值濾波,消除其表面噪聲和污染;接著對(duì)濾波后的圖像增強(qiáng)對(duì)比度,使目標(biāo)區(qū)域和背景區(qū)域分開(kāi)。
進(jìn)一步地,所述步驟2)儀表區(qū)分割具體步驟如下:使用模板匹配對(duì)多儀表進(jìn)行分割,先采集儀表區(qū)中每個(gè)指針式儀表的工作狀態(tài)圖像并保存,作為后續(xù)匹配的模板,采用基于ncc模板匹配算法在儀表區(qū)目標(biāo)圖像中進(jìn)行全局搜索,找到與模板匹配的儀表并分割出來(lái)。
ncc取值范圍為[-1,1],目標(biāo)圖像即儀表區(qū)圖像的每個(gè)像素點(diǎn)都可以看作是rgb數(shù)值,相當(dāng)于一個(gè)樣本數(shù)據(jù)的集合,模板圖像相當(dāng)于它的子集。當(dāng)模板與目標(biāo)圖像中另外一個(gè)樣本數(shù)據(jù)相互匹配則它的ncc值為1,表示相關(guān)性很高,如果是-1則表示完全不相關(guān),基于這個(gè)原理,實(shí)現(xiàn)圖像基于模板匹配識(shí)別算法。首先對(duì)數(shù)據(jù)歸一化,公式如下:
其中,f表示像素點(diǎn)p的灰度值,μ表示窗口所有像素平均值,σ表示標(biāo)準(zhǔn)方差,假設(shè)g表示模板像素值,則
其中,m表示模板的像素總數(shù),m-1是自由度。步驟如下:
(1獲取模板像素并計(jì)算均值與標(biāo)準(zhǔn)方差、像素與均值diff數(shù)據(jù)樣本;
(2根據(jù)模板大小,在目標(biāo)圖像上從左到右,從上到下移動(dòng)窗口,計(jì)算每移動(dòng)一個(gè)像素之后窗口內(nèi)像素與模板像素的ncc值,與閾值比較,大于閾值則記錄位置;
(3根據(jù)得到位置信息,使用紅色矩形標(biāo)記出模板匹配識(shí)別結(jié)果;
(4系統(tǒng)顯示分割結(jié)果。
進(jìn)一步地,所述步驟3)圖像校正具體步驟如下:采用sobel算子提取儀表信息特征,圖像中有明顯的直線(xiàn)信息,使用hough變換找出最長(zhǎng)的直線(xiàn)并計(jì)算其斜率,求其傾角并進(jìn)行水平校正。
設(shè)直線(xiàn)公式為:
y=kx+b,
式中:k為直線(xiàn)斜率,b為直線(xiàn)在y軸上的截距。其中直線(xiàn)的斜率定義為:直線(xiàn)與直角坐標(biāo)系正半軸方向夾角0的正切值,其表達(dá)式為:
k=arctanθ,
計(jì)算出圖像傾斜角度,對(duì)其進(jìn)行旋轉(zhuǎn)傾斜校正。
進(jìn)一步地,所述步驟4)提取指針和刻度線(xiàn)信息具體步驟如下:腐蝕掉表盤(pán)外緣輪廓,只留下表盤(pán)內(nèi)圓信息;選取roi區(qū)域,roi區(qū)域包括指針和鄰近30°區(qū)域;將指針和鄰近區(qū)域內(nèi)的刻度線(xiàn)進(jìn)行膨脹后提取骨架。
進(jìn)一步地,所述步驟5)定位圓心和計(jì)算刻度線(xiàn)間角度具體步驟如下:對(duì)上述步驟4)提取到的信息進(jìn)行操作,計(jì)算刻度線(xiàn)長(zhǎng)度,篩選出長(zhǎng)短刻度線(xiàn);延長(zhǎng)指針和鄰近的一條長(zhǎng)刻度線(xiàn),使其交于一點(diǎn),此交點(diǎn)即為圓心位置;延長(zhǎng)相鄰的一長(zhǎng)一短刻度線(xiàn)所在直線(xiàn),計(jì)算兩直線(xiàn)角度,該角度值即為表盤(pán)最小單元夾角值;延長(zhǎng)兩相鄰示數(shù)所對(duì)長(zhǎng)刻度線(xiàn),計(jì)算兩直線(xiàn)角度,該角度值即為表盤(pán)兩示數(shù)單元間夾角值;延長(zhǎng)表盤(pán)起始刻度線(xiàn)和終止刻度線(xiàn),計(jì)算兩直線(xiàn)順時(shí)針角度,該順時(shí)針角度值即為指針從起始位到終止為轉(zhuǎn)過(guò)的角度值。
進(jìn)一步地,所述步驟6)創(chuàng)建讀數(shù)模型具體步驟如下:對(duì)應(yīng)上述得到的表盤(pán)最小單元夾角值和表盤(pán)兩示數(shù)單元間夾角值,創(chuàng)建讀數(shù)模型;本方案研究的車(chē)速里程表表盤(pán)區(qū)分為0、20、40、60、80、100、120七個(gè)讀數(shù)值,每相鄰兩數(shù)字間有三條刻度線(xiàn),包括兩短一長(zhǎng),再加之讀數(shù)所在兩條長(zhǎng)刻度線(xiàn),即每相鄰兩讀數(shù)間共有五條刻度線(xiàn)(包括兩短三長(zhǎng)),四個(gè)間距;每相鄰兩讀數(shù)總間距為20,從0-120指針轉(zhuǎn)過(guò)角度為240°,所以相鄰兩讀數(shù)夾角為40°;而40°又被平均劃分為四等分,故相鄰兩刻度線(xiàn)夾角(最小單元夾角值)為10°,相鄰兩刻度線(xiàn)間距(最小單元間距)為5。
進(jìn)一步地,所述步驟7)計(jì)算指針示數(shù)具體步驟如下:選取儀表盤(pán)指針正北方向?yàn)槠鹗嘉恢?,作為參考位;提取指針工作狀態(tài)時(shí)的位置,計(jì)算其角度差,該角度差除以最小單元夾角值后再乘以最小單元間距,從而得到指針當(dāng)前所在位置的讀數(shù)。
本方案原理如下:
攝像頭實(shí)時(shí)捕捉汽車(chē)駕駛位儀表區(qū)圖像,并通過(guò)裝在攝像頭上的網(wǎng)絡(luò)模塊將圖像上傳至ftp云端;當(dāng)需要識(shí)別時(shí),將汽車(chē)駕駛位儀表區(qū)圖像從ftp云端下載至本地pc,接著應(yīng)用程序?qū)D像進(jìn)行圖像預(yù)處理、儀表區(qū)分割、圖像校正、提取指針和刻度線(xiàn)信息、定位圓心和計(jì)算刻度線(xiàn)間角度、創(chuàng)建讀數(shù)模型、計(jì)算指針示數(shù)、生成報(bào)表一系列的識(shí)別處理,最后以excel表格形式導(dǎo)出供汽車(chē)工作人員參考。
與現(xiàn)有技術(shù)相比,本方案具有以下優(yōu)點(diǎn)及有益效果:
以視覺(jué)檢測(cè)代替?zhèn)鹘y(tǒng)人工檢測(cè),不僅可以減少人為主觀因素所造成的讀數(shù)誤差,而且還可以消除人工在現(xiàn)場(chǎng)操作的危險(xiǎn)性;而且在保證準(zhǔn)確率的前提下,一次性識(shí)別汽車(chē)駕駛位儀表區(qū)全部?jī)x表,大大節(jié)省了工作時(shí)間,提高了效率。
附圖說(shuō)明
圖1為本發(fā)明系統(tǒng)的結(jié)構(gòu)示意圖;
圖2為本發(fā)明的識(shí)別處理流程圖。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明:
參見(jiàn)附圖1所示,本實(shí)施例所述的基于模板匹配的汽車(chē)駕駛位儀表區(qū)多指針式儀表自動(dòng)識(shí)別系統(tǒng),包括圖像采集模塊1、ftp云端2以及圖像處理模塊3;圖像處理模塊3包括圖像預(yù)處理單元3-1、儀表區(qū)分割單元3-2、圖像校正單元3-3、指針和刻度線(xiàn)信息提取單元3-4、圓心定位和刻度線(xiàn)間角度計(jì)算單元3-5、讀數(shù)模型創(chuàng)建單元3-6、指針示數(shù)計(jì)算單元3-7以及報(bào)表生成單元3-8;圖像預(yù)處理單元3-1包括灰度化處理單元3-1-1、中值濾波處理單元3-1-2以及對(duì)比度增強(qiáng)處理單元3-1-3。
工作時(shí),流程如圖2所示,圖像采集模塊1為帶有4g網(wǎng)絡(luò)模塊的攝像頭,實(shí)時(shí)捕捉汽車(chē)駕駛位儀表區(qū)圖像,并將捕捉到的圖像上傳至ftp云端2,需要識(shí)別時(shí),從ftp云端2下載汽車(chē)駕駛位儀表區(qū)圖像至圖像處理模塊3,具體的處理識(shí)別步驟如下:
1)圖像預(yù)處理:
先對(duì)采集到的指針式儀表圖像進(jìn)行灰度化和中值濾波,消除其表面噪聲和污染;接著對(duì)濾波后的圖像增強(qiáng)對(duì)比度,使目標(biāo)區(qū)域和背景區(qū)域分開(kāi)。
2)儀表區(qū)分割:
使用模板匹配對(duì)多儀表進(jìn)行分割,先采集儀表區(qū)中每個(gè)指針式儀表的工作狀態(tài)圖像并保存,作為后續(xù)匹配的模板,采用基于ncc模板匹配算法在儀表區(qū)目標(biāo)圖像中進(jìn)行全局搜索,找到與模板匹配的儀表并分割出來(lái)。
ncc取值范圍為[-1,1],目標(biāo)圖像即儀表區(qū)圖像的每個(gè)像素點(diǎn)都可以看作是rgb數(shù)值,相當(dāng)于一個(gè)樣本數(shù)據(jù)的集合,模板圖像相當(dāng)于它的子集。當(dāng)模板與目標(biāo)圖像中另外一個(gè)樣本數(shù)據(jù)相互匹配則它的ncc值為1,表示相關(guān)性很高,如果是-1則表示完全不相關(guān),基于這個(gè)原理,實(shí)現(xiàn)圖像基于模板匹配識(shí)別算法。首先對(duì)數(shù)據(jù)歸一化,公式如下:
其中,f表示像素點(diǎn)p的灰度值,μ表示窗口所有像素平均值,σ表示標(biāo)準(zhǔn)方差,假設(shè)g表示模板像素值,則
其中,m表示模板的像素總數(shù),m-1是自由度。步驟如下:
(1獲取模板像素并計(jì)算均值與標(biāo)準(zhǔn)方差、像素與均值diff數(shù)據(jù)樣本;
(2根據(jù)模板大小,在目標(biāo)圖像上從左到右,從上到下移動(dòng)窗口,計(jì)算每移動(dòng)一個(gè)像素之后窗口內(nèi)像素與模板像素的ncc值,與閾值比較,大于閾值則記錄位置;
(3根據(jù)得到位置信息,使用紅色矩形標(biāo)記出模板匹配識(shí)別結(jié)果;
(4系統(tǒng)顯示分割結(jié)果。
3)圖像校正:
采用sobel算子提取儀表信息特征,圖像中有明顯的直線(xiàn)信息,使用hough變換找出最長(zhǎng)的直線(xiàn)并計(jì)算其斜率,求其傾角并進(jìn)行水平校正。
設(shè)直線(xiàn)公式為:
y=kx+b,
式中:k為直線(xiàn)斜率,b為直線(xiàn)在y軸上的截距。其中直線(xiàn)的斜率定義為:直線(xiàn)與直角坐標(biāo)系正半軸方向夾角0的正切值,其表達(dá)式為:
k=arctanθ,
計(jì)算出圖像傾斜角度,對(duì)其進(jìn)行旋轉(zhuǎn)傾斜校正。
4)提取指針和刻度線(xiàn)信息:
腐蝕掉表盤(pán)外緣輪廓,只留下表盤(pán)內(nèi)圓信息;選取roi區(qū)域,roi區(qū)域包括指針和鄰近30°區(qū)域;將指針和鄰近區(qū)域內(nèi)的刻度線(xiàn)進(jìn)行膨脹后提取骨架。
5)定位圓心和計(jì)算刻度線(xiàn)間角度:
上述步驟4)提取到的信息進(jìn)行操作,計(jì)算刻度線(xiàn)長(zhǎng)度,篩選出長(zhǎng)短刻度線(xiàn);延長(zhǎng)指針和鄰近的一條長(zhǎng)刻度線(xiàn),使其交于一點(diǎn),此交點(diǎn)即為圓心位置;延長(zhǎng)相鄰的一長(zhǎng)一短刻度線(xiàn)所在直線(xiàn),計(jì)算兩直線(xiàn)角度,該角度值即為表盤(pán)最小單元夾角值;延長(zhǎng)兩相鄰示數(shù)所對(duì)長(zhǎng)刻度線(xiàn),計(jì)算兩直線(xiàn)角度,該角度值即為表盤(pán)兩示數(shù)單元間夾角值;延長(zhǎng)表盤(pán)起始刻度線(xiàn)和終止刻度線(xiàn),計(jì)算兩直線(xiàn)順時(shí)針角度,該順時(shí)針角度值即為指針從起始位到終止為轉(zhuǎn)過(guò)的角度值。
6)創(chuàng)建讀數(shù)模型:
對(duì)應(yīng)上述得到的表盤(pán)最小單元夾角值和表盤(pán)兩示數(shù)單元間夾角值,創(chuàng)建讀數(shù)模型;本實(shí)施例研究的車(chē)速里程表表盤(pán)區(qū)分為0、20、40、60、80、100、120七個(gè)讀數(shù)值,每相鄰兩數(shù)字間有三條刻度線(xiàn),包括兩短一長(zhǎng),再加之讀數(shù)所在兩條長(zhǎng)刻度線(xiàn),即每相鄰兩讀數(shù)間共有五條刻度線(xiàn)(包括兩短三長(zhǎng)),四個(gè)間距;每相鄰兩讀數(shù)總間距為20,從0-120指針轉(zhuǎn)過(guò)角度為240°,所以相鄰兩讀數(shù)夾角為40°;而40°又被平均劃分為四等分,故相鄰兩刻度線(xiàn)夾角(最小單元夾角值)為10°,相鄰兩刻度線(xiàn)間距(最小單元間距)為5。
7)計(jì)算指針示數(shù):
選取儀表盤(pán)指針正北方向?yàn)槠鹗嘉恢茫鳛閰⒖嘉?;提取指針工作狀態(tài)時(shí)的位置,計(jì)算其角度差,該角度差除以最小單元夾角值后再乘以最小單元間距,從而得到指針當(dāng)前所在位置的讀數(shù)。
8)生成報(bào)表。
將識(shí)別結(jié)果生成檢測(cè)報(bào)告,以.xls格式保存下來(lái)。
本實(shí)施例以視覺(jué)檢測(cè)代替?zhèn)鹘y(tǒng)人工檢測(cè),不僅可以減少人為主觀因素所造成的讀數(shù)誤差,而且還可以消除人工在現(xiàn)場(chǎng)操作的危險(xiǎn)性;而且在保證準(zhǔn)確率的前提下,一次性識(shí)別汽車(chē)駕駛位儀表區(qū)全部?jī)x表,大大節(jié)省了工作時(shí)間,提高了效率。
以上所述之實(shí)施例子只為本發(fā)明之較佳實(shí)施例,并非以此限制本發(fā)明的實(shí)施范圍,故凡依本發(fā)明之形狀、原理所作的變化,均應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。