基于昇腾AI | Yolov7模型迁移到昇腾平台EA500I边缘计算盒子的实操指南

近年来,国产化替代的进程正在加快。在众多国产平台中,昇腾平台具有高性能、低功耗、易扩展、软件栈全面成熟等优势,其产品和技术在国内众多领域实现了广泛应用;作为昇腾的APN伙伴和IHV合作伙伴,英码科技携手昇腾推出了一系列边缘计算产品,具备性能强劲、更宽工温、外设接口丰富、利旧性强等特点,同时,得益于昇腾AI软件栈的全面支持,这些产品为各行业AI应用高效、低成本落地提供了强有力的支撑。

YOLOv7是目前YOLO系列目标检测算法的最新版本,能够快速检测多种尺度和多标签的对象,同时具有高精度、低时延等特点,是目标较为主流的目标检测算法,在安防监控、自动驾驶、医疗影像分析等领域发挥着重要的作用。

图片

今天来介绍【基于昇腾AI】技术干货系列的另一个主题:如何将Yolov7模型迁移到昇腾平台?下面以英码科技基于昇腾平台开发的EA500I边缘计算盒子为硬件载体,详细讲解Yolov7模型迁移的流程,以及实际应用的演示。

Yolov7模型迁移到昇腾平台&案例演示

前置条件

图片

开发环境部署说明

基于昇腾平台的全系边缘计算盒子已完成环境部署工作,客户无需重新部署。

Yolov7源码下载

git clone https://github.com/WongKinYiu/yolov7.git

预训练模型的下载

cd yolov7
wget   --no-check-certificate https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7.pt

*温馨提示:如果下载速度慢可到官网下载

图片

验证模型是否可以正常识别图片

python3 detect.py --weight yolov7.pt

训练模型转ONNX模型

由于 Ascend 推理工具还未支持Pytorch的pt,pth模型,需要转换成ONNX才能使用yolov7有两种训练配置文件分别为deploy和traing,Detect层不一样导致转onnx上有略微区别,本次测试的为deploy

python3 export.py --weights yolov7.pt --grid --simplify --img-size 640 640

--weights:指定预训练模型yolov7.pt

--grid: 保留 Detect层

--simplify :简化onnx模型结构

Yolov7模型推理(EA500I)

1 环境声明

 export DDK_PATH=$HOME/Ascend/ascend-toolkit/latest
 export NPU_HOST_LIB=$DDK_PATH/runtime/lib64/stub
 export THIRDPART_PATH=${DDK_PATH}/thirdpart
 export LD_LIBRARY_PATH=${THIRDPART_PATH}/lib:$LD_LIBRARY_PATH

创建THIRDPART_PATH路径

mkdir -p ${THIRDPART_PATH}

acllite

注:源码安装ffmpeg主要是为了acllite库的安装 执行以下命令安装x264

# 下载x264
cd ${HOME}
git clone https://code.videolan.org/videolan/x264.git
cd x264
# 安装x264
./configure --enable-shared --disable-asm
make
sudo make install
sudo cp /usr/local/lib/libx264.so.164 /lib

执行以下命令安装ffmpeg

# 下载ffmpeg
cd ${HOME}
wget http://www.ffmpeg.org/releases/ffmpeg-4.1.3.tar.gz --no-check-certificate
tar -zxvf ffmpeg-4.1.3.tar.gz
cd ffmpeg-4.1.3
# 安装ffmpeg
./configure --enable-shared --enable-pic --enable-static --disable-x86asm --enable-libx264 --enable-gpl --prefix=${THIRDPART_PATH}
make -j8
make install

执行以下命令安装acllite

cd ${HOME}/samples/inference/acllite/cplusplus
make
make install

​​​​​​​opencv

执行以下命令安装opencv(注:确保是3.x版本)

sudo apt-get install libopencv-dev

2、样例运行

①数据准备

请从以下链接获取该样例的输入图片,放在data目录下。

cd $HOME/samples/inference/modelInference/sampleYOLOV7/data
wget https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/models/aclsample/dog1_1024_683.jpg

​​​​​​​​​​​​​​

②ATC模型转换

前面(5)的yolov7.onnx模型转换为适配昇腾310处理器的离线模型(*.om文件),放在model路径下。

# 为了方便下载,在这里直接给出原始模型下载及模型转换命令,可以直接拷贝执行。​​​​​​​

cd $HOME/samples/inference/modelInference/sampleYOLOV7/model
wget --no-check-certificate https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov7/yolov7x.onnx
wget --no-check-certificate https://obs-9be7.obs.cn-east-2.myhuaweicloud.com/003_Atc_Models/yolov7/aipp.cfg
atc --model=yolov7x.onnx --framework=5 --output=yolov7x --input_shape="images:1,3,640,640"  --soc_version=Ascend310B1  --insert_op_conf=aipp.cfg

③样例编译

执行以下命令,执行编译脚本,开始样例编译。

cd $HOME/samples/inference/modelInference/sampleYOLOV7/scripts
bash sample_build.sh

​​​​​​​​​​​​​​

④样例运行

执行运行脚本,开始样例运行。

bash sample_run.sh

⑤样例结果展示

运行完成后,会在样例工程的out目录下生成推理后的图片,显示对比结果如下所示

图片

结语

以上详细介绍了如何将Yolov7模型迁移到昇腾平台EA500I边缘计算盒子,希望能够帮助提升研发效率、缩短项目落地时间,如需更多技术和产品支持,欢迎留言!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/745829.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

论文《Federated Recommendation with Additive Personalization》阅读

论文《Federated Recommendation with Additive Personalization》阅读 论文概况PreliminariesMethodologyExperiments消融实验ConvergenceCurriculum分析可视化 一点总结 今天带来的是 ICLR 2024 关于联邦推荐的论文《Federated Recommendation with Additive Personalization…

【摄像头标定】双目摄像头标定及矫正-opencv(python)

双目摄像头标定及矫正 棋盘格标定板标定矫正 棋盘格标定板 本文使用棋盘格标定板,可以到这篇博客中下载:https://blog.csdn.net/qq_39330520/article/details/107864568 标定 要进行标定首先需要双目拍的棋盘格图片,20张左右,…

易天智能eHR管理平台 CreateUser 任意用户添加漏洞复现

0x01 产品简介 易天智能eHR管理平台是一款功能全面、智能化的人力资源管理软件,旨在帮助企业提高人力资源管理效率和管理水平。该平台通过集成员工信息、薪酬管理、档案人事管理、绩效管理和招聘管理等多个模块,实现了人力资源管理的全面智能化管理。 0x02 漏洞概述 易天智…

Windows11环境下安装Vmware Workstation 16的方法

1、下载VMWare 从网盘下载 https://pan.baidu.com/share/init?surlUpcnqiRv6nUuzO0EOZ22zg 提取码:8888 2、安装VMware虚拟机   第1步:双击上面准备好的Vmware Workstation 16虚拟机软件安装包,即可看到如图所示的安装向导初始界面&#x…

为什么嵌入式驱动开发工程师可以拿高薪?

嵌入式驱动开发是技术密集型的工作。想象一下,每一个硬件设备都需要与之匹配的驱动程序,才能在操作系统中正常工作。刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论…

【知识学习】阐述Unity3D中MaterialTexture的概念及使用方法示例

在Unity3D中,Material和Texture是渲染过程中非常重要的两个概念,它们共同工作以实现丰富的视觉效果。 Material Material是Unity中的一个组件,用于定义物体表面的视觉属性。一个Material可以包含多种属性,如颜色、纹理、反射率等…

道路救援入驻派单小程序开源版开发

道路救援入驻派单小程序开源版开发 1、用户立即救援 2、后台收到救援通知,派单救援师傅. 道路救援入驻派单小程序通常会包含一系列功能,旨在方便救援服务提供商、用户和后台管理系统之间的交互。以下是一个可能的功能列表: 用户端功能&…

第1章 物联网模式简介---独特要求和体系结构原则

物联网用例的独特要求 物联网用例往往在功耗、带宽、分析等方面具有非常独特的要求。此外,物联网实施的固有复杂性(一端的现场设备在计算上受到挑战,另一端的云容量几乎无限)迫使架构师做出艰难的架构决策和实施选择。可用实现技…

秋招Java后端开发冲刺——非关系型数据库篇(MongoDB)

MongoDB 本文介绍非关系型数据库MongoDB的基础知识和常见面试题。 (一)基础知识 1. 介绍:MongoDB是一个基于分布式文件存储的数据库,由C语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。 2.特点 特点…

Rust日常开发三方库精选

日常开发三方库精选 对计算机、编程、架构的理解决定一个程序员的上限,而工具则决定了他的下限,三尺森寒利剑在手,问世间谁敢一战。 本文就分门别类的精心挑选了一些非常适合日常开发使用的三方库,同时针对优缺点、社区活跃等进…

聚类距离度量(保姆级讲解,包学会~)

在机器学习的聚类中,我们通常需要使用距离来进行类的划分,或者比较不同类之间的各种距离,这里我们介绍西瓜书上所提出的一些距离计算方式。 首先介绍一下距离的一些性质: 西瓜书上给出了四条性质,第一个是非负性&#…

《高考择校择专业:权衡与抉择的智慧》

分数限制下,选好专业还是选好学校? 2024 年高考的大幕已然落下,然而对于众多考生而言,新的挑战才刚刚开始。在分数既定的情况下,是优先选择心仪的专业,还是更看重知名度高的学校?这无疑是一个令…

BW:CP里添加信息对象小问题记录

之前做视图直接添加进CP里,以为不能直接往CP里加信息对象,还专门建了一个带信息对象的模型,把信息对象拖到CP里,然后再链接视图的字段 今天发现原来不用这样,直接加就可以,小记一下 如图直接诶创建&#x…

网络安全学习路线图(2024版详解)

近期,大家在网上对于网络安全讨论比较多,想要学习的人也不少,但是需要学习哪些内容,按照什么顺序去学习呢?其实我们已经出国多版本的网络安全学习路线图,一直以来效果也比较不错,本次我们针对市…

uniapp横屏移动端卡片缩进轮播图

uniapp横屏移动端卡片缩进轮播图 效果&#xff1a; 代码&#xff1a; <!-- 简单封装轮播图组件:swiperCard --> <template><swiper class"swiper" circular :indicator-dots"true" :autoplay"true" :interval"10000&quo…

红队内网攻防渗透:内网渗透之内网对抗:横向移动篇Kerberos委派安全RBCD资源Operators组成员HTLMRelay结合

红队内网攻防渗透 1. 内网横向移动1.1 横向移动-资源约束委派-利用域用户主机加入1.1.1 利用思路1.1.2 利用条件1.1.3 利用过程1.2 横向移动-资源约束委派-Acount Operators组1.2.1 利用思路:1.2.2 利用条件:1.2.3 利用过程:1.3 横向移动-资源约束委派-CVE结合HTLMRelay1.3.…

Echarts 图表添加点击事件跳转页面,但只有图表部分点击才会跳转页面,坐标轴,区域缩放等点击不跳转。

默认的点击事件是这样的&#xff1a; myChart.on(click, function (param) {console.log(param) }) 这个事件需要点击具体图形才会触发&#xff0c;例如我上面的图&#xff0c;想选择a柱子&#xff0c;就需要明确点击到柱体才行&#xff0c;明显不符合正常的预期&#xff0c;正…

SolidWorks薄壁等厚实体转换成钣金方法

1. 打开SolidWorks软件&#xff0c;新建一个零件。选前视基准面绘制草图&#xff0c;二次创建凸台拉伸特征&#xff0c;如图所示。 2. 创建抽壳特征&#xff0c;厚度“2 mm”&#xff0c;如图所示。 3. 添加切口草图&#xff0c;根据钣金加工工艺在所选面上创建切口草图&#x…

SAP-SD-修改字段描述

在销售订单中,想修改某字段名的描述,以客户组12为例,如下图 现在想把这个字段修改为客户组1,选择-F1 双击“数据元素” 双击 域 转到-翻译

如何提升投资伦敦金的分析能力:回测

对伦敦金行情的分析能力&#xff0c;在我们做伦敦金交易的整个体系中是有很重要的作用的。但要提升对伦敦金行情的分析和把握是不太容易的&#xff0c;那有没有方法可以提升&#xff1f;那答案是有的&#xff0c;下面我们就来讨论一下&#xff0c;这个方法就是回测。 回测就是把…