读AI3.0笔记04_视觉识别

news2024/11/16 7:22:52

1. 两次飞跃

1.1. ConvNets是当今计算机视觉领域深度学习革命的驱动力

1.1.1. 20世纪80年代便由法国计算机科学家杨立昆提出,而他则是受到了福岛·邦彦提出的神经认知机(Neocognitron)的启发

1.2. ImageNet竞赛被看作计算机视觉和人工智能进步的关键标志

1.2.1. 普林斯顿大学年轻的计算机视觉教授李飞飞尤其关注这一目标。李飞飞有一个新的想法——根据词网(WordNet)中的名词构建一个图像数据库,使其中每个名词都与大量包含该名词所表示事物的图像相关联,因此ImageNet的构想诞生了

1.2.1.1. 目标识别任务本身

2. 看与做

2.1. 人类几乎可以在瞬间完成大量信息的处理

2.1.1. 我们很少会意识到我们正在做这些信息处理以及我们是如何做到的

2.1.2. 除非一个人先天失明,否则视觉处理会在各种抽象层面上支配大脑

2.1.3. 以这种方式来描述照片、视频或照相机中的实时视频流中内容的能力,也是我们要求通用的、人类水平的人工智能所首先要具备的素质之一

2.2. 兼具观看和观察的视觉,原来是所有“容易”的事情里最难的

2.2.1. 始终是“看”起来容易“做”起来难

2.3. 自20世纪50年代以来,人工智能领域的研究者一直致力于使计算机能够理解视觉数据

2.4. 1966年,极力推广符号人工智能的麻省理工学院教授明斯基和佩珀特提出了“夏季视觉项目”

2.4.1. “构建视觉系统的重要组成部分”的课题研究

2.5. 目标识别(object recognition)

2.5.1. 目标识别对我们人类来说是可以非常迅速和轻而易举就能完成的事情

2.5.2. 它看起来对计算机来说也不应该会是一个特别困难的问题,直到人工智能研究者真正试图让计算机去完成它,才发现事实恰恰相反

2.5.3. 如果输入的只是图像的像素,程序首先要弄清楚哪些是“狗”的像素,哪些是“非狗”的像素(如背景、阴影、其他物体等

2.5.3.1. 狗的像素组可能看起来会很像猫或其他动物的像素组
2.5.3.2. 在某些光照条件下,天空中的一朵云甚至都可能看起来非常像一条狗

2.5.4. 识别目标对象之“不变特征”的专用图像处理算法,仍然是计算机视觉研究人员的一项主要的研究工作

2.5.4.1. 即便是有了复杂的图像处理算法,目标识别程序的相关能力仍然远不及人类

3. 深度学习

3.1. 由于深度学习领域的进展,机器对图像和视频中物体的识别能力在21世纪第一个10年经历了一次质的飞跃

3.2. 深度学习简单来说是指用于训练DNN的算法,这里的DNN就是深度神经网络,指的是具有不止一个隐藏层的神经网络

3.3. 一个“深度”网络则有不止一个隐藏层

3.3.1. 深度学习中的“深度”并不是指神经网络所学习内容的复杂性,而仅仅是指网络本身的层数

3.3.2. 不是复杂性,而是层深

3.4. 最成功的DNN是那些模仿了大脑的视觉系统结构的网络

3.4.1. 主导深度学习的DNN则是直接根据神经科学中关于大脑的相关研究发现进行建模的

3.5. 深度学习在近年来的成功与其说是人工智能的新突破,不如说要归功于互联网时代极易获得的海量数据和并行计算机硬件的快速处理能力

4. 卷积神经网络

4.1. ConvNets是当今计算机视觉领域正在进行的深度学习革命的驱动力,当然在其他领域也是如此

4.2. ConvNets的设计基于胡贝尔和威塞尔在20世纪五六十年代发现的与大脑视觉系统相关的几个关键信息

4.2.1. 层次结构中不同层的神经元是响应视觉场景中出现的渐增复杂特征的“检测器”

4.2.2. 视皮层中也会有自顶向下或反向的信息流,也就是信息从较高层向较低层传递

4.2.3. 让网络学会对输入图像所属的正确类别输出高置信度,对其他类别输出低置信度

4.2.4. 激活特征图(activation maps),它受到了大脑视觉系统中类似的“映射”的启发

4.2.5. 在大量真实的图像数据集上进行训练时,ConvNets似乎确实演化出了一种类似于胡贝尔和威塞尔在大脑视觉系统中所发现的检测器的分层结构

4.3. 在20世纪80年代由法国计算机科学家杨立昆提出,而他则是受到了福岛提出的神经认知机的启发

4.3.1. 杨立昆是ConvNets之父,纽约大学终身教授,深度学习三巨头之一,杨立昆是他给自己起的中文名字

4.4. 20世纪八九十年代在贝尔实验室工作期间,杨立昆转向对自动识别手写数字和字母的研究

4.4.1. 创建了“LeNet”,即最早的ConvNets之一

4.4.2. LeNet凭借手写数字识别功能在商业上获得了成功,从20世纪90年代到21世纪初,LeNet被美国邮政局用于自动识别邮政编码,并被银行业用于自动读取支票上的手写数字

4.5. ConvNets中的单元是重要视觉特征的探测器,每个单元会在视野的特定部分寻找其指定特征

4.5.1. “边缘”指的是两个对比明显的图像区域之间的边界

4.5.2. 这个区域被称为该神经元的感受野receptive field

4.6. 要使ConvNets工作得更好,仍需结合人类的聪明才智

4.6.1. 不断从训练样本中学习,而非预先内置正确答案

4.6.2. 网络会在某个点上“收敛”,即权重从一个周期迭代到下一个周期时不再变化了

4.6.2.1. 此时网络已经非常擅长识别训练集图像中的狗和猫了
4.6.2.2. 我们并不能确定该网络是否真正擅长完成这项任务,除非它能将识别图像过程中学到的知识应用到训练集之外的图像上

4.7. 最高卷积层的激活特征图被输入到一个传统的神经网络(分类模块),该网络输出其对已知的对象类别的置信度

4.7.1. 具有最高置信度的对象类别被输出为网络对于该图像的分类

4.8. ConvNets可通过使用ImageNet中的图像进行预训练来学习通用的视觉特征

4.9. 以一套技术解决一个又一个问题

4.9.1. 在大量标记数据上训练过的DNN,其在语音识别领域的表现比该领域正在使用的其他技术更优

4.9.2. ConvNets甚至能够根据医学图像诊断乳腺癌和皮肤癌,确定糖尿病性视网膜病变的阶段,并协助医生制定前列腺癌的治疗方案

4.9.3. Twitter开发了一个过滤器,可以筛除推文中的不合规图片

4.9.4. 谷歌、微软等公司所提供的图片搜索引擎均能极大地改进其“查找相似图片”的技术

5. ImageNet

5.1. 普林斯顿大学年轻的计算机视觉教授李飞飞

5.1.1. 创建一个英语单词数据库(WordNet),将单词按同义词分组,并从最具体到最一般化的等级进行层次结构排序

5.1.2. 根据WordNet中的名词构建一个图像数据库,使其中每个名词都与大量包含该名词示例的图像相关联

5.1.2.1. ImageNet的构想诞生了

5.1.3. 李飞飞和她的合作者很快就开始使用WordNet中的名词作为图片搜索引擎(如Flickr和谷歌图片搜索)的查询词以收集海量的图片

5.1.3.1. 判定一张照片是否与某个特定名词相关,其本质就是目标识别任务本身

5.2. “亚马逊土耳其机器人”(Amazon Mechanical Turk)

5.2.1. 一个需要人类智慧的工作市场

5.2.1.1. 人类被雇用来执行目前对计算机来说仍然很难的“简单”任务
5.2.1.2. 这项服务被人工智能研究者广泛地用于创建数据集,人工智能领域的学术资助提案也往往会包括一个土耳其机器人的专属条目

5.2.2. 请求者是指那些需要完成某项难以由计算机完成的任务的人

5.2.3. 工人是指那些仅收取少量费用(例如,标注图像中的物体,每张照片的报酬是10美分)就愿意将其智慧用于完成请求者所要求的任务的人

5.3. 2005—2010年,这类年度比赛中最令人瞩目的是PASCAL视觉目标类别竞赛

5.3.1. 计算机视觉程序能够将图像作为输入(在看不到人工创建的标签的情况下),然后用20种类别作为输出,来判定某一种类别的对象是否出现在图像中

5.4. ImageNet竞赛涉及1 000种可能的类别,远远多于PASCAL的20个输出类别

5.4.1. 参赛程序的任务是对每张图像输出正确的类别

5.5. “top-5”准确率衡量标准

5.5.1. 对每个图像至多猜测5个类别,如果正确类别在输出之列,我们就说该程序对这张图像的识别是正确的

5.6. 2010年得分最高的程序使用了所谓的“支持向量机”算法

5.6.1. 在15万张测试图像上的正确率为72%

5.7. 直到2012年,ConvNets在一个名为ImageNet的图像识别数据库上赢得了计算机视觉竞赛,由ConvNets研究人员传递的这只火炬突然照亮了计算机视觉研究的世界

5.7.1. 获奖程序top-5准确率达到了惊人的85%,这种准确率的飞跃实在是令人震惊的进步

5.7.2. 这个独特的ConvNets名为AlexNet,以其主要开发者亚历克斯·克里泽夫斯基(Alex Krizhevsky)的名字命名

5.7.3. AlexNet包含8层,约有6 000万个权重,这些权重通过在上百万张训练图像上进行反向传播来学习

5.8. 在2017年举办的竞赛中,获胜程序的top-5准确率为98%

5.9. 定位挑战赛

5.9.1. 可以要求机器不仅输出图像中的对象类别,同时还要学会在目标对象周围画一个方框,这样我们就知道机器确实“看到”了目标

5.9.1.1. 如果我们真的希望机器描述它所“看到”的内容,它们将需要使用语言
5.9.1.2. 视觉智能与其他的智能并不是那么容易分得开,尤其是通用知识、抽象概念和语言等与大脑的视皮层有许多反馈联系的相关智能

5.9.2. 虽然ConvNets在定位方面表现得很好,但与其在分类任务上的表现相比,就差得多了

6. 超越人类?

6.1. 这一论断是基于人类的错误率约为5%,而机器的错误率接近2%的一个声明

6.1.1. 人类指被试名叫安德烈·卡帕西(Andrej Karpathy),他当时是一名在斯坦福大学研究深度学习的研究生

6.2. 当你读到“一台机器正确地识别了目标”时,你会认为,给定一张篮球的图像,机器会输出“篮球”这一结果

6.3. 在ImageNet竞赛中,正确地识别仅意味着正确类别出现在机器给出的前5个输出类别当中

6.3.1. 如果给机器输入一张篮球的图像,机器按顺序输出的是门球、比基尼、疣猪、篮球和搬家货车,即可被判定是正确识别

6.4. 相比于2017年ImageNet竞赛中98%的top-5准确率,最高的top-1准确率只有82%

6.4.1. top-1准确率指的是测试图像中所含内容的正确类别位于输出结果列表顶端的概率

6.5. 对于计算机已在ImageNet竞赛中击败人类这一说法,需要在很大程度上持保留意见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1404058.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zero w配置C++ opencv csi 摄像头

经过一天半的摸索,踩过了很多坑,这里记录一下 1、系统网站:https://www.raspberrypi.org/downloads/raspberry-pi-os/ 由于zero w 性能不太行,我下载的是: 2、系统烧录: 这里的坑有两个,一个…

【深度学习】BasicSR训练过程记录,如何使用BasicSR训练GAN

文章目录 两种灵活的使用场景项目结构概览简化的使用方式 项目结构解读1. 代码的入口和训练的准备工作2. data和model的创建2.1 dataloader创建2.2 model的创建 3. 训练过程 动态实例化的历史演进1. If-else判断2. 动态实例化3. REGISTER注册机制 REGISTER注册机制的实现1. DAT…

React Router v6 改变页面Title

先说正事再闲聊 1、在路由表加个title字段 2、在index包裹路由 3、在App设置title 闲聊: 看到小黄波浪线了没 就是说默认不支持title字段了 出来的提示, 所以我本来是像下面这样搞的,就是感觉有点难维护,就还是用上面的方法了 …

Labview for循环精讲

本文详细介绍Labview中For循环的使用方法,从所有细节让你透彻的看明白For循环是如何使用的,如果有帮助的话记得点赞加关注~ 1. For循环结构 从最简单的地方讲起,一个常用的for循环结构是由for循环结构框图、循环次数、循环计数(i)三部分组成…

人大金仓数据库授权文件过期解决

一台用于测试的人大金仓数据库访问失败。 登录后发现服务停了。 使用命令行启动,提示服务过期。 查网上资料,说替换原有文件可以解决。 于是去官网下载一个新的,替换掉原来的授权文件。 再次启动数据库,还是提示授权文件过期。…

代码中遇到的问题

编译器错误消息: CS1061: default_aspx 不包含 GridView1_SelectedIndexChanged 的定义,并且找不到接受类型为default_aspx的第一个参数的可访问扩展方法GridView1_SelectedIndexChanged(是否缺少 using 指令或程序集引用&#xf…

设计模式—行为型模式之备忘录模式

设计模式—行为型模式之备忘录模式 备忘录(Memento)模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以便以后当需要时能将该对象恢复到原先保存的状态。该模式又叫快照模…

C++ //练习 2.35 判断下列定义推断出的类型是什么,然后编写程序进行验证。

C Primer(第5版) 练习 2.35 练习 2.35 判断下列定义推断出的类型是什么,然后编写程序进行验证。 const int i 42; auto j i; const auto &k i; auto *p &i; const auto j2 i, &k2 i;环境:Linux Ubuntu&#x…

ThreeJS快速入门指南

Three.js 介绍 Three.js 是一个开源的应用级 3D JavaScript 库,可以让开发者在网页上创建 3D 体验。Three.js 屏蔽了 WebGL的底层调用细节,让开发者能更快速的进行3D场景效果的开发。 Three.js的开发环境搭建 创建目录并使用 npm init -y 初始化 pack…

Laravel 10.x 里如何使用ffmpeg

原理上很简单,就是使用命令行去调用ffmpeg,然后分析一下输出是不是有错误。 安装 首先安装 symfony/process,主要用于包装一下,用来代替 exec, passthru, shell_exec and system 。 composer require symfony/process composer…

像素图片在网页中很模糊怎么办?输入这个样式

像素图片在网页中很模糊怎么办?输入这个样式 image-rendering: pixelated;输入前 输入后

java数据结构与算法刷题-----LeetCode378. 有序矩阵中第 K 小的元素

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 解题思路 已知矩阵相对有序,可以用二分搜索,不过和…

Ultraleap 3Di配置以及在 Unity 中使用 Ultraleap 3Di手部跟踪

0 开发需求 1、硬件:Ultraleap 手部追踪相机(Ultraleap 3Di) 2、软件:在计算机上安装Ultraleap Gemini (V5.2) 手部跟踪软件。 3、版本:Unity 2021 LTS 或更高版本 4、Unity XR插件管理:可从软件包管理器窗…

Pyside6在Pycharm下安装和使用

目录 一:安装 二:使用 一:安装 打开Pycharm编辑器,file-setting里Python解释器,点击小号,添加模块,搜索Pyside6,安装 安装报错,可能是默认的库安装超时,用其他的源 p…

【论文阅读笔记】Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation

1.介绍 Swin-Unet: Unet-like Pure Transformer for Medical Image Segmentation Swin-Unet:用于医学图像分割的类Unet纯Transformer 2022年发表在 Computer Vision – ECCV 2022 Workshops Paper Code 2.摘要 在过去的几年里,卷积神经网络&#xff…

深入理解Kubernetes探针和.NET服务健康检查机制

前言 随着越来越多的软件采用云原生和微服务架构,我们面临着更多的技术挑战,比如: Kubernetes如何在容器服务异常终止、死锁等情况下,发现并自动重启服务;当服务依赖的关键服务(例如数据库,Red…

[足式机器人]Part2 Dr. CAN学习笔记- 最优控制Optimal Control Ch07-3 线性二次型调节器(LQR)

本文仅供学习使用 本文参考: B站:DR_CAN Dr. CAN学习笔记 - 最优控制Optimal Control Ch07-3 线性二次型调节器(LQR) 1. 数学推导2. 案例反洗与代码详解 1. 数学推导 2. 案例反洗与代码详解

RK3568笔记十一:mpp编解码

若该文为原创文章,转载请注明原文出处。 主要是想测试MPP的解码,为后续做测试。 一、环境 1、平台:rk3568 2、开发板:ATK-RK3568正点原子板子 3、环境:buildroot 二、编译 使用的是正点原子提供的虚拟机,搭建好环…

TensorRT部署--Linux(Ubuntu)环境配置

系列文章目录 TensorRT环境配置–Linux(Ubuntu) 文章目录 系列文章目录前言一、环境配置二、CUDA下载安装三、cuDNN下载安装四、TensorRT下载安装五、模型创建总结 前言 TensorRT部署-Windows环境配置: https://blog.csdn.net/m0_70420861/article/details/135658922?csdn_s…

写着玩的程序:pycharm实现无限弹窗程序(非病毒程序,仅整蛊使用)

运行环境 PyCharm 2023.2.1 python3.11 具体内容 源代码 import tkinter as tk from tkinter import messagebox import threadingclass PopupGenerator:def __init__(self):self.root tk.Tk()self.root.geometry("200x120")self.root.title("无限弹窗&qu…