使用OpenCV + Python-2.7进行全身检测和跟踪 [英] Full body detection and tracking using OpenCV+Python-2.7

查看:401
本文介绍了使用OpenCV + Python-2.7进行全身检测和跟踪的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用C ++可以完成许多工作.我想知道是否有一种方法可以在Python-2.7中使用OpenCV进行全身检测?

There are a lot of materials available to do this with C++. I would to know if there is a way to do full body detection using OpenCV in Python-2.7?

给出一个人沿矢状面行走的视频(摄像机与行走方向成90度角),我想界定一个覆盖该人整个身体的感兴趣区域矩形,并通过移动框对其进行跟踪框架.

Given video of a person walking along the sagittal plane (camera taken 90 degrees from the direction of walk), I would like to bound a region of interest rectangle covering the entire body of that person and track the same in movement frame by frame.

推荐答案

这是使用猪描述符,您可以在samples/python/peopledetect.py中找到示例.我使用了opencv安装提供的示例视频.

This one is using the hog descriptor you can find the sample in samples/python/peopledetect.py I used the sample video provided by the opencv installation.

import numpy as np
import cv2


def inside(r, q):
    rx, ry, rw, rh = r
    qx, qy, qw, qh = q
    return rx > qx and ry > qy and rx + rw < qx + qw and ry + rh < qy + qh


def draw_detections(img, rects, thickness = 1):
    for x, y, w, h in rects:
        # the HOG detector returns slightly larger rectangles than the real objects.
        # so we slightly shrink the rectangles to get a nicer output.
        pad_w, pad_h = int(0.15*w), int(0.05*h)
        cv2.rectangle(img, (x+pad_w, y+pad_h), (x+w-pad_w, y+h-pad_h), (0, 255, 0), thickness)


if __name__ == '__main__':

    hog = cv2.HOGDescriptor()
    hog.setSVMDetector( cv2.HOGDescriptor_getDefaultPeopleDetector() )
    cap=cv2.VideoCapture('vid.avi')
    while True:
        _,frame=cap.read()
        found,w=hog.detectMultiScale(frame, winStride=(8,8), padding=(32,32), scale=1.05)
        draw_detections(frame,found)
        cv2.imshow('feed',frame)
        ch = 0xFF & cv2.waitKey(1)
        if ch == 27:
            break
    cv2.destroyAllWindows()

结果

不太好.还是试试看

Results

Not so good. Still give it a try

这篇关于使用OpenCV + Python-2.7进行全身检测和跟踪的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆