INRIA数据集

INRIA数据集

HOG+SVM是经典的行人检测方法,论文作者同时搞了一个INRIA数据集。

INRIA数据集官方页面:http://pascal.inrialpes.fr/data/human/,不过说真的,数据集搞的挺乱的。

首先,INRIA数据集的原始图片,来自GRAZ 01数据集和网络上的一些图片。这些图片相比于MIT行人数据集,人的姿态和光照条件啥的都更加全面,适合做行人检测。每张图片中都进行了行人区域的标定,也就是画了一个矩形框,把矩形框的左上定点坐标和矩形长度、宽度记录下来。
但是,第一次使用INRIA数据集的人,是要重现论文中的效果的!而论文中使用的图片,是归一化后的图片。怎么归一化的咱不细究,反正效果就是,相当于原有的标定矩形框放大了一圈,然后裁剪出行人区域,然后区域缩放(通常是缩小,缩放后到一个固定尺寸)。那,就用这个归一化后的图片做重现实验吧!

但是,问题又来了。这些归一化的图像在哪里?INRIA数据集里面放了原始数据和标定信息,以及归一化后的图像,按官网上的说法先找到train_64x128_H96目录,说里面有posneg两个子目录,以及找到test_64x128_H96目录,里面也有posneg两个子目录。然后说,在train/pos下的是96x160的图片,test/pos下的是70x134的图片。我倒要问,train目录是哪个?不是train_64x128_H96吗?INRIA数据集根目录下本身有一个Train目录好么,你这么讲我很容易搞混的!而实际上,应当是train_64x128_H96而不是traintest目录也是一样的情况。

还有几个混乱的地方。
我在windows下解压了INRIA数据集,在train_64x128_H96目录下没找到neg目录。这是因为用了软链接,是在linux下做的数据集。我想说,没有必要装这个逼的。把数据集放到Linux下解压,我用的是fedora23系统,进入到train_64x128_H96/neg目录,把里面图片都拷到windows上,拷贝到train_64x128_H96/neg目录下。
另外就是test_64x128_H96目录下的neg目录的问题。这个目录下的图片有用么?反正,看官网的说明,鸟用没有。So,忽略这个目录吧。

然后在Linux下查看整个数据集目录,发现最外层96X160H96和70x134H96两个目录。实际上归一化的图像都存在这两个目录下。那你搞train_64x128_H96test_64x128_H96两个目录做什么?软链接装逼?

同时有个问题,为什么会有归一化的测试图像呢?test_64x128_H96/pos目录下的图像都是70x134大小,实际中的图像都是尺寸不一的,还要考虑多尺度的问题呢。这个目录下的图片并没有用。直接用原始的测试图片就可以了。

还有,原始图像的命名。为什么以crop_作为前缀?有用么?以及,目录命名怎么一会儿大写开头,一会儿小写开头,trainTrain都有?另外对于原始数据的标定我也很无语,为什么有标错的地方?坐标怎么出现负数的,嗯?
算了,原始图像我就用

OK,讲了这么多,目的是整理出一个合理的数据集来,以后自己用也好用。经过整理后的INRIA数据集,目录结构和说明:

INRIADATA{
    normalized_images{
        train{
            pos:96x160大小,训练正样本,需要crop中间的64x128大小。已经做过flip,即包含左右对称的图
            neg:大小不一,通常是几百乘几百,训练负样本,需要从每张图中随机crop 10个区域作为训练负样本
        }
    }
    original_images{
        train{
            pos:训练正样本,大小不一
            neg:训练负样本,大小不一
            annotations:标注信息
        }
        test{
            pos:大小不一
            neg:大小不一
            annotations:标注信息
        }
    }
}

训练和测试的时候有几种选择方式:
normalized_images目录下的图片做训练,或者用original_images目录下的图片+annotations获取行人区域做训练;测试则都在original_images/test/pos上测试。

整理后的数据集有点大,上传百度网盘了:http://pan.baidu.com/s/1eSdlw7g

你可能感兴趣的:(行人检测,INRIA,hog,行人检测)