{"id":23105322,"url":"https://github.com/kartai/kartai","last_synced_at":"2025-08-16T16:33:13.130Z","repository":{"id":153341424,"uuid":"589936701","full_name":"kartAI/kartAI","owner":"kartAI","description":"AI models for aerial image analysis. Generating traning data, training models, testing models and validating them. ","archived":false,"fork":false,"pushed_at":"2024-10-24T06:45:05.000Z","size":1926,"stargazers_count":13,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-25T01:55:20.697Z","etag":null,"topics":["aerial-imagery","deep-learning","machine-learning"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kartAI.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-17T09:42:31.000Z","updated_at":"2024-10-24T06:45:08.000Z","dependencies_parsed_at":null,"dependency_job_id":"51eb4254-a875-4115-97c1-252eb4658cf1","html_url":"https://github.com/kartAI/kartAI","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kartAI%2FkartAI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kartAI%2FkartAI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kartAI%2FkartAI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kartAI%2FkartAI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kartAI","download_url":"https://codeload.github.com/kartAI/kartAI/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230045728,"owners_count":18164343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aerial-imagery","deep-learning","machine-learning"],"created_at":"2024-12-17T00:49:54.447Z","updated_at":"2024-12-17T00:49:55.160Z","avatar_url":"https://github.com/kartAI.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# KartAI\n\n[KartAi](https://kartai.no/) is a research project with the objective to use AI to improve the map data for buildings in Norway.\n\nThis repository is intended for people contributing and working on the KartAi project, and in order to use the scripts you need access to both image data sources and azure resources.\n\nThe repository allows you to easily create training data for any sort of vector data and a set of different image data sources, everything defined in config files passed to the scripts. It also allows for training a set of different implemented Tensorflow models.\n\n## Table of Contents\n\n- [KartAI](#kartai)\n  - [Table of Contents](#table-of-contents)\n  - [Colab notebook workshop](#colab-notebook-workshop)\n  - [Prerequisites](#prerequisites)\n  - [Setup](#setup)\n    - [Conda environment](#conda-environment)\n    - [Running scripts](#running-scripts)\n    - [Environment variables](#environment-variables)\n  - [Models](#models)\n    - [Implemented models](#implemented-models)\n    - [Download existing trained models](#download-existing-trained-models)\n    - [Upload model](#upload-model)\n  - [Training data](#training-data)\n    - [Dataset config file](#dataset-config-file)\n      - [Tile grid](#tile-grid)\n      - [Image Sources](#image-sources)\n    - [Created dataset format](#created-dataset-format)\n    - [Create Training Data Script](#create-training-data-script)\n  - [Data teacher](#data-teacher)\n  - [Train](#train)\n    - [Datagenerator config file](#datagenerator-config-file)\n    - [Train script](#train-script)\n    - [Run multiple training processes](#run-multiple-training-processes)\n  - [Evaluating the models](#evaluating-the-models)\n    - [Result table](#result-table)\n  - [Using the trained models](#using-the-trained-models)\n    - [Predict](#predict)\n    - [Create vectordata](#create-vectordata)\n    - [Create contour vectordata](#create-contour-vectordata)\n\n## Colab notebook workshop\n\nIn the `/workshop_material` folder there is a notebook for testing the main features of this repository. If you want to try out the notebook you need two secrets. Contact the kartAI developers if you want to try it out!\n\nLink to notebook: https://colab.research.google.com/github/kartAI/kartAI/blob/master/workshop_material/introduction_to_geospatial_ai_colab.ipynb\n\n## Prerequisites\n\nIn order to create the training data for building segmentation you need access to a WMS of aerial images, and a database containing existing vector-data of buildings.\n\n## Setup\n\n### Conda environment\n\nTo make sure you have correct versions of all packages we recommend using anaconda and their virtual environments. We use python 3.9.\n\nThis repo has an `env.yml` file to create the environment from (NB! This does not include `pandasgui`).\n\nRun `conda env create -f env.yml` in order to install using the env file (remember to use python 3.9), and `conda activate kartai` to activate the environment.\n\nAlternatively if you want to install all dependencies manually you can run `conda create -n env-name python=3.9` and then install dependencies as you want.\n\n### Running scripts\n\nTo run the scripts, we have two options depending on your operating system:\nFrom the project root, run:\n\nUnix: `./kai \u003cargs\u003e`\n\nWindows: `kai.bat \u003cargs\u003e`\n\n### Environment variables\n\nTo run the the program you need a env_sevrets.py file that contains secret enviroment variables, as well as whitelisting your ip-address. Contact a developer for access.\n\n## Models\n\n### Implemented models\n\nOur implemented models are:\n\n- unet\n- resnet\n- bottleneck\n- bottleneck_cross (custom architecture)\n- CSP\n- CSP_cross (custom architecture)\n- unet-twin (custom architecture)\n\n### Download existing trained models\n\nTo download the trained models checkpoint files and the metadata files to view hyperparameters and performance you can run:\n\nUnix:\n\n`./kai download_models`\n\nWindows:\n\n`kai.bat download_models`\n\nThis will download all available models that are not already downloaded into `/checkpoints` directory.\n\n### Upload model\n\nIf a trained model was created but not uploaded to azure automatically (flag when running the training), you can upload the model by running:\n\nUnix:\n\n`./kai upload_model -m {model_name}`\n\nWindows:\n\n`kai.bat upload_model -m {model_name}`\n\n## Training data\n\nDataset is automatically created based on the given data sources defined in the Dataset config file.\n\n### Dataset config file\n\nThe dataset config file (used in the -c argument to create_training_data) is a json file describing the datasets\nused for training / validation / test. It has three main sections: `\"TileGrid\"`, `\"ImageSources\"` and the\nimage sets.\n\nMain structure:\n\n```json\n{\n  \"TileGrid\": {\n    \"srid\": 25832,\n    \"x0\": 563000.0,\n    \"y0\": 6623000.0,\n    \"dx\": 100.0,\n    \"dy\": 100.0\n  },\n  \"ImageSources\": [\n    {\n       ...\n    },\n    {\n       ...\n    }\n  ],\n  \"ImageSets\": [\n    {\n       ...\n    },\n    {\n       ...\n    }\n  ]\n}\n```\n\n#### Tile grid\n\nThe TileGrid defines the grid structure for the image tiles.\n\n```json\n \"TileGrid\": {\n    \"srid\": 25832,\n    \"x0\": 410000.0,\n    \"y0\": 6420000.0,\n    \"dx\": 100.0,\n    \"dy\": 100.0\n  }\n```\n\nAll image tiles will be in the spatial reference system given by `\"srid\"`. The tiles will be of size `dx * dy`, with\ntile `(0, 0)` having the lower left corner at `(x0, y0)`, tile `(1, 0)` at `(x0 + dx, y0)` etc...\n\n#### Image Sources\n\nThe ImageSources is a list of image sources: database layers, WMS/WCS services, file layers (shape, geojson, ...)\n\nExample of Postgres image datasource:\n\n```json\n{\n  \"name\": \"BuldingDb\",\n  \"type\": \"PostgresImageSource\",\n  \"host\": \"pg.buildingserver.org\",\n  \"port\": \"5432\",\n  \"database\": \"Citydatabase\",\n  \"user\": \"databaseuser\",\n  \"passwd\": \"MyVerySecretPW\",\n  \"image_format\": \"image/tiff\",\n  \"table\": \"citydb.building_polygon\"\n}\n```\n\nExample of WMS image datasource:\n\n```json\n{\n  \"name\": \"OrtofotoWMS\",\n  \"type\": \"WMSImageSource\",\n  \"image_format\": \"image/tiff\",\n  \"url\": \"https://waapi.webatlas.no/wms-orto/\",\n  \"layers\": [\"ortofoto\"],\n  \"styles\": [\"new_up\"]\n}\n```\n\nExample of image source. Note that `\"image_format\"` is for the format of the output cache-mosaic. The system uses\nGDAL for file handling, and all valid GDAL import formats (including .vrt - GDAL Virtual Format) can be read.\n\n```json\n{\n  \"name\": \"Ortofoto_manual\",\n  \"type\": \"ImageFileImageSource\",\n  \"image_format\": \"image/tiff\",\n  \"file_path\": \"training_data/cityarea/ortofoto/aerialimage.tif\"\n}\n```\n\nExample of vector file source. GDAL / OGR is used for reading image models, and all valid OGR import\nformats can be read.\n\n```json\n{\n  \"name\": \"Building_smallset\",\n  \"type\": \"VectorFileImageSource\",\n  \"image_format\": \"image/tiff\",\n  \"file_path\": \"training_data/cityarea/shape/building.shp\",\n  \"srid\": 25832\n}\n```\n\nExample of project arguments, that will affect production of the dataset.\n\n```json\n{\n  \"ProjectArguments\": {\n    \"training_fraction\": 1,\n    \"validation_fraction\": 0,\n    \"shuffle_data\": \"True\",\n    \"max_size\": 100\n  }\n}\n```\n\n### Created dataset format\n\nOnce a dataset is created there will be several files generated.\nLabels area created and saved to `training_data/AzureByggDb/{tilegrid}/{tilesize}`.\n\nDefault behaviour when creating a dataset is that we \"lazy load\" our data. This means that instead of downloading the actual images, we instead save the url used for fetching the data in the output data files. The actual data is downloaded once you start training a model with the given dataset.\n\nIf you instead want the skip this lazy loading, and download the data immediately, you can pass `-eager True` to the script.\n\n### Create Training Data Script\n\n`create_training_data`\n\nArguments:\n\n| Argument | Description                                                                                                                                                                                      |\n| -------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| -n       | what to name the dataset                                                                                                                                                                         |\n| -c       | path to config file                                                                                                                                                                              |\n| -eager   | Option to download created data immediately, and not just the reference to the data (which is default behaviour, where data is downloaded the first time the data is used, i.e during training)  |\n| --region | Polygon or multipolygon describing data area with coordinates in same system as defined in config (i.e EPSG:25832), WKT or geojson (geometry) format, directly in a text string or as a filename |\n| --x_min  | x_min for bbox, alternative to --region                                                                                                                                                          |\n| --y_min  | y_min for bbox, alternative to --region                                                                                                                                                          |\n| --x_max  | x_max for bbox, alternative to --region                                                                                                                                                          |\n| --y_max  | y_max for bbox, alternative to --region                                                                                                                                                          |\n\nExample:\n\n**Unix:**\n\nWith bbox: `./kai create_training_data -n medium_area -c config/dataset/bygg.json --x_min 618296.0 --y_min 6668145.0 --x_max 623495.0 --y_max 6672133.0`\n\nWith region: `./kai create_training_data -n small_test_area -c config/dataset/bygg.json --region training_data/regions/small_building_region.json`\n\n**Windows:**\n\nWith bbox: `kai.bat dataset/create_training_data -n medium_area -c config/dataset/bygg.json --x_min 618296.0 --y_min 6668145.0 --x_max 623495.0 --y_max 6672133.0`\n\nWith region: `kai.bat create_training_data -n small_test_area -c config/dataset/bygg.json --region training_data/regions/small_building_region.json`\n\n## Data teacher\n\nData teacher is a module where training of the model happens in combination with creating a good dataset to train on. It uses the model to find dataset instances that the model needs to learn more from, and adds the areas to the training dataset. This way both the model and the dataset improves in iteration, until training of the model converges (meaning that adding more data doesn't help the model to improve further.)\n\nArguments:\n\n| Argument | Description                                                                                                                                                                                                                                                    | Required | Default                                   |\n| -------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | ----------------------------------------- |\n| -n       | prefix name for the datasets and models that is created during the iterations                                                                                                                                                                                  | Yes      |\n| -v_dn    | name of the dataset to use for validation of the trained model in each data teacher iteration                                                                                                                                                                  | Yes      |\n| -t_dn    | name of the init dataset to train the models with                                                                                                                                                                                                              | Yes      |\n| -cn      | init checkpoint that is used for first iteration instead of training from scratch                                                                                                                                                                              | No       |\n| --region | The region that is used when expanding the training data. Represented as a Polygon or MultiPolygon with coordinates in same system as defined in dataset config (i.e EPSG:25832), WKT or geojson (geometry) format, directly in a text string or as a filename |\n| -m       | name of model to train                                                                                                                                                                                                                                         | Yes      |\n| -dc      | Path for data dataset config file                                                                                                                                                                                                                              | No       | `config/dataset/bygg_auto_expanding.json` |\n| -igc     | Path for the ml-input-generator config file                                                                                                                                                                                                                    | No       | `config/ml_input_generator/ortofoto.json` |\n| -f       | number of features                                                                                                                                                                                                                                             | No       | 32                                        |\n| -a       | activation function                                                                                                                                                                                                                                            | No       | relu                                      |\n| -bs      | batch size                                                                                                                                                                                                                                                     | No       | 8                                         |\n| -opt     | Chosen optimizer                                                                                                                                                                                                                                               | No       | RMSprop                                   |\n| -test    | Wether to run in test mode, used when looking for bugs                                                                                                                                                                                                         | No       | Falses                                    |\n\nUnix:\n\n`./kai data_teacher -n kystlinje_sornorge -v_dn validation_dataset -t_dn training_datateacher_set -m unet --region training_data/regions/auto_expand_region.json`\n\nWindows:\n\n`kai.bat data_teacher -n kystlinje_sornorge -v_dn validation_dataset -t_dn training_datateacher_set -m unet --region training_data/regions/auto_expand_region.json`\n\n## Train\n\nWhen training a model you can define both the data to train on, and the model to train. You also need to define a datagenerator config file, that tells the train process how the to feed the model with the given data.\n\n### Datagenerator config file\n\nIn order to tell the data generator how to feed the ML-model with data, we have created config files under `config/ml_input_generator` that determines the shape of the inputs.\nWe can choose between stacking all the inputs into one image with several channels, or we can keep each image as a separate input in a tuple.\n\n```json\n{\n  \"model_input_stack\": [\n    { \"name\": \"image\", \"dimensions\": [512, 512, 3] },\n    { \"name\": \"lidar\", \"dimensions\": [512, 512, 1] }\n  ],\n  \"model_input_tuple\": [],\n  \"ground_truth\": { \"name\": \"label\", \"dimensions\": [512, 512, 1] }\n}\n```\n\n### Train script\n\nArguments:\n\n| Argument | Description                                                                                     | Required | Default                                   |\n| -------- | :---------------------------------------------------------------------------------------------- | :------- | ----------------------------------------- |\n| -dn      | name of the dataset to train with (can pass several -dn arguments to train on several datasets) | Yes      |\n| -cn      | name of result model (checkpoint name)                                                          | Yes      |\n| -m       | name of model to train (see [the list of implemented models](#models))                          | Yes      |\n| -c       | Path for data generator config file                                                             | No       | `config/ml_input_generator/ortofoto.json` |\n| -s       | Save trained model to azure                                                                     | No       | True                                      |\n| -f       | number of features                                                                              | No       | 32                                        |\n| -a       | activation function                                                                             | No       | relu                                      |\n| -e       | number of epochs to run                                                                         | No       | 100                                       |\n| -bs      | batch size                                                                                      | No       | 8                                         |\n| -opt     | Chosen optimizer                                                                                | No       | RMSprop                                   |\n| -ft      | Checkpoint to finetune model from                                                               | No       | False                                     |\n\nExample:\n\n**Unix:**\n\nSingle dataset:\n\n`./kai train -dn {dataset_name} -cn {checkpoint_name} -c {config/ml_input_generator/ortofoto.json} -m {model_name} -a {activation} -bs 4 -f 16 -e {epochs}`\n\nSeveral datasets:\n\n`./kai train -dn {dataset_name_1} -dn {dataset_name_2} -cn {checkpoint_name} -c{config/ml_input_generator/ortofoto.json} -m {model_name} -a {activation} -bs 4 -f 16 -e {epochs}`\n\n**Windows:**\n\nSingle dataset:\n\n`kai.bat train -dn {dataset_name} -cn {checkpoint_name} -c{config/ml_input_generator/ortofoto.json} -m {model_name} -a {activation} -bs 4 -f 16 -e {epochs}`\n\nSeveral datasets:\n\n`kai.bat train -dn {dataset_name_1} -dn {dataset_name_2} -cn {checkpoint_name} -c{config/ml_input_generator/ortofoto.json} -m {model_name} -a {activation} -bs 4 -f 16 -e {epochs}`\n\nWhen training is complete, the resulting checkpoint file and metadata file is automatically uploaded to azure.\n\n### Run multiple training processes\n\nIn order to test lots of models and hyperparameters we can run the compare_models scripts which will sequentially run as many models as you like. Change the script to run different models with desired hyperparameters, and start script by running:\n\nUnix:\n\n`./kai compare_models`\n\nWindows:\n\n`kai.bat compare_models`\n\n## Evaluating the models\n\nWe have created an automatic process for generating a result table that gives an overview of all the trained models performance.\n\n### Result table\n\nGet a complete view of performance of the different models.\nThe script creates an excel file containing performance of models, and if the `visualize` flag is set, opens a GUI table in the browser to view the results.\n\nBy default the module shows an overview of IoU from validation during training.\nBy passing a test_region we will run a prediction on the given region, and perform a comparison to a manually edited dataset with labels to see how the model actually performs.\n\nArguments:\n\n| Argument         | Description                                                                                       | Required | Type                   | Default |\n| ---------------- | :------------------------------------------------------------------------------------------------ | -------- | ---------------------- | ------- |\n| -test_region     | Run test on a region, and get counts of detected buildings, missing buildings and false buildings | No       | \"ksand\" or \"balsfjord\" | None    |\n| -download_models | Downloading all trained models from azure                                                         | No       | bool                   | False   |\n| -preview         | Preview results so far                                                                            | No       | bool                   | False   |\n| -visualize       | Spin up a backend to visualize the model performance from a dataframe in a browser window         | No       | bool                   | False   |\n\nUnix:\n\n`./kai results`\n\nWindows:\n\n`kai.bat results`\n\n## Using the trained models\n\n### Predict\n\nRun prediction with one of the trained models.\nRunning prediction will download to wanted model from azure, before running prediction.\n\nArguments:\n\n| Argument | Description                                   |\n| -------- | :-------------------------------------------- |\n| -dn      | name of dataset to predict on                 |\n| -cn      | name of the trained model used for prediction |\n| -c       | Path for data generator config file           |\n| -s       | wether or not to save result images           |\n| -ft      | Checkpoint to finetune model from             |\n\nExample:\n\nUnix:\n\n`./kai predict -dn building_dataset -cn unet_model`\n\nWindows:\n\n`kai.bat predict -dn building_dataset -cn unet_model`\n\n### Create vectordata\n\nCreate a vector dataset with predicted data from a chosen ML model, on a chosen region.\nRunning creation of vectordata will download to wanted model from azure, before running prediction.\n\nThis module will:\n\n- Create a dataset for the given region. Dataset is written to `training_data/created_datasets/for_prediction/{region_name}.json`\n- The chosen ML model (given with the -cn argument) will be used to run predictions on each of the images in the created dataset, and save the resulting grey-scale rasters to `results/{region_name}/{checkpoint_name}/rasters`\n- Finally gdal_polygonize is used to create vector geojson layers for batches of data. These layers area written to `results/{region_name}/{checkpoint_name}/vectors`\n\nArguments:\n\n| Argument              | Description                                                                                                                                                                                      | type                       | required | default |     |\n| --------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- | -------- | ------- | --- |\n| -rn --region_name     | region name, often set to the same as the name of the passed region. This name will match the result directory.                                                                                  | string                     | Yes      |\n| -cn --checkpoint_name | name of the trained model used for prediction                                                                                                                                                    | string                     | Yes      |\n| --region              | Polygon or MultiPolygon describing data area with coordinates in same system as defined in config (i.e EPSG:25832), WKT or geojson (geometry) format, directly in a text string or as a filename | WKT, jsontext, or filename | Yes      |\n| -c                    | Data config path                                                                                                                                                                                 | string                     | Yes      |\n| -mb                   | Max batch size for creating mosaic of the predictions                                                                                                                                            | int                        | No       | 200     |\n| -p                    | Whether to skip directly to postprocessing, and not look for needed downloaded data. Typically used if you have already run production of dataset for same area, but with different model        | bool                       | No       | False   |\n| -s                    | Whether to save resulting vectordata to azure or locally. Options as 'local' or 'azure'                                                                                                          | string                     | No       | azure   |\n\nExample:\n\nUnix:\n\n`./kai create_predicted_features_dataset -rn karmoy -cn unet_model --region training_data/karmoy.json -c config/dataset/bygg-no-rules.json`\n\nWindows:\n\n`kai.bat create_predicted_features_dataset -rn karmoy -cn unet_model --region training_data/karmoy.json -c config/dataset/bygg-no-rules.json`\n\n### Create contour vectordata\n\nCreate a contour vector dataset with predicted data from a chosen ML model, on a chosen region.\nThis module will:\n\n- Create a dataset for the given region. Dataset is written to `training_data/created_datasets/for_prediction/{region_name}.json`\n- The chosen ML model (given with the -cn argument) will be used to run predictions on each of the images in the created dataset, and save the resulting grey-scale rasters to `results/{region_name}/{checkpoint_name}/rasters`\n- Finally gdal_countour is used to create a contour geojson layer for the entire region (using a virtual raster layer produced in previous step). This layer is written to `results/{region_name}/{checkpoint_name}/contour`\n\nThe script will download to wanted model from azure if it is not already downloaded, before running prediction.\n\nArguments:\n\n| Argument              | Description                                                                                                                                                                                      | type                                           | required | default                             |     |\n| --------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | -------- | ----------------------------------- | --- |\n| -rn --region_name     | region name, often set to the same as the name of the passed region. This name will match the result directory.                                                                                  | string                                         | Yes      |\n| -cn --checkpoint_name | name of the trained model used for prediction                                                                                                                                                    | string                                         | Yes      |\n| --region              | Polygon or MultiPolygon describing data area with coordinates in same system as defined in config (i.e EPSG:25832), WKT or geojson (geometry) format, directly in a text string or as a filename | WKT, jsontext, or filename                     | Yes      |\n| -c                    | Data config path                                                                                                                                                                                 | string                                         | No       | \"config/dataset/bygg-no-rules.json\" |\n| -mb                   | Max batch size when running predictions                                                                                                                                                          | int                                            | No       | 200                                 |\n| -s                    | Whether to save resulting vectordata to azure or locally. Options as 'local' or 'azure'                                                                                                          | string                                         | No       | azure                               |\n| -l                    | The confidence levels to create contours for.                                                                                                                                                    | string - comma seperated list of float numbers | No       | \"0.3, 0.4, 0.5, 0.6, 0.8, 0.9, 1\"   |\n\nExample:\n\nUnix:\n\n`./kai create_predicted_buildings_contour -rn karmoy -cn unet_model --region training_data/karmoy.json -c config/dataset/bygg-no-rules.json`\n\nWindows:\n\n`kai.bat create_predicted_buildings_contour -rn karmoy -cn unet_model --region training_data/karmoy.json -c config/dataset/bygg-no-rules.json`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkartai%2Fkartai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkartai%2Fkartai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkartai%2Fkartai/lists"}