本文来自AI新媒体量子位(QbitAI)
一年多以前我脑子一热,想做一款移动应用:一款给学生朋友用的“错题集”应用,可以将错题拍照,记录图像的同时,还能自动分类。比如拍个题目,应用会把它自动分类为”物理/力学/曲线运动”。
当然,这个项目其实不靠谱,市场上已经有太多“搜题”类应用了。但过程很有趣,导致我过了一年多,清理磁盘垃圾时,还舍不得删掉这个项目的“成果”,所以干脆回收利用一下,写篇文章圈圈粉。
源码地址:
https://github.com/caoym/odr
这个项目,核心要解决的问题就是文本分类。所以最初想到的方案是先 OCR 图片转文本,然后分词,再计算 tf-idf,最后用 SVM 分类。但这个方案的问题是:开源 OCR 普遍需要自己训练,且需要做大量的优化、调校和训练,才能在中文识别上有不错的效果,加上图像上还会有公式、几何图形,这些特征也会决定分类,这又提高了对 OCR 的要求。
所以我最终选择的方案是,不使用 OCR,而是直接从图像中寻找有区分性的、鲁棒的特征,作为视觉词汇。之后再通过传统文本分类的方法,训练分类器。
下面将展示整个训练过程,训练的样本来自《2016 B版 5年高考3年模拟:高考理数》,并手工标注了14个分类,每个分类下约50个样本,每个样本为一个题目, 图像为手机拍摄。
样本数据下载地址:
https://github.com/caoym/odr
测试集上正确率81%,召回率 78%。个别分类正确率较低,可能是因为样本数太少,另外训练过程大多使用默认参数,若进行细致调校,应该还有提高空间。
5. 结束
此项目完整代码及样本数据均可下载,地址为:
https://github.com/caoym/odr
任何想在实际项目中使用此方法的朋友请注意,以上方法目前只在一个样本库中测试过,在其他样本库中表现如何还不知道,但愿没把你带坑里。
点击左下角“阅读原文”,可解锁更多作者的文章
还可以直接参与讨论~
量子位特约稿件,转载请联系原作者。
— 完 —
本文作者:曹阳敏
原文发布时间:2017-09-23