一步一步学OAK之十三:实现RGB相机上的空间对象跟踪

这篇具有很好参考价值的文章主要介绍了一步一步学OAK之十三:实现RGB相机上的空间对象跟踪。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前面我们实现了在RGB相机上进行物体的对象跟踪,能够实时跟踪我们想要追踪的物探,但是,如果我们要想知道这个物体的三维空间坐标,该如何实现呢?要想实现这个功能,我们需要用到DepthAI API提供的MobileNetSpatialDetectionNetwork节点和ObjectTracker节点,现在我们来实现它。

这里我们依然用到了mobilenet-ssd_openvino_2021.4_6shave.blob模型文件,将其下载到本地models文件夹

Setup 1: 创建文件

  • 创建新建17-spatial-object-tracker-on-rgb文件夹
  • 用vscode打开该文件夹
  • 新建一个main.py 文件

Setup 2: 安装依赖

安装依赖前需要先创建和激活虚拟环境,我这里已经创建了虚拟环境OAKenv,在终端中输入cd…退回到OAKenv的根目录,输入 OAKenv\Scripts\activate激活虚拟环境

安装pip依赖项:

pip install numpy opencv-python depthai blobconverter --user

Setup 3: 导入需要的包

在main.py中导入项目需要的包

from pathlib import Path
import cv2
import depthai as dai
import numpy as np
import time
import argparse

pathlib用于处理文件路径,sys用于系统相关的操作,cv2是OpenCV库用于图像处理,depthai是depthai库用于深度计算和AI推理。time用于处理时间,argparse用于处理命令行参数。

time库:用于处理和操作时间相关的功能和操作。提供了许多用于测量时间、获取当前时间、等待或延迟执行的函数。可用于计时、性能测试、调度任务等场景。例如,time.time()可以获取当前的时间戳,time.sleep()可以使程序休眠指定时间。

argparse库:用于解析命令行参数以及生成用户友好的命令行界面。文章来源地址https://www.toymoban.com/news/detail-519077.html

  • 允许定义程序所需的命令行参数,并自动解析和验证这些参数。
  • 可以处理位置参数、可选参数、布尔标志等多种参数类型。
  • 使用argparse可以实现灵活的命令行接口,使得程序可以方便地从命令行中获得输入。
  • 例如,可以使用argparse.ArgumentParser创建一个解析器对象,定义参数后调用parse_args()方法解析命令行参数。

Setup 4:定义和加载模型相关的路径和标签

labelMap = ["background", "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow","diningtable", "dog", "horse", "motorbike", "person", pottedplant", "sheep", "sofa", "train", "tvmonitor"]

nnPathDefault = str((Path(__file__).parent / Path('../models/mobilenet-ssd_openvino_2021.4_6shave.blob')).resolve(

到了这里,关于一步一步学OAK之十三:实现RGB相机上的空间对象跟踪的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一步一步学OAK之七:通过OAK相机实现特征跟踪

    特征跟踪,也称为目标跟踪或点跟踪,是指在序列图像中追踪物体或者场景中的特定特征点的过程。特征点可以是具有独特性质的像素,如角点、边缘、纹理等。通过跟踪这些特征点,可以在连续图像帧中确定它们的位置、速度和运动轨迹。 在计算机视觉和图像处理中,特征

    2024年02月12日
    浏览(47)
  • 一步一步学OAK之五:通过OAK相机实现边缘检测

    边缘检测是计算机视觉和图像处理中的一种基本技术,用于识别图像中物体和图像中不同区域之间的边界或轮廓。边缘是图像中具有明显灰度或强度变化的区域,通常表示不同物体、纹理或形状之间的边界。 边缘检测算法通过分析图像中像素的灰度值或强度变化情况,以找到

    2024年02月12日
    浏览(42)
  • 零基础无实物一步一步学PLCS7-1200仿真(八)-按键控制数码管显示

    项目要求:按照项目的功能完成按键控制数码管的技术显示。 项目目的:学习比较指令、数学函数指令和加减计数指令和数码管的显示原理。 项目功能:数码管可以显示两位数00-99,然后可通过四个按键完成数码管的技术显示。其中四个按键功能如下:ESC按键为取消按钮,按

    2024年02月05日
    浏览(40)
  • 零基础无实物一步一步学PLCS7-1200仿真(五)-四路简易抢答器控制

    本次项目为四路抢答器,通过本次项目了解项目开发流程,未来扩展多路抢答器只需要对程序进行微调即可。 项目要求: 1 .有 4 组进行抢答,抢答按钮为 SB1 ~ SB4 ,对应 4 个抢答指示灯为 L1 ~ L4 。 2 .主持人按钮为 SB0 ,主持人按下 SB0 ,所有指示灯复位。 3 .最先按下

    2024年02月07日
    浏览(40)
  • 零基础无实物一步一步学PLCS7-1200仿真(三)-电动机正反转控制(互锁)

     在学习完电动机的启保停控制后,我们今天来学习电气控制里面进阶的正反转控制,也就是大名鼎鼎的互锁电路。首先需要了解电动机可以实现电动机正反转的工作原理。 一、硬件电路 用S7-1200 PLC控制一台三相异步电动机,实现对电动机进行的正反转控制。通过学习本任务

    2024年02月06日
    浏览(44)
  • 零基础无实物一步一步学PLCS7-1200仿真(九)-八位流水灯/跑马灯

    项目要求:按键配合实现8位LED的流水灯/跑马灯功能。 项目目的:学习移位和循环的指令。 项目功能:设置启动、停止按钮和8个圆形的LED灯。按下启动按钮后,8个LED灯按照流水灯或者跑马灯的规则循环显示。按下停止按钮后,显示停止。循环显示的LED灯可以是单个流水灯,

    2024年02月02日
    浏览(44)
  • 零基础无实物一步一步学PLCS7-1200仿真(七)-led灯闪烁-定时器或系统时钟

    本项目是点亮一个LED指示灯,点亮LED灯是任何控制器最开始入门最重要的一个项目。本例至今才开始讲这个项目是因为PLC的优势是直接对照电路图生成PLC程序,之前提到的电机自锁和互锁电路都是PLC程序与电路图一模一样。但是毕竟我们未来要开发复杂的工程需要学习更多的

    2024年02月04日
    浏览(50)
  • Android一步一步教你实现Emoji表情键盘

    背景: 说到聊天,就离不开文字、表情和图片,表情和图片增加了聊天的趣味性,让原本无聊的文字瞬间用表情动了起来,今天给大家带来的是表情键盘,教你一步一步实现,先来看下效果图: 效果图 功能: 1、如何控制表情键盘与输入法的切换 2、如何解析表情 3、如何处

    2024年02月16日
    浏览(38)
  • Python + OpenCV一步一步地实现图像拼接(原理与代码)

    图像拼接可以理解为三大步: 按顺序读取多幅图像,并保证图像按照从左到右的顺序。 发现这些图像像素之间的相关性(涉及到 单应性 )。 将这些图像拼接成为一张全景图像。 首先,需要了解如下几个概念。 Python OpenCV SIFT特征提取的原理与代码实现_乔卿的博客-CSDN博客

    2024年02月04日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包