没有合适的资源?快使用搜索试试~ 我知道了~
【百度PaddlePaddle “人流密度检测 ”— 比赛】实战记录
22 下载量 91 浏览量
2020-12-21
15:35:17
上传
评论 1
收藏 496KB PDF 举报
温馨提示
说明 任务描述: 要求参赛者给出一个算法或模型,对于给定的图片,统计图片中的总人数。给定图片数据,选手据此训练模型,为每张测试数据预测出最准确的人数; 数据说明: 本竞赛所用训练和测试图片均来自一般监控场景,但包括多种视角(如低空、高空、鱼眼等),图中行人的相对尺寸也会有较大差异。部分训练数据参考了公开数据集(如ShanghaiTech [1], UCF-CC-50 [2], WorldExpo’10 [3],Mall [4] 等)。 本竞赛的数据标注均在对应json文件中,每张训练图片的标注为以下两种方式之一: (1)部分数据对图中行人提供了方框标注(boundingbox),格式为[x,
资源详情
资源评论
资源推荐
【百度【百度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都去掉:
for j in range(len(content['annotations'])):
# print(content['annotations'][1]['name'])
content['annotations'][j]['name'] = content['annotations'][j]['name'].lstrip('stage1').lstrip('/').lstrip('rain').lstrip('/')
print(content['annotations'][1]['name'])
2. 解压数据集压缩包解压数据集压缩包
#读取解压文件里的信息
zfile = zipfile.ZipFile("data/data1917/train_new.zip")
l = [] for fname in zfile.namelist()[1:]:
# print(fname)
l.append(fname)
# 随便打印一个
print(l[3])
name = l[3] # 解压文件
if(not os.path.isdir("train")):
z = zipfile.ZipFile("data/data1917/train_new.zip", 'r')
z.extractall("")
z.close()
# 显示一张照片
im = Image.open(name)
plt.imshow(im)
3. 看看标签里标注的框框是啥样看看标签里标注的框框是啥样
#查看标注的信息
for j in range(len(content['annotations'])):
if content['annotations'][j]['name'] == name:
print('id = ',content['annotations'][j]['id']) #图片id
ann = content['annotations'][j]['annotation'] print(ann) #图片标注格式是x,y,w,h,有些只有x,y
print('有标注的个数:',len(ann))
#可视化第三个标注的信息
lab = 1
box = (ann[lab]['x'],ann[lab]['y'],ann[lab]['x']+ann[lab]['w'],ann[lab]['y']+ann[lab]['h'])
new_img = im.crop(box=box)
plt.imshow(new_img)
剩余11页未读,继续阅读
weixin_38707356
- 粉丝: 17
- 资源: 958
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0