Computer vision 实现快速且容易出错的对象跟踪的最有效方法是什么?

Computer vision 实现快速且容易出错的对象跟踪的最有效方法是什么?,computer-vision,Computer Vision,在花了一些时间学习基本的计算机视觉概念和技术后,我开始注意到当亮度或比例发生变化时,简单的脚本会变得多么不可靠,使用更高级的解决方案(如创建一个制作良好的HAAR cascade或基于HOG特征的svm)会消耗多少资源。此外,在创建高质量模型时,一些涉及机器学习的更高级方法通常需要花费大量时间和GPU小时 最近,在YouTube上我发现了很多所谓的VTuber,他们使用各种软件来控制虚拟化身,并进行精确的运动跟踪,而且似乎没有任何错误。虽然这不是不可想象的,但使用软件的人数和软件本身的数量似乎相

在花了一些时间学习基本的计算机视觉概念和技术后,我开始注意到当亮度或比例发生变化时,简单的脚本会变得多么不可靠,使用更高级的解决方案(如创建一个制作良好的HAAR cascade或基于HOG特征的svm)会消耗多少资源。此外,在创建高质量模型时,一些涉及机器学习的更高级方法通常需要花费大量时间和GPU小时

最近,在YouTube上我发现了很多所谓的VTuber,他们使用各种软件来控制虚拟化身,并进行精确的运动跟踪,而且似乎没有任何错误。虽然这不是不可想象的,但使用软件的人数和软件本身的数量似乎相当大

为了进一步研究,我研究了类似技术的不同工作方式,但到目前为止,我只找到了一个复杂的解决方案,涉及人工智能驱动的模型或连接到用户身体上的某种位置传感器的帮助。尽管如此,很难相信所有这些人都采取了这样的措施,所以我意识到,也许这可以通过一些相对容易消耗资源的cv解决方案来实现。到目前为止,我研究了将模型关节“映射”到人类关节的不同方法。我自己尝试了基本的计数器匹配和绿屏过滤以避免错误。虽然我成功地消除了几乎所有的错误,但仍有一些时候会将折断的手臂映射到肘部等


仅使用计算机视觉如何实现如此高质量的物体识别和运动跟踪?

我建议您查看以下内容。它实现了各种现成的跟踪算法。这是一个很好的起点。这些方法将是快速有效的,但这只解决了问题的跟踪部分

物体检测(如AI/ML,因此可能超出了问题的“计算机视觉”部分)的因素是首先识别要跟踪的物体。当然,目标检测将使之自动化。离散帧的对象检测不一定关联对象,因此,例如,在视频帧1中检测车辆,然后在视频帧2中检测车辆:是相同的对象还是不同的对象?在此上下文中,对象检测和跟踪可以协同工作,检测并跟踪跨帧的对象(关联唯一ID)

以下是来自的示例,它是一个快速且易于实现的跟踪器,与基于ML的对象检测一起工作:

import cv2
from sort import *

# Get instance of tracking algorithm
tracker = Sort() 

cap = cv2.VideoCapture(0)
while(True):
    # Get frame from video
    ret, video_frame_image = cap.read()

    # Get detections (bounding boxes x1,y1,x1,y2, and scores) 
    # from ML some ml algorithm.
    detections = model.predict(video_frame_image)

    # Get tracking IDs for each bounding box
    tracking_ids = tracker.update(detections)
....


我希望这有帮助。另一个评论认为AI/ML模型可能足够有效,可以实现您试图实现的目标,这取决于您用例的资源限制。例如,我已经成功地在手机上实时运行了,没有任何问题。

您尝试过openCV中提供的基于光流的算法(例如:CSRT)吗?谢谢,我已经尝试过了,我现在正在寻找一种在模型上映射身体部位的方法