当前位置: 首页 > 专利查询>武汉大学专利>正文

基于目标检测的吊线图族谱数字化方法、系统及设备技术方案

技术编号:36882330 阅读:11 留言:0更新日期:2023-03-15 21:15
本发明专利技术公开了一种基于目标检测的吊线图族谱数字化方法、系统及设备,首先预处理族谱图像,包括灰度化处理,二值化处理;得到吊线图水平投影图,并去除标题部分,再拼接两侧图片,并剔除世代标识;然后针对预处理后的族谱图像,基于最大稳定极值区域算法MSER,获得姓名区域;拆解出MSER对象中包含的姓名区域坐标和姓名区域边长,根据姓名区域的左上角坐标和姓名边长得到姓名区域左上和右下角的坐标coordinates;基于MSER对象得到的坐标coordinates,剔除重叠率高于阈值A的区域;接着基于几何位置融合偏旁部首,和识别吊线区域;最后识别姓名区域;本发明专利技术在族谱自动化录入方面,提高了族谱录入效率,提高了族谱数字化水平。化水平。化水平。

【技术实现步骤摘要】
基于目标检测的吊线图族谱数字化方法、系统及设备


[0001]本专利技术属于计算机图像识别与处理
,涉及一种吊线图族谱数字化方法、系统及设备,具体涉及一种基于目标检测的吊线图族谱数字化方法、系统及设备。

技术介绍

[0002]吊线图用来表示家族中人物之间的亲缘关系,得名于吊线图中,人物以世代为基础,不同世代的人物从左至右或者从上至下依次排列,具有亲缘关系的人物之间通过线条连接,形似一串连线;常见的吊线图有双栏五代和九代式。
[0003]OpenCV是Open Source Computer Vision Library的缩写,是一个开放源代码的计算机视觉算法和工具库,也是目前使用最为广泛的计算机视觉库。
[0004]OpenCV有以下特点:
[0005](1)实现了大量计算机视觉领域的算法,提供了许多工具和数据结构以方便计算机视觉程序的开发。
[0006](2)基于Apache 2许可证开放源代码,允许任何个人和组织在比较宽松的条件下使用和修改OpenCV的代码,对商业应用友好。
[0007](3)使用C++语言开发,主要提供了C++语言的接口。同时,OpenCV还基于C++语言接口,提供了其他编程语言的接口,其中最重要的就是Python语言接口,即opencv

python包。由于Python语言简单灵活、表达能力强、易于入门的特点,opencv

python被广泛使用于原型开发、演示和教学领域,也是本论文所述方案使用的OpenCV接口。
[0008](4)兼容Linux、Windows、macOS、FreeBSD、OpenBSD等主要的桌面操作系统和Android、iOS等主流移动操作系统。
[0009]OpenCV的应用领域非常广泛,主要包括各种2D和3D图像工具、面部识别、手势识别、人机交互、移动机器人技术、运动理解、目标检测、分割和识别、双眼立体视觉、运动中的结构、运动跟踪、增强现实等。为了支持上述的应用领域,OpenCV提供了一个机器学习库,其中包括提升方法、决策树学习、梯度提升树、最大期望算法、K

近邻算法、朴素贝叶斯分类器、人工神经网络、随机森林、支持向量机、深度神经网络等工具。
[0010]NumPy是Python中承担科学计算任务的基础库,提供了多维数组、矩阵等数据结构,以及快速操作这些数据结构的函数,包括数学、逻辑、形状操作、排序、选择、IO、离散傅里叶变换、基本线性代数、基本数据操作、随机模拟等。NumPy的核心数据结构是ndarray,它封装了同类型数据的、定长的多维数组,这与Python原生列表list截然不同。
[0011](1)许多针对
exttt{ndarray}的操作,如在两个矩阵之间相加、相减、相乘、数乘等,都会被编译为机器代码执行,避免被Python解释器的低下效率限制;
[0012](2)将针对多维数组的操作包装为与对普通数字的操作相似的形式,避免手写迭代代码,减少代码量的同时降低了出现错误的概率。如计算两个矩阵的乘法,手写迭代代码需要维护4个索引值,依次将两个矩阵中的数字相乘再相加,代码量比较大的同时可能出现错误;而使用NumPy,可以直接使用a*b计算两个矩阵相乘,代码量大大减少,NumPy中经过大
量测试和应用的代码,也很难出现错误。
[0013]Ndarray有几个重要的属性,如表1所示:
[0014]表1
[0015]属性名类型说明ndimintndarray的维度数量shapetuplendarray的形状,如n行m列的矩阵形状为(n,m)sizeintndarray内元素的数量,等于shape中所有值的乘积dtypenp.dtype元素的类型,如unint32,float64等itemsizeint元素的大小,单位为字节flagsnp.flagsobjndarray的内存信息
[0016]OpenCV的imread函数将图像从文件读取到内存中,内存中的图像即是以NumPy的ndarray存储的。这是因为图像中的像素点一般由3个通道的8位无符号整数构成,图像本身又可以视为像素点的二维矩阵。例如,以sRGB色彩空间读取到内存中的图像是一个shape为(h,w,3)、dtype为uint8的ndarray,其中第一个值h为图片的高,第二个值w为图像的宽,第三个值3表示每个像素由3个uint8整数组成;经过cvtColor转换而来的灰度图,其对应的shape为(h,w)、dtype为uint8,说明它的每个像素都是一个uint8,即灰度值。
[0017]MSER的全称是Maximally Stable Extremal Regions,即“最大稳定极值区域”算法,是一种计算机图像学的目标检测算法,主要基于“分水岭”的思想对图像进行斑点区域检测(blob detection)。MSER算法的准确度虽然不如卷积神经网络(CNN)的诸多算法,但可以作为目标检测的前期阶段,尽可能产生更多的候选目标。MSER十分适合用于处理对比度较大、目标区域灰度接近的文字目标检测任务。
[0018]MSER算法主要对灰度图像进行二值化处理,但并不是只采用某几个阈值,而是由0到255逐次递增。直观上,二值化处理的图像就像高低不同的平地、丘陵和高山被水淹没,从上向下看,整个区域被划分为陆地和水域两个部分。阈值为0时,没有土地被淹没,呈现全白色;随着阈值提高,被淹没的土地越来越多,体现为黑色的区域从零星出现到逐渐连成线和片,小的黑色区域逐渐连通为一体;阈值为255时,所有土地都被淹没,呈现全黑色。
[0019]随着阈值的增加,文字对应连通区域的面积在相当大的阈值范围内的变化率并不大。它们就像是那些特别陡峭的山峰,高水位与低水位下被淹没的面积相差不大。因此,只要能够捕捉到连通区域面积变化率最小时的阈值,就能找到感兴趣的区域。
[0020]MSER算法具有以下优势:
[0021](1)对于图像强度,具有仿射不变性;
[0022](2)稳定性:只选择可信度在阈值范围内几乎相同的区域;
[0023](3)多尺度检测不需要任何平滑处理,同时检测到精细结构和大结构。
[0024](4)枚举所有极值区域的最坏情况下也只需要\(O(n)\)的时间复杂度,其中\(n\)是图像中的像素数。
[0025]MSER算法的数学原理可以简单概括为:
[0026][0027]其中i为阈值,R(i)为阈值为i时的某一连通区域,Δ为i的微小增量,R(i)+Δ为对
应的连通区域,|R(i)|为R(i)的面积。因此|R(i+Δ)

R(i)|即为(i)微小增加时连通区域面积的变化量,其与|R(i)|之比为q(i),即阈值为i时连通区域面积的变化率。作为i的函数,q(i)的变化表示在不同的阈值时连通区域的面积有着不同的变化率,当q(i)达到局部极小值时,说明其对应的R(i)的变化幅度本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于目标检测的吊线图族谱数字化方法,其特征在于,包括以下步骤:步骤1:预处理族谱图像,包括灰度化处理,对灰度图进行二值化处理;基于二值化图像,得到吊线图水平投影图;基于水平投影图特征,去除标题部分,再拼接两侧图片;基于拼接后图片的水平投影图,剔除世代标识;步骤2:针对预处理后的族谱图像,基于最大稳定极值区域算法MSER,得到文字区域大致位置;拆解出MSER对象中包含的文字区域坐标和文字区域区域边长,根据文字区域的左上角坐标和文字边长得到文字区域左上和右下角的坐标coordinates;基于MSER对象得到的坐标coordinates,剔除重叠率高于阈值A的区域;步骤3:基于几何位置融合偏旁部首;将步骤2中获得的文字区域作为候选区域,遍历候选区域,得到每个候选区域的几何中心,若两个候选区域几何中心之间的距离小于阈值B,按两区域最大范围融合;步骤4:剔除吊线区域以及非文字区域;根据图像中文字所占的像素面积大小,设置阈值C,遍历所有候选区域,若候选区域面积小于该阈值C,则判断该区域非文字区域;根据图像中识别到的吊线与汉字几何特征不同,设置候选区域的长宽比阈值D,若检测区域的长宽比大于阈值D,则判定为吊线区域;将非文字区域和吊线区域的坐标置0并集中删除;步骤5:融合文字区域为姓名区域;遍历候选区域,得到候选区域的几何中心,如果两个候选区域的几何中心小于阈值E,则视为两个文字同属一个姓名,按两区域最大范围融合,得到精确的姓名区域。2.根据权利要求1所述的基于目标检测的吊线图族谱数字化方法,其特征在于:步骤1中所述基于二值化图像,得到吊线图水平投影图;具体实现包括以下子步骤:(1)输入numpy类型的二值化图像;(2)对二值化图像每一行的非零值计数,记为c;(3)结果图片中对应的每一行,设为c数量单位的纯黑值;(4)新建矩阵,对应每一行为c数量的纯黑值,以图片形式输出该矩阵。3.根据权利要求1所述的基于目标检测的吊线图族谱数字化方法,其特征在于:步骤1中所述剔除世代标识,具体实现包括以下子步骤:(1)输入需剔除世代标识图片,记为img;和其二值化图像,记为bin;(2)得到bin每一行非零值的数量,记第i行非零值数量为Ci;(3)遍历每一行的C
i
,若C
i
大于阈值A1,则将其放入容量为B的容器内,当容器内充满元素,则记录最小行数并清空容器内所有元素;若C
i
小于阈值A1,则清空容器内所有元素;(4)对每一个记录下的行数,针对输入的img删除此行及下方预设数量的行;(5)删除指定行的img即所需结果。4.根据权利要求1所述的基于目标检测的吊线图族谱数字化方法,其特征在于:步骤2中,基于MSER对象得到的区域坐标coordinates,利用非极大值抑制算法NMS,剔除重叠率高于阈值的区域;所述非极大值抑制算法NMS,具体实现包括以下子步骤:(1)遍历所有姓名区域,得出区域的面积;(2)根据区域右下角纵坐标大小从小到大排序;
(3)将纵坐标值最大的区域无条件进栈至堆栈C;(4)将其余区域分别与堆栈C栈顶元素求重叠率,将重叠率大于阈值的区域剔除;(5)继续从剩下的区域中选择右下角纵坐标值最大的区域进栈,计算堆栈C栈顶元素与剩余的区域重叠率,若重叠率大于阈值则剔除,直到没有与堆栈C栈顶元素的重叠率大于阈值的区域。5.根据权利要求1所述的基于目标检测的吊线图族谱数字化方法,其特征在于:步骤3的具体实现包括以下子步骤:(1)遍历所有候选区域;(2)记录其几何中心;(3)得到主体区域几何中心和客体区域几何中心水平距离与竖直距离中的较大值,记为dist;(4)判断dist于阈值B的大小关系,若dist小于阈值B,则将客体区域按主体区域于客体区域最大范围融合,若dist大于阈值B,则不做操作。6.根据权利要求1

5任意一项所述的基于目标检测的吊线图族谱数字化方法,其特征在于:步骤5获得精确的姓名区域后,进一步判断并找出主体区域的父亲或兄弟区域;具体实现包括以下步骤:步骤6:根据各个姓名区域之间的物理位置关系检测出人物关系,检测主体区域的父亲区域和兄弟区域;其中,主体区域为步骤5中获得的姓名区域与主体区域做对比的区域称之为客体区域;所述检测主体区域的父亲区域,首先遍历主体区域,判断主体区域左侧是否存在客体区域,即对比主体区域几何中心和客体区域几何中心的纵坐标差值是否在阈值F范围内,且客体区域几何中心横坐标值小于主体区域几何中心横坐标值,则说明主体区域存在“父亲”;将所有...

【专利技术属性】
技术研发人员:张锦睿彭煜玮李蓉蓉
申请(专利权)人:武汉大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1