【人工智能实战2019-何峥】第8次作业

手写识别的思考

作业要求

项目 内容
课程 人工智能实战2019
作业要求 分析手写字符的识别问题
我的课程目标 掌握相关知识和技能,获得项目经验
本次作业对我的帮助 思考手写识别中出现的问题及改进方法
作业正文 【人工智能实战2019-何峥】第8次作业
其他参考文献

作业正文

思考题 1:如何识别不合法(既非数字又非符号)的输入?

建立二次筛选的模型:
建立根据数字和字符所具有的多维特征分类的分类器,设立接受阈值,在字符输入后首先识别是否符合数字和字符的一般特征,当符合程度小于该阈值,则判定为不合法;在符号识别过程中,设立判定阈值,对于被分类器接受的输入,若与任何已有数字和符号的相似度都小于其阈值时,则被判定为不合法。

思考题 2:如何设计该计算器应用以识别下列元素:

A. 更多的符号,比如sin函数

a. 对于多字符的符号,先按照独自字符识别,然后再独立与已有的符号进行对照,若有部分匹配则再作为整体与标准符号对比。
问题:在将字符独立出来与已有符号对照时,输入的一部分特征被忽略了,例如字符的相对位置,距离等。以log符号为例,单独识别这三个字符,极有可能得到109的结果,而且程序难以自我识别出问题。

b.改进思路: 将输入栏根据输入的大小、斜度等条件,用两线分为三部分,字符在被分割后,仍然保留着其在输入栏中的相对位置(如g占23行,而9占12行),然后再与字符库中的字符进行对比(字符库中的字符也需要根据书写习惯,对于各个字符或数字的占行位置进行定义),若输入中的单个符号符合库中某一字符,则认为其相邻输入属于特殊字符的可能性变高,将字符及其邻居作为整体比对数据库中的特殊字符,左邻边字符(右邻边)可以匹配,则继续加入其左邻边(右邻边)作为整体进行识别,若匹配失败,则将该左邻边(右邻边)排除,且不再往该边延伸。

B. 复杂的表达式结构(上下结构),比如指数 ,分数

综合考虑字符间的紧密度、上下的相对位置以及相对大小:对于输入的字符将其向横轴投影,若字符的重合度高于阈值,则认为可能属于同一部分;属于上下结构但左右错位、左大右小则判定为指数,属于上下高度重合且含有除线则判定为分数。对于指数部分或分子分母部分,可以按照统一规则对于区域进行划分,完成复杂指数或分数结构识别。

C. 更复杂的表达式结构(包围结构),比如平方根

首先识别根号的特征,对于根号包围的符号,根据对横轴投影的重合度来识别,重合高的认为输入根号中的部分,并对根号外(右侧)的符号进行检验,如果符号无法匹配,说明可能出现对于包围结构的误识别,将该字符加入或将其左侧字符排除出包围结构后再检验,直到表达式正确。

posted @ 2019-06-03 18:57  He-z  阅读(206)  评论(0编辑  收藏  举报