一 、 前言

最近解析SCUT FIR Pedestrian Dataset数据,发现只有matlab的解析代码,使用起来非常不方便,开源的教程基本没有Python的解析,这里自己写了一个,

二 、解析代码

2.1 解析官方给的txt文档

# 传入官方txt文档路径,返回解析好的字典格式内容def process_txt(txtpath):"""传入原始txt文件路径,解析文件walk_person : 走路的人ride_person :骑车的人squat_person :蹲着的人people: 一群人person? :不确定是否是人people? : 不确定是否是一群人目标存坐标存储在 pos 标签中,4个值的含义分别是 左上角坐标x,y  目标w,h"""with open(txtpath,'r') as f:info = f.readlines()stap = 7label_dict = {}N = (len(info)-3)//7for i in range(N):info_ = info[3+stap*i : 3+ stap*(i+1)]occl = info_[5][6:-3].split(" ")lock = info_[6][6:-3].split(" ")posv = info_[4][6:-3].split(";")pos = info_[3][6:-3].split(";")label =info_[2].split(" ")[0][5:-1]strr =int(info_[2].split(" ")[1][4:])end =int(info_[2].split(" ")[2][4:])for idx ,frameid in enumerate(range(strr,end+1)):label_ ={}label_['frame'] = str(frameid)label_['label'] = str(label)label_['pos'] = pos[idx]label_['posv'] = posv[idx]label_['lock'] = lock[idx]label_['occl'] = occl[idx]if str(frameid) not in list(label_dict.keys()):label_dict[str(frameid)] = [label_]else:label_dict[str(frameid)].append(label_)return label_dict

2.1 拆解视频,成为独立的帧

在这里插入代码片
import os
import json
import fnmatch
import shutildef open_save(file, savepath):# read .seq file, and save the images into the savepathf = open(file, 'rb')string = f.read().decode('latin-1')splitstring = "\xFF\xD8\xFF\xE0\x00\x10\x4A\x46\x49\x46"# split .seq file into segment with the image prefixstrlist = string.split(splitstring)f.close()count = 0# delete the image folder path if it existsif os.path.exists(savepath):shutil.rmtree(savepath)# create the image folder pathif not os.path.exists(savepath):os.mkdir(savepath)# deal with file segment, every segment is an image except the first onefor img in strlist:filename = str(count) + '.jpg'filenamewithpath = os.path.join(savepath, filename)# abandon the first one, which is filled with .seq headerif count > 0:i = open(filenamewithpath, 'wb+')i.write(splitstring.encode('latin-1'))i.write(img.encode('latin-1'))i.close()count += 1# 解析视频成为jpg图片
def Split_Video_to_Image():rootdir = "./SCUT FIR Pedestrian Dataset/videos/set02"# rootdir = "E:\\GPassport\\Work\\Search\\PedestrianDetection\\CaltechDatasets\\set\\set01"# walk in the rootdir, take down the .seq filename and filepathfor parent, dirnames, filenames in os.walk(rootdir):for filename in filenames:# check .seq file with suffixif fnmatch.fnmatch(filename, '*.seq'):# take down the filename with path of .seq filethefilename = os.path.join(parent, filename)# create the image folder by combining .seq file path with .seq filenamethesavepath = parent + '/' + filename.split('.')[0]print("Filename=" + thefilename)print("Savepath=" + thesavepath)open_save(thefilename, thesavepath)

2.3 批量生成txt对应的json标签文件


def all_txt_process():txtroot = './SCUT FIR Pedestrian Dataset/annotations'savejson = './SCUT FIR Pedestrian Dataset/annotations_label'for file in os.listdir(txtroot):for txtname in os.listdir(os.path.join(txtroot,file)):if os.path.splitext(txtname)[-1] != '.txt':continuelabel_dict = process_txt(os.path.join(txtroot,file,txtname))svaepath = os.path.join(savejson,file)os.makedirs(svaepath,exist_ok=True)with open(os.path.join(svaepath,txtname.replace('.txt','_frame_label.json')), 'w') as f:json.dump(label_dict, f,)

2.4解析格式

解析SCUT FIR Pedestrian Dataset数据相关推荐

  1. android soap webservice 数据流传输,Android利用Soap读取WebService并且解析XML的DataSet数据...

    一.Soap的结构 调用webService需要以下几个参数:命名空间.Soap Action.WSDL的URL.方法名.接下来以调用火车列车信息数据为例,webService地址为:webservi ...

  2. 行人检测-Caltech Pedestrian Dataset 数据集下载及格式转换

    Caltech Pedestrian Dataset 数据集 加理工(caltech)提供的数据集, 该数据集主要包括 训练集+测试集:seq格式的数据: 行人标签数据:vbb(video bound ...

  3. YOLOv3源码解析2-数据预处理Dataset()

    YOLOv3源码解析1-代码整体结构 YOLOv3源码解析2-数据预处理Dataset() YOLOv3源码解析3-网络结构YOLOV3() YOLOv3源码解析4-计算损失compute_loss( ...

  4. 行人检测——Caltech Pedestrian Dataset 数据集的使用

    Caltech Pedestrian Dataset 数据集的使用 目的: 最近在做智能交通中的行人检测,需要数据集对分类器进行training,选取的数据集为加理工(caltech)提供的http: ...

  5. php写的接口返回数据的页面,PHP怎么解析 WEBSERVICES接口返回的数据

    PHP如何解析 WEBSERVICES接口返回的数据 WEBSERVICE服务器,他们用.net写了个接口 http://XXX.XXX.XXX.XX/Info.asmx?wsdl 我用PHP调用这个 ...

  6. retrofit 解析百度地图api 返回数据_阿里二面:关于 Retrofit 你知道多少?看完你的offer稳了

    一.整体思路 从使用方法出发,首先是怎么使用,其次是我们使用的功能在内部是如何实现的, 实现方案上有什么技巧,有什么范式.全文基本上是对 Retrofit 源码的一个分析与 导读,非常建议大家下载 R ...

  7. ASP.NET缓存全解析4:应用程序数据缓存(转)

    ASP.NET缓存全解析文章索引 ASP.NET缓存全解析1:缓存的概述 ASP.NET缓存全解析2:页面输出缓存 ASP.NET缓存全解析3:页面局部缓存 ASP.NET缓存全解析4:应用程序数据缓 ...

  8. retrofit 解析百度地图api 返回数据_新版百度地图建筑数据含高度解析

    注:本文中所述内容仅作为研究用途,不包括任何技术细节,不提供数据爬取.非法攻击的咨询和支持.另:百度建筑轮廓数据中存在明显签名式错误,下载使用容易被追求侵权. 矢量瓦片:爬取百度地图必须要了解矢量瓦片 ...

  9. 如何使用 ABAP 手动解析 multipart/form-data 格式的数据

    文章标题:如何使用 ABAP 手动解析 multipart/form-data 格式的数据 上下文:参考这篇文章:不使用任何框架,手写纯 JavaScript 实现上传本地文件到 ABAP 服务器. ...

最新文章

  1. Django博客系统(用户中心修改)
  2. 北京大学吴华君课题组多组学数据分析方向博士后和技术员招聘启示
  3. Left,Right,Outer和Inner Joins有什么区别?
  4. 杭州java班学费多少_杭州学java费用多少
  5. js基础---object对象
  6. OSI与TCP/IP协议区别
  7. traceroute程序_来!程序猿教你们玩微信代码~
  8. php去掉多字节字符,PHP 面试题 - 如果没有 mb 系列函数,如何切割多字节字符串...
  9. python将文本中的数据处理成图像(matplotlib)
  10. C/C++轻松写可塞满硬盘的程序
  11. selenium+python学习总结-mac
  12. 使用extundelete恢复测试liunx的删除文件
  13. 【Linux 系统编程】vim 的安装配置及使用
  14. Java比较两个对象属性值变化情况,用于记录日志使用
  15. pdf转换成word转换器注册码
  16. java 单机传奇_Win7/Win10系统架设单机传奇手游教程[战神引擎]
  17. 利用Scrapy编写“1024网站种子吞噬爬虫”,送福利
  18. 素面朝天,你独特的美
  19. 拥抱变化——从Atlas到ASP.NET AJAX
  20. 赵小楼《天道》《遥远的救世主》深度解析(142)贫富差距化是常态,扶贫不是拉平平均值,而是强者去关注弱者

热门文章

  1. mysql伪列的使用,mysql伪列的妙用,mysql获取近几天的日期用来连表查询
  2. C语言 计算签到所得积分
  3. Ubuntu18.04的IBUS输入法中Android Studio 无法输入中文
  4. 巨人的进击 —— Android生态的破与立
  5. 骨干计算机专业,计算机教导非本专业与骨干专业的融洽
  6. 免费字体下载,在线设计,不怕找不到好字体
  7. 浅谈“跨站跟踪攻击(即CST/XST攻击)”
  8. vue中使用mapBox绘制圆形范围
  9. iPhoneX无导航栏页面适配
  10. 今天很兴奋。看到了2个激动人心的技术