!转载请注明原文地址!——东方旅行者

更多行人重识别文章移步我的专栏:行人重识别专栏

本文目录

  • 数据预处理(dataset_preprocess.py)
    • 一、数据预处理原因
    • 二、数据预处理思路
    • 三、代码

数据预处理(dataset_preprocess.py)

一、数据预处理原因

Market1501数据集中训练集使用DPM算法标出的行人框,可能会存在部分低质量数据。可以选用行人检测技术(HOG+SVM)对训练集数据进行筛选,剔除低质量数据。

二、数据预处理思路

  1. 使用卷积神经网络或者传统机器学习方法构建行人检测器
  2. 遍历训练集中的数据,使用检测器检测其中的行人。若该训练图片检测出行人框,则保留;否则,删除该图片

三、代码

import os
import os.path as osp
import glob
import cv2
from IPython import embed
"""
dataset_preprocess
使用OpenCV自带的行人检测器对训练图片进行筛选,将那些无法识别出行人的训练图片进行删除
"""
#指定数据集路径
train_dataset_dir='data/test'
# 使用opencv的hog特征进行行人检测
detector = cv2.HOGDescriptor()
detector.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
#获得数据集下图片地址集合
img_paths=glob.glob(osp.join(train_dataset_dir,'*.jpg'))
#开始进行检测处理
for img_path in img_paths:
    img = cv2.imread(img_path)#读取图片
    #使用行人检测器检测,第一个结果是检测到的行人的坐标,第二个结果是每个行人的置信值
    results,weights=detector.detectMultiScale(img,padding=(16,16))
    if len(results)==0:
        os.remove(img_path)