我最近在Coursera上参加了一门机器学习课程,并以不错的成绩通过了课程。在课程中,我使用了KNN、逻辑回归、神经网络等算法,其中一项作业是编写用于数字识别的学习算法,我成功完成了这项任务。课程以一个关于Photo OCR的案例研究结束,这让我非常兴奋,但我在将课程中教授的基本算法应用于这个庞大问题时遇到了困难。那么,有人能建议我一些关于Photo OCR的算法吗?
回答:
图像识别的难点在于它对任何变化都非常敏感。人类大脑能够从图像中提取某些特征,即使图像经过了一些操作(如倾斜、旋转等),我们仍然能够识别出图像。
不过,据我所知,人工神经网络是最广泛使用的(通常加入一两个隐藏层也会有帮助)。我还听说过一种叫做Wisard(或Wizard)的技术,但找不到相关资料。这种技术基本上是将图像分成若干部分,然后在比较图像片段与知识库中的内容时,获得一个相似度的百分比。
不过,如果我是你,我会坚持使用神经网络,再加上一个像OpenCV这样不错的图形处理库(有各种包装器,包括Java和C#)。目标是尽可能消除不必要的信息。例如,在某些情况下,将图像转换为灰度或严格的黑白像素会有所帮助。