最近在用google开源的object_detection做车牌检测系统,在此记录一下整个流程,期间踩过不少坑,也一并分享给各位。
一:环境配置:
Python:3.6.2版本
Tensorflow cpu版本:1.12.0
Anaconda:5.0.0
二;、下载object_detection API
网址:https://github.com/tensorflow/models
点击Clone or download,再点击Download ZIP,下载完成后,解压得到models-master文件夹,放到jupyter notebook工作路径里。
三:配置protobufs
网址:https://github.com/protocolbuffers/protobuf/releases,
object_detection API使用protobufs来配置模型和训练参数,这将其编译成.py文件些文件以“.proto”的扩展名放在 models-master/research/object_detection/protos下,
在使用框架之前,必须使用protobuf库将其编译成.py文件。
点击protoc-3.6.1-win32-zip自动下载,下载完成后解压,将解压后的bin文件夹下的protoc.exe放到models-master/research路径下,打开Anaconda Prompt,定位到research路径下,输入
protoc object_detection/protos/*.proto --python_out=.
这时可能会报错,因为windows命令不支持正则匹配,这时你可以将*.proto改成具体的,proto文件名一条一条执行,但是在linux系统中可以执行上面的命令,只不过应该下载相应的linux版本的protoc了。
四、检测API是否正常
1、将models-master/research/slim中的nets文件夹复制出来放到models/research下
2、将models-master/research/object_detection/builders下的model_builder_test.py复制到models-master/research下
3、将objetc_detection文件夹和nets文件夹都复制到D:/Anaconda3/Lib/site-packages下,注意D:/Anaconda3是我安装Anaconda的路径。
打开Anaconda Prompt,定位到research所在的文件夹,输入python model_builder_test.py,如果出现OK,那么API已经配置成功。
五、制作车牌的数据集
首先在网上爬取车牌图片,如图所示
使用 Labellmg这款软件对图片进行打标签,框出其中的车牌,下载最新版本的Windows_v1.8.0,解压运行如下:
点击Create RectBox,框出车牌,并在labellmg里填上要标注的图片的名称,我写的是plate,点击ok保存,再继续后面的打标签。
这样就完成了车牌的数据集,当然应该将数据集分成训练集和测试集以便后面的操作。