基于Movingmnist结构制作predrnn++的训练数据过程记录
Alpha pose数据准备部分可以看我之前的【文1】:
AlphaPose姿态估计 只输出骨架 源码修改 相关记录
关于PredRNN++的内容见【文2】:
predRNN++代码实战 tensorflow版本
文章目录
- 1. Moving mnist数据集
- 2. 数据的准备
- 3. 数据的处理
- 4. 数据的保存
1. Moving mnist数据集
因为用自己的数据训练PredRNN++需要制作自己的数据集,数据结构类似于Movingmnist,还不了解的同学可以看一下。
Moving_mnist data中的train.npz包含了三个部分。
它们的结构如下:
- clips.npy
- type = numpy.ndarray
- shape = (2, 10000, 2)
-
[[0,10],[20,10]...[199980,10](1w)], [[10,10],[30,10]...[199990,10](1w)]]
- dims.npy
- type = numpy.ndarray
- shape = (1, 3)
-
[1, 64, 64]
- input_raw_data.npy
- type = numpy.ndarray
- shape = (200000, 1, 64, 64)
-
[ [ [ [pixel*64] *64] ]*200000 ]
解释一下
- 第一个文件clips表示输入帧和gt帧所在的图片位置,1w个视频每个被分为10帧,图片总数就是20w。
- clips[0]的[0,10]表示0开始数10张,20开始往后的10张一直到第199980和往后的10张代表输入帧。同理剩下的图片被分为gt label。
- dims表示了输入data的size,很好理解。
- input_raw_data包含了1w个视频每一帧的图片,存储类型为np.ndarray,可以直接用opencv或matplotlib等python库可视化,64*64是一张图片,一共20w张,也很好理解。下面放一个可视化的例子和代码。
查看第100张图片:
import cv2
import numpy as npdata = np.load('./input_raw_data.npy')
pixel = data[100][0]
cv2.imshow('1', pixel)
cv2.waitKey(0)
下面我们只要仿照他的格式制作我们的数据就行了。
2. 数据的准备
数据的准备先由AlphaPose输出黑底的检测框,见【文1】,得到一系列的视频数据,我们需要使用ffmpeg或者opencv将视频切割成图片。
我使用的是opencv,代码入下:
#将视频转换成每帧图片
def video2img(input_dir, out_dir):vc = cv2.VideoCapture(input_dir+'train_0004.mp4') # 读入视频文件n = 1 # 计数if vc.isOpened(): # 判断是否正常打开rval, frame = vc.read()else:rval = FalsetimeF = 1 # 视频帧计数间隔频率i = 0while rval: # 循环读取视频帧rval, frame = vc.read()if (n % timeF == 0): # 每隔timeF帧进行存储操作i += 1print(i)# frame = cv2.resize(frame, (64, 64)) # resizecv2.imwrite(out_dir+'{}.png'.format(i), frame) # 存储为图像n = n + 1cv2.waitKey(1)vc.release()
然后我们得到每帧的图片在一个文件夹下:
3. 数据的处理
将处理好的数据进行如下操作:
- 三通道转单通道
- 将像素转换为numpy.float32。
- 归一化
附上代码:
import cv2img = cv2.imread(r'Your path\img.png')
img = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) # 三通道-->单通道img = np.float32(img) # 像素格式化
dst = np.zeros(img.shape, dtype=np.float32)
img = cv2.normalize(img, dst, alpha=0, beta=1.0, norm_type=cv2.NORM_MINMAX) #图像归一化
print(img.shape)cv2.imwrite(r'Your path\img_gray.png', img)
cv2.imshow('1', img)
cv2.waitKey(0)
输出如下:
(640, 640)
4. 数据的保存
我们需要将图片数据转换成numpy格式并封装保存在.npy文件中,然后打包成npz文件。这里建议将每个视频分成相同数量的单帧,并且保证总数可以被10整除。其中每个数据文件的结构,维度,参数量,参数格式等有明确的要求。
如果您没有丰富的处理numpy数据经验,或是不想动源代码的data读取部分,或者和我一样初次接触这类numpy数据的制作,请看下我的另一篇文章,这将节省您的时间。
关于详细的数据保存方法和代码请移步这篇文章:
模仿制作自己的MovingMnist数据集【封装篇】
最后更新20210504
基于Movingmnist结构制作predrnn++的训练数据过程记录相关推荐
- mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)
mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式) 首先将要导入的数据文件top5000W.txt放入到数据库数据目录/var/local/mysql/data/${d ...
- 基于3D模型的MaskRCNN的训练数据生成
在MaskRCNN的Mask分割或者FCN全图分割的数据收集过程中,初始数据可以使使用LabelMe手动标记,这是数据标记不可或缺的过程,需要耗费大量人力物力,也是值得的. 数据选取的过程中需要注意的 ...
- python爬取网页数据流程_基于Python爬取fofa网页端数据过程解析
FOFA-网络空间安全搜索引擎是网络空间资产检索系统(FOFA)是世界上数据覆盖更完整的IT设备搜索引擎,拥有全球联网IT设备更全的DNA信息.探索全球互联网的资产信息,进行资产及漏洞影响范围分析.应 ...
- 在自己的数据集上训练CrowdDet过程记录
论文链接:https://readpaper.com/pdf-annotate/note?noteId=656650387498369024&pdfId=542662939605901312 ...
- 用pandas处理数据过程记录
STEP1 split_ananm#把原始数据(分公司的数据)处理成分分析师的数据. df=pd.read_excel('before16.xlsx)#读取xlsx,命名为dfdf.set_index ...
- HRSC2016舰船检测训练实验过程记录
博主目前正尝试使用HRSC2016图片1000张多左右,每张舰船约1-3只,分辨率为 1182*827 用以finetune textboxes++,实现任意方向的目标的检测 训练过程参考: 利用ca ...
- RM: 基于页面结构化数据生成报表,一键导出图片,生成定制图表 文末有效果图 , 开放部分代码
背景 开发这个工具是因为一句抱怨 故事是这样的,我们公司是一个非常重视员工健康的公司,一年前老董说让HR(后面改为ZT)督促员工多多运动,可持续地位公司创造价值.并拿出了一部预算来奖励那些积极运动的人 ...
- R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理、构建词袋模型、构建xgboost文本分类模型、基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化
R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理.构建词袋模型.构建xgboost文本分类模型.基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化 目录
- R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果、LIME解释器进行模型预测结果解释并可视化
R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果.LIME解释器进行模型预测结果解释并可视化 ...
最新文章
- mysql数据库管理系统的配置文件是_MySQL学习笔记_1_MySQL数据库管理系统概述
- Mac 使用Android Studio查找数字签名的方法SHA1或MD5
- WinXP下At,Schtask和Eventtriggers命令实例(一)
- [cocoapods]cocoapods问题解决
- JS 与 JAVA 跨语言实现 RSA 和 AES加密算法
- 设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点
- hdfs mv命令_如何HDFS mv命令工作
- Alpha冲刺(8/10)
- struts bean static 静态方法注入
- 对flex深入研究一点
- 百度网盘vep文件如何转换mp4_用这个软件,聊聊如何将MOV文件转换为MP4
- 判断字符串是否是有效的手机号码
- Atitit ocr的艺术 艾提拉著 目录 1. OCR可以说是一门非常“古老”的技术,在上世纪50年代到90年代,	1 1.1. 场景文字识别技术(Scene Text Recognition,
- 2021-2027全球与中国触摸屏人机界面(HMI)市场现状及未来发展趋势
- MIS系统(1)- MIS系统的介绍
- final_cut_pro基础
- 关于Java方法的学习
- 那些酷炫的网页你也可以做到——第二篇(HTML排版)
- properties文件的用法;utils类封装数据库连接、资源关闭、通用的增删改,以及两种通用的查询方法
- 图像金字塔LK光流法原理分析
热门文章
- 新闻|智链万源CEO董宁倾情加盟“产业区块链场景应用大课”
- 处理 Seata分布式事务中 没有传递XID 导致事务失效的问题
- 跑步锻炼(2020)
- 云南大学计算机学科评估排名,全国第四轮学科评估结果公布 云南大学2个学科获评A类...
- 职场人都在用的办公软件,你用过哪几种呢?
- 细碎知识点1-傅里叶变换(2022.9.5)
- 屏幕点亮测试软件设计,Pixel Ruler(屏幕测量工具)
- java 判断是否输入_如何检测用户是否没有输入(java)
- 举个栗子!Tableau 技巧(181):使用地图层标记,快速实现旭日图
- 思维导图MindManager的文件格式与例图