目标跟踪算法研究整理

2023-11-09

最近项目有用到目标跟踪的算法,用的还是传统opencv,整理一下

1.基础框架

目标跟踪基础认识

视频图像跟踪算法综述

opencv实现目标跟踪的八种算法

2.CSRT追踪器

CSRT追踪器

官方描述

在具有通道和空间可靠性的判别相关滤波器(DCF-CSR)中,我们使用空间可靠性图将滤波器支持调整为从帧中选择区域的一部分以进行跟踪。 这确保了所选区域的放大和定位,并改善了对非矩形区域或对象的跟踪。 它仅使用2个标准功能(HoG和颜色名称)。 它还以相对较低的fps(25 fps)运行,但为对象跟踪提供了更高的精度。

DCF-CSR论文综述

CSR-DCF视频目标跟踪论文笔记(1)——关于似然和后验概率在分割操作中的应用

CSR-DCF视频目标跟踪论文笔记(2)——关于滤波器Learning的推导(Augmented Lagrangian方法)

基础知识词汇定义:

1.似然和后验概率

似然和后验概率

2.贝叶斯定理

3.反向投影:

  • 1.反向投影的作用是什么?
  •     反向投影用于在输入图像(通常较大)中查找特定图像(通常较小或者仅1个像素,以下将其称为模板图像)最匹配的点或者区域,也就是定位模板图像出现在输入图像的位置。
  • 2.反向投影如何查找(工作)?
  •     查找的方式就是不断的在输入图像中切割跟模板图像大小一致的图像块,并用直方图对比的方式与模板图像进行比较。
  • 假设我们有一张100x100的输入图像,有一张10x10的模板图像,查找的过程是这样的:
  • (1)从输入图像的左上角(0,0)开始,切割一块(0,0)至(10,10)的临时图像;
  • (2)生成临时图像的直方图;
  • (3)用临时图像的直方图和模板图像的直方图对比,对比结果记为c;
  • (4)直方图对比结果c,就是结果图像(0,0)处的像素值;
  • (5)切割输入图像从(0,1)至(10,11)的临时图像,对比直方图,并记录到结果图像;
  • (6)重复(1)~(5)步直到输入图像的右下角。
  • 3.反向投影的结果是什么?
  •     反向投影的结果包含了:以每个输入图像像素点为起点的直方图对比结果。可以把它看成是一个二维的浮点型数组,二维矩阵,或者单通道的浮点型图像。
  • 4.特殊情况怎么样?
  •     如果输入图像和模板图像一样大,那么反向投影相当于直方图对比。如果输入图像比模板图像还小,直接罢工~~。
  • 5.使用时有什么要注意的地方?
  •     需要注意的地方比较多,我们对照反向投影函数来说:
  •     (void cvCalcBackProjectPatch
  •         IplImage** image,   /*输入图像:是一个单通道图像数组,而非实际图像*/
  •         CvArr* dst,         /*输出结果:是一个单通道32位浮点图像,它的宽度为W-w+1,高度为H-h+1,这里的W和H是输入图像的宽度和高度,w和h是模板图像的宽度和高度*/
  •         CvSize patch_size,  /*模板图像的大小:宽度和高度*/
  •         CvHistogram* hist,  /*模板图像的直方图:直方图的维数和输入图像的个数相同,并且次序要一致;例如:输入图像包含色调和饱和度,那么直方图的第0维是色调,第1维是饱和度*/
  •         int method,         /*对比方式:跟直方图对比中的方式类似,可以是:CORREL(相关)、CHISQR(卡方)、INTERSECT(相交)、BHATTACHARYYA*/
  •         float factor        /*归一化因子,一般都设置成1,否则很可能会出错;中文、英文以及各路转载的文档都错了,这个参数的实际类型是double,而非float,我看了源代码才搞定这个地方*/
  •     );
  •     还有最需要注意的地方:这个函数的执行效率非常的低,在使用之前尤其需要注意图像的大小,直方图的维数,对比方式。如果说对比单个直方图对现在的电脑来说是清风拂面,那么反向投影是狂风海啸。对于1010x1010的RGB输入图像,10x10的模板图像,需要生成1百万次3维直方图,对比1百万次3维直方图。

 

 

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

目标跟踪算法研究整理 的相关文章

  • 使用卡尔曼滤波器跟踪位置和速度

    我正在使用卡尔曼滤波器 恒定速度模型 来跟踪物体的位置和速度 我测量对象的 x y 并跟踪 x y vx vy 这是有效的 但是如果在传感器读数 x y vx vy 上添加 20 mm 的高斯噪声 即使该点没有移动 只是噪声也会发生波动 对
  • 如何使用 python 定位和读取 Data Matrix 代码

    我正在尝试读取微管底部的数据矩阵条形码 我试过libdmtx http libdmtx sourceforge net 它有 python 绑定 当矩阵的点是方形时工作得相当好 但当矩阵的点是圆形时工作得更糟 如下所示 另一个复杂问题是在某
  • HoughLinesP后如何合并线?

    My task is to find coordinates of lines startX startY endX endY and rectangles 4 lines Here is input file 我使用下一个代码 img c
  • 使用 OpenCV 进行相机校准 - 如何调整棋盘方块大小?

    我正在使用 OpenCV Python 示例开发相机校准程序 来自 OpenCV 教程 http opencv python tutroals readthedocs io en latest py tutorials py calib3d
  • 相机校准:如何正确进行

    我正在尝试使用棋盘格通过众所周知的张氏方法进行校准 然后进行捆绑调整 该方法在 Matlab 和 OpenCV 中都可用 有很多经验指南 但从我个人的经验来看 准确性是相当随机的 它有时可能非常好 但有时也可能非常糟糕 实际上 只需将棋盘放
  • 如何用OpenCV解决图像处理相机IO延迟

    我有一个 OpenCV 程序 其工作原理如下 VideoCapture cap 0 Mat frame while true cap gt gt frame myprocess frame 问题是如果myprocess耗时较长 超过相机的I
  • Alpha 混合可消除图像中的接缝

    我缝合了两张图像 但在最终图像中存在可见的接缝 我正在尝试使用阿尔法混合去除那条接缝 我知道 Alpha 混合是使用cvAddweight 函数 但在此函数参数是两个图像 alpha beta gamma和目的地 我正在服用gamma 0
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • OpenCV Sobel 滤波器 - 为什么它看起来这么糟糕,尤其是与 Gimp 相比?

    我正在尝试使用 OpenCV 重建一些我之前在 Gimp 中完成的预处理 第一级是用于边缘检测的 Sobel 滤波器 它在 Gimp 中运行得很好 现在这是我对 OpenCV 的尝试 opencv imgproc Sobel src sca
  • 将 CvSeq 保存到数组

    我对 OpenCV 文档有点迷失 我想将 cvFindContours 返回的 CvSeq 保存到一个数组中 据我了解它将返回 CvContour 的 seq 但我找不到它包含的内容 我应该保存其中的哪些部分 稍后我可以迭代它并说调用 cv
  • CV_MAT_ELEM 中的编译错误

    调用estimateRigidTransform 的结果是我得到一个名为 trans 的cv Mat 对象 为了检索其包含的矩阵 我尝试以这种方式访问 其元素 for i 0 i lt 2 i for j 0 j lt 3 j mtx j
  • C++ OpenCV imdecode 慢

    我将图像的字节数组从 C 发送到 C 库 我使用 OpenCV 版本 3 3 1 解码图像 BMP 图像解码速度很快 但 JPEG 图像解码速度很慢 如何加快 JPEG 图像的解码时间 多线程 GPU 解码性能 Resolution For
  • OpenCV 中的 Canny 可以同时处理灰度图像和彩色图像吗?

    我有一些关于Canny 边缘检测器 in OpenCV 这是我尝试过的代码 def auto canny image sigma 0 33 v np median image lower int max 0 1 0 sigma v uppe
  • 结果显示图像上有衬里

    我正在使用 opencv 和 android ndk 下面是我的 jni 代码 void Vignete Mat img1 Mat img2 Mat out resize img1 img1 img2 size img1 convertTo
  • 使用 Brew 安装 OpenCV 永远不会完成

    所以我尝试使用 Homebrew 安装 opencv 但它不起作用 我用了brew tap homebrew science进而brew install opencv发生的情况是 gt Installing opencv from home
  • 已过时 - OpenCV 的错误模式

    我正在使用 OpenCV 1 进行一些图像处理 并且对 cvSetErrMode 函数 它是 CxCore 的一部分 感到困惑 OpenCV 具有三种错误模式 叶 调用错误处理程序后 程序终止 Parent 程序没有终止 但错误处理程序被调
  • 从笔记本中提取文本

    我正在尝试从图像中提取手写文本 我使用 python 和 opencv 函数 例如 find contours 当我使用像这样的图像时 一切进展顺利 它工作得很好 因为我有一个简单的背景 但后来我用这张图片测试了它 由于背景中有笔记本的线条
  • Python中使用cv2获取当前视频播放位置

    我正在尝试使用 CV2 和 Python 从播放视频中获取当前播放时间位置 如果可能 以毫秒为单位 目前我正在使用此示例代码来播放视频文件 import cv2 import numpy as np file name 2 mp4 wind
  • 将 RGB 转换为黑色或白色

    我如何在Python中获取RGB图像并将其转换为黑白图像 不是灰度 我希望每个像素要么是全黑 0 0 0 要么是全白 255 255 255 流行的 Python 图像处理库中是否有任何内置功能可以完成此任务 如果不是 最好的方法是循环遍历
  • 在 python + openCV 中使用网络摄像头的问题

    我正在使用以下代码使用 openCV python 访问我的网络摄像头 import cv cv NamedWindow webcam feed cv CV WINDOW AUTOSIZE cam cv CaptureFromCAM 1 然

随机推荐

  • Java堆内存是线程共享的吗

    转载声明 Java堆内存是线程共享的 面试官 你确定吗 Java作为一种面向对象的 跨平台语言 其对象 内存等一直是比较难的知识点 所以 即使是一个Java的初学者 也一定或多或少的对JVM有一些了解 可以说 关于JVM的相关知识 基本是每
  • 堆叠注入原理解析

    文章目录 一 堆叠注入原理 二 堆叠注入触发条件 三 题目 一 堆叠注入原理 mysql数据库sql语句的默认结束符是以 结尾 在执行多条SQL语句时就要使用结束符隔开 那么在 结束一条sql语句后继续构造下一条语句 是否会一起执行 因此这
  • Shell脚本调试技巧

    脚本调试的主要工作就是发现引发脚本错误的原因以及脚本源代码中定位错误行 归纳汇总了SHELL脚本的总总方法 供大家学习参考 方式一 通过echo方式 功能 最简单的调试方法 可以在任何怀疑出错的地方用echo打印变量 场合 所有怀疑可能有问
  • 华硕PRIME Z390-P主板设置开启虚拟化技术

    没开虚拟化技术virtual box只能创建32位的系统 开启之后才能创建windows 7 64位系统 参考文章 https shiyousan com post 636245851547291596 https jingyan baid
  • Vue中下载不同文件的几种方式

    当在Vue中需要实现文件下载功能时 我们可以有多种方式来完成 下面将介绍五种常用的方法 1 使用window open方法下载文件
  • 【BZOJ3309】DZY Loves Math

    3309 DZY Loves Math Time Limit 20 Sec Memory Limit 512 MB Submit 411 Solved 161 Submit Status Discuss Description 对于正整数n
  • python面试题_50道Python面试题集锦(附答案)

    Python是目前编程领域最受欢迎的语言 在本文中 我将总结Python面试中最常见的50个问题 每道题都提供参考答案 希望能够帮助你在2019年求职面试中脱颖而出 找到一份高薪工作 这些面试题涉及Python基础知识 Python编程 数
  • Java 导入excel 两个sheet

    import java io File import java io FileInputStream import java io IOException import org apache poi ss usermodel Cell im
  • nexus仓库有jar但是maven 拉取不到jar问题解决

    eclipse在工程上右键 maven gt select maven profile 然后选择profile就好了 方式二 直接使用命令行拉取 mvn f pom xml dependency copy dependencies
  • mac显示文件路径

    在 Mac 上 可以使用 显示文件路径 功能来查看文件的路径 这个功能可以让你看到文件所在文件夹的完整路径 以及文件名 要查看文件路径 你可以在 Finder 中打开文件所在的文件夹 然后按下 Command Shift G 键 输入文件名
  • CCP协议学习

    一 CCP协议基础知识 a CCP CAN Calibration Protocol 中文名为CAN标定协议 是基于CAN总线的一种应用层协议 b CCP可以读取RAM PORTS ROM FLASH 写RAM PORTS FLASH c
  • signalr 控制台做服务端

    服务端 一 新建控制台应用程序 net framework 4 8 SignalRSelfHost 二 引入NuGet包 install package Microsoft AspNet SignalR Core install packa
  • Centos安装配置git

    最简单的安装方式直接使用yaml命令 yum install git all 服务器回应 其实除了安装git之外 也会安装其他需要的依赖文件 yum 安装的git默认是 git version 1 8 3 1 git官网下载压缩包 本地配置
  • JPA快速开发之查询接口Repository

    什么是JPA SpringData是Spring提供的一个数据操作框架 而SpringData JPA则是该框架下基于JPA标准进行数据操作的模块 SpringData JPA简化了持久层代码的操作 只需编写接口即可实现 JPA 全称Jav
  • Python全栈开发【基础-10】流程控制之for循环

    专栏介绍 本专栏为Python全栈开发系列文章 技术包括Python基础 函数 文件 面向对象 网络编程 并发编程 MySQL数据库 HTML JavaScript CSS JQuery bootstrap WSGI Django Flas
  • JetBrains产品教育版申请

    JetBrains产品教育版申请 Pycharm和IntelliJ都是申请的JetBarins官方edu版 功能上应该和professional一样 虽然咱不一定能用得到pro 以下内容以申请Pycharm为例 事实上 只要能认证成功 所有
  • 蓝牙DA14580学习教程(附开源可编程手环/手表全套学习资料下载地址)

    DA14580学习 DA14580用来干什么 1 超长待机的智能手环 手表和其他智能穿戴设备 2 智能鼠标 键盘 遥控器 触控板 语音和手势识别控制板等 3 计步 如小米手环 活动和睡眠监测器 血压血糖心率监测器 4 多感测器运动电脑平台
  • 数据处理的关键组件:编程与数据加工

    编程是计算机科学中至关重要的一环 它涉及到对数据进行加工与处理的过程 通过编程 我们可以创建算法和程序来操作和转换数据 使其具有意义和价值 在本文中 我们将探讨编程在数据处理中的作用 并提供一些使用中文编写的源代码示例 编程语言是用来编写程
  • spring boot2 与dubbo整合经验

    开始接触spring boot2整合dubbo时 参考了好多文章 都不太完全 导致整合屡次失败 坚信降低门槛才会普及大众 否则技术再好束之高阁也白搭 dubbo配置文件分好几种 xml类 properties类 api配置类 注解类 另外注
  • 目标跟踪算法研究整理

    最近项目有用到目标跟踪的算法 用的还是传统opencv 整理一下 1 基础框架 目标跟踪基础认识 视频图像跟踪算法综述 opencv实现目标跟踪的八种算法 2 CSRT追踪器 CSRT追踪器 官方描述 在具有通道和空间可靠性的判别相关滤波器