地理空间人工智能数据准备
项目描述
geolabel-maker
此工具提供以帮助您进行地理空间人工智能的数据准备。
使用geolabel-maker
,您将能够将卫星或航空影像与矢量空间数据相结合,创建您自己的真实数据集。此Python包可以生成适合深度学习模型的最终数据集,格式为COCO格式。
它旨在连接以下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_labels
,make_rasters
,make_tiles
,make_annotations
和make_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笔记本(法语)可供使用
- Use_geolabel_maker.ipynb 解释了构建地面实况的过程。
- Check_coco_annotations.ipynb 允许您探索最终的注释文件。
对于开发者
从源代码安装
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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 05fb6d903e47c3f816c910d905236c2aa484d3f3b66e94480f810b8948f000ee |
|
MD5 | 5436986ed9ee6ebd4ecf994691c8bb46 |
|
BLAKE2b-256 | c7c60243981ee8efabbcad931c2752afb252f9a0bd5fd103b9ab94c8c04c343e |
geolabel_maker-0.0.1-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 727d27aa82f2b60681961d78305637729cc2bdd63c2deefa14ce71bc926d1936 |
|
MD5 | acb9d5f01094d1d2279e5275db01f219 |
|
BLAKE2b-256 | bf71cad38ae9159bfc06bb1f256b74cfab184b4a2d27dca761b529dca437fee9 |