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++的训练数据过程记录相关推荐

  1. mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式)

    mysql快速导入5000万条数据过程记录(LOAD DATA INFILE方式) 首先将要导入的数据文件top5000W.txt放入到数据库数据目录/var/local/mysql/data/${d ...

  2. 基于3D模型的MaskRCNN的训练数据生成

    在MaskRCNN的Mask分割或者FCN全图分割的数据收集过程中,初始数据可以使使用LabelMe手动标记,这是数据标记不可或缺的过程,需要耗费大量人力物力,也是值得的. 数据选取的过程中需要注意的 ...

  3. python爬取网页数据流程_基于Python爬取fofa网页端数据过程解析

    FOFA-网络空间安全搜索引擎是网络空间资产检索系统(FOFA)是世界上数据覆盖更完整的IT设备搜索引擎,拥有全球联网IT设备更全的DNA信息.探索全球互联网的资产信息,进行资产及漏洞影响范围分析.应 ...

  4. 在自己的数据集上训练CrowdDet过程记录

    论文链接:https://readpaper.com/pdf-annotate/note?noteId=656650387498369024&pdfId=542662939605901312 ...

  5. 用pandas处理数据过程记录

    STEP1 split_ananm#把原始数据(分公司的数据)处理成分分析师的数据. df=pd.read_excel('before16.xlsx)#读取xlsx,命名为dfdf.set_index ...

  6. HRSC2016舰船检测训练实验过程记录

    博主目前正尝试使用HRSC2016图片1000张多左右,每张舰船约1-3只,分辨率为 1182*827 用以finetune textboxes++,实现任意方向的目标的检测 训练过程参考: 利用ca ...

  7. RM: 基于页面结构化数据生成报表,一键导出图片,生成定制图表 文末有效果图 , 开放部分代码

    背景 开发这个工具是因为一句抱怨 故事是这样的,我们公司是一个非常重视员工健康的公司,一年前老董说让HR(后面改为ZT)督促员工多多运动,可持续地位公司创造价值.并拿出了一部预算来奖励那些积极运动的人 ...

  8. R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理、构建词袋模型、构建xgboost文本分类模型、基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化

    R语言构建文本分类模型并使用LIME进行模型解释实战:文本数据预处理.构建词袋模型.构建xgboost文本分类模型.基于文本训练数据以及模型构建LIME解释器解释多个测试语料的预测结果并可视化 目录

  9. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果、LIME解释器进行模型预测结果解释并可视化

    R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释一个iris数据样本的预测结果.LIME解释器进行模型预测结果解释并可视化 ...

最新文章

  1. mysql数据库管理系统的配置文件是_MySQL学习笔记_1_MySQL数据库管理系统概述
  2. Mac 使用Android Studio查找数字签名的方法SHA1或MD5
  3. WinXP下At,Schtask和Eventtriggers命令实例(一)
  4. [cocoapods]cocoapods问题解决
  5. JS 与 JAVA 跨语言实现 RSA 和 AES加密算法
  6. 设一棵完全二叉树共有500个结点,则在该二叉树中有______个叶子结点
  7. hdfs mv命令_如何HDFS mv命令工作
  8. Alpha冲刺(8/10)
  9. struts bean static 静态方法注入
  10. 对flex深入研究一点
  11. 百度网盘vep文件如何转换mp4_用这个软件,聊聊如何将MOV文件转换为MP4
  12. 判断字符串是否是有效的手机号码
  13. Atitit ocr的艺术 艾提拉著 目录 1. OCR可以说是一门非常“古老”的技术,在上世纪50年代到90年代, 1 1.1. 场景文字识别技术(Scene Text Recognition,
  14. 2021-2027全球与中国触摸屏人机界面(HMI)市场现状及未来发展趋势
  15. MIS系统(1)- MIS系统的介绍
  16. final_cut_pro基础
  17. 关于Java方法的学习
  18. 那些酷炫的网页你也可以做到——第二篇(HTML排版)
  19. properties文件的用法;utils类封装数据库连接、资源关闭、通用的增删改,以及两种通用的查询方法
  20. 图像金字塔LK光流法原理分析

热门文章

  1. 新闻|智链万源CEO董宁倾情加盟“产业区块链场景应用大课”
  2. 处理 Seata分布式事务中 没有传递XID 导致事务失效的问题
  3. 跑步锻炼(2020)
  4. 云南大学计算机学科评估排名,全国第四轮学科评估结果公布 云南大学2个学科获评A类...
  5. 职场人都在用的办公软件,你用过哪几种呢?
  6. 细碎知识点1-傅里叶变换(2022.9.5)
  7. 屏幕点亮测试软件设计,Pixel Ruler(屏幕测量工具)
  8. java 判断是否输入_如何检测用户是否没有输入(java)
  9. 举个栗子!Tableau 技巧(181):使用地图层标记,快速实现旭日图
  10. 思维导图MindManager的文件格式与例图