手检测和跟踪方法

时间:2017-03-17 08:42:07

标签: opencv tracking detection object-detection haar-classifier

所以,伙计们,请帮助我检测/跟踪那些坐在计算机(笔记本电脑)前置摄像头前的电脑的用户。 我尝试过这些方法:

  • 基于颜色的检测(我通过opencv haar级联人脸检测检测到人脸并提取了皮肤HSV范围。接下来我发现了具有肤色的物体。例如通过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我尝试了从16到25的不同numStages值。

  • 跟踪手牌的Camshift算法源代码在http://pastebin.com/q5zK8cZt。这个怎么运作?只需在检测到的物体周围标记4个点,该算法必须跟踪它并绘制矩形。问题是如果我开始移动我的手,这个矩形开始增长并覆盖整个视频帧。看起来这个算法只适用于小物体(或者物体距离相机很远)

也许我需要混合使用这些方法,否则你会建议另一种方法?也许我需要训练神经网络,例如 YOLO ?我不希望这样做因为它需要花费太长时间而且必须租用基于GPU的服务器。

1 个答案:

答案 0 :(得分: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);

在那之后,您需要标记图像中对象的边界框。有online tool,可以在您的网络浏览器中正常工作

enter image description here

要按照此说明训练神经网络,也可以从here中获取二进制文件。