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

geolabel-maker的Python项目详细描述


地理标签制造商

此工具用于帮助您为地理空间人工智能准备数据。在

使用geolabel-maker,您可以将卫星或航空图像与 矢量空间数据创建您自己的地面真相数据集。这个Python包可以 在COCO format中为深度学习模型生成最终的数据集。在

它旨在将这四个必要步骤联系起来:

  1. 从几何图形和光栅文件创建标签
  2. 制作虚拟光栅文件,将图像和标签结合起来
  3. 分割图像和标签虚拟文件创建瓷砖
  4. 为特定缩放级别创建COCO格式的注释JSON文件。在

安装

要求

  • Python 3.6
  • 格达尔

GDAL

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

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

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

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

^{pr2}$

之后,一个简单的pip install gdal(或conda install gdal)就足够了,但是考虑到我们自己的经验,在Ubuntu上就不是这样了。必须为Python检索与系统GDAL相对应的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

使用

输入

An sample dataset is available in the data/ folder. See the Examples paragraph to more information.

要以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驱动程序的包。在

  • 有关图像,请参见raster formats
    • 吉奥蒂夫
    • JPEG2000
    • ASCII网格
    • 等等
  • 有关几何图形,请参见fiona包的supported drivers
    • ESRI形状文件
    • 杰森森
    • 加仑千克
    • 等等

使用命令行界面

提出了一个命令行接口,其中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代码中导入包

fromgeolabel_makerimportgeolabels# Create labels from geometries and raster filesgeolabels.make_labels(img,categories)# Make virtual raster files to combine images and labelsimages_vrt,labels_vrt=geolabels.make_rasters(img)# Split image and label virtual files creating tilesgeolabels.make_tiles(images_vrt,labels_vrt,tiles)# Create an annotation JSON file in the COCO formatgeolabels.make_annotations(tiles,categories)# OR# Run the full processgeolabels.make_all(img,tiles,categories)

示例

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

此文件夹不包含图像,因为此类型的文件太大,Github不支持此类型的文件。 按照我们的示例,只需下载这两个文件并将它们放入data/rasters/文件夹中:

笔记本

有些Jupyter笔记本电脑(法语)可供选择:

对于开发者

从源安装

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

预通信mit和linting

  • Install pre-commit并运行pre-commit install 在提交前检查线迹。在

  • 如果需要,可以强制对所有文件进行预提交:

pre-commit run --all-files

致谢

我们衷心感谢 帮助项目启动,包括 beta测试了软件,给出了反馈,改进了 服务于此版本的代码,或以其他方式支持项目的代码。在

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

我们也承认Adam Kelly 他们的工作帮助我们开发了这个工具。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java:在迭代器类型(接口/实现类)之间转换?   java“Click Method”不断返回“Stale Element Exceoption”?   Android应用程序/进程的java生命周期?   java在发布消息时收到“无法识别的Windowssocket错误:0:recv失败”   java如何返回第二个值   java将基本授权头添加到一些请求中   使用改型安卓的java Post请求错误   PropertyPlaceHolderConfigure位置内的java Spring占位符   java是导入com的工具。谷歌。安卓gms。gcm无法解决,Google Play服务已经安装   java如何获取JSON数据的多个可选值?   java如何使用ApachePOI从word中的形状读取文本   安卓 java。Eclipse中的lang.NoClassDefFoundError,但不适用于Ant   如何在Java中用stream()将Map<v1,Set<v2>>转换为Map<v2,Set<v1>>   循环在java中循环时,如何从数组列表中删除某些内容?