《基于FPGA 的AI火灾侦查定位解决方案.docx》由会员分享,可在线阅读,更多相关《基于FPGA 的AI火灾侦查定位解决方案.docx(31页珍藏版)》请在第一文库网上搜索。
1、基于FPGA的A1火灾侦查定位解决方案部署在FPGA上加速的AI火灾侦查。助力消防人员快速应对火灾事故、绪论问题:近年来,不断增加的城市人口、更复杂的人口密集建筑以及与大流行病相关的问题增加了火灾侦查的难度。因此,为了增强消防人员对火灾事件的快速反应,安装视频分析系统,可以及早发现火灾爆发。目标:解决方案包括建立一个分布式计算机视觉系统,增加建筑物火灾的早期检测。该系统的分布式和模块化特性可以轻松部署,而无需增加更多基础设施。在不增加人力规模的情况下,可以明显增强消防能力。系统通过使用Xi1inxFPGA实现边缘AI加速图像处理功能来实现。开发流程介绍使用的硬件是Xi1inxKriaKV260
2、,用于加速计算机视觉处理和以太四连接的相机套件。嵌入式软件使用VitisAI0在PC上,使用现有的火灾探测数据集对自定义Yo1o-V4模型进行训练。之后,对Xi1inXYo1oV4模型进行量化、裁剪和编译DPU,最后部署在FPGA上。系统框图ProjectFirKV260VisionPrepareinputimageOutputimagewithresu1tsPC:设置SD卡镜像首先我们需要为FPGAVisionAIStarterKit准备SD卡(至少32GB)0这次将使用Ubuntu20.04.31TS作为系统。可以从下面网站谩镜像。https:/ubuntu,com/down1oadxi1
3、inxXi1inxKriaKV26OVisionA1StarterKitXHinxZynqUItraScaIe+MPSoCDeve1opmentBoardsDown1oadUbuntuDesktopUbuntuDesktop20.04.31TSTheversionofUbuntuwithuptoIOyearsof1ongtermsupport,unti1Apri12030.Down1oad64bitWorkson:OXi1inxKriaKV260VisionA1StarterKit在PC上,下载Ba1enaEtcher将其写入SD卡。httpswww.ba1ena.ioetcher99或者,可
4、以使用下面命令行(警告:请确保系统下devsdb必须是SD卡)进行操作:xzcatDown1oadsiot-kria-c1assic-desktop-2004-03-20231110-98.img.xzIsudoddof=devsdbbs=32Mb1enEtcherBFUshfrofnfi1e夕FUshfromUR1GoncdriveSDHCCard微信号:OpenFP完成后,SD卡就准备好了,将其插入开发板上。设置Xi1inxUbuntu将USB键盘、USB鼠标、USB摄像头、HDMI/DiSp1ayPort和以太网连接到开发板。XI1INX.XTuNXX1UNX-KRIAPKV260WS1
5、ONA1连接电源,将看到Ubuntu登录屏幕。默认用户名:UbUntU密码:ubuntu启动时,系统Ui可能会非常慢,可以运行下面这些命令来禁用一些组件以加快速度。gsettingssetorg.gnome,desktop,interfaceenab1e-animationsfa1segsettingssetorg.gnome,she11,extensions,dash-to-dockanimate-show-appsfa1se接下来,调用下面命令将系统更新到最新版本sudoaptupgrade早期版本的Vitis-AI不支持Python,详见:squestion0D52E00006o96PI
6、SAYhow-to-insta11-vart-for-vitis-ai-python-scripts?1anguage=en_US安装用于系统管理的x1nx-configsnap并对其进行配置(https:/xi1inx-sudosnapinsta11x1nx-config-c1assicx1nx-config.sysinit接下来检查设备配置是否工作正常。sudox1nx-config-xmuti1boardid-bsom安装带有示例的SmartVision应用程序和VitisAI库。(智能视觉应用程序包含我们将重复使用的DPU的比特流,库样本稍后也将用于测试我们训练的模型)sudox1nx
7、-config-snap-insta11x1n-n1p-smartvisionsudosnapinsta11XInX-Vai-Iib-SamPIeS检查已安装的示例和应用程序x1n-vai-1ib-samp1es.infosudox1n-config一一xmuti1Iistapps运行上述命令后,就会注意到DPU需要Mode1Zoo样本。F1ubuntuQkr1a:-/Desktopyo1ov3yo1ov3_adas_pruned_0_9Ayo1ov3yo1ov3-vocyo1ov3yo1ov3-bddyo1ov3yo1ov3_voc_tfyo1ov4yo1ov4_1eaky_spp/iMod
8、e1FtngerprtntofMode1ZooMode1sforzcu1O2zcu14v1.31:1662Mode1FingerprintofMode1ZooMode1sforkv26v1.31:12CurrentDPUIPConfiguration(show-dpu):devtce-core-td=device=core6fingerprint=6x126f61446bate=DPUCZDX8C:DPUCZDX8G_1Forthecuret1y1oadedDPUtobecompatib1e,ensurethatthereportedfetchestheEode1fingerprint.UbU
9、ntU.krt:De$口接下俩运行其中一个示例。在运行示例之前,需要将USB摄像头连接到开发板并确保系统驱动能检测到视频设备。这次使用的是1ogitechC170,它被挂载到devvideo1v412-ct11ist-devicesFRubuntuQkria:QubuntuQkria:-ubutuQkria:ubuntukrta:$v412ct1-1ist-devicesispvcapcsioutput(p1atfor:tsp_vcap_cst:6):devvtdeoXt1tnxVideoCompositeDevice(p1atforRjt1tx-video):devnedtawebcamC1
10、7:WebcanC170(usb-hct-hcd.1.auto-1.4):devvideo1devvtdeo2devnedta1UbUntU1CrI4微信号:C加载并启动智能视觉应用程序。sudox1nx-config-xmuti1Ioadappn1p-smartvisionx1n-n1p-smartvision.n1p-smartvision-u在运行任何加速器应用程序之前,我们需要先加载DPUo我们可以简单地调用smartvision应用程序,它会为我们加载比特流。或者,可以打包自己的应用程序(https:WwW.hackster.io/A1bertaBeef/creating-a-cus
11、tom-kria-app-091625)o注意:加速器比特流位于/1ib/firmware/XiIinXn1p-smartvision.由于我们计划是使用Yo1OV4框架,所以让我们测试一个模型的例子。有“yo1ov4_1eaky_sppm”预训练模型。sudox1nxconfig-xmuti1Ioadappn1p-smartvision#thenumber1isbecausemywebcamisonvideo1x1n-vai-1ib-samp1es.test-videoyo1ov4yo1ov4_1eaky_spp_m1上面的命令将在第一次运行时下载模型。模型将被安装到“/snap/xinx-
12、vai-1ib-samp1es/current/mode1s目录中。Aubuntukrta:*s4pxinx*vambsenp1escurrentmode1sQ一0多UbuntUHjkrte:$1$SS1RobtresnetSO1reSnetubut1.pkrta;-$x1nxvat-Itb-sanp1es.testvideossdK1PerJSSd_re$net34_tfMode1NaM:n1perf_ssd_resnet34_tfSMP1eNaMe:ssdDPUFingerprint:Ox1692ef601446*Usingkv266ROde1OOWrAoadedmode1RXperf-s
13、sd-resnetJ4-tff。UMtnhomeubutusnp1nvt1tb*snp1es13WARN:eg1oba1./Rodu1e$7vtdeoto/src/cap_gstreaner.cpp(48e)IsPtpe1tneP1aytngOpenCVGStreanerwarning:GStreaner:pipe1inehavenotbeencreatedCtk-.iqe:Fai1edtoIoadmodu1ecnberra-tk-Rdu1eCtk-:Fai1edto1oadnodu1ecanberra-gtk-nodu1e微信号:0PenFPGA上面测试良好,接下来就可以训练我们自己的模型。
14、PC:运行Y010v4模型训练要训练模型,请遵循Xi1inX提供的07-yo1ov4-tutoria1文档。它是为Vitisv1.3编写的,但步骤与当前的Vitisv2.0完全相同。https:/xi1inx.github.io/VitiS-TUtOriaiS/2023-2/docs/Machine_1earning/Design_Tutoria1s/07-yo1ov4-tutoria1/README.htm1我们的应用程序用于检测火灾事件,因此请在下面链接中下载火灾图像开源数据集:fire-smoke(2059,simages,inc1ude1abe1s)-Goog1eDrivehttps:/drive,goog1e,com/fi1edIydVpGphAJzVPCkUTcJxJhsnp_baGrZa7/view?USP=Sharing请参考.cfg此处的火灾数据集文件。https:/raw.githubusercon