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 数据集小很多。

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

相关推荐
IT_陈寒5 分钟前
JavaScript性能优化:3个被低估的V8引擎技巧让你的代码提速50%
前端·人工智能·后端
hazy1k22 分钟前
K230基础-录放音频
人工智能·stm32·单片机·嵌入式硬件·音视频·k230
众趣科技1 小时前
数字孪生重构智慧园区:众趣科技何以成为 VR 园区领域标杆
人工智能·3d·智慧城市·空间计算
心勤则明2 小时前
Spring AI 会话记忆实战:从内存存储到 MySQL + Redis 双层缓存架构
人工智能·spring·缓存
ARM+FPGA+AI工业主板定制专家4 小时前
基于GPS/PTP/gPTP的自动驾驶数据同步授时方案
人工智能·机器学习·自动驾驶
长鸳词羡4 小时前
wordpiece、unigram、sentencepiece基本原理
人工智能
ㄣ知冷煖★4 小时前
【GPT5系列】ChatGPT5 提示词工程指南
人工智能
科士威传动4 小时前
丝杆支撑座在印刷设备如何精准运行?
人工智能·科技·自动化·制造
taxunjishu6 小时前
DeviceNet 转 Modbus TCP 协议转换在 S7-1200 PLC化工反应釜中的应用
运维·人工智能·物联网·自动化·区块链
kalvin_y_liu6 小时前
智能体框架大PK!谷歌ADK VS 微软Semantic Kernel
人工智能·microsoft·谷歌·智能体