发明名称 一种基于人脚图像的脚型分类方法
摘要 一种基于人脚图像的脚型分类方法,其特征在于:其步骤如下:步骤一:数据库的建立;步骤二:预处理去阴影;步骤三:提取脚掌部位;步骤四:提取脚掌轮廓的特征;步骤五:建立脚型分类模型;步骤六:脚型分类预测。本发明采用10-折交叉验证方法,将数据集随机平均分成了10个相互独立的子集,依次将9个子集中的数据作为训练集实例,剩下的1个子集中的数据当作测试集实例,进行10次训练和测试,再求其均值,作为对算法准确性的估计。我们对300幅图像进行统计,得到80.33%的分类准确率,效果令人满意。
申请公布号 CN104966099A 申请公布日期 2015.10.07
申请号 CN201510329437.4 申请日期 2015.06.15
申请人 北京航空航天大学 发明人 谢凤英;史蒙云;李阳;潘琛;孙婉盈
分类号 G06K9/62(2006.01)I 主分类号 G06K9/62(2006.01)I
代理机构 北京慧泉知识产权代理有限公司 11232 代理人 王顺荣;唐爱华
主权项 一种基于人脚图像的脚型分类方法,其特征在于:其步骤如下:步骤一:数据库的建立收集大量的人脚正面的图像,对不同的脚进行脚型特征学习,以便保证后期分类的准确性;收集过程包括以下三个方面:(1)图像获取将穿着纯色袜子的脚踩在水平地面上,并要求地面背景色与袜子颜色有一预定的区分度,如穿黑色的袜子踩在浅色的地板上,镜头在脚的正上方垂直向下进行拍摄,尽量使脚的中轴线与图像的垂直方向保持一致,并且保证脚掌部分全部包含在图像中,同时确保图像背景简单,不要有其他物体进来,即图像中只有脚目标和地面背景;(2)数据收集在保证采集背景与袜子颜色有足够区分度的情况下,变换不同的背景以及袜子颜色,对不同的人进行正面脚成像,共收集到300幅实验样本;(3)样本真值的产生标准脚型分为罗马脚、希腊脚和埃及脚,我们对一幅图像的脚型类别进行人工给定,为了保证脚型分类的准确性,对图像进行人工分类,并按大多数原则来确定图像的脚型类别,该类别即为该图像的脚型真值;步骤二:预处理去阴影对于收集到的300幅实验图像,由于光照环境不同,使得人脚掌的边缘处经常存在阴影,给后续的分割以及脚掌轮廓的定位带来困难,我们采用显著性方法对脚掌部位进行增强,去除脚掌部位的阴影干扰;步骤三:提取脚掌部位我们在上一个步骤中,对图像进行了增强,去除了脚掌轮廓部位的阴影,由于袜子颜色与背景具有足够大的对比度,而且场景单一,因此,该步骤中,我们采用大津阈值法实现图像的分割,将脚掌从图像中提取出来;(1)图像二值化所述的“大津阈值法”,详述如下:假设t为目标与背景的分割阈值,像素灰度小于t的为目标,反之为背景像素;令目标像素点占图像比例为w<sub>0</sub>,平均灰度为u<sub>0</sub>,背景像素点占图像比例为w<sub>1</sub>,平均灰度为u<sub>1</sub>;则图像的总平均灰度为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mover><mi>u</mi><mo>&OverBar;</mo></mover><mo>=</mo><msub><mi>w</mi><mn>0</mn></msub><mo>&times;</mo><msub><mi>u</mi><mn>0</mn></msub><mo>+</mo><msub><mi>w</mi><mn>1</mn></msub><mo>&times;</mo><msub><mi>u</mi><mn>1</mn></msub></mrow>]]></math><img file="FDA0000737871720000021.GIF" wi="505" he="65" /></maths>目标和背景之间的方差为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>g</mi><mo>=</mo><msub><mi>w</mi><mn>0</mn></msub><mo>&times;</mo><msup><mrow><mo>(</mo><msub><mi>u</mi><mn>0</mn></msub><mo>-</mo><mover><mi>u</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mn>2</mn></msup><mo>+</mo><msub><mi>w</mi><mn>1</mn></msub><mo>&times;</mo><msup><mrow><mo>(</mo><msub><mi>u</mi><mn>1</mn></msub><mo>-</mo><mover><mi>u</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mn>2</mn></msup></mrow>]]></math><img file="FDA0000737871720000022.GIF" wi="809" he="78" /></maths>根据大津阈值原理,在[0,255]范围内,遍历阈值t,当方差g最大时,即能得到最佳的分割阈值t*;(2)噪声和孔洞的去除用t*对图像二值化处理后,图像背景中经常会出现噪声,脚目标的内部也会出现孔洞;根据先验知识,人脚对应了图像中最大的连通区域,因此我们搜索图像中最大的连通区域作为目标提取出来,而其他小的连通区域作为噪声滤除,同时,对于目标内部的孔洞,采用种子填充的方法进行去除;步骤四:提取脚掌轮廓的特征提取2个斜率和2个面积比作为脚型分类的特征,此处以左脚为例说明;(1)提取关键点关键点包括轮廓最右侧点A、轮廓最上侧点B、脚掌轮廓最左侧点C、轮廓左上转折点D;点A、B、C是分别通过水平搜索最上侧点或者垂直搜索左右两侧最外侧的点得到;对于B和C之间的任意轮廓点,对B点竖直方向直线和C点水平方向直线做垂线,所围成矩形,则D点是B和C之间所有轮廓点中所围成矩形面积最大的点;(2)斜率特征提取假设p和q是两个关键点,且这两点之间的边缘点序列为(x<sub>1</sub>,y<sub>1</sub>),(x<sub>2</sub>,y<sub>2</sub>)…(x<sub>n</sub>,y<sub>n</sub>),用这个边缘点序列拟合出一条直线:y=kx+b上面公式中,k为拟合直线的斜率,b为拟合直线的偏置值;根据最小二乘法原理,k和b的值由下列公式求出:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><mi>k</mi><mo>=</mo><mrow><mo>(</mo><mover><mrow><mi>X</mi><mi>Y</mi></mrow><mo>&OverBar;</mo></mover><mo>-</mo><mover><mi>X</mi><mo>&OverBar;</mo></mover><mo>*</mo><mover><mi>Y</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>/</mo><mrow><mo>(</mo><mo>(</mo><mover><mrow><mi>X</mi><mo>*</mo><mi>X</mi></mrow><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>-</mo><mrow><mo>(</mo><mover><mi>X</mi><mo>&OverBar;</mo></mover><mo>*</mo><mover><mi>X</mi><mo>&OverBar;</mo></mover><mo>)</mo></mrow><mo>)</mo></mrow>]]></math><img file="FDA0000737871720000031.GIF" wi="819" he="78" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mi>b</mi><mo>=</mo><mover><mi>Y</mi><mo>&OverBar;</mo></mover><mo>-</mo><mi>k</mi><mover><mi>X</mi><mo>&OverBar;</mo></mover></mrow>]]></math><img file="FDA0000737871720000032.GIF" wi="267" he="71" /></maths>其中<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mover><mi>X</mi><mo>&OverBar;</mo></mover><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><msub><mi>&Sigma;x</mi><mi>i</mi></msub><mo>,</mo></mrow>]]></math><img file="FDA0000737871720000033.GIF" wi="249" he="106" /></maths><maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mover><mi>Y</mi><mo>&OverBar;</mo></mover><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><msub><mi>&Sigma;y</mi><mi>i</mi></msub><mo>,</mo></mrow>]]></math><img file="FDA0000737871720000034.GIF" wi="251" he="106" /></maths><maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><mover><mrow><mi>X</mi><mi>Y</mi></mrow><mo>&OverBar;</mo></mover><mo>=</mo><mfrac><mn>1</mn><mi>n</mi></mfrac><msub><mi>&Sigma;x</mi><mi>i</mi></msub><msub><mi>y</mi><mi>i</mi></msub></mrow>]]></math><img file="FDA0000737871720000035.GIF" wi="316" he="101" /></maths>我们对关键点对(A,B)和(B,D),采用直线拟合方法,得到2条直线,而这2条直线的斜率特征即能用于后续的决策树分类;(3)面积特征提取对A点和B点做水平线和竖直线,利用四条直线得到一个矩形,依次统计矩形所围区域中脚内像素数sum_in和脚外像素数sum_out,计算脚外面积和脚内面积比:Rate=sum_in/sum_out同理,利用B点和D点亦能得到一个矩形,求得另一个面积比,这2个面积比特征与前面的两个直线特征一起用于后续的决策树分类;步骤五:建立脚型分类模型脚型分类问题是一个典型的模式分类问题,其中人脚图像是待识别模式,其对应的脚型为类标号,采用C4.5决策树方法来构建分类模型;所述的“C4.5决策树方法”,详述如下:设D为训练样本集,有sum个样本,分别属于C<sub>1</sub>,C<sub>2</sub>和C<sub>3</sub>三个类别,分别对应了罗马脚、希腊脚和埃及脚三种脚型,本发明共有四个属性,包括两条直线斜率和两个面积比率;(1)计算训练样本集类别信息熵令c<sub>j</sub>为sum个样本中类别属于C<sub>j</sub>的样本数,则样本为C<sub>j</sub>类的概率为:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mi>p</mi><mi>j</mi></msub><mo>=</mo><mfrac><msub><mi>c</mi><mi>j</mi></msub><mrow><mi>s</mi><mi>u</mi><mi>m</mi></mrow></mfrac></mrow>]]></math><img file="FDA0000737871720000036.GIF" wi="231" he="124" /></maths>样本集类别信息熵为:<maths num="0009" id="cmaths0009"><math><![CDATA[<mrow><mi>I</mi><mrow><mo>(</mo><mi>C</mi><mo>)</mo></mrow><mo>=</mo><mo>-</mo><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>k</mi></munderover><msub><mi>p</mi><mi>j</mi></msub><mo>&CenterDot;</mo><msub><mi>log</mi><mn>2</mn></msub><msub><mi>p</mi><mi>j</mi></msub></mrow>]]></math><img file="FDA0000737871720000041.GIF" wi="524" he="188" /></maths>其中,k为类别数,本发明中有三种脚型,因此k=3;(2)计算属性V的信息增益率选择其中一个属性V,其中V有互不重合的n个取值{v<sub>1</sub>,v<sub>2</sub>,v<sub>3</sub>…v<sub>n</sub>},将属性V的每一个取值v<sub>i</sub>,按照从小到大进行排列,得到新的取值序列{v<sub>1</sub>,v<sub>2</sub>,v<sub>3</sub>…v<sub>n</sub>},则共生成n‑1个分割点,共有n‑1个划分方式,设第k个分割点取值为:a<sub>k</sub>=(v<sub>k</sub>+v<sub>k+1</sub>)/2它将该节点的数据集划分为2个数据子集,用[v<sub>1</sub>,a<sub>k</sub>],(a<sub>k</sub>,v<sub>n</sub>]的数据样本来表示属性V的取值;属性V的n‑1个划分的每一个情况都作为该属性的2个离散取值,重新构造该属性的离散值,则此时V的取值为V={m<sub>0</sub>,m<sub>1</sub>},其中m<sub>0</sub>表示v取值小于等于a<sub>k</sub>的集合,m<sub>1</sub>表示v取值大于a<sub>k</sub>的集合,令d<sub>i</sub>为V=m<sub>i</sub>(i=0,1)的样本数,为<img file="FDA0000737871720000045.GIF" wi="92" he="62" />是V=m<sub>i</sub>的样本中属于C<sub>j</sub>的个数,接下来按以下步骤依次计算每个划分对应的信息增益率;a)计算属性V每一个取值的信息熵属性V=m<sub>i</sub>中,属于C<sub>j</sub>类的概率为:<maths num="0010" id="cmaths0010"><math><![CDATA[<mrow><mi>p</mi><mrow><mo>(</mo><msub><mi>C</mi><mi>j</mi></msub><mo>|</mo><mi>V</mi><mo>=</mo><msub><mi>m</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><msub><mi>c</mi><mrow><msub><mi>jm</mi><mi>i</mi></msub></mrow></msub><msub><mi>d</mi><mi>j</mi></msub></mfrac></mrow>]]></math><img file="FDA0000737871720000042.GIF" wi="458" he="130" /></maths>则属性V的类别条件信息熵<maths num="0011" id="cmaths0011"><math><![CDATA[<mrow><mi>I</mi><mrow><mo>(</mo><mi>V</mi><mo>=</mo><msub><mi>m</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>=</mo><munderover><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mn>3</mn></munderover><mi>p</mi><mrow><mo>(</mo><msub><mi>C</mi><mi>j</mi></msub><mo>|</mo><mi>V</mi><mo>=</mo><msub><mi>m</mi><mi>i</mi></msub><mo>)</mo></mrow><msub><mi>log</mi><mn>2</mn></msub><mi>p</mi><mrow><mo>(</mo><msub><mi>C</mi><mi>j</mi></msub><mo>|</mo><mi>V</mi><mo>=</mo><msub><mi>m</mi><mi>i</mi></msub><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000737871720000043.GIF" wi="1060" he="189" /></maths>b)计算V=m<sub>i</sub>的概率<maths num="0012" id="cmaths0012"><math><![CDATA[<mrow><msub><mi>p</mi><mi>i</mi></msub><mo>=</mo><mfrac><msub><mi>d</mi><mi>i</mi></msub><mrow><mi>s</mi><mi>u</mi><mi>m</mi></mrow></mfrac></mrow>]]></math><img file="FDA0000737871720000044.GIF" wi="230" he="137" /></maths>c)计算类别条件信息熵Entropy(V)=p<sub>0</sub>I(V=m<sub>0</sub>)+p<sub>1</sub>I(V=m<sub>1</sub>)d)计算属性V的信息增益Gain(V)=I(C)‑Entropy(V)e)计算属性V的信息熵为Split(V)=‑(p<sub>0</sub>logp<sub>0</sub>+p<sub>1</sub>logp<sub>1</sub>)f)计算属性V的信息增益率<maths num="0013" id="cmaths0013"><math><![CDATA[<mrow><mi>G</mi><mi>a</mi><mi>i</mi><mi>n</mi><mo>_</mo><mi>R</mi><mi>a</mi><mi>t</mi><mi>i</mi><mi>o</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>G</mi><mi>a</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow></mrow><mrow><mi>S</mi><mi>p</mi><mi>l</mi><mi>i</mi><mi>t</mi><mrow><mo>(</mo><mi>V</mi><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000737871720000051.GIF" wi="589" he="142" /></maths>选择其中信息增益率最大的分割阈值a*作为属性V的最佳分割阈值;(3)递归执行(2),直到计算出每一个属性V的信息增益率,选择具有最大信息增益率的属性V*,并在其最佳分割阈值a*处创建节点;(4)第(3)步中的叶节点所包含的样本如果属于不同类型,则对该叶节点中的样本递归执行第(1)至第(3)步,直到叶节点中只包含同类型数据;步骤六:脚型分类预测给定测试集,我们即能采用上述过程建立脚型分类模型,对于待分类的样本,提取该样本的关键点,计算两个斜率和两个面积特征,并将其输入到训练好的脚型分类模型,即能预测出该样本的类别属性。
地址 100191 北京市海淀区学院路37号