昇腾Atlas 200I DK A2实现安全帽识别

文章目录

  • 环境依赖
  • 编译
  • 测试
  • 总结


环境依赖

软件版本说明获取方式
mxVision5.0.RC2mxVision软件包获取方式
Ascend-CANN-toolkit6.2.RC2Ascend-cann-toolkit开发套件包获取方式
Ubuntu22.04

代码仓库地址:
https://gitee.com/ascend/ascend_community_projects/tree/310B/HelmetIdentification_V2

镜像版本:
在这里插入图片描述


编译

获取模型:https://gitee.com/link?target=https%3A%2F%2Fmindx.sdk.obs.cn-north-4.myhuaweicloud.com%2Fmindxsdk-referenceapps%2520%2Fcontrib%2FHelmetIdentification%2Fmodel.zip

解压 model.zip 并将onnx文件移到项目的model目录下:
在这里插入图片描述

转换模型:注意,这里没有采用源码中的atc-env.sh转换脚本的方式。
配置环境变量:

source /usr/local/Ascend/ascend-toolkit/set_env.sh
source /usr/local/Ascend/mxVision-5.0.RC2/set_env.sh

转模型:

cd ~/HelmetIdentification_V2/model
atc --model=./YOLOv5_s.onnx --framework=5 --output=YOLOv5_s --insert_op_conf=./aipp_YOLOv5.config --input_format=NCHW --log=info --soc_version=Ascend310B1 --input_shape="images:1,3,640,640"

执行完以上命令行,model目录下会出现om模型
在这里插入图片描述

修改CMakeList.txt

cd ~/HelmetIdentification_V2/src

24行和35行改为 /usr/local/Ascend/ascend-toolkit/latest/aarch64-linux 目录下的includelib64目录,这里需要修改为自己的toolkit目录
在这里插入图片描述

编译准备

更新安装库文件

apt-get update 
apt-get install -y libavformat-dev

建立三个库的软软链接

ln -s /usr/lib/aarch64-linux-gnu/libavcodec.so.58 /usr/lib/aarch64-linux-gnu/libavcodec.so
ln -s /usr/lib/aarch64-linux-gnu/libavutil.so.56 /usr/lib/aarch64-linux-gnu/libavutil.so
ln -s /usr/lib/aarch64-linux-gnu/libavformat.so.58 /usr/lib/aarch64-linux-gnu/libavformat.so

由于代码提供了对videoimage的不同main.cpp,这里我们选用video的。将两个文件备份后,留下main.cpp

cd ~/HelmetIdentification_V2/src
rm main-image.cpp
cd ..
mkdir build_video
cd build_video
cmake ..

在这里插入图片描述

make -j4

在这里插入图片描述
至此,会在~/HelmetIdentification_V2目录下生成main可执行文件

测试

HelmetIdentification_V2文件夹下,需要新建result文件夹以及内部的one、two两个文件夹用于存放结果

cd ~/HelmetIdentification_V2
mkdir result
cd result
mkdir one
mkdir two

退回到HelmetIdentification_V2文件夹,运行如下命令

./main test_person.h264 1920 1080

1920 1080为输入视频的宽高
在这里插入图片描述
结果图片保存在HelmetIdentification_V2/result文件夹中,文件夹one保存第一路输入的结果,文件夹two保存第二路输入的结果。
在这里插入图片描述
输出样例为:在这里插入图片描述
红框标出的应该是未佩戴安全帽的信息。


总结

本篇文章可以算是昇腾系列的一个入门样例,跑通了应该就能知道大概的操作流程,接下来应该又是一段难忘的开发心路历程,希望自己挺住!!!

参考文档:
https://gitee.com/ascend/ascend_community_projects/tree/310B/HelmetIdentification_V2
https://zhuanlan.zhihu.com/p/652517700
如果阅读本文对你有用,欢迎点赞收藏呀!!!
2023年11月24日14:55:12
在这里插入图片描述

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

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

相关文章

RK WiFi部分信道在部分地区无法使用的原因

不同国家支持的WiFi信道不一样,需要正确设置wificountrycode 修改路径: device\rockchip\common\BoardConfig.mk 修改内容:androidboot.wificountrycodeXX 该属性会被解析为 ro.boot.wificountrycode framework层会在: framewor…

Oracle登录认证方式详解

文章目录 一、简介二、OS认证三、口令认证四、remote_login_passwordfile 详解 一、简介 在数据库管理中,登录认证是确保数据库安全性的重要环节。Oracle数据库提供 了两种认证方式,一种是“操作系统认证”,一种是“口令文件认证&#xff0c…

ate测试原理及ate测试系统(软件)知识科普 -纳米软件

ATE(Automatic Test Equipment)测试也叫自动化测试,通过计算机控制测试仪器对被测对象进行测试。以计算机编程代替人工测试,基于测试程序控制仪器并对待测品进行输入和输出信号检测分析,从而判断待测品的性能是否符合要求。 ATE测试需要根据测…

探索亚马逊云科技云存储服务的性能

文章作者:Libai 引言 随着企业越来越多地依赖云存储解决方案,确保存储性能的最佳状态变得至关重要。在本文中,我们将探讨在亚马逊云科技云存储服务上进行存储性能基准测试的重要性,以及如何帮助企业做出资源分配和优化的明智决策…

如何搭建Splunk Enterprise平台并结合内网穿透工具实现公网访问

文章目录 前言1. 搭建Splunk Enterprise2. windows 安装 cpolar3. 创建Splunk Enterprise公网访问地址4. 远程访问Splunk Enterprise服务5. 固定远程地址 前言 Splunk Enterprise是一个强大的机器数据管理平台,可帮助客户分析和搜索数据,以及可视化数据…

HCIA-RS基础-静态路由协议

摘要:静态路由是一种在网络中广泛应用的路由选择方案,它以其简单的配置和低开销而备受青睐。本文将介绍静态路由的配置方法、默认路由的设置、路由的负载分担和备份策略。通过学习本文,希望可以你能够掌握静态路由的基本概念和在华为模拟器中…

「周转箱」降低物料损耗的关键

仓储管理是企业物流系统中的重要组成部分,不仅涉及物品的存储、分拣、包装和配送,其服务质量和效率还将直接关系到企业的生产和经营效益。 在现代制造业中,降低物料损耗是企业追求高效生产和优化成本的关键目标之一。精益生产理念的实施为企…

华大基因助力乌兹别克斯坦精准医学发展,共筑健康丝绸之路

今年上半年,中国与中亚五国元首齐聚陕西西安,举办中国-中亚峰会。过去的20年里,中国已经成为中亚国家的主要投资来源国,总投资额接近400亿美元。乌兹别克斯坦是中国-中亚合作机制的重要参与者,乌…

详解Rust编程中的生命周期

1.摘要 生命周期在Rust编程中是一个重要概念, 它能确保引用像预期的那样一直有效。在Rust语言中, 每一个引用都有其生命周期, 通俗讲就是每个引用在程序执行的过程中都有其自身的作用域, 一旦离开其作用域, 其生命周期也宣告结束, 值不再有效。幸运的是, 在绝大多数时间里, 生…

成为AI产品经理——模型构建过程(上)

目录 一、背景 1.对内 2.对外 二、模型构建过程 1.模型设计 2.特征工程 ① 数据清洗 ② 特征提取 数值型数据 标签/描述类数据特征 非结构化数据(处理文本特征) 网络关系型数据 ③ 特征选择 ④ 训练集/测试集 一、背景 虽然产品经理不…

P7 C++指针

前言 指针是一个令很多人都很痛苦的内容,然而指针其实没有大家想象中的那么复杂。 对计算机来说内存就是一切,如果非要我说出编程中最重要的一件事,我可能会说是内存。 当你编写了一段程序并启动它时,所有的程序都被载入到内存…

IDEA必备插件!一键生成接口文档

IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具,而今天给大家介绍一款IDEA插件&…

网站定制开发主要分类有哪些|企业 app 软件小程序定制

网站定制开发主要分类有哪些|企业 app 软件小程序定制 网站定制开发是指根据客户需求,为其量身定制设计和开发的网站服务。目前,网站定制开发主要分为以下几个分类: 1.静态网站定制开发:静态网站是由 HTML、CSS 和 JavaScript 等静…

什么是巧克力葡萄酒,值得一试吗?

许多葡萄酒爱好者喜欢浓郁巧克力味的红酒,巧克力葡萄酒是由葡萄酒和液体巧克力制成的混合饮料,它质地厚实,非常甜,带有红色水果、焦糖或咖啡的香味。它可能会让你想起可可饮料,而不是葡萄酒饮料。只有真正含有巧克力成…

vscode项目推送到git

1、打开项目文件 打开文件后点击vs code左侧工具栏中第三个源代码管理图标,点击初始化仓库,此时会创建一个本地仓库会检查该项目中的文件变更 2、创建远程仓库 点击克隆/下载,复制HTTPS地址 3、添加远程地址 1)图形化操作 2…

【开源】基于Vue.js的农村物流配送系统的设计和实现

项目编号: S 024 ,文末获取源码。 \color{red}{项目编号:S024,文末获取源码。} 项目编号:S024,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2…

uni微信小程序 map 添加padding

问题背景&#xff1a; 规划驾车线路的时候&#xff0c;使用uni的include-points指定可视范围的时候&#xff0c;会很极限。导致marker不能完全显示。 解决方法 给地图显示范围添加padding (推荐) <mapid"myMap":markers"markers":polyline"pol…

【LeetCode:1410. HTML 实体解析器 | 模拟+哈希表+字符串+库函数】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

设计模式—开闭原则

1.背景 伯特兰迈耶一般被认为是最早提出开闭原则这一术语的人&#xff0c;在他1988年发行的《面向对象软件构造》中给出。这一想法认为一旦完成&#xff0c;一个类的实现只应该因错误而修改&#xff0c;新的或者改变的特性应该通过新建不同的类实现。新建的类可以通过继承的方…

Spring Cloud 版本升级遇坑记:OpenFeignClient与Gateway的恩怨情仇

Spring Cloud 版本升级遇坑记&#xff1a;OpenFeignClient与Gateway的恩怨情仇 近日&#xff0c;在对项目中的 Spring Boot、Spring Cloud 以及 Spring Cloud Alibaba 进行版本升级时&#xff0c;遭遇了一个令人头疼的问题&#xff1a;Spring Cloud Gateway 在运行时一直卡住&a…