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

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

3天内不再提示

在ultrascale+上利用VCU和DPU实现的智能零售系统

OpenFPGA 来源:OpenFPGA 作者:碎碎思 2022-12-05 09:06 次阅读

整个系统是以DPU为核心,在 DPU 上部署对象检测模型实现实时智能检测,该系统视频输入可以来自 VCU 解码的视频或来自相机的实时视频图像。

23ac82ce-7435-11ed-8abf-dac502259ad0.png

介绍

Checkout So Easy 是本次介绍的项目系统名称。是在ultrascale+上利用 VCU 和 DPU 实现的智能零售系统。

Checkout So Easy 有两种应用场景:

1.Checkout So Easy充当云端

将记录商品的视频以 mp4 等格式的视频发送到系统。借助Checkout So Easy的VCU解码器进行解码,我们将解码后的视频帧送入DPU计算商品价格。商品详情、价格、图像检测视频等结果将显示在显示器上。

Checkout So Easy 发挥优势

商品信息是从连接到 FPGA 的摄像头捕获的。摄像头拍摄的图像将送入DPU计算商品的结果,并将详细信息显示在显示器上。与场景 1 不同的是,监视器上的结果将逐帧记录。借助 VCU 编码器,我们可以存储由帧组成的视频。当一些交易纠纷发生时,我们可以查看交易的整个过程。

演示视频

如何重新创建此项目

第 一 步:构建和设置 FPGA 板的环境

https://github.com/alex0620ee05/Self-checkout-system/blob/main/Build_sdcard

构建步骤:

1.克隆完整的存储库(包括子仓库)

$gitclone--recurse-submodules$gitclone--recurse-submoduleshttps://github.com/Xilinx/Vitis-In-Depth-Tutorial
$cdVitis-In-Depth-Tutorial/Runtime_and_System_Optimization/Design_Tutorials/02-ivas-ml/

注意:需要安装 Vitis 补丁:

此设计具有较大的 rootfs,并且 Vitis 2020.1 在打包超过 2GB 的 ext4 分区的 SD 卡映像时存在问题。此补丁更改了打包流程,将初始 rootfs 大小四舍五入为 ext4 分区512MB大小的第一个完整倍数。安装它:

$cp./vitis_patch/mkfsImage.sh${XILINX_VITIS}/scripts/vitis/util

2.Vitis2020.1、PetaLinux2020.1和XRT2020.1源码

$source${XILINX_VITIS}/settings64.sh
$source${XILINX_PetaLinux}/settings.sh
$source${XILINX_XRT}/setup.sh

3.搭建硬件平台

$cdplatform/dev/zcu104_vcu
$make

petalinux-config kernel、petalinux-build、petalinux-build --sdk时可能会出现错误。此时应该正确修改platform/dev/zcu104_vcu 和 platform/dev/zcu104_vcu/petalinux中的Makefile并重新执行出错的命令make 。

4.构建Vitis设计(添加DPU ip)

必须一次且仅一次,将 hw_src 目录中的补丁应用到 Vitis Vision 库。

$cd../../../hw_src/Vitis_Libraries
$patch-p1< ../vision_lib_area_resize_ii_fix.patch
$ cd ..
$ cp ../../../../../dpu_conf_zcu104.vh .
$ cp ../../../../../zcu10x_config .
$ make

5.获取SD卡镜像

第一步:将上面获取到的sd_card.img放入sd_card_zcu104/.

或者,可以下载预构建的sd_card.img(https://github.com/alex0620ee05/Self-checkout-system/tree/main/prebuilt/sd_card_image)

第二步:为 Vitis AI 库 v1.2 准备 SD 卡

https://github.com/alex0620ee05/Self-checkout-system/tree/main/set_up_files

本节以下所有步骤均针对目标(ZCU104板)

将以下文件放入/home/root/目录:

jsons/

scripts/

test_data/

.bashrc

debug.ini

将以下文件放入 /:

1.update.tar.gz

调整 rootfs 的大小:

cd/home/root/scripts
shext4_auto_resize.sh

2.安装依赖和Vitis AI v1.2库

以下步骤需要开发板可联网(脚本使用wget下载)

cd/home/root/scripts
shupdate.sh
shinstall_vai.sh

第三步:Vitis-AI量化编译

https://github.com/alex0620ee05/Self-checkout-system/tree/main/host

编译好的文件ssd_mobilenet_v2_coco_tf.elf已经在demo/,可以跳过这一步,直接使用提供的文件。

1.搭建Vitis-AI环境

按照Vitis-AI上的步骤构建 docker。

./docker_run.shxilinx/vitis-ai-gpu:latest

2.从Xilinx AI model zoo下载tensorflow模型

只下载.pb文件,运行sh download_deploy_model.sh即可,此步可以跳过后面的说明。

也可以按照Xilinx/Vitis-AI/AI-Model-Zoo上的说明获取模型。

在我们的项目中,我们使用xilinx_model_sample/tf_ssdmobilenetv2_coco_300_300_3.75G作为我们的对象检测模型。

复制xilinx_model_sample/tf_ssdmobilenetv2_coco_300_300_3.75G/quantized/deploy_model.pb到host/ssd_mobilenet/.

3.编译tensorflow模型

执行./ssdmobilenet_compile_b4096.sh后,就会得到dpu_ssd_mobilenet_v2_coco_tf.elf

第 四 步:交叉编译DPU推理代码

http://github.com/alex0620ee05/Self-checkout-system/tree/main/Vitis-AI/Vitis-AI-Library/overview/demo/tfssd_mobilenet

编译好的文件tfssdtest.so已经在demo/,可以跳过这一步,直接使用提供的文件。

1.设置主机

按照Xilinx/Vitis-AI-Library(https://github.com/Xilinx/Vitis-AI/tree/master/Vitis-AI-Library)上的步骤操作

2.交叉编译

运行./build_final.sh,你会得到一个编译后的文件 tfssdtest.so(64位LSB共享对象,ARM aarch64格式)。

将编译后的文件复制到demo/

下一步

第 五 步:在自己板卡上评估这个项目

https://github.com/alex0620ee05/Self-checkout-system/tree/main/demo

以下步骤针对目标(ZCU104):

如果所有设置都完成,将demo/目录放入/home/root/.

1.修改显示分辨率

shset_monitor.sh

执行自助结账系统演示

需要使用sd_card.img在vcu_decode/

带摄像头的实时结账系统:

python3DEMO.py-cTrue

带有视频源的结帐系统:

python3DEMO.py-v

参考

Xilinx Vitis-AI quantizer & compiler / Xilinx Vitis-Ai-Library :

https://github.com/Xilinx/Vitis-AI

Xilinx Vitis Tutorial :

https://github.com/Xilinx/Vitis-In-Depth-Tutorial/tree/master/Runtime_and_System_Optimization/Design_Tutorials/02-ivas-ml

Checkout So Easy - Real-time Smart Retail System For FPGA :

https://www.hackster.io/maax/checkout-so-easy-real-time-smart-retail-system-for-fpga-468ad8

总结

上面步骤需要的所有文件都有链接,链接都是开源的。完整的项目是运行在ZCU104官方板卡上,项目的完整链接如下:

https://github.com/alex0620ee05

当然按照上面的步骤,在自己的开发板上复现难度也是不大的~







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1620

    文章

    21497

    浏览量

    598611
  • 解码器
    +关注

    关注

    9

    文章

    1103

    浏览量

    40434
  • DPU
    DPU
    +关注

    关注

    0

    文章

    340

    浏览量

    24037

原文标题:Vitis AI-FPGA实时智能零售系统

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    2011年美国零售业展/美国零售业展/GLOBAL SHOP

    相关产业的各大公司参展,零售业成为促进经济发展的一支重要力量。该展涉及了商店设计、产品及材料等一系列服务和应用产品,由于中国企业所生产的相关产品价格及质量上有较大优势,前几届参赞企业都对该展览会持积极
    发表于 08-27 15:33

    零售是什么?外汇与新零售的联系!

    的筛选,筛选并整合出匹配最佳交易策略的智能系统。6:跟单社区在跟单社区里将遇见世上最优交易者,跟随交易者,复制盈利最佳订单,可实现同步下单,提供最优交易策略,您的外汇交易盈利之旅将新零售
    发表于 05-22 15:04

    聊聊RFID如何改变零售行业?

    ,上线RFID项目和系统,RFID技术零售行业掀起应用新高潮! Ø ZARA之所以能独步服装业全赖其超高的效率,其服饰从设计理念到成品架仅需10天左右;Ø UR快时尚服装连锁品牌
    发表于 07-29 15:11

    深圳云栖 | 数字化转型专家,阿里云助力商业转型升级,共建新零售服务市场

    摘要: 新零售,近年来已成为行业热点,关于“什么是新零售”、“怎么做新零售”,更是成为大家热议的话题与关注的焦点。作为新零售概念的践行者,阿里云
    发表于 04-08 16:45

    2018杭州智能零售柜展

    。〓参展范围〓※新零售终端及特色无人店、样板店、体验店展区:无人零售店/便利店、无人超市、全渠道体验店、无人餐饮厅、无人生鲜店、智能社区服务店等(如连锁便利店、无人便利店、自助洗衣店、智能
    发表于 06-02 13:41

    手持终端服装零售行业的四大应用

    数据采集、数据处理、无线传输等功能,服装零售行业有着四大方面的应用优势。第一:智能导购通过手持终端采集识别服装标签信息,利用Wi-Fi连接数据库
    发表于 08-27 13:57

    传感器零售时代下具有怎样的竞争力?

    ,全球的传感器市场不断变化的创新之中呈现出快速增长的趋势。传感器领域的主要技术将在现有基础予以延伸和提高,技术的发展必将带来新零售行业的革新,各国将竞相加速新一代传感器的开发和产业化,竞争也将日益激烈。
    发表于 11-30 10:37

    什么样的零售能抓住小店经济机遇?做智能零售数据分析

    个性化设计,针对来源业务系统修改部分ETL脚本即可。奥威BI系列的智能数据可视化分析软件,只需掌握具备基本的SQL能力就能快速完成ETL开发。从长远来看,这种易开发的
    发表于 06-10 16:59

    米尔MYD-CZU3EG搭载Xilinx DPU,具备强大AI计算能力,你怎么看米尔这款产品?

    于ADAS,智能安防,工业质检,智能零售等诸多AI应用开发。示例:基于YOLOV3的ADAS驾驶辅助demo演示 具体MYD-CZU3EG DPU使用手册,可以
    发表于 09-27 12:10

    RF设计不断演进的零售空间中的作用

    的决策。它还有助于提高营业时段、人员配备和营销工作的效率。  用于监测货架库存的货架传感器  货架传感器通过配有重量传感器和 RFID 标签显示器的零售设备使用无线库存控制系统,来
    发表于 01-07 15:35

    如何调试Zynq UltraScale+ MPSoC VCU DDR控制器

      如何调试Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraScale+ MPSoC VCU DDR 控制器是一款专用 DDR 控制器,只支持
    发表于 01-07 16:02

    如何调试Zynq UltraScale+ MPSoC VCU DDR控制器

    如何调试 Zynq UltraScale+ MPSoC VCU DDR 控制器?
    发表于 01-22 06:29

    ultrascale+利用VCUDPU实现智能零售系统

    系统名称。是ultrascale+利用 VCUDP
    发表于 02-20 17:35

    如何利用数据构建零售智能

    英特尔的Marta Muszynska 和戴尔的Siobhan Lynch 讨论“如何利用数据建立零售情报”
    发表于 08-04 07:51

    如何调试 Zynq UltraScale+ MPSoC VCU DDR 控制器?

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款专用 DDR 控制器,只支持 Zynq UltraScale+ MPSoC EV 部件
    发表于 02-23 06:00 15次下载
    如何调试 Zynq <b class='flag-5'>UltraScale+</b> MPSoC <b class='flag-5'>VCU</b> DDR 控制器?