Skip to content

Latest commit

 

History

History
137 lines (69 loc) · 9.55 KB

computer-vision-model-approaches-datasets.md

File metadata and controls

137 lines (69 loc) · 9.55 KB

构建计算机视觉模型:方法和数据集

原文:www.kdnuggets.com/2019/05/computer-vision-model-approaches-datasets.html

c 评论

Javier Couto,Tryolabs

计算机视觉是机器学习中最热门的子领域之一,鉴于其广泛的应用和巨大的潜力。其目标是复制人类视觉的强大能力。但这如何通过算法实现呢?


我们的前三大课程推荐

1. Google 网络安全证书 - 快速进入网络安全职业生涯。

2. Google 数据分析专业证书 - 提升你的数据分析技能

3. Google IT 支持专业证书 - 支持你的组织的 IT


让我们深入了解最重要的数据集和方法。

现有数据集

计算机视觉算法并非魔法。它们需要数据才能工作,它们的效果仅能与输入的数据质量相匹配。以下是根据任务收集正确数据的不同来源:

其中一个最大且最著名的数据集是**ImageNet,这是一个拥有 1400 万张图像的现成数据集,手动标注了使用WordNet** 概念。在全球数据集中,100 万张图像包含边界框注释。

带有边界框的 ImageNet 图像。图片来源

带有对象属性注释的 ImageNet 图像。图片来源

另一个著名的数据集是**Microsoft Common Objects in Context (COCO)**,包含 328,000 张图像,包括 91 种对象类型,这些类型对于 4 岁的孩子来说很容易识别,总共有 250 万个标注实例。

来自 COCO 数据集的标注图像示例。图片来源

尽管可用的数据集不是很多,但有几个适合不同任务的,例如 CelebFaces 属性数据集(CelebA,包含超过 20 万张名人图像的面部属性数据集);室内场景识别 数据集(15,620 张室内场景图像);和 植物图像分析 数据集(来自 11 个不同物种的 100 万张植物图像)。

一般策略

深度学习方法和技术 深刻地改变了计算机视觉以及人工智能的其他领域,以至于对于许多任务,其使用被认为是标准的。特别是,卷积神经网络(CNN)利用传统计算机视觉技术取得了超越现有技术水平的成果。

这四个步骤概述了使用 CNN 构建计算机视觉模型的一般方法:

  1. 创建一个由标注图像组成的数据集,或者使用现有的数据集。标注可以是图像类别(用于分类问题);一对对的边界框和类别(用于物体检测问题);或每个图像中感兴趣对象的逐像素分割(用于实例分割问题)。

  2. 从每张图像中提取与当前任务相关的特征。这是建模问题的关键点。例如,用于识别面孔的特征,与基于面部标准的特征显然不同于用于识别旅游景点或人体器官的特征。

  3. 基于提取的特征训练深度学习模型。训练意味着向机器学习模型输入许多图像,模型将根据这些特征学习如何解决手头的任务。

  4. 使用未在训练阶段使用的图像评估模型。通过这样做,可以测试训练模型的准确性。

这个策略非常基础,但能够很好地达到目的。这样的做法,被称为 监督式机器学习,需要一个涵盖模型需要学习的现象的数据集。

训练物体检测模型

维奥拉和琼斯方法

有许多方法可以解决物体检测挑战。多年来,流行的方法是保罗·维奥拉和迈克尔·琼斯在论文中提出的 鲁棒实时物体检测

尽管可以训练以检测多种类别的对象,但这一方法最初是以面部检测为目标的。它速度快且简单,已被实现到傻瓜相机中,允许在实时面部检测中使用极少的处理能力。

该方法的核心特征是使用基于**Haar 特征**的大量二分类器进行训练。这些特征表示边缘和线条,在扫描图像时计算非常简单。

Haar 特征。图片来源

尽管相当基础,但在面部识别的具体情况下,这些特征可以捕捉到如鼻子、嘴巴或眉毛之间的距离等重要元素。这是一种监督方法,需要许多正例和负例的目标对象样本。

检测蒙娜丽莎的面部

基于 CNN 的方法

深度学习在机器学习领域带来了真正的变革,尤其是在计算机视觉领域,基于深度学习的方法现在在许多常见任务中处于最前沿。

在为实现目标检测而提出的不同深度学习方法中,R-CNN(具有 CNN 特征的区域)特别容易理解。该工作的作者提出了一个三阶段的过程:

  1. 使用区域提案方法提取可能的对象。

  2. 使用 CNN 识别每个区域的特征。

  3. 使用**支持向量机(SVMs)**对每个区域进行分类。

R-CNN 架构。图片来源

原作中选择的区域提案方法是**选择性搜索**,尽管 R-CNN 算法对于采用的具体区域提案方法没有偏好。第 3 步非常重要,因为它减少了对象候选数量,使得该方法计算开销较小。

这里提取的特征不如之前提到的 Haar 特征直观。总而言之,使用 CNN 从每个区域提案中提取一个 4096 维的特征向量。由于 CNN 的特性,输入必须始终具有相同的维度。这通常是 CNN 的一个弱点,各种方法以不同的方式解决这个问题。就 R-CNN 方法而言,训练好的 CNN 架构需要固定尺寸的 227 × 227 像素的输入。由于提议的区域大小与此不同,作者的方法简单地将图像扭曲以适应所需的尺寸。

与 CNN 所需输入维度匹配的扭曲图像示例。图片来源

尽管取得了优异的成果,但训练过程中遇到了一些障碍,最终该方法被其他方法超越。文章中详细回顾了一些这些内容,深度学习目标检测:终极指南

本文摘自计算机视觉入门指南,作者为 Tryolabs,最初发布于这里

简介Javier Couto 是 Tryolabs 的自由职业机器学习顾问和数据科学家,专注于应用机器学习解决商业问题。

资源:

相关:

更多相关主题