基于设备上解码的 Yolo 检测

news2024/11/24 10:36:52

什么是NDVI?

  • 该存储库 ( 修改自 device-decoding) 包含直接使用 DepthAI SDK (main_sdk.py) 或 DepthAI API (main_api.py) 在设备上解码运行 Yolo 目标检测的代码。目前,支持的版本有:
  • YoloV3 & YoloV3-tiny,
  • YoloV4 & YoloV4-tiny,
  • YoloV5,
  • YoloV6,
  • YoloV7,
  • YoloV8,
  • YoloV9,
  • YoloV10
  • 我们在 main_sdk_v*.py(不推荐) 和 main_api.py 中使用相同样式的 JSON 解析,但您也可以在代码中手动设置这两种情况下的值。

导出模型

  • 由于模型必须以某种方式导出转换到 OpenVINO IR,我们提供了关于训练和导出的教程:
  1. YoloV3, YoloV4, 和它们的 tiny 版本:

      训练:  

YoloV3_V4_tiny_training.ipynbicon-default.png?t=N7T8https://github.com/luxonis/depthai-ml-training/blob/master/colab-notebooks/YoloV3_V4_tiny_training.ipynb

        https://github.com/AlexeyAB/darkneticon-default.png?t=N7T8https://github.com/AlexeyAB/darknet

     导出转换:

      ​https://github.com/luxonis/yolo2openvinoicon-default.png?t=N7T8https://github.com/luxonis/yolo2openvino

    2.  YoloV5, YoloV6, 和 YoloV7 :

     训练可参考原始仓库:

      • YoloV5,
      • YoloV6,
      • YoloV7
      • YoloV8,
      • YoloV9, YoloV9_ultralytics,
      • YoloV10,
      • YoloV5_training.ipynb
      • YoloV6_training.ipynb
      • YoloV7_training.ipynb
      • YoloV8_training.ipynb 

    导出转换

      • DepthAI Tools 网页在线转换,
      • 参考 tools/yolo at master · luxonis/tools · GitHub 和 tools/yolov7 at master · luxonis/tools · GitHub 进行本地转换
      • OAK 相机如何将 YOLO 系列模型转换成 blob 格式?

用法

  • ::: mkdocs-typer :module: depthai_yolo.cli :command: app :prog_name: depthai_yolo :depth: 4

  • 用法 1: 模块安装
  • 安装
  • python3 -m pip install .
  • 运行
  •    可以使用 download_models 下载全部预定义模型
  • python3 -m depthai_yolo.download_models
    # 或
    python3 -m depthai_yolo --download
    # 或
    depthai_yolo –download
  • python3 -m depthai_yolo oak -m model_name -c config_json
    # 或
    depthai_yolo api -m model_name -c config_json
  •    若使用 OAK_D_SR 请运行
  • python3 -m depthai_yolo sr -m model_name -c config_json
    # 或
    depthai_yolo sr -m model_name -c config_json
  •    若使用 OAK_D_LR 请运行
  • python3 -m depthai_yolo lr -m model_name -c config_json
    # 或
    depthai_yolo lr -m model_name -c config_json
  • 用法 2: 源码运行
  • 安装依赖
  • python3 -m pip install -r requirements.txt
  •   若使用 SDK 请运行
  • python3 -m pip install -r requirements-sdk.txt

  • 运行脚本
  •     可以使用 download_models.py 脚本下载预定义模型
  • python3 -m src/depthai_yolo/download_models.py
    # 或
    python3 run.py –download
    python3 run.py oak -m model_name -c config_json
  •   若使用 OAK_D_SR 请运行
  •   python3 run.py sr -m model_name -c config_json
  •   若使用 OAK_D_LR 请运行
  •   python3 run.py lr -m model_name -c config_json
    ``
  • 用法 3: SDK (不推荐)
  • 安装依赖
  • python3 -m pip install -r sdk_scripts/requirements-sdk.txt
  • 运行脚本
  • python3 sdk_scripts/main_sdk_v1.2.py -m model_name -c config_json
    python3 sdk_scripts/main_sdk_v1.9.py -conf config_json
  • 注意
  • model_name 是来自 DepthAI 模型库 (https://zoo.luxonis.com) 的模型名称或 blob 文件的相对路径。 请查看我们的模型库以查看可用的预训练模型,或使用 -ls/--list_models 参数查看可用模型。
  • config_json 是带有 Yolo 模型元数据(输入形状、锚点、标签等)的 JSON 的相对路径。
  • JSONs

  • 我们已经为常见的 Yolo 版本提供了一些 JSON。您可以编辑它们并为您的模型设置它们,如上述教程中的后续步骤部分所述。如果您要更改教程中的某些参数,则应编辑相应的参数。一般来说,JSON 中的设置应该遵循模型的 CFG 中的设置。对于 YoloV5,默认设置应与 YoloV3 相同。
  • Note:值必须与训练期间在 CFG 中设置的值相匹配。如果您使用不同的输入宽度,您还应该将 side32 更改为 sideX 并将 side16 更改为 sideY,其中 X = width16 和 Y = width32。如果您使用的是非微型模型,则这些值为 width8、width16 和 width32。
  • 您还可以更改 IOU 和置信度阈值。如果多次检测到同一个目标,则增加 IOU 阈值。如果没有检测到足够的目标,则降低置信度阈值。请注意,这不会神奇地改善您的目标检测器,但如果某些目标由于阈值太高而被过滤掉,则可能会有所帮助。
  • Depth 信息

  • DepthAI 使您能够利用深度信息并获取检测到的对象的 x、y 和 z 坐标。
  • python3 run.py api -m model_name -c config_json –spatial

    或者

  • python3 main_sdk_v1.2.py -m model_name -c config_json –spatial
    python3 main_sdk_v1.9.py -conf config_json –spatial

    如果您对使用 Yolo 检测器的深度信息感兴趣, 请查看我们的 文档。

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

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

相关文章

滑动窗口大总结!!!妈妈以后再也不担心我不会做滑动窗口啦~

写在前面:全部题都源于力扣 讲解题目一:最小覆盖子串题目二:字符串排列题目三:找所有字母异位词题目四:无重复字符的最长子串题目五:滑动窗口的最大值 讲解 滑动窗口算法技巧主要用来解决子数组问题&#…

B 端产品设计:导航系统构建指南

两年前写的一篇关于导航菜单的文章帮助许多学生进入 B 端设计领域。然而,两年过去了,行业在不断发展,文章中的许多观点并不适用于当前的 B 端设计环境。如今的 B 端设计越来越受到重视,所以最近打算深入挖掘之前不太过时的文章内容…

strimzi operator 部署kafka集群(可外部访问)

Strimzi介绍 官方文档:https://strimzi.io/docs/operators/0.42.0/overview#kafka-components_str Strimzi介绍 Strimzi 是一个用于 Apache Kafka 在 Kubernetes 上部署和管理的开源项目。它提供了一组 Kubernetes 自定义资源定义(Custom Resource Definitions,CRDs)、控制…

充电宝有必要买贵的吗?充电宝可以带上高铁吗?充电宝选购方法

市面上的充电宝可以说是非常的多,但是能选到一款适合自己的充电宝基本是不容易的,然而,当我们准备选购充电宝时,常常会面临诸多疑问。其中,“充电宝有必要买贵的吗”就是一个备受关注的问题。价格似乎成为了我们在众多…

[Git][认识Git]详细讲解

目录 1.什么是仓库?2.认识工作区、暂存区、版本库3.认识 .git1.index2.HEAD && master3.objects4.总结 1.什么是仓库? 仓库:进⾏版本控制的⼀个⽂件⽬录 2.认识工作区、暂存区、版本库 工作区:在电脑上写代码或⽂件的⽬录…

【C++】C++应用案例-通讯录管理系统

目录 一、整体介绍 1.1、需求和目标 1.2、整体功能描述 二、页面及功能描述 2.1 主菜单 2.2 添加联系人菜单 2.3 显示联系人菜单 2.4 修改联系人菜单 2.5 退出功能 三、流程设计 3.1 主流程 3.2 添加操作流程 3.3 显示联系人操作流程 3.4 修改联系人操作流程 四…

V.PS荷兰阿姆斯特丹VPS详细测评

V.PS怎么样? V.PS的荷兰VPS位于荷兰阿姆斯特丹数据中心,实际的网络从测评的数据来看:电信走的CN2 GIA/AS4809网络、联通走的是CUII/AS9929网络、移动走的是CUII/AS9929网络,也就是说三网都是走的运营商的轻负载线路。 默认的CPU型…

c/c++自增运算符

自增运算符在前:先自增再取值 自增运算符在后:先取值再自增 如图: lptmp等于tmp,但是t等于128,也就说,当位于后面时,先取值,再自增。

数论第四节:二元一次不定方程、勾股数

不定方程定义 解不确定的方程称为不定方程。一般化的定义为:不定方程是指未知数的个数多余方程的个数,或未知数受到某种限制(如整数、正整数等)的方程和方程组。 二元一次不定方程定义 形如axbyc的形式的方程。其中a,b不等于0&…

python print 函数参数:sep 自定义分隔符,end 自定义结尾符

1. 简述 print 函数可以将内容打印到标准输出,如果不指定 end 参数,默认在输出的内容之后加一个 “回车符\n”。 以下是 print 函数常用的参数用法: print(object, …, sepstr, endstr) object, …:要打印的内容,可以…

如何基于欧拉系统完成第三方软件仓库的安装

首先,我们需要写一个镜像脚本 rootlocalhost yum.repos.d]# vim docker-ce.repo内容如下 [docker-ce] namedocker baseurlhttps://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/rhel/9/x86_64/stable/ //我们使用的是清华的镜像源 gpgcheck0 tips:这里告诉大家一…

来点八股文(五) 分布式和一致性

Raft raft 会进入脑裂状态吗?描述下场景,怎么解决? 不会。raft通过选举安全性解决了这个问题: 一个任期内,follower 只会投票一次票,且先来先得;Candidate 存储的日志至少要和 follower 一样新…

Kafka基本讲解

Kafka基本讲解 一:Kafka介绍 Kafka是分布式消息队列,主要设计用于高吞吐量的数据处理和消息传输,适用于日志处理、实时数据管道等场景。Kafka作为实时数仓架构的核心组件,用于收集、缓存和分发实时数据流,支持复杂的…

【单例设计模式】揭秘单例模式:从原理到实战的全方位解析(开发者必读)

文章目录 深入理解单例设计模式:原理、实现与最佳实践引言第一部分:设计模式简介第二部分:单例模式定义第三部分:单例模式的优点和缺点第四部分:单例模式的实现方式懒汉式非线程安全的实现线程安全的实现(双…

vmware ubuntu虚拟机网络联网配置

介绍vmware虚拟机配置基础网络环境,同时连接外网(通过桥接模式),以及ubuntu下输入法等基础工具安装。 本文基于ubuntu22.04,前提虚拟机已经完成安装。本文更多是针对vmware虚拟机的设置,之前有一篇针对ubun…

第三关:Git 基础知识

一、Git是什么 Git是一种开源的分布式版本控制系统,广泛应用于软件开发领域,尤其是在协同工作环境中。它为程序员提供了一套必备的工具,使得团队成员能够有效地管理和跟踪代码的历史变更。下面是 Git 的主要功能和作用的规范描述&#xff1a…

Java面试题——第二篇(设计模式)

1. 工厂方法模式 1.1 普通工厂模式 建立一个工厂类,对实现了同一接口的一些类进行实例的创建。 1.2 抽象工厂模式 抽象多个工厂类,提高工厂的可扩展性 定义抽象工厂接口 public interface DeviceFactory { Phone createPhone(); Computer creat…

【工具插件类教学】vHierarchy 2工具编辑器扩展使用

目录 一、下载导入 二、使用介绍 1.便捷小工具 a.图标和颜色Icons and colors b.对象组件缩略图Component minimap c.层级线展示Hierarchy lines d.极简模式Minimal mode e.斑马条纹图案Zebra striping f.激活切换Activation toggle 2、快捷键 一、下载导入 资源官方…

Redis系列之Redis Sentinel

概述 Redis主从集群,一主多从模式,包括一个Master节点和多个Slave节点。Master负责数据的读写,Slave节点负责数据的查询。Master上收到的数据变更,会同步到Slave节点上实现数据的同步。通过这种架构实现可以Redis的读写分离&…

U盘文件或目录损坏无法读取?专业恢复策略全解析

U盘困境:文件目录的隐形危机 在日常的数字生活中,U盘作为便捷的数据存储与传输工具,扮演着至关重要的角色。然而,当U盘中的文件或目录突然遭遇损坏,导致无法被正常读取时,这无疑给用户带来了极大的困扰。这…