Use Baidu cloud interface plate recognition · python

A small demand --- license plate recognition.

There are two ideas

1. Bring Cloud-line interface or use the SDK to do development (environment and configure third-party libraries to compile a lot of trouble, of course, these problems can be avoided using python)

2. realize his license plate recognition algorithms (complex)


 Baidu cloud began to prepare a text recognition using C ++ SDK to do, find it necessary to prepare curl, jsoncpp and OpenCV, and curl and jsoncpp need to compile a lot of trouble, so switching to a python to do, really smooth and simple.

1. Install the python environment (I use python3.7)

Download python official website: https://www.python.org/downloads/release/python-374/  proposal directly download and install version installer (see the system and the number of bits)

 

Open the installation package can be installed without the brain. After installing, see if the installation was successful.

cmd

python --version

2. Baidu Cloud SDK to create applications to download and install

Reference https://cloud.baidu.com/doc/OCR/s/pjwvxzmtc documentation, installation python SDK

View pip version (python own environment, but be aware version)

pip --version

If the version is not appropriate, then the upgrade itself pip

pip install -U pip

AnSo baidu-aip

pip install baidu-aip

(Looks like a successful installation)

Now we are on the Baidu Cloud SDK installed, down to create applications

Login Baidu Cloud (account registration did not look)

Creating an application

Fill out their own 

 Now we have created a license plate recognition application, click the application list to view.

Here APPID, API KEY, Secret Key to be used in your code. (Be careful not to leak)

3. code modulation interface, demand

python code implementation

 1 '''
 2 Statement
 3 1. using the file
 4 2. prepare a image path and call func "get_license_plate(filePath)"
 5 3. you can get a json object
 6 4. get the info from the pbject
 7 example : 
 8 {
 9     "log_id": 3583925545,
10     "words_result": {
11         "color": "blue",
12         "number": "苏HS7766"
13     }
14 }
15 '''
16 
17 from aip import AipOcr
18 import json
19 
20 """get img"""
21 def get_file_content(filePath):
22     with open(filePath, 'rb') as fp:
23         return fp.read()
24 
25 """ get licsense plate """
26 def get_license_plate(filePath):
27     """ APPID AK SK """
28     APP_ID = '********'
29     API_KEY = '**************'
30     SECRET_KEY = '******************'
31 
32     """ create client """
33     client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
34 
35     image = get_file_content(filePath)
36 
37     """ 调用车牌识别 """
38     res = client.licensePlate(image)
39     return res
40 
41 
42 """ call example """
43 str = 'C:\\Users\\***\\Desktop\\big.jpg' """ 照片绝对地址 """
44 res = get_license_plate(str)
45 print('车牌号码:' + res['words_result']['number'])
46 print('车牌颜色:' + res['words_result']['color'])

代码分解

引入库

from aip import AipOcr """百度云SDK"""
import json """json库"""

创建客户端

""" APPID AK SK 自己创建的应用中的数据"""
APP_ID = '*******'
API_KEY = '***************'
SECRET_KEY = '******************'

""" create client """
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

调用接口得到车牌识别结果

image = get_file_content(filePath)

""" 调用车牌识别 """
res = client.licensePlate(image)

这里的res是一个json对象/一个dict

例子

{
    "log_id": 3583925545,
    "words_result": {
        "color": "blue",
        "number": "苏HS7766"
    }
}

可以使用res['listname']['listname']形式获取字典数据

print('车牌号码:' + res['words_result']['number'])
print('车牌颜色:' + res['words_result']['color'])

至此,我们就实现了使用百度云SDK,通过编写python代码调用接口的车牌识别需求。

参考文档

【1】百度云API文档:https://cloud.baidu.com/doc/OCR/s/pjwvxzmtc/

【2】python pip安装与使用:https://www.runoob.com/w3cnote/python-pip-install-usage.html

【3】python官网:https://www.python.org/downloads/release/python-374/

Guess you like

Origin www.cnblogs.com/yocichen/p/11621781.html