【无标题】【Atlas 200DK】YOLOv3和YOLOv5部署

2023-11-10

数据集介绍

无论什么数据集开发版移植的流程是差不多的,我们使用的数据集是NWPU VHR-10 Dataset,这是由西工大标注的航天遥感目标检测数据集,该数据集有650张包含目标的图像和150张背景图像,共计800张,目标种类包括飞机、船舰、油罐、棒球场、网球场、篮球场、田径场、港口、桥梁和汽车一共10个类别,为了满足项目要求,将四个篮球场归为一类,所以本项目实际类别有7个类别。我们进行数据增强扩充后总共有2130张,训练集有1420张,下面统计了每一个类别的个数:

类别 飞机 船只 油库 操场 港口 桥梁 车辆
数量 3378 930 718 2418 798 374 2254

在这里插入图片描述

开发板环境搭建

我们所使用的版本是C73,这个版本是和20.1.rc1兼容的,华为推出了1.3.0.0、1.32.0.0、20.0.RC1、20.1.rc1四个版本。20.1.rc1版本是华为基于全新架构打造的最新版本,更易于开发者阅读、了解、开发属于自己的AI代码。按照以下链接可以完成环境的搭建:
环境搭建教程

YOLOv3的部署

模型训练转换

YOLOv3 source code
因为目前开发板只支持caffe和tensorflow训练的模型的转换,所以我先选用yolov3先训练了一个基础模型并且进行部署和测试。将训练好的模型用freeze_graph.py转换成.pb文件,再利用mindstudio将.pb(大概有246.6MB)转成.om(124.2MB)模型,没有经过量化。(界面中Tools下面Model Converter进行模型转换)

可参考mindstudio官方手册

转换参数设置
在这里插入图片描述
在这里插入图片描述
这里的R是255的倒数,通过这些步骤可以将图片自己归一化。

服务器上的结果

显卡型号:Nvidia GTX 1080 ti
cuda版本:9.0
(测试参数设置使用的都是默认的,比如score阈值是0.3,IoU阈值是0.45)
在这里插入图片描述

开发板上的结果

部署到开发板上的过程,前期图方便为完成任务主要用python部署,但是很慢很慢离实时还差得远,之后只能用c++部署,其实从一开始就应该用c++部署的,官方给提供了c++示例代码(但是是基于caffe训练的模型),应该先把流程过一遍先明白开发的顺序是怎样的。整个过程遇到了很多困难但也学到了很多,但回顾总体过程,其实在部署的过程中需要完善的代码主要就是前处理和后处理部分,模型推理部分直接可以用芯片的acl接口完成。用python和c++写的代码都放在了我的github上,欢迎给个star✨,谢谢。

python部署

python部署是真的慢,先上速度的结果。10帧每秒

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【无标题】【Atlas 200DK】YOLOv3和YOLOv5部署 的相关文章

随机推荐

  • Chromium Win10 开发环境搭建

    记录chromium 开发搭建过程 系统 软件环境不同 所遇问题可能不同 但主体关键相似 仅供参考 VS 安装 安装vs2019 the version 10 0 19041 or higher Windows 10 SDK install
  • idea maven项目运行不了,好多包导不了

    其实是idea默认给你选择了自带的maven和仓库 你可以改成你自己的 使用国内镜像就可以了 先简单记录一下 到时再详细写
  • 使用php 实现生成Excel文件并导出

    在现在的项目里 不管是电商项目还是别的项目 在管理端都会有导出的功能 比方说订单表导出 用户表导出 业绩表导出 这些都需要提前生成excel表 然后在导出 实际上是在代码里生成一张excel表 然后通过下载api进行导出的 好了 先给大家讲
  • promise跟ajax区别,Promise和AJAX有什么区别?

    你感到困惑的承诺和Ajax调用 它们有点像苹果和刀子 你可以用刀切苹果 刀是可以应用于苹果的工具 但这两者是非常不同的东西 承诺是管理异步操作的工具 他们会跟踪异步操作何时完成以及结果如何 并让您与其他代码或其他异步操作协调完成以及这些结果
  • 嵌入式学习--vi的基本命令二

    嵌入式学习 vi的基本命令二 vi查找命令 vi替换命令 vi复制和剪切命令 vi查找命令 string 查找字符串string n继续向下查找 N向上查找 按回车后 光标的位置直接跳转到字符char的前面 vi替换命令 范围 s 旧str
  • 2021 字节跳动面试总监首发 1121 道 LeetCode 算法刷题笔记(含答案)

    关于算法刷题的困惑和疑问也经常听朋友们提及 这份笔记里面共包含作者刷 LeetCode 算法题后整理的数百道题 每道题均附有详细题解过程 很多人表示刷数据结构和算法题效率不高 甚是痛苦 有了这个笔记的总结 对校招和社招的算法刷题帮助之大不言
  • Windows与网络基础-1-2-虚拟机安装Windows10/ server2016

    目录 一 下载虚拟机软件 1 1新建虚拟机 1 2选择操作系统类型和windows版本 1 3自定义虚拟机名称 1 4设置最大磁盘大小 1 5配置内存和处理器 1 6挂载镜像文件 1 7进入window配置界面 二 点击进去按步骤安装即可
  • 常用邮箱工具类

    废话不多说 直接上代码 自个耍 package com example demo util import javax mail import javax mail internet InternetAddress import javax
  • 多线程基础篇(包教包会)

    文章目录 一 第一个多线程程序 1 Jconsole观察线程 2 线程休眠 sleep 二 创建线程 三 Thread类及常见方法 1 Thread 的常见构造方法 2 Thread 的几个常见属性 3 启动线程 start 4 中断线程
  • 宝塔面板忘记用户名,忘记密码怎么办?

    1 重新设置密码找回用户名 情况一 已经修改过用户名和密码 很多网上的解决方法都只是告诉我们进入SSH设置 但是很多小伙伴并不知道怎么进入SSH 导致解决该问题很麻烦 其实我们直接在阿里云中云服务器中的远程连接就可以解决这个问题 第一步 直
  • 利用security.js实现RSA加密

    在项目中遇到要对用户输入的密码进行RSA加密的需求 总结一下实现过程 div div
  • Android和java两平台AES的互相加密解密

    import java io UnsupportedEncodingException import java security InvalidKeyException import java security Key import jav
  • 什么是多态机制?Java语言是如何实现多态的?

    多态是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用 在编程时并不确定 而在程序运行期间才确定 即一个引用变量到底会指向哪个类的实例对象 该引用变量发出的方法到底调用哪个类中实现的方法 必须由程序运行期间才能决定 因为
  • 计算机系统唯一能识别的不需要翻译,第一章 计算机基础知识06966new.ppt

    第一章 计算机基础知识06966new ppt 第一章 计算机基础知识 2 1 计算机软件系统 输入计算机的信息一般有两类 一类称为数据 一类称为程序 计算机是通过执行程序所规定的各种指令来处理各种数据的 1 指令 是指示计算机执行某种操作
  • IntelliJ IDEA(九) :酷炫插件系列

    最近项目比较忙 很久没有更新IDEA系列了 今天介绍一下IDEA的一些炫酷的插件 IDEA强大的插件库 不仅能给我们带来一些开发的便捷 还能体现我们的与众不同 1 插件的安装 打开setting文件选择Plugins选项 Ctrl Alt
  • 尊云服务器出问题,云服务器用户常见问题

    云服务器用户常见问题 Q 装预装操作系统以后的默认密码是什么 A 默认的密码和云服务器开通时输入的密码是一样的 就是一个用户一个密码 不是固定的 Q 云服务器中如何划分硬盘的分区 A 云服务器系统系统安装后 默认只有一个10G的C盘用于操作
  • Android进阶:架构师花费近一年时间整理出来的安卓核心知识,聪明人已经收藏了!

    我们程序员经常迷茫于有太多东西要学 有些找不到方向 不知所措 很多程序员都愿意说 我想变得更好 但是更好是什么却很模糊 同时我们又不知道该怎么样去做 我们的生命如此短暂 作为程序员的职业生涯可能会更短 所以我们更加需要充分利用工作 工作间隙
  • 踩坑,发现一个ShardingJdbc读写分离的BUG

    前言 最近公司准备接入ShardingJdbc做读写分离了 老大让我们理一理有没有写完数据立马读的场景 因为主从同步是有延迟的 如果写完读取数据走到从库 而从库正好有延迟 没读取到数据 岂不是造成了生产事故 今天我们来看看 Sharding
  • CUDA和TensorRT入门

    CUDA 官方教程 CUDA C Programming Guide nvidia com 一 基础知识 首先看一下显卡 GPU 和CUDA的关系介绍 显卡 GPU和CUDA简介 吴一奇的博客 CSDN博客 延迟 一条指令返回的时间间隔 吞
  • 【无标题】【Atlas 200DK】YOLOv3和YOLOv5部署

    Atlas 200DK YOLOv3和YOLOv5部署 数据集介绍 开发板环境搭建 YOLOv3的部署 模型训练转换 服务器上的结果 开发板上的结果 python部署 c 部署 YOLOv5的部署 模型训练转换 服务器上的结果 开发板上的结
Powered by Hwhale