发明名称 一种基于图像中层特征的场景分类方法
摘要 本发明公开了一种基于图像中层特征的场景分类方法,属于场景图像分类领域。首先利用一种快速查找图像中物体区域的方法,得到物体区域图像块,并将得到的区域图像块作为图像的中层特征。然后对中层特征图像块进行聚类,并利用SVM为每个聚类训练一个形状模板,同时根据评级指标,选取评级得分最高的n个形状模板。最后,根据测试图像与n个形状模板的匹配得分实现场景图像分类。本发明解决了场景图像分类中图像鉴别性不足和代表性不强的问题。
申请公布号 CN105426924A 申请公布日期 2016.03.23
申请号 CN201510927766.9 申请日期 2015.12.14
申请人 北京工业大学 发明人 杨金福;张强;张珊珊;陈浩
分类号 G06K9/62(2006.01)I 主分类号 G06K9/62(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 沈波
主权项 一种基于图像中层特征的场景分类方法,其特征在于:该方法的实现过程包括以下步骤,步骤1:图像中层特征学习步骤1.1:利用安装于机器人平台的摄像机采集场景图像,得到训练图像和:测试图像;对训练图像标注物体区域,并将标注区域的图像块尺寸缩放至为8×8像素区域,计算该区域的64维梯度范数特征;随机采样图像非标注区域,得到的图像块同样进行尺寸缩放至8×8像素区域,并计算其64维梯度范数特征;步骤1.2:将标注区域得到的梯度范数特征作为物体模板训练的正样本,非标注区域得到的梯度范数特征作为物体模板训练的负样本,利用线性支持向量机训练得到一个64维的模板向量w∈R<sup>8×8</sup>;步骤1.3:对模版向量w进行二值化,方法如下:输入:w,N<sub>w</sub>;初始化残差:ε=w;循环开始:j=1到N<sub>w</sub>a<sub>j</sub>=sign(ε)β<sub>j</sub>=<a<sub>j</sub>,ε>/||a<sub>j</sub>||ε←ε‑β<sub>j</sub>a<sub>j</sub>;循环结束输出:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msubsup><mrow><mo>{</mo><msub><mi>&beta;</mi><mi>j</mi></msub><mo>}</mo></mrow><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>w</mi></msub></msubsup><mo>,</mo><msubsup><mrow><mo>{</mo><msub><mi>a</mi><mi>j</mi></msub><mo>}</mo></mrow><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>w</mi></msub></msubsup></mrow>]]></math><img file="FDA0000877729190000011.GIF" wi="342" he="110" /></maths>其中N<sub>w</sub>表示基向量的个数,a<sub>j</sub>∈{‑1,1}<sup>64</sup>表示基向量,其中j=1,...,N<sub>w</sub>,β<sub>j</sub>表示基向量对应的系数,最终可将模版向量w表示成为如下形式:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>w</mi><mo>&ap;</mo><msubsup><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>w</mi></msub></msubsup><msub><mi>&beta;</mi><mi>j</mi></msub><msub><mi>a</mi><mi>j</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>1</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000877729190000021.GIF" wi="1013" he="93" /></maths>用二进制向量进一步表示a<sub>j</sub>,可得:<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msub><mi>a</mi><mi>j</mi></msub><mo>=</mo><msubsup><mi>a</mi><mi>j</mi><mo>+</mo></msubsup><mo>-</mo><mover><msubsup><mi>a</mi><mi>j</mi><mo>+</mo></msubsup><mo>&OverBar;</mo></mover></mrow>]]></math><img file="FDA0000877729190000022.GIF" wi="249" he="95" /></maths>其中<img file="FDA0000877729190000023.GIF" wi="270" he="87" /><img file="FDA0000877729190000024.GIF" wi="62" he="103" />表示对<img file="FDA0000877729190000025.GIF" wi="60" he="77" />取反运算;模板向量w与模板向量w的二值化向量b的点积就可由下式表示:<maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><mo>&lt;</mo><mi>w</mi><mo>,</mo><mi>b</mi><mo>&gt;</mo><mo>&ap;</mo><msubsup><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>w</mi></msub></msubsup><msub><mi>&beta;</mi><mi>j</mi></msub><mrow><mo>(</mo><mn>2</mn><mo>&lt;</mo><msubsup><mi>a</mi><mi>j</mi><mo>+</mo></msubsup><mo>,</mo><mi>b</mi><mo>&gt;</mo><mo>-</mo><mo>|</mo><mi>b</mi><mo>|</mo><mo>)</mo></mrow><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000877729190000026.GIF" wi="1180" he="100" /></maths>由于一个十进制数可以由其二进制数的最高几位来近似,则二值化64维的梯度范数特征可以近似表示为:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><msub><mi>g</mi><mi>l</mi></msub><mo>=</mo><msubsup><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>g</mi></msub></msubsup><msup><mn>2</mn><mrow><mn>8</mn><mo>-</mo><mi>k</mi></mrow></msup><msub><mi>b</mi><mi>k</mi></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000877729190000027.GIF" wi="926" he="95" /></maths>其中,N<sub>g</sub>为十进制数所对应的二进制数的高位个数,b<sub>k</sub>(k=1,...,N<sub>g</sub>)表示二值化数值中的第k个高位的数值;步骤1.4:将测试图像集中的图像压缩至W<sub>0</sub>×H<sub>0</sub>尺寸,其中{W<sub>0</sub>×H<sub>0</sub>}表示图像的尺寸,其中W<sub>0</sub>×H<sub>0</sub>∈{10,20,40,80,160,320},共有36种;步骤1.5:在各种尺寸的图像下,计算每幅图像的二值化梯度范数特征,利用8×8大小的窗口进行滑动扫描,计算得到每个窗口的二值化梯度范数特征g<sub>l</sub>,则在位置l处的二值化梯度范数与模板匹配得分可表示为s<sub>l</sub>:s<sub>l</sub>=<w,g<sub>l</sub>>                          (4)l=(i,x,y)                       (5)其中l表示位置信息,i表示缩放后图像的尺寸,(x,y)表示图像的坐标值;公式(4)可表示为:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><msub><mi>s</mi><mi>l</mi></msub><mo>&ap;</mo><msubsup><mo>&Sigma;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>w</mi></msub></msubsup><msub><mi>&beta;</mi><mi>j</mi></msub><msubsup><mo>&Sigma;</mo><mrow><mi>k</mi><mo>=</mo><mn>1</mn></mrow><msub><mi>N</mi><mi>g</mi></msub></msubsup><msub><mi>C</mi><mrow><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>6</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000877729190000031.GIF" wi="982" he="102" /></maths>其中<maths num="0007" id="cmaths0007"><math><![CDATA[<mrow><msub><mi>C</mi><mrow><mi>j</mi><mo>,</mo><mi>k</mi></mrow></msub><mo>=</mo><msup><mn>2</mn><mrow><mn>8</mn><mo>-</mo><mi>k</mi></mrow></msup><mrow><mo>(</mo><mn>2</mn><mo>&lt;</mo><msubsup><mi>a</mi><mi>j</mi><mo>+</mo></msubsup><mo>,</mo><msub><mi>b</mi><mi>k</mi></msub><mo>&gt;</mo><mo>-</mo><mo>|</mo><msub><mi>b</mi><mi>k</mi></msub><mo>|</mo><mo>)</mo></mrow><mo>;</mo></mrow>]]></math><img file="FDA0000877729190000032.GIF" wi="662" he="79" /></maths>步骤1.6:将缩放得到的36种不同尺寸的图像按比例缩放为原图像尺寸,就可以得到物体的区域;尽管得到的物体区域尺寸大小各异,然而对于一般的物体,其尺寸长宽比不会过大,所以我们对上述步骤得到的物体区域进行提纯;对缩放得到的36种不同大小、匹配得分以及提纯后最终物体的得分这三者的关系建立线性模型,即利用公式(7)计算得到提纯后的最终物体的得分;每种窗口大小选择M个得分最高的作为最终物体区域:O<sub>l</sub>=v<sub>i</sub>·s<sub>l</sub>+t<sub>i</sub>                     (7)上式中的v<sub>i</sub>,t<sub>i</sub>为线性模型的参数,t<sub>i</sub>为误差项;这两个参数可用线性支持向量机学习得到;即用36种不同尺寸图像中在位置l处的二值化梯度范数与模板匹配得分作为训练样本,利用线性支持向量机的方法训练得到v<sub>i</sub>,t<sub>i</sub>;步骤2:基于中层特征场景分类步骤2.1:将以上“图像中层特征学习步骤”得到的中层特征作为分类器的训练集H,将H分为A和B两部分;步骤2.2:统计集合H中所有图像块的大小,按图像块尺寸大小进行排序后,找出图像尺寸的中位数a×b,并将集合H中所有图像缩放至a×b大小,在该尺度下计算各个图像块的方向梯度直方图(HOG)特征,计算方法如下:(1)将图像灰度化,并计算图像每个像素的梯度信息;(2)将图像划分成若干个8×8像素的细胞单元,对每个细胞单元360度的梯度方向分成9个方向块,并进行细胞单元内像素的规定权重投影,得到细胞单元的梯度直方图;(3)将相邻的若干细胞单元组成一个区域,并串联图像内所有区域的梯度直方图,得到整个图像的HOG特征;步骤2.3:用k‑means算法对预处理过的样本集A的HOG特征进行聚类,并将聚类结果去掉聚类中含有图像块少于k个的类;步骤2.4:分别选取每个聚类中的图像作块为正样本,其他聚类中图像块作为负样本,利用线性支持向量机学习一个形状模板,并用该类的形状模板在其他聚类中进行扫描,取得分最高的m个图像块来更新每个聚类,在此基础上重新训练得到新的形状模板;步骤2.5:利用交叉验证方法,对以上步骤(1)至步骤(4)进行多次重复实验,并将多次实验结果的平均值作为最终的聚类结果;步骤2.6:根据评级指标S,对交叉验证得到的聚类进行评级;评级指标S包含两项:纯度和鉴别性;其中,纯度指每个聚类中前r个图像块的检测得分之和,用S<sub>1</sub>表示;鉴别性为聚类内图像在集合中出现个数的比率,记为S<sub>2</sub>:<maths num="0008" id="cmaths0008"><math><![CDATA[<mrow><msub><mi>S</mi><mn>2</mn></msub><mo>=</mo><mfrac><msub><mi>N</mi><mi>A</mi></msub><msub><mi>N</mi><mrow><mi>A</mi><mo>&cup;</mo><mi>B</mi></mrow></msub></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>8</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000877729190000041.GIF" wi="940" he="141" /></maths>其中,N<sub>A</sub>为聚类内图像在集合A中出现的个数,N<sub>A∪B</sub>为聚类内图像在集合{A∪B}中出现的个数;则分级指标用纯度和鉴别性的线性组合表示为:S=S<sub>1</sub>+λS<sub>2</sub>                      (9)λ为(0,1)之间的常数,表示判别性在该分级指标中所占的比重;步骤2.7:根据评级得分,选取得分最高的前n个聚类;步骤2.8:输入测试图像,进行滑动窗口扫描,根据图像与各聚类模板的匹配分数高低进行分类。
地址 100124 北京市朝阳区平乐园100号