深度学习训练数据打标签过程

为了获取大量的图片训练数据,在采集数据的过程中常用视频的方式采集数据,但对于深度学习,训练的过程需要很多的有有标签的数据,这篇文章主要是解决视频文件转换成图片文件,并加标签,最后把数据存储到pkl文件中,为后续深度学习提供数据。

1. video to image

  • 这个应用,主要是把视频切分成图片,并保存到本地,可以自定义切分的时间间隔;
  • 在深度学习中,由于场景的需要,有时候需要自己动手去做图片的标注,但是我们在采取数据的时候,多把数据保存成视频的形式,对于视频的信息不好进行标注。对于视频转换成图片,可以通过播放视频,然后通过截图的方式把所需要的图片保存到本地,但是这样子的话,工作效率很很低。所以,为解决这个麻烦的过程,我先把视频的数据一帧一帧的读取进来,并生成成图片保存到本地,节省了大量的时间。

具体代码实现过程

# 导入所需要的库
import cv2
import numpy as np
# 定义保存图片函数
# image:要保存的图片名字
# addr;图片地址与相片名字的前部分
# num: 相片,名字的后缀。int 类型
def save_image(image,addr,num):address = addr + str(num)+ '.jpg'cv2.imwrite(address,image)
# 读取视频文件
videoCapture = cv2.VideoCapture("./input/chen6.30.mp4")
# 通过摄像头的方式
# videoCapture=cv2.VideoCapture(1)
#读帧
success, frame = videoCapture.read()
i = 0
while success :i = i + 1save_image(frame,'./output/img_',i)if success:print('save image:',i)success, frame = videoCapture.read()
save image: 1
save image: 2
save image: 3
save image: 4
save image: 5
save image: 6......

2. 对于生成的图片添加label,并保存成pkl格式

  • 在这里只选择两张图片进行举例。
import numpy as np
from PIL import Image
import pickle
import matplotlib.pyplot as plt
%matplotlib inline

2.1 读取图片

img_640 = Image.open('./output/img_640.jpg')
img_910 = Image.open('./output/img_910.jpg')
# 显示图片
plt.imshow(img_640)
<matplotlib.image.AxesImage at 0x15ece1330b8>

2.2 把图片数据转换成numpy.ndarray

img_640_n = np.array(img_640)
img_910_n = np.array(img_910)
type(img_640_n)
numpy.ndarray

2.3 对数据进行保存

# 创建一个空list,用于存储图像数据因为是两张图片说以创建2个(480, 640, 3)的矩阵。
image_data = []
# 把数据存放进来
image_data.append(img_640_n)
image_data.append(imgh_910_n)
# 添加标签,假设这两张图片是两个类别,把他们标注为类型1和2
image_data_label = np.empty(2)image_data_label[0] = 1
image_data_label[1] = 2
# 把标签的类型转换成int类型,为了方便出来也把data转换成numpy.ndarray类型
image_data = np.array(image_data)
image_data_label=image_data_label.astype(np.int)
image_data_label
array([1, 2])
plt.imshow(image_data[1])
<matplotlib.image.AxesImage at 0x15ece1845f8>

2.4 把数据保存到pkl文件中

# 把数据合并成一个元组进行保存
train_data = (image_data,image_data_label)
# 把数据写入pkl文件中
write_file=open('./input/train_data.pkl','wb')
pickle.dump(train_data,write_file)
write_file.close()

3.读取图片标签和数据

# 从pkl文件中读取图片数据和标签
read_file=open('./input/train_data.pkl','rb')  (train_data,lab_data)=pickle.load(read_file)
read_file.close()
# 查看读取出来的数据
train_data.shape
(2, 480, 640, 3)
lab_data
array([1, 2])
plt.imshow(train_data[0])
<matplotlib.image.AxesImage at 0x15ece1daa20>

到这里就完成了把图片加标签后存储与读取,为后续神经网络数据的输入做准备,当我们需要数据的时候,把pkl文件加载进来就可以。

github地址

深度学习训练数据打标签过程相关推荐

  1. 基于AI的计算机视觉识别在Java项目中的使用(三) —— 搭建基于Docker的深度学习训练环境

    深度学习在哪里? 我们已然生活在数字时代,一天24小时我们被数字包围.我们生活中的方方面面都在使用数字来表达.传递.存储.我们无时无刻不在接收数字信息,而又无时无刻不在生产数字信息. 在数字世界中,可 ...

  2. 【干货】Entity Embeddings : 利用深度学习训练结构化数据的实体嵌入

    [导读]本文是数据科学家Rutger Ruizendaal撰写的一篇技术博客,文章提出深度学习在非结构数据中有不错的表现,当前通过实体嵌入也可以使之在结构化数据中大放异彩.具体讲解了如何利用深度学习训 ...

  3. 深度学习——训练过程

    传统神经网络的训练方法为什么不能用在深度神经网络? BP算法作为传统训练多层网络的典型算法,实际上对仅含几层网络,该训练方法就已经很不理想.涉及多个非线性处理单元层的深度结构的非凸目标代价函数中普遍存 ...

  4. 深入云原生 AI:基于 Alluxio 数据缓存的大规模深度学习训练性能优化

    作者 | 车漾(阿里云高级技术专家).顾荣(南京大学 副研究员) 导读:Alluxio 项目诞生于 UC Berkeley AMP 实验室,自开源以来经过 7 年的不断开发迭代,支撑大数据处理场景的数 ...

  5. 训练过程acc_AI 深度学习训练tricks总结(均有实验支撑)

    ↑↑↑↑↑点击上方蓝色字关注我们! 『运筹OR帷幄』转载 作者:Jones@知乎 作者丨Jones@知乎来源丨https://zhuanlan.zhihu.com/p/261999668编辑丨极市平台 ...

  6. 阿里云原生实践:基于 Alluxio 数据缓存的大规模深度学习训练性能优化

    导读:Alluxio 项目诞生于 UC Berkeley AMP 实验室,自开源以来经过 7年的不断开发迭代,支撑大数据处理场景的数据统一管理和高效缓存功能日趋成熟.然而,随着云原生人工智能(Clou ...

  7. Python - 深度学习训练过程使用matplotlib.pyplot实时动态显示loss和acc曲线

    1 深度学习训练过程中实时动态显示loss和acc曲线 可参考代码如下: # -*- coding: utf-8 -*-import matplotlib.pyplot as pltif __name ...

  8. 最全深度学习训练过程可视化工具(附github源码)

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 Datawhale干货 作者:Edison_G,来源:计算机视觉研究院 编辑丨极市平台 ...

  9. DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3、MobileNet、InceptionV3、VGG系列、ResNet、Mask R-CNN )下载地址集合(持续更新)

    DL:关于深度学习常用数据集中训练好的权重文件(Deeplab v3.MobileNet.InceptionV3.VGG系列.ResNet.Mask R-CNN )下载地址集合(持续更新) 目录 基于 ...

最新文章

  1. RVDS2.2安装及破解步骤
  2. Vue、React打包文件放在服务器,浏览器存在缓存问题的解决
  3. 中小企业IT不可错过的十大虚拟机软件
  4. fedora虚拟机中的vsftp服务配置
  5. os-enviroment
  6. JavaScript每日学习日记(2)
  7. matlab length_MATLAB入门
  8. C++中未初始化的bool值的问题
  9. python实现批量修改文件夹的图片格式及大小
  10. Android HTTPS 抓包
  11. python连接cx_oracle时报错DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded:
  12. 电商平台退货管理教程
  13. 《挖掘管理价值:企业软件项目管理实战》一2.3 需求分析过程
  14. 算法复杂度分析中的符号(Θ、Ο、ο、Ω、ω)的意义
  15. CentOS 与 Ubuntu:哪个更适合做服务器
  16. 《15天玩转WPF》—— 直线、矩形、椭圆的各种画法
  17. 阿里云code上传代码
  18. OKCC呼叫中心系统的CRM介绍
  19. 掌财社:前端接口怎么实现canvas动态图形效果?方法详情!
  20. Pytorch神经网络极简入门(回归)

热门文章

  1. Multi-University Training Contest L - Wavel Sequence
  2. angular cli + primeNG
  3. android 计步器 计算当前的行走步数
  4. python- re模块(正则表达式)
  5. 电子邮箱怎么填写正确格式?企业邮箱开通格式填写技巧
  6. Uncaught TypeError: XXX is not a function解决
  7. 不可小视的head标签
  8. 3DMAX渲染AO(白膜)图的三种方法
  9. 自动化测试Robot FrameWork框架
  10. @RunWith注解找不到,怎么办?