因为项目上需要识别QR码与DataMatrix码,在这里记录一下基于深度学习的二维码识别效果。
一、编译darknet
这里我采用的是AlexeyAB的版本
https://github.com/AlexeyAB/darknet
安装文件版本
cudnn-10.2-windows10-x64-v8.1.0.77
1、安装CUDA与cuDNN
CUDA根据安装提示安装不作修改,cuDNN按照教程将以下文件拷贝到下面的路径
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2
2、配置OpenCV
系统环境变量添加 OpenCV_DIR = D:\opencv420\build(添加你自己的安装路径)并在Path中添加 D:\opencv420\build\x64\vc15\bin
3、用cmake编译darknet
我的VS版本是2015版本,所以选择Visual Studio 14 2015,选好后点击“Configure”直到没有红色提示,点击“Generate”就完成了编译。
编译之前需要修改Makefile文件(由于我的电脑不支持CUDNN_HALF所以没修改)
接着打开编译好的darknet.sln选择X64平台点击生成就会在Release目录下生成darknet.exe文件
二、训练模型文件
1、用labelImg标注数据
2、准备配置文件
.data文件包含类别数量与文件路径信息
我标注了QR与DataMatrix所以classes是2类
train.txt与val.txt分别是用于训练的数据和校验的数据
.names文件包含了类别名称
yolov3-tiny.cfg文件在已有的基础上修改,主要有以下几项
[yolo]修改,由于我使用的是tiny.cfg所以只有两处需要修改,修改项为filters与classes
3、下载预训练文件开始训练
.\darknet.exe detector train data/detect.data cfg/yolov3-detect-tiny.cfg yolov3-tiny.conv.11 -map
在此之前需要将darknet.exe以及一些文件放到
D:\darknet-master\build\darknet\x64下
cudnn64_8.dll
opencv_world420.dll
opencv_videoio_ffmpeg420_64.dll
三、效果及模型文件
资源下载