既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如何从图像中解析出可供计算机理解的信息,是机器视觉的中心问题。深度学习模型由于其强大的表示能力,加之数据量的积累和计算力的进步,成为机器视觉的热点研究方向。
计算机视觉的四大任务:目标分类,目标检测,语义分割,实例分割。难度逐渐递增,对图像特征的提取也更加精细。
- 分类(Classification):即是将图像结构化为某一类别的信息,用事先确定好的类别(string)或实例ID来描述图片。这一任务是最简单、最基础的图像理解任务,也是深度学习模型最先取得突破和实现大规模应用的任务。
- 检测(Detection):分类任务关心整体,给出的是整张图片的内容描述,而检测则关注特定的物体目标,要求同时获得这一目标的类别信息和位置信息。相比分类,检测给出的是对图片前景和背景的理解,我们需要从背景中分离出感兴趣的目标,并确定这一目标的描述(类别和位置),因而,检测模型的输出是一个列表,列表的每一项使用一个数据组给出检出目标的类别和位置(常用矩形检测框的坐标表示)。
- 分割(Segmentation):分割包括语义分割(semantic segmentation)和实例分割(instance segmentation),前者是对前背景分离的拓展,要求分离开具有不同语义的图像部分,而后者是检测任务的拓展,要求描述出目标的轮廓(相比检测框更为精细)。分割是对图像的像素级描述,它赋予每个像素类别(实例)意义,适用于理解要求较高的场景,如无人驾驶中对道路和非道路的分割。
二、目标检测的发展历程
目标检测发展的20年来,从传统的目标检测算法到基于深度学习的目标检测算法,目标检测的精度和速度不断提高,发展历程如下图所示:
- 传统方法 ❤️ :区域选取+特征提取+特征分类。在多尺度图像上应用多尺度窗口进行滑窗,每个roi位置提取出固定长度的特征向量,然后采用SVM进行学习判别。这在小数据上比较奏效;传统方法的工作主要聚焦于设计更好的特征描述子,将roi信息映射为embedding feature。本文不做介绍。
- Two-stage Detectors(两阶段目标检测器) 🧡 :诸如R-CNN,Fast R-CNN,Faster R-CNN到最新的Mask Scoring R-CNN等网络结构,都属于Two-stage检测方法。目标检测-上篇中介绍。
- One-stage Detectors(单阶段目标检测器) 💛 :从最早的OverFeat到现在的YOLO,SSD,RetinaNet,YOLOv2,CornerNet等都属于one stage目标检测方法。目标检测-下篇中介绍。
对比:双阶段精度高但速度慢,单精度速度快但精度稍逊。
三、区域卷积神经网络(R-CNN)系列
1.R-CNN
随着CNN网络的出现,目标检测进入了深度学习时代,目标检测技术越来越倾向于网络结构、损失函数和优化方法的设计,人们更加关注使用CNN网络自动提取出图像特征,代替了原来的手工设计特征。目标检测从“冷兵器”时代,过渡到“热兵器”时代,从两阶段目标检测算法到单阶段目标检测算法,再到现在的Anchor Free算法趋势,伴随着硬件计算水平的不断提高,目标检测技术的发展进入了“快车道”。首先介绍深度学习的开山之作—R-CNN算法。
论文链接: Rich feature hierarchies for accurate object detection and semantic segmentation
传统方法–>R-CNN
整体的思路非常简洁明了,不需要像传统算法使用滑动窗口的方式在整张图像上滑动来获取Region Proposal(候选框),而只选择一部分候选框,然后在这些窗口上进行CNN网络。
R-CNN算法流程如下:
- 输入一张图片。
- 使用selective search的方法选出来约2000个Region Proposal,这种方法得到的候选框数量比传统方法少的多。大致是采用图像分割的算法得到的图像块,分割得到候选框。
- 将每一个候选框图片块resize为227*227的大小,然后输入到一个AlexNet