由于自己手动标注车牌号工作量很大,想偷懒省个事,所以写了个简单的程序实现自动标注,利用了百度开放的API,需要先去官网获取API Key和Secret Key,获取的方式请参考:https://ai.baidu.com/forum/topic/show/943028 代码如下: 运行的效果图如下: 但是有几点需要注意: 下图是我使用自己标注并训练好的u-net网络进行的图像语义分割效果图,通过u-net将原图进行图像分割后,再利用cv2库进行边缘检测,从而实现车牌的精准定位。其中第1张和第2张都是上面利用百度AI识别时未能识别的图片,同时第3和第4张图即使车辆本身是蓝色也成功的定位,而且2张车牌都有检测到,我自己本地随机找了一些未训练过的图片还有自己随机拍摄的图片进行测试,测试结果也是十分准确,这说明模型的定位准确率是很高的。关于车牌的矫正部分也是利用cv2库,矫正效果也很不错。 通过以上操作,实现车牌标注还是蛮方便的,主要是对后续车牌识别可以有很大帮助,后续有时间还会写一下关于u-net图像分割的文章以及定位后进行端到端车牌识别的文章,暂时先到这吧。。。 最后大家如果有什么意见建议也可以提出了,欢迎交流,谢谢支持!
#encoding:utf-8 import requests import cv2 import numpy as np import json import base64 import os def get_token(client_id,client_secret): host='https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + client_id + '&client_secret=' + client_secret res=requests.get(host,headers=headers).text res=json.loads(res) return res['access_token'] def get_license_plate(access_token,i): url= "https://aip.baidubce.com/rest/2.0/ocr/v1/license_plate?access_token="+access_token #img=cv2.imread(img_path) img= cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), -1)#从中文路径读取时用 with open(img_path,'rb') as f: image_binary=f.read() image_encode=base64.b64encode(image_binary)#image需要进行base64加密 # print(image_encode) postdata={'image':image_encode, 'multi_detect': 'false'} respond=requests.post(url,data=postdata,headers=headers).text#发送post请求获取车牌信息 words_result=json.loads(respond,encoding='utf-8') print(words_result) if 'words_result' in words_result.keys(): number=words_result['words_result']['number'] print(number) # cv2.imwrite(save_path+number+'.png',img) cv2.imencode('.png',img)[1].tofile(save_dir+number+'.png') else: print('%s未识别'%name) cv2.imencode('.png',img)[1].tofile(save_dir+name) if __name__ == '__main__': client_id='xxxxxxxx'#API Key 获取方式参考链接 https://ai.baidu.com/forum/topic/show/943028 client_secret='xxxxxxxxx'#Secret Key 获取方式参考链接 https://ai.baidu.com/forum/topic/show/943028 headers={'user-agent':"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"} access_token=get_token(client_id,client_secret) img_dir="D:/Desktop/car/"#你需要标注的图片的路径 img_name=os.listdir(img_dir) save_dir='D:/desktop/car_name/'#保存的路径 for name in img_name: img_path=img_dir+name get_license_plate(access_token,name)
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算