调用百度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"))
这是我找的一张路虎揽胜的图片
完美打印出来车辆名字
下面说一下 如何在图片上显示出识别的结果
因为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()
最后附上检测的结果图
小伙伴们快快动手试试吧!动手的过程会发现调用第三方接口的一些注意事项和解决问题。 还请大佬们轻喷