百度OCR图片内容识别 - Go语言中文社区

百度OCR图片内容识别


目录

前言:

一、效果图

二、百度OCR API申请

三、源码

四、注意点

五、总结


前言:

    昨天一个朋友需要将手机拍摄的excel表(人员花名册)内容识别出来重新变成电子档excel需求,朋友下了多个OCR软件,效果都不理想。我网上找了几个大厂的OCR在线API接口,大多需购买,但百度很良心(非广告),于是搬用“拿来主义”试一试。将操作过程博文记录。


一、效果图

二、百度OCR API申请

入口链接:https://cloud.baidu.com/product/ocr/general?_=1616566711496

操作教程:https://cloud.baidu.com/doc/OCR/s/dk3iqnq51

注册登录后,根据需要创建文字识别应用,填入必填信息,记住AppID、API Key、Secret Key

三、源码

百度OCR API文档:https://cloud.baidu.com/doc/OCR/index.html

如下是python版代码:

from aip import AipOcr
import re

""" 你的 APPID AK SK """
APP_ID = 'XXXXXX'
API_KEY = 'XXXXXX'
SECRET_KEY = 'XXXXXX'


# """ 调用表格文字识别 """
# client.tableRecognitionAsync(image)

def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()


def is_number(s):
    try:
        float(s)
        return True
    except ValueError:
        pass

    try:
        import unicodedata
        unicodedata.numeric(s)
        return True
    except (TypeError, ValueError):
        pass

    return False


def main():
    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
    # 识别参数
    options = {}
    options["language_type"] = "CHN_ENG"
    options["detect_direction"] = "true"
    options["detect_language"] = "true"
    options["probability"] = "false"

    # 本地图片识别
    image = get_file_content('test.png')
    result = client.basicGeneral(image, options)

    # 网络图片识别
    #url = "http://www.xxxxxx.com/download.jpg"
    #result = client.basicGeneralUrl(url, options)
    print('**********原始内容:n')
    print(result['words_result'])
    print('nn**********格式化处理后内容(去掉words关键字,如果遇到纯数字换行处理):n')
    info = result['words_result']
    for item in info:
        for k, v in item.items():
            print('内容: ', v)
            if is_number(v):
                print('n')


if __name__ == '__main__':
    main()

四、注意点

因朋友花名册信息敏感,本博文测试图片为网络截取一段话,识别效果不错。但昨天测试的拍摄图片识别效果不甚理想,记录如下:

1、表格信息内容识别结果经常截断不全。

2、有的列合并在了一起,如花名册为7列的表格,有的行记录识别后变成了4列,有的行记录变成了6列,毫无规律,但因为最后一列数据为手机号,所以代码中处理到纯数字时会换行,与其他行信息区分开。

3、图片的大小有要求。开始识别准确率不是很好,发现朋友发过来原图只有几百K,重新拍摄高清图(4M大小左右)后,API无法识别。需注意对图片的要求,如下图:

五、总结

OCR对于标准类信息(如身份证、车牌或某些票据类)识别准确率高,但对于个性化需求,识别效果不是很理想。

 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/u012424148/article/details/115175920
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-06-14 17:33:03
  • 阅读 ( 1315 )
  • 分类:职场

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢