调用百度API 实现车型识别

调用百度API 走了很多坑。。。

首先去百度AI开放平台 百度AI开放平台-全球领先的人工智能服务平台   进行注册  百度智能云  进行认证 不进行认证  不能使用api 。

APP_ID = ''       """ 这里为百度智能云给自己的密钥 """
API_KEY = ''
SECRET_KEY = ''

然后使用下面的代码进行base64 格式的转换

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

下面试一试它的识别效果

首先,是直接在终端打印看识别的结果

使用代码

image = get_file_content('your/jpg_path')

options = {}

print("车辆识别结果为:")

print(client.carDetect(image,options={"top_num": 5}).get('result')[0].get("name"))

这是我找的一张路虎揽胜的图片

调用百度API 实现车型识别_第1张图片

完美打印出来车辆名字

调用百度API 实现车型识别_第2张图片

下面说一下 如何在图片上显示出识别的结果

导入的库如下
 

因为cv 不能在图片上显示中文 ,因此我们要进行格式的转换。

首先是opencv 读取图片

img=cv2.imread('your/jpg_path')
cv2img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) 

# 转换为 PIL格式的图片 
pilimg = Image.fromarray(cv2img)

 然后是在 PIL图片上打印汉字

draw = ImageDraw.Draw(pilimg)  

font = ImageFont.truetype("./simhei.ttf", 20, encoding="utf-8")  

draw.text((0, 20), '车型为:%s 车身颜色为:%s'%(client.carDetect(image,options={"top_num": 1}).get('result')[0].get('name'),client.carDetect(image,options={"top_num": 1}).get('color_result')), (0, 0, 255), font=font)  

 最后PIL图片转换回cv格式

cv2cimg = cv2.cvtColor(np.array(pilimg), cv2.COLOR_RGB2BGR)

显示结果

cv2.imshow("car", cv2cimg)

cv2.waitKey(0)

cv2.destroyAllWindows()

最后附上检测的结果图

 小伙伴们快快动手试试吧!动手的过程会发现调用第三方接口的一些注意事项和解决问题。  还请大佬们轻喷

你可能感兴趣的:(百度,opencv)