【计算机视觉】学习历程

文章目录


前言

随着人工智能的不断发展,计算机视觉这门技术也越来越重要,很多人都开启了学习计算机视觉,本文将记录本人的学习历程。


一、何恺明 《视觉目标检测简史》 (A Brief History of Visual Object Detection) 演讲

演讲ppt:
https://people.csail.mit.edu/kaiming/neurips2025talk/neurips2025_fasterrcnn_kaiming.pdf

演讲:https://www.bilibili.com/video/BV1nckaBcEra/?spm_id_from=333.337.search-card.all.click&vd_source=b5c992ead733bddd54bd155efbc42e31

1.什么是目标检测?

核心公式: recognition + localization(识别 + 定位)

通俗解释:

识别:回答"这是什么?"(分类问题)

定位:回答"它在哪里?"(回归问题,输出边界框坐标)

为什么重要: 这是整个领域的定义性描述,所有检测算法都在解决这两个问题。

2.30年视觉目标检测史(前深度学习时代)

1996年 Rowley用神经网络来找脸

1997年 用SVM(支持向量机)做人脸检测

2001年 Viola 和 Jones做出了第一个能实时运行的人脸检测系统。他们用了三个技巧:Haar特征: 像乐高积木一样,用简单的黑白方块拼出人脸的特征。积分图像: 让计算变得飞快。级联分类器: 像筛子一样,先快速排除大部分不是脸的区域,再仔细检查可能是脸的区域。

1999年 Lowe 提出了 SIFT(尺度不变特征变换)也就是说给图像里的关键点打上独一无二的"指纹"。

2003年 把文本处理的方法用到了图像上。

2006年 Lazebnik 等人提出了"空间金字塔匹配"。既看局部,也看整体。

2008年 Felzenszwalb 提出了 DPM(可变形部件模型)。把物体拆成"零件"。这是深度学习流行之前,最好的目标检测方法之一。

3.AlexNet------深度学习革命

之前的方法都是手工设计特征,而AlexNet证明:特征可以和数据一起学习出来

错误率从26%骤降到16%,差距之大震惊学术界

4.R-CNN------第一个答案

2014年,Ross Girshick 和他的伙伴们在 PASCAL VOC 上做目标检测。

R-CNN 的工作流程像一条流水线:

提建议:用"选择性搜索"找出可能包含物体的 2000 个候选区域。

提特征:每个候选区域,都送进 CNN 提取特征。

分类+定位:用 SVM 判断是什么物体,用回归器调整框的位置。

效果非常好,在 PASCAL VOC 上一举夺魁。

但有个问题:2000 个区域,每个都要跑一次 CNN,速度很慢。处理一张图要几十秒。

5.SPPNet------共享卷积,加速计算

2014年,何恺明等人提出了 SPPNet。

核心思想:既然 2000 个区域都是从同一张图切出来的,那我能不能先把整张图跑一遍 CNN,得到"特征图",然后在特征图上提取每个区域的特征。

这样速度就快多了。SPPNet 还用了"空间金字塔池化",让网络能处理任意尺寸的图片。

6.Fast R-CNN------把流水线整合成一个网络

2015年,Ross Girshick 把分类和框回归放在同一个网络里训练,不再需要外部的 SVM。这样整个系统更简洁、更快。

但还是有个瓶颈:区域提议这一步,还是用传统的"选择性搜索",不在 GPU 上跑。

7.Faster R-CNN------一切都在深度学习里

2015年,何恺明、任少卿等人提出了 Faster R-CNN,发明了 RPN(区域提议网络):

RPN 在 CNN 的特征图上滑动一个小窗口

在每个位置,预设几个不同大小、不同形状的"锚点框"

网络判断每个锚点框里有没有物体,并微调框的位置

然后,RPN 提议的区域直接送给 Fast R-CNN 做检测。两者共享卷积特征,整个系统是统一的、端到端的。

速度从几十秒一张图,变成了 5 帧每秒(200ms),接近实时

8.下一章------一阶段检测

Faster R-CNN 是"两阶段"的:先提区域,再分类。

那能不能直接一步到位?输入图像,直接输出框和类别?

2016年,SSD 和 YOLO 做到了。它们更快,适合实时应用,比如无人机、手机、自动驾驶。

9. 再下一章------目标分割

检测只是框出物体。那能不能精确到每个像素?

2017年,何恺明等人提出 Mask R-CNN,在 Faster R-CNN 基础上加了一个"分割分支",每个物体不仅能被框出来,还能被"抠出来"。

10. 再再下一章------Transformer来了

Transformer 本来是用在自然语言处理的,比如 ChatGPT。

2020年,有人把它引入视觉,做了 DETR(Detection Transformer)。它不再需要锚点框、非极大值抑制这些复杂设计,直接用 Transformer 做检测。

11.最新一章------万物皆可分割

2023年,Meta 发布了 SAM(Segment Anything Model)。

你可以用鼠标点一下,或者画个框,SAM 就能把那个物体精确分割出来。它见过 10 亿个掩码,学会了"分割任何东西"。

这是视觉模型走向"通用"的重要一步。

二、由任少卿、何恺明、Ross Girshick 和孙剑合著的经典论文 《Faster R-CNN》,摘得了 「时间检验奖」 (Test of Time Award)。

论文地址:https://arxiv.org/pdf/1506.0149

1.背景与问题

当时最先进的目标检测网络(如Fast R-CNN)依赖外部的"区域提议"方法来猜测物体可能出现的位置。尽管检测网络本身已经很快,但"猜位置"这一步却成了整个系统的速度瓶颈(比如用Selective Search方法,每张图要花2秒)。

2.核心发明------RPN(区域提议网络)

RPN和检测网络共享了从图像中提取的特征。这意味着,RPN几乎不需要额外的计算就能生成高质量的候选区域,可以说是"近乎免费"的。

3.工作原理

RPN是一个"全卷积网络",它会在每个可能的位置同时预测物体的边界框和该框内是否包含物体的分数(objectness score)。你可以把它想象成一个极其勤奋的侦察兵,快速扫描整个区域,并标记出所有可疑的目标。

4.最终成果

他们把RPN和Fast R-CNN合并成一个统一的网络。用当时流行的话说,RPN就像一个"注意力机制",告诉后面的网络"应该往哪里看"。最终,这个系统在使用VGG-16这种深层网络时,速度达到了每秒5帧(包括所有步骤),并且精度也达到了当时最高水平,成为了ILSVRC和COCO 2015比赛多个冠军方案的基础。

三、OpenCV

1.什么是OpenCV

Open Source Computer Vision Library(开源计算机视觉库)。简单来说,OpenCV就是计算机视觉领域的"乐高积木"。它为你提供了最基础、最可靠的积木块,让你可以专注于发挥创意,搭建出属于自己的、能"看见"世界的精彩应用。

2.如何下载OpenCV

https://blog.csdn.net/weixin_40323532/article/details/137992134?ops_request_misc=elastic_search_misc&request_id=b607d868cb9297d5e14201792013c0a8&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-1-137992134-null-null.142v102pc_search_result_base1&utm_term=%E4%B8%8B%E8%BD%BDopencv&spm=1018.2226.3001.4187

相关推荐
无人装备硬件开发爱好者2 小时前
Lockhart-Martinelli(L-M)模型原理、历史由来与嵌入式边缘计算工程化落地(附 MATLAB 伪代码)——1
人工智能
寻见9032 小时前
从“聊天框”到“生产力”:OpenClaw是如何把AI从数字囚笼里放出来的?
人工智能·openai
yiyu07163 小时前
3分钟搞懂深度学习AI:实操篇:VGG
人工智能·深度学习
金智维科技官方3 小时前
信通院认证,金智维的政务智能体让政务工作“智能自动化”
人工智能·ai·自动化·agent·智能体
星爷AG I3 小时前
14-6 运动控制的神经系统(AGI基础理论)
人工智能·agi
猿小猴子3 小时前
主流 AI IDE 之一的 CodeFlicker 介绍
ide·人工智能
Saniffer_SH3 小时前
【高清视频】SerialTek PCIe 5.0/6.0 协议分析仪API自动化编程演示
网络·人工智能·驱动开发·嵌入式硬件·测试工具·自动化·压力测试
怪侠_岭南一只猿3 小时前
爬虫阶段一实战练习题:爬取豆瓣电影 Top250 复盘
css·经验分享·爬虫·python·学习·正则表达式
郭龙_Jack3 小时前
TensorFlow GPU 优化配置手册
人工智能·python·tensorflow