电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
创作
电子发烧友网>电子资料下载>电子资料>使用Vitis-AI进行车牌识别

使用Vitis-AI进行车牌识别

2023-06-27 | zip | 0.00 MB | 次下载 | 2积分

资料介绍

描述

介绍

Xilinx Model Zoo 包含许多预构建的卷积神经网络模型。

该项目利用了其中几个模型,以实现用于车牌识别的多推理应用程序。

  • 车辆检测ssd_traffic
  • 车牌检测:platedetect
  • 牌照号码识别:platenum
pYYBAGNy7SGAIzeBAAAeV4SGzIg907.png
车牌识别 - 3 推理管道
 

让我们开始吧 !

第 1 步 - 创建 SD 卡

为以下 Avnet 平台提供了预构建的 Vitis-AI 1.3 SD 卡映像:

  • u96v2_sbc_base : Ultra96-V2 开发板
  • uz7ev_evcc_base:UltraZed-EV SOM (7EV) + FMC 载卡
  • uz3eg_iocc_base:UltraZed-EG SOM (3EG) + IO 载卡

可在此处找到预构建 SD 卡映像的下载链接:

下载并解压后,.img 文件可以编程到 16GB 微型 SD 卡。

0.解压压缩包得到.img文件

1. 将开发板特定的 SD 卡映像编程到 16GB(或更大)的 micro SD 卡

一个。在 Windows 机器上,使用 Balena Etcher 或 Win32DiskImager(免费开源软件)

湾。linux 机器上,使用 Balena Etcher 或使用 dd 实用程序

$ sudo dd bs=4M if=Avnet-{platform}-Vitis-AI-1-3-{date}.img of=/dev/sd{X} status=progress conv=fsync

其中 {X} 是一个小写字母,用于指定 SD 卡的设备。您可以使用“df -h”来确定您的 SD 卡对应的设备。

第 2 步 - 克隆源代码存储库

本项目中使用的源代码可以从以下存储库中获取:

如果您有活动的互联网连接,您可以简单地将存储库克隆到嵌入式平台的根目录:

$ cd ~
$ git clone https://github.com/AlbertaBeef/vitis_ai_cpp_examples

第 3 步 - 板检测示例概述

为了实现车牌识别示例,我们修改了一个现有示例platedetect ,该示例可以在以下目录中找到:

~/Vitis-AI/demo/Vitis-AI-Library/samples/platedetect

如果我们查看 test_jpeg_platedetect.cpp 源代码,我们会发现它非常小:

int main(int argc, char *argv[]) {
string model = argv[1];
return vitis::ai::main_for_jpeg_demo(
    argc, argv,
    [model] {
        return vitis::ai::PlateDetect::create(model);
    },
    process_result, 2);
}

此代码的可视化表示如下图所示:

poYBAGNy7SOAHu21AABcidEoJlY169.png
 

我们可以看到 main 函数使用了一个通用的 main_for_jpeg_demo() 函数,并向它传递了一个 PlateDetect 类的实例,该类提供了 create() 和 run() 方法,以及一个 process_result() 函数。

该示例可以使用以下命令运行:

1. 启动后,启动 dpu_sw_optimize.sh 脚本,该脚本将优化 DDR 内存的 QoS 配置

$ cd ~/dpu_sw_optimize/zynqmp
$ source ./zynqmp_dpu_optimize.sh

2. 禁用 dmesg 详细输出:

$ dmesg -D

3.使用以下参数启动platedetect应用程序:

  • 为第一个参数指定“sample_platedetect.jpg”
$ cd ~/Vitis-AI/demo/Vitis-AI-Library/samples/platedetect
$ ./test_jpeg_platedetect sample_platedetect.jpg

应用程序将在以下文件中生成输出:

  • sample_platedetect_result.jpg

在这一点上可以进行两个观察:

  • 车牌检测模型假设它处理的图像中有一个车牌(在此模型之前需要额外的车辆检测步骤)
  • platedetect 模型只提供车牌的位置,而不是它的号码(这个模型之后需要一个额外的号码识别步骤)

第 4 步 - 创建车牌识别应用程序

我们可以使用这个通用的 main_for_video_demo(),以及一个定义我们修改后的用例的自定义类,如下图所示:

poYBAGNy7SeADAaKAAB84LjShe0960.png
 

对于车牌识别示例,使用三个模型来实现 3-inference 管道:

  • 车辆检测:ssd_traffic
  • 车牌检测:platedetect
  • 牌照号码识别:platenum
pYYBAGNy7SGAIzeBAAAeV4SGzIg907.png
车牌识别 - 3 推理管道
 

下图说明了此示例的修改代码。

pYYBAGNy7SyAat5IAACx8WeU0hw102.png
 

源代码可以在以下位置找到:

~/vitis_ai_cpp_examples/platerecognition/test_jpeg_platerecognition.cpp
~/vitis_ai_cpp_examples/platerecognition/test_video_platerecognition.cpp

1. 构建车牌识别应用

$ cd ~/vitis_ai_cpp_examples/platerecognition
$ ./build.sh

2. 在图像上启动车牌识别应用程序

$ cp ~/Vitis-AI/demo/Vitis-AI-Library/samples/platedetect/sample_platedetect.jpg .
$ export PLATERECOGNITION_DEBUG=TRUE
$ ./test_jpeg_platerecognition sample_platedetect.jpg
pYYBAGNy7S6AReaeAAAtW1wh7r4890.png
./test_jpeg_platerecognition sample_platedetect.jpg
 

PLATERECOGNITION_DEBUG 环境变量,当设置为 TRUE 时,将显示 3-inference 管道生成的信息

Frame 1
   SSD : label=1 x,y,w,h=2,1,272,304 confidence=0.906937
      PlateDetect : x,y,w,h=103,257,63,21 confidence=0.99977
         PlateNum : size=288,96 color=Blue number=[jingQ2P6J2]

请注意,PlateNum 型号输出编号有两部分:

  • 地区:“京Q”(注意“jing”是京的汉语拼音)
  • 编号:“2P6J2”
poYBAGNy7TCANd_RAAAZ7y1l4vk071.png
京Q - 2P6J2
 

$ cd ~/vitis_ai_cpp_examples/platerecognition
$ export DISPLAY=:0.0
$ xrandr--output DP-1 --mode 800x600
$ unset PLATERECOGNITION_DEBUG
$ ./test_video_platerecognition./video/plate_recognition_video.mp4
./test_video_platerecognition./video/plate_recognition_video.mp4
 

已知限制

本项目中实施的车牌识别适用于亚洲车牌。为了支持其他地区的车牌,还需要做额外的工作。

你会如何解决这个问题?

  • 你会用当地车牌的图像重新训练模型吗?
  • 你会使用不同的技术吗?

结论

我希望本教程能帮助您在 Avnet 平台上快速开始使用 Vitis-AI 1.3。

如果您还想看到任何其他相关内容,请在下面的评论中分享您的想法。

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费