基于手绘轨迹的形状识别及矫正方法、设备及存储介质技术

技术编号:35039938 阅读:18 留言:0更新日期:2022-09-24 23:18
本发明专利技术公开一种基于手绘轨迹的形状识别及矫正方法、装置、设备及存储介质,包括:基于预训练的神经网络模型,对获取的手绘轨迹进行大分类识别,以使得手绘轨迹被区分为封闭图形和非封闭图形中的一种;在手绘轨迹为封闭图形时,计算手绘轨迹中存在的拐点,以确定手绘轨迹的具体形状;在手绘轨迹为非封闭图形时,计算手绘轨迹的每三个相邻数据点之间的曲率以获取特征点数量,并根据特征点数量以确定手绘轨迹的具体形状;根据得到的手绘轨迹的具体形状的不同,以及根据拐点或/和特征点,对手绘轨迹进行矫正,以使得手绘轨迹与标准图形拟合。本发明专利技术可以提高对手绘几何图形识别的准确度,能够较为快速、精确的识别出用户绘制的图形类别并进行矫正。别并进行矫正。别并进行矫正。

【技术实现步骤摘要】
基于手绘轨迹的形状识别及矫正方法、设备及存储介质


[0001]本专利技术涉及图形识别
,尤其涉及一种基于手绘轨迹的形状识别及矫正方法、设备及存储介质。

技术介绍

[0002]目前,许多绘图工具直接采用规则图元输入,例如Microsoft Office,Visio以及大部分CAD系统,在绘图时要求用户从大量的菜单和按钮中选择预定义的标准图形这样的方式也存在以下方面的缺点:
[0003]1)输入不方便。用户发现绘制自己需要的图形时,往往要多次点击鼠标进行选择,特别当有许多预定义的图形或对象时,用户很难记住到哪儿选择自己需要的图形。例如微软的中有个预定义组合图形供用户选择,复杂的界面让用户感到难以适从。
[0004]2)输入不自然。有些应用例如方案设计,需要用户随时随地地快速记录其设计思路,而不是拘泥于某一细节,这与传统的以最终设计为目标的应用是截然不同的。在这些系统中,选择预定义标准对象的过程往往会打断用户的思路,从而阻碍用户平滑、流畅地体现其设计思想。
[0005]3)不适合小屏幕掌上设备。对于等仅有笔输入界面的小屏幕掌上设备来说,这种输入方式很不实际。因为大量的菜单和按钮会使得原本拥挤的屏幕更加紧张,从而挤压用户的使用区域。
[0006]随着硬件设备的不断更新,如手写板的出现,基于的交互式手绘草图设计正逐渐成为设计师进行手绘草图设计的一种新的方式。但是手绘草图输入的自由度较大,输入意图与领域背景、思维方式、手绘习惯和偏好等多种特性相关,手绘过程也会受到图形结构和设备特性等多种环境因素的影响,用户手绘图形的结构及其内部关联都带有很强的主观性。这给手绘识别带来很大的难度。
[0007]由此可见,基于手绘的几何图形的识别与矫正还存在很大的进步空间。

技术实现思路

[0008]鉴于以上技术问题,本专利技术提供了一种基于手绘轨迹的形状识别及矫正方法、设备及存储介质,以提供一种能快速、准确识别输入手绘草图的方案。
[0009]本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
[0010]根据本专利技术的一方面,提出了一种基于手绘轨迹的形状识别及矫正方法,其特征在于,所述方法包括:基于预训练的神经网络模型,对获取的手绘轨迹进行大分类识别,以使得所述手绘轨迹被区分为封闭图形和非封闭图形中的一种;在所述手绘轨迹为所述封闭图形时,计算所述手绘轨迹中存在的拐点,以确定所述手绘轨迹的具体形状;在所述手绘轨迹为所述非封闭图形时,计算所述手绘轨迹的每三个相邻数据点之间的曲率以获取特征点数量,并根据所述特征点数量以确定所述手绘轨迹的具体形状;根据得到的所述手绘轨迹
的具体形状的不同,以及根据所述拐点或/和所述特征点,对所述手绘轨迹进行矫正,以使得所述手绘轨迹与标准图形拟合。
[0011]进一步的,所述封闭图形至少包括圆形、多边形、五角星、心形、云朵中的一种,所述非封闭图形至少包括直线、抛物线、带箭头的直线、带箭头的曲线中的一种。
[0012]进一步的,在所述手绘轨迹为圆形、多边形、五角星、心形、云朵中的一种时,所述计算所述手绘轨迹中存在的拐点,以确定所述手绘轨迹的具体形状,具体包括以下步骤S201~S204:
[0013]步骤S201:在所述手绘轨迹的任一选取线的首尾两点之间连接一条第一直线段,所述第一直线段为选取线的弦;
[0014]步骤S202:得到所述选取线上离所述第一直线段距离最大的点,计算其与所述第一直线段的距离;
[0015]步骤S203:比较所述距离与预先给定的第一阈值的大小,若小于所述第一阈值,则所述第一直线段作为所述选取线的近似段,多个所述近似段的连接点为所述拐点,根据所述拐点的数量,以确定所述手绘轨迹的具体形状;
[0016]步骤S204:如果所述距离大于所述第一阈值,则选取所述选取线上离所述第一直线段距离最大的点作为拆分点,将所述选取线拆分为两段,并分别对两段所述选取线执行步骤S201~S203。
[0017]进一步的,在所手绘轨迹为直线、抛物线、带箭头的直线、带箭头的曲线中的一种时,所述计算所述手绘轨迹的每三个相邻数据点之间的曲率以获取特征点数量,并根据所述特征点数量以确定所述手绘轨迹的具体形状,具体包括:
[0018]设定所述手绘轨迹上的各个点的坐标为(x1,y1),(x2,y2),(x3,y3),...,(x
n
,y
n
);
[0019]通过计算公式得到所述曲率为cur,其中:
[0020]temp=(a*a+b*b

c*c)/(2*a*b);
[0021][0022][0023][0024]a、b、c为相邻的三个点,x1~x3分别为a、b、c的x轴坐标,y1~y3为a、b、c的y轴坐标;
[0025]计算所述曲率的差值:dcur[n]=cur[n+1]‑
cur[n];
[0026]由于dcur[n]*dcur[n+1]<0and cur[n]>threshold;
[0027]n为所述特征点的位置,threshold为可调的第二阈值;
[0028]根据所述特征点的数量,得到所述手绘轨迹的具体形状。
[0029]进一步的,所述对所述手绘轨迹进行矫正,以使得所述手绘轨迹与标准图形拟合,具体包括:在所述手绘轨迹的具体形状为直线时,将所述手绘轨迹的首尾两点相连,以生成新的直线;在所述手绘轨迹的具体形状为抛物线时,将所述手绘轨迹的首尾两点连成第二
直线段,设定所述手绘轨迹中距离所述第二直线段最远的点当做抛物线的顶点,从所述顶点开始将所述手绘轨迹拆分为两段,对两段所述手绘轨迹分别用三次贝塞尔曲线进行平滑连接,以生成新的抛物线;在所述手绘轨迹的具体轨迹为圆形时,选取所述手绘轨迹的中心点作为圆心,计算得到所述手绘轨迹的各个点与所述中心点的平均距离,将所述平均距离作为半径而生成新的圆形;在所述手绘轨迹的具体形状为椭圆时,根据所述手绘轨迹的辅助外接矩形计算出长轴和短轴,并根据椭圆公式生成新的椭圆;在所述手绘轨迹的具体形状为多边形时,计算连接于同一所述拐点的连接线之间的夹角,以及根据所述夹角的角度和所述拐点的数量,确定所述所述手绘轨迹为三角形、四边形、五边形、五角星中的一种,以及生成新的形状替换原有的所述手绘轨迹;在所述手绘轨迹的具体形状为心形或云朵形时,在所述手绘轨迹的辅助外接矩形中绘制与辅助外接矩形的各个边接壤的、且对称设置的心形或云朵形。
[0030]进一步的,在所述手绘轨迹的具体形状为直线或抛物线且带有箭头时,计算多个所述特征点之间的线段长度,以长度最长的两个所述特征点之间的线段作为所述手绘轨迹的主干部分,对所述主干部分进行矫正,以及用预设的箭头形状对所述手绘轨迹的剩余的部分进行替换。
[0031]进一步的,在所述拐点的数量为三个时,将三个所述拐点连接为初始三角形,以及对所述初始三角形的所述夹角进行计算,其中:若本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于手绘轨迹的形状识别及矫正方法,其特征在于,所述方法包括:基于预训练的神经网络模型,对获取的手绘轨迹进行大分类识别,以使得所述手绘轨迹被区分为封闭图形和非封闭图形中的一种;在所述手绘轨迹为所述封闭图形时,计算所述手绘轨迹中存在的拐点,以确定所述手绘轨迹的具体形状;在所述手绘轨迹为所述非封闭图形时,计算所述手绘轨迹的每三个相邻数据点之间的曲率以获取特征点数量,并根据所述特征点数量以确定所述手绘轨迹的具体形状;根据得到的所述手绘轨迹的具体形状的不同,以及根据所述拐点或/和所述特征点,对所述手绘轨迹进行矫正,以使得所述手绘轨迹与标准图形拟合。2.根据权利要求1所述的基于手绘轨迹的形状识别及矫正方法,其特征在于,所述封闭图形至少包括圆形、多边形、五角星、心形、云朵中的一种,所述非封闭图形至少包括直线、抛物线、带箭头的直线、带箭头的曲线中的一种。3.根据权利要求2所述的基于手绘轨迹的形状识别及矫正方法,其特征在于,在所述手绘轨迹为圆形、多边形、五角星、心形、云朵中的一种时,所述计算所述手绘轨迹中存在的拐点,以确定所述手绘轨迹的具体形状,具体包括以下步骤S301~S304:步骤S201:在所述手绘轨迹的任一选取线的首尾两点之间连接一条第一直线段,所述第一直线段为选取线的弦;步骤S202:得到所述选取线上离所述第一直线段距离最大的点,计算其与所述第一直线段的距离;步骤S203:比较所述距离与预先给定的第一阈值的大小,若小于所述第一阈值,则所述第一直线段作为所述选取线的近似段,多个所述近似段的连接点为所述拐点,根据所述拐点的数量,以确定所述手绘轨迹的具体形状;步骤S204:如果所述距离大于所述第一阈值,则选取所述选取线上离所述第一直线段距离最大的点作为拆分点,将所述选取线拆分为两段,并分别对两段所述选取线执行步骤S201~S203。4.根据权利要求2所述的基于手绘轨迹的形状识别及矫正方法,其特征在于,在所手绘轨迹为直线、抛物线、带箭头的直线、带箭头的曲线中的一种时,所述计算所述手绘轨迹的每三个相邻数据点之间的曲率以获取特征点数量,并根据所述特征点数量以确定所述手绘轨迹的具体形状,具体包括:设定所述手绘轨迹上的各个点的坐标为(x1,y1),(x2,y2),(x3,y3),...,(x
n
,y
n
);通过计算公式得到所述曲率为cur,其中:temp=(a*a+b*b

c*c)/(2*a*b);c*c)/(2*a*b);c*c)/(2*a*b);a、b、c为相邻的三个点,x1~x3分别为a、b、c的x轴坐标,y1~y3为a、b、c的y轴坐标;
计算所述曲率的差值:dcur[n]=cur[n+1]

cur[n];由于dcur[n]*dcur[n+1]<0 and cur[n]>threshold;n为所述特征点的位置,threshold为可调的第二阈值;根据所述特征点的数量,得到所述手绘轨迹的具体形状。5.根据权利要求1所述的基于手绘轨迹的形状识别及矫正方法,其特征在于,所述对所述手绘轨迹进行矫正,以使得所述手绘轨迹与标准图形拟合,具体包括:在所述手绘轨迹的具体形状为直线时,将所述手绘轨迹的首尾两点相连,以生成新的直线;在所述手绘轨迹的具体形状为抛物线时,将所述手绘轨迹的首尾两点连成第二直线段,设定所述手绘轨迹中距离所述第二直线段最远的点当做抛物线的顶点,从所述顶点开始将所述手绘轨迹拆分为两段,对两段所述手绘轨迹分别用三次贝塞尔曲线进行平滑连接,以生成新的抛物线;在所述手绘轨迹的具体轨迹为圆形时,选取所述手绘轨迹的中心点作为圆心,计算得到...

【专利技术属性】
技术研发人员:庄建明邢淑敏
申请(专利权)人:泓宇星私人有限责任公司
类型:发明
国别省市:

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

1