OCR 图像识别(一)
OCR 概念
import Modelarts.session # Python & ModelArts
当我们在讨论人工智能时我们在讨论什么。通过智能机械化完成对琐碎重复工作的代替又或者模拟人脑进行思考神经网络的层层结构成为深度学习的黑匣子成为机器用来思考的大脑那么OCR便如人的眼睛“阅读”这个世界。
what
OCR光学字符识别作为计算机视觉领域的一个重要分支是计算机通过使用特定的算法识别出一张图片中包含的字符并转存为文本形式的过程。自从1929年Tausheck取的光学字符识别Optional Character Recognition专利OCR逐渐成为图像识别领域的关键内容并且广泛应用。
将摄像设备和计算机拟作人眼OCR令计算机拥有类似于人类的文字检测识别功能在生活中有广泛的应用例如证件信息的自动录入残疾人的辅助阅读违禁词的过滤等等。经历了几十年发展之后的OCR技术日益成熟不仅仅局限于对印刷体字符的支持其使用领域已经延伸到不同的语言以及更加复杂的场景。
why
设想我们想要机器完成阅读任务首先完成的便是寻找“眼睛”它可以看到文字将图片中的文字识别出来。识别出来之后我们可以通过NLP等方式将内容进行解析和理解完成阅读任务。那么OCR便是机器的眼镜识别的过程可以分为找到文字以及认识文字。
how
找到文字的过程我们成为文字区域检测。OCR尤其是深度学习下的OCR面临的场景已经不是扫描PDF等单纯的纯文字图片。文字可能包含在图片的某个部分例如街景中的指示牌标记我们通过阅读指示牌知道周围的道路名称我们不能将“眼睛”凑近近到只能看到指示牌同时我们还需要看到道路我们也不能将整张图片都作为文字进行分析因为栅栏窗户车辆与汉字的相似度会大大降低识别效果。那么这时我们需要的是识别出来哪部分是文字区域哪部分是非文字区域。
与文字区域检测类似的物体检测。将不同的物体例如将猫狗台灯沙发从一张卧室照片中识别出来似乎是同样的道理我们将文字区域检测出来。但与物体检测不同的是1文字是整齐的虽然字体大小可能不同但是成段文字一定是整齐排列的2文字没有准确的边界而且可能有单个文字艺术字等等边界更加不清晰3语言种类繁多语言之间差异性很大。我们在这里只考虑汉字识别和英文识别。所以我们可以借助文字整齐排列的特性进行anchor的计算。对训练和识别的过程宽容有耐心毕竟很多时候人眼看个易拉罐的盖子都很像个囧字。
当我们检测到文字区域之后开始对文字区域中的单字进行识别。这时候用到的类似是深度学习中的分类英文分26个字母个类别中文分3500+个常用字个类别#%#@。在传统的机器学习识别时代对单字的模式进行匹配就可以计算出具体的单字深度学习通过神经网络进行分类比较机器学习对环境的适应性更高。
material
https://github.com/chineseocr/chineseocr/
Tesseract
接下来会有两篇独立的文章分别进行文字区域检测和字符识别领域各种模型的讲解这里我们只描述整体OCR。
* 说得絮叨 希望无门槛理解OCR 欢迎留言讨论 ****
- 点赞
- 收藏
- 关注作者
评论(0)