手部检测和跟踪方法

问题描述 投票:4回答:1

所以,伙计们,请帮助我为坐在计算机(便携式)前置摄像头前面的计算机的用户检测/跟踪手。我已经尝试过这些方法:

  • 基于颜色的检测(我已经通过opencv haar级联面部检测来检测到人脸,并提取了皮肤HSV范围。在接下来的步骤中,我找到了具有肤色的对象。例如,面部I可以通过知道通过haar级联进行的面部检测来去除,但是如果我只需要手,那么其他具有皮肤颜色的人体部位和背景物体又如何呢?如何使该算法对照明更稳定?)
  • 训练自己的Haar级联分类器(我训练了自己的级联,以使用3.5k正面和4k负像来检测手。训练花费了3天。数据集非常丰富(各种手的配置和方向, (在光照条件下,背景不同的情况下)。它的效果还不错,但由于我设置了scaleFactor=1.3minNeighbors=70而非常慢。如果降低minNeighbors,则虚假警报将大大增加,小的反应角将覆盖整个视频帧。训练参数:opencv_traincascade -data data -vec samples.vec -bg neg.txt -numStages 16 -minhitrate 0.999 -maxFalseAlarmRate 0.5 -numPos 3200 -numNeg 3900 -w 24 -h 24 -mode ALL -precalcValBufSize 1024`` -precalcIdxBufSize 1024
  • 火车LBP级联分类器(训练比haar级联更快,并且检测更接近实时,但是这种检测方法有很多误解)训练参数:opencv_traincascade -data lbp -vec samples.vec -bg neg.txt -numStages 25 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 3200 -numNeg 3900 -w 24 -h 24 -mode ALL -precalcValBufSize 4096 -precalcIdxBufSize 4096 -featureType LBP我尝试了以下方法从numStages的不同值16到25。

  • Camshift算法来跟踪手源代码在此处http://pastebin.com/q5zK8cZt。怎么运行的?只需在检测到的物体周围标记4个点,此算法就必须对其进行跟踪并在周围绘制矩形。问题是,如果我开始移动手,则此矩形开始增大并覆盖整个视频帧。看来此算法仅适用于小物体(或物体与相机的距离很远)]]

  • 也许我需要混合使用这些方法,否则您会建议其他方法?也许我需要训练神经网络,例如YOLO

?我不想这样做,因为它花费的时间太长,不得不租用基于GPU的服务器。

所以,伙计们,请帮助我为坐在计算机(便携式)前置摄像头前面的计算机的用户检测/跟踪手。我尝试了以下方法:基于颜色的检测(我已经...

opencv tracking detection object-detection haar-classifier
1个回答
0
投票

GPU服务器?不,您不需要:存在用于对象识别的web based backend。如果您想使用Yolo,您将需要标记一个巨大的图像训练集(每个班级大约2000)。我可以建议使用类似[]的脚本从here获取图像>

(function(global) {
  const next = () => Array.from(document.querySelectorAll('.search-pagination__button-text'))[1].click();
  const uuid = () => Math.random().toString(36).substring(7);
  const sleep = (timeout = 5000) => new Promise((res) => setTimeout(() => res(), timeout));
  global.urls = [];
  global.next = () => next();
  global.start = async () => {
    for (let i = 0; i !== 81; i++) {
        window.scrollTo(0,document.body.scrollHeight);
        await sleep(5000);
        document.querySelectorAll('.search-content__gallery-results figure > img[src]').forEach(({src}) => global.urls.push(src));
        next();
        await sleep(5000);
    }
  };
})(window);
© www.soinside.com 2019 - 2024. All rights reserved.