转自: https://zhuanlan.zhihu.com/p/31116104,侵删!
本人入门CV方向时追着看无数的公开课,教程,入门指南之类的,每每发现别人共享的资料,百十来本书,百十个视频公开课连接,力不从心底学了几天,发现都是白扯。看N遍CS231n,读paper,精读这个领域的100篇paper,写review,写代码,写自己的想法,写自己与别人的差距。于是乎重新整理知乎专栏,把自己所学到的总结一下,差不多每天精读一篇paper并写notes。note是阅读笔记,也是对行业对平行算法的总结,不仅仅是精读一篇论文。因为签约所以首发在Paperweekly,但是一周内肯定更新知乎专栏。
本人会尽个人微薄之力,总结CV领域各个重要方向的state-of-art水平经典文献(每个子领域个人理解不超过20篇的经典文献),根据记忆曲线,只有自己能懂了再教会别人,才能记得牢记得住。本着没有自己认真读过的不会发,没有自己觉得有思想的不会写,写多少是多少,全靠自己的专业水平和阅历了。
目前开看这个项目挖坑无数,只有每天尽力去填坑了...
每天arxiv更新的论文比阅读速度要快很多,历史中的论文(last year)引用量在个位数,就没必要再精读了。 --By chenhong
CV的各个方向:
1.当前CV领域主要包括两个大的方向,”低层次的感知” 和 “高层次的认知”。
2.主要的应用领域:视频监控、人脸识别、医学图像分析、自动驾驶、 机器人、AR、VR
3.主要的技术:分类、目标检测(识别)、分割、目标追踪、边缘检测、姿势评估、理解CNN、超分辨率重建、序列学习、特征检测与匹配、图像标定,视频标定、问答系统、图片生成(文本生成图像)、视觉关注性和显著性(质量评价)、人脸识别、3D重建、推荐系统、细粒度图像分析、图像压缩
1、分类(image classification)主要需要解决的问题是“我是谁?”
分类是image处理的基本问题,其他如目标检测分割等都可以细化到分类算法来解决。主要算法可以参考LSVRC2012~LSVRC2017。
2、目标检测(object localization/detection)主要需要解决的问题是“我是谁? 我在哪里?”
目标检测可以参考一篇2017年的综述《Speed_Accuracy trade-offs for modern convolutional object detectors》,
另外有一篇博客:A Brief History of CNNs in Image Segmentation: From R-CNN to Mask R-CNN
3、分割主要需要解决的问题是“我是谁? 我在哪里?你是否能够在像素级正确分割我?”
分割(segmentation )又有两个不同方向:semantic segmentation和instance segmentation。Semantic segmentation的目标是在图像中分割每个像素所属的类别,但是不关心所属的实体。而instance segmentation是更精细一步分割像素是属于不同的实体。个人认为instance segmentation=Semantic segmentation+object localization。
下图所示image classification,object localization和segmentation 这个四个领域的区别:
关于Semantic segmentation,推荐一个综述《A 2017 Guide to Semantic Segmentation with Deep Learning》
4、目标追踪(Visual tracking)主要需要解决的问题是“你能不能跟上我的步伐,尽快找到我?”
目标追踪领域是相关滤波的天下,推荐github foolwood,以及知乎网友
刚更新了2017年VOT,CVPR/ICCV的state-of-the-art。
video segmentation和Visual tracking有相似之处。video object segmentation需要解决的是半监督问题,只给出视频第一帧的正确分割掩膜,然后在之后的每一连续帧中像素级分割标注的目标,实际就是像素级的目标追踪问题;而Visual tracking解决的是只给出视频第一帧的定位边界框,在后续每一连续帧中同样用边界框的形式标注物体。两者关系类似于Segmentation和Detection的关系。
6、视频中的人体行为识别主要包括两个方向:Action Recognition 以及 Temporal Action Localization:
- Action Recognition的目的是给定一个视频片段进行分类,类别通常是人的各类动作。特点是简化了问题,一般使用的数据库都先将动作分割好了,一个视频片断中包含一段明确的动作,时间较短(几秒钟)且有唯一确定的label。所以也可以看作是输入为视频,输出为动作标签的多分类问题。常用数据库包括UCF101,HMDB51等。相当于对视频进行分类。
- Temporal Action Localization 则不仅要知道一个动作在视频中是否发生,还需要知道动作发生在视频的哪段时间(包括开始和结束时间)。特点是需要处理较长的,未分割的视频。且视频通常有较多干扰,目标动作一般只占视频的一小部分。常用数据库包括HUMOS2014/2015, ActivityNet等。相当于对视频进行指定行为的检测。
- action recognition与temporal action detection之间的关系,同 image classfication与 object detection之间的关系非常像。基于image classification问题,发展出了许多强大的网络模型(比如ResNet,VGGNet等),这些模型在object detection的方法中起到了很大的作用。同样,action recognition的相关模型(如two stream,C3D, iDT等)也被广泛的用在temporal action detection的方法中。
自“红黄蓝事件”后,对人体行为识别的需求应该更加紧迫,迫切需要一个让大家都放心的应用。
7、边缘检测主要需要解决的问题是:“如何准确的检测到目标的边缘?”
8、人体姿态识别主要需要解决的问题是:“你需要通过我的姿势判断我在干什么?”
二维图像姿态估计基于CNN的单人姿态估计方法,主要有Deep Pose、CPM,hourglass以及各种hourglass结构引申之作。
二维图像姿态估计基于CNN的多人姿态估计方法,通常有2个思路(Bottom-Up Approaches和Top-Down Approaches)::
(1)two-step framework,就是先进行行人检测,得到边界框,然后在每一个边界框中检测人体关键点,连接成一个人形,缺点就是受检测框的影响太大,漏检,误检,IOU大小等都会对结果有影响,代表方法就是RMPE。
(2)part-based framework,就是先对整个图片进行每个人体关键点部件的检测,再将检测到的部件拼接成一个人形,缺点就是会将不同人的不同部位按一个人进行拼接,代表方法就是openpose。
理解CNN主要需要解决的问题是:“从理论上深层次的去理解CNN的原理?”
超分辨率重建主要需要解决的问题是:“你如何从低质量图片获得高质量的图片?”
序列学习主要解决的问题是“你知道我的下一幅图像或者下一帧视频是什么吗?”
特征检测与匹配主要需要解决的问题是“检测图像的特征,判断相似程度?”
图像标定主要需要解决的问题是“你能说出图像中有什么东西?他们在干什么呢?”
视频标定主要需要解决的问题是“你知道我这几帧视频说明了什么吗?”
问答系统主要需要解决的问题是:“你能根据图像正确回答我提问的问题吗?”
图片生成主要需要解决的问题是:“我能通过你给的信息准确的生成对应的图片?”
视觉关注性和显著性主要需要解决的问题是:“如何提出模拟人类视觉注意机制的模型?”
人脸识别主要需要解决的问题是:“机器如何准确的识别出同一个人在不同情况下的脸?”
3D重建主要需要解决的问题是“你能通过我给你的图片生成对应的高质量3D点云吗?”
推荐系统主要需要解决的问题是“你能根据我的输入给出准确的输出吗?”
细粒度图像分析主要需要解决的问题是“你能辨别出我是哪一种狗吗?等这些更精细的任务”
图像压缩主要需要解决的问题是“如何以较少的比特有损或者无损的表示原来的图像?”
CV-view,roadmap。。。。。。
【CV-review】a-year-in-computer-vision,《A Year in Computer Vision》是The M Tank编辑的报告,不过大部分内容是2016年的。