在开始写视频中人物的识别时用到的知识点有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介绍相关推荐

  1. 几个视频中行为识别的底层特征及代码

    几个视频中行为识别的底层特征及代码 (2012-02-20 09:50:02) 转载▼ 标签: 视频 行为识别 特征 it   1. 比较出名的是Ivan Laptev的 3D Harris,这是一个 ...

  2. 详解视频中动作识别模型与代码实践

    摘要:本案例将为大家介绍视频动作识别领域的经典模型并进行代码实践. 本文分享自华为云社区<视频动作识别>,作者:HWCloudAI.实验目标 通过本案例的学习: 掌握 C3D 模型训练和模 ...

  3. Facebook将对视频进行人物识别及身份标注

    如今人工智能和图像识别技术快速发展,Facebook等一些科技巨头,已经能够对人们拍摄的照片进行人脸识别,并且标注出身份,这样,网民可以根据好友的名字,对海量的照片进行搜索和归类.不过据外媒最新消息, ...

  4. yolov3检测和平精英视频中人物及物体【附源码+数据】

    目录 一.实现效果与数据下载链接 二.相应代码 三.yolo原理讲解 一.实现效果与数据下载链接 视频识别效果,链接如下: https://www.bilibili.com/video/BV1fa4y ...

  5. 去掉视频中人物对话,去除人声,保留背景音乐的方法

    一.使用视频编辑专家软件,从视频中提取mp3声音文件: 二.将提取的声音文件通过GoldWave软件打开, 默认设置,文件另存为,输出去人声的mp3文件. 三.再次使用视频编辑专家,将原视频文件去掉声 ...

  6. 视频中IBP帧的介绍和判定方法

    mpeg4视频中,I帧.p帧.B帧的判定 mpeg4的每一帧开头是固定的:00 00 01 b6,那么我们如何判断当前帧属于什么帧呢?在接下来的2bit,将会告诉我们答案.注意:是2bit,不是byt ...

  7. 【TensorFlow】PyCharm中无法识别tensorflow、numpy等Python库问题的解决办法

    参考博客https://blog.csdn.net/WIinter_FDd/article/details/72835939,准备使用猫狗数据集练习TensorFlow构建自己的图片数据集TFreco ...

  8. 利用Python实现视频中人物的人脸转换超详细教程

    前言:这个项目自己足足研究了有大半年,里面涉及的知识实在是太有趣太广了,所以实在是不能在研究完毕之后再记录下来,这份博客会不断更新,初心也只是给自己做过的事情做个记录,不过本人会力求完整详细.希望客官 ...

  9. CNN实现摄像头中人物的识别

    在此之前我已经大概说过tensorflow的简单流程,中间应用函数我会在例子中加以注释(更详细的可以查阅tensorflow中的函数讲解).应用cnn实现的视频中人物识别,本想先讲一下cnn的原理,但 ...

最新文章

  1. windows7+Apache2.2+PHP5.4.29 环境搭建
  2. eclipse MAT分析heap dump
  3. mysql安装教程8.0.21安装_mysql8.0.21安装教程图文详解
  4. .NET Core微服务 权限系统+工作流(一)权限系统
  5. python linux 时间格式化,Python3 格式化日期
  6. Android external storage
  7. Snipaste截图
  8. 树莓派4B (aarch64) 安装PyTorch 1.8 的可行方案
  9. kickstart安装
  10. ktor框架用到了netty吗_Netty系列相关面试题汇总
  11. Python绘制渐变色三角形
  12. 无需训练 RNN 或生成模型,如何编写一个快速且通用的 AI “讲故事”项目?
  13. 如何做一份能忽悠投资人的PPT
  14. java中文件下载的思路(参考:孤傲苍狼)
  15. 【FPGA频率计】基于FPGA的数字频率计开发,VHDL编程实现
  16. 如何制作一份高大上的学术PPT?
  17. MacBook上内容太大无法拷贝到U盘问题的解决
  18. Floating point exception
  19. GBase 8c产品简介
  20. python列表中的字典如何添加键值对_在Python中将键值对添加到字典中

热门文章

  1. iphone的heic图像转换无损jpg,png方法
  2. CodeForces 444C 线段树
  3. 水下自动循迹机器人_机器人教程4:红外循迹及LM339模块
  4. Flink v1.11 - 官网 - 部署与运维
  5. linux中断子系统 - 中断控制器的注册
  6. 怎么用C51语言实现50ms延时,单片机入门-C51语言实现简单的红绿LED交通灯控制
  7. wlan-cloud-ucentral docker 服务器部署
  8. linux系统RootKit木马查杀
  9. Ubuntu wine使用问题记录
  10. Wine完全使用完全指南(从初级到高级)