[5机器学习]计算机视觉的世界-卷积神经网络(CNNs)

2023-11-04

我们知道,数据不仅包含文字、数字,还包含图片、视频等,如何更好地查看、识别和解释图像和视频的内容,就像人类视觉一样,一直是目前人工智能的主要研究方向。机器学习无疑是现代数据科学的核心,在经历了几十年回归、分类、决策树、异常检测的沉淀后,数据科学的魔爪也不断地向更深度的学习试探。

一、计算机视觉的世界

今天,ofter会通过最简单、易懂、完整的讲解(尽量不出现公式之类枯燥的元素),带大家领略计算机视觉的世界!

  1. 人工神经网络的常用模型,以及如何使用正确的模型;
  2. 人工神经网络的实例检测和分割实战应用。

二、常规神经网络(NNs)

图片的本质是数字,通过对大量数字的处理,来实现我们对图片的一系列处理:

  • 图像分类
  • 图像分类+定位
  • 实例检测
  • 实例分割
  • 图像风格转换
  • 图像着色
  • 影像重建
  • 图像超分辨率
  • 图像合成

最简单的图片类型,应该就是黑白的手写数字图了吧?这和我们小时候咿呀学语的状况很像,一开始我们也是在纸上写数字。从上图中,也可以看出来,我们写一个数字,就一笔,但计算机看到的却是一长串数字列表。

为了模拟人类视觉神经对图片的处理过程,有人发明了人工神经网络,其实就是把神经收发的信号换成数字。

看下图,Input Layer是一个个数字,也可以是一个个数组,通过一层层的Hidden Layer加工处理,最后识别图片中的内容。

不过呢,这个是对人类神经网络的初步模仿,无论是速度、准确度肯定都没法与人类的视觉相比。因此,我们研究出了卷积神经网络(CNNs)、循环神经网络(RNNs)等模型来不断进化我们的计算机,使得计算机的识别力无限逼近人类,甚至超越人类。

三、卷积神经网络(CNNs)

今天,我们重点介绍下卷积神经网络的发展过程以及常用模型。卷积神经网络大大提高了图片的计算性能,它的架构下主要分为3个类型的层:卷积层、池化层、全连接层(神经网络)。

上图,也很明显,就是经过N次的卷积+池化,最后再进行常规的神经网络,输出识别内容。因为,作为数据科学家,其实不需要知道具体的卷积层、池化层以及常规神经网络是怎么运作的,我们只需要明白某个模型能带来什么样的识别、性能、效果就可以了,所以我就不详细展开每个模型具体每层是怎么计算的了。

我们需要知道4个参数,这个在模型训练时要定义:

• 过滤器大小 (Filter,例如3 × 13)

• 过滤器的数量 (我们要使用多少个过滤器,例如我们可以使用 20 个过滤器,则 k = 20)

• Stride (指定过滤器每次移动的步长,例如,Stride = 2)

• 零填充量 (添加了一层零值像素(灰色区域),这样我们的特征图就不会缩小,例如 Padding = 2)

四、卷积神经网络的应用

4.1 常用的架构

近10年的时间里,我们研究了许多架构,性能、准确度也是不断地提升,从下图也可以看出来,总体上发展得比较迅速。

每一种架构,或多或少都有点站在前人肩膀上的意味,再加上自己的一些亮点。比如AlexNet、VGG、GoogleNet,它们基于卷积神经网络,在卷积层、池化层采用了不同的过滤器、不同数量的过滤器,不同的stride, padding,总之是各种排列组合,通过很多很多次的测试得到最佳案例。更多的架构:

4.2 训练模型

主要有2种训练方式:从头开始训练,预训练模型迁移学习。

在实践中,很少有人会从头开始训练整个卷积网络,从头开始训练一个准确的模型需要大量数据,大约数百万个样本,这需要大量时间。因此我们重点看下迁移学习,举个简单的例子,在学习识别汽车时获得的知识可以应用于识别卡车。在哪里找类似的预训练模型呢?推荐一个网址:http://modelzoo.co

许多研究和开发人员为各种任务训练机器学习模型,并在 Model Zoo 中共享他们的预训练模型。作为数据科学家,你可以评估哪个模型更加适合你关注的场景和数据,或组合新用途,甚至改进以前发布的模型。

4.3 图像处理

4.3.1 分类和定位

分类和定位比较好理解。

4.3.2 语义分割

语义分割的应用包括自动驾驶、医学成像分析、工业检测、室内导航,甚至虚拟或增强现实系统等。下图是医学成像的一个例子。

语义分割是将图像中的每种元素进行分类,具有相同标签的像素具有相同特征。比如下图:

但是,语义分割仍然不是一个成熟的领域,许多研究人员仍在研究它。 过去几年已经开发出了许多新方法。

4.3.3 实例检测

实例检测模型主要有2大类:基于预测区域的模型和不基于预测区域的模型。

CSDN上也有好多YOLO、SSD的案例,总体来说,Faster R-CNN 比 YOLO/SSD 算法慢,但更准确。因此,当实时性比较高的时候,我们肯定要采用YOLO这样的模型,而实时性要求不高但准确度要求高的时候,我们就需要采用Faster R-CNN。

4.3.4 实例分割

Mask R-CNN 是非常有影响力的实例分割技术。 这是一个两阶段的框架:第一阶段扫描图像并生成建议(可能包含对象的区域)。 第二阶段对建议内容进行分类并生成边框和蒙版。

五、总结

今天,ofter为大家介绍了些常用的深度学习模型和使用场景。需要使用机器学习的时候,你就知道大概要使用什么样的模型。下一期,我们将通过实战,用python+tensorflow/keras等框架+模型进行图片内容的识别,敬请期待!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[5机器学习]计算机视觉的世界-卷积神经网络(CNNs) 的相关文章

  • 微信和支付宝对我们生活产生翻天覆地的改变

    移动支付同样也是移动互联网发展的产物之一 如今我们基本已经告别了现金时代 大家出门兜里都不放现金了 所有的消费几乎都可以通过线上支付来实现 微信和支付宝的出现 对我们的生活产生了翻天覆地的改变 科技千万种 能够便民利民 解决用户需求的科技

随机推荐

  • 十个激活函数

    激活函数 Activation Function 是一种添加到人工神经网络中的函数 旨在帮助网络学习数据中的复杂模式 类似于人类大脑中基于神经元的模型 激活函数最终决定了要发射给下一个神经元的内容 在人工神经网络中 一个节点的激活函数定义了
  • 2014年秋季学期CSDN高校俱乐部全国高校巡讲讲师招募

    CSDN高校俱乐部 以下简称 俱乐部 是由全球最大中文IT技术社区CSDN发起的 由全国各高校在校生代表自发加入的IT技术学习型组织 CSDN由此搭建起行业与校园之间的桥梁 公益为各俱乐部提供行业资讯 技术学习 专家交流 技术竞赛等学习服务
  • java课堂练习——类与对象

    今天我们在Java课上学习了类与对象的知识点 一 验证ClassAndObjectTest java 1 代码 public class ClassAndObjectTest public static void main String a
  • AltiumDesigner 为何PCB中无法选中元器件

    关掉过滤器 清除当前过滤器
  • PhotoShop 基础教程-000

    文章目录 前言 总目录 前言 主要讲解photoshop基础知识 所有课程来源B站 PS教程 总目录 第1节 PhotoShop基础课程 版本发展 第2节 PhotoShop基础课程 基础操作 第3节 PhotoShop基础课程 PS界面认
  • Open3D 查看点的坐标

    一 手动选点 函数pick points pcd 创造了一个VisualizerWithEditing实例去模仿draw geometries 创造可视化窗口 添加几何图形 可视化几何图形和结束 VisualizerWithEditing提
  • dnf服务器维护公告,11月18日早4点-12点服务器例行维护公告

    尊敬的DNF用户 为保证服务器的稳定运行 提高游戏品质 我们将于2008年11月18日 周二 凌晨04 00 12 00对所有服务器停机 进行例行维护工作 根据维护工作的进度 停机结束时间有可能提前或者延后 由于福建1区 广东2区 广东3区
  • Apache Beam -- 简介

    概述 在大数据的浪潮之下 技术的更新迭代十分频繁 受技术开源的影响 大数据开发者提供了十分丰富的工具 但也因为如此 增加了开发者选择合适工具的难度 在大数据处理一些问题的时候 往往使用的技术是多样化的 这完全取决于业务需求 比如进行批处理的
  • IT专业技术人员学习网站整理

    1 高端数据资料库 http www chiefdatum com 站点介绍 包含产品数据 学习资料 技术资料 热门图书 眼镜设计 考研 医疗器械等资料为一体的综合性网站 提供专业性下载 2 CSDN NET http www csdn n
  • SpringMVC入门案例

    SpringMVC 概述 SpringMVC是一种基于Java实现MVC模型的轻量级Web框架 三层架构 表现层 负责数据展示 业务层 负责业务处理 数据层 负责数据操作 MVC Model View Controller 一种用于设计创建
  • Java本地缓存CaffeineCache集成

    首先导入需要的依赖
  • 递归展示用户端商品分类列表的层级关系

    递归展示用户端商品分类列表的层级关系 自定义列表实体类 service层 递归调用 自定义列表实体类 添加属性 private List
  • Khan公开课 - 统计学学习笔记:(三)随机变量、概率密度、二项分布、期望值

    随机变量 Random Variable 随机变量和一般数据上的变量不一样 通常用大写字母表示 如X Y Z 不是个参数而是function 即函数 例如 下面表示明天是否下雨的随机变量X 如下 又例如X 每小时经过路口的车辆 随机变量是个
  • MicroPython串口数据转换技巧

    技巧一 还原从串口接收的HEX字符串 首先上官方文档 确认接收数据类型为bytes 串口读来的bytes类型HEX数据转换成HEX类型字符串转换函数 ByteToHex的转换 返回数据16进制字符串 def ByteToHex bins r
  • 使用Nacos实现分布式配置管理和服务发现

    文章目录 一 前言 二 Nacos 1 1什么是Nacos 1 1 1 服务发现和注册 1 1 1 1 服务注册 1 1 1 2 服务发现 1 2 Nacos的使用 1 2 1 配置管理 1 2 2 服务发现 三 结论 一 前言 在现代分布
  • 相关滤波的视觉目标跟踪算法学习

    相关滤波的视觉目标跟踪算法学习内容 1 视觉目标跟踪的难点 训练数据有限 通用目标跟踪任务中 目标先验知识缺乏 仅有目标初始位置信息 目标不确定性 跟踪过程中 随着目标尺寸 形状以及姿态等变化 其外观模 型存在明显差异 多目标跟踪任务中 当
  • 1.2 DICOM成像协议剖析

    以下链接是本系列文章 不足之处 可在评论区讨论 系列文章 1 1 DICOM协议简介及应用 1 2 DICOM成像协议剖析 1 3 DICOM成像协议实现思路 1 4 DICOM图像CT值计算 1 5 DICOM图像CT值转RGB 1 6
  • linux+性能排查,Linux系统性能排查基础

    此文已由作者李晶授权网易云社区发布 欢迎访问 上一期运维季刊中 我们重点从CPU方面分析了Linux系统性能瓶颈 除了CPU之外 内存 IO和网络也是常见的造成系统出现问题的根源 本篇我们继续介绍如何从这三个子系统来排查Linux整个系统的
  • Redis配置数据持久化---APPEND ONLY MODE

    Redis可以实现数据的持久化存储 即将数据保存到磁盘上 Redis的持久化存储提供两种方式 RDB与AOF RDB是默认配置 AOF需要手动开启 现在Redis的配置中默认是关闭AOF模式的 如果要开启AOF模式 修改Redis的配置文件
  • [5机器学习]计算机视觉的世界-卷积神经网络(CNNs)

    我们知道 数据不仅包含文字 数字 还包含图片 视频等 如何更好地查看 识别和解释图像和视频的内容 就像人类视觉一样 一直是目前人工智能的主要研究方向 机器学习无疑是现代数据科学的核心 在经历了几十年回归 分类 决策树 异常检测的沉淀后 数据