课题用到了车牌识别,因为C++不会,听说上手比较困难,干脆用了Python做一个原型,编程实现比较快。但是,问题来了,图像处理方面C++是完美工具,大多API、资料都是C++编写的,python的真的是太少了。
终于,还是找到了一个,调用很简单,实现结果也很不错。下面上资料。
-----------------------------------------------------------------------------------------------------------------
一、车辆识别代码下载路径(来源:github)
https://github.com/zeusees/HyperLPR
二、调用方式
1、调用pipline版本
在程序最外层新建一个.py文件
recognize_plate.py内容如下:
from program_version2.LPR_cite.hyperlpr import pipline as pp
import cv2
def recognize_plate_my(image):
'''
调用车牌检测方法识别车牌,写此方法,供main函数调用
:param image: 传入的图片,只需要识别出车牌即可
:return:
'''
# image = cv2.imread("包含车牌图像的路径")
# image=cv2.imread(filename)
image, res = pp.SimpleRecognizePlate(image)
print(res)
return res
在其他程序中直接调用该方法,传入包含车牌的图像即可。
2、调用e2e版本
只需要将recognize_plate.py文件中的内容改为下面内容,其实只有调用方法变化了而已。
from program_version2.LPR_cite.hyperlpr import pipline as pp
import cv2
def recognize_plate_my(image):
'''
调用车牌检测方法识别车牌,写此方法,供main函数调用
:param image: 传入的图片,只需要识别出车牌即可
:return:
'''
# image = cv2.imread("包含车牌图像的路径")
# image=cv2.imread(filename)
image, res = pp.SimpleRecognizePlateByE2E(image)
print(res)
return res
注意:此处res返回的是一个长度为3的列表,并且车牌号好像去掉了数字,不知道为啥,我又在pp.SimpleRecognizePlateByE2E中稍作修改,只返回带汉字的车牌识别结果,完美解决问题。
(与此相关的一个教程:
https://www.jianshu.com/p/7ab673abeaae)
三、与该接口相关的技术资料(若不只是应用,想要学习如何实现的技术点,可以看看)
HyperLPR车牌识别技术算法之车牌粗定位与训练
太多资料还没有费精力去找,时间有限,先记下来,课题结束后再认真学习,同时帮助需要的小伙伴。