Instance Python appelant l'API Baidu pour réaliser la reconnaissance des plaques d'immatriculation

1. À propos de l'auteur

Wang Shihao, homme, École d'information électronique, Université polytechnique de Xi'an, étudiant diplômé 2020, Groupe de recherche sur l'intelligence artificielle de Zhang Hongwei.
Direction de recherche : vision artificielle et intelligence artificielle.
Courriel : [email protected]

2. Introduction à l'API de reconnaissance de plaque d'immatriculation

Soutenir l'identification des plaques bleues, des plaques jaunes (simples et doubles lignes), des plaques vertes, des grandes nouvelles énergies (jaune et verte), des plaques d'immatriculation des consulats, des plaques de police, des plaques de police armée (simples et doubles lignes), des plaques militaires (simples et lignes doubles), le numéro régional et le numéro de plaque d'immatriculation des plaques d'immatriculation d'entrée et de sortie de Hong Kong et de Macao, des plaques d'immatriculation agricoles et des plaques d'immatriculation de l'aviation civile, et peuvent identifier plusieurs plaques d'immatriculation dans l'image en même temps.

3. Processus de mise en œuvre

3.1 API d'appel

Ouvrez d'abord le site Web officiel de Baidu Smart Cloud pour vous inscrire et vous connecter.
insérez la description de l'image ici
Une fois connecté, sélectionnez le service de reconnaissance de texte
insérez la description de l'image ici
pour créer une application
insérez la description de l'image ici
, puis entrez le nom de l'application, la description et sélectionnez le type d'application comme personnel, puis cliquez sur le bouton "Créer maintenant".
insérez la description de l'image ici
Après être revenu à la liste des applications, vous pouvez voir l'application de reconnaissance de plaque d'immatriculation qui a été créée. La clé API et la clé secrète sont affichées ici, qui seront utilisées ultérieurement dans le programme.
insérez la description de l'image ici

Remarque : La version gratuite de l'API de reconnaissance de plaque d'immatriculation Baidu Smart Cloud fournit 200 appels gratuits par jour, et les appels suivants échoueront. Il est recommandé de conserver correctement la clé API et la clé secrète.

Une fois l'application créée, ouvrez le document d'interface https://ai.baidu.com/ai-doc/OCR/ck3h7y191 pour obtenir les informations utiles suivantes.
URL de la demande : https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate
Format d'en-tête : Content-Type : application/x-www-form-urlencoded
insérez la description de l'image ici

3.2 Code

Avant d'utiliser l'exemple de code, n'oubliez pas de remplacer l'adresse et la clé de l'image d'exemple.

# -*- coding: utf-8 -*-
import urllib
import urllib.parse
import urllib.request
import base64
import json

# client_id 为官网获取的API Key, client_secret 为官网获取的Secret Key,将自己应用的Key分别复制在下方即可。
client_id = '*********'
client_secret = '********'

# 获取token
def get_token():
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret
    request = urllib.request.Request(host)
    request.add_header('Content-Type', 'application/json; charset=UTF-8')
    response = urllib.request.urlopen(request)
    token_content = response.read()
    if token_content:
        token_info = json.loads(token_content.decode("utf-8"))
        token_key = token_info['access_token']
    return token_key

# 读取图片
def get_file_content(filePath):
    with open(filePath, 'rb') as fp:
        return fp.read()
        
# 获取车牌号信息
def get_license_plate(path):
    request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate"

    f = get_file_content(path)
    access_token = get_token()
    img = base64.b64encode(f)
    params = {
    
    "custom_lib": False, "image": img}
    params = urllib.parse.urlencode(params).encode('utf-8')
    request_url = request_url + "?access_token=" + access_token
    request = urllib.request.Request(url=request_url, data=params)
    request.add_header('Content-Type', 'application/x-www-form-urlencoded')
    response = urllib.request.urlopen(request)
    content = response.read()
    # print("json类型下的返回值:", content)
    if content:
        license_plates = json.loads(content.decode("utf-8"))
        # print("utf-8解码并转化为python类型下的返回值:", license_plates)
        strover = '识别结果:'
        words_result = license_plates['words_result']
        # print("python类型下的返回值:", words_result)
        number = words_result['number']
        strover += '  车牌号:{} \n '.format(number)
        print(strover)
        return content
    else:
        return ''
# 读取图片,自行保存图片,更改路径即可。
image_path = 'D:\桌面\chepai.jpg'
# image_path = 'C:/Users/Wong/chepai.jpg'
# image_path = r'C:\Users\Wong\chepai.jpg'
get_license_plate(image_path)

Localisez le dossier où se trouve le fichier du programme de reconnaissance de la plaque d'immatriculation sous le terminal PyCharm ou Windows, et exécutez le programme pour le reconnaître.
insérez la description de l'image ici

faire référence à

Documentation de l'API Baidu Cloud
https://cloud.baidu.com/doc/OCR/index.htmlBaidu
Intelligent Cloud License Plate Recognition
https://cloud.baidu.com/doc/OCR/s/ck3h7y191
Appelez l'API de reconnaissance de plaque d'immatriculation de Baidu
https ://cloud.baidu.com/doc/OCR/s/ck3h7y191 ://blog.csdn.net/u011622208/article/details/102999991Qu'est-ce qu'un
jeton
https://www.jianshu.com/p/24825a2683e6

Je suppose que tu aimes

Origine blog.csdn.net/m0_37758063/article/details/116571433
conseillé
Classement