本发明公布了在公众拥有的PCT申请编号No.PCT/FR97/01354和PCT/EP98/05383中公布的一个普通的图像处理***的一个应用,将这两个PCT申请编号的诸内容作为参考文献结合在本申请中,用于检测与人眼相关的诸不同判据,特别是检测当一位驾驶员驾驶一辆汽车时正在睡觉的情形。
本发明的设备与上面提到的PCT申请编号No.PCT/FR97/01354和PCT/EP98/05383中描述的相似,为了清楚起见在本申请中将对它们进行描述。参照图1和10,普通的图像处理***22包括一个与分布图形成装置22a组合在一起的空间和时间处理装置11。空间和时间处理装置11包括一个输入端12,该输入端接收一个来自一台对一个场景13a进行监视的电视摄像机或其它的成像装置13的数字电视信号S。成像装置13优先地是一台常规的CMOS(互补型金属氧化物半导体)型的CCD(电荷耦合器件)摄像机,为了现在描述的本发明的目的,将该摄像机安装在一辆汽车上面对驾驶员的地方。我们将明白当用于非车辆的应用中时,可以用任何希望的方式安装摄像机以便对特定的感兴趣的判据进行检测。我们也预见到任何其它的适当的传感器,例如超声,IR,雷达等都可用作成像装置。成像装置13可以有一个直接的数字输出,或一个模拟输出,然后用一个A/D(数字/模拟)变换器将模拟输出变换成数字信号S。如果希望的话,也可将成像装置13与普通的图像处理***22形成一个整体。
虽然信号S可以是一个渐进的信号,但是优先地,它由连续的诸交织帧的对TR1和TR′1,TR2和TR′2组成,其中每个对又由连续的水平扫描线,例如,在TR1中的l1,1,l1,2,......,l1,17,在TR2中的l2,1,I2,2,......,I2,17组成。每条线都由连续的诸像素或诸像点PI,例如,对于线l1,1为a1,1,a1,2和a1,3;对于线l1,17为al17,1和a17,22;对于线l2,1为al1,1和a1,2组成。信号S(PI)代表由诸像素PI组成的信号S。
S(PI)包括在每个帧开始时的一个帧同步信号(ST),在每条线开始时的一个线同步信号(SL)和一个消隐信号(BL)。于是,S(PI)包括一组连续的帧,它们代表时间域,和在每个帧内, 包含一系列的线和像素,它们代表空间域。
在时间域中,“诸连续的帧”指的是同一类型的诸连续的帧(即,诸奇帧如TR1或诸偶帧TR′1),而“在同一位置的诸连续的像素”指的是在同一类型的诸连续的帧中在同一位置的诸像素(PI)的诸连续的值,例如在帧TR1中的l1,1的a1,1,和在下一个对应的帧TR2中的l1,1的a1,1。
空间和时间处理装置11产生到一条数据总线23的诸输出ZH和SR 14(图11),优先地它们是诸数字信号。复数信号ZH包含许多由***产生的输出信号,优先地包括表示一个运动中的区域或物体的存在和位置及图像的每个像素的位移DI的速度V和定向方向的诸信号。又,优先地来自***的输出是输入的数字电视信号S,考虑到对组合信号ZH(一个帧)中的数据的计算时间,并为了使数字电视信号S与对于帧的输出ZH同步,对数字电视信号S进行延迟(SR)。用延迟信号SR在一个监视器或电视机屏幕10上显示由摄像机13接收的图像,也可用监视器或电视机屏幕10显示包含在组合信号ZH中的信息。也可将组合信号ZH传输到一个分开的处理组件10a,在处理组件10a中可以完成信号的进一步处理。
参照图2,空间和时间处理装置11包括一个第一个组件11a,它是由一个有一个相关的存储器16的时间处理装置15,一个有一个延迟装置18和定序装置19的空间处理装置17和一个产生一个时钟信号HP并用作时间处理装置15和定序装置19的一个时钟的像素时钟20组成。由时钟20以图像的像素速率,优先的是13.5MHZ产生诸时钟脉冲HP。
图3表示时间处理装置15的工作,时间处理装置15的作用是平滑电视信号和产生许多被空间处理装置17利用的输出。当处理时,时间处理装置15从存储器16恢复来自最接近的前一帧的数字电视信号的经平滑的诸像素值LI,和对于每一个帧的一个平滑时间常数CI的诸值。如在这里所用的那样,我们用LO和CO表示来自时间处理装置15的存储在存储器16中的诸像素值(L)和诸时间常数(C),并用LI和CI分别表示对从存储器16恢复并被时间处理装置15使用的这些值的诸像素值(L)和诸时间常数(C)。时间处理装置15对于每一个像素产生一个识别像素是否已经经历了重大变化的二进制输出信号DP,和一个代表时间常数C的被更新计算值的数字信号CO。
参照图3,时间处理装置15包括一个第一个功能块15a,功能块15a接收输入电视信号S的诸像素PI。对于每个像素PI,时间处理装置15从存储器16恢复来自最接近的前一对应帧的这个像素的一个经平滑的值LI,经平滑的值LI是由时间处理装置15当对最接近的前一帧进行处理时计算出来的并将它作为LO存储在存储器16中。时间处理装置15计算对于同一个像素位置(例如,在TR1中l1,1的a1,1和在TR2中l1,1的a1,1)的每个像素值PI和LI之间的差的绝对值AB:
AB=|PI-LI|
为了保持和输入的像素流同步,用来自时钟20的时钟信号HP对时间处理装置15进行控制。时间处理装置15的试验功能块15b接收信号AB和一个阈值SE。阈值SE可以是常数,但是优先地根据像素值PI而变化,更优先的是为了形成一个伽马校正随像素值而变化。改变SE形成一个伽马校正的已知的方法由虚线所示的任选的功能块15e表示。为了确定一个二进制信号DP,试验功能块15b在一个像素接着一个像素的基础上比较诸数字信号AB和SE。如果AB超过阈值SE,这表示像素值PI与在前一帧中同一个像素的平滑值LI相比已经经历了重大的变化,则对于考虑中的像素将DP设置为“1”。否则,对于这个像素将DP设置为“0”。
当DP=1时,我们认为在前一帧中同一个像素的像素值PI和平滑值LI之间的差是太大了,时间处理装置15试图通过减小对那个像素的平滑时间常数C来减小在以后诸帧中的这个差。相反地,如果DP=0,则时间处理装置15试图通过增加对那个像素的平滑时间常数C来增加在以后诸帧中的这个差。作为DP值的一个函数对时间常数C的这些调整是由功能块15c进行的。如果DP=1,则功能块15c使时间常数减小一个单位值U,使得时间常数CO的新值等于时间常数CI的旧值减去单位值U。
CO=CI-U
如果DP=0,则功能块15c使时间常数增加一个单位值U,使得时间常数CO的新值等于时间常数CI的旧值加上单位值U。
CO=CI+U
于是,对于每个像素,功能块15c接收来自试验装置15b的二进制信号DP和来自存储器16的时间常数CI,将CI向上或向下调整一个单位值U,并产生一个新的时间常数CO,将新的时间常数CO存储在存储器16中取代时间常数CI。
在一个优先的实施例中,在功能块15c中,时间常数C有2p的形式,其中p被增加或减小一个单位值U,U优先地等于1。于是,如果DP=1,则功能块15c从在时间常数2p中的p减去1(在U=1的情形中),时间常数2p变为2p-1。如果DP=0,则功能块15c在时间常数2p中的p上加上1,时间常数2p变为2p+1。选择一个形式为2p的时间常数使计算变得容易了从而简化了功能块15c的结构。
功能块15c包括若干个保证***适当工作的试验。首先,CO必须保持在所定义的诸极限内。在一个优先的实施例中,,CO必须不变成负的(CO≥0)和必须不超过一个极限值N(CO≤N),优先地极限值N为7。在CI和CO有2p形式的例子中,上极限值N是p的最大值。
上极限值N可以是常数,但是优先地它是一个变量。一个任选的输入装置15f包括一个存储器寄存器,它能使用户或控制器42改变N。增加N的结果是增加***检测诸像素位移的灵敏度,而减小N改善诸高速度的检测。为了将LO的变化规定为PI水平的一个函数,即,Nijt=f(PIijt),可以使N与PI有关(如果希望的话,N可以在一个像素接着一个像素的基础上改变),在功能块15f中执行该计算,在这种情形中功能块15f将从摄像机13接收PI的值。
最后,一个计算功能块15d,对每个像素,接收由功能块15c产生的新的时间常数CO,输入电视信号S的诸像素值和来自存储器16的在前一个帧中的像素的平滑像素值LI。然后,计算功能块15d如下计算对于像素的一个新的平滑像素值LO:
LO=LI+(PI-LI)/CO
如果CO=2p,则
LO=LI+(PI-LI)/2po
其中“po”是在功能块15c中计算得到的p的新值,它取代在存储器16中的以前的值“pi”。
平滑操作的目的是对输入电视信号的每个像素PI的值中的变化进行规一化,以便减小诸变化的差异。对于帧的每个像素,时间处理装置15从存储器16恢复LI和CI,产生诸新的值LO(新的经平滑的像素值)和CO(新的时间常数),将它们存储在存储器16中分别取代LI和CI。如图2所示,时间处理装置15通过延迟装置18将对于每个像素的CO和DP诸值传输到空间处理装置17。
假定在一个帧中有R个像素,所以每个完整的图像有2R个像素,则存储器16的容量必须至少有2R(e+f)个比特,其中e是为存储单个像素值LI所需的比特数(优先的是8个比特),和f是为存储单个时间常数CI所需的比特数(优先的是3个比特)。如果每个电视图像都是由单个帧组成的(渐进的图像),则用R(e+f)个比特而不是2R(e+f)个比特就足够了。
我们用空间处理装置17识别一个在来自摄像机13的诸图像中相对运动的区域,并确定运动的速度和定向方向。空间处理装置17,连同延迟装置18,与一个由在像素频率产生时钟脉冲HP的时钟20控制的控制装置19合作。空间处理装置17接收来自时间处理装置15诸信号DPij和COij(其中i和j与像素的x和y坐标对应),并如下面讨论的方式对这些信号进行处理。而时间处理装置15处理在每个帧内的诸像素,空间处理装置17处理在诸帧内的诸像素群。
图5图示地表示连续的对应的帧序列TR1,TR2,TR3的时间处理和一个在时间t1,t2和t3有坐标x,y的像素PI的这些帧中的空间处理。图5中的一个平面与一个帧的空间处理对应,而诸帧的迭加与诸连续帧的时间处理对应。
由空间处理装置17将来自时间处理装置15诸信号DPij和COij分布在一个包含许多行和列的第一个矩阵21内,该行数与列数比帧的线数L和每条线的像素数M小得多。优先地矩阵21包括沿y轴的2l+1行和沿x轴的2m+1列(在迪卡尔坐标中),其中l和m是小的整数。选择l和m是2的指数,其中例如l等于2a和m等于2b,a和b为例如约2到5的整数是有利的。为了简化作图和说明,我们将取m等于l(尽管它们可以是不同的)和m=l=23=8。在这种情形中,矩阵21有2×8+1=17行和17列。图4表示形成矩阵21的17行Y0,Y1,......,Y15,Y16和17列X0,X1,........,X15,X16的一部分。
由空间处理装置17将来自时间处理装置15的DPijt和COijt的诸输入流分布在l×m矩阵21内。我们明白因为帧要大得多,有L条线和每行M个像素(例如,312.5条线和250-800个像素),与所用的电视标准有关,所以在矩阵21中将只包含所有DPijt和COijt值的一个子集。
为了将输入电视信号的L×M矩阵与空间处理装置17的l×m矩阵21区别开来,将用指标i和j代表前一个矩阵的诸坐标和用指标x和y代表后一个矩阵的诸坐标。在一个给定的瞬间,一个有一个瞬时值PIijt的像素的特征在空间处理装置17的输入端由诸信号DPijt和COijt的来表示。通过扫描对于DP和CO的诸L×M矩阵中的每一个形成(2l+1)×(2m+1)矩阵21。
在矩阵21中,由一个分别对于诸行Y0到Y16的在0和16(包括16在内)之间的行数和由一个分别对于诸列X0到X16的在0和16(包括16在内)之间的列数定义每个像数,在本情形中l=m=8。在该情形中,矩阵21将是一个17×17=289个像素的平面。
在图4中,诸拉长的水平长方形Y0到Y16(只画出它们中的四个,即Y0,Y1,Y15和Y16)和诸垂直线X0到X16(只画出它们中的四个,即X0,X1,X15和X16)说明矩阵21有17×17个图像点或像素,它们有在一个纵坐标行和一个横坐标列的交点处定义的诸指标。例如,如图4所示P88是列8和行8的交点,该交点在位置e,它是矩阵21的中心。
对来自时钟20的诸HP和BL信号作出响应时(图2),一个速率控制或定序装置19:i)在一个等于13.3MHZ(对于一个有一个对应像素数的图像)被每个帧的列数(例如400)除的商的频率上产生一个线序列信号SL,输入到延迟装置18,ii)产生一个帧信号SC,它的频率等于商13.5/400MHZ被电视图像中的列数除所得的值,例如312.5,和iii)输出HP时钟信号。用消隐信号BL使定序装置19在输入图像中的诸同步信号时不工作。
一个延迟装置18执行将L×M矩阵的诸部分分布在矩阵21中的工作。延迟装置18接收诸DP,CO和诸输入像素S(PI)信号,并用时钟信号HP,线序列信号SL和列序列信号SC将这些接收的信号分布在矩阵21中。
为了从诸DP和CO信号的输入流形成矩阵21,必须如下延迟对于诸DP和CO信号的连续的行Y0到Y16:
行Y0-不延迟;
行Y1-被延迟一条帧线的持续时间TP;
行Y2-被延迟2TP;
等等直到
行Y16-被延迟16TP。
一个帧行的持续时间TP的诸连续的延迟是在分别为诸行Y1,Y2.....Y16服务的级联的16个延迟电路r1,r2,.....,r16中执行的,在从时间处理装置15到达时没有任何延迟的诸DP和CO信号直接为行Y0服务。可以用一条有16个输出端的延迟线构造所有的延迟电路r1,r2,.....,r16,由在两个相继的输出端之间延迟线的任何一段加上的延迟是常数并等于TP。
速率控制装置19控制整个L×M帧矩阵在矩阵21上的扫描。由在从Y0到Y16的17个行中的每一行上的16个移位寄存器d(给出总共为16×17=272个移位寄存器)的一个级联实施17×17矩阵上帧矩阵的一行中诸像素的循环移位,例如在行Y0上从X0到X16的循环移位,这些移位寄存器位于在两个相继的像素位置之间的每一行中,即寄存器d01在位置PI00和PI01之间,寄存器d02在位置PI01和PI02之间等。每个寄存器用列序列信号SC加上一个等于在一行或一条线中两个相继的像素之间的时间差的延迟TS。因为对于S(PI)和对于DP和CO,在一个帧TR1中的诸行l1,l2......l17(图1),一个接着一个被移位了TP(一行的整个持续时间)后,到达延迟装置18,并且延迟装置18以逐渐增加的延迟TP将它们分布在诸行Y0,Y1......Y17上,这些行在同一个帧部分中在一个给定的时间显示对于诸行l1,l2......l17的诸DP和CO信号。类似地,在一个给定的行,例如,l1行中,诸相继的像素信号a1,1,a1,2.......被移位TS后到达,并且移位寄存器d加上一个也等于TS的延迟。作为一个结果,在矩阵21的一个给定行Y0到Y16中诸DP和CO信号的诸像素是同时的,即它们与同一个帧部分对应。
可在一个给定的瞬间在诸移位寄存器,以及在17行前面的诸寄存器的上游,即寄存器d0,1,d1,1.....d16,1的16×17=272个输出端得到代表在矩阵21中的诸CO和DP的诸信号,这对于17×17个位置P0,0,P0,1,.....P8,8......P16,16形成一个总数为16×17+17=17×17个的输出端。
为了更好地了解空间处理过程,我们将相对于一个包含3行和3列的小矩阵M3描述***,其中矩阵的9个元素的中心元素是坐标为x=8,y=8的像素
e,如下所示:
a b c
d e f (M3)
g h i
在矩阵M3中,围绕中心像素
e的诸位置a,b,c,d,f,g,h,i与相对于中心像素的8个定向方向对应。可以用Freeman代码识别这8个定向如图6所示,编码为0到7的诸方向从x轴开始,每步45°。在Freeman代码中,因为23=8,所以可用一个3比特的数表示8个可能的定向方向。
考虑矩阵M3,Freeman代码的8个方向如下:
3 2 1
4
e 0
5 6 7
回到有17×17个像素的矩阵21,一个计算装置17a同时考察在矩阵21内的大小为15×15,13×13,11×11,9×9,7×7,5×5和3×3的中心在
e的诸不同的嵌套的方的子矩阵,其中3×3矩阵就是上面提到的M3矩阵。空间处理装置17确定哪个矩阵最小,在最小矩阵中有DP=1的诸像素沿着一条直线排列,该直线确定排在一条直线上的诸像素的运动方向。
对于在矩阵中排在一条直线上的诸像素, ***确定CO是否在对准的方向中在中心位置的每一边,从在一个定向方向中的+a和在相反的定向方向中的-a变化,其中1<a<N。例如,如果M3的诸位置g,e和c有值-1,0,+1,则在这个矩阵中在Freeman代码中在(定向)方向1中从右到左存在一个移位(图6)。然而,诸位置g,e和c必须同时有DP=1。当在3×3到15×15的诸嵌套矩阵中,矩阵较大,在该矩阵中CO在沿着一个方向的两个相邻位置之间从+1或-1开始变化时,运动中的诸像素的移位速度较大。例如,如果由9M标记的9×9矩阵中诸位置g,e和c在定向方向1中有值-1,0,+1,则移位将比对于在3×3的M3矩阵中的值-1,0,+1的移位快(图7)。我们选择最小的矩阵作为感兴趣的主线,对于该矩阵一条线满足对于在该线中的诸像素的DP=1的试验并且CO在对准的方向中在中心位置的每一边从在一个定向方向中的+a和在相反的定向方向中的-a开始变化。
在一个给定的矩阵内,CO的一个较大的值表示较慢的运动。例如,在最小的矩阵,即3×3矩阵中,CO=2并有DPS=1确定子像素的运动,即每个图像的二分之一个像素的运动,CO=3表示较慢的运动,即每个图像三分之一个像素的运动。为了降低***中的计算功率和简化硬件,优先地只考虑CO的相对于中心像素对称的那些值。
因为在一个优先的实施例中CO由一个2的指数表示,所以可以对CO只用几个比特来识别速度的一个扩大的范围,而仍然能识别诸相对低的速度。因为例如在3×3矩阵M3中诸位置g,e和c中的值-2,0,+2表示一个速度只有与在M3矩阵中诸相同位置中的值1,0,+1对应的速度一半那样快。
为了消除诸不确定性,优先地我们对诸结果进行两个试验。如果在诸嵌套的矩阵中的一个中沿着若干个方向CO都有变化,则第一个试验选择最强的变化,换句话说最大的时间常数。第二个试验任意地选择沿着这些方向CO的变化是相同的两个(或多个)方向中的一个,这种选择例如可通过在单个矩阵中以诸不同的方向定向诸相同的运动线的情形下选择Freeman代码的最小值来实现。这通常当移位的实际方向近似在Freeman代码中的两个相继的编码方向之间,例如在与一个(定向的)方向对应的诸方向1和2之间时发生,该(定向的)方向能被表示为与x轴方向(在Freeman代码中的0方向)成约67.5°的1.5(图6)。
数字电视信号S的一个完整的帧的扫描优先地发生在下列序列中。考虑的第一组像素是帧的最初的17行或线和帧的最初的17列。因此,仍然对帧的最初的17行,从帧的左边到帧的右边一列一列地移动矩阵,如图5所示,即从最左边位置TM1开始,然后TM2相对与于TM1位移一列,直到在最右边的TMM(其中M是每条帧线或行的像素数)为止。一旦已经从左到右对每一列考虑了最初的17行,就对帧中的诸行2到18重复该过程。这个过程继续着,一次向下移动一行直到考察了在帧的底部的最后一组线,即线L-16.....L(其中L是每个帧的线数)为止。
为了得到一个定时到矩阵21的可以在一台电视机或监视器上显示出来的电视信号,空间处理装置17对每个像素产生下列的诸输出信号:i)根据CO围绕像素的最大变化的振幅,一个代表像素的移位速率的信号V,如果速度有一个2的指数的形式,它的值可以,例如,由在范围0-7中的一个整数来表示,所以可存储在3个比特中,ii)一个代表像素移位的方向的信号DI,该方向是从最大变化的方向计算出来的,优先地也由在与Freeman代码对应的范围0-7中的一个整数来表示DI的值,并将该值存储在3个比特中,iii)一个二进制证实信号VL,它指示为了能够将一个有V=0和DI=0的有效输出与由于一个偶然事件缺少一个输出区别开来,速度和定向方向的结果是否有效,对于一个有效的输出这个信号是1或对于一个无效的输出这个信号是0,iv)例如存储在3个比特中的一个时间常数信号CO,和v)一个延迟的电视信号SR,它由在延迟装置18中被延迟了16连接的线持续时间TR,从而被延迟了将信号S分布在17×17矩阵21中的持续时间的输入电视信号S组成。又,从控制装置19输出时钟信号HP,线序列信号SL和列序列信号SC。
可以用诸嵌套的六角形矩阵(图8)或一个倒置的L形矩阵(图9)取代图4和7中的诸嵌套的长方形矩阵。在如图8所示的情形中,诸嵌套的矩阵(其中只画出了最接近中心的矩阵MR1和MR2)都以点MR0为中心,点MR0与图7中的矩阵M3,M9的中心点对应。一个六角形矩阵***的优点是它允许使用诸斜的坐标轴xa和ya,和可以分解成诸等边三角形,以便执行一个各向同性的速度计算。
图9中的矩阵由从中心位置MRu开始的单行(Lu)和单列(Cu)组成,在该中心位置如果发生运动,则两个信号DP和CO分别是对于DP等于“1”和对于CO增加或减少一个单元。
如果运动是在x坐标方向,则CO信号在列Cu中的所有位置(诸盒子)中是相同的,并且二进制信号DP在行Lu中的所有位置,从有值COu的原点MRu直到CO等于COu+1或-1在内的位置中都等于1。如果运动是在y方向,则CO信号在行Lu中的所有位置(诸盒子)中都是相同的,并且二进制信号DP在列Cu中的所有位置,从有值COu的原点MRu直到CO等于COu+1或-1在内的位置中都等于1。如果运动相对于x和y坐标是斜的,则二进制信号DP等于1,而CO等于在行Lu中的诸位置(诸盒子)中和在列Cu中的诸位置(诸盒子)中的COu,斜率由通过两个位置的直线的垂线确定,在这两个位置上信号COu改变一个单位值,而DP信号总是等于1。
图9表示在两个特定的位置Lu3和Cu5中DP=1和COu改变一个单位值的情形,并指出对应的斜率PP。在所有的情形中,移位速度是其中CO改变一个单位值的位置的函数。如果CO仅在Lu或Cu中改变一个单位值,则移位速度与CO变化位置的值对应。如果CO在Lu中的一个位置和在Cu中的一个位置改变一个单位值,则速度与MRu和Ex(通过MRu的与Cu-Lu垂直的直线的交点)之间的距离成正比。
图10表示一个有诸传感器的成像装置,这些传感器位于与一个矩形矩阵成像装置的诸行和诸列对应的诸同心线c和诸径向线d的诸交点。这样一个成像装置的工作是由一个循环扫描序列发生器控制的。在这个实施例中,形成了有角度扇形的诸n×n矩阵MC(图中指出了一个3×3矩阵MC3和一个5×5矩阵MC5),除了诸定序不同外,与上面讨论过的诸方矩阵实施例一样地对这些矩阵进行处理。
如在图11-16所示,将空间和时间处理装置11与一个分布图处理机22a相关地用于根据用户规定的为了识别这些目标的判据,识别在输入信号内的诸目标。一条总线Z-Z1。(请见图2,11和12)将空间和时间处理装置11的诸输出信号传送到分布图处理机22a。分布图处理机22a产生组合的输出信号ZH,它包含关于在情景中相对运动中的诸区域的信息。
参照图12,分布图处理机22a包括一条总线23,总线23用于在分布图处理机22a的诸不同部件之间传递诸信号,用于接收来自一个控制器42的诸输入命令和用于将诸输出信号传送给控制器42。诸分布图形成和处理功能块24-29接收诸不同的输入信号,即延迟数字电视信号SR,速度V,诸定向方向(以Freeman代码表示)DI,时间常数CO,第一个轴x(m)和第二个轴y(m),我们将在下面对它们进行详细的讨论。每个分布图形成功能块的功能是使能对与那个功能块相关的域形成一个分布图。例如,分布图形成功能块24接收延迟数字电视信号SR和使能对电视信号的诸亮度值形成一个分布图。因为信号的亮度一般地将由一个在范围0-225内的数表示,所以分布图形成功能块24优先地是一个用8比特可寻址的存储器,存储器的每个存储位置有与在一个帧中的诸像素的数量对应的足够的比特数。
分布图形成存储器25接收速度信号V和使能对在一个帧中的诸不同的速度形成一个分布图。在一个优先的实施例中,速度是一个在范围0-7中的整数。于是分布图形成功能块25优先地是一个用3比特可寻址的存储器,存储器的每个存储位置有与在一个帧中的诸像素的数量对应的足够的比特数。
分布图形成功能块26接收定向方向信号DI和使能对在一个帧中的诸定向方向形成一个分布图。在一个优先的实施例中,定向方向是一个在范围0-7中的整数,与Freeman代码对应。于是分布图形成功能块26优先地是一个用3比特可寻址的存储器,存储器的每个存储位置有与在一个帧中的诸像素的数量对应的足够的比特数。
分布图形成功能块27接收时间常数信号CO和使能对在一个帧中的诸时间常数形成一个分布图。在一个优先的实施例中,时间常数是一个在范围0-7中的整数。于是分布图形成功能块27优先地是一个用3比特可寻址的存储器,存储器的每个存储位置有与在一个帧中的诸像素的数量对应的足够的比特数。
分布图形成方框28和29分别接收对它们要形成一个分布图的诸像素的诸x和y位置,并对于这些像素形成诸分布图,如在下面较详细地讨论的。分布图形成功能块28优先地是一个用与在一条线中的像素的数量对应的比特数可寻址的存储器,存储器的每个存储位置有与在一个帧中的线的数量对应的足够的比特数,而分布图形成功能块29优先地是用与在一个帧中的线的数量对应的比特数可寻址的存储器,存储器的每个存储位置有与在一条线中的像素的数量对应的足够的比特数。
参照图12和14,分布图形成功能块24-29分别有一个相关的验证功能块30-35,它们分别产生一个验证信号V1-V6。一般地,分布图形成功能块24-29中的每一个都和诸其它的相同并以相同的方式起作用。为了简单起见,我们将关于分布图形成功能块25的工作对本发明进行描述,我们懂得诸其它的分布图形成功能块以相同的方式工作。分布图形成功能块25包括一个分布图形成部分25a,它形成对于那个功能块的分布图,和一个分类器25b,用于选择对它们形成的分布图的诸像素的判据。分布图形成部分25a和分类器25b在一个集成电路(图中未画出)中的计算机软件的控制下工作,以便提取由分布图形成功能块产生的诸分布图的某些限制,和对诸分布图形成装置的诸不同的部件的工作进行控制。
参照图14,分布图形成部分25包括一个存储器100,它优先地是常规的数字存储器。在形成一个速度分布图的分布图形成功能块25的情形中,存储器100的大小是有地址0-7,这些地址中的每一个都可以存储在一个图像中的像素的数量。在诸帧之间,通过在诸多路复用器102和104中设置init=1使存储器100初始化,即清除所有的存储。这有,关于选择“0”输入的多路复用器102,输出到存储器100的记入数据线的效果。同时,设置init=1使多路复用器104选择计数器输入,将它输出到存储器100的地址线。计数器输入端与一个计数器(图中未画出)连接,该计数器计数通过存储器100的所有地址进行计数,在这种情形中0≤地址≤7。这有在存储器100的所有存储地址中放入一个零的效果。优先地在每个帧之间的消隐间隔时间内对存储器100进行清除。在对存储器100进行清除后,将init线设置到零,在多路复用器102的情形中它导致将数据线的内容发送到存储器100,在多路复用器104的情形中它导致将来自空间处理装置117的数据,即V数据,发送到存储器100的地址线。
分类器25b使只有诸选出的分类判据的数据被进一步考虑,这意味着可能被包括在由分布图形成功能块24-29形成的诸分布图中。例如,关于速度,它优先地是一个在范围0-7中的值,可以设置分类器25b只考虑在一个特殊的速度范畴或诸范畴,例如速度1,速度3或5,速度3-6等内的数据。分类器25b包括一个寄存器106,该寄存器106能使用户或一个分开的计算机程序设置诸分类判据。作为一个例子,寄存器106将包括,在速度的情形中,8个编号0-7的寄存器。通过将一个寄存器设置到“1”,例如寄存器号码2,只有满足选出类别的判据,例如速度2将导致一个分类的输出“1”。在数学上表示出来时,对于任何给定的寄存器,其中R(k)=b,k是寄存器号码,b是存储在寄存器中的布尔值:
输出=R(数据(V))
所以对于数值2的一个数据点V,只有当R(2)=1时,分类器25b的输出将是“1”。与分布图形成功能块24相关的分类器优先地有256个寄存器,一个寄存器用于图像的每个可能的亮度值。与分布图形成功能块26相关的分类器优先地有8个寄存器,一个寄存器用于每个可能的方向值。与分布图形成功能块27相关的分类器优先地有8个寄存器,一个寄存器用于CO的每个可能的值。与分布图形成功能块28相关的分类器优先地有与每条线的像素数相同的寄存器数。最后,与分布图形成功能块29相关的分类器优先地有与每个帧的线数相同的寄存器数。在分布图形成功能块28和29的情形中通过组合装置36,经过总线23将每个分类器的输出传输到诸验证功能块30-35中的每一个,我们将在下面对此作进一步的讨论。
诸验证功能块30-35从在诸分布图形成功能块24-29中的所有分类装置平行地接收分类信息。每个验证装置产生一个验证信号,将验证信号传输到它的相关的分布图形成功能块24-29。对于每个输入的像素,验证信号确定分布图形成功能块是否在形成它的分布图中将利用那个像素。再次参照表示分布图形成功能块25的图14,验证装置31包括一个寄存器功能块108,寄存器功能块108有一个与每个分布图形成功能块相关的寄存器,或者更一般地,一个与***能处理的每个数据域,在这种情形中,是亮度,速度,方向,CO,和x及y位置,相关的寄存器。在寄存器功能块108中的每个寄存器的内容是一个可以由一位用户或一个计算机控制器设置的二进制值。每个验证装置通过总线23接收每个分类器的输出,在这种情形中诸分类器的号码为0,.....,p,我们记住如果考虑的特殊的数据点是在对于那个数据域的分类器中那类设置到“1”的寄存器中,则对于任何一个数据域,例如速度,分类器对于那个数据域的输出将只能是“1”。如果对于在验证装置中的设置到“1”的每个寄存器,对于那个寄存器的域从分类器接收一个输入“1”,则来自每个验证装置的验证信号将只能是“1”。这可以如下表示出来:
其中Reg0是在与输入in0相关的验证装置中的寄存器。于是,用诸分类器与诸验证装置30-35组合,***能够为处理选择只有在任何选出的域内在任何选出的类别中的诸数据点。例如,可以用***通过设置下列寄存器:在对于速度,方向和亮度的诸验证装置中的诸寄存器,速度分类器中的寄存器2,方向分类器中的寄存器4,和亮度分类器中的寄存器125中的每一个到“1”,检测只有速度2,方向4和亮度125的诸数据点。为了将这些像素形成在一个功能块中,也将在对于x和y方向的诸验证装置中的诸寄存器设置到“1”。
再次参照图13,在一个像素一个像素的基础上更新验证信号V2。如果,对于一个具体的像素,验证信号V2是“1”,则加法器110使存储器100的输出增加1。如果,对于一个具体的像素,验证信号V2是“0”,则加法器100不使存储器100的输出增加。在任何情形中,都将加法器100的输出存储在存储器100中的与考虑的像素对应的地址上。例如,假定用存储器100形成一个速度的分布图,该分布图可以被分类成诸速度0-7,并且存储器100将包括0-7的对应的存储器位置,如果接收一个有速度6的像素,则通过数据线输入到多路复用器104的地址将是6。假定验证信号V2是“1”,则将使在存储器中在位置6的内容增加。在一个成像过程中,存储器100将包含一个在对与存储器相关的范畴中的图像的诸像素的分布图。如果,对于一个具体的像素,因为那个像素不在一个诸像素要被计数的范畴内(例如,因为那个像素没有正确的方向,速度或亮度),所以验证信号V2是“0”,则在形成分布图时将不用该像素。
对于在存储器100中形成的分布图,在一个装置112中同时计算对于那个分布图的诸关键特征。参照图14,装置112包括用于每个关键特征的诸存储器,这些关键特征包括分布图的最小值(MIN),分布图的最大值(MAX),分布图中的点数(NBPTS),分布图的最大值的位置(POSRMAX),和分布图的最大值处的点数(RMAX)。如下地与分布图的形成平行地确定这些特征:
对于每个有一个验证信号V2是“1”的像素:
(a)如果像素的数据值<MIN(它最初设置在分布图的最大可能值),则将数据值写入MIN中;
(b)如果像素的数据值>MAX(它最初设置在分布图的最小可能值),则将数据值写入MAX中;
(c)如果在像素的数据值的地址上存储器100的内容>RMAX(它最初设置在分布图的最小可能值),则i)将数据值写入POSRMAX中和ii)将存储器输出写入RMAX中。
(d)增加NBPTS(它最初设置在零)。
在每个帧的终端在存储器100中完成分布图的形成时,装置112将包含表示分布图特征的重要数据。在每个帧的扫描点的时候由控制器42读出在每个存储器100中的分布图和在装置112中的分布图的诸特征,清除诸存储器100和为了对下一个帧进行处理再次对诸装置112进行初始化。
本发明的***包括一个半图解的掩蔽(masking)功能,以便选出***考虑的诸像素。图16表示一个典型的由安排在一个Q×R矩阵中的诸像素组成的图像53,该矩阵被分成诸子矩阵51,每个子矩阵都有一个s×t的大小,其中每个s×t子矩阵都包括图像的s×t个像素。在图17中所示的每个子矩阵都是一个3×4矩阵。尽管,如果希望的话,可以用任何适当的子矩阵大小,包括1×1在内,但是在一个优先实施例,s=9和t=12。参照图12,分布图处理机22a包括一个半图解的存储器50,它包括一个与每个s×t矩阵对应的1比特存储位置。对于任何给定的子矩阵51,可以将在存储器50中的对应位设置到“0”,它有略去在这个子矩阵50中所有像素的作用,或者可以设置到“1”,在该情形中,在形成诸分布图时将考虑在这个子矩阵中的所有像素。于是,通过用半图解的存储器50,当形成分布图时可以限制考虑的图像的那些区域。例如,当用由一台面对一辆汽车的摄像机拍摄一条道路的一个图像,以便检测道路的诸行车道时,离摄像机最远的道路的像素信息一般地不包含有用的信息。因此,在这种应用中,我们用半图解的存储器,通过设置半图解的存储器50遮蔽道路的诸远离部分来略去这些像素。换句话说,如下面的讨论所示,可以通过设置***使它只跟踪在一个排除屏幕的不想要的区域的检测盒内的诸像素,遮蔽要被略去的道路部分。
在工作中,对于任何考虑中的像素,一个AND工作是在对于这个像素的验证信号和对于那个像素所在的子矩阵的半图解的存储器50的内容上进行的。如果对于那个像素所在的子矩阵的半图解的存储器50的内容包含“0”,则AND工作将产生一个“0”并将略去该像素,否则将以通常的方式考虑该像素。我们预见AND工作可以在不同于验证信号的,有相同结果的功能度的其它信号上进行。又,我们预见存储器50可以是一个帧大小的存储器,它的每个像素在半图解的存储器中都可独立地选择。这使我们能如我们希望的那样考虑或略去图像的任何希望的诸像素。由控制器42通过数据总线23对半图解的存储器50进行设置。
图16表示相继的类别C1,C2……Cn-1,Cn的一个例子,每个都代表对于一个假设的速度分布图的一个具体的速度,在这个例子中它们是有直到16个速度的(图中画出了15个)范畴。图中也画出了包络38,它是分布图的一个经过平滑的代表。
为了确定满足用户规定的诸判据的一个目标在图像内的位置,用诸分布图功能块28和29产生对于满足选出的诸判据的诸像素的x和y位置的分布图。这些是如图13所示的沿x和y坐标的诸分布图。将这些x和y数据输出到移动区域信息功能块36,它将横坐标和纵坐标信息x(m)2和y(m)2d分别组合到一个输出到总线23的组合信号xy(m)中。一个作为样本的组合的分布图40如图13所示。我们用诸不同的分布图和输出到总线23的组合信号xy(m)确定在图像中是否有一个运动的区域,确定这个区域的位置,和/或确定它的速度及定向方向。因为相对运动中的区域可以在一个沿不一定正交的诸x和y方向的观察平面中,如下面关于图18所讨论的那样,所以可以用一个数据改变功能块37将x和y数据变换到正交坐标系。数据改变功能块37接收对于诸x(m)0和y(m)0轴的诸定向信号x(m)1和y(m)1以及诸像素时钟信号HP,行序列信号SL和列序列信号SC(这三个信号群集在图2,4和10中的束F中)并产生分别输出到诸分布图形成功能块28和29的正交信号x(m)1和y(m)1。
为了处理只在一个用户定义的区域内的诸像素,可以对x方向的分布图形成装置28进行编程,以便处理只在由诸边界,即XMIN和XMAX限定的一类像素中的诸像素。这通过在x方向的分布图形成装置28或在诸线性组合装置30-35中的一个用户可编程存储器中设置XMIN和XMAX来完成。将不对在这个类别外的任何像素进行处理。类似地,可以对y方向的分布图形成装置29进行设置,以便处理只在由诸边界YMIN和YMAX限定的一类像素中的诸像素。这通过在y方向的分布图形成装置29或诸线性组合装置30-35中的一个用户可编程存储器中设置诸YMIN和YMAX值来完成。于是,***能够处理只在通过如希望的那样设置诸XMIN和XMAX,YMIN和YMAX值限定的一个矩形内的诸像素。当然,为了只形成在选出的矩形区域内在诸选出的域中的诸选出的像素类别的诸分布图,可以对来自诸其它的分布图形成装置的诸分类判据和诸验证判据进行设置。诸XMIN和XMAX存储位置有足够的位数,表示在考虑中的图像的x方向中的最大像素数,而诸YMIN和YMAX存储位置有足够的位数,表示在考虑中的图像的y方向中的最大像素数。如在下面要进一步讨论的那样,为了产生沿诸转动轴的诸投影的分布图,可以转动x和y轴。在一个优先的实施例中,诸XMIN,XMAX,YMIN和YMAX存储位置有足够的位数,表示沿着考虑中的图像的对角线的最大像素数(在图15中从“原点”到“停止点”的距离)。以这种方式,可以沿一个用户定义的转动轴***在一个用户定义的矩形内用***进行搜索。
为了在诸x和y方向的分布图的形成中考虑一个像素PI(a,b),不论在诸正交坐标轴上还是沿着诸转动的轴,必须满足条件XMIN<a<XMAX和YMIN<b<YMAX。可以使得如果上述诸条件不满足,则对于考虑中的像素用验证信号自动数值判定一个逻辑值“0”,从而避免在形成诸x和y方向的分布图时考虑该像素那样地,用验证信号自动数值判定这些试验的输出。
图13图解地表示对于速度数据,分别在x和y坐标中,分布图38和39的包络。在这个例子中,XM和yM表示两个分布图38和39的最大值的x和y坐标,而对于x轴的la和lb及对于y轴的lc和ld表示诸重要的或感兴趣的速度的范围的诸界限,la和lc是诸分布图的重要部分的下界限,而lb和ld是诸分布图的重要部分的上界限。诸界限la,lb,lc和ld可以由用户设置或由一个用***的应用程序设置,可以被设置为分布图的最大值的一个比,例如xM/2,或可以被设置为对于具体应用所希望的别的值。
横坐标la和lb的垂直线La和Lb与纵坐标lc和ld的水平线Lc和Ld形成一个矩形,它包围了诸重要速度的画交叉阴影线的区域40(对于所有的x和y方向)。在主要区域40附近存在一些有较长速度的较小的区域41,典型地将它们略去。在这个例子中,为了用对于分布图的参量,在这个具体的情形中是速度,的最大变化表示区域的特征必需做的一切是识别诸界限的坐标la,lb,lc和ld和最大值XM和YM,可以容易地对来自存储器100的每个分布图,在诸装置112中的数据和xy(m)数据功能块将它们推导出来。
于是,本发明的***实时地产生被检测的诸参量中的每一个的分布图。假定我们想要识别一个有一个速度“2”和一个方向“4”的目标,则将对于速度和方向的诸验证装置设置到“1”,和将对于速度“2”和方向“4”的诸分类器设置到“1”。此外,因为我们想要在电视图像上确定有这个速度和方向的(诸)目标的位置,所以也将用于与x和y坐标对应的分布图形成功能块28和29的诸验证信号设置到“1”。以这种方式,分布图形成功能块28和29将实时地形成只有选出的速度和方向的诸像素的诸分布图。利用分布图中的信息,特别是POSRMAX,能够实时地在电视图像上识别在选出的速度和方向上有最大数量的像素的目标。更一般地,诸分布图形成功能块能实时地确定满足用户选出的诸判据的诸目标的位置,并且如果检测出一个目标,则可以产生一个输出信号。换句话说,可以通过例如导线,光纤或为了远程应用的无线电中继站将信息传输到一个控制装置,如图1中的装置10a,该装置可以在离空间和时间处理机11近或远的地方。
虽然我们已经关于诸分布图的信息用一个由电视图像的水平和垂直轴定义的正交坐标系对本发明的***进行了描述,但是我们可以用由用户定义的诸非正交坐标轴用该***形成诸分布图。图15A和15B表示一个用分析轴转动来确定在一个图像中某些点的定向的方法,这是一个可以用来例如检测诸线的方法。在一个优先的实施例中,可以转动x轴直到16个不同的方向(180°/16),和可以独立地转动y轴直到16个不同的方向。用数据线变化功能块37完成诸轴的转动,数据线变化功能块37接收用户对x和y轴中的每一个定义的转动轴作为一个输入,并实施一个Hough变换用x和y分布图形成功能块28和29将考虑中的诸x和y坐标值变换到考虑的转动坐标轴系。用一个Hough变换在诸坐标系之间进行变换的操作在技术上是已知的。于是,用户可以选择x坐标系在直到16个不同的方向中的转动,和可以独立地转动y坐标系直到16个不同的方向。利用诸转动坐标系,***能够实施上面描述的功能度,包括在用户定义的诸矩形(在诸转动的轴上)内进行搜索,在诸转动的轴上形成诸分布图和用速度,方向等进行搜索。
如上面所讨论的,每个分布图形成装置为它的各个分布图计算诸下面的值。
MIN,MAX,NBPTS,RMAX,POSRMAX
如果这些值是实时计算的,利用这些值允许***迅速地识别在一个图像上的诸线。虽然这可以用许多不同的方法来完成,但是诸较容易的方法中的一个是计算R,其中R=NBPTS/RMAX,即在分布图中的点数与在最大线中的点数之比。这个比越小,即R越接近1,考虑中的诸数据点与扫描轴越垂直地对准。
图15A表示考虑中的某些点的一个分布图,其中分布图是沿x轴取的,即投影到x轴上。在这个例子中,比R,虽然没有计算出来,但是很高,并且没有包含什么关于考虑中的诸点的定向的信息。当转动x轴时,比R增加,直到,如图15B所示,在近似45°,比R达到一个最大值为止。这表示考虑中的诸点最接近垂直对准45°的x轴。在工作中,在相继的诸帧上,或者在同一个帧上,如果可利用多个x方向分布图形成装置,则为了恒定地保证R处在一个最小值,在诸不同的角度,例如33.75°和57.25°上(假定限制诸轴每次只能转动16°)计算R是有利的。对于希望可以检测诸线的应用中,并假定可以利用16个x方向的分布图形成装置,同时沿所有可能的轴执行R的计算,确定与R的最小值形成的角度从而确定线的定向方向是有利的。因为x和y轴可以独立地转动,所以诸x和y的分布图形成装置能够以同一个方式同时独立地检测诸线,如一条道路的每条边线。
如上面所讨论的,可以用本发明的***在一个由XMIN,XMAX,YMIN和YMAX规定的有界区域内搜索诸目标。因为移动的目标可能离开有界区域,所以***优先地包括一个预先进行处理的功能,它能使***自动地修改XMIN,XMAX,YMIN和YMAX,以便补偿目标的速度和方向。通过用方向分布图确定与在有界区域内目标运动的定向(方向)对应的O-MVT的诸值和与运动的强度(速度)对应的I-MVT的诸值来完成这个工作。利用这些参量,控制器42可以在一个帧一个帧的基础上修改XMIN,XMAX,YMIN和YMAX的值,以便保证目标保持在被搜索的有界盒子内。这些参量也能使***确定一个运动的目标,例如一条在它的转动轴的基础上正在被跟踪的线,何时将改变它的定向轴,并能使***为了保持R的一个最小化的值,预期一个新的定向轴。
参照图12,我们用一个控制器42,它优先地是一个常规的以微处理机为基础的控制器,对***的诸不同的部件进行控制,控制器42能使用户用例如一个计算机鼠标和键盘(图中未画出)或其它的输入装置输入诸命令和诸控制指令。优先地在单个集成电路上形成部件11a和22a以及控制器42。控制器42与数据总线23进行通信,这允许控制器42运行一个程序,对可以在***中设置的诸不同的参量进行控制和分析诸结果。为了选择被跟踪的诸像素的诸判据,控制器42也可以直接控制下列诸事物:i)在诸分类器25b中的每个寄存器的内容,ii)诸验证装置31中的每个寄存器的内容,iii)XMIN,XMAX,YMIN和YMAX的内容,iv)x和y轴中的每一个的定向角和v)半图解的存储器50。为了分析分布图形成过程的诸结果,控制器42也可恢复i)每个存储器100的内容,ii)诸寄存器112的内容。此外,一般地控制器42可以存取和控制用在***中的所有数据和参数。
可以用本发明的***检测一辆车的驾驶员是否正在睡觉并在检测出睡觉时发出一个警报。虽然我们将描述本发明的许多实施例,但是一般地***从一台摄像机或类似的装置接收驾驶员的一个图像并对该图像进行处理以便检测驾驶员两只眼睛的一个或多个判据,确定驾驶员的两只眼睛何时张开和何时闭合。如上面所讨论的,一个完全清醒的人一般地以相当有规律的大约100到200ms(毫秒)的间隔眨眼睛。当一个人变得打磕睡时,每次眨眼睛的长度增加到近似500到800ms,眨眼睛之间的间隔变得较长并且是可变的。利用关于驾驶员两只眼睛的张开和闭合的信息,***测量每次眨眼的持续时间和/或眨眼之间的诸间隔,确定驾驶员何时正在睡觉。这是可能的因为来自正在使用的传感器,例如图21的传感器310,的电视信号优先地产生每秒50或60个帧,即分别为每20ms或16.66ms一帧。这使实时地处理每个图像的***能够在一个每秒50帧的电视信号的情形中,区别一个清醒的人的100到200ms的诸眨眼长度和一个打磕睡的人500到800ms的诸眨眼长度,即区别一个清醒的人的一个5到10帧的眨眼长度和一个打磕睡的人的一个25到40帧的眨眼长度。
为了检测何时驾驶员正在睡觉,本发明的***利用一台电视摄像机或其它的传感器接收驾驶员T的诸图像。虽然我们将描述放置传感器的诸不同的方法,但是一般地可以用任何方法将传感器放在任何允许获得当驾驶员坐在驾驶员位置中时驾驶员面部的一个连续的图像的位置。于是,我们预见可以将传感器10装到或装在车辆上的任何适当的位置,如在车辆仪表板,方向盘,车门,后视镜,顶棚等的里面或上面,使加传感器10能看到驾驶员面部的位置中。如果要求看到诸身材大小不同的驾驶员,可以将一个适当的透镜安装在传感器10上,以便给传感器一个更广阔的视场。
图18和19表示一个常规的后视镜安排,其中一位驾驶员T能够沿方向301向前看和通过一个后视镜303(沿诸视线302a和302b)向后看。参照图20,通过一个连接臂304将后视镜303连接到车体305,连接臂304能够调整诸视轴302a和302b。诸视轴302a和302b一般地是平行的并被定向在车辆的方向上。与后视镜303的面303a垂直的光轴306将由诸视轴302a和302b形成的角度分成两个相等的角度a和b。与轴302b垂直的,所以一般地与车体305的连接部分平行的轴307定义了在轴307和镜面303a之间的一个角度c,角度c一般地等于角度a和b。优先地用一个托架299将一台摄像机或传感器310安装在后视镜上。可以将摄像机安装在能使驾驶员有一个道路的清楚视野而同时能使传感器310获得驾驶员面部的诸图像的任何希望的位置上。托架299可以是一个可调整的托架,它能使摄像机面对一个希望的方向,即面对驾驶员,或者托架299可以处在一个固定的定向上,使得当诸身材大小不同的驾驶员调整后视镜时,摄像机能够继续取得驾驶员面部的图像。通过导线或类似的东西(图18-20中未画出)将来自摄像机的信号传输到图像处理***,该***的工作将在下面进行描述。
图21和22表示一个后视镜组件308,其中传感器310安装在后视镜组件的内部。使一位驾驶员能够对后视镜组件308进行调整那样地安装后视镜组件308,将传感器310保持在对准驾驶员面部的方向上。后视镜组件308包括一面双向的镜子309,镜子309有一个可以移动地定向以便为驾驶员提供一个后视野的面309a。将传感器310,它优先地是一台电子***机或有一个内装透镜的MOS(金属氧化物半导体)传感器,安装在一个托架311上。用机械安排使传感器310面对驾驶员地定向,这能使传感器310当调整镜子309使驾驶员有一个车辆的后视野时,接收驾驶员面部的一个图像。机械安排由一个万向型机械接头组成,当驾驶员调整后视镜使得传感器310的接收面310a接收驾驶员面部的图像,即光轴310b保持向着驾驶员头部对准时,万向型机械接头使托架311能被自动地调整。
托架311包括连杆312和313,用一个旋转枢轴314a(图21)或一个套筒314b(图22)将连杆312和313可动地耦合在一起。连杆312一头与车辆305的一个安装部分相接,一个旋转枢轴315,它优先地由一个球和两个基本上半球形的轴承盖组成,使后视镜组件308能容易地运动。连杆312通过旋转枢轴315延伸并通过套筒314b或另一个旋转枢轴314a与连杆313相接。连杆313一端牢固地支持其上装有传感器310的托架311。连杆313经过一个中空的枢轴317通过后视镜组件308的支架316延伸。枢轴317包括一个有一个通过其中的通道的球,连杆313就与该通道接合,枢轴317在由支架316支持的基本上半球形的轴承盖中转动。接头恒定地在镜子309和托架311之间保持一个希望的角度,从而当托架311调整传感器310的方向使得传感器的面310a能接收驾驶员面部的一个图像时,允许后视镜309的正常调整。如果希望的话,我们预见可以将传感器310装在后视镜组件308的内部,相对于后视镜组件308的面309a形成一个固定的角度,使得当调整镜子对准诸身材大小不同的驾驶员时传感器310能够接收驾驶员面部的一个图像。可以将一个广角透镜装在传感器310上,使能在诸不同的调整情况下更好地使用传感器。
通过一条或多条导线将传感器310连接到图像处理机319,图像处理机319优先地是一个上面讨论的那种类型的图像处理装置并且优先地它是在后视镜组件308里面的一个集成电路。在一个优先实施例中,图像处理***319与传感器310构成一个整体。在另一种情形中,图像处理***319可以通过诸常规的导线放在后视镜组件308的外面。虽然控制器42优先地是一个微处理机,但是我们预见控制器42可以是一个ASIC(专用集成电路)或单纯的控制器,它们被设计得能实施这里规定的诸功能,特别是如果将***放入或保持在一个后视镜组件内或与一辆车形成一个整体的话。
诸电致发光二极管320可以与后视镜组件308结合在一起,以便当周围的光对于图像处理***319不足以确定驾驶员的眨眼特征时,用红外辐射照射驾驶员的面部。当用这些二极管时,传感器310的类型必须是能够接收红外辐射的。如果希望的话,可以用图像处理***319的控制器42(图12)控制诸电致发光二极管320的发光。例如,在由图像处理***319产生的诸分布图没有包含足够有用的为检测驾驶员面部的所需的诸特点的信息,例如NBPTS低于一个阈值的情形中,控制器42可以照射诸电致发光二极管320。如果希望的话,可以逐渐地照射诸电致发光二极管320,诸电致发光二极管320可以与一个或多个光电二极管(图中未画出)连接起来工作,这些光电二极管产生一个关于驾驶员附近的周围光照的信号,还可以用这些光电二极管或者单独地或者与控制器42或另一个控制电路结合地对诸电致发光二极管320进行控制。如果希望的话,假定传感器310与照明源相容,则可以在所有时间内用一个IR(红外)或其它的EM(电磁)辐射源照明驾驶员面部。这就消除了可能与用周围的光照检测打磕睡有关的许多问题。
在检测到驾驶员正在睡觉时可以由控制器42激活一个可选的报警器322,报警器322可以是例如一个蜂鸣器,铃或诸其它的报知装置。优先地用车辆的电***向包含在后视镜组件308中的所有部件和图像处理***319供电。
图像处理***319通过实时地和在一个连续的基础上检测驾驶员两只眼睛的诸眨眼的持续时间和/或在诸眨眼之间的间隔,和通过在检测到驾驶员正在睡觉时触发报警器322去叫醒驾驶员,来监视驾驶员的警戒性。图像处理***319从传感器310接收驾驶员面部的一个图像。图像可以是驾驶员的整个面部或是驾驶员面部的一个选出的至少包括驾驶员一只眼睛的区域。图像处理***319能够检测许多与正在眨眼的两只眼睛相关的判据。这些判据包括任何可以用来确定一只眼睛闭合的面部特征,包括检测瞳孔,视网膜,眼白,眼脸,眼睛附近的皮肤以及其它等。也能或者通过检测当眨眼时眼睛外观的变化或者通过检测当眨眼时眼脸的运动来检测眼睛。
参照图30,作为一个开始的步骤,本发明的***优先地检测一位驾驶员是否在驾驶员座椅中(402)。这个步骤可以用许多方法中的任何一个来完成,如可以通过一个在驾驶员座椅中的电子重量传感器开关或者使例如,一个速度传感器,一个检测车辆挂上档的开关,一个检测系上座位安全带的开关等与一个由车辆产生的指示车辆正在使用中在运动中的信号连系起来完成该步骤。在检测到这样一个信号时,***进入一个搜索模式,对驾驶员的面部或驾驶员的一只或两只眼睛进行检测。另一方面,因为***是由车辆的电***供电的,并且更优先的是由只有当车辆接通电源时才获得电能的电***的一个电路供电,所以只有当引擎接通电源时***才接通电源,***才进入一个搜索模式,***工作在该模式直到检测出驾驶员的面部或驾驶员的一只或两只眼睛为止。当检测出一位驾驶员在汽车中时(404),将驾驶员存在标志设置到“1”使控制器42知道驾驶员的存在。
作为另一个检测驾驶员存在的方法,如果以一种通过在使用前能(或要求)调整图21所示的后视镜使传感器被调整到指向驾驶员的面部的方式安装传感器,则***可能激活一个报警器直到传感器已经取得驾驶员面部为止。
也可以用检测驾驶员进入驾驶员座椅的图像处理***对驾驶员进行检测。这假定当驾驶员进入汽车时如通过将图像处理***和传感器10与汽车的电***的一个总是接通电源的电路连接起来,图像处理***和传感器10已经接通电源了。换句话说,在检测车门打开等时可以对***供电。当驾驶员进入驾驶员座椅时,来自传感器10的图像的特征将由图像的运动中的(DP=1),CO有一个相当高的值,沿一个侧向离开驾驶员门运动的许多像素表示。这些像素也将有皮肤的色彩特征。在这个实施例中,在一个***试图检测驾驶员的存在的模式中,控制器42设置诸验证装置以便通过设置诸分布图形成装置去检测一位驾驶员进入驾驶员座椅的运动特征,对驾驶员进入汽车的运动进行检测。最容易的是,控制器42可以设置诸验证装置去检测DP=1,并对分布图形成装置中对于DP的分布图进行分析,以便例如用NBPTS超过一个阈值来检测表示一个人进入汽车的运动。
图23表示传感器310在方向323a和323b之间的视场323,驾驶员的头部T就在该视场内,优先地在锥形的视场323的中心部分。如果当驾驶时驾驶员的头部T的运动是有限的,则可将视场323保持在相当窄的范围内。因为驾驶员的面部将在从传感器310接收的诸图像中由大量的像素来表示,所以对视场323的限制将改善***的灵敏度,这也改善了将在下面讨论的分布图形成过程。
一般地,运动中的像素的数量将依赖于传感器的视场。表示一位正在进入车辆的驾驶员的特征的像素的数量与在一个帧中的像素的总数之比是传感器的视场的大小的函数。对于一个窄的视场(图23中在方向323a和323b之间一个较小的角度),当驾驶员进入车辆时,一个较大数量可能超过50%的像素将处在“运动中”,并且阈值将较大。对于一个广阔的视场(图23中在方向323a和323b之间一个较大的角度),当驾驶员进入车辆时较小数量的像素将处在“运动中”。对应于传感器的具***置和类型并根据***的具体安装的诸其它特征设置阈值。如果对于DP分布图的NBPTS超过阈值,则控制器已经检测出驾驶员的存在。
如上面讨论的,驾驶员进入车辆时的诸其它的特征可以由包括一个高的CO,色彩,方向等以及当适当时使***有较强的适应能力的任意组合的***检测出来。例如,控制器42可以设置方向分布图形成装置的诸线性组合装置,以便检测驾驶员进入车辆时的诸像素,控制器42可以设置对于CO的线性组合装置以便检测出高的CO值,和/或可以设置对于色彩的线性组合装置以便检测出人皮肤的色彩特征。于是控制器可以设置诸验证装置以便当适当时检测DP,CO,色彩和/或方向。然后可以分析所得到的分布图,以便确定NBPTS是否超过一个阈值,超过阈值表示驾驶员已经进入驾驶员座椅。我们预见可以用不同于所得到的分布图的NBPTS的诸特征,例如用RMAX超过一个阈值来检测驾驶员的存在。
当已经检测出驾驶员进入车辆,即驾驶员存在标志已经设置到“1”时,***在电视信号中检测驾驶员的面部并从进一步的处理中消除驾驶员头部的上,下,左,右的电视信号的那些多余部分。在驾驶员头部的图像中,在头部运动的基础上检测头部的诸边缘。由于皮肤和背景的亮度中的差异,甚至由于当头部静止时头部的极微小的运动,头部的诸边缘通常将由DP=1来表征。头部的运动可以进一步由在头部的顶部和底部的诸边缘上的垂直运动和在头部的诸垂直边缘上的左右运动来表征。运动中的头部的诸像素也将由,例如,与人的皮肤对应的一个色彩和与眼脸运动比较相对地慢的运动来表征。控制器42优先地设置DP的线性组合装置使它能检测DP=1和设置方向的线性组合装置使它们只能检测垂直和水平的运动(406)。任选地,可以设置速度和色彩的诸线性组合装置使它能检测诸低速度和人皮肤的诸色彩,以便使***有更强的适应能力。又,可以设置CO的线性组合装置使它能消除表征正在眨眼的非常快的运动,以便防止在这个当正在对头部进行检测时的处理阶段考虑两只眼睛。最后,控制器42将对于DP,方向与x和y位置的诸验证装置进行设置使它处在“on(接通)”的状态(406)。任选地,如果正在检测这些判据,则可以将对于速度,色彩和CO的诸验证装置设置在“on(接通)”的状态。
如在图24中说明的,有诸选出的特征的诸像素形成沿Ox和Oy轴,即分别为水平和垂直投影的分布图324x和324y。有诸选出特征的驾驶员头部的轻微运动如诸波纹327a,327b,327c和327d所示,它们有直线的形式但是实际上在围绕头部四周的一个小区域中扩展。分布图324x的峰值325a和325b,和分布图324y的峰值325c和325d由它们的各个坐标326a,326b,326c和326d定界出一个以直线Ya,Yb,Xc,Xd为界的一般地与驾驶员的面部V所在区域对应的帧。控制器42优先地当消隐间隔时从诸分布图形成装置读出分布图324x和324y,并检测诸峰值325a,325b,325c和325d的位置(408)。为了保证头部已经被识别,优先地试验在峰值325a和325b之间的距离和在峰值325c和325d之间的距离是否落入一个与人头部大小的正常范围对应的范围中。
一旦已经确定了诸坐标326a,326b,326c和326d的位置,在进一步处理中遮蔽掉围绕驾驶员面部的区域(410)。参照图25,这通过使控制器42设置分别与Xc,Xd,Ya和Yb对应的XMIN,XMAX,YMIN和YMAX来完成。这遮蔽了围绕驾驶员面部V的打上交叉阴影线的区域,不再对它们作进一步考虑。这有助于消除背景运动对***检测驾驶员一只(两只)眼睛的能力的影响。于是,为了进行以后的分析,只考虑在由直线Xc,Xd,Ya和Yb形成帧的并包含面部V的中心区域Z中诸像素。作为另一种遮蔽在中心区域Z外部的区域的方法,控制器42可以设置半图解的存储器使它遮蔽这些区域。如上面指出的,可以用半图解的存储器在诸单个或小的矩形组中遮蔽掉图像的诸选出的像素。因为头部V不是矩形的,使用半图解的存储器能够较好地遮蔽面部四周的边缘,从而能在进一步考虑中较好地消除诸背景像素。
以诸正常的间隔重复检测驾驶员头部和遮蔽诸背景区域的过程,优先地每经过十个或较少的帧进行该过程一次。我们预见如果希望的话特别是如果可用多于一组的分布图形成装置,则可以每帧重复这个过程。如果希望的话,控制器42也可以计算坐标326a,326b,326c和326d的时间平均值并用这些值设置遮蔽坐标Xc,Xd,Ya和Yb。这将在时间过程中为帧确定一个近似固定的位置。
一旦已经建立起一个帧,将一个面部处在中心位置的标志设置到“1”(412),控制器开始减少帧的大小以便更接近驾驶员的两只眼睛的过程。参照图26,在该图中帧Z表示在前一步骤中确定的以Ya,Yb,Xc,Xd为界的区域,控制器42开始使用在一个人的两只眼睛的区域和整个面部之间的通常的拟人比,特别是用在垂直方向上,以便减少考虑的区域,该区域复盖一个以直线Y′a,Y′b,X′c和X′d为界的较小的包括驾驶员两只眼睛U的区域Z′。于是,从考虑中消除在图27的外部的打上交叉阴影线的区域中的诸像素,进一步只考虑在帧Z′内的区域。这通过使控制器42分别与X′c,X′d,Y′a和Y′b对应地设置XMIN,XMAX,YMIN和YMAX(414)来实现。这遮蔽了在Z′外部的区域中的诸像素,不再考虑它们。于是,为了以后的分析,只考虑包含两只眼睛U的区域Z′中的诸像素。作为另一种遮蔽在Z′外部的区域的方法,控制器42可以设置半图解的存储器去遮蔽掉这些区域。我们预见可以用一个拟人比设置只围绕单只眼睛的帧Z′,一般地用如下面描述的相同的方法检测眨眼,但是只对一只眼睛。
一旦用拟人比确定了区域Z′,将一个眼睛近似在中心的标志设置到“1”(416),控制器42执行分析在区域Z′内的像素的步骤,以便识别两个眼脸的运动。用包括有皮肤色彩的诸像素的高速垂直运动的判据表示两个眼脸运动的特征。一般地,在区域Z′内,形成对于DP=1的诸分布图就能足以检测眼脸的运动。通过检测CO的诸高值,检测垂直运动,检测高速度和检测色彩可以使检测有更强的适应能力。作为一个检测色彩的替代方法,可以通过检测有DP=1的没有皮肤色彩的诸像素检测眼睛的诸像素的运动。这将使检测与瞳孔,视网膜,虹膜等相关的像素数量的变化成为可能。
控制器42设置对于DP的线性组合装置以便检测DP=1并将对于DP及x和y位置的诸验证装置设置在接通的状态(418)。任选地,可以设置诸线性组合装置和诸验证装置,以便检测与眼睛运动相关的诸其它判据,如CO,速度和色彩。最初,控制器42也设置分别与X′c,X′d,Y′a和Y′b对应的XMIN,XMAX,YMIN和YMAX。参照图27,由诸选出的判据形成一个分布图,由控制器42对该分布图进行分析(420)。如果希望的话,实施一个试验以便保证已经检测到两只眼睛。这种试验可以由,例如,保证在分布图中的NBTS超过一个阈值,例如在帧Y′a,Y′b X′c,X′d中像素的总数的20%组成。一旦已经检测到两只眼睛,将一个已经检测到眼睛的标志设置到“1”(422)。
图27说明诸像素的沿轴Ox的分布图28x和沿轴Oy的分布图28y,这些像素有与驾驶员的两个眼脸对应的诸选出的判据,优先的是对于垂直运动的DP=1。控制器42分析分布图并确定分布图的峰值29a,29b,29c和29d。用这些峰值确定诸水平直线X″c和X″d与诸垂直直线Y″a和Y″b,它们定义了两个眼脸运动的一个区域Z″,两个眼脸的诸边缘的运动对于一只眼睛表示在330a和330b,对于另一只眼睛表示在330c和330d(424)。优先地用诸峰值29a,29b,29c和29d的诸时间平均值确定和更新由Y″a,Y″b,X″c,X″d定界的帧的位置,并优先地经每十帧或较少的帧确定和更新一次。一旦已经检测到两只眼睛和已经建立了帧Z″,将一个眼睛在中心位置的标志设置到“1”(426),以后只处理在帧Z″内的诸像素。
然后控制器42确定诸眨眼的长度,并且如果可用的话,确定在相继的诸眨眼之间的时间间隔。图28说明在一个三维正交坐标系中:OQ,它与在有选出的诸判据的区域Z″中的像素数量对应;To,它与在相继的诸眨眼之间的时间间隔对应;和Oz,它与每次眨眼的长度对应。我们能从这种信息确定一位驾驶员何时正在睡觉。在图28中画出了两次相继的眨眼C1和C2。
图29A说明在曲线C上,在每个有选出的诸判据,例如DP=1的帧中像素数量随时间的变化,其中相继的峰值P1,P2,P3与相继的诸眨眼对应。由控制器42通过读出x和/或y分布图形成装置的NBPTS确定这种信息。换句话说,控制器42可以分析诸分布图形成装置的x和/或y分布图(图27)以便检测诸峰值29a和29b和/或29c和29d,它们将在时间上显示出与图29A所示的那些类似的图形特征。
控制器42在时间过程中分析图29A中的数据,以便确定图线中诸峰值的位置和定时(428)。例如,如图29B所示,通过将图29A所示的图线变换成一个二进制数据流可以做到这一点,为了分别将诸峰值P301,P302,P303变换成诸形成帧的矩形R301,R302,R303,在该数据流中将在一个阈值以上的所有像素的计数设置到“1”,将在一个阈值以下的所有像素的计数设置到“0”(垂直的短线331)。最后,图29B表示每次眨眼的长度(对于诸眨眼P301,P302和P303分别为5,6和5个帧)和诸时间间隔(对于在眨眼P301和P302,P302和P303之间的诸间隔分别为14和17个帧)。控制器42通过在时间过程中对峰值数据进行分析确定这个信息。
最后,控制器42计算诸相继的眨眼长度和在诸相继的眨眼之间的间隔(430)。如果眨眼的长度超过一个阈值,例如350ms,则将一个标志设置到“1”,表示已经超过眨眼阈值。如果发现在诸相继的眨眼之间的时间间隔随时间有重大的变化,则将一个标志设置到“1”,表示在诸眨眼之间的间隔是可变的。在设置第一个标志时,该标志指出驾驶员正在以一个表示睡觉的速率眨眼,控制器42触发报警器322以便叫醒驾驶员。可以将第二个标志用于或者以与第一个标志相同的方式发出一个警报或者加强第一个标志,例如增加警报的声音强度。
图31-36表示另一个的方法,按照该方法可以用一般的图像处理***检测一位驾驶员是否正在睡觉。最初,使控制器42处在一个搜索模式(350),在该模式中,控制器42扫描图像,检测面部的一个或多个特征,优先的是鼻子的两个鼻孔。一般地鼻孔被遮暗,如通常由低亮度定义的。参照图31,图像的区域被分解成许多子图像352,在本情形中是六个,用A-F标记,以后由控制器42对它们进行分析以便确定两个鼻孔的位置。如所表示的那样,诸子图像352中的每一个优先地以一个至少等于两个鼻孔的正常组合宽度及它们之间的距离的量353重叠在每个相邻的子图像上,使当在搜索模式时失去两个鼻孔的可能性减到最小。
控制器42设置与第一个子图像A对应的XMIN,XMAX,YMIN和YMAX(354)。然后控制器42设置在亮度线性组合装置中的诸寄存器106,以便检测低的亮度水平(356)。选出的实际的亮度水平将依赖于诸不同的因素,如四周的照明,当天的时间,天气条件等而变化。记住控制器42能访问由分布图形成装置24对亮度计算的分布图,控制器42可以用一个阈值或其它希望的技术选择搜索两个鼻孔的希望的亮度,例如最低选择所考虑的亮度值的15%,并且控制器42可以如希望的那样改变阈值。控制器42也将对于亮度及x和y分布图的诸验证装置设置在接通的状态(358),从而使诸x和y分布图由诸选出的低亮度水平形成。然后控制器42分析诸x和y方向分布图,以便如下面讨论的那样(360),识别表示两个鼻孔的诸特征。如果不能识别两个鼻孔(362),则控制器42对下一个子图像,即子图像B,和每个以后的子图像重复这个过程,直到识别出两个鼻孔为止,如果需要的话从子图像A开始重复该过程。用由控制器42对单个帧中的每个子图像进行分析。因此,一般地***可以在少于六个的帧中取得鼻孔。我们预见如果希望的话可以用更多的子图像。我们也预见可以将在其中搜索诸子图像的区域限于两个鼻孔最可能存在的区域,该区域或者是从***过去的工作确定的或者是通过使用一个拟人模型确定的。例如,可以如上所述地确定驾驶员头部的轮廓,然后将鼻孔的搜索限制在图像的一个小的子区域内。我们也预见如果希望的话为了找到两个鼻孔可以同时搜索整个图像。
虽然我们相对于作为确定两只眼睛位置的一个出发点的两个鼻孔的识别描述了本发明,但是我们预见可以检测任何其它的面部特征,例如鼻子,两只耳朵,两条眉毛,嘴等以及它们的组合作为确定两只眼睛位置的一个出发点。这些特征可以与能被***搜索的任何特征,包括CO,DP,速度,方向,亮度,色彩和饱和,区别开来。我们也预见例如只通过对有垂直运动的DP=1的整个图像进行搜索(或任何其它的可搜索的诸眼睛特征),而不需要用另一个面部判据作为一个出发点,***可以直接地确定两只眼睛的位置。为了当能够检测驾驶员的头部或其它的面部特征时提供眼睛的一个详细的视图,我们预见可以用诸分开的传感器来达到每一个目的。
图32表示个两个鼻孔所在的一个子图像的作为样本的x和y分布图。两个鼻孔由在y方向分布图中的一个峰值370和在x方向分布图中的两个峰值372和374来表征。可以用若干种方法对已经识别出鼻孔进行确认。首先,分析分布图以便保证每个分布图的诸特征都满足某些条件。例如,在每个分布图中的NBPTS应该超过一个与可用于检测两个鼻孔的像素的正常数量相关的阈值。又,在y分布图中的RMAX和x分布图的每个峰值应该超过一个相似的阈值。其次,两个鼻孔间的距离d是一个相当好的常数。用控制器42对x分布图进行分析,测量d保证它落在一个希望的范围内。最后,尽管由于诸遮暗效应引起变化,但是一个鼻孔的宽度也是一个相当好的常数。用控制器42对x和y分布图中的每一个进行分析,保证每个鼻孔的诸尺度都落在一个希望的范围内。如果控制器42发现两个鼻孔满足这些判据,则已经取得两个鼻孔,结束搜索模式。如果还没有取得两个鼻孔,则搜索模式继续进行。一旦取得了两个鼻孔,确定面部中心的x位置(在考虑中的子图像内位置d/2),同样确定图像中两个鼻孔的y位置(y分布图的POSRMAX)(364)。
在现在这个实施例中,为了确定何时驾驶员正在睡觉只分析了一只眼睛。在这种情形中,我们用眼睛在张开和闭合的位置中的阴影,从阴影的形状确定眼睛是张开着还是闭合着。如上面讨论的,对于夜间的应用,优先地与一个短波IR光源结合起来使用本发明。对于现在描述的例子,优先地将IR光源放在驾驶员的上方一个投射一个阴影的位置中,该阴影有一个能被***检测的形状。拟人模型优先地自适应于运动,驾驶员的诸特点和驾驶员相对于传感器的角度变化。
参照图32,已经确定了有一个中心位置Xn,Yn的驾驶员的两个鼻孔的位置后,在驾驶员的一只眼睛274周围建立一个搜索盒276(366)。用一个拟人模型设置搜索盒276的位置,其中人的两只眼睛和鼻子之间的空间关系是已知的。控制器42设置XMIN,XMAX,YMIN和YMAX,在由搜索盒276限定的区域内进行搜索。控制器42进一步将亮度及x和y方向分布图设置在接通的状态,并设置亮度的线性组合装置以便检测相对于图像的其它部分低的分布图水平,例如最低为诸亮度水平的15%(368)。作为检测出两个鼻孔或其它面部特征的一个确认,可以对用一个拟人模型在驾驶员的一只眼睛274周围建立起来的搜索盒276进行分析,以便得到表示在搜索盒中的一只眼睛的诸特征。这些特征可以包括,例如,一个运动的眼脸,一个瞳孔,虹膜或角膜,一个与一只眼睛对应的形状,一个与一只眼睛对应的阴影,或任何其它的表示一只眼睛的表记。控制器42设置诸分布图形成装置使它检测所希望的诸判据。例如,图36表示一个瞳孔432的一个作为样本的分布图,在该图中设置诸线性组合装置和诸验证装置,使它们检测有作为一个瞳孔的特征的非常低的诸亮度水平和高的光泽的诸像素。可以通过比较诸x和y分布图的形状与瞳孔的一般地是对称的诸已知特征来核实瞳孔,记住在传感器和驾驶员头部之间的角度关系可以影响到这种对称性。
在检查希望的第二个面部判据时,证实已经识别了两个鼻孔并开始检测眼睛的诸张开和闭合。换句话说,用下面描述的技术,为了证实已经识别了两个鼻孔而被检测诸判据可以是眼睛的眨眼。如果在搜索盒中检测不到眨眼,则重新开始搜索模式。
当一个跟踪模式400时检测眼睛的眨眼。在跟踪模式中控制器42设置XMIN,XMAX,YMIN和YMAX,以便在由搜索盒276限定的区域内进行搜索。控制器42进一步将诸亮度及x和y方向分布图设置在接通的状态,并且为了检测眼睛的阴影,设置亮度的线性组合装置,使它检测相对于图像的其它部分低的分布图水平,例如最低为诸亮度水平的15%(368)。当跟踪模式时,***监视两个鼻孔272的位置,以便检测出头部的运动。在检测出头部的运动和位置Xn,Yn中的一个作为结果而发生的偏移时,根据拟人模型移动搜索盒276,使搜索盒276保持在驾驶员眼睛的上方。
图33表示当眼睛张开时x和y方向分布图376,378的形状,而图34表示当眼睛闭合时x和y方向分布图380,382的形状。诸阴影的诸形状,特别是当眼睛闭合时阴影的形状将与摄像机的位置和产生阴影的光源,例如太阳或IR光源的位置有关地发生变化。在任何情形中,每个分布图的宽度MAXx-MINx和高度MAXy-MINy一般地对于一只张开的眼睛比对于一只闭合的眼睛要大得很多。控制器42对每个分布图的宽度和高度进行分析,确定何时眼睛是张开的何时眼睛是闭合的(382)。可以由x和y分布图的任何数量的特征,包括宽度MAXx-MINx和高度MAXy-MINy超过诸阈值,每个分布图的NBPTS超过一个阈值,每个分布图的RMAX超过一个阈值,当与一只闭合的眼睛比较时POSRMAX位置中的变化等确定一只张开的眼睛。类似地,可以由x和y分布图的任何数量的特征,包括宽度MAXx-MINx和高度MAXy-MINy低于诸阈值,每个分布图的NBPTS低于一个阈值,每个分布图的RMAX低于一个阈值,当与一只张开的眼睛比较时POSRMAX位置中的变化等确定一只闭合的眼睛。在一个优先的实施例中,控制器24计算每个分布图的宽度MAXx-MINx和高度MAXy-MINy并利用诸阈值确定眼睛是张开的还是闭合的。如果每个宽度MAXx-MINx和高度MAXy-MINy超过诸阈值,则确定眼睛是张开的。如果宽度MAXx-MINx和高度MAXy-MINy中的每一个低于诸阈值(它们可以和用于确定一只张开的眼睛的诸阈值不同),则确定眼睛是闭合的(384)。优先地MAX和MIN是在诸分布图形成装置中计算的MAX和MIN。在另一方面,MAX和MIN可以是诸其它的阈值,例如在与RMAX/2对应的诸分布图上的诸点或关于RMAX的某个其它的阈值。
控制器42在时间过程中对眼睛张开和闭合的帧数进行分析,以便确定每次眨眼的持续时间和/或诸眨眼之间的间隔(386)。利用这个信息,控制器42确定驾驶员是否在打磕睡(388)。当确定驾驶员在打磕睡时,控制器42发出一个警报,叫醒驾驶员(390),或者产生另一种指出驾驶员正在睡觉的信号。
控制器42总是能适应***的工作,特别是在照明水平变化时如此。控制器42可以通过周期地监视亮度分布图和改变传感器的增益偏压以便保持一个尽可能宽阔的亮度光谱,对诸变化的照明状况进行检测。控制器42也可以调整用于确定阴影等的诸阈值,以便较好地将眼睛和鼻孔的阴影与噪声,例如鼻子旁边的阴影区别开来,也可以调整传感器的增益,使这种效应减至最小。如果希望的话,控制器42可以使诸分布图形成装置形成一个虹膜的分布图。也可以对这个分布图进行连贯的监视,必要时对***中使用的诸不同的阈值进行调整。
我们将明白虽然已经用某些判据关于一位驾驶员的两只眼镜的检测对本发明进行了描述,但是本发明能够用诸像素的任何可能的可测量的特征检测两只眼睛的任何判据,可以从由本发明形成的诸分布图中的任何其它信息辨别出一位驾驶员正在睡觉的诸特征。又,虽然已经关于驾驶员打磕睡的检测对本发明进行了描述,但是本发明可用于任何要检测打磕睡的应用中。更一般地,尽管我们已经关于某些实施例和例子对本发明进行了描述,但是在下面的权利要求书中描述的本发明的范围内存在着诸不同的变化。