一种图形识别方法、智能终端及存储介质与流程

文档序号:24132343发布日期:2021-03-02 18:45阅读:87来源:国知局
一种图形识别方法、智能终端及存储介质与流程

[0001]
本发明涉及图像识别技术领域,尤其涉及一种图形识别方法、智能终端及存储介质。


背景技术:

[0002]
图像识别,是指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,是应用深度学习算法的一种实践应用。随着人工智能图像识别的技术越来越普及,完成图像识别后,提取图形轮廓,绘制出用户想要图形或是提取出用户想要的数据。
[0003]
现有技术的使用场景,常常是在一张真实图片中找到识别出某种形状,然后再经过处理,最后根据用户需求将结果展示给用户。
[0004]
但是存在的缺陷是在输入的识别素材上很多不需要的信息没有省略,背景、ui、其他笔画对识别有干扰,导致识别不准确,图形处理复杂度高,效率不高。
[0005]
因此,现有技术还有待于改进和发展。


技术实现要素:

[0006]
本发明的主要目的在于提供一种图形识别方法、智能终端及存储介质,旨在解决现有技术中图形识别准确率不高且效率低的问题。
[0007]
为实现上述目的,本发明提供一种图形识别方法,所述图形识别方法包括如下步骤:
[0008]
获取用户绘制的图形,记录用户绘制的画笔信息,当用户绘制完成后将所述画笔信息记录在待处理画笔列表中;
[0009]
根据所述待处理画笔列表的大小,获取框住所述待处理画笔列表的待处理矩形;
[0010]
根据所述待处理矩形的大小,创建一张背景为白色的位图,并将所述待处理画笔列表以黑色和特定粗细画在所述位图上,生成待处理图案;
[0011]
将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果。
[0012]
可选地,所述的图形识别方法,其中,所述初步识别结果包括:无结果、圆、长方形、三角形和箭头。
[0013]
可选地,所述的图形识别方法,其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0014]
当所述初步识别结果为无结果时,则结束本次检测。
[0015]
可选地,所述的图形识别方法,其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0016]
当初步识别结果为长方形时,根据所述待处理矩形的形状、当前选择的画笔颜色和粗细绘制一个长方形,得到专项图形识别的最终识别结果为长方形识别结果图案。
[0017]
可选地,所述的图形识别方法,其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0018]
当初步识别结果为圆时,以所述待处理矩形的中心为圆心,所述待处理矩形的长为半径,并根据当前选择的画笔颜色和粗细绘制一个圆,得到专项图形识别的最终识别结果为圆识别结果图案。
[0019]
可选地,所述的图形识别方法,其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0020]
当初步识别结果为三角形时,将所述待处理图案处理为灰度图,统计所述灰度图的线段端点,得到第一个三角形点集;
[0021]
将所述第一个三角形点集进行第一次过滤得到第二个三角形点集,将所述第二个三角形点集进行第二次过滤得到第三个三角形点集;
[0022]
获取所述第三个三角形点集中位于最边界的4个点,并将4个点按顺序连接,获取最短线段上的两个点,记为c和d,另外两个点记为a和b;
[0023]
若cd两点重合且ab两点重合,或者cd的距离小于40像素,则以ac为底,在所述第三个三角形点集中找到点e,使三角形ace面积最大,将三角形ace记为候选三角形;
[0024]
若cd两点不重合且ab两点不重合,或者cd的距离大于等于40像素,对比三角形abc和三角形abd的大小,将面积更大的三角形记为候选三角形;
[0025]
根据所述候选三角形、当前选择的画笔颜色和粗细绘制一个三角形,得到专项图形识别的最终识别结果为三角形识别结果图案。
[0026]
可选地,所述的图形识别方法,其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0027]
当初步识别结果为箭头时,将所述待处理图案处理为灰度图,统计所述灰度图的线段端点,得到箭头点集;
[0028]
将所述箭头点集进行过滤得到箭头凸包点集,对所述箭头凸包点集使用旋转卡壳法找到凸包的直径,并作为箭头的轴;
[0029]
在所述箭头凸包点集中获取离轴最远的点,记录为第一翼点,计算所述第一翼点关于轴的轴对称点,得到第二翼点;
[0030]
根据轴与第一翼点、第二翼点,以及当前选择的画笔颜色与粗细,绘制一个箭头,得到专项图形识别的最终识别结果为箭头识别结果图案。
[0031]
可选地,所述的图形识别方法,其中,所述待处理矩形的大小与所述待处理画笔列表的大小相同;所述位图的大小与所述待处理画笔列表的大小相同。
[0032]
此外,为实现上述目的,本发明还提供一种智能终端,其中,所述智能终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的图形识别程序,所述图形识别程序被所述处理器执行时实现如上所述的图形识别方法的步骤。
[0033]
此外,为实现上述目的,本发明还提供一种存储介质,其中,所述存储介质存储有图形识别程序,所述图形识别程序被处理器执行时实现如上所述的图形识别方法的步骤。
[0034]
本发明通过获取用户绘制的图形,记录用户绘制的画笔信息,当用户绘制完成后将所述画笔信息记录在待处理画笔列表中;根据所述待处理画笔列表的大小,获取框住所述待处理画笔列表的待处理矩形;根据所述待处理矩形的大小,创建一张背景为白色的位图,并将所述待处理画笔列表以黑色和特定粗细画在所述位图上,生成待处理图案;将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果。本发明通过画图本身记录的信息,得到简化准确的识别输入图,可以识别画图软件绘制出来的各种图案,更加准确的提取出对应的图形,可以更加准确快速得到识别结果。
附图说明
[0035]
图1是本发明图形识别方法的较佳实施例的流程图;
[0036]
图2是本发明图形识别方法的较佳实施例中识别结果为三角形的处理过程示意图;
[0037]
图3是本发明图形识别方法的较佳实施例中识别结果为箭头的处理过程示意图;
[0038]
图4为本发明智能终端的较佳实施例的运行环境示意图。
具体实施方式
[0039]
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0040]
本发明较佳实施例所述的图形识别方法,如图1所示,所述图形识别方法包括以下步骤:
[0041]
步骤s10、获取用户绘制的图形,记录用户绘制的画笔信息,当用户绘制完成后将所述画笔信息记录在待处理画笔列表中。
[0042]
具体地,在用户开始绘制图形后,获取用户绘制的图形,并开始记录本轮用户绘制的画笔信息,当用户停止绘制时,将本轮用户绘制的画笔信息记录在一个列表中,将此列表定义为在待处理画笔列表,即将用户绘制完成的述画笔信息记录在所述待处理画笔列表中。
[0043]
步骤s20、根据所述待处理画笔列表的大小,获取框住所述待处理画笔列表的待处理矩形。
[0044]
具体地,根据所述待处理画笔列表的大小可以获取所述待处理画笔列表上最左、最上、最右、最下的点的位置,根据这四个点的位置可以得到一个恰好能框住所述待处理画笔列表的的所有画笔的矩形,将此矩形定义为待处理矩形,即所述待处理矩形的大小与所述待处理画笔列表的大小相同。
[0045]
步骤s30、根据所述待处理矩形的大小,创建一张背景为白色的位图,并将所述待处理画笔列表以黑色和特定粗细画在所述位图上,生成待处理图案。
[0046]
具体地,根据所述待处理矩形的大小,创建一张刚好能装下所述待处理画笔列表
且背景为白色(#ffffff)的bitmap(位图,又称栅格图或点阵图,是使用像素阵列来表示的图像),并且将所述待处理画笔列表画到所述位图(bitmap)上,画的时候使用固定颜色为黑色(#000000),特定粗细为5像素的画笔,将这张bitmap定义为待处理图案。
[0047]
步骤s40、将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果。
[0048]
具体地,将所述待处理图案通过矩阵变换放大或者缩小224*224像素的图案,通过tensorflow-lite库的接口配合准备好的模型进行识别和分类,生成识别结果。
[0049]
本发明中,所述初步识别结果包括:无结果、圆、长方形、三角形和箭头。
[0050]
其中,当所述初步识别结果为无结果时,则结束本次检测。
[0051]
其中,当初步识别结果为长方形时,根据所述待处理矩形的形状、当前选择的画笔颜色和粗细绘制一个长方形,得到专项图形识别的最终识别结果为长方形识别结果图案,即得到“识别结果图案-长方形”。
[0052]
其中,当初步识别结果为圆时,以所述待处理矩形的中心为圆心,所述待处理矩形的长为半径,并根据当前选择的画笔颜色和粗细绘制一个圆,得到专项图形识别的最终识别结果为圆识别结果图案,即得到“识别结果图案-圆形”。
[0053]
其中,当初步识别结果为三角形时,即如果检测结果为三角形,则需要进一步处理。
[0054]
如图2所示:
[0055]
(1)由于所述待处理图案只有黑白两色,所以可以直接通过opencv库(opencv是一个基于bsd许可发行的跨平台计算机视觉和机器学习软件库,可以运行在linux、windows、android和mac os操作系统上,它轻量级而且高效,由一系列c函数和少量c++类构成,同时提供了python、ruby、matlab等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法)的接口将所述待处理图案处理成灰度图。
[0056]
(2)对所述灰度图使用lsd函数统计线段端点,得到第一个三角形点集。
[0057]
(3)对所述第一个三角形点集通过convexhull函数(算出图像的凸包,这里是根据图像的轮廓点,通过convexhull函数转化成凸包的点的坐标,从而画出图像的凸包)进行第一次过滤得到第二个三角形点集,例如使用“三角形点集+1”表示。
[0058]
(4)对所述第二个三角形点集(“三角形点集+1”)通过approxpolydp函数(主要功能是把一个连续光滑曲线折线化,对图像轮廓点进行多边形拟合)进行第二次过滤得到第三个三角形点集,例如使用“三角形点集+2”表示。
[0059]
(5)找出第三个三角形点集(“三角形点集+2”)中位于最边界的最左点、最上点、最右点和最下点(最边界的4个点),按左上右下的顺序连接,获取最短线段上的两个点,记为c和d,另外两个点记为a和b。
[0060]
(6)若cd两点重合且ab两点重合,或者cd的距离小于40像素,则认为三角形为钝角三角形的可能性极大,以ac为底,在所述第三个三角形点集(“三角形点集+2”)中找到点e,使三角形ace面积最大,将三角形ace记为候选三角形。
[0061]
(7)若cd两点不重合且ab两点不重合,或者cd的距离大于等于40像素,则认为三角形为锐角三角形或直角三角形,对比三角形abc和三角形abd的大小,将面积更大的三角形记为候选三角形。
[0062]
(8)将候选三角形和画图软件当前选择的画笔颜色与粗细,绘制一个三角形,得到专项图形识别的最终识别结果为三角形识别结果图案,即得到“识别结果图案-三角形”。
[0063]
其中,当初步识别结果为箭头时,即如果检测结果为箭头,则需要进一步处理。
[0064]
如图3所示:
[0065]
(1)由于所述待处理图案只有黑白两色,所以可以直接通过opencv库的接口将所述待处理图案处理成灰度图。
[0066]
(2)对所述灰度图使用lsd函数统计线段端点,得到箭头点集。
[0067]
(3)对所述箭头点集使用convexhull函数进行过滤,得到箭头凸包点集,例如使用“箭头凸包点集+1”表示。
[0068]
(4)对“箭头凸包点集+1”使用旋转卡壳法找到凸包的直径,并以此为箭头的轴(指箭头夹在中间那根最长的线段)。
[0069]
(5)在“箭头凸包点集+1”中,找到离轴最远的点,将其记录为第一翼点(翼点指箭头两侧线段,离轴最远的点)。
[0070]
(6)计算第一翼点关于轴的轴对称点,得到第二翼点。
[0071]
(7)将轴与两个翼点(第一翼点和第二翼点)与画图软件当前选择的画笔颜色与粗细,绘制一个箭头,得到专项图形识别的最终识别结果为箭头识别结果图案,即得到“识别结果图案-箭头”。
[0072]
进一步地,若有“识别结果图案-xx”,则在历史记录中用“识别结果图案-xx”替代“待处理画笔列表”,使得撤销重做的时候只有“识别结果图案-xx”。
[0073]
本发明基于安卓canvas类,bitmap类(位图类,用于保存位图信息),opencv库3.0版本(用于进行标准化的图像处理).tensorflow-lite库(使用模型进行机器识别,有着配套的机器学习训练流程,本发明不涉及如何训练出模型,因为训练过程并不在画图软件中进行,只需要知道训练得到的模型,可以用来进行机器识别即可);在用户需要的情况下,用户在画图应用上画个图形,该逻辑可以将画的图形(圆,长方形,三角形,箭头)识别出来,并将其更新为标准的图案(圆,长方形,三角形,箭头)。
[0074]
本发明中,老的信息是可以省略,用户关注的是最新绘制的图案能否识别成所想的图形;画图软件本身是需要记录绘制的一笔一画的,识别时可以方便的取出目标的笔画进行识别,而过滤掉背景、ui、其他笔画对识别的干扰;然后,由于输入素材的简化,训练用的数据集也跟着简化,而识别也会更加精准;最后,在完成识别后,处理并提取用户所需要的信息这一步,由于数据简化,提取时所需要做的图形处理复杂度也会大大下降,从而降低识别的时间;而画图软件记录的画笔的位置信息,也可以更好的设计算法,更加准确的提取出对应的图形。
[0075]
本发明利用画图软件本身必要记录的信息,简化了识别输入图像的大小与环境干扰,并且减少了了将图片转换成灰度图所需的步骤;最后还提供了针对性算法,给用户识别“圆”,“长方形”,“三角形”,“箭头”时一个更加准确快速的结果。
[0076]
进一步地,如图4所示,基于上述图形识别方法,本发明还相应提供了一种智能终端,所述智能终端包括处理器10、存储器20及显示器30。图4仅示出了智能终端的部分组件,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0077]
所述存储器20在一些实施例中可以是所述智能终端的内部存储单元,例如智能终
端的硬盘或内存。所述存储器20在另一些实施例中也可以是所述智能终端的外部存储设备,例如所述智能终端上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器20还可以既包括所述智能终端的内部存储单元也包括外部存储设备。所述存储器20用于存储安装于所述智能终端的应用软件及各类数据,例如所述安装智能终端的程序代码等。所述存储器20还可以用于暂时地存储已经输出或者将要输出的数据。在一实施例中,存储器20上存储有图形识别程序40,该图形识别程序40可被处理器10所执行,从而实现本申请中图形识别方法。
[0078]
所述处理器10在一些实施例中可以是一中央处理器(central processing unit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器20中存储的程序代码或处理数据,例如执行所述图形识别方法等。
[0079]
所述显示器30在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organic light-emitting diode,有机发光二极管)触摸器等。所述显示器30用于显示在所述智能终端的信息以及用于显示可视化的用户界面。所述智能终端的部件10-30通过系统总线相互通信。
[0080]
在一实施例中,当处理器10执行所述存储器20中图形识别程序40时实现以下步骤:
[0081]
获取用户绘制的图形,记录用户绘制的画笔信息,当用户绘制完成后将所述画笔信息记录在待处理画笔列表中;
[0082]
根据所述待处理画笔列表的大小,获取框住所述待处理画笔列表的待处理矩形;
[0083]
根据所述待处理矩形的大小,创建一张背景为白色的位图,并将所述待处理画笔列表以黑色和特定粗细画在所述位图上,生成待处理图案;
[0084]
将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果。
[0085]
其中,所述初步识别结果包括:无结果、圆、长方形、三角形和箭头。
[0086]
其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0087]
当所述初步识别结果为无结果时,则结束本次检测。
[0088]
其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0089]
当初步识别结果为长方形时,根据所述待处理矩形的形状、当前选择的画笔颜色和粗细绘制一个长方形,得到专项图形识别的最终识别结果为长方形识别结果图案。
[0090]
其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0091]
当初步识别结果为圆时,以所述待处理矩形的中心为圆心,所述待处理矩形的长为半径,并根据当前选择的画笔颜色和粗细绘制一个圆,得到专项图形识别的最终识别结果为圆识别结果图案。
[0092]
其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0093]
当初步识别结果为三角形时,将所述待处理图案处理为灰度图,统计所述灰度图的线段端点,得到第一个三角形点集;
[0094]
将所述第一个三角形点集进行第一次过滤得到第二个三角形点集,将所述第二个三角形点集进行第二次过滤得到第三个三角形点集;
[0095]
获取所述第三个三角形点集中位于最边界的4个点,并将4个点按顺序连接,获取最短线段上的两个点,记为c和d,另外两个点记为a和b;
[0096]
若cd两点重合且ab两点重合,或者cd的距离小于40像素,则以ac为底,在所述第三个三角形点集中找到点e,使三角形ace面积最大,将三角形ace记为候选三角形;
[0097]
若cd两点不重合且ab两点不重合,或者cd的距离大于等于40像素,对比三角形abc和三角形abd的大小,将面积更大的三角形记为候选三角形;
[0098]
根据所述候选三角形、当前选择的画笔颜色和粗细绘制一个三角形,得到专项图形识别的最终识别结果为三角形识别结果图案。
[0099]
其中,所述将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果,之后还包括:
[0100]
当初步识别结果为箭头时,将所述待处理图案处理为灰度图,统计所述灰度图的线段端点,得到箭头点集;
[0101]
将所述箭头点集进行过滤得到箭头凸包点集,对所述箭头凸包点集使用旋转卡壳法找到凸包的直径,并作为箭头的轴;
[0102]
在所述箭头凸包点集中获取离轴最远的点,记录为第一翼点,计算所述第一翼点关于轴的轴对称点,得到第二翼点;
[0103]
根据轴与第一翼点、第二翼点,以及当前选择的画笔颜色与粗细,绘制一个箭头,得到专项图形识别的最终识别结果为箭头识别结果图案。
[0104]
其中,所述待处理矩形的大小与所述待处理画笔列表的大小相同;所述位图的大小与所述待处理画笔列表的大小相同。
[0105]
本发明还提供一种存储介质,其中,所述存储介质存储有图形识别程序,所述图形识别程序被处理器执行时实现如上所述的图形识别方法的步骤。
[0106]
综上所述,本发明提供一种图形识别方法、智能终端及存储介质,所述方法包括:获取用户绘制的图形,记录用户绘制的画笔信息,当用户绘制完成后将所述画笔信息记录在待处理画笔列表中;根据所述待处理画笔列表的大小,获取框住所述待处理画笔列表的待处理矩形;根据所述待处理矩形的大小,创建一张背景为白色的位图,并将所述待处理画笔列表以黑色和特定粗细画在所述位图上,生成待处理图案;将所述待处理图案通过矩阵变换为预设像素的图案,对所述图案进行初步识别与分类,再根据初步识别结果进行专项图形识别,生成最终识别结果。本发明通过画图本身记录的信息,得到简化准确的识别输入图,可以识别画图软件绘制出来的各种图案,更加准确的提取出对应的图形,可以更加准确快速得到识别结果。
[0107]
当然,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关硬件(如处理器,控制器等)来完成,所述的程序可存储于一计算机可读取的存储介质中,所述程序在执行时可包括如上述各方法实施例的流程。其中所述的存储介质可为存储器、磁碟、光盘等。
[0108]
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1