昇腾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
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

01_原理-事件循环

01_原理-事件循环 文章目录 01_原理-事件循环一、浏览器的进程模型①:何为进程?②:何为线程?③:浏览器有哪些进程和线程? 二、渲染主线程是如何工作的?三、若干解释①:何为异步&…

不展现报表直接打印

不展现直接打印可以考虑这么几种方式:1、如果使用自带 demo 下的 jsp,可以把展现报表的 div 设置为隐藏,点击打印按钮可以打印;如果按钮都不想点,看下 toolbar.jsp 内打印按钮的 js 函数,在 jsp 末尾调用一…

LaTeX引文.bib方式插入报错 misplaced alignment tab character \end

写latex报了个莫名的错误,找了好久才找到原因。 参考文章 简单记录一下 在LaTeX中&符号有特殊含义,不能直接写。 直接复制生成的bibtex可能会有&,这种情况下可能会报错。 解决方法就是在&符号前面加一个斜杠\一定删除之前编译产生…

量子计算突破云渲染资源调度!真机测试完整报告公开!

​摘要:在影视领域中,经常会涉及大量的视频图像渲染工作,而往往在这种大规模、动态渲染场景下,普遍存在着冗余渲染现象。究其原因在于大规模的图像渲染通常要求在短时间内做出渲染任务的算力分配决策,而经典计算机无法…

【周报2023-11-24】

周报2023-11-24 本周主要工作下周工作计划 本周主要工作 本周的话一个主要工作有: 前后端进行联调接口: 那么目前为止的话,已经调通的接口 可以使用的是个人中心 历史生成的接口 选择新模板 新模板详情 ps: 下周工作计划 主要的话就是将…

金风玉露一相逢|实在智能联手浪潮信息合力致新生成式AI产业生态

近日,实在智能正式加入浪潮信息元脑生态AIStore。 实在智能是一家基于AGI大模型超自动化技术,领跑人机协同时代的人工智能科技公司,以其自研垂直的“TARS(塔斯)大语言模型”技术、实在RPA Agent智能体数字员工产品和超…

PSP - 蛋白质真实长序列查找 PDB 结构短序列的算法

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134599076 在蛋白质结构预测的过程中,输入一般是蛋白质序列(长序列),预测出 PDB 三维结构,再和 Ground Truth …

Android:控制按键灯亮灭【button-backlight】

/frameworks/base/services/core/java/com/android/server/policy/PhoneWindowManager.java 1.导包 import java.io.DataOutputStream; import java.io.FileOutputStream; Handler mHandler3; 2.新建handler对象 public void init(Context context, IWindowManager windowMan…

制作linux deb安装包

dpkg 命令命令详解 dpkg -i手动安装软件包(这个命令并不能解决软件包之前的依赖性问题),如果在安装某一个软件包的时候遇到了软件依赖的问题,可以用apt-get -f install在解决信赖性这个问题.     dpkg --info “软件包名” --列出软件包解包后的包名称. dpkg -l–列出当前…

java 基础面试题——问题+答案——第1期

一、问题 在Java基础面试中,面试官可能会问及一系列基础知识,以确保对Java语言的核心概念和基本特性有清晰的理解。以下是一些可能的问题: Java基础: 解释Java的基本特性。什么是Java虚拟机(JVM)&#xff…

2024深圳电子展,加快粤港澳电子信息发展,重点打造“湾区经济”

在“十四五”期间,中国电子信息产业面临着新形势和新特点。随着国家对5G、人工智能、工业互联网、物联网等“新基建”的加速推进,以及形成“双循环”新格局的形势,新型显示、集成电路等产业正在加速向国内转移。这一过程不仅带来了新的应用前…

主从复制读写分离?

主从复制和读写分离是常见的数据库架构策略,它们可以提高系统的性能和可靠性。下面是一个简单的实现方法: 主从复制: 配置主数据库:在主数据库上启用二进制日志(binary log),用于记录所有修改数…

【ES6.0】-详细模块化、export与Import详解

【ES6.0】-详细模块化、export与Import详解 文章目录 【ES6.0】-详细模块化、export与Import详解一、模块化概述二、ES6模块化的语法规范三、export导出模块3.1 单变量导出3.2 导出多个变量3.3 导出函数3.4 导出对象第一种第二种: 3.5 类的导出第一种第二种 四、imp…

FFNPEG编译脚本

下面是一个ffmpeg编译脚本: #!/bin/bash set -eu -o pipefail set eu o pipefailFFMPEG_TAGn4.5-dev build_path$1 git_repo"https://github.com/FFmpeg/FFmpeg.git" cache_tool"" sysroot"" c_compiler"gcc" cxx_compile…

2023年亚太地区数学建模大赛 C 题

我国新能源电动汽车的发展趋势 新能源汽车是指以先进技术原理、新技术、新结构的非常规汽车燃料为动力来源(非常规汽车燃料指汽油、柴油以外的燃料),将先进技术进行汽车动力控制和驱动相结合的汽车。新能源汽车主要包括四种类型:…

【mybatis注解实现条件查询】

文章目录 步骤1: 引入MyBatis依赖步骤2: 创建数据模型步骤3: 创建Mapper接口步骤4: 配置MyBatis步骤5: 执行条件查询 步骤1: 引入MyBatis依赖 <dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.x.…

MobaXterm连接节点一段时间后超时Session stopped

1、MobaXterm &#xff08;1&#xff09;设置ssh 超时时间 &#xff08;2&#xff09;设置保持连接 如果服务器端设置了超时时间&#xff0c;会以服务器为准&#xff0c;具体设置&#xff1a; 2、服务端 cat /etc/ssh/sshd_config | grep "ClientAlive" 可以把设置…

一穿一戴一世界 | 紫光展锐2023智能穿戴沙龙成功举办

11月23日&#xff0c;紫光展锐在深圳成功举办了以“一穿一戴一世界”为主题的2023智能穿戴沙龙。展锐智能穿戴沙龙已举办四届&#xff0c;旨在为行业提供启发性的观点和前瞻性的创新理念。本届沙龙吸引了终端厂商、行业翘楚、生态伙伴等行业各领域超过500人汇聚一堂&#xff0c…

【HTML5-webscoket实时通信(web)】

websocket是什么&#xff1f; 就是用来创建网络聊天室&#xff0c;实时通信websocket的方法有哪些&#xff1f; https://developer.mozilla.org/zh-CN/docs/Web/API/WebSockets如何实现&#xff1a;&#xff08;以下实现流程&#xff09; 前端&#xff1a; // 直播中// 聊天web…

机器篇——决策树(六) 细说 评估指标的交叉验证

本小节&#xff0c;细说 评估指标的交叉验证。 三. 评估指标 3. 交叉验证(cross validation) (1). 概念 交叉验证(cross validation, cv) 主要用于模型训练或建模应用中&#xff0c;如分类预测、PCR、PLS 回归建模等。在给定的样本空间中&#xff0c;拿出大部分…