人工智能实战-第八次作业-徐浩原
2019-06-03 17:25 Jackxu121ux 阅读(273) 评论(0) 收藏 举报一、项目概述
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 人工智能实战 |
| 我在这个课程的目标是 | 将人工智能技术与本专业知识联系 |
| 这个作业在哪个具体方面帮助我实现目标 | 扩展Mnist训练集 |
| 作业正文 | 链接 |
二、作业内容
思考题 1:如何识别不合法(既非数字又非符号)的输入?
思考题 2:如何设计该计算器应用以识别下列元素:
A. 更多的符号,比如sin函数
B. 复杂的表达式结构(上下结构),比如指数
,分数 
C. 更复杂的表达式结构(包围结构),比如平方根 
请于一星期内完成,并将自己的思考以博客的形式分享出来。
三.作业解答
思考题1:
一般在利用CNN进行识别的时候,最后是softmax或者argmax取logits最大的一类,得到推断的结果。反之我们可以说明对合法字符进行训练之后,对于合法的输入,应该是logits中某一个分量较大,其他分量较小,logits较为分散;对于不合法的输入,应该是没有哪一个logits的分量能很显著的识别出来,每个logits的值相对均衡。
所以我们可以用logits的极差或者标准差作为判断的指标,当标准差大于一定范围时,是合法输入;反之标准差较小则可能是不合法的输入。
思考题2:
考虑采用opencv直接提取生成的图像进行预处理,得到灰度图,进一步提取符号的轮廓检测得到单一字符;利用CROHME数据集训练CNN模型,进而识别每个单一字符对应的数学符号(此算法可适用于静态图片)
针对上下分数结构以及指数形式的算式;考虑在图像识别时保留其中心位置及大小;根据相对位置以及符号特性确定运算逻辑关系。例如分数符号与减号类似不宜分辨但可以根据其周围位置逻辑进行分辨。下列代码中定义一个字符的位置逻辑,根据标准字符以及LaTeX格式的通用设定共有一下八种结构,详情请见我们团队博客。
SPACIAL_RELATIONSHIP = {'including':0,'included':1,'unknown':2, 'superscript':3,'subscript':4,'up':5, 'down':6,'right':7,'left':8,'left_up':9,'left_down':10}另外在面对根号一类的问题时,可以使用分治思想;将根号内的字符作为子问题进行解决;针对根号一类符号的特点,可以将图像识别中得到的长方形轮廓作为子问题的范围。具体算法及结构可见我们的团队博客。
针对sin类似的字符组结构,我的想法是借鉴mathematica的书写逻辑强制要求sin首字母大写,在运算字符前加括号。这样通过前后逻辑可以进行识别。

浙公网安备 33010602011771号