Skip to content

This repository is used to convert .pt file format to .rknn file format.

Notifications You must be signed in to change notification settings

zhang-jiaqi-1207/plate-detect-pt2rk

Repository files navigation

项目简介

该项目尝试利用rknn-toolkit2提供的工具链,在x86-64的电脑端将.pt格式的权重文件转换为rknn格式,以便于在Rockchip相关NPU上进行部署。该项目所使用的车牌识别代码使用pytorch进行编写。

项目目录介绍

  • models/plate_recognition/以及utils/文件夹,是项目辅助函数以及相关模型代码的存放目录。

    • model/文件夹为仿照yolov5目标检测,改写的车牌检测部分代码。
    • plate_recognition/文件夹为车牌识别部分代码,依赖于前述的车牌检测。
    • utils/文件夹下为辅助函数。其中post_process.py中提供了一些后处理所需要的函数。
  • fonts/以及imgs/中为所需的资源目录。

    • fonts/提供了最终标注车牌所需要的字体文件。
    • imgs/提供了一些照片信息以供测试。
  • weights/下存放有plate_detect.pt以及plate_rec_color.pth权重文件。

    • plate_detect.pt为车牌检测网络的权重文件,参考了yolov5。
    • plate_rec_color.pth为车牌识别网络的权重文件,主要针对前一阶段检测出的车牌区域进行识别,获取车牌信息。
    • 本项目便是尝试将plate_detect.pt转换为rknn格式进行部署。
  • checks/check_preds.py主要是获得onnx推理结果与rknn推理结果的余弦相似度。

  • figure/中为README.md文件所需要的资源文件。

  • 结果存放目录preds/以及results/未给出,可以在执行代码前在当前路径下新建。

运行说明

  • 在正确安装rknn-toolkit2之后,便可以通过python3 run_simulate.py命令相关任务。

    • 应当注意QUANTIZE_ON参数值,以确定RKNN模型是fp16数据格式或者是asymmetric-int8格式。

    • inference部分,给出了对比.pt.onnx以及.rknn推理结果的代码,可根据需要进行注释或取消注释。

    • 如果export_rknn()未被注释,则会将构建的RKNN模型导出并保存于.rknn文件之中。.rknn文件路径可以通过函数的输入参数指定。

    • 如果accuracy_analysis()未被注释,则会对量化结果进行分析,并将结果快照信息输出于snapshot/文件中。

  • 如果想将plate_detect.pt转换成plate_detect.onnx文件,可以通过执行python3 export.py --weights ./weights/plate-detect.pt命令完成转换。转换的结果保存于weights/下。

  • 如果想获得推理结果的余弦相似度,可以执行python3 checks/check_preds.py

运行结果

  • 运行环境

    • PC端:WSL on Windows 10 (Linux发行版为Ubuntu 22.04)
    • rknn所需要的python环境:参见rknn-toolkit2相关文件说明。
  • 执行rknn转换代码,并进行仿真器推理。

执行截图

  • 识别结果展示 (原图,pytorch,onnx以及rknn)

识别结果

About

This repository is used to convert .pt file format to .rknn file format.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages