【百度【百度PaddlePaddle “人流密度检测人流密度检测 ”— 比赛】实战记录比赛】实战记录
说明说明
任务描述:
要求参赛者给出一个算法或模型,对于给定的图片,统计图片中的总人数。给定图片数据,选手据此训练模型,为每张测试数据预测出最
准确的人数;
数据说明:
本竞赛所用训练和测试图片均来自一般监控场景,但包括多种视角(如低空、高空、鱼眼等),图中行人的相对尺寸也会有较大差异。部
分训练数据参考了公开数据集(如ShanghaiTech [1], UCF-CC-50 [2], WorldExpo’10 [3],Mall [4] 等)。
本竞赛的数据标注均在对应json文件中,每张训练图片的标注为以下两种方式之一:
(1)部分数据对图中行人提供了方框标注(boundingbox),格式为[x, y, w, h][x,y,w,h];
(2)部分图对图中行人提供了头部的打点标注,坐标格式为[x, y][x,y]。
此外部分图片还提供了忽略区(ignore_region)标注,格式为[x_0, y_0, x_1, y_1, …, x_n, y_n]组成的多边形(注意一张图片可能有多个
多边形忽略区),图片在忽略区内的部分不参与训练/测试;
这是比赛说明:《百度“人流密度估计”竞赛.pdf》
这是比赛数据集(含2k张训练照片和1k张测试照片):人流密度预测数据集
Code
import zipfile
import paddle
import paddle.fluid as fluid
import matplotlib.pyplot as plt
import matplotlib.image as mping
from PIL import Image
import json
import numpy as np
import cv2
import sys
import time
import h5py
# import scipy.io as io
from matplotlib import pyplot as plt
from scipy.ndimage.filters import gaussian_filter
import scipy
from matplotlib import cm as CM
from paddle.utils.plot import Ploter
import os
1. 处理图片标签处理图片标签
解压文件,然后根据数据集的标签生成一个标签字典,用于后续查询比对校验:
# 解压文件
if(not os.path.isdir("train")):
z = zipfile.ZipFile("data/data1917/train_new.zip", 'r')
z.extractall("")
z.close()
start = time.time()
#把图片对应的标签装入字典
f = open('/home/aistudio/data/data1917/train.json',encoding='utf-8')
content = json.load(f)
print(content.keys())
print('info:',content['info'])
print('stage:',content['stage'])
print('split:',content['split'])
print(content['annotations'][0].keys())
print(content['annotations'][0]['type'])
print(content['annotations'][0][ 'id'])
print(content['annotations'][1677]['ignore_region'])
print(content['annotations'][9]['name'])
print(content['annotations'][9]['num'])
将字典中的文件名称加上路径信息,方便后续查找:
#把stage1都去掉:
评论0