python调用百度AI平台做简单的图片识别功能

这样做的缘由

工作需要把100多张图片中的文字(主要是车牌号)提取出来,并作为文件名字。用python从头到尾写车牌识别的功能,耗时耗力。故在网上寻找可用于直接图片文字识别的接口直接调用,省时省力。

用百度AI平台接口的理由

有百度经验提供每一步的参考,且通用文字识别(高精度版)的功能每天有500次的免费试用机会,且当前功能没有并发需求。故非常适合达到临时目的。

具体步骤

  1. 用百度账号登录百度AI开放平台:https://login.bce.baidu.com
  2. 选择要使用的接口:人工智能->文字识别。
  3. 点击创建应用,获取App ID、API key、Secret Key,记下来。
  4. 阅读技术文档,知晓接口的参数和返回值等信息:https://cloud.baidu.com/doc/OCR/s/Fjwvxzxgv
  5. 用pip install baidu-aip安装OCR Python SDK。
  6. 参照Python-SDK文档,修改成自己想要的效果:
from aip import AipOcr
import re
import os

APP_ID = '1*****'
API_KEY = 'U*************************'
SECRET_KEY = '0********************************'

client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

#把读出的文字内容统一保存在一个txt文档里
f = open(r'E:\work\filename\plateread.txt','w')

#保存了待识别图片的路径
PlatePath = r'E:\work\pic'

#按顺序识别出图片,并把图片文件名改成“识别出的文字.jpg”的格式
for Dir in os.listdir(PlatePath):
    srcDir = os.path.join(PlatePath,Dir)
    print(srcDir)
    fsrc = open(srcDir,'rb')
    
    img = fsrc.read()

    message = client.basicAccurate(img)

    for results in message.get('words_result'):
        name = results.get('words')
        print(name)
        f.write(name)
        dstDir = os.path.join(r'E:\work\pic',name) + '.jpg'
        print(dstDir)
        fsrc.close()
        os.rename(srcDir, dstDir)

f.close()

你可能感兴趣的:(Python)