tensorflow目标分类:分绍(一)

这一章我们看一下用神经网络进行图像处理的高级任务。我们看一下语义分割,定位,检测,实例分割。这一章不是让你成为专家,而是给你提供足够的信息来理解算法并读原始的论文,因为读者可以很容易的读这个主题的许多相关书。希望在本章结束你可以理解不同的方法的区别,能直观的理解这些方法的构件。这些算法需要很多高级的技术,比如多个损失函数,多任务学习。本章我们还要看一些技术。注意有些方法的原始论文是多年前的,要掌握主题,你要亲自读一下原论文。

在笔记本电脑上训练和使用原论文的神经网络不太可能。所以本章的代码较少。我只给你指明方向,并告诉你可以使用预训练库,当你想在项目中使用这些技术时。那是下一节的主题。相关的地方,我指出不同方法的区别,优点,缺点。我们指导性的看一下最高级的方法,因为细节太复杂,只有看原始论文才能给你足够的信息来自已实现算法。

什么是目标定义?

我们直观的理解什么是目标定位。我们已经看了图像分类的多种形式:它告诉我们图像里的内容是什么。那听起来很容易,但是很多时候很困难,并不是因为算法。例如,考虑你的图像里同时有猫和狗的情况。分类是什么?狗还是猫?当然,两者都有,但是分类算法只能给你一种分类,所以不可能告诉你图像里有两种动物。如果有很多狗和猫在图像里又怎么样呢? 你有多个对像呢?你得到想法了。

知道猫和狗在图像的哪里可能很有趣。考虑一下自动驾驶汽汽车:很重要的是要知道人在哪里,因为它要区别死人和活人。分类,如我们在上一节所见,通常不能用来解决现实的图像问题。通常在图像里有很多对象实例的识别可以用来区别它们。要完成这个,我们需发现实例在图像里的位置和边界,这是图像识别技术里最有兴趣的地方,可以使用CNNs解决。

通常我们想定位目标在图像里的位置并在它的周围画上边框。

注意 使用目标定位,我们可以确定对象在图像里的一个或多个对象的位置(例如,人和车)并在它的周围画上边框。

有时可以在文献中看到研究者使用术语localization 当图像只有一个对象实例时,而使用术语 detection 当图像里有多个对象实例时。

注意 Localization 通常指图像里只有一个对象实例,而 detection 指图像里有多个对像实例。

为了总结和澄清技术,这里概括一下所有的词和术语 (可视化的解释见图 6-1):

    • 分类 : 到标签到一个图像,或者换句话, "理解"图像里有什么。例如,猫的图像有标签 "猫" (我们前面看过了几个例子了)。
    • 分类和定位 : 给一个标签到一张图像并确定包含对象的边框 (通常在对像周围画长方形)。
    • 对象检测 : 在图像里有多个对象实例时使用这个术语。在对象检测里,你想确定所有对象的实例(例如,人,车,等等)并在它们周围画边框。
    • 实例分割 :你想为每一个实例标记每一个像素的具体类,从而找到对象实例的的边界。

语义分割: 你想用具体的类标记每一个像素。与实例分割的区别是你不关心有多个车的实例。所有属于车的像素都标记为"车"。在实例分割里,你要知道有多少个车的实例,以及它们在哪里。要理解区别,见图 6-1。

图 6-1. 在图像里定位一个或多个对象的可视化解释

分割是最困难的任务,而实例分割更为困难。要用很多先进的技术来解决这个问题 。要记住的是获得足够的训练数据不太容易。 记住这比简单的分类要困难。

因为我们要标记对像在哪里。使用分割,我们 需要分类图像的每一个像素,意味着训练数据非常大难于收集。

可以获得的非常重要的数据集

可以解决这些问题的非常有 名的数据集是Microsoft COCO 数据集,在 http://cocodataset.org.。这个数据集有91个对象类型,共 2.5 million个标签实例在328,000张图像里。 为了给你标签的想法,图 6-2 显示了一些数据集的例子。你可以看到具体的对象实例是是如何在像素水平分类的 (如人和车)。

图6-2. COCO数据集里图像的例子

关于容量的快速提示: 2017训练图像约118,000张需要 18GB2 磁盘空间,所以要记住。用这么大的数据训练网络不太可行,需要时间和计算能力。你可以用API来下载COCO图像。更详细的信息见 https://github.com/cocodataset/cocoapi。图像有5个标记类型:对象检测,关键点检测, stuff分割,panoptic分割,图像标记。更多的信息见http://cocodataset.org/#format-data。

另一个数据集是Pascal VOC 数据集。不幸的是,网站不太稳定,因此可以使用镜像文件。其中一个镜像是https://pjreddie.com/ projects/pascal-voc-dataset-mirror/。注意这个数据集要比COCO 数据集小很多。

在本章和下一章,我们主要关注目标分类和定位。我们假定图像里只有一个具体的实例,任务是确定对像属于哪个分类,并在周围画边框。这个有点挑战!我们简单的看一下分割是如何工作的,但是不会太详细,因为问题很难解决。我会给你参考资料供你研究。

相关推荐
bright_colo6 分钟前
Python-初学openCV——图像预处理(六)
人工智能·opencv·计算机视觉
图灵的白猫8 分钟前
基于BiLSTM+CRF实现NER
人工智能
xiaobaibai15315 分钟前
智慧交通中目标检测 mAP↑28%:陌讯多模态融合算法实战解析
人工智能·算法·目标检测·计算机视觉·目标跟踪·视觉检测
终将超越过去26 分钟前
分类-鸢尾花分类
人工智能·分类·数据挖掘
计算机科研圈28 分钟前
ICCV 2025 | EPD-Solver:西湖大学发布并行加速扩散采样算法
人工智能·算法·语言模型·自然语言处理·数据挖掘·iccv
涡能增压发动积43 分钟前
Browser-Use Agent使用初体验
人工智能·后端·python
zzywxc78743 分钟前
利用AI生成测试用例、优化测试执行、自我修复测试脚本,提升测试覆盖率和效率。
人工智能·测试用例·测试覆盖率
汤姆yu1 小时前
基于图像识别与分类的中国蛇类识别系统
人工智能·分类·数据挖掘·图像识别
Yzxs0091 小时前
【8月优质EI会议合集|高录用|EI检索稳定】计算机、光学、通信技术、电子、建模、数学、通信工程...
大数据·人工智能·算法·计算机视觉·信息与通信
汉唐明月1 小时前
模型蒸馏:使用bert-base-uncased模型蒸馏出distilbert-base-uncased
人工智能·机器学习