手绘几何图形具有的特点是,随意、简单、可以迅速的表达设计师对产品的设想,有利于捕捉生活中得到的一些灵感。绘图工具中,需要在大量菜单,选项中选择所绘的图形,操作较为繁琐,在对手绘几何图形识别的过程中,通过计算机图形学,模式识别,人工智能,完成识别,重绘的过程,再完善人机交互的体验。

一.手绘几何图形介绍

手绘图识别分为联机和脱机两种

脱机:通过特定的采集设备如摄像机、扫描仪将图形以图像的形式,采集并输入到计算机。

联机:通过连接输入设备,如手写板,触摸屏,鼠标将笔的运动轨迹识别发送到计算机。

识别方法不同:

脱机:通常脱机识别的数据是用f(xi,yi)来描述,其中(xi,yi)为坐标(i,j)处的灰度值,所以在识别过程中,我们要对数据进行降噪,二值化等预处理;

联机:联机识别中,获得的是一组二维数据,用来存放笔迹点的坐标,还可以存放笔的移动速度,加速度,笔压等信息,这些信息可以整合成多维的点的序列,比脱机识别更有优势。

手绘几何图形识别和手写文字识别比较

同属于模式识别和计算机视觉研究领域的分支。

文字识别:将输入数据识别转化成词句,并显示出来。有固定的字符集合。对每个特定字符进行特征分析,在对整个字符集的整体特征进行分析,文字识别笔画形态相对简单,书写需要有严格的规范,便于建立鲁棒(Robust)的分类器。

手绘几何图形识别:没有特定的字符集,笔画随意,特征不明显,但是图形具有很多几何特征,方向、尺寸、连接、交叉,这些几何特征可以在识别图形中进行判定。

 二.手绘图识别的研究方法

手绘图识别主要的几类研究方法:

模糊类方法:

利用模糊逻辑,模糊知识,从笔迹的位置,方向,速度,加速度,来识别图形。

几何方法:

把图形作为整体识别,进行平滑处理,提取圆弧段,识别结点,分解出直线段,根据相邻3点的夹角角度作为圆弧和直线段的提取特征,找出实验阈值,进行分类。

神经网类方法:

通过提取图素几何形状的内角特征,用二进制突触的权重算法BSW(含一个隐层的前馈网)进行识别的方法。该方法以整体方式识别三角形、椭圆和矩形三种图素,但仅适用于绘图包和掌上电脑的自动草绘输入。

图元分类:

图元是组成图形的最小单元,其无法再被分割成其他几何线条。

我们把基本的图元分为:直线,圆,圆弧,椭圆,椭圆弧。

预处理:

数据采集之后需要经过预处理操作,预处理是消除因输入设备的差异,或者是个人输入习惯  的不同产生的一些噪声,如图中,因为手的抖动,造成有很多毛刺,或者绘图着画的慢,造成有些点重复取样。这些噪声会影响后面识别的准确性。

降低噪声的方法通常采用线性平滑算子或非线性平滑算子进行处理。可以通过每隔两点计算其中心点,然后连接这些中心点作为后续处理笔划的
方法。也可以通过限定草图的点间距的方法过滤掉多余的草绘点。但方法可能会丢失草绘时的一些动态特征,如速度、加速度等。

三.笔画分割

笔画分割的目的是将用户画出的复杂图形分割成基本的图元。分割的好坏会直接影响到后面识别的部分。

曲率:曲线上各点沿曲线方向的变化情况,借助曲率可以刻画曲线的几何特征。

曲率 几何特征
连续零曲率 直线段
连续非零曲率 弧线段
局部最大曲率绝对值 角点
局部最大曲率正值 凸角点
局部最大曲率负值 凹角点
 曲率过零点 特征点 
   

1.曲率的计算公式:k=△φ/△S

其中:△φ表示切线倾角变化值,△S表示曲线的弧长。

2.绘制速度
用户绘图过程中,在拐角处绘制速度会变慢,所以绘图时的绘制速度也是我们进行特征点判断的重要依据。由于在绘图的过程中是等时采样,任意点的绘制速度,可以用相邻两点间的距离代替。

根据曲率及绘制速度来检测笔划中的特征点进行分割。介绍两种分割算法:均值滤波和尺度空间滤波法。

均值滤波发:

数据的极值可能是数据的噪声产生的,所以我没要消除噪声所产生的极值,需要设置合适的阈值。如果是固定阈值,可能某种情况很好,某种情况又非常不好,均值滤波起到了一个很好的解决方案。先计算数据的平均值,然后乘以一个固定因子,获得一个合适的阈值。可以把数据分成大于和小于阈值的两个部分。

均值滤波需要运用在曲率和速度上,找出合适的特征点,具体步骤如下:

1)遍历所有采样点,计算出采样点的切线与x轴夹角,计算出曲率和平均曲率Ave_Curvature;

2)特征点在全部点钟占的比例较小,为了提高分割的准确性,所以对Ave_Curvature进行放大,作为曲率极值的判断阈值。

3)遍历所有曲率数据,比较找出大于阈值的电,加入到曲率特征点链表中。

4)同样遍历采样点,计算出速度数据和Ave_Speed。

5)对速度进行缩小,作为速度极值判断的阈值。

6)找出比阈值小的点,加入到速度特征点链表

7)比较2个链表,将重合或相近的电作为特征点输出。

尺度空间法:

尺度空间思想最早由lijima于1962年提出,但当时并未引起计算机视觉领域研究者们的足够注意,直到上世纪八十年代,Witkin等人的奠基性工作使得尺度空间方法逐渐得到关注和发展。此后,随着非线性扩散方程、变分法和数学形态学等方法在计算机视觉领域中的广泛应用,尺度空间方法进入了快速发展阶段。

尺度空间方法的基本思想是:在视觉信息(图像信息)处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得不同尺度下的视觉处理信息,然后综合这些信息以深入地挖掘图像的本质特征。尺度空间方法将传统的单尺度视觉信息处理技术纳入尺度不断变化的动态分析框架中,因此更容易获得图像的本质特征。

转载于:https://www.cnblogs.com/SeekHit/p/5027402.html

手绘几何图形识别(上)相关推荐

  1. 01_Cutecharts 超级可爱的手绘版图表 (上)

    文章目录 Cutechart 安装与代码结构 在线与离线安装 Commons 柱状图 柱状图基本示例 调整柱状图颜色 Line(折线图) 折线图参数 折线图基本示例 Line-Legend 位置与颜色 ...

  2. 做好flash手绘基本功,简单的手绘人物头像和眨眼动画

    最近老有朋友问我手绘的东西.看来大家最近都比较喜欢画些什么,正好浮生偷的半日闲,做个简单的人头像吧,希望对大家有帮助,其实这些东西的确很练手,需要的只是用功.细心罢了   1:先画一个简单的轮廓   ...

  3. 学手绘太难了?别怕,零基础手绘教程来啦包教包会!

    来啦来啦,期盼已久的手绘教程来啦,其实手绘算的上的画画里面最随意的绘画方式了,主要因为手绘最大的优点就是方便,可以随时随地的作画,一个本子一支笔就可以绘画.并且许多有趣又优秀的绘画作品就是在日常生活中 ...

  4. 聊城大学计算机学院宿舍,聊城大学一学子巧售手绘明信片网络走红(组图)

    齐鲁晚报聊城11月6日讯(记者 王传胜)聊城大学宏伟壮观的南大门你见过吗?该校一名大三学生突发奇想,把包括南大门在内的八个校园场景制作成手绘明信片,上传到网上之后迅速走红."双十一" ...

  5. 码绘与手绘的对比——动态

    码绘与手绘的对比--动态 版权声明:本文为博主原创文章,未经博主允许不得转载. 图形学最动人的地方就是可以用代码实现图形的动态效果,之前比较了静态效果下的码绘与手绘,传送门:https://blog. ...

  6. 这是你从未见过的组件库 -- Android 上的手绘风格组件

    之前看到一位作者开源了一款手绘风格的图表库 Chart.xkcd,感觉很是喜欢. 当然仅仅图表是满足不了我滴,于是想看看 Android 上是否有类似的开源库,一番搜索之后,颗粒无收. 想想原理可能不 ...

  7. wallpaper怎么导入视频_抖音上爆火的手绘视频怎么做?这篇文章来教你!

    抖音上爆火的手绘视频,最近很多人都在问,确实这个领域的市场非常大,做好可带货量是非常大的,所以,今天就跟大家讲解一下! 下面正式讲解抖音手绘视频: 首先准备条件: 1.电脑一台 2.videoscri ...

  8. 如何制作手绘地图?如何将图片图层精确地对准在地图上?

    最近大家常常在问,如何制作鼓浪屿手绘地图,如何将气象图层叠加在高德地图上啊? 其实地图上的研发量很小,几行代码就可以搞定. 关键是在图片绘制上,有较高的要求. 下面就用简单粗暴的方法来实现,如有不妥之 ...

  9. 史上最强模型 GPT-4 上线:一张手绘草图能生一个网站、60 秒搞定一个游戏开发!

    平地一声雷,GPT-4 重磅来袭. 3 月 14 日,OpenAI 正式上线新一代人工智能大模型 GPT-4,它是一个大型多模态模型,可以接受图像和文本输入,同时返回文本输出.就像这样: 用户:这幅画 ...

  10. 当“手绘”遇上“码绘”——静态绘作分析

    手绘与码绘 在我们的生活中,经常可以看到许多非常漂亮的绘画作品.其中有些是由画家用手绘制,有些却有可能是由一行行编写在电脑上的代码生成的.让我们看看这两者的具体步骤有什么不同. 手绘 首先,是手绘作品 ...

最新文章

  1. 关于笔记本电脑玩一些游戏不能全屏的注册表修改法
  2. SAP HUM 没有搬到Storage Type 923的HU能用HU02拆包?
  3. Guide: Solr performance tuning--转载
  4. Magento用的哪个php框架,对magento MVC框架的了解
  5. openssl升级_CVE-2020-1967:OpenSSL拒绝服务漏洞警报
  6. Hibernate merge和update的区别
  7. Windows错误代码转换成文字信息描述
  8. java string char数组_String在Java中真的是不可变吗?
  9. 量子计算机时空穿越,时光穿梭是否可行?未来人类真能穿越时空吗?科学家:不是不可能...
  10. RS-232协议和RS-485协议
  11. ECharts 前端数据可视化
  12. 软考:信息安全工程师3
  13. html css 实现文字竖排模拟古籍排版
  14. 1155低功耗cpu排行_低功耗是亮点 Intel第三代酷睿CPU评测
  15. ui设计学习路线图分享送给初学者
  16. kind多节点端口映射
  17. CTF基础知识与web信息泄露下的目录遍历、PHPINFO、备份文件下载
  18. linux 路径 别名,如何创建路径别名
  19. 决策树和 K 近邻分类
  20. Python中使用matplotlib画图时各种大小设置

热门文章

  1. linux 极点五笔,Linux 安装ibus极点五笔输入法备忘录
  2. 《微微一笑很倾城》中肖奈大神说的平方根倒数速算法是什么鬼?三十分钟理解!
  3. Linux重要命令-locat
  4. 2020杭电多校赛 Multi-University Training Contest
  5. bada开发tips
  6. 云电脑服务:技术与商业模式双重创新
  7. pytroch教程(一)
  8. 2017计算机知识竞赛题,2017网络安全知识竞赛题库(中学组)word版
  9. kaggle使用tpu
  10. python绘制四边形,三角形图形案例