计算机视觉

应用分类

计算机视觉应用可以分为:图像分类(Image Classification)、目标检测(Object Detection)、语义分割(Semantic Segmentation) 、视频理解(Video Understanding)和图片生成(Image Generation) 等。

图像分类(Image Classification) 是常见的分类问题。神经网络的输入为图片数据,输出值为当前样本属于每个类别的概率,通常选取概率值最大的类别作为样本的预测类别。图片识别是最早成功应用深度学习的任务之一,经典的网络模型有 VGG 系列、Inception 系列、ResNet 系列等。

目标检测(Object Detection)是指通过算法自动检测出图片中常见物体的大致位置,通常用边界框(Bounding box)表示,并分类出边界框中物体的类别信息。常见的目标检测算法有CNN,Fast RCNN,Faster RCNN,Mask RCNN,SSD,YOLO 系列等。

语义分割(Semantic Segmentation)是通过算法自动分割并识别出图片中的内容,可以将语义分割理解为每个像素点的分类问题,分析每个像素点属于物体的类别。常见的语义分割模型有 FCN,U-net,SegNet,DeepLab 系列等。

视频理解(Video Understanding) 随着深度学习在 2D 图片的相关任务上取得较好的效,具有时间维度信息的 3D 视频理解任务受到越来越多的关注。常见的视频理解任务有视频分类,行为检测,视频主体抽取等。常用的模型有 C3D,TSN,DOVF,TS_LSTM等。

图片生成(Image Generation) 通过学习真实图片的分布,并从学习到的分布中采样而获得逼真度较高的生成图片。目前主要的生成模型有 VAE 系列,GAN 系列等。其中 GAN 系列算法近年来取得了巨大的进展,最新 GAN 模型产生的图片样本达到了肉眼难辨真伪的效果。

学习路线

在开始学习计算机视觉之前,要先了解有关机器学习和python基础知识。

深度学习框架

深度学习框架主要有:pytorchkeras(TensorFlow)。Pytorch可能需要编写更多代码,但在返回方面具有很大的灵活性,因此我们可以先学习如何使用pytorch。此外,大多数深度学习研究人员也普遍使用pytorch。

Albumentation(图像增强库)和 catalyst (框架,pytorch顶部的高级API)在我们学习计算机视觉的过长中也是很常用的工具,我们也可以先学习和使用它们,尤其是第一个。

框架汇总

硬件

理论与实践

在线课程

文章和代码

书籍

虽然需要读的书籍不多,但是我相信这两本书都是有用的,无论你选择使用pytorch还是keras

Kaggle

kaggle是各种机器学习竞赛的著名在线平台,其中很多是关于计算机视觉的。即使没有完成课程,你也可以开始参加比赛,因为从比赛中会有很多开放的内核(端对端代码),你可以直接从浏览器中运行它们。(免费) https://www.kaggle.com/competitions

论文

看论文可能很难,但是这种方法可以让你获得计算机视觉不同领域的知识,大家可以针对自己的研究方向选择具体的计算机视觉领域进行学习。

网络架构
语义分割
生成对抗网络
目标检测
实例分割
姿态估计

results matching ""

    No results matching ""