视频中人物识别--tensorflow介绍
在开始写视频中人物的识别时用到的知识点有cnn与tensorflow,在此首先介绍一下其中应用到深度学习框架tensorflow。
1 深度学习框架介绍前的“废话”
到目前为止深度学习的框架有Tensorflow、Caffe、Theano、MXNet、Torch和PyTorch等,如果帖友有时间的话可以多多学习几种框架,不过个人认为在项目中使用更能加深对框架的熟悉。我在此只大概总结下项目中用到的tensorflow框架和自己所了解的caffe,其它的帖友可以在网上百度。
2 tensorflow简单总结
TensorFlow™ 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。
数据流图:数据流图用节点和线的有向图来描述数学计算。节点一般用来施加数学操作或者表示数据输入的起点/输出的终点。线表示节点之间的输入/输出关系。这些数据线可以传送大小可动态调整的多维数组,即张量。
张量:Tensor(张量)是Tensorflow中最重要的数据结构,用来表示Tensorflow程序中的所有数据。Tensor本是广泛应用在物理、数学领域中的一个物理量。实际上,我们可以把Tensor理解成N维矩阵(N维数组)。其中零维张量表示的是一个标量,也就是一个数;一维张量表示的是一个向量,也可以看作是一个一维数组;二维张量表示的是一个矩阵;同理,N维张量也就是N维矩阵。
优点:1)可自行设计神经网络结构;2)不需要通过反向传播求解梯度,Tensorflow支持自动求导;3)TensorFlow有功能强大的可视化组件TensorBoard,能可视化网络结构和训练过程,对于观察复杂的网络结构和监控长时间、大规模的训练很有帮助;4)具有灵活的移植性,编译速度较快;5)可进行并行设计,充分利用硬件资源等
缺点:1)文档和接口混乱;2)默认占用所有GPU的所有内存等
3 tensorflow的整体介绍
1)使用图 (graph) 来表示计算任务 .
2)在被称之为 会话 (Session)
的上下文 (context) 中执行图.
3)使用 tensor 表示数据.
4)通过 变量 (Variable)
维护状态.
5)使用 feed 和 fetch 可以为任意的操作(arbitrary operation) 赋值或者从其中获取数据
4 tensorflow构图与运行时涉及的函数:
constant()函数在Tensorflow中的使用非常频繁,经常被用于构建图模型中常量的定义。
variable()也是在Tensorflow中经常会被用到的函数。变量的作用是保存和更新参数。执行图模型时,一定要对变量进行初始化,经过初始化后的变量才能拿来使用。变量的使用包括创建、初始化、保存、加载等操作
fetch为了取回操作的输出内容, 可以在使用 Session
对象的 run()
调用 执行图时, 传入一些 tensor, 这些 tensor 会帮助你取回结果. 在之前的例子里, 我们只取回了单个节点 state
, 但是你也可以取回多个 tensor:
tensorflow的内容很多,在此就不详细介绍了。
5 caffe的介绍
caffe是一个开源的深度学习框架,可读性高,它允许利用自己的CPU或者GPU训练网络,不需要自己编写程序,只需要通过配置文件来指定网络。
caffe都是一些模块组成,模块包括4个部分: Caffe由低到高依次把网络中的数据抽象成Blob, 各层网络抽象成Layer ,整个网络抽象成Net,网络模型的求解方法抽象成Solver。
1.Blob表示网络中的数据,包括训练数据,网络各层自身的参数,网络之间传递的数据都是通过Blob来实现的,同时Blob数据也支持在CPU与GPU上存储,能够在两者之间做同步。
2.Layer是对神经网络中各种层的抽象,包括卷积层和下采样层,还有全连接层和各种激活函数层等。同时每种Layer都实现了前向传播和反向传播,并通过Blob来传递数据。
3.Net是对整个网络的表示,由各种Layer前后连接组合而成,也是所构建的网络模型。
4.Solver 定义了针对Net网络模型的求解方法,记录网络的训练过程,保存网络模型参数,中断并恢复网络的训练过程。自定义Solver能够实现不同的网络求解方式。
优点
1)上手快:模型与相应优化都是以文本形式而非代码形式给出。
Caffe给出了模型的定义、最优化设置以及预训练的权重,方便立即上手。
2)速度快:能够运行最棒的模型与海量的数据。
Caffe与cuDNN结合使用,测试AlexNet模型,在K40上处理每张图片只需要1.17ms.
3)模块化:方便扩展到新的任务和设置上。
可以使用Caffe提供的各层类型来定义自己的模型。
4)开放性:公开的代码和参考模型用于再现。
缺点:1)不灵活。在 Caffe 中,每个节点被当做一个层,因此如果你想要一种新的层类型,你需要定义完整的前向、后向和梯度更新过程。这些层是网络的构建模块,你需要在无穷无尽的列表中进行选择; 2)需要大量的非必要冗长代码。如果你希望同时支持 CPU 和 GPU,你需要为每一个实现额外的函数。你还需要使用普通的文本编辑器来定义你的模型。
视频中人物识别--tensorflow介绍相关推荐
- 几个视频中行为识别的底层特征及代码
几个视频中行为识别的底层特征及代码 (2012-02-20 09:50:02) 转载▼ 标签: 视频 行为识别 特征 it 1. 比较出名的是Ivan Laptev的 3D Harris,这是一个 ...
- 详解视频中动作识别模型与代码实践
摘要:本案例将为大家介绍视频动作识别领域的经典模型并进行代码实践. 本文分享自华为云社区<视频动作识别>,作者:HWCloudAI.实验目标 通过本案例的学习: 掌握 C3D 模型训练和模 ...
- Facebook将对视频进行人物识别及身份标注
如今人工智能和图像识别技术快速发展,Facebook等一些科技巨头,已经能够对人们拍摄的照片进行人脸识别,并且标注出身份,这样,网民可以根据好友的名字,对海量的照片进行搜索和归类.不过据外媒最新消息, ...
- yolov3检测和平精英视频中人物及物体【附源码+数据】
目录 一.实现效果与数据下载链接 二.相应代码 三.yolo原理讲解 一.实现效果与数据下载链接 视频识别效果,链接如下: https://www.bilibili.com/video/BV1fa4y ...
- 去掉视频中人物对话,去除人声,保留背景音乐的方法
一.使用视频编辑专家软件,从视频中提取mp3声音文件: 二.将提取的声音文件通过GoldWave软件打开, 默认设置,文件另存为,输出去人声的mp3文件. 三.再次使用视频编辑专家,将原视频文件去掉声 ...
- 视频中IBP帧的介绍和判定方法
mpeg4视频中,I帧.p帧.B帧的判定 mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案.注意:是2bit,不是byt ...
- 【TensorFlow】PyCharm中无法识别tensorflow、numpy等Python库问题的解决办法
参考博客https://blog.csdn.net/WIinter_FDd/article/details/72835939,准备使用猫狗数据集练习TensorFlow构建自己的图片数据集TFreco ...
- 利用Python实现视频中人物的人脸转换超详细教程
前言:这个项目自己足足研究了有大半年,里面涉及的知识实在是太有趣太广了,所以实在是不能在研究完毕之后再记录下来,这份博客会不断更新,初心也只是给自己做过的事情做个记录,不过本人会力求完整详细.希望客官 ...
- CNN实现摄像头中人物的识别
在此之前我已经大概说过tensorflow的简单流程,中间应用函数我会在例子中加以注释(更详细的可以查阅tensorflow中的函数讲解).应用cnn实现的视频中人物识别,本想先讲一下cnn的原理,但 ...
最新文章
- windows7+Apache2.2+PHP5.4.29 环境搭建
- eclipse MAT分析heap dump
- mysql安装教程8.0.21安装_mysql8.0.21安装教程图文详解
- .NET Core微服务 权限系统+工作流(一)权限系统
- python linux 时间格式化,Python3 格式化日期
- Android external storage
- Snipaste截图
- 树莓派4B (aarch64) 安装PyTorch 1.8 的可行方案
- kickstart安装
- ktor框架用到了netty吗_Netty系列相关面试题汇总
- Python绘制渐变色三角形
- 无需训练 RNN 或生成模型,如何编写一个快速且通用的 AI “讲故事”项目?
- 如何做一份能忽悠投资人的PPT
- java中文件下载的思路(参考:孤傲苍狼)
- 【FPGA频率计】基于FPGA的数字频率计开发,VHDL编程实现
- 如何制作一份高大上的学术PPT?
- MacBook上内容太大无法拷贝到U盘问题的解决
- Floating point exception
- GBase 8c产品简介
- python列表中的字典如何添加键值对_在Python中将键值对添加到字典中