本發(fā)明涉及交通安全技術(shù)領(lǐng)域,特別涉及一種機(jī)動(dòng)車前排就坐者是否扣帶安全帶的自動(dòng)檢測(cè)方法。
背景技術(shù):
目前,在拍攝到的圖像當(dāng)中,交通機(jī)關(guān)通過人力資源一張張鑒別乘客、司機(jī)是否系上安全帶。然而,由于圖像數(shù)量巨大,在這方面的識(shí)別需要大量的人力、物力。因此,使用機(jī)器代替人類,提高效率,提高生產(chǎn)力,正是這個(gè)軟件的意義所在?,F(xiàn)有的主流安全帶識(shí)別方法是通過定位車輛車牌;然后估算出主司機(jī)的位置;再利用霍夫直線去檢測(cè)檢測(cè)安全帶的存在。首先,這種方法不能準(zhǔn)確地找出司機(jī)的位置,精確度不高;并且,這種方法僅能找出主駕座的安全帶,而無(wú)法識(shí)別副駕駛座的安全帶。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的發(fā)明目的是針對(duì)現(xiàn)有安全帶自動(dòng)檢測(cè)方法的技術(shù)不足,提供一種能夠準(zhǔn)確檢測(cè)機(jī)動(dòng)車前排就坐者是否扣帶安全帶的自動(dòng)檢測(cè)方法。為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采用的技術(shù)方案為:提供一種機(jī)動(dòng)車前排就坐者是否扣帶安全帶的自動(dòng)檢測(cè)方法,基于道路監(jiān)控圖像,包括如下步驟:(a)讀取格式為JPG、BMP或PNG的監(jiān)控圖像;(b)根據(jù)HSV顏色模型,對(duì)步驟(a)中讀取的圖像文件進(jìn)行藍(lán)色區(qū)域與黃色區(qū)域的顏色信息分析并結(jié)合車牌的多邊形形狀、寬高比等結(jié)構(gòu)特征分析,然后定位車牌的位置;(c)根據(jù)步驟(b)中定位的車牌位置及步驟(b)中處理過的圖像,通過車窗位置與車牌位置的相對(duì)幾何關(guān)系以及輸入圖像的尺寸參數(shù)來選取局部窗口,并作為定位的車窗位置;(d)根據(jù)步驟(c)中車窗定位的結(jié)果,在車窗范圍內(nèi)基于haar-like進(jìn)行人臉檢測(cè),并判斷檢測(cè)的人臉是司機(jī)還是乘客;(e)根據(jù)步驟(d)中的判斷結(jié)果,對(duì)司機(jī)與乘客的位置進(jìn)行窗口劃分,并對(duì)窗口先后使用canny邊緣檢測(cè)和霍夫直線檢測(cè),然后篩選指定角度范圍內(nèi)的直線并標(biāo)記司機(jī)與乘客的區(qū)域,最后分別進(jìn)行是否佩戴安全帶的判別。優(yōu)選地,所述步驟(b)中包括如下步驟:(b-1)將監(jiān)控圖像通過如下公式從RGB轉(zhuǎn)成HSV顏色模型:v=max(r,g,b)(3);其中h表示色調(diào),s表示飽和度,v表示明度,max表示取其中參數(shù)的最大值,min表示取其中參數(shù)的最小值。(b-2)將經(jīng)(b-1)轉(zhuǎn)化后的到圖像,執(zhí)行下述其中一項(xiàng)步驟:1)根據(jù)藍(lán)色的顏色取值標(biāo)準(zhǔn):遍歷圖像每一個(gè)像素點(diǎn),標(biāo)記圖像中藍(lán)色區(qū)域;2)根據(jù)黃色的顏色取值標(biāo)準(zhǔn):遍歷圖像每一個(gè)像素點(diǎn),標(biāo)記圖像中黃色區(qū)域;(b-3)對(duì)(b-2)得出的區(qū)域,先進(jìn)行圖像處理中的1次腐蝕處理,至少進(jìn)行4次膨脹處理;(b-4)利用步驟(b-3)得出的區(qū)域,用區(qū)域周長(zhǎng)乘以0.04的精度逼近,產(chǎn)生多邊形曲線;(b-5)設(shè)車牌區(qū)域?yàn)镽;候選車牌區(qū)域?qū)挾葹閘ength、候選車牌區(qū)域高度為height,圖像寬度為s.length,圖像高度為s.height;候選車牌區(qū)域面積為area,圖像面積為s.area;候選車牌區(qū)域邊數(shù)為sides;從步驟(b-4)中根據(jù)多邊形曲線的邊數(shù)以及面積,并根據(jù)如下公式:s.area*0.00176<area<s.area*0.00502(11)4<sides<10(12)找出車牌區(qū)域;(b-6)若從(b-5)得到的結(jié)果中,找不到車牌區(qū)域,則返回(b-2),執(zhí)行其中另一步驟;如果根據(jù)上述1)和2)步驟都找不到車牌區(qū)域,該圖像作為無(wú)法找到車牌圖像I無(wú)車牌且若找到車牌區(qū)域,該車牌區(qū)域記為R=R*。優(yōu)選地,所述步驟(c)包括以下步驟:(c-1)如果求出車牌區(qū)域的矩m10,m00,m01;進(jìn)而得出車牌區(qū)域R的中心否則執(zhí)行步驟(b-3);(c-2a)設(shè)輸入圖像的寬度為src.length,輸入圖像的高度為src.height;設(shè)局部窗口的寬度為winL,局部窗口的高度為winH;利用(c-1)得到的xcR和ycR,設(shè)車牌區(qū)域R的中心點(diǎn)水平坐標(biāo)為centre.x,令centre.x=xcR,垂直坐標(biāo)為centre.y,令centre.y=y(tǒng)cR;其中,x為該局部窗口左上角在輸入圖像中的水平坐標(biāo)、y為該局部窗口左上角在輸入圖像中的垂直坐標(biāo);通過如下公式:winL=src.length*0.43(14)winH=src.height*0.33(15)x=centre.x-0.215*src.length(16)y=centre.y-0.45*src.height(17);找出局部窗口;(c-2b)設(shè)局部窗口大小為輸入圖像的大小,即winL=src.lengthwinH=src.heightx=0y=0。步驟(c)結(jié)束,進(jìn)入步驟(d)。優(yōu)選地,所述步驟(d)包括以下步驟:(d-1)在步驟c中所獲得的窗口內(nèi),使用OpenCV開源庫(kù)的Haar-like人臉分類器設(shè)定最小窗口的參數(shù);其中,設(shè)最小檢索窗口為10×10;(d-2)設(shè)faces為(d-1)的執(zhí)行結(jié)果,如果直接執(zhí)行步驟(d-3);否則,按照以下標(biāo)準(zhǔn)篩選人臉,設(shè)頭像face∈faces,頭像半徑為face.radius,頭像中心點(diǎn)的水平坐標(biāo)為face.x,垂直坐標(biāo)為face.y,車牌中心點(diǎn)的水平坐標(biāo)為centre.x,垂直坐標(biāo)為centre.y,其中:face.radius<0.05*s.length(18)height<|face.x-xcR|<height*3(19);設(shè)不滿足上述條件的人臉為faces-,從faces中剔除;而此時(shí)faces更新為faces=faces-faces-;然后執(zhí)行步驟(c-3);(d-3)若則該圖像為無(wú)法識(shí)別的圖像;算法流程結(jié)束;否則,進(jìn)行如下判斷:條件1:若該人臉的水平分量值大于車牌的水平分量值,則該人臉是屬于司機(jī)的,否則屬于前排乘客;或條件2:若該人臉的右方區(qū)域D有車窗邊框,則認(rèn)為人臉是屬于司機(jī)的,否則屬于前排乘客;設(shè)定區(qū)域D的窗口寬度為vWinL,區(qū)域D的窗口高度為vWinH;區(qū)域D的窗口左上角頂點(diǎn)坐標(biāo)的水平分量為vWinX,垂直分量為頭像坐標(biāo)垂直分量為vWinY;則通過如下公式:vWinL=face.radius*6(22)vWinH=face.radius*4(23)vWinX=face.x+face.radius(24)vWinY=face.y-face.radius(25);標(biāo)示出區(qū)域D;(d-4)根據(jù)(d-3)的結(jié)果,乘客窗口記為P(face),司機(jī)窗口記為D(face)。優(yōu)選地,所述步驟(e)包括以下步驟:(e-1)對(duì)于人臉以下的局部窗口區(qū)域記為R1,該窗口區(qū)域的寬度為sWinL,該窗口區(qū)域的高度為sWinH,該窗口區(qū)域左上角在原圖像中的水平分量大小為sWinX,該窗口左上角在原圖像中的垂直分量大小為sWinY;sWinL=face.radius*6(26)sWinH=face.radius*4(27)sWinX=face.x-face.radius*2(28)sWinY=face.y(29);在該窗口區(qū)域進(jìn)行以下操作:使用OpenCV開源庫(kù)的函數(shù)進(jìn)行直方圖均衡化處理,以核為17×17進(jìn)行高斯平滑處理;然后使用canny邊緣檢測(cè),其中canny邊緣檢測(cè)的參數(shù)中,高的閾值為60,低的閾值為0;再進(jìn)行霍夫直線檢測(cè),霍夫直線檢測(cè)的參數(shù)中,最短線段閾值為5,投票累計(jì)數(shù)閾值為35。得到窗口區(qū)域R1中的直線,記作lines;(e-2)根據(jù)(e-1)的結(jié)果,按照以下規(guī)則,對(duì)直線lines進(jìn)行篩選:1)對(duì)于司機(jī)窗口D(face):將司機(jī)窗口D(face)中與x軸正方向夾角不在40度與70度之間的直線刪除,記為司機(jī)區(qū)域;2)對(duì)于乘客窗口P(face),把乘客窗口P(face)中與x軸正方向夾角不在110度與140度之間的直線刪除,記為乘客區(qū)域;根據(jù)上述1)和2)的結(jié)果,若在司機(jī)及乘客區(qū)域中同時(shí)找到直線,或在司機(jī)區(qū)域找到直線以及乘客不存在時(shí),則該監(jiān)控圖像為合法通過的圖像;否則,均為違規(guī)圖像。本發(fā)明相對(duì)于現(xiàn)有技術(shù),具有以下有益效果:1、本發(fā)明能夠?qū)C(jī)動(dòng)車前排乘坐人員(包括司機(jī)與副駕駛乘客)進(jìn)行快速準(zhǔn)確的識(shí)別,分別檢測(cè)他們是否扣帶安全帶,是否滿足現(xiàn)實(shí)交通法所規(guī)定的審查要求;該自動(dòng)檢測(cè)方法能夠方便應(yīng)用于現(xiàn)實(shí)生活之中;2、本發(fā)明能夠處理海量圖像,能對(duì)在各種道路、各種天氣狀況下的道路監(jiān)控圖像進(jìn)行相關(guān)分析;3、本發(fā)明利用人臉的位置檢測(cè)安全帶的位置,比其他方法更準(zhǔn)確,進(jìn)而提高安全帶的識(shí)別精度;4、本發(fā)明能準(zhǔn)確區(qū)分前排乘坐人員是乘客還是司機(jī),并對(duì)應(yīng)地作出識(shí)別處理。附圖說明圖1為本發(fā)明機(jī)動(dòng)車前排就坐者是否扣帶安全帶的自動(dòng)檢測(cè)方法。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的發(fā)明目的作進(jìn)一步詳細(xì)地描述,實(shí)施例不能在此一一贅述,但本發(fā)明的實(shí)施方式并不因此限定于以下實(shí)施例。除非特別說明,本發(fā)明采用的材料和加工方法為本技術(shù)領(lǐng)域常規(guī)材料和加工方法。如圖1所示,一種機(jī)動(dòng)車前排就坐者是否扣帶安全帶的自動(dòng)檢測(cè)方法,基于道路監(jiān)控圖像,包括如下步驟:(a)讀取格式為JPG、BMP或PNG的監(jiān)控圖像;(b)根據(jù)HSV顏色模型,對(duì)步驟(a)中讀取的圖像文件進(jìn)行藍(lán)色區(qū)域與黃色區(qū)域的顏色信息分析并結(jié)合車牌的多邊形形狀、寬高比等結(jié)構(gòu)特征分析,然后定位車牌的位置;(c)根據(jù)步驟(b)中定位的車牌位置及步驟(b)中處理過的圖像,通過車窗位置與車牌位置的相對(duì)幾何關(guān)系以及輸入圖像的尺寸參數(shù)來選取局部窗口,并作為定位的車窗位置;(d)根據(jù)步驟(c)中車窗定位的結(jié)果,在車窗范圍內(nèi)基于haar-like進(jìn)行人臉檢測(cè),并判斷檢測(cè)的人臉是司機(jī)還是乘客;(e)根據(jù)步驟(d)中的判斷結(jié)果,對(duì)司機(jī)與乘客的位置進(jìn)行窗口劃分,并對(duì)窗口先后使用canny邊緣檢測(cè)和霍夫直線檢測(cè),然后篩選指定角度范圍內(nèi)的直線并標(biāo)記司機(jī)與乘客的區(qū)域,最后分別進(jìn)行是否佩戴安全帶的判別。上述步驟(b)中包括如下步驟:(b-1)將監(jiān)控圖像通過如下公式從RGB轉(zhuǎn)成HSV顏色模型:v=max(r,g,b)(3);其中h表示色調(diào),s表示飽和度,v表示明度,max表示取其中參數(shù)的最大值,min表示取其中參數(shù)的最小值。(b-2)將經(jīng)(b-1)轉(zhuǎn)化后的到圖像,執(zhí)行下述其中一項(xiàng)步驟:1)根據(jù)藍(lán)色的顏色取值標(biāo)準(zhǔn):遍歷圖像每一個(gè)像素點(diǎn),標(biāo)記圖像中藍(lán)色區(qū)域;2)根據(jù)黃色的顏色取值標(biāo)準(zhǔn):遍歷圖像每一個(gè)像素點(diǎn),標(biāo)記圖像中黃色區(qū)域;(b-3)對(duì)(b-2)得出的區(qū)域,先進(jìn)行圖像處理中的1次腐蝕處理,至少進(jìn)行4次膨脹處理;(b-4)利用步驟(b-3)得出的區(qū)域,用區(qū)域周長(zhǎng)乘以0.04的精度逼近,產(chǎn)生多邊形曲線;(b-5)設(shè)車牌區(qū)域?yàn)镽;候選車牌區(qū)域?qū)挾葹閘ength、候選車牌區(qū)域高度為height,圖像寬度為s.length,圖像高度為s.height;候選車牌區(qū)域面積為area,圖像面積為s.area;候選車牌區(qū)域邊數(shù)為sides;從步驟(b-4)中根據(jù)多邊形曲線的邊數(shù)以及面積,并根據(jù)如下公式:s.area*0.00176<area<s.area*0.00502(11)4<sides<10(12)找出車牌區(qū)域;(b-6)若從(b-5)得到的結(jié)果中,找不到車牌區(qū)域,則返回(b-2),執(zhí)行其中另一步驟;如果根據(jù)上述1)和2)步驟都找不到車牌區(qū)域,該圖像作為無(wú)法找到車牌圖像I無(wú)車牌且若找到車牌區(qū)域,該車牌區(qū)域記為R=R*。上述步驟(c)包括以下步驟:(c-1)如果求出車牌區(qū)域的矩m10,m00,m01;進(jìn)而得出車牌區(qū)域R的中心否則執(zhí)行步驟(b-3);(c-2a)設(shè)輸入圖像的寬度為src.length,輸入圖像的高度為src.height;設(shè)局部窗口的寬度為winL,局部窗口的高度為winH;利用(c-1)得到的xcR和ycR,設(shè)車牌區(qū)域R的中心點(diǎn)水平坐標(biāo)為centre.x,令centre.x=xcR,垂直坐標(biāo)為centre.y,令centre.y=y(tǒng)cR;其中,x為該局部窗口左上角在輸入圖像中的水平坐標(biāo)、y為該局部窗口左上角在輸入圖像中的垂直坐標(biāo);通過如下公式:winL=src.length*0.43(14)winH=src.height*0.33(15)x=centre.x-0.215*src.length(16)y=centre.y-0.45*src.height(17);找出局部窗口;(c-2b)設(shè)局部窗口大小為輸入圖像的大小,即winL=src.lengthwinH=src.heightx=0y=0。步驟(c)結(jié)束,進(jìn)入步驟(d)。上述步驟(d)包括以下步驟:(d-1)在步驟c中所獲得的窗口內(nèi),使用OpenCV開源庫(kù)的Haar-like人臉分類器設(shè)定最小窗口的參數(shù);其中,設(shè)最小檢索窗口為10×10;(d-2)設(shè)faces為(d-1)的執(zhí)行結(jié)果,如果直接執(zhí)行步驟(d-3);否則,按照以下標(biāo)準(zhǔn)篩選人臉,設(shè)頭像face∈faces,頭像半徑為face.radius,頭像中心點(diǎn)的水平坐標(biāo)為face.x,垂直坐標(biāo)為face.y,車牌中心點(diǎn)的水平坐標(biāo)為centre.x,垂直坐標(biāo)為centre.y,其中:face.radius<0.05*s.length(18)height<|face.x-xcR|<height*3(19);設(shè)不滿足上述條件的人臉為faces-,從faces中剔除;而此時(shí)faces更新為faces=faces-faces-;然后執(zhí)行步驟(c-3);(d-3)若則該圖像為無(wú)法識(shí)別的圖像;算法流程結(jié)束;否則,進(jìn)行如下判斷,其中:條件1:如果該人臉的水平分量值大于車牌的水平分量值,則該人臉是屬于司機(jī)的;否則屬于前排乘客;或條件2:設(shè)定區(qū)域D的窗口寬度為vWinL,區(qū)域D的窗口高度為vWinH;區(qū)域D的窗口左上角頂點(diǎn)坐標(biāo)的水平分量為vWinX,、垂直分量為頭像坐標(biāo)垂直分量為vWinY;則通過如下公式:vWinL=face.radius*6(22)vWinH=face.radius*4(23)vWinX=face.x+face.radius(24)vWinY=face.y-face.radius(25);標(biāo)示出區(qū)域D;(d-4)根據(jù)(d-3)的結(jié)果,乘客窗口記為P(face),司機(jī)窗口記為D(face)。上述步驟(e)包括以下步驟:(e-1)對(duì)于人臉以下的局部窗口區(qū)域記為R1,該窗口區(qū)域的寬度為sWinL,該窗口區(qū)域的高度為sWinH,該窗口區(qū)域左上角在原圖像中的水平分量大小為sWinX,該窗口左上角在原圖像中的垂直分量大小為sWinY;sWinL=face.radius*6(26)sWinH=face.radius*4(27)sWinX=face.x-face.radius*2(28)sWinY=face.y(29);在該窗口區(qū)域進(jìn)行以下操作:使用OpenCV開源庫(kù)的函數(shù)進(jìn)行直方圖均衡化處理,以核為17×17進(jìn)行高斯平滑處理;然后使用canny邊緣檢測(cè),其中canny邊緣檢測(cè)的參數(shù)中,高的閾值為60,低的閾值為0;再進(jìn)行霍夫直線檢測(cè),霍夫直線檢測(cè)的參數(shù)中,最短線段閾值為5,投票累計(jì)數(shù)閾值為35;經(jīng)過以上4步,得到窗口區(qū)域R1中的直線,記作lines;(e-2)根據(jù)(e-1)的結(jié)果,按照以下規(guī)則,對(duì)直線lines進(jìn)行篩選:1)對(duì)于司機(jī)窗口D(face):將司機(jī)窗口D(face)中與x軸正方向夾角不在40度與70度之間的直線刪除,記為司機(jī)區(qū)域;2)對(duì)于乘客窗口P(face),把乘客窗口P(face)中與x軸正方向夾角不在110度與140度之間的直線刪除,記為乘客區(qū)域;根據(jù)上述1)和2)的結(jié)果,若在司機(jī)及乘客區(qū)域中同時(shí)找到直線,或在司機(jī)區(qū)域找到直線以及乘客不存在時(shí),則該監(jiān)控圖像為合法通過的圖像;否則,均為違規(guī)圖像。即:其中,{l1|l1∈lines,l1與x軸正方向夾角不在110度與140度之間};{l2|l2∈lines,l2與x軸正方向夾角不在40度與70度之間};如果符合以下條件,則認(rèn)為該監(jiān)控圖像文件為合法通過的圖像:條件1:若司機(jī)、乘客都有扣帶安全帶;或條件2:若司機(jī)有扣帶安全帶,并且前排乘客不存在;上述實(shí)施例僅為本發(fā)明的較佳實(shí)施例,并非用來限定本發(fā)明的實(shí)施范圍。即凡依本發(fā)明內(nèi)容所作的均等變化與修飾,都為本發(fā)明權(quán)利要求所要求保護(hù)的范圍所涵蓋。