计算机视觉开源算法体系。 https://github.com/open-mmlab https://www.zhihu.com/people/openmmlab
在训练过程中,通常有十个关键位点,如下图所示,从训练开始到结束,所有关键位点已用红色标出,共有 10 个。我们可以在这十个位点插入各种逻辑,例如加载模型权重、保存模型权重。而我们将同一类型的逻辑组织成一个 Hook。因此,MMCV 中 Hook 的作用就是训练和验证模型时,在不改变其他代码的前提下,灵活地在不同位点插入定制化的逻辑。
PWC-Net 的设计遵循了三个简单而成熟的原则:金字塔处理,warping 操作和代价计算 ( cost volume )。在传统算法中,如图1左部分所示,通过代价计算得到图像之间的相似度,构建图像金字塔,以处理对不同尺度的光流,再利用 warp 操作按 coarse-to-fine 的顺序,将上一层估计出的光流应用到当前层,以达到逐步优化的目的。
经过简单的可视化分析,我们发现在数据量很小的时候,越简单的方法越容易出现难以学习的问题(数据真实地喂不饱这摆烂的模型 :) ),于是我们首先加上了一个最基本的局部几何约束:即利用额外的 2D 检测框来给 3D 检测框增加一个自监督的约束。
首先给出定义:在机器学习领域,特别是统计分类问题中,混淆矩阵(confusion matrix)是一种特定的表格布局,用于可视化算法的性能,矩阵的每一行代表实际的类别,而每一列代表预测的类别。
那有没有可能既对人体形状建模,同时掌握骨骼位置和旋转等重要信息呢? 那就要用到人体参数化模型了。人体参数化模型仅需少量关键参数(如骨骼旋转、体态等)就能可微地生成网格模型。
在 CVPR 2021, 我们提出了 GLEAN, 利用预训练的 StyleGAN 作为 latent bank, 提高图像超分辨率的效能。当时,GLEAN 在 Bicubic 下采样获得非常好的效果。 之后,我们向前踏出一步,在真实人脸复原上作出尝试。今天,我们就在这里分享一下我们现在的进展。
目前 VIS 领域主流的数据集为 YouTube-VIS 2019、YouTube-VIS 2021。主要的评估指标是 Mask AP,与检测领域的 Mask AP 不同,VIS 中的 Mask AP 计算方式需要考虑算法的跟踪性能。
随着深度学习的兴起,机器学习算法通过大量的训练数据,在各个领域取得了非常好的性能,但是在数据十分稀缺,或者难以收集时,模型往往无法达到令人满意的性能。 为了解决这一问题,少样本学习(Few Shot Learning)通过利用先验知识,使得机器学习算法能够在少量的样本上进行学习。
使用过 OpenMMLab 旗下开源软件,如 mmdet、mmseg 的读者们,一定知道在这些软件中,我们通过配置文件来定义深度学习任务的方方面面,比如模型结构、训练所使用的优化器、数据集等。
既然数据增强手段能够提高模型的泛化能力,那么我们自然希望通过一系列数据增强的组合获得最优的泛化效果,从而衍生出了一系列组合增强手段,这里我们介绍其中最著名也最常用的两个手段,AutoAugment 和 RandAugment。
实例分割(instance segmentation)已经被以 Mask R-CNN 为代表的“先检测后分割”的框架主导了多年,之前涌现的单阶段实例分割算法也依然需要遍历图片中的每一个位置(feature grids)来预测实例分割掩码(instance masks),因此他们都需要一些额外的组件(如检测框或/和NMS)来区分不同实例或清理相同实例的掩码。
虽然基于点云的 3D 目标检测方法性能不断提升,但是激光雷达相对高昂的造价和对各种复杂天气情况的敏感性推动着研究人员开始更多地探索基于视觉的 3D 目标检测,其在近几年成为越来越热门的研究方向。 本文主要介绍单目 3D 目标检测的一些最新研究进展,同时带来一些笔者的思考。
光流(Optical Flow),字面理解为“光的流动”,更准确的说法为:时变图像上的二维运动场,是视频数据的重要视觉线索,在动作识别、视频理解、视频分割、目标跟踪以及全景拼接等领域,都有广泛应用。
随着深度学习快速发展,同时伴随着模型参数的爆炸式增长,对显卡的显存容量提出了越来越高的要求,如何在单卡小容量显卡上面训练模型是一直以来大家关心的问题。
VIS 旨在检测、跟踪、分割视频里出现的物体,也就是在多目标跟踪任务的基础上更进一层,需要提供每个物体的 mask 信息。
在本期中,我们将为大家讲解 MMGeneration 的进行模型评价实现的基本流程与原理。
基于骨骼点的动作识别的动作识别,往往具有比基于其他模态的算法更轻量,更具泛化性的特点。当然,由于骨骼点所包含信息的局限性,基于骨骼点的算法很难对一些与物体或场景关系紧密的动作进行有效识别,可以说有利有弊。
MMCV是一款计算机视觉基础库,为 OpenMMLab 的十几个算法库支持的超过15个训练任务提供了统一的抽象训练 API 、常用的神经网络模块封装、和基础的图像/视频处理算子等模块。
为了更多的同学能进入视觉算法的大坑殿堂,零基础入门系列开播啦! 今天为大家带来第一篇—— 零基础 PyTorch 入门超分辨率 ~
MOT 旨在检测和跟踪视频中出现的物体。 与视频目标检测相比,MOT 更加侧重于对视频内的同一目标进行关联。
众所周知,即使是目前最先进的神经网络模型,其本质上也是在利用一系列线性和非线性的函数去拟合目标输出。 既然是拟合,当然越多的样本就能获得越准确的结果,这也是为什么现在训练神经网络所使用的数据规模越来越大的原因。
OpenMMLab 的 Hook 机制 一文已经阐述过 Hook 机制,但是对于 OpenMMLab 框架本身来说,采用 Hook 机制其实最主要是为了减少代码的重复性,提升整体框架的模块化水平。
简单来说,用 OpenMMLab 开发的模型,可以通过 OpenPPL 高效可靠地运行在现有的 CPU、GPU 等计算平台上,为云端场景提供人工智能推理服务。
VID 旨在检测视频中每一帧出现的物体。 与目标检测相比, VID 允许来自一个视频里的多帧作为输入,但输出形式与目标检测一致。 与多目标跟踪相比, VID 不要求对不同帧中的同一目标进行关联,只需检测出目标即可。
深度学习领域中,通常将数据标注为hard label,但事实上同一个数据包含不同类别的信息,直接标注为hard label会导致大量信息的损失,进而影响最终模型取得的效果。本文首先探讨一下hard label和soft label之间的关系,然后介绍一下如何用可靠的方法得到蕴含更多信息的soft label,其中主要包含Label Smoothing和Knowledge Distillation两种经典方法。
近年来,随着自动驾驶和机器人等领域的飞速发展,3D 点云处理得到了学术界和工业界的广泛关注,基于点云的物体识别、检测、分割等任务中涌现出了一大批优越的算法。
OpenMMLab 中的 Hook 机制其实是面向切面编程 (Aspect Oriented Program, AOP) 编程思想的一种体现。
大家好!此前我们介绍了二维人体姿态估计(2D Human Pose Estimation,以下简称2D HPE)的基本概念、常用数据集,以及自顶向下的2D HPE算法。本文将结合MMPose对自底向上的2D HPE算法做一些更详细的分析。
OpenPPL 是商汤基于自研高性能算子库的开源深度学习推理平台,提供云原生环境下的 AI 模型多后端部署能力。
2D Human Pose Estimation (以下简称 2D HPE )旨在从图像或者视频中预测人体关节点(或称关键点,比如头,左手,右脚等)的二维空间位置坐标。2D HPE 的应用场景非常广泛,包括动作识别,动画生成,增强现实等。
PoseC3D 是一种基于 3D-CNN 的骨骼行为识别框架,同时具备良好的识别精度与效率,在包含 FineGYM, NTURGB+D, Kinetics-skeleton 等多个骨骼行为数据集上达到了 SOTA。
如今,Transformer 这把火已经烧到了计算机视觉领域,可以说成为今年最大的热点。本着全心全意为社区服务的精神,OpenMMLab 当然不会对此无动于衷。 为了方便大家研究学习,我们基于 MMCV ,在OpenMMLab 6个方向的 repo 中复现了 13 种基于 Transformer 的方法,快来看看有没有你需要的吧。
SSDLite 是 Google 在 CVPR2018 论文 MobileNetV2: Inverted Residuals and Linear Bottlenecks 中提出的轻量级检测模型。
在这篇文章里,我们将会重点介绍新增的应用脚本,同时手把手带领读者尝试使用 MMOCR 已有的模型。
这篇文章将沿着近年来 3D 检测的发展脉络,通过和 2D 检测对比,分析 3D 检测中的核心问题,并着重探讨对于纯视觉 3D 检测的再思考。
GAN 的全称是 Generative Adversarial Networks,翻译过来就是生成对抗网络。这里我们需要重点理解的是对抗的含义:GAN 的基本想法是两个网络,生成器(G)和判别器(D),在训练过程中相互对抗。
视频复原任务 (Video Restoration) 。它除了可以提高用户体验外, 还可以提高检测和分割等任务的准确度。其难点在于需要从高度相关但未对齐的视频帧中收集补充信息以进行恢复,在循环模型中跨帧传输长时信息和对齐特征的问题仍然是一个很艰巨的任务。
最近 YOLOX 火爆全网,速度和精度相比 YOLOv3、v4 都有了大幅提升,并且提出了很多通用性的 trick,同时提供了部署相关脚本,实用性极强。