发明名称 一种枪械编号自动识别方法
摘要 本发明公开了一种枪械编号自动识别方法,包括以下步骤:第一步,对采集的枪械编号区域图像预处理;第二步,对预处理后的枪械编号区域图像进行目标区域定位;第三步,对枪械编号区域定位后的枪械编号区域图像进行字符分割;第四步,对字符分割后的枪械编号区域图像进行字符识别,通过以上步骤,即可以实现枪械编号的自动识别。本发明针对采集的枪械编号区域图像,提出了一种枪械编号自动识别方法,该方法便于操作,不需要人工干预,自动聚焦并检测,对磨损较严重的枪械编号仍然可以正确识别;本发明具有检测速度快、可靠性高等优点,并已成功应用在手持式枪械编号检测设备上。
申请公布号 CN104112132A 申请公布日期 2014.10.22
申请号 CN201410315490.4 申请日期 2014.07.03
申请人 中国人民解放军第二炮兵工程大学 发明人 王涛;金广智;苏延召;刘浩;冯国彦;方浩;姚良
分类号 G06K9/36(2006.01)I;G06K9/34(2006.01)I;G06K9/66(2006.01)I 主分类号 G06K9/36(2006.01)I
代理机构 西安通大专利代理有限责任公司 61200 代理人 蔡和平
主权项 一种枪械编号自动识别方法,其特征在于,包括以下步骤:第一步:对采集的枪械编号区域图像预处理,具体包括如下步骤:1)对采集的枪械编号区域图像进行灰度化,得到灰度化的枪械编号区域图像;2)利用Canny算子进行边缘检测,检测出灰度化的枪械编号区域图像的边缘轮廓;3)利用霍夫变换对灰度化的枪械编号区域图像检测直线,然后对图像进行倾斜矫正,得到倾斜矫正后的枪械编号区域图像,其中,在霍夫变换中,直线用如下方程表示:ρ=xcosθ+ysinθ     (1)式中:ρ表示直线到图像原点的距离,θ表示图像原点到直线的垂线与x轴的夹角,通过θ对图像进行倾斜矫正,x和y分别表示图像上像素点到y轴和x轴的距离;4)利用高斯高通滤波器对倾斜矫正后的枪械编号区域图像进行增强,滤去图像中不低于70%的低频信息,以增强图像的边缘细节信息,得到增强后的枪械编号区域图像;5)对增强后的枪械编号区域图像进行顶帽变换,得到顶帽变换后的枪械编号区域图像;6)对顶帽变换后的枪械编号区域图像进行中值滤波,得到中值滤波后的枪械编号区域图像;第二步:对预处理后的枪械编号区域图像进行目标区域定位,具体包括如下步骤:1)对预处理后的枪械编号区域图像进行差分处理,得到其灰度跳变图;2)对灰度跳变图进行处理,在水平方向上对每一行的灰度跳变值进行累加,如果灰度跳变图的某一行的灰度跳变数大于22,并且该行的上面和下面存在连续的25‑55行都满足这个条件,同时这几行的高度大于或等于枪号的高度,则认为找到了枪械编号区域可能的位置,则保存这一区域,即枪械编号区域可能区域的水平位置基本确定;3)枪械编号区域可能区域的水平位置找到后,进行垂直方向定位,即确定枪械编号区域的左右边界;先对中值滤波后的枪械编号区域图像进行膨胀,然后对膨胀后的枪械编号区域图像进行联通域分析,得到枪械编号区域可能区域的外接矩形;结合先验知识得到外接矩形的长宽比K,用枪械编号区域可能区域的外接矩形的长宽比与K相比,当外接矩形的长宽比与K相差25%以上,则排除外接矩形的长宽比与K相差25%以上对应的外接矩形区域,得到最接近的一个外接矩形,即找到了字符区域的左右边界,实现了对枪械编号区域的精确定位;第三步:对枪械编号区域定位后的枪械编号区域图像进行字符分割,具体包括如下步骤:1)对枪械编号区域定位后的枪械编号区域图像进行滤波,去除噪点干扰,然后进行分层二值化处理;2)对分层二值化处理后的枪械编号区域图像进行字符分割,其中,枪号是由一串字符组成的,对枪号图像进行字符分割,将每个字符单独提取出来,再对单个字符的图像进行字符识别,将最终合成的字符串作为识别系统的输出结果;第四步:对字符分割后的枪械编号区域图像进行字符识别,具体包括如下步骤:1)对字符分割后的枪械编号区域图像进行字符归一化操作;2)对字符归一化操作后的枪械编号区域图像进行ZS细化,ZS细化算法的具体步骤如下:判断字符归一化操作后的枪械编号区域图像中所有点是否符合下列标记条件,满足标记条件的进行标记并删除,令字符归一化操作后的枪械编号区域图像中像素点P的8邻域为:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open='|' close='|'><mtable><mtr><mtd><msub><mi>P</mi><mn>2</mn></msub></mtd><mtd><msub><mi>P</mi><mn>1</mn></msub></mtd><mtd><msub><mi>P</mi><mn>8</mn></msub></mtd></mtr><mtr><mtd><msub><mi>P</mi><mn>3</mn></msub></mtd><mtd><mi>P</mi></mtd><mtd><msub><mi>P</mi><mn>7</mn></msub></mtd></mtr><mtr><mtd><msub><mi>P</mi><mn>4</mn></msub></mtd><mtd><msub><mi>P</mi><mn>5</mn></msub></mtd><mtd><msub><mi>P</mi><mn>6</mn></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000532502700000031.GIF" wi="1171" he="249" /></maths>标记条件如下:.<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><mn>2</mn><mo>&lt;</mo><mo>=</mo><mi>N</mi><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow><mo>&lt;</mo><mo>=</mo><mn>6</mn></mtd></mtr><mtr><mtd><mi>S</mi><mrow><mo>(</mo><mi>P</mi><mo>)</mo></mrow><mo>=</mo><mn>1</mn></mtd></mtr><mtr><mtd><msub><mi>P</mi><mn>1</mn></msub><mo>&CenterDot;</mo><msub><mi>P</mi><mn>3</mn></msub><mo>&CenterDot;</mo><msub><mi>P</mi><mn>5</mn></msub><mo>=</mo><mn>0</mn></mtd></mtr><mtr><mtd><msub><mi>P</mi><mn>3</mn></msub><mo>&CenterDot;</mo><msub><mi>P</mi><mn>5</mn></msub><mo>&CenterDot;</mo><msub><mi>P</mi><mn>7</mn></msub><mo>=</mo><mn>0</mn></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000532502700000032.GIF" wi="1187" he="329" /></maths>其中:N(P)是像素点P的邻域点中非零的个数,S(P)是以像素点P<sub>1</sub>、P<sub>2</sub>、P<sub>3</sub>、P<sub>4</sub>、P<sub>5</sub>、P<sub>6</sub>、P<sub>7</sub>、P<sub>8</sub>为序时这些点的值从0到1变化的次数;在一次迭代完成后,进行下一次迭代,直到再也没有像素点可以删除时,ZS细化算法结束;3)对ZS细化算法后的枪械编号区域图像采用基于Gabor变换的方法对字符笔画特征进行提取;4)采用改进后的学习速率自适应调整的BP算法进行字符识别,具体学习过程按如下步骤进行:a)设定最大学习次数、初始学习速率、允许的最大学习速率和最小学习速率,初始化隐含层与输入层、输出层与隐含层的连接权值和阈值;b)将训练样本输入网络,根据连接权值和阈值计算输出层各单元的响应;c)计算输出响应与目标向量的误差并存储;d)判断误差是否小于预先设定的精度,如果是则结束训练,否则转入下一步;e)判断误差较上一次是否减小,如果没有减小,取消本次学习,不对阈值和权值进行调整,如果误差减小,根据误差和学习速率调整权值和阈值;f)利用误差和学习速率,根据如下公式修正学习速率:η<sub>n+1</sub>=η<sub>n</sub>+(E<sub>n‑1</sub>‑E<sub>n</sub>)/E<sub>n‑1</sub>      (4)其中:n为迭代次数;η<sub>n+1</sub>为第n+1次的学习速率;η<sub>n</sub>为第n次的学习速率;E<sub>n‑1</sub>为第n‑1次的误差;E<sub>n</sub>为第n次的误差;判断修正后的学习速率是否超出允许的学习速率范围,如果超出,强令其回到设定的范围内,而后返回步骤b),继续学习;通过上述步骤训练生成相应字符的分类器;再将各个字符均进行分类识别后;通过将分割后的枪号字符送入分类器识别,识别出相应字符,即识别出枪械编号;至此,通过以上步骤,即可以实现枪械编号的自动识别。
地址 710025 陕西省西安市灞桥区洪庆镇同心路2号