点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

译者|Arno

当我们说卷积神经网络(CNN)时,通常是指用于图像分类的2维CNN。但是,现实世界中还使用了其他两种类型的卷积神经网络,即1维CNN和3维CNN。在本指南中,我们将介绍1D和3D CNN及其在现实世界中的应用。我假设你已经大体上熟悉卷积网络的概念。

2维CNN | Conv2D

这是在Lenet-5架构中首次引入的标准卷积神经网络。Conv2D通常用于图像数据。之所以称其为2维CNN,是因为核在数据上沿2维滑动,如下图所示。

使用CNN的整体优势在于,它可以使用其核从数据中提取空间特征,而其他网络则无法做到。例如,CNN可以检测图像中的边缘,颜色分布等,这使得这些网络在图像分类和包含空间属性的其他类似数据中非常强大。

以下是在keras中添加Conv2D图层的代码。

import kerasfrom keras.layers import Conv2Dmodel = keras.models.Sequential()model.add(Conv2D(1, kernel_size=(3,3), input_shape = (128, 128, 3)))model.summary()

参数input_shape(128、128、3)表示图像的(高度,宽度,深度)。参数kernel_size(3,3)表示核的(高度,宽度),并且核深度将与图像的深度相同。

1维CNN | Conv1D

在介绍Conv1D之前,让我给你一个提示。在Conv1D中,核沿一维滑动。现在让我们考虑哪种类型的数据只需要核在一个维度上滑动并具有空间特性?

答案就是时间序列数据。让我们看一下以下数据。

该数据是从人戴在手臂上的加速度计中收集的。数据表示所有三个轴的加速度。1维CNN可以根据加速度计数据执行活动识别任务,例如人是站着,行走,跳跃等。此数据有2个维度。第一维是时间步长,另外一个是3个轴上的加速度值。

下图说明了核如何在加速度计数据上移动。每行代表某个轴的时间序列加速度。核只能沿时间轴一维移动。

以下是在keras中添加Conv1D图层的代码。

import kerasfrom keras.layers import Conv1Dmodel = keras.models.Sequential()model.add(Conv1D(1, kernel_size=5, input_shape = (120, 3)))model.summary()

参数input_shape(120,3)表示120个时间步骤,每个时间步骤中有3个数据点。这3个数据点是x,y和z轴的加速度。参数kernel_size为5,表示核的宽度,核高度将与每个时间步骤中的数据点数相同。

同样,1维CNN也可用于音频和文本数据,因为我们还可以将声音和文本表示为时间序列数据。请参考下图

Conv1D广泛应用于感官数据,加速度计数据就是其中之一。

3维CNN | Conv3D

在Conv3D中,核按3个维度滑动,如下所示。让我们再想想哪种数据类型需要核在3维上移动?

Conv3D主要用于3D图像数据。例如磁共振成像(MRI)数据。MRI数据被广泛用于检查大脑,脊髓,内部器官等。计算机断层扫描(CT)扫描也是3D数据的示例,它是通过组合从身体周围不同角度拍摄的一系列X射线图像而创建的。我们可以使用Conv3D对该医学数据进行分类或从中提取特征。

mark

以下是在keras中添加Conv3D层的代码。

import kerasfrom keras.layers import Conv3Dmodel = keras.models.Sequential()model.add(Conv3D(1, kernel_size=(3,3,3), input_shape = (128, 128, 128, 3)))model.summary()

这里参数Input_shape(128,128,128,3)有4个维度。3D图像也是4维数据,其中第四维代表颜色通道的数量。就像平面2D图像具有3维一样,其中3维代表色彩通道。参数kernel_size(3,3,3)表示核的(高度,宽度,深度),并且核的第4维与颜色通道相同。

总结

  • 在1D CNN中,核沿1个方向移动。一维CNN的输入和输出数据是二维的。主要用于时间序列数据。

  • 在2D CNN中,核沿2个方向移动。2D CNN的输入和输出数据是3维的。主要用于图像数据。

  • 在3D CNN中,核沿3个方向移动。3D CNN的输入和输出数据是4维的。通常用于3D图像数据(MRI,CT扫描)。

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「小白学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「小白学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

了解1D和3D卷积神经网络|Keras相关推荐

  1. 多时间尺度 3D 卷积神经网络的步态识别

    多时间尺度 3D 卷积神经网络的步态识别 论文题目:Gait Recognition with Multiple-Temporal-Scale 3D Convolutional Neural Netw ...

  2. python图像人类检测_OpenCV人类行为识别(3D卷积神经网络)

    1. 3D卷积神经网络 相比于2D 卷积神经网络,3D卷积神经网络更能很好的利用视频中的时序信息.因此,其主要应用视频.行为识别等领域居多.3D卷积神经网络是将时间维度看成了第三维. 人类行为识别的实 ...

  3. 1D/2D/3D卷积详解

    目录 概述 1D卷积 2D卷积 3D卷积 概述 1D/2D/3D卷积计算方式都是一样的,其中2D卷积应用范围最广.与全连接层相比,卷积层的主要优点是参数共享和稀疏连接,这使得卷积操作所需要学习的参数数 ...

  4. 卷积神经网络(2D卷积神经网络和3D卷积神经网络理解)

    前言 卷积神经⽹络(convolutional neural network,CNN)是⼀类强⼤的神经⽹络,正是为处理图像 数据而设计的.基于卷积神经⽹络结构的模型在计算机视觉领域中已经占主导地位,当 ...

  5. 深度学习之3D卷积神经网络

    一.概述 3D CNN主要运用在视频分类.动作识别等领域,它是在2D CNN的基础上改变而来.由于2D CNN不能很好的捕获时序上的信息,因此我们采用3D CNN,这样就能将视频中时序信息进行很好的利 ...

  6. [十三]深度学习Pytorch-卷积层(1D/2D/3D卷积、卷积nn.Conv2d、转置卷积nn.ConvTranspose)

    0. 往期内容 [一]深度学习Pytorch-张量定义与张量创建 [二]深度学习Pytorch-张量的操作:拼接.切分.索引和变换 [三]深度学习Pytorch-张量数学运算 [四]深度学习Pytor ...

  7. OpenCV人类行为识别(3D卷积神经网络)

    上图视频测试链接:https://www.bilibili.com/video/BV13E411c7Mv/ 1. 3D卷积神经网络 相比于2D 卷积神经网络,3D卷积神经网络更能很好的利用视频中的时序 ...

  8. 理解1D、2D、3D卷积神经网络的概念

    目录 引言 二维CNN | Conv2D 一维CNN | Conv1D 三维CNN | Conv3D 总结 引言 当我们说卷积神经网络(CNN)时,通常是指用于图像分类的二维CNN.但是,现实世界中还 ...

  9. 3d卷积神经网络_HSNets:使用卷积神经网络从2D轮廓预测3D人体模型

    文章摘要 本文使用人体二进制轮廓或阴影图像进行3D人体建模.利用参数化的人体模型,训练卷积神经网络(CNN)来学习从输入到形状参数的全局映射,这些参数用于在中性姿势下重构人体模型.同时还利用两个相互正 ...

最新文章

  1. C#程序如何对接比特币钱包节点?
  2. 【Android 逆向】函数拦截实例 ( ② 插桩操作 | 保存实际函数入口 6 字节数据 | 在插桩的函数入口写入跳转指令 | 构造拼接桩函数 )
  3. 装配bean的三种方式
  4. linux命令去除重复的值,学习linux的Split 命令-linux下去除重复的命令uniq用法...-linux下join与paste命令的用法_169IT.COM...
  5. 【Unity】Update()和FixedUpdate()
  6. mfc mysql操作_MFC的数据库操作
  7. 守护进程之PHP实现
  8. linux shell do done,bash千万不要这样cmd | while read X Y Z; do ... done使用
  9. 【Flask】from flask.ext.script import Manager
  10. 麦当劳将携手逾100所职业院校提升就业能力;百胜中国一季度开设315家新店 | 美通企业日报
  11. 你知道 FW 工程师 是做什么的吗?
  12. 人工智能全球 2000 位最具影响力学者榜单
  13. 计算机考研作息时间表,985学长强力推荐考研作息时间表!
  14. Ubuntu 20.04 安装企业微信
  15. 快手热门早安文案正能量朋友圈
  16. 数字门店要怎么运营,才能助力线下门店降本增效?
  17. 获取input选择文件的本地地址
  18. CentOS7更换国内源以及安装补充更新源(安装nethogs)
  19. myeclipse编译无效,debug下一步执行不正确,修改的代码没有起作用
  20. 如何制作一个简单的机械臂

热门文章

  1. 作为一名程序员,数学到底对你有多重要?
  2. 分析Booking的150种机器学习模型,我总结了六条成功经验
  3. Python最抢手、Go最有前途,7000位程序员揭秘2019软件开发现状
  4. 史上最强最贵Mac Pro诞生,iPadOS和iOS分家!WWDC19全面总结
  5. 深度概览卷积神经网络全景图,没有比这更全的了
  6. TensorFlow1.8.0正式发布,Bug修复和改进内容都在这里了
  7. AI一分钟 | 传许家印已投资贾跃亭FF;腾讯将发布可接收微信的智能音箱;阿里确认研发自动驾驶技术
  8. 如何通过机器学习还原图像色彩
  9. 这三个普通程序员,几个月就成功转型AI,他们的经验是...
  10. 面试必备:Java线程池解析