来源:期刊VIP网所属分类:综合论文发布时间:2021-02-05浏览:次
摘 要:针对机器人自动整理图书研究中的关键问题——利用机器视觉识别书脊问题展开研究。文章提出一种基于轮廓的书脊识别方法。利用Canny算子检测书脊边缘,根据书脊两侧轮廓为平行的线段特点,利用概率霍夫变换提取书脊两侧的轮廓,通过线段位置关系得到书脊ROI区域;根据书脊上文字与书脊颜色,亮度相差较大的特点,利用K-means对色调和亮度进行聚类,并通过判断形态特征得到文字区域,通过文字排列方式判断是否为书脊。将文章方法应用于实际检测中,并与利用LSD识别书脊的方法进行对比,实验结果表明文章方法识别正确率更高。
关键词:机器视觉;书脊识别;概率霍夫变换;Canny算子
1 概述
隨着社会的发展,图书馆的使用频率越来越高,造成了大量书籍的借阅与归还。由于归还量较大,工作人员无法在短时间内将图书整理完,这给其他读者在查询、借阅时带来了巨大的不便。随着人工智能、机器人等技术的发展,越来越多的学者提出了利用机器人自动整理图书的想法。成功识别图书书脊是利用机器人自动整理图书的基础。目前书脊识别主要分为两种思路,一种思路是利用深度学习识别书脊上文字或索书号,以此完成对书脊的识别[1,2],另一种思路是通过书脊轮廓和颜色等特征完成对书脊的分割与识别。后一种思路的难点在于:书脊图像比较复杂,难以区分单本图书与相邻图书的轮廓;书脊颜色多样,难以用固定的阈值进行筛选。方建军[3]等人提出一种基于小波分析和概率Hough变换的书脊识别系统,该算法可以很好解决因运动造成的图像模糊导致识别率下降的问题,但是需要根据书脊的厚度设置不同的Hough参数;孙继周等人[4]提出利用颜色结合LSD检测分割图书,通过索书标签进行图书识别的算法,但该方法对阈值设置依赖较高;殷策[5]提出了基于LSD的书籍轮廓提取算法,该方法对摆放混乱的书脊识别效果较好,但是该方法耗时较长,无法满足实时监测的需求。N.Tabassum等人[6]提出一种针对多行图书书脊的分割方法,但是该种方法目前只能检测较厚的排列好的书籍,无法应用于薄书籍和摆放较为混乱的书籍。曹海清等人[7]提出一种利用投影算子分割书脊,获得索书号,利用模板匹配识别文字与数字,该方法书脊分割效果较好,识别准确率较高,但对光线条件要求较为严格。本文与实际项目结合,利用概率霍夫变换与K-means聚类方法,实现了一种基于轮廓的书脊识别的算法。该方法对光线条件要求较低,对阈值依赖程度较低,在与基于LSD的书籍识别方法对比中,本文方法取得了更优异的识别效果。
2 算法流程
本文算法主要分为以下几个步骤:
S1.图像预处理:转为灰度图,利用滤波去除噪声;
S2.利用Canny算子检测书脊边缘直线;
S3.利用概率霍夫变换(PPHT)提取书脊轮廓线段;
S4.对S3得到的符合条件的线段融合;
S5.进行平行线检测,将不符合条件的线段去除,符合条件的线段进行配对,得到书脊ROI区域;
S6.将图像转换到HSV色彩空间,利用K-means对色彩和亮度聚类,结合形态学的筛选获得文字轮廓,并计算文字的相对位置关系。将通过筛选的文字的所在书脊输出,未通过的删除。
3 边缘检测
本部分希望提取的轮廓符合以下要求:(1)轮廓完整;(2)不同书脊轮廓可以区分。根据经验与各个算子的综合表现,本算法选取Canny算子作为轮廓提取算子。
Canny算子由John F.Canny于1986年提出[8],其主要流程如下[9,10]:
(1)对图像进行高斯滤波去除噪声;
(2)计算梯度幅值M和梯度方向θ:
利用Sobel算子计算水平方向梯度Gx与竖直方向梯度Gy,梯度大小为M=,梯度方向为θ=arctan();
(3)非极大值抑制:
为精确确定边缘,需将图像细化到1个像素宽度。将梯度方向归化到图2所示的4个方向之一,将此方向作为梯度方向。使用3*3的模板作用于幅值图像,用模板中心像素与梯度方向上的两个像素比较,若模板中心点处的幅值M(i,j)比梯度方向上的两个相邻点幅值小,则M(i,j)赋值为零;
(4)阈值化和边缘连接:
对经过非极大值抑制的图像Q(i,j)采用双阈值处理,低阈值处理结果为A1,高阈值处理结果为A2。以A2为基础,用A1补充连接边缘。
4 轮廓提取
经典霍夫变换思想是利用点和线的对偶性,将图像中的曲线转换为极坐标系的一点。在笛卡尔坐标系中直线方程为:
霍夫变换利用在极坐标系中的曲线交点检测直线。在极坐标系中越多的曲线交于一点,代表着这个交点表示的直线由越多的点组成。当交于一个点的曲线数量大于设定的阈值,即可认为这个交点代表的参数在笛卡尔坐标系中为一条直线。但是经典霍夫变换计算量较大,不能够保证实时性,本文采用概率霍夫变换(PPHT),对书脊轮廓的直线进行检测和提取。概率霍夫变换无需对边缘所有像素点进行检测,仅是从边缘点集中随机选取点进行计算。具体过程如下[11,12]:
(1)随机选取前景点,并在极坐标系中绘制图像;
(2)当极坐标系中存在交点达到阈值,将该点对应的图像在笛卡尔坐标系中的直线L绘制出来;
(3)寻找前景点,将在直线L上的点连成线段,记录相应参数(起始位置,终止位置,线段长度),然后将这些点删除;
(4)重复前三步,直到前景点集为空。
通过以上4步,即可快速的提取到图像中的直线。
5 ROI区域选取
5.1线段融合
经过PPHT提取直线后,存在许多非书脊轮廓的线段,进行线段融合,减少非目标直线。利用直线的相对位置关系进行筛选,首先通过直线方程y=kx+b或x=c描述线段。删除长度小于30像素的线段(图像大小640*480),删除存在交点的线段。关注垂直方向的线段,忽略k∈(0,5)∪(-5,0)的线段;按照k值进行分组,每组限差为±10。计算同一组内线段之间的距离,依次在2条线段4个端点中选3个,共构成4个三角形,使用如下公式计算三角形的高:
(1)新的线段斜率取两条线段斜率的平均值;
(2)用一条线段的上端点与下端点分别连接另一条线段的下端点与上端点,连线交點作为新线段中心点;
(3)将融合前较长线段的长度作为新线段的长度。
5.2 平行线判断
按中心点横坐标从小到大的顺序进行平行线匹配。匹配规则如下:
(1)若第一条线段向第二条线段投影的长度大于第一条线段长度的30%,则认为这两条线段为一本书的书脊两侧直线,匹配成功;
(2)若投影长度小于第一条线段长度的15%~30%,认为它们可能为一本书的轮廓,继续向下寻找,若存在投影长度更高的则将那两条线段匹配;若投影长度小于第一条线段长度的15%,则将该条线段删除;
(3)规定进行匹配的线段的中心点横坐标之间的距离应小于第一条线段长度的40%,若在此范围内无法匹配成功,则将该线段删除;
(4)匹配仅在同组直线内进行;
(5)若第一条线段与第二条线段匹配成功,则使用第二条线段继续进行匹配,直至所有直线都经过匹配。
5.3 选取书脊ROI区域
取匹配成功的线段端点纵坐标最大值与最小值的点,分别过该点做与其所在线段的垂线,延长另外一条线段,使其与垂线相交,如图3所示。构成旋转矩形区域,通过仿射变换得到书脊的ROI。
5.4 文字相对位置关系判断
这部分对识别到的区域做进一步筛选,同时解决因书脊边缘处梯度变化较小,而无法提取其轮廓的问题。
根据对书脊观察,总结出如下特征:多数书脊上存在文字,且文字的颜色,亮度与其他部分差距较大;文字的大小、排列方式有一定规律。根据这些特征,提出如下筛选方法及步骤:
(1)将ROI从RGB转换为HSV色彩空间;
(2)对H和S分量利用K-means聚类,将ROI区域分成3类;
(3)用矩形框选每一类图像,认为存在文字的矩形长应小于书脊长度的20%,且矩形长宽比应在0.8至1.2之间;
(4)将矩形按中心点横坐标分组,每组内横坐标差值不应大于ROI宽度的20%。取ROI两侧线段斜率的平均值过每组内y值最小的矩形中心点做直线,判断穿过矩形的情况与数量。与矩形上下边有交点,则直线穿过该矩形。若穿过矩形的数量不小于3个,则认为矩形区域即为文字区域;
(5)若无文字区域,则该区域为非书脊区域,若有一组及以上的文字区域,则认为该区域为书脊区域。若仅有单组文字,则直接将该区域输出,若有多组文字,则计算y值最大与最小的矩形中心点连线的斜率ki,并计算该组内矩形中心点横坐标平均值xi。然后计算相邻两组之间平均横坐标,计算平均斜率,找到ROI的中心点,取其纵坐标y,过(,y)以斜率做长度与ROI的高度相同的线段,将新的线段作为新添的书脊轮廓,与原有轮廓共同输出。
推荐阅读:上海市科技情报专业高级职称评审条件
期刊VIP网,您身边的高端学术顾问
文章名称: 基于霍夫变换的书脊识别研究
文章地址: http://www.qikanvip.com/lunwen/zonghelunwen/2021/0205/55518.html