CN1262969C - 人眼检测方法和人眼检测设备 - Google Patents
人眼检测方法和人眼检测设备 Download PDFInfo
- Publication number
- CN1262969C CN1262969C CN 00127067 CN00127067A CN1262969C CN 1262969 C CN1262969 C CN 1262969C CN 00127067 CN00127067 CN 00127067 CN 00127067 A CN00127067 A CN 00127067A CN 1262969 C CN1262969 C CN 1262969C
- Authority
- CN
- China
- Prior art keywords
- gray
- district
- scale value
- paddy
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种人眼检测方法、设备和人眼检测系统,以检测图象中的人眼。所述人眼检测设备包括读取装置,用于读取图象每列的各象素的灰度值;分段装置,用于将每列分成多个区间,并将各区间划分为谷区、中继区或峰区;合并装置,用于将每列的谷区和其相邻列的谷区合并,并产生眼睛备选区域;确定装置,用于从眼睛备选区域中确定人眼。按照本发明,可以实现一种可靠且快速的人眼检测方法,以检测具有复杂背景的图象中的人眼。
Description
技术领域
本发明涉及一种图象处理方法和设备,以及图象处理系统,尤其涉及一种用于检测图象中人眼的人眼检测方法、设备和系统,以及一种存储介质。
背景技术
在给定的图象中检测或提取一个特征区域的图象处理方法是非常有用的。比如,它可以识别一张图象中的人眼。人的眼睛是人脸中最显著的特征部分。在一个图象中,特别是从具有复杂背景的图象中检出人眼是非常有用的。对于人类来说,无论是成年人或婴儿,从复杂的背景图象中识别出人眼是非常容易的。但是,到目前为止,还没有一种有效的途径以自动、快速地检出人眼。
近来,在自动识别技术上,特别是在眼睛识别技术上,进行了大量的研究与开发。通常,在人眼检测中使用了一种所谓的“假设-检验”方法。也就是,首先假设图象中的一个区域是可能的人眼区域,然后,按照一定的条件检查可能的人眼区域,以验正一个真实的人眼区域。比如,在Proceedings of the 1998 IEEE International Symposiomon Circuit and System,1998,ISCAS′98的第4卷第85页至第88页的Kin-Man Lan的“A Fast Approach for Detecting Human Facesin a Complex Background”的文章公开了一种人眼检测方法,此文在此处作为参考。但是,这种检测方法效率低,因为在图象中产生过多的备选人眼区域。
发明内容
因此,本发明的目的在于提供一种图象处理方法、设备和图象处理系统,以快速有效地检测或提取给定图象的特征区域。
按照本发明,上述目的是通过提供一种图象处理方法实现的,所述方法包括:
读取步骤,用于读取图象每行的各象素的灰度值;
分段步骤,用于将每行分成多个区间,并将各区间划分为谷区、中继区或峰区;
合并步骤,用于将每行的谷区和其相邻行的谷区合并,并产生备选区域;以及
确定步骤,用于从分段和合并步骤中所产生的备选区域中确定特征部分。
进一步,上述目的是通过提供一种图象处理设备实现的,所述设备包括:
读取装置,用于读取图象每行的各象素的灰度值;
分段装置,用于将每行分成多个区间,并将各区间划分为谷区、中继区或峰区;
合并装置,用于将每行的谷区和其相邻行的谷区合并,并产生备选区域;以及
确定装置,用于从备选区域中确定特征部分。
进一步,上述目的是通过提供一种图象处理系统实现的,所述系统包括:
输入设备,用于输入图象;
图象处理设备,用于检测图象中的特征部分;
输出设备,用于输出被检测特征部分;
其中,图象处理设备包括:读取装置,用于读取图象每行的各象素的灰度值;分段装置,用于将每行分成多个区间,并将各区间划分为谷区、中继区或峰区;合并装置,用于将每行的谷区和其相邻行的谷区合并,并产生备选区域;确定装置,用于从备选区域中确定特征部分。
相应地,本发明的另一个目的在于提供一种人眼检测方法、设备和人眼检测系统,以快速有效地检测图象中的人眼、以及一种存储介质。
按照本发明,上述目的是通过提供一种人眼检测方法实现的,所述方法包括:
读取步骤,用于读取图象每列的各象素的灰度值;
分段步骤,用于将每列分成多个区间,并将各区间划分为谷区、中继区或峰区;
合并步骤,用于将每列的谷区和其相邻列的谷区合并,并产生眼睛备选区域;以及
确定步骤,用于从眼睛备选区域中确定人眼。
进一步,上述目的是通过提供一种人眼检测设备实现的,所述设备包括:
读取装置,用于读取图象每列的各象素的灰度值;
分段装置,用于将每列分成多个区间,并将各区间划分为谷区、中继区或峰区;
合并装置,用于将每列的谷区和其相邻列的谷区合并,并产生眼睛备选区域;以及
确定装置,用于从眼睛备选区域中确定人眼。
进一步,上述目的是通过提供一种人眼检测系统实现的,所述系统包括:
输入设备,用于输入图象;
人眼检测设备,用于检测图象中的人眼;
输出设备,用于输出被检测的人眼;
其中,人眼检测设备包括:读取装置,用于读取图象每列的各象素的灰度值;分段装置,用于将每列分成多个区间,并将各区间划分为谷区、中继区或峰区;合并装置,用于将每列的谷区和其相邻列的谷区合并,并产生眼睛备选区域;确定装置,用于从眼睛备选区域中确定人眼。
一种用于存储人眼检测程序代码的存储介质,该程序代码至少包括:
用于读取图象每列的各象素的灰度值的代码;
用于将每列分成多个区间,并将各区间划分为谷区、中继区或峰区的代码;
用于将每列的谷区和其相邻列的谷区合并,并产生眼睛备选区域的代码;以及
用于从眼睛备选区域中确定人眼的代码。
本发明进一步的目的是提供一种具有新颖性的图象处理方法和设备,图象处理系统。通过下面的实施方式和附图的描述,本发明的其他目的和特征将变得更清楚。
附图说明
作为本发明一部分的附图和本说明一起用于说明本发明的实施例,用于解释本发明的原理。
图1是按照本发明的实施例的人眼检测系统的结构方框图;
图2是按照本发明的实施例的人眼检测设备的结构方框图;
图3A是流程图,用于表示查找人眼区域的过程;
图3B是要被检测的原始图象的一个例子;
图4A是流程图,用于对图象中的每列进行分段;
图4B是一个例子,用于表示图象中的一列;
图4C是一个例子,用于表示一列的灰度直方图;
图4D是示意图,用于表示一列被分成段的灰度直方图;
图4E是一个例子,用于表示图象中一被分成段的列;
图4F是示意图,用于表示对一列分段点的判断;
图5A是流程图,用于合并列中的谷区;
图5B是示意图,用于表示图象中的列和每列的谷区和种子区;
图5C是用于表示被检测的眼睛备选区域的图象;
图6A是流程图,用于判断眼睛区域;
图6B是示意图,用于表示眼睛备选区域和它的外接矩形;
图6C是用于表示被检测出眼睛区域的图象;
图7A是流程图,用于调整分段边界;
图7B是示意图,用于表示将分段点合并到其相邻区域的过程;
图7C是示意图,用于表示将中继区合并到相邻谷区的过程;
图8A是流程图,用于判断一个谷区是否能被合并到一个种子区;
图8B是示意图,表示一个种子区的预测谷区;以及
图8C是示意图,用于表示二个谷区之间的重叠。
具体实施方式
下面参照附图详细说明本发明的优选实施例。
实施例
系统结构
图1表示按照本实施例的人眼检测系统的例子。打印机105,例如喷墨打印机或类似的打印机,以及监视器106和主机100相连。
主机100具有应用软件程序101,例如字处理程序、放大程序、互联网浏览器以及类似程序,OS(操作系统)102,打印机驱动程序103,用于处理指示输出图像的各种绘图指令(图像绘图指令,文本绘图指令,图表绘图指令),它们被应用软件程序101发送给OS 102,并产生打印数据,以及监视器驱动程序104,用于处理由应用软件程序101发出的各种绘图指令,并在监视器106上显示数据。
标号112是指令输入装置;113是该装置的驱动程序。例如,连接有用于点在监视器106上显示的各种信息从而向OS 102发送各种指令的鼠标。注意其它的点入装置例如轨迹球、笔、触摸屏及其类似装置,或键盘可用于代替鼠标。
主机100包括,作为可以运行这些软件程序的各种硬件的中央处理单元(CPU 108),硬盘(HD)107,随机存取存储器(RAM)109,只读存储器(ROM)110等。
作为图1所示的人眼检测系统的一个例子,在流行的IBM公司的PC-AT个人计算机上安装微软公司的Windows 98作为操作系统,安装上所需的可以执行打印的应用程序,并使监视器和打印机和个人计算机相连。
在主机100中,每个应用软件程序101使用被归入文本例如字符或其类似物的文本数据、被归入图表例如插图或其类似物的图表数据、被归入自然图像或其类似物的图像数据等产生输出图像数据。在打印输出图像数据时,应用软件程序101向OS 102发出打印请求。此时,应用软件程序101向OS 102发出绘图指令组,包括相应于图表数据的图表绘制指令,以及相应于图像数据的图像绘制指令。
OS 102收到应用软件程序101的输出请求之后,向相应于一个输出打印机的打印机驱动程序103发出绘图指令组。打印机驱动程序103处理从OS 102输入的打印请求和绘图指令组,产生打印机105可以打印的打印数据,并把打印数据传递到打印机105。当打印机105是扫描打印机时,打印机驱动程序103按照来自OS 102的绘图指令进行图像校正处理,然后按顺序扫描(rasterize)RGB24位页存储器上的指令。在完成所有绘图指令之后,打印机驱动程序103把RGB 24位页存储器的内容转换成打印机105可以打印的数据格式,即CMYK数据,并把转换的数据传递给打印机105。
注意主机100可以连接数字摄像机111,其检测物体的图像并产生RGB图像数据,并可以把检测的图像数据装载并存储在HD 107中。注意由数字摄像机111检测的图像数据按照JPEG编码。检测的图像数据在被打印机驱动程序103译码之后可以作为图像数据传递给打印机105。
主机100还包括眼睛检测设备114,用于检测图象中的人眼。存储在HD 107的图象数据被眼睛检测设备114读取并被处理。首先,检测可能的人眼区域部分,然后,在OS 102的控制之下,而打印机105或监视器106输出图象中的被检测的人眼。
眼睛检测设备
图2为结构框图,示出了按照本发明实施例的及眼睛检测设备的结构。
本实施例中的眼睛检测设备114包括读取装置200,分段装置201,合并装置202和判断装置203。在眼睛检测设备114中,读取装置用于执行图象读取过程,读取装置200读取存储在HD 107中的图象每列中各象素的灰度值。参见图4D和4E,基于列C41的各象素的灰度值,图象的列C41被分段装置201分割成多个区间I1-1,I1-2,...I1-9和I1-10。根据图象数据它们的平均灰度值,这些区间I1-1,I1-2,...,I1-9,I1-10被划分为3种类型:峰区、谷区和中继区。本文下面将详细定义术语“谷区、峰区和中继区”。然后,可以得到列C41的谷区。以同样方式,分段装置201还将图象中的其他列也划分为3种类型并分别得到它们的谷区。图象的所有列被划分为3种类型并得到他们的谷区之后,合并装置202执行合并处理,并合并相邻列的谷区。被合并的谷区被设定为人眼备选区域。然后,通过判断装置203可以确定人眼。
检测眼睛区域
下面将参照图3A的流程图解释用于原始图象的人眼检测过程。图3B是要被检测的原始图象的一个例子。假设原始图象被存储在HD107,或RAM 109等诸如此类的一个预定位置。
参见图3A,在步骤S31,读取装置200读取要被检测的原始图象的列中的各象素的灰度值。如果原始图象使用比如JPEG进行编码,那么,读取装置200在读取其图象数据之前首先对其进行解码。当然,可以同时读取原始图象每列象素的灰度值,也可以按照一定的顺序或者分别进行读取。在本优选实施例中,读取图象的每一列。然而,在所给的图象旋转90°的情况下将按行进行读取。在步骤S32,原始图象的每列被分段装置分划分为多个区间。参照图4E,每个区间I1-1,I1-2,...,I1-9,I1-10的长度是可变的。比如,区间I1-1的长度不等于区间I1-2的长度。根据图象数据的平均灰度值,一些分段的区间被标记为谷区。在步骤S33,通过合并装置202,相邻列的谷区被合并以生成眼睛备选区域。由于每列的谷区的长度不同,因此,眼睛备选区域的大小也彼此不同。在步骤S34,通过判断装置203,确定眼睛备选区域的人眼区域。然后,已进行人眼检测处理的图象被输出到监示器105或打印机104。
对图象每列进行分段
图4A是流程图,用于在步骤S32中对图象的每列进行分段。
为了更好地理解分段过程,术语“谷区、峰区和中继区”定义如下。
图4B是一个例子,用于表示图象中的一列。参见图4B,读取装置200读取原始图象的一列C41。图4C示出了列C41的灰度值直方图。图4D是被分割成段的列的灰度值直方图。在图4D中,标号I1-5,I1-6,I1-9表示被分割的区间。
图4E是图4B图象的被分割的列。参见图4E,读取装置200读取图象中列C41的图象数据。列C41被分割成区间I1-1,I1-2,...,I1-9,I1-10。区间的大小也就是这区间中象素的数量。比如,如果区间I1-2包括12个象素,那么区间I1-2的大小为12。区间的灰度值是该区间中象素的平均灰度值。
参见图4D和4E,如果一个区间的灰度值少于其相邻区间的灰度值,那么该区间被称之为“谷区”。如果一个区间的灰度值大于其相邻区间的灰度值,那么该区间被称之为“峰区”。另一方面,如果一个区间的灰度值位于其相邻区间的灰度值之间,则这种区间被称之为“中继区”。对于本实施例中的列C41,区间I1-1,...,I1-10的灰度值分别为196,189、190、185、201、194、213、178、188和231。对于区间I1-6,其灰度值为194,而其相邻区间I1-5,I1-7的灰度值分别为201和213。由于区间I1-6的灰度值小于其相邻区间I1-5,I1-7,因此,区间I1-6被确定为谷区。以同样方式,区间I1-2,I1-4和I1-8分别被确定为谷区。对于区间I1-5,其灰度值为201,其相邻区间I1-4,I1-6的灰度值分别为185,194。由于区间I1-5的灰度值大于其相邻区间I1-4,I1-6,因此,区间I1-5被确定为峰区。以同样方式,区间I1-1,I1-3,I1-7和I1-10分别被确定为峰区。另外,对于区间I1-9,其灰度值为188,而其相邻区间I1-8,I1-10的灰度值分别为178和231。由于I1-9的灰度值界于其相邻区间I1-8,I1-10的灰度值之间,因此,区间I1-9被确定为中继区。
由于谷区也是一个区间,由此,计算谷区的灰度值及其大小的方法与计算区间的灰度值及大小的方法一样。这种方法也适用于计算峰区及中继区的灰度值和大小。
下面参照图4A,详细地描述步骤S32中对图象中的每列进行分段的过程。
参见图4A,在步骤S41,从被检测图象最左侧读取第1列中每个象素的灰度值。为了将该列分成三种类型的区间,即谷区、峰区和中继区,必须要确定分段点。
在步骤S42,按照象素的灰度值的一阶导数值和二阶导数值可以确定该列中的一个象素点是否为分段点。图4F是一示意图,示出了判断一个象素是否为一列的分段点的过程。参见图4F,在一列中给出了二个相邻的象素Pi1,Pi2。通过下式可以得到这二个象素Pi1,Pi2的一阶导数值和二阶导数值:
其中,x是一个象素的位置,f(x)是象素的灰度值,g(x)是高斯函数,即
F(x)是f(x)和g(x)的卷积。那么,F(x)的一阶导数值和二阶导数值就可以确定为某该象素的一阶导数值和二阶导数值。作为一个例子,象素Pi1,Pi2灰度值的一阶导数值假设为D1f,D2f,象素Pi1,Pi2灰度值的二阶导数值假设为D1S,D2S。如果D1S与D2S之积小于零或D2S等于零,且D2f的绝对值大于一预定值,则象素Pi2被确定为分段点。否则Pi2不为分段点。对于本优选实施例,象素Pi1,Pi2的灰度值分别为50和150,并且设定一预定值4。从上面的公式可以得到D1f,D2f,D1S,D2S分别为64,28,-14和86。由于D1S×D2S=-1204<0且|D2f|=28>4,因此,象素Pi2被确定为分段点。
这样,在步骤S 42中,可以得到多个分段点S11,S12,...,S19。在列中确定分段点之后,在步骤S43,可以将该列分成多个区间。然后,在步骤S43,按照多个区间的灰度值,将它们分别划分为谷区,峰区或中继区。在步骤S45中,调整区间的边界。步骤S45的详细内容将参照附图进行描述。在步骤S46中,检查被检测图象的所有列是否都已被分段,如果被分段的列不是最后一列,则流程返回步骤S47。在步骤S47,读取下一列中每个象素的灰度值。然后,流程进到步骤S42并重复步骤S47及其后的步骤。然而,如果在步骤S46中要被分段的列是被检测图象的最后一列,即所有的列均已被分段,流程在步骤S48结束。
可选地,上述分段处理可以从被检测图象的最右边的第一列开始进行。
合并谷区以产生眼睛备选区域
图5A是流程图,用于合并图3A中步骤S33每列的谷区。图5B是示意图,用于表示图象中的列,和每列中的谷区和种子区。在图5B中,图象被划分n个列Co11,Co12,...,Co1n。
参照图5A和5B,在步骤S51被检测图象的第一列Co11(最左边)中的所有谷区S1,S2,S3,S4被设为种子区。种子区是一个或多个谷区的集合,由于谷区的灰度值低于峰区或中继区的灰度,因此,种子区通常是一列中的暗区域。
在图5A的步骤S52,读出下一列Co12的第一谷区V2-1。然后,流程进入列步骤S53。在步骤S53,读出第一种子区S1。在步骤S54,根据谷区V2-1和种子区S2,检查列Col2的谷区V2-1是否可合并到种子区S1。如果列Co12的谷区V2-1可以合并到种子区S1,那么流程进入到步骤S56并将该谷区V2-1合并到种子区,然后,谷区变为种子区的一部分。然而,如果在步骤S54判断谷区V2-1不能合并到种子区S1,流程进入到步骤S55。在本实施例中,列Co12的谷区V2-1不能合并到种子区S1。流程进入步骤S55。在步骤S55,判断种子区是否为最后的种子区。如果不是最后的种子区,那么在步骤S57读取下一种子区,流程返回步骤S54,以重复步骤S54和下面的步骤。在本实施例中,种子区S1不是最后的种子区,那么在步骤S57读取下一种子区S2。并重复以上的步骤。如果在步骤S55判断该种子区是最后的种子区,比如,如图5B所示的种子区S4,那么流程进入到步骤S58,并将不能合并到种子区的谷区设置为一个新的种子区。参见图5B,由于列Co12的谷区V2-1不能合并到种子区S1,S2,S3或S4,也就是谷区不能合并到一个已经存在的种子区中,那么,在步骤S58,列Co12的谷区被设置为一个新种子区。
在步骤S59,判断列Co12的所有谷区是否都已被处理。如果已处理完列Co12的所有谷区,那么流程进入步骤S511。在步骤S511,检测是否已处理完所有的列。如果该列不是被检测图象的最后一列,那么流程返回步骤S52,以重复步骤S54以及其后步骤的处理。由于列Co12不是被检测图象的最后一列,流程返回步骤S52。如果已处理完所有的列,比如,如果该列是最后一列Co1n、那么流程进入步骤S520。在步骤S520,所有的种子区被设定为眼睛备选区域。然后,流程在步骤S521结束。图5C是一个例子,示出了在步骤S33在被检测的图象的列中合并谷区以产生眼睛备选区域的结果。
判断眼睛区域
图6A为流程图,用于在步骤S34中判断眼睛区域。
参见图6A,在步骤S61读取第一眼睛备选区域。然后,流程进入到步骤S62。在步聚S62,计算眼睛备选区域的灰度值。如上所述,眼睛备选区域包括一个或多个谷区。如果一个眼睛备选区域包括几个谷区,那谷区1,谷区2,...谷区n,那么,那么由下式得出眼睛备选区域的灰度值:
DarkGray1=(Val1ey1Gray1+Valley2Gray1+...+Val1eynGray1)/n (1)
其中,DarkGary1是眼睛备选区域的灰度值;
Valley1Gray1是谷区1的灰度值;
Valley2Gray1是谷区2的灰度值;
ValleynGray1是谷区n的灰度值;
n是包含在眼睛备选区域中的谷区的数量。
因此,如果眼睛备选区域包括灰度值分别为10,20,30的3个谷区,那么,眼睛备选区域的灰度值将为(10+20+30)/3=20。
参见图6A的步骤S62,计算眼睛备选区域的灰度值。如果眼睛备选区域的值不小于第一阈值,比如,160,则流程进入步骤S610。在本实施例中,第一阈值位于100至200之间。在步骤S610,眼睛备选区域被确定为假眼睛区域。然后,流程进入步骤S68。在步骤S68,判断是否已处理了被检测图象的所有眼睛备选区域。如果不是最后的眼睛备选区域,则在步骤S69读取下一个眼睛备选区域,然后,流程进入步骤S62并重复下面的步骤。然而,如果在步骤S68判断到所检测的眼睛备选区域是最后的眼睛备选区域,那么,被检测图象的所有眼睛备选区域都被确定,流程在步骤S611结束。
返回步骤S62,如果眼睛备选区域的灰度值小于第一阈值,则流程进入步骤S63。
在步骤S63,计算眼睛备选区域的背景灰度值。包含在眼睛备选区域的谷区的背景灰度值确定眼睛备选区域的背景灰度值。谷区的背景灰度值是其相邻区间灰度值的平均值。下式给出了在步骤S63中计算的眼睛备选区域的背景灰度值。
DarkBGray1=(Valley1BGray1+Valley2BGray1+...+ValleynBGray1)/n (2)
其中,DarkBGray1是眼睛备选区域的背景灰度值;
Valley1BGray1是谷区1的背景灰度值;
Valley2BGray1是谷区2的背景灰度值;
ValleynBGray1是谷区n的背景灰度值;
n是包含在眼睛备选区域中的谷区的数量。
参见步骤S63,计算眼睛备选区域的背景灰度值。如果在步骤S63,眼睛备选区域的背景灰度值不大于第二阈值,比如,30,那么流程进入步骤S610。在实施例中,第二阈值位于20至80之间。在步骤S610,判断眼睛备选区域为假眼睛区域,并拒绝之。然后,流程进入步骤S68。
返回步骤S63,如果眼睛备选区域的背景灰度值大于第二阈值,那么程序进入步骤S64。
在步骤S64,计算眼睛备选区域的背景灰度值与其本身的灰度值之差。如果该差值不大于第三阈值,比如20,那么流程进入步骤S610。在本实施例中,第三阈值介于5至120之间。在步骤S610,眼睛备选区域被判断为假眼睛区域并被拒绝。然后,流程进入步骤S68。
返回步骤S63,如果眼睛备选区域的背景灰度值和其本身的灰度值之差大于第三阈值,那么流程进入步骤S65。
在步骤S65,计算眼睛备选区域的宽度与高度之比。
关于眼睛备选区域的宽度、高度、我们进行下述定义。谷区的大小是该谷区内所包含的象素的数量。比如,如果谷区包括5个象素,那么谷区的大小等于5。眼睛备选区域的大小是包含在眼睛备选区域内谷区的大小之和。眼睛备选区域的宽度是包含在该眼睛备选区域内的谷区的数量,那么,眼睛备选区域的高度Hd由下式给出:
Hd=Sd/Wd (3)
其中,Hd是眼睛备选区域的高度,Sd是眼睛备选区域的大小,Wd是眼睛备选区域的宽度。
参见图6A的步骤S65,计算眼睛备选区域的宽度与高度之比。在步骤S65,如果眼睛备选区域的宽度与高度之比不大于第四阈值,比如3.33,那么流程进入步骤S610。在本实施例中,第四阈值介于1到5之间。在步骤S610,眼睛备选区域被判断为假眼睛备选区域并被拒绝。那么,流程进入步骤S68。
返回步骤S65,如果眼睛备选区域的宽度与高度之比大于第四阈值,那么流程进入步骤S66。
在步骤S66,计算眼睛备选区域的大小与其外接矩形大小的比值。图6B是一示意图,示出了眼睛备选区域和其外接矩形。参见图6B,给出了眼睛备选区域D1和其外接矩形DC1。从图6B可以看出,眼睛备选区域的外接矩形DC1是包围眼睛备选区域D1的最小矩形。眼睛备选区域外接矩形的大小是包含在该外接矩形内的象素的数量。眼睛备选区域的大小是眼睛备选区域内所包含的象素的数量。
返回步骤S66,计算眼睛备选区域的大小与其外接矩形大小的比率。如果该比率不大于一个第五阈值,比如0.4,那么流程进入步骤S610。在本实施例中,第五阈值介于0.2至1之间。在步骤S610,眼睛备选区域被确定为假眼睛区域并被拒绝。然后,流程进入步骤S68。
返回步骤S68,如果眼睛备选区域的大小与其外接矩形的大小的比率大于第五阈值,流程进入步骤S67,那么,眼睛备选区域被确定为一个真实的眼睛区域。
步骤S67之后,流程进入步骤S68并判断该眼睛备选区域是否为最后的眼睛备选区域。如果不是最后的眼睛备选区域,那么在步骤S69读取下一眼睛备选区域并且流程返回步骤S62。如果在步骤S68判断是最后的眼睛备选区域,那么就确定了所有的眼睛区域。图6C是一个例子,示出了在步骤S33中所检测的图象的眼睛区域。
调整分段边界
图7A是一流程图,用于在图4A的步骤S45调整分段边界。
参见图7A,比较分段点的灰度值与其二个相邻区间的灰度值,并且在步骤S71,该分段点合并到灰度值与该点灰度值最接近的那一区间。比如,参见图7B,分段点S的灰度值为80,其二个相邻区间为区间In1和In2。区间In1和In2的灰度值分别为70和100。由于区间In1的灰度值更接近分段点S的灰度值,那么,分段点S合并到区间In1。
进一步,流程进入步骤S72。在步骤S72,读取第一中继区。然后,在步骤S73,计算中继区的灰度值与其相邻谷区和峰区的灰度值。计算它们的灰度值以后,流程进入步骤S74,在步骤S74,进行比较并判断下式是否成立:
GR<GP×Th6+Gv×(1-Th6)
其中,GR是中继区的灰度值,
Gv是中继区相邻谷区的灰度值,
GP是中继区相邻峰区的灰度值,
Th6为第六阈值,比如为0.2。第六阈值介于到0.5之间。
如果在步骤S74,判断结果为“否”,那么流程进入步骤S76。否则,如果在步骤S74判断结果为“是”,那么,在步骤S75,该中继区合并到谷区。
图7C是一示意图,示出了将中继区合并到其相邻谷区的一个例子。图7C中的X轴表示每列的位置,Y轴表示每个区的灰度值。
参见图7C,中继区Re1的灰度值为25,谷区Va1的灰度值为20,峰区Pe1的灰度值为70,第六阈值设定为0.2,那么
GP×Th6+Gv×(1-Th6)
=70×0.2+20×0.8
=30>GR=25
因此,在步骤S74的判断结果为“是”,那么中继区Re1将合并到谷区Va1。进一步,中继区Re2的灰度值为40,峰区Pe2的灰度值为60,那么
GP×Th6+Gv×(1-Th6)
=60×0.2+20×0.8
=28<GR=40
因此,在步骤S74的判断结果是“否”,那么中继区Re2将不能合并到谷区Va1。
参见图7A的步骤S76,检查是否已处理完被检测图象的所有中继区。如果中继区不是最后的中继区,那么在步骤S77读取下一中继区,然后流程进入步骤S73并重复步骤S73及其后步骤的处理。然而,如果在步骤S76判断该中继区是最后的中继区,即已处理完所有的中继区,那么流程将在步骤S78结束。这样,就调整完了所检测图象的所有边界。
判断谷区是否能合并到种子区
图8A是流程图,用于判断在图5A的步骤S54中,一个谷区是否能合并到一个种子区。
图8B为示意图,表示一个种子区的预测谷区。种子区的预测谷区并不是被检测图象任何列中的一个实际存在的谷区。种子区的预测谷区认为是位于种子区右边最相邻列下一列的谷区,其位置与种子区的右边的最相邻列的位置一致。参见图8B,谷区Va3是种子区Sel的右边最相邻谷区,其位于列Co11,而列Co12是列Co11的下一列。那么,谷区Va1是种子区Se1的预测谷区。该预测谷区位于列Co12,其位置与谷区Va3的谷区一样,但位于不同的列。
图8C为一示意图,示出了二个谷区的重叠区。这二个谷区的重叠区是这样的一个区域,其中,该象素属于该二个谷区。
参见图8c,点B到点D的区间是谷区Va1,点A到点c的区间是谷区Va2,Va1是种子区Sel的预测谷区,谷区Va2是列Co12的一个真实谷区。那么,点B到点C的区间是谷区Val和谷区Va2的重叠区。
判断一个谷区是否能合并到种子区的,过程将参照图8A进行描述。参见图8A,在步骤S81计算谷区与种子的预测谷区的重叠区。
计算完重叠区后,流程进入到步骤S82。在步骤S82,比较并判断下式是否成立:
Osize/Max(Vsize,SVsize)>Th7
其中Osize是谷区与种子区的预测谷区的重叠区的大小,
Max(Vsize,SVsize)是谷区和种子区预测谷区大小的最大值,
Th7是第七阈值,比如为0.37。第七阈值介于0.2到0.75之间。
如果在步骤S82判断结果为“否”,那么流程进入步骤S88。那么谷区不能合并到种子区,则流程在步骤S89结束。否则,如果在步骤S82判断结果为“是”,那么流程进入步骤S83。
在步骤S83,计算谷区和种子区的灰度值。然后,流程进入步骤S84。在步骤S84,比较并判断下式是否成立:
|GValley-GSeed|<Th8
其中,GValey是谷区的灰度值,
GSeed是种子区的灰度值。
Th8为第八阈值,比如为40。第八阈值介于0至60之间。
如果步骤S84的判断结果为“否”,那么流程进入步骤S88。那么,谷区不能被合并到种子区,流程在步骤S89结束。否则,如果在步骤S84的判断结果为“是”,那么流程进入步骤S85。
在步骤S85,分别计算谷区背景、种子区背景以及谷区和种子区的明度。
对于图象中一个象素的亮度,可以由下式进行计算:
G=1.2219×10-1L+9.063×10-4L2+3.6833526×10-5L3
+1.267023×10-7L4+1.987583×10-10L5 (4)
公式(4)表示了孟寒尔表色系统中灰度值与亮度值之间的非线性关系,其中G是象素的灰度值,其介于0到255之间;L是象素的亮度值,其也介于0到255之间。
因此,可以通过图象的灰度值得到其亮度值,反之矣然。
对于本实施例来说,图4F中的象素Pi1和Pi2的灰度值分别为50和150,通过公式(4),可以确定象素Pi1和Pi2的亮度值分别为128和206。
返回图8A,在步骤S85后,流程进入步骤S86。在步骤S86,比较并判断下式是否成立
Min((Lvb-Lv),(Lsb-Ls))/Max(Lvb-Lv),(Lsb-Ls)>Th9
其中Lv是谷区的亮度,Ls是种子区的亮度,
Lvb是谷区背景的亮度,Lb是种子区背景的亮度,
Min((Lvb-Lv),(Lsb-Ls))是(Lvb-Lv)和(Lsb-Ls)的最小值,
Max((Lvb-Lv),((Lsb-Ls))是(Lvb-Lv)和(Lsb-Ls)的最大值。
Th9为第九阈值,比如为0.58。第九阈值介于0.3至1之间。
如果在步骤S86判断结果为“否”,那么流程进入步骤S88,则谷区不能合并到种子区,流程在步骤S89结束。否则,如果在步骤S86的判断结果为“是”,流程进入步骤S87。
在步骤S87,谷区被合并到种子区,流程在步骤S89结束。
注意本发明可以应用于由多个装置(例如主机、接口装置、读取器、打印机以及类似装置)构成的系统,或者由一个设备构成的装置(例如复印机、传真机或类似设备)。
本发明的目的还以这样的方式实现:对所述的系统或装置提供用于记录可以实现上述实施例的功能的软件程序的程序代码的存储介质,并通过系统或装置的计算机(或CPU或MPU)读取并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读出的程序代码本身执行上述实施例的功能,而存储程序代码的存储介质构成本发明。
作为用于提供程序代码的存储介质,例如软盘、硬盘、光盘、磁光盘、CD-ROM、CD-R、磁带、非易失存储卡、ROM、以及类似物都可以使用。
上述实施例的功能不仅可以通过由计算机执行读出的程序代码来实现,而且也可以通过在计算机上运行的OS(操作系统)根据程序代码的指令执行的一些或全部的实际处理操作来实现。
从上述可以看出,本发明的方法提供了一种快速的方法,用于检测具有复杂背景的图象中的人眼,而不需要被检测图象具有非常高的质量。从而实质上地消除了人眼被忽略的可能。这种方法能精确地检测具有不同尺寸、方向和明亮度的人眼。因此,按照本发明的方法设备或系统,可以快速、有效地检测人眼。
此外,本发明还包括这样一种情况,即在从存储介质读出的程序代码被写入已被插入计算机的功能扩展卡之后,或者被写入和计算机相连的功能扩展单元内提供的存储器之后,在功能扩展卡或功能扩展单元中包括的CPU或类似物按照程序代码的命令执行部分处理或全部处理,从而实现上述实施例的功能。
在本发明应用于上述存储介质的情况下,存储介质存储相应于实施例中所述的流程(图3A,4A,5A,6A,7A和8A)的程序代码。
上述实施例的方法用于检测人眼,然而,本发明并不仅限于检测人眼,它还可以适于其他的检测方法,比如,检测电路板的缺陷部分的方法。
不脱离本发明的范围和构思可以作出许多其它改变和改型。应当理解,本发明不限于特定的实施例,本发明的范围由所附权利要求限定。
Claims (22)
1.一种人眼检测方法,用于检测图象中的人眼,包括:
读取步骤,用于读取图象每列的各象素的灰度值;
分段步骤,用于将每列分成多个区间,并将各区间划分为谷区、中继区或峰区;
合并步骤,用于将每列的谷区和其相邻列的谷区合并,并产生眼睛备选区域;以及
确定步骤,用于从眼睛备选区域中确定人眼。
2.根据权利要求1的方法,其中分段步骤包括根据一列中各区间的灰度值将每个区间划分为谷区、中继区和峰区之一的步骤,
其中所述谷区的灰度值低于其相邻区间的每一灰度值,
其中所述中继区的灰度值在其相邻区间的灰度值之间,
其中所述峰区的灰度值高于其相邻区间的每一灰度值。
3.根据权利要求1的方法,其中分段步骤包括根据一列中各区间的亮度值将每个区间划分为谷区、中继区和峰区之一的步骤,
其中所述谷区的亮度值低于其相邻区间的每一亮度值,
其中所述中继区的亮度值在其相邻区间的亮度值之间,
其中所述峰区的亮度值高于其相邻区间的每一亮度值。
4.根据权利要求1的方法,其中分段步骤包括根据区间的灰度值与其二相邻区间的灰度值之比将每个区间划分为谷区、中继区和峰区之一的步骤,
其中所述谷区的灰度值低于其相邻区间的每一灰度值,
其中所述中继区的灰度值在其相邻区间的灰度值之间,
其中所述峰区的灰度值高于其相邻区间的每一灰度值。
5.根据权利要求1的方法,其中分段步骤包括根据区间的亮度值与其二相邻区间的亮度值之比将每个区间划分为谷区、峰区和中继区之一的步骤,
其中所述谷区的亮度值低于其相邻区间的每一亮度值,
其中所述中继区的亮度值在其相邻区间的亮度值之间,
其中所述峰区的亮度值高于其相邻区间的每一亮度值。
6.根据权利要求1到5任一项的方法,其中分段步骤还包括将分段点的灰度值与其二个相邻区间的灰度值相比较,并将分段点并入灰度值与该分段点灰度值接近的相邻区间的步骤,
其中所述分段点是与相邻区间相同列上的像素。
7.根据权利要求1到5任一项的方法,其中分段步骤还包括:
将中继区灰度值与阈值相比较的步骤,所述阈值根据所述中继区的相邻的谷区和峰区的灰度值被计算,和
当比较步骤的结果示出中继区的灰度值小于所述阈值时,将该中继区并入谷区的步骤。
8.根据权利要求1的方法,其中合并步骤包括下列步骤:
分别将图象的第一列的各谷区设定为种子区;
读取图象中下一列的谷区;
确定该谷区是否能合并到种子区;
将能合并的谷区合并到种子区;
将不能合并的谷区设定为新的种子区;以及
分别将所有设定种子区确定为眼睛备选区域,其中每一设定种子区不再有可合并谷区。
9.根据权利要求8的方法,其中所述确定该谷区是否能合并到种子区的步骤是基于读取的谷区和与种子区对应的预测区的重叠区的大小。
10.根据权利要求9的方法,其中所述确定该读出的谷区是否能合并到种子区的步骤是基于谷区的灰度值和种子区的灰度值的比较结果。
11.根据权利要求10的方法,其中所述确定该读出的谷区是否能合并到种子区的步骤是基于读出的谷区的灰度值、种子区的灰度值以及该读出的谷区的背景灰度值和种子区的背景灰度值。
12.一种人眼检测设备,用于检测图象中的人眼,包括:
读取装置,用于读取图象每列的各象素的灰度值;
分段装置,用于将每列分成多个区间,并将各区间划分为谷区、中继区或峰区;
合并装置,用于将每列的谷区和其相邻列的谷区合并,并产生眼睛备选区域;以及
确定装置,用于从眼睛备选区域中确定人眼。
13.根据权利要求12的设备,其中分段装置根据一列中各区间的灰度值将每个区间划分为谷区、中继区和峰区之一,
其中所述谷区的灰度值低于其相邻区间的每一灰度值,
其中所述中继区的灰度值在其相邻区间的灰度值之间,
其中所述峰区的灰度值高于其相邻区间的每一灰度值。
14.根据权利要求12的设备,其中分段装置根据一列中各区间的亮度值将每个区间划分为谷区、中继区和峰区之一,
其中所述谷区的亮度值低于其相邻区间的每一亮度值,
其中所述中继区的亮度值在其相邻区间的亮度值之间,
其中所述峰区的亮度值高于其相邻区间的每一亮度值。
15.根据权利要求12的设备,其中分段装置根据区间的灰度值与其二相邻区间的灰度值之比将每个区间划分为谷区、中继区和峰区之一,
其中所述谷区的灰度值低于其相邻区间的每一灰度值,
其中所述中继区的灰度值在其相邻区间的灰度值之间,
其中所述峰区的灰度值高于其相邻区间的每一灰度值。
16.根据权利要求12的设备,其中分段装置根据区间的亮度值与其二相邻区间的亮度值之比将每个区间划分为谷区、峰区和中继区之一,
其中所述谷区的亮度值低于其相邻区间的每一亮度值,
其中所述中继区的亮度值在其相邻区间的亮度值之间,
其中所述峰区的亮度值高于其相邻区间的每一亮度值。
17.根据权利要求12到16任一项的设备,其中分段装置将分段点的灰度值与其二个相邻区间的灰度值相比较,并将分段点并入灰度值与该分段点灰度值接近的相邻区间,
其中所述分段点是与相邻区间相同列上的像素。
18.根据权利要求12到16任一项的设备,其中分段装置将中继区灰度值与阈值相比较,所述阈值根据所述中继区的相邻的谷区和峰区的灰度值被计算,和当比较的结果示出中继区的灰度值小于所述阈值时,将该中继区并入谷区。
19.根据权利要求13的设备,其中合并装置分别将图象的第一列的各谷区设定为种子区,读取图象中下一列的谷区,确定该谷区是否能合并到种子区,将能合并的谷区合并到种子区,将不能合并的谷区设定为新的种子区,将其中每一设定种子区分别不再有可合并谷区的所有设定种子区确定为眼睛备选区域。
20.根据权利要求19的设备,其中合并装置比较谷区和与种子区对应的预测区的重叠区的大小。
21.根据权利要求19的设备,其中合并装置比较谷区的灰度值和种子区的灰度值。
22.根据权利要求19的设备,其中合并装置比较谷区的灰度值、种子区的灰度值以及谷区的背景灰度值和种子区的背景灰度值。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 00127067 CN1262969C (zh) | 2000-09-15 | 2000-09-15 | 人眼检测方法和人眼检测设备 |
EP01307827A EP1211640A3 (en) | 2000-09-15 | 2001-09-14 | Image processing methods and apparatus for detecting human eyes, human face and other objects in an image |
US09/951,458 US6965684B2 (en) | 2000-09-15 | 2001-09-14 | Image processing methods and apparatus for detecting human eyes, human face, and other objects in an image |
JP2001282283A JP2002183731A (ja) | 2000-09-15 | 2001-09-17 | 画像内の人間の目、顔及び他の対象物を検出する画像処理方法及びその装置 |
US11/235,132 US7103218B2 (en) | 2000-09-15 | 2005-09-27 | Image processing methods and apparatus for detecting human eyes, human face, and other objects in an image |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 00127067 CN1262969C (zh) | 2000-09-15 | 2000-09-15 | 人眼检测方法和人眼检测设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1343479A CN1343479A (zh) | 2002-04-10 |
CN1262969C true CN1262969C (zh) | 2006-07-05 |
Family
ID=4592114
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 00127067 Expired - Fee Related CN1262969C (zh) | 2000-09-15 | 2000-09-15 | 人眼检测方法和人眼检测设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1262969C (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8229549B2 (en) * | 2004-07-09 | 2012-07-24 | Tyco Healthcare Group Lp | Surgical imaging device |
US7415137B2 (en) | 2002-12-13 | 2008-08-19 | Canon Kabushiki Kaisha | Image processing method, apparatus and storage medium |
CN100465985C (zh) | 2002-12-31 | 2009-03-04 | 佳能株式会社 | 人眼探测方法及设备 |
JP4405942B2 (ja) * | 2005-06-14 | 2010-01-27 | キヤノン株式会社 | 画像処理装置およびその方法 |
-
2000
- 2000-09-15 CN CN 00127067 patent/CN1262969C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1343479A (zh) | 2002-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1213382C (zh) | 用于从多值图象提取划线的设备 | |
CN1184796C (zh) | 图象处理方法和设备以及图象处理系统 | |
CN1139039C (zh) | 图象中图形的提取和识别以及异常判定的方法和装置 | |
CN1313963C (zh) | 字符识别装置和字符识别方法 | |
CN1120442C (zh) | 文件图象处理设备及其方法 | |
CN1253010C (zh) | 图像压缩方法及装置、图像编码装置及图像编码方法 | |
CN1114888C (zh) | 图像处理方法、设备和系统 | |
CN1573742A (zh) | 图像检索系统、程序和方法及图像分类系统、程序和方法 | |
CN101046848A (zh) | 图像处理设备和图像处理方法 | |
CN1913573A (zh) | 用于图像检索的图像处理设备及其控制方法 | |
CN1969314A (zh) | 图像处理设备和方法、存储介质及其程序 | |
CN1829273A (zh) | 图像处理装置及其方法 | |
CN1822027A (zh) | 灰度字符的精确分割装置及方法 | |
CN1859541A (zh) | 图像处理设备及其控制方法 | |
CN1525403A (zh) | 图像处理装置 | |
CN1041773C (zh) | 由字符图象直方图0-1图形表示识别字符的方法和装置 | |
CN1310182C (zh) | 用于增强文档图像和字符识别的方法和装置 | |
CN1262969C (zh) | 人眼检测方法和人眼检测设备 | |
CN1099541A (zh) | 图象处理装置 | |
CN1438605A (zh) | 啤酒瓶凸性字符提取与识别硬件系统及处理方法 | |
CN1324524C (zh) | 应用程序间的数据链接支持方法 | |
CN1318177A (zh) | 图象处理装置、图象处理方法、以及图像处理程序记录媒体 | |
CN1505384A (zh) | 图像处理方法及图像处理装置以及图像处理程序 | |
CN1848137A (zh) | 增强字符行图像的方法、设备和存储介质 | |
CN1716310A (zh) | 图像处理设备、方法,计算机程序和计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060705 Termination date: 20140915 |
|
EXPY | Termination of patent right or utility model |