# 基于Pytorch_Retinaface的车牌定位及关键点检测
本项目基于[Pytorch_Retinaface](https://github.com/biubug6/Pytorch_Retinaface)修改,完成车牌的定位及四个关键点检测(车牌的左上,右上,右下及左下角点),以此通过透视变换完成车牌的对齐,可使用mobilenet0.25或resnet50作为骨干网络进行实现。
本项目已集成TensorRT部署方案,训练后的Retinaface模型可部署在C++的TensorRT环境下,实现GPU推理加速。
如果该项目对你有所帮助,点个星星吧
## 使用
说明:本项目训练用数据集格式参考widerface进行制作
### 获取工程
1. get the pro
2. Pytorch version 1.1.0+ and torchvision 0.3.0+ are needed.
3. Codes are based on Python 3
### 准备数据
该项目数据集基于widerface制作,其目录格式如下
```Shell
./data/widerface/
train/
images/
label.txt
val/
images/
wider_val.txt
```
train为训练数据文件夹,val为验证数据文件夹,文件夹下images目录放入图像数据,txt文件为标签数据
txt标签格式如下:
```Shell
# [image name]
x y w h x1 y1 0.0 x2 y2 0.0 x3 y3 0.0 x4 y4 0.0
```
每张图像数据占两行,第一行标识图像文件命,第二行(x,y)为车牌检测框左上角坐标,(w,h)为车牌检测框的宽,高。(x1,y1)-(x4,y4)依次表示车牌左上,右上,右下,左下四个角点的坐标
### 训练
本项目提供基于restnet50和mobilenet0.25为骨干网络的模型训练。这里提供原项目预训练的Mobilenet0.25模型[百度](https://pan.baidu.com/s/1ewT-Nyn7bUXWaV_0UEJfDw) 密码:mkjt。下载的模型放在``./weights``目录下。
网盘链接中的Resnet50_epoch_40.pth及mobilenet0.25_epoch_15.pth是我使用CCPD数据训练的模型,该模型训练迭代次数未完全结束,但由于训练数据量比较大,目前训练的模型已具有一定的检测效果,可直接在detect.py中进行测试。
1. 训练之前,可在 ``data/config.py and train.py``中对训练的一些参数进行修改,例如GPU数量,batch_size等参数。
2. 训练模型(例子图如下):
```Shell
CUDA_VISIBLE_DEVICES=0,1,2,3 python train.py --network resnet50 or
CUDA_VISIBLE_DEVICES=0 python train.py --network mobile0.25
```
3. 模型将保存在``./weights``下
### 测试
```Shell
python detect.py --trained_model [weight_file] \
--network [mobile0.25 or resnet50] \
--input [path to test_image]
```
其他输入参数具体查看``./detect.py``,检测结果保存到``./res.jpg``
<p align="center"><img src="res/rest1.jpg" width="570"\></p>
<p align="center"><img src="res/res2.jpg" width="570"\></p>
<p align="center"><img src="res/res3.jpg" width="570"\></p>
### TensorRT
本项目根据[TensorRT](https://github.com/wang-xinyu/tensorrtx/tree/master/retinaface)工程对retinaFace的TensorRT部署代码进行修改,使该工程能为车牌任务服务。
具体流程:
```Shell
#执行detect.py后,将生成retinaface.pth 文件,使用该模型参数文件生成wts文件
python genwts.py
#生成retinafacePlate.wts文件
mv retinafacePlate.wts ./trt #将生成的wts文件移入TensorRT工程目录
cd ./trt #进入TensorRT工程目录
#编辑CMakeLists.txt,配置TensorRT路径
mkdir build && cd build
cmake ../ && make -j8 #编译工程
./retina_mnet -s #根据wts文件生成engine文件
./retina_mnet -d #执行engine文件,加载并测试当前目录下test.jpg,输出检测结果图像
```
目前该项目仅修改了基于MobileNet的Retinaface部署代码,大家多多Star。后续会更新ResNet50的
没有合适的资源?快使用搜索试试~ 我知道了~
算法部署-使用TensorRT+Retinaface实现车牌关键点检测算法-优质算法部署项目实战.zip
共36个文件
py:20个
jpg:6个
cpp:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 161 浏览量
2024-03-06
09:14:08
上传
评论
收藏 434KB ZIP 举报
温馨提示
算法部署_使用TensorRT+Retinaface实现车牌关键点检测算法_优质算法部署项目实战
资源推荐
资源详情
资源评论
收起资源包目录
算法部署_使用TensorRT+Retinaface实现车牌关键点检测算法_优质算法部署项目实战.zip (36个子文件)
算法部署_使用TensorRT+Retinaface实现车牌关键点检测算法_优质算法部署项目实战
trt
decode.cu 9KB
CMakeLists.txt 2KB
logging.h 16KB
retina_mnet.cpp 19KB
common.hpp 7KB
calibrator.h 1KB
decode.h 4KB
calibrator.cpp 3KB
retina_r50.cpp 19KB
layers
__init__.py 48B
modules
__init__.py 68B
multibox_loss.py 5KB
functions
prior_box.py 1KB
data
data_augment.py 7KB
__init__.py 112B
wider_face.py 3KB
config.py 929B
utils
__init__.py 1B
nms
__init__.py 1B
py_cpu_nms.py 1KB
box_utils.py 13KB
timer.py 1KB
genwts.py 993B
res
test1.jpg 36KB
test.jpg 107KB
test3.jpg 82KB
res3.jpg 82KB
rest1.jpg 36KB
res2.jpg 107KB
models
__init__.py 1B
retinaface.py 5KB
net.py 4KB
detect.py 6KB
convert_to_onnx.py 3KB
train.py 6KB
README.md 4KB
共 36 条
- 1
资源评论
极智视界
- 粉丝: 2w+
- 资源: 1593
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功