计算机视觉 01(介绍)

news2024/11/18 19:27:40

一、深度学习

1.1 人工智能

1.2 人工智能,机器学习和深度学习的关系

机器学习是实现人工智能的一种途径,深度学习是机器学习的一个子集,也就是说深度学习是实现机器学习的一种方法。与机器学习算法的主要区别如下图所示[参考:黑马]:

 

  • 传统机器学习算术依赖人工设计特征,并进行特征提取
  • 深度学习方法不需要人工,而是依赖算法自动提取特征

深度学习模仿人类大脑的运行方式,从经验中学习获取知识。这也是深度学习被看做黑盒子,可解释性差的原因。随着计算机软硬件的飞速发展,现阶段通过深度学习来模拟人脑来解释数据,包括图像,文本,音频等内容。目前深度学习的主要应用领域有: 语音识别,计算机视觉,自动驾驶

1.3 深度学习发展

  • 深度学习所需要的神经网络技术起源于20世纪50年代,叫做感知机

当时也通常使用单层感知机,尽管结构简单,但是能够解决复杂的问题。后来感知机被证明存在严重的问题,因为只能学习线性可分函数,连简单的异或(XOR)等线性不可分问题都无能为力,1969年Marvin Minsky写了一本叫做《Perceptrons》的书,他提出了著名的两个观点:

1.单层感知机没用,我们需要多层感知机来解决复杂问题

2.没有有效的训练算法。

  • 20世纪80年代未期,用于人工神经网络的反向传播算法(也叫Back Propagation算法或者BP算法)的发明,给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。

这个热潮一直持续到今天。人们发现,利用BP算法可以让一个人工神经网络模型从大量训练样本中学习统计规律,从而对未知事件做预测。这种基于统计的机器学习方法比起过去基于人工规则的系统,在很多方面显出优越性。这个时候的人工神经网络,虽也被称作多层感知机 (Multi-layerPerceptron),但实际是种只含有一层隐层节点的浅层模型。

  • 20世纪90年代,各种各样的浅层机器学习模型相继被提出

例如支撑向量机 (SVM,SupportVector Machines)、Boosting、最大熵方法(如LR,Logistic Regression)等。这些模型的结构基本上可以看成带有一层隐层节点 (如SVM、Boosting),或没有隐层节点 (如LR)这些模型无论是在理论分析还是应用中都获得了巨大的成功。相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络反而相对沉寂.

  • 2006年,杰弗里·辛顿以及他的学生鲁斯兰·萨拉赫丁诺夫正式提出了深度学习的概念。

他们在世界顶级学术期刊《科学》发表的一篇文章中详细的给出了“梯度消失”问题的解决方案--通过无监督的学习方法逐层训练算法,再使用有监督的反向传播算法进行调优。该深度学习方法的提出,立即在学术圈引起了巨大的反响,以斯坦福大学、多伦多大学为代表的众多世界知名高校纷纷投入巨大的人力、财力进行深度学习领域的相关研究。而后又迅速蔓延到工业界中

  • 2012年,在著名的ImageNet图像识别大赛中,杰弗里·辛顿领导的小组采用深度学习模型AlexNet一举夺冠。

AlexNet采用ReLU激活函数,从根本上解决了梯度消失问题,并采用GPU极大的提高了模型的运算速度。同年,由斯坦福大学著名的吴恩达教授和世界顶尖计算机专家Jeff Dean共同主导的深度神经网络--DNN技术在图像识别领域取得了惊人的成绩,在lmageNet评测中成功的把错误率从26%降低到了15%。深度学习算法在世界大赛的脱颖而出,也再一次吸引了学术界和工业界对于深度学习领域的关注。

  • 2016年,随着谷歌公司基于深度学习开发的AphaGo以4:1的比分战胜了国际顶尖围棋高手李世石,深度学习的热度一时无两。后来,AlphaGo又接连和众多世界级围棋高手过招,均取得了完胜。这也证明了在围棋界,基于深度学习技术的机器人已经超越了人类。

2017年,基于强化学习算法的AlphaGo升级版AlphaGo Zero横空出世。其采用“从零开始”、“无师自通”的学习模式,以100:0的比分轻而易举打败了之前的AphaGo。除了围棋,它还精通国际象棋等其它棋类游戏,可以说是真正的棋类”天才”。此外在这一年,深度学习的相关算法在医疗、金融、艺术、无人驾驶等多个领域均取得了显著的成果。所以,也有专家把2017年看作是深度学习甚至是人工智能发展最为突飞猛进的一年

  • 2019年,基于Transformer 的自然语言模型的持续增长和扩散,这是一种语言建模神经网络模型,可以在几乎所有任务上提高NLP的质量。Google甚至将其用作相关性的主要信号之一,这是多年来最重要的更新。

  • 2020年,深度学习扩展到更多的应用场景,比如积水识别,路面塌陷等,而且疫情期间,在智能外呼系统,人群测温系统,口罩人脸识别等都有深度学习的应用。

二、 计算机视觉

计算机视觉是指用摄像机和电脑及其他相关设备,对生物视觉的一种模拟。"它的主要任务让计算机理解图片或者视频中的内容,就像人类和许多其他生物每天所做的那样。

我们可以将其任务目标拆分为:

  • 目标分类:让计算机理解图片中的场景 (办公室,客厅,咖啡厅等),让计算机识别场景中包含的物体 (宠物,交通工具,人等)
  • 目标检测:让计算机定位物体在图像中的位置 (物体的大小,边界等)
  • 让计算机理解物体之间的关系或行为 (是在对话,比赛或吵架等),以及图像表达的意义(喜庆的,悲伤的等)

OpenCV阶段,主要学习图像处理,而图像处理主要目的是对图像的处理,比如平滑,缩放等,想、从而为其他任务 (比如“计算机视觉”) 做好前期工作。

2.1 任务

根据上述对计算机视觉目标任务的分解,可将其分为三大经典任务: 图像分类、目标检测、图像分割。

图像分类 (Classification): 即是将图像结构化为某一类别的信息,用事先确定好的类别(category)来描述图片。


目标检测 Detection):分类任务关心整体,给出的是整张图片的内容描述,而检测则关注特定的物体目标,要求同时获得这一目标的类别信息和位置信息 (classification+ocalization)


图像分割 (Segmentation): 分割是对图像的像素级描述,它赋予每个像素类别 (实例)意义,适用于理解要求较高的场景,如无人驾驶中对道路和非道路的分割。

2.2 计算机视觉的发展

1963年,Larry Roberts发表了CV领域的第一篇专业论文,用以对简单几何体进行边缘提取和三维重建。

1966年,麻省理工学院(MIT)发起了一个夏季项目,目标是搭建一个机器视觉系统,完成模式识别(pattern recognition)等工作。虽然未成功,但是计算机视觉作为一个科学领域的正式诞生的标志。

1982年,学者David Marr发表的著作《Vision》从严谨又长远的角度给出了CV的发展方向和-些基本算法,其中不乏现在为人熟知的"图层”的概念、边缘提取、三维重建等,标志着计算机视觉成为了一门独立学科。

1999年David Lowe提出了尺度不变特征变换 (SIFT,Scaleinvariant feature transform) 目标检测算法,用于匹配不同拍摄方向、纵深、光线等图片中的相同元素。

2009年,由Felzenszwalb教授在提出基于HOG的deformable parts model,可变形零件模型开发,它是深度学习之前最好的最成功的object detection & recognition算法

Everingham等人在2006年至2012年间搭建了一个大型图片数据库,供机器识别和训练,称为PASCAL Visual object Challenge,该数据库中有20种类别的图片,每种图片数量在一千至-万张不等。
2009年,李飞飞教授等在CVPR2009上发表了一篇名为《ImageNet:ALarge-ScaleHierarchicallmage Database》的论文,发布了lmageNet数据集,这是为了检测计算机视觉能否识别自然万物,回归机器学习,克服过拟合问题。

2012年,Alex Krizhevsky、llya Sutskever 和 Geoffrey Hinton 创造了一个“大型的深度卷积神经网络”,也即现在众所周知的AlexNet,赢得了当年的ILSVRC。这是史上第一次有模型在lmageNet 数据集表现如此出色。自那时起,CNN才成了家喻户晓的名字。

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

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

相关文章

ROS_TF

tf:坐标系相关 rostopic type /tf rosrun rqt_tf_tree rqt_tf_treehector maping 不使用里程计修正误差 gmapping 考虑里程计修正的误差

Windows 可以使用以下快捷键打开终端(命令提示符)

Windows 可以使用以下快捷键打开终端(命令提示符) 使用快捷键 Win R 打开 “运行” 对话框,然后输入 “cmd” 并按下 Enter 键。这将打开默认的命令提示符窗口。 使用快捷键 Ctrl Shift Esc 打开任务管理器,然后在 “文件” …

GO语言网络编程(并发编程)GMP原理与调度

GO语言网络编程(并发编程)GMP原理与调度 1、GMP 原理与调度 1.1.1. 一、Golang “调度器” 的由来? (1) 单进程时代不需要调度器 我们知道,一切的软件都是跑在操作系统上,真正用来干活 (计算) 的是 CPU。早期的操作…

环境扫描/透射电子显微镜气体样品架的真空压力和微小流量控制解决方案

摘要:针对环境扫描/透射电子显微镜对样品杆中的真空压力气氛环境和流体流量精密控制控制要求,本文提出了更简单高效和准确的国产化解决方案。解决方案的关键是采用动态平衡法控制真空压力,真空压力控制范围为1E-03Pa~0.7MPa;采用压…

数据结构与算法课后题-第二章

第二章 01题目&#xff0c;存储相对紧凑&#xff0c;所以存储的密度大。 04题目&#xff0c;顺序表可以按照序号随机存取&#xff0c;时间的复杂度为O(1)。 第7题目分析 #include <iostream> using namespace std;#define MaxSize 50 typedef int ElemType; typedef…

雅思口语 23九月换题季最新考题答案

目录 Helping others 1.Do you usually help people around you? 2.How do you help people around you,such as neighbours,family and friends? 3.Do your parents teach you how to help others? 4.Did your parents help you a lot when you were young? 5.What …

mysql redo 日志 、 undo 日志 、binlog

事务四大特性 ACID 原子性 、一致性、隔离性、持久性 事务的隔离性由锁机制实现 事务的原子性、一致性、持久性由事务的redo 日志 和 undo 日志 保证 redo log 是存储引擎层&#xff08;innodb&#xff09;生成的日志&#xff0c;记录的是物理级别上的页修改操作&#xff0c;…

2.13 PE结构:实现PE代码段加密

代码加密功能的实现原理&#xff0c;首先通过创建一个新的.hack区段&#xff0c;并对该区段进行初始化&#xff0c;接着我们向此区段内写入一段具有动态解密功能的ShellCode汇编指令集&#xff0c;并将程序入口地址修正为ShellCode地址位置处&#xff0c;当解密功能被运行后则可…

js中如何实现字符串去重?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用 Set 数据结构⭐ 使用循环遍历⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感…

Python自动化测试(1)-自动化测试及基本技术手段概述

生产力概述 在如今以google为首的互联网时代&#xff0c;软件的开发和生产模式都已经发生了变化&#xff0c; 在《参与感》一书提到&#xff1a;某位从微软出来的工程师很困惑&#xff0c;微软在google还有facebook这些公司发展的时候&#xff0c;为何为感觉没法有效还击&…

Android性能监测

1.使用adb top可以查看当前Android设备的CPU和内存&#xff08;mem&#xff09;使用情况 adb shell top打印的信息如下&#xff1a; PID 表示进程号 USER 表示进程所属用户组 PR 进程的优先级&#xff0c;值越小&#xff0c;优先级越高 NI 进程的nice值&#xff0c;决定了CPU…

SpringMVC实现文件上传和下载

目录 前言 一. SpringMVC文件上传 1. 配置多功能视图解析器 2. 前端代码中&#xff0c;将表单标记为多功能表单 3. 后端利用MultipartFile 接口&#xff0c;接收前端传递到后台的文件 4. 文件上传示例 1. 相关依赖&#xff1a; 2. 逆向生成对应的类 3. 后端代码&#xf…

python-turtle库

turtle库 turtle.done() - - - done函数让窗口进入消息循环&#xff0c;等待关闭 设置画布大小和位置 turtle.screensize(canvwidthNone, canvheightNone, bgNone) 画布的宽高背景颜色 turtle.setup(width0.5, height0.75, startxNone, startyNone) 宽高为整数时表示像素&…

leetcode第362场周赛

2848. 与车相交的点 核心思想&#xff1a;差分数组。统计覆盖区间&#xff0c;把nums中有的区间1&#xff0c;维护区间我们用差分数组&#xff0c;然后求出差分数组的前缀和即是我们维护的区间&#xff0c;判断区间有哪些值是大于0的即可。 2849. 判断能否在给定时间到达单元格…

新型温湿度传感器解决方案:满足多样化应用需求

在许多环境和应用场景中&#xff0c;温度和湿度的监控和管理都至关重要。例如&#xff0c;在农业大棚中&#xff0c;精确控制温湿度对于作物的生长影响巨大&#xff1b;在仓储物流中&#xff0c;保持适宜的温湿度可以延长物品的保存期限&#xff1b;在HVAC系统中&#xff0c;精…

QT子线程或自定义类操作访问主界面UI控件的几种方法

前言 QT创建窗体工程&#xff0c;一般在MainWindow或Dialog类里可以直接通过ui指针访问控件&#xff0c;但是添加新的类后又如何访问呢&#xff0c;可以通过以下几种方式&#xff1a; 将ui指针公开后直接访问 &#xff08;1&#xff09;例如有个自己定义的类CustomCl…

Rokid Jungle--Station pro

介绍和功能开发 YodaOS-Master操作系统&#xff1a;以交换计算为核心&#xff0c;实现单目SLAM空间交互&#xff0c;具有高精度、实时性和稳定性。发布UXR2.0SDK&#xff0c;为构建空间内容提供丰富的开发套件 多模态交互 算法原子化 多种开发工具协同 多生态支持 骁龙XR2…

代码随想录 -- day48 -- 198.打家劫舍、213.打家劫舍II 、337.打家劫舍III

198.打家劫舍 dp[i]&#xff1a;考虑下标i&#xff08;包括i&#xff09;以内的房屋&#xff0c;最多可以偷窃的金额为dp[i]。 dp[i] max(dp[i - 2] nums[i], dp[i - 1]); class Solution { public:int rob(vector<int>& nums) {if (nums.size() 0) return 0;if…

十六、Webpack常见的插件和模式

一、认识插件Plugin Webpack的另一个核心是Plugin&#xff0c;官方有这样一段对Plugin的描述&#xff1a; While loaders are used to transform certain types of modules, plugins can be leveraged to perform a wider range of tasks like bundle optimization, asset m…

系统转换-系统维护-净室软件工程-基于构件

系统转换-系统维护-净室软件工程-基于构件 系统转换系统转换系统维护净室软件工程基于构建的软件工程 系统转换 改造 继承 集成 淘汰 系统转换 直接转换 并行转换 分段转换&#xff1a;子系统之间的并行转换 系统维护 重点 净室软件工程 预防大于检查 基于构建的软件工程 复用而…