跳转到主要内容

地理空间人工智能数据准备

项目描述

geolabel-maker

此工具提供以帮助您进行地理空间人工智能的数据准备。

使用geolabel-maker,您将能够将卫星或航空影像与矢量空间数据相结合,创建您自己的真实数据集。此Python包可以生成适合深度学习模型的最终数据集,格式为COCO格式

它旨在连接以下4个必需步骤

  1. 从几何和栅格文件创建标签;
  2. 制作虚拟栅格文件以组合图像和标签;
  3. 分割图像和标签虚拟文件以创建瓦片;
  4. 为特定缩放级别创建COCO格式的注释JSON文件。

安装

要求

  • Python 3.6
  • GDAL

GDAL

作为一个特殊情况,GDAL不包括在setup.py文件中。

对于Ubuntu发行版,需要以下操作来安装此程序

sudo apt-get install libgdal-dev
sudo apt-get install python3-gdal

可以通过以下方式验证GDAL版本

gdal-config --version

之后,一个简单的 pip install gdal(或 conda install gdal)可能就足够了,然而根据我们自己的经验,在Ubuntu上并不适用。必须找到与系统GDAL相对应的Python GDAL。

pip install --global-option=build_ext --global-option="-I/usr/include/gdal" GDAL==`gdal-config --version`
python3 -c "import osgeo;print(osgeo.__version__)"

对于其他操作系统,请访问GDAL安装文档。

使用pip安装

pip install geolabel-maker

使用方法

输入

示例数据集位于 data/ 文件夹中。有关更多信息,请参阅 示例 段落。

要创建符合COCO格式的标签和注释,您需要以下内容:

  • IMG:包含要标注图像的文件夹的路径
  • CATEGORIES:一个JSON文件,其中包含每个的唯一ID,期望的类别描述(包括矢量标签文件的路径)以及RGB三元组颜色。
  • TILES:用于记录瓦片(256x256像素图像)的文件夹

类别文件的示例

{
    "category_1": {
        "id": 1,
        "file": "path to your category_1 vector file",
        "color": [150, 0, 0]
    },
    "category_2": {
        "id": 2,
        "file": "path to your category_2 vector file",
        "color": [255, 255, 255]
    }
}
支持格式

我们使用基于GDAL驱动的包。

  • 对于图像,请参阅 栅格格式
    • GeoTIFF,
    • JPEG2000,
    • ASCII Grid,
    • 等等
  • 对于几何形状,请参阅fiona包的支持的驱动程序
    • ESRI Shapefile,
    • GeoJSON,
    • GPKG,
    • 等等

使用命令行界面

提供了一个命令行界面,有5个可用的操作(make_labelsmake_rastersmake_tilesmake_annotationsmake_all)。

逐步命令

1. 从几何形状和栅格文件创建标签

geolabels make_labels IMG CATEGORIES

2. 创建虚拟栅格文件以组合图像和标签

geolabels make_rasters IMG

3. 通过创建瓦片来分割图像和标签虚拟文件

geolabels make_tiles IMG_VRT LABEL_VRT TILES

4. 为特定缩放级别创建COCO格式的注释JSON文件

geolabels make_annotations TILES CATEGORIES

选项

  • --zoom,缩放级别

全局命令

要运行完整过程以获取COCO格式的地面实况,请使用以下命令:

geolabels make_all IMG TILES CATEGORIES

选项

  • --zoom,缩放级别

在Python代码中导入包

from geolabel_maker import geolabels

# Create labels from geometries and raster files
geolabels.make_labels(img, categories)
# Make virtual raster files to combine images and labels
images_vrt, labels_vrt = geolabels.make_rasters(img)
# Split image and label virtual files creating tiles
geolabels.make_tiles(images_vrt, labels_vrt, tiles)
# Create an annotation JSON file in the COCO format
geolabels.make_annotations(tiles, categories)

# OR
# Run the full process
geolabels.make_all(img, tiles, categories)

示例

data/ 文件夹包含来自里昂的几何形状(向量化),在https://data.grandlyon.com网站上作为开放数据发布。它还包含一个描述用于创建标签的类别的JSON文件示例。

此文件夹不包含图像,因为此类文件太大,无法在GitHub上支持。要遵循我们的示例,请下载这两个文件并将它们放入文件夹 data/rasters/

笔记本

一些Jupyter笔记本(法语)可供使用

对于开发者

从源代码安装

git clone URL
cd geolabel-maker
pip install -e .

预提交和代码检查

  • 安装预提交 并运行 pre-commit install 以在提交前进行检查。

  • 当您想强制在所有文件上执行预提交时

pre-commit run --all-files

致谢

我们衷心感谢那些帮助启动此项目的人的贡献,包括那些进行软件beta测试、提供反馈、改进代码依赖以支持此版本或以其他方式支持项目的人。

特别感谢 Lucie Camanez 在实习期间启动此项目。

我们还感谢 Adam Kelly 的帮助,他的工作有助于我们开发此工具。

项目详细信息


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

geolabel_maker-0.0.1.tar.gz (14.5 kB 查看哈希值)

上传时间: 源代码

构建分发

geolabel_maker-0.0.1-py3-none-any.whl (14.6 kB 查看哈希值)

上传时间: Python 3

支持者