Python+OpenCV进行行人检测

Python+OpenCV进行行人检测

应用非极大抑制方法,可排除候选的重叠检测

使用前环境及库配置

我运行的环境为Python3.6(Anaconda3)+OpenCV3,IDE:PyCharm
1.其中如果安装Anaconda3就可以少安装很多库
2.如果安装了Anaconda3,就只需要配置一个库imutils
3.imutils安装方法
pip install imutils
确保imutils版本大于v0.3.1
pip install –upgrade imutils可以更新版本

完整代码下载链接:
Python+OpenCV实现行人检测(含配置说明)
http://download.csdn.net/download/zou19900101/10217236

先来看实现效果

应用非极大抑制方法,可排除候选的重叠检测效果如第一张图
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述这里写图片描述

核心代码如下:

# 引入所需要的库
from __future__ import print_function  #确保代码同时在Python2.7和Python3上兼容
from imutils.object_detection import non_max_suppression
from imutils import paths
import numpy as np
import argparse
import imutils   #安装库pip install imutils ;pip install --upgrade imutils更新版本大于v0.3.1
import cv2
# 初始化我们的行人检测器
#初始化方向梯度直方图描述子
hog = cv2.HOGDescriptor()   
#设置支持向量机(Support Vector Machine)使得它成为一个预先训练好了的行人检测器
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())  
    '''
    构造了一个尺度scale=1.05的图像金字塔,以及一个分别在x方向和y方向步长为(4,4)像素大小的滑窗
    scale的尺度设置得越大,在图像金字塔中层的数目就越少,相应的检测速度就越快,但是尺度太大会导致行人出现漏检;
    同样的,如果scale设置得太小,将会急剧的增加图像金字塔的层数,这样不仅耗费计算资源,而且还会急剧地增加检测过程
    中出现的假阳数目(也就是不是行人的被检测成行人)。这表明,scale是在行人检测过程中它是一个重要的参数,
    需要对scale进行调参。我会在后面的文章中对detectMultiScale中的每个参数做些调研。
    '''
# detect people in the image:
    (rects, weights) = hog.detectMultiScale(image, winStride=(4, 4),
        padding=(8, 8), scale=1.05)
 #应用非极大抑制方法,通过设置一个阈值来抑制那些重叠的边框
    rects = np.array([[x, y, x + w, y + h] for (x, y, w, h) in rects])
    pick = non_max_suppression(rects, probs=None, overlapThresh=0.65)

pycharm工程python调用OpenCV实现USB摄像头实时人脸检测
http://download.csdn.net/download/zou19900101/10208407
pycharm工程pyQt5使用matplotlib绘图源码
http://download.csdn.net/download/zou19900101/10207077
pyqt5快速入门教程
http://download.csdn.net/download/zou19900101/10197371
Qt编写高逼格弹幕
http://download.csdn.net/download/zou19900101/10145524
Qt高仿360界面设计
http://download.csdn.net/download/zou19900101/10145518
Qt编写跨平台串口通信(Window+Linux)
http://download.csdn.net/download/zou19900101/10145513
OpenCV两种方法显示中文
http://download.csdn.net/download/zou19900101/10010181
wrote by zoushaoyuan 2018-01-20

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值