如何使用Remo在Python中管理计算机视觉数据集

2020年12月30日10:54:30 发表评论 34 次浏览

本文概述

计算机视觉是机器学习最重要的应用之一。计算机视觉的一些常见商业应用是:

  • 工业基础设施, 石油和天然气管道以及商业房地产的预测性维护
  • 质量保证自动化
  • 基于卫星图像和无人机镜头的景观清单和包裹管理

为了完成这类任务而使用的一些最常见的技术是:

  • 影像分类
  • 物体检测
  • 实例细分

在过去的十年中, 开发了许多框架, 例如TensorFlow, Keras和PyTorch, 以使其更易于开发基于计算机视觉的模型。

但是由于必要的图像预处理, 标记和注释可视化, 使用图像数据仍然相对困难。

作为本文的一部分, 我将向你介绍雷莫, 一个免费的Python库, 旨在帮助开发人员处理计算机视觉任务。雷莫可以帮助你:

  • 组织和可视化图像和注释
  • 高效注释
  • 在数据上团队合作和协作

Remo既可以在Jupyter Notebook中使用, 也可以在Google Colab环境中使用。在本文中, 所有代码都将基于Google Colab设置, 完整的笔记本可在以下位置免费获得此链接。

雷莫如何改善图像管理

有许多用于图像的旧式开放注释工具。标签图是最受欢迎的游戏之一。

与这些工具相比, Remo提供了智能工具来更有效地进行注释(例如, 快捷方式和xclick绘制)以及可帮助你进行协作和组织工作的功能。你可以将图像标记为"完成"或"待办事项", 对它们进行排序和搜索, 依此类推-当你处理成千上万张图像时, 这非常有用。

但是, 数据集管理是Remo极富创新能力的地方。当前, Computer Vision项目中的图像通常以平面文件形式存储在本地硬盘或某些Cloud存储器中, 而注释则以原始XML / JSON / csv文件形式存储。

为了使它们可视化, 通常可以单独打开每个文件并尝试想象注释的位置, 或者在Python中逐个绘制它们。

相反, Remo为你提供了所有数据的完全控制权和可见性。

演示Remo的工作原理

首先, 我们需要安装所有必需的依赖项。通过运行以下两行代码, 可以在Google Colab中轻松完成此操作:

!pip install remo
!python -m remo_app init --colab

一旦安装了Remo, 我们就可以使用Amazon Web Services上免费提供的一些示例图像来创建数据集。

import remo
import pandas

link = ['https://remo-scripts.s3-eu-west-1.amazonaws.com/open_images_sample_dataset.zip']

df = remo.create_dataset(name = 'Example Images Dataset', urls = link, annotation_task = "Object Detection")
                    
# Output
# Acquiring data - completed                          
# Processing annotation files: 1 of 1 files                                  
# Processing data - completed       
# Data upload completed

通过运行雷莫list_datasets() 命令, 然后我们可以轻松地检查我们当前可用的数据集。

remo.list_datasets()

# Output
# [Dataset  1 - 'Example Images Dataset' - 10 images]

现在, 我们准备使用Remo的图形界面来检查我们的数据集并查看可用的不同选项。

在图1中, 你将看到一个简单的示例, 该示例说明使用Remo可视化和注释我们的数据有多么容易。

df.view()
如何使用Remo在Python中管理计算机视觉数据集1

图1:Remo的GUI数据预处理

使用Remo的另一个重要优点是, 它使你可以通过Python代码或用户界面快速获取关键数据集统计信息。

当你试图了解批注如何在不同图像之间分配以及总体类分配是否平衡时, 这特别有用。

df.get_annotation_statistics()

# Output
# [{'AnnotationSet ID': 1, #  'AnnotationSet name': 'Object detection', #  'creation_date': None, #  'last_modified_date': '2020-11-28T22:04:48.263767Z', #  'n_classes': 18, #  'n_images': 10, #  'n_objects': 98, #  'top_3_classes': [{'count': 27, 'name': 'Fruit'}, #   {'count': 12, 'name': 'Sports equipment'}, #   {'count': 10, 'name': 'Human arm'}]}]

通过使用Remo的图形界面, 你可以看到类似的结果(图2)。

df.view_annotation_stats()
如何使用Remo在Python中管理计算机视觉数据集2

图2:雷莫的统计功能

最后, 如果你使用Remo界面将注释添加到数据集的不同图像, 则这些注释可以自动以CSV格式导出。这使你以后可以使用它们并利用Remo的export_annotations_to_file()功能。

df.export_annotations_to_file('images_annotations.zip', annotation_format='csv', export_tags = False)

总结

总而言之, Remo提供的一些关键功能是:

  • 数据集管理功能
  • 支持多种文件格式以及计算机视觉任务
  • 用户友好的界面和增强的注释工具
  • 在项目上轻松协作
  • 支持虚拟机使用

如果你有兴趣了解有关Remo的更多信息(例如如何将Remo与PyTorch等其他框架集成)或如何在Jupyter Notebook环境中设置此工作流程, 则可以雷莫官方文档是一个很好的起点。

希望你喜欢这篇文章, 感谢你的阅读!

联络我

如果你想随时了解我的最新文章和项目跟我来中并订阅我的邮件列表。这些是我的一些联系方式:

  • 领英
  • 个人博客
  • 个人网站
  • Patreon
  • 中档
  • 的GitHub
  • 卡格勒

封面照片来自雷莫文件。

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: