CMS智能图片管理之图片文本的识别和提取(OCR )

 

CMS对图片管理之前有介绍过,包括图库的应用,比如作品展览,还有一些业务应用,比如用户发票上传,车牌识别等,涉及到用户上传就要对图片进行审核、分类、标记,更多的包括图片的检索,这些工作人工一般要花费不少时间,那么如何智能处理呢?

本文介绍一下图片的文字识别功能OCR,全称Optical Character Recognition,翻译过来就是图像文字识别。

 

通过开源库的OCR解决方案

 

OCR文字识别的本身有很多开源方案,对于识别过程一般分为三个阶段,

  1. 文本定位检测
  2. 文字矫正
  3. 文字识别

其中第一步是最耗时的,检测文本区域,从网上找了一张图,参考一下整个流程。

 

 

 
文本定位算法主要包括 CTPN、SegLink、Textboxes/Testboxes++、EAST、LOMO、SAST、CRAFT 、Pixel embedding、SPCNet、PSENet、DBNet等,其中DBNet目前比较流行,全称 Differentiable Binarization。
 
文字识别算法目前主流的方案包括CRNN、STATR-NET、RARE、AttentionOCR等,当前比较通用的方案还是以CRNN为主。
 
所以,很多目前大多项目都采用了DBNet+CRNN为主的自主解决方案。
 
 
 

通过云服务解决方案

 

除了自建的OCR解决方案,目前比较流行的就是开源的OCR服务,使用云服务对中小企业来说都比自建好,因为一般自建的效果不一定好,另外研发、服务器等投入会非常大。

提供云服务的厂商比较多,比如腾讯、百度、阿里等,对比了几个厂商的方案和API之后,我们推荐采用阿里云和微软的Asure服务。

 

阿里云文字识别的优势

  • 功能强大,支持各种格式,比如发票、身份证、护照、表格、单据等等
  • 收费方便,按次收费,比如发票识别一万次一千多块,费用不算贵
  • 对接方便,阿里云提供强大的API,有官方说明文档,有测试Demo地址方便使用
  • 中文支持,对中文天生良好的支持

阿里的测试地址:

https://duguang.aliyun.com/experience

 

 

 

微软的Azure文字识别的优势

  • 功能强大,以微软作为背书提供的服务
  • 海外支持,如果服务器在海外,微软的服务好一些,阿里云目前还没有测试是否支持海外调用
  • 中文支持,英文支持自然不必说,微软的Azure也支持中文简体,不但支持中文,也支持法语、西班牙语等多语种

微软API的测试地址: https://portal.vision.cognitive.azure.com/demo/extract-text-from-images 

 

 

基于Drupal现有解决方案

 

Drupal本身已经有了Azure API的对接,之前讲过通过Drupal的模块可以实现AI服务,包括人脸识别和文字识别,所以如果采用Drupal管理图片可以直接使用相关模块。

具体模块的介绍可以参考我们之前的文章,Drupal的AI功能模块助力网站智能化里面讲解一些Drupal的AI模块。

文本分析和语义提取模块 https://www.drupal.org/project/azure_text_analytics_api 

其中,视觉识别模块,就能实现Azure的对接,调用微软Azure云服务来完成文字识别,具体可以参考这个link 

https://www.drupal.org/project/azure_vision_api

 

 

 

这样就实现了图片的文字识别功能,当然除了对图片提取文字之外,Drupal还有很多很多对图片的管理模块,比如裁剪模块、压缩优化模块、懒加载模块、自适应模块,图片展览等等功,因此Drupal对图片的管理功能是很强大的,可以参考之前的一些介绍。

 

1. 如何基于开源系统构建图片/图库管理系统

2. CMS如何存储和管理大量图片/海量图片?

3. 如何通过开源方案自建视频课程平台

4. Drupal的AI功能模块助力网站智能化

 

参考:

Using Azure Cognitive Services to support my children with their Chinese homework

Azure 认知服务 (4) 计算机视觉API - 读取图片中的文字 (OCR)