海思3559 yolov5 wk模型部署笔记

文章目录

  • 安装3559工具链
  • 编译opencv
  • 编译项目
  • 总结


安装3559工具链

将3559工具链copy到虚拟机上,并解压得到安装包
在这里插入图片描述
解压:

tar -zxvf aarch64-himix100-linux.tgz

解压后会得到安装包文件夹:

在这里插入图片描述
安装工具链:

sudo ./aarch64-himix100-linux.install
source ./aarch64-himix100-linux.install

执行完毕,默认会在/opt录下生成一个hisi-linux文件夹:
在这里插入图片描述
添加工具链环境变量:

vim ~/.bashrc

添加工具链环境路径:

export PATH=/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin:$PATH

在这里插入图片描述
使配置生效:

source ~/.bashrc

测试工具链是否正常调用:

aarch64-himix100-linux-gcc -v

在这里插入图片描述
出现上图说明安装3559工具链成功。

编译opencv

安装cmake-gui

sudo apt-get install cmake
sudo apt-get install cmake-qt-gui

打开ubuntu的terminal终端,输入cmake-gui,打开cmake的gui界面
在这里插入图片描述
在这里插入图片描述
选择交叉编译工具
Operation System:arm-himix100-linux
gcc:/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-gcc
g++:/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin/aarch64-himix100-linux-g++
其中:编译器路径需要根据自己ubuntu系统的编译器路径来填写
在这里插入图片描述
修改配置
1.修改CMAKE_INSTALL_PREFIX
库的安装路径,文件夹是自己创建的
在这里插入图片描述
2.添加OPENCV_EXTRA_MODULES_PATH
也就是contrib的modules路径
在这里插入图片描述
3.添加CMAKE_FIND_ROOT_PATH
根据自己的实际路径修改,我这里为:/opt/hisi-linux/x86-arm/aarch64-himix100-linux/bin
在这里插入图片描述
4.勾选BUILD_opencv_world库
这样编译出来的库就一个world.so,而不是一堆库。
在这里插入图片描述
5.源代码修改
在opencv-4.5.0中的
modules/videoio/src/cap_dshow.cpp中的include “cap_dshow.hpp”上一行添加

#define NO_DSHOW_STRSAFE

在这里插入图片描述
6.cmake参数修改
在opencv4.5.0目录下,修改最顶层的CMakeList.txt,在include(cmake/OpenCVMinDepVersions.cmake)后面添加:

SET(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-pthread -ldl")  
SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-pthread -ldl") 

在这里插入图片描述
点击configure
在这里插入图片描述
点击generate
在这里插入图片描述
进入编译输出文件夹build,打开terminal终端,输入make,然后等待完成
在这里插入图片描述

make完成后,终端输入make install,到此opencv的交叉编译就完成了。
在这里插入图片描述

编译项目

下载源码:https://github.com/mahxn0/Hisi3559A_Yolov5
解压,在目录下的CMakeLists.txt中设置opencv路径
在这里插入图片描述

新建一个build_test目录:

cmake .. -DTARGET_SOC=3559
make -j8

在这里插入图片描述
在这里插入图片描述
至此便生成了可执行文件。这里只演示过程,源代码中的模型路径,与视频输入需要自己修改。


总结

本文记录海思3559 yolov5 wk模型部署的具体过程,成功生成了可执行文件,后面就可以在板端进行运行测试。

参考文档:
https://blog.csdn.net/qq_40778196/article/details/130595389
https://blog.csdn.net/u014689277/article/details/121556024
https://github.com/mahxn0/Hisi3559A_Yolov5

如果阅读本文对你有用,欢迎关注点赞留言收藏呀!!!
2024年2月22日17:32:09
在这里插入图片描述

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

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

相关文章

用 Python 自动化处理无聊的事情

“编程最棒的部分就是看到机器做一些有用的事情而获得的胜利。用 Python 将无聊的事情自动化将所有编程视为这些小小的胜利;它让无聊变得有趣。” Hilary Mason,数据科学家兼 Fast Forward Labs 创始人 “我很享受打破东西然后把它们重新组合起来的乐趣…

SPSSAU【文本分析】|文本聚类

SPSSAU共提供两种文本聚类方式,分别是按词聚类和按行聚类。按词聚类是指将需要分析的关键词进行聚类分析,并且进行可视化展示,即针对关键词进行聚类,此处关键词可以自由选择。按行聚类分析是指针对以‘行’为单位进行聚类分析&…

陈世元:被保送中科院,两次被裁,人生不能老是按部就班的走下去,需要冒险,尝试一下新的东西

《程客有话说》是我们最新推出的一个访谈栏目,邀请了一些国内外有趣的程序员来分享他们的经验、观点与成长故事,我们尝试建立一个程序员交流与学习的平台,也欢迎大家推荐朋友或自己来参加我们的节目,一起加油。 本期我们邀请的程…

【Qt学习】QLineEdit 控件 属性与实例(登录界面,验证密码,正则表达式)

文章目录 1. 介绍2. 实例使用2.1 登录界面2.2 对比两次密码是否相同2.3 通过按钮显示当前输入的密码(并对2.2进行优化)2.4 结语 3. 正则表达式3.1 QRegExp3.2 验证输入内容 4. 资源代码 1. 介绍 关于 QLineEdit 的详细介绍,可以去查阅官方文…

Web安全之浅见

备注:这是我在2017年在自己的网站上写的文章,今天迁移过来。 昨天去参加了公司组织的一个关于网络安全的培训,了解了很多关于网络安全方面的知识,也才意识到网络安全是一项极其重要的领域。 本篇文章主要聊聊Web安全。不过我对于网…

vue3使用pinia-plugin-persistedstate 持久化不生效的问题

如下图所示,需要在路由拦截器里面写。不然一个都不生效。 【即使以前生效的,在下图【红框】中定义一下,也会失效。得挪到路由拦截器里面才行】 终于出来了

【GPTs分享】每日GPTs分享之Canva

简介 Canva,旨在帮助用户通过Canva的用户友好设计平台释放用户的创造力。无论用户是想设计海报、社交媒体帖子还是商业名片,Canva都在这里协助用户将创意转化为现实。 主要功能 设计生成:根据用户的描述和创意需求,生成定制的设…

MyBatis-Plus 优雅实现数据加密存储

文章目录 前言一、数据库字段加解密实现1. 定义加密类型枚举2. 定义AES密钥和偏移量3. 配置定义使用的加密类型4. 加密解密接口5. 解密解密异常类6. 加密解密实现类6.1 AES加密解密实现类6.2 Base64加密解密实现类 7. 实现数据库的字段保存加密与查询解密处理类8. MybatisPlus配…

Sora热潮下,如何充分利用AI减少人工测试需求?

近日,OpenAI发布视频生成模型Sora,再次引发全球科技圈讨论热潮。Sora可以根据用户输入的简短文本指令,生成长达1分钟的高清视频,视频画面具有真实感,带有些许电影质感。 根据IDC的预测,未来五年内&#xff…

Java项目:20 基于SSM实现的支教管理系统

作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 ssm支教管理系统(前台后台) 前台角色:支教学校志愿者 支教学校功能模块:支教学校查询报名职位发布已…

Android横竖屏切换configChanges=“screenSize|orientation“避免activity销毁重建,Kotlin

Android横竖屏切换configChanges"screenSize|orientation"避免activity销毁重建,Kotlin 如果不在Androidmanifest.xml设置activity的: android:configChanges"screenSize|orientation" 那么,每次横竖屏切换activity都会…

【鸿蒙 HarmonyOS 4.0】数据持久化

一、数据持久化介绍 数据持久化是将内存数据(内存是临时的存储空间),通过文件或数据库的形式保存在设备中。 HarmonyOS提供两种数据持久化方案: 1.1、用户首选项(Preferences): 通常用于保存应用的配置信息。数据通…

如何使用Express框架构建一个简单的Web应用

在这个数字化时代,Web应用的需求越来越多样化和复杂化。在前端开发领域,Express框架作为一个快速、灵活的Node.js Web应用程序框架,拥有强大的功能和丰富的生态系统,深受开发者们的青睐。本篇博客将带您一步步探索如何使用Express…

JS进阶——解构赋值

数组解构 基本: let [a, b, c] [1, 2, 3]; // a 1 // b 2 // c 3 可嵌套 let [a, [[b], c]] [1, [[2], 3]]; // a 1 // b 2 // c 3 可忽略 let [a, , b] [1, 2, 3]; // a 1 // b 3 不完全解构 let [a 1, b] []; // a 1, b undefined 剩余运…

LLMChain使用 | RouterChain的使用 - 用本地大模型搭建多Agents

单个本地大模型搭建参考博客 单个Chain:面对一个需求,我们需要创建一个llmchain,设置一个prompt模板,这个chain能够接收一个用户input,并输出一个结果;多个Chain:考虑到同时面对多个需求&#x…

【计算机网络】网络基础知识

一. 网络发展史 独立模式(单机模式):计算机之间相互独立,各自拥有独立的数据。 网络互连:将多台计算机连接在一起,完成数据共享。 随着时代的发展,越来越需要计算机之间进行互相通信&#…

#1.4w字长文#仿抖音项目架构设计与实现

一、项目介绍 本文介绍了一个Web端短视频应用,致力于为用户提供交互友好、功能完备的短视频浏览体验和直播体验。 集成了Gorse推荐算法,旨在为用户提供更个性化的推荐视频流和更权威的热门视频流。接入大模型,通过对视频内容进行语言分析&a…

旧物回收小程序开发,开启绿色生活新篇章

随着科技的发展和人们生活水平的提高,物质生活的丰富带来了大量的废弃物。如何合理处理这些废弃物,实现资源的再利用,已成为社会关注的焦点。旧物回收小程序的开发与应用,为这一问题提供了有效的解决方案。本文将探讨旧物回收小程…

洛谷C++简单题小练习day14—闰年推算小程序

day14--闰年推算小程序--2.18 习题概述 题目描述 输入 x,y,输出 [x,y] 区间中闰年个数,并在下一行输出所有闰年年份数字,使用空格隔开。 输入格式 输入两个正整数 x,y,以空格隔开。 输出格式 第一行输出一个正整数&#xf…

C++笔记:OOP三大特性之多态

前言 本博客中的代码和解释都是在VS2019下的x86程序中进行的,涉及的指针都是 4 字节,如果要其他平台下测试,部分代码需要改动。比如:如果是x64程序,则需要考虑指针是8bytes问题等等。 文章目录 前言一、多态的概念二、…