openCV
简介
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
编程语言
OpenCV用C语言编写,它的主要接口也是C语言,但是依然保留了大量的C语言接口。该库也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#、Ch、Ruby的支持。
所有新的开发和算法都是用C++接口。一个使用CUDA的GPU接口也于2010年9月开始实现。
操作系统
OpenCV可以在Windows,Android,Maemo,FreeBSD,OpenBSD,iOS,Linux 和Mac OS等平台上运行。使用者可以在 SourceForge 获得官方版本,或者从 SVN 获得开发版本。OpenCV也是用CMake。
在Windows上编译OpenCV中与摄像输入有关部分时,需要DirectShow SDK中的一些基类。该SDK可以从预先编译的Microsoft Platform SDK(or DirectX SDK 8.0 to 9.0c / DirectX Media SDK prior to 6.0)的子目录Samples\Multimedia\DirectShow\BaseClasses获得。
TorchCV
简介
TorchCV是基于PyTorch开发的计算机视觉深度学习开源框架。该库提供了基于深度学习的大部分 CV 问题研究的源代码,对于使用者来说,调用最常用、最为先进的计算机模型从此可以变得更加容易。TorchCV 的作者 Donny You 来自北京大学,是机器感知与智能教育部重点实验室的一名研三学生。
包含模型
TorchCV 支持图像分类、语义分割、目标检测、姿态检测、实例分割、生成对抗网络等任务中的多个常见模型,列表如下:
图像分类
- VGG: Very Deep Convolutional Networks for Large-Scale Image Recognition
- ResNet: Deep Residual Learning for Image Recognition
- DenseNet: Densely Connected Convolutional Networks
- ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
- ShuffleNet V2: Practical Guidelines for Ecient CNN Architecture Design
- Partial Order Pruning: for Best Speed/Accuracy Trade-off in Neural Architecture Search
语义分割
- DeepLabV3: Rethinking Atrous Convolution for Semantic Image Segmentation
- PSPNet: Pyramid Scene Parsing Network
- DenseASPP: DenseASPP for Semantic Segmentation in Street Scenes
- Asymmetric Non-local Neural Networks for Semantic Segmentation
目标检测
- SSD: Single Shot MultiBox Detector
- Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
- YOLOv3: An Incremental Improvement
- FPN: Feature Pyramid Networks for Object Detection
姿态检测
- CPM: Convolutional Pose Machines
- OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
实例分割
- Mask R-CNN
生成对抗网络
- Pix2pix: Image-to-Image Translation with Conditional Adversarial Nets
- CycleGAN: Unpaired Image-to-Image Translation using Cycle-Consistent
SimpleCV
简介
SimpleCV是一个开源框架,用于在Python中方便快速的构建计算机视觉方面的应用程序。SimpleCV封装了若干强大的计算机视觉库(目前仅封装了OpenCV),简化了用户对这些库的使用难度,如无需了解位深、文件格式、颜色空间、缓冲区管理等内容,降低了学习成本。可以用于在Python下快速开发计算机视觉的原型程序。
MMCV
简介
mmcv 是用于计算机视觉研究的基础 Python 库,支持 MMLAB 中的许多研究项目,例如 mmdetection。该库主要分为两个部分,一部分是与深度学习框架无关的工具函数,比如 IO/Image/Video 相关的一些操作,另一部分是为 PyTorch 写的一套训练工具,可以大大减少用户需要写的代码量,同时让整个流程的定制变得容易。
功能
MMCV 是一个面向计算机视觉的基础库,它支持了很多开源项目,例如:
- MIM: OpenMMLab 项目、算法、模型的统一入口
- MMClassification: OpenMMLab 图像分类工具箱与测试基准
- MMDetection: OpenMMLab 检测工具箱与测试基准
- MMDetection3D: OpenMMLab 新一代通用3D目标检测平台
- MMSegmentation: OpenMMLab 语义分割工具箱与测试基准
- MMAction2: OpenMMLab 新一代视频理解工具箱与测试基准
- MMTracking: OpenMMLab 一体化视频目标感知平台
- MMPose: OpenMMLab 姿态估计工具箱与测试基准
- MMEditing: OpenMMLab 图像视频编辑工具箱
- MMOCR: OpenMMLab 全流程文字检测识别理解工具包
- MMGeneration: OpenMMLab 新一代生成模型工具箱
- MMFlow: OpenMMLab 光流估计工具箱与测试基准
- MMFewShot: OpenMMLab 少样本学习工具箱与测试基准
- MMHuman3D: OpenMMLab 人体参数化模型工具箱与测试基准
- MMSelfSup: OpenMMLab 自监督学习工具箱与测试基准
- MMRazor: OpenMMLab 模型压缩工具箱与测试基准
- MMDeploy: OpenMMLab 模型部署框架
MMCV 提供了如下众多功能:
- 通用的 IO 接口
- 图像和视频处理
- 图像和标注结果可视化
- 常用小工具(进度条,计时器等)
- 基于 PyTorch 的通用训练框架
- 多种 CNN 网络结构
- 高质量实现的常见 CUDA 算子
语言要求
MMCV 需要 Python 3.6 以上版本。