{"id":20399971,"url":"https://github.com/kitware/danesfield","last_synced_at":"2025-09-11T17:46:17.974Z","repository":{"id":38336416,"uuid":"159841177","full_name":"Kitware/Danesfield","owner":"Kitware","description":"Kitware's system for 3D building reconstruction for the IARPA CORE3D program","archived":false,"fork":false,"pushed_at":"2023-09-27T18:42:08.000Z","size":10232,"stargazers_count":172,"open_issues_count":12,"forks_count":59,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-05-20T05:02:12.385Z","etag":null,"topics":["3d-reconstruction","deep-learning","geospatial-analytics","image-segmentation","satellite-imagery"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Kitware.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-11-30T15:18:02.000Z","updated_at":"2025-05-14T22:04:53.000Z","dependencies_parsed_at":"2024-01-02T14:08:13.816Z","dependency_job_id":"6edd5344-ad8e-4959-9877-d6f8c9484dad","html_url":"https://github.com/Kitware/Danesfield","commit_stats":{"total_commits":935,"total_committers":34,"mean_commits":27.5,"dds":0.7818181818181819,"last_synced_commit":"9918ebc4387439ad3dd854ff1b17d5c3a991992b"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Kitware/Danesfield","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kitware%2FDanesfield","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kitware%2FDanesfield/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kitware%2FDanesfield/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kitware%2FDanesfield/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Kitware","download_url":"https://codeload.github.com/Kitware/Danesfield/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Kitware%2FDanesfield/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274681243,"owners_count":25330235,"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","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["3d-reconstruction","deep-learning","geospatial-analytics","image-segmentation","satellite-imagery"],"created_at":"2024-11-15T04:35:37.748Z","updated_at":"2025-09-11T17:46:17.916Z","avatar_url":"https://github.com/Kitware.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"==========\nDanesfield\n==========\n\nThis repository addresses the algorithmic challenges of the IARPA CORE3D\nprogram.  The goal of this software is to reconstruct semantically meaningful\n3D models of buildings and other man-made structures from satellite imagery.\n\n.. image:: danesfield_system_graphic.png\n    :align: center\n    :alt: The Danesfield system performs 3D reconstruction from satellite imagery\n\nThis software is designed to process multiple view satellite imagery and is\ncurrently configured to process collections of panchromatic and multispectral\nWorldView3 imagery such as the examples provided in the public\n`CORE3D Dataset \u003chttps://spacenet.ai/core3d/\u003e`_.\nThe algorithms were described in a **Best Paper** awarding winning paper at\nEarthVision_ 2019:\n\n    M. Leotta, C. Long, B. Jacquet, M. Zins, D. Lipsa, J. Shan, B. Xu, Z. Li,\n    X. Zhang, S. Chang, M. Purri, J. Xue, and K. Dana,\n    \"`Urban Semantic 3D Reconstruction From Multiview Satellite Imagery`__,\"\n    in The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)\n    Workshops: EarthVision, 2019.\n\nThe Danesfield project has evolved since this publication.\nFor details, see `Project History`_.\n\nThis repository contains the algorithms to solve the CORE3D problem, but a\nweb-based user interface and cloud-based processing infrastructure are provided\nin the `girder/Danesfield repo \u003chttps://github.com/girder/Danesfield\u003e`_.\nAdditionally, an older version of the web app may be found at \n`Kitware/Danesfield-App \u003chttps://github.com/Kitware/Danesfield-App\u003e`_.\nThe algorithms in this repository\nare written in Python or provide a Python interface.\n\n\nGetting Started\n===============\n\nClone repository\n----------------\n\nClone this repository with its sub-modules by running:\n\n.. code-block::\n\n    git clone --recursive git@github.com:Kitware/Danesfield.git\n\nTo fetch the latest version of this repository and its sub-modules, run:\n\n.. code-block::\n\n    git pull\n    git submodule update --init --recursive\n\nCreate Conda environment\n------------------------\n\nThe first step in running or developing Danesfield code is to obtain the\ncorrect development environment.  The Danesfield algorithms require a number of\ndependencies on geospatial and computer vision libraries.  Provided with this\nrepository are instructions for configuring a development environment with\nConda.  Conda provides a consistent development environment with a known\nconfiguration of dependencies versions.  Follow the directions in\n`\u003cdeployment/conda/README.rst\u003e`_ to setup this environment.\n\nDocker image\n------------\n\nThis repository has also been built into a Docker image, which\nincludes the required conda environment.  The image is available from\nDocker Hub at `\u003chttps://hub.docker.com/r/kitware/danesfield\u003e`_ and can\nbe pulled down by running ``docker pull kitware/danesfield``.  The\nimage was built using the Dockerfile included in this repository.\n\nAs some of the Danesfield algorithms require a GPU, you'll need to\nhave `NVIDIA Docker \u003chttps://github.com/NVIDIA/nvidia-docker\u003e`_\ninstalled, and use the ``nvidia-docker`` command when running the\nimage.\n\nProject Layout\n==============\n\nThe Danesfield project is organized as follows:\n\n- `\u003cdanesfield\u003e`_: directory where the Danesfield algorithmic modules\n  live.\n- `\u003ctools\u003e`_: directory with command line tools to execute\n  the Danesfield algorithms.\n\nRun Danesfield CLI\n==================\n\nThe Danesfield pipeline can be run from a command line using\n`tools/run_danesfield.py` and constructing a danesfield\nconfiguration file based on the example in `\u003cinput.ini\u003e`_.\n\nIf running via the docker container, first ensure you have the latest\ndanesfield docker image and nvidia-docker.  Use ``nvidia-docker``\nto start a bash session inside the container:\n\n.. code-block::\n\n    nvidia-docker run -it --rm --gpus all --shm-size 8G\\\n     -v /$DATA:/mnt kitware/danesfield /bin/bash\n\nwhere ``$DATA`` is a path on the host to data directory containing your input\nimagery or point cloud and input.ini.  This host directory is mounted inside\nthe container at ``/mnt`` in the above command.\n\nOnce the environment is set up, you can execute a pipeline to process either\nmultiple satellite images or start with a geospatial point cloud.\nTo execute a pipeline with a point cloud, run\n\n.. code-block::\n\n   docker run --rm --gpus all -it -v ~/projects/danesfield:/root/danesfield -v ~/data/run_danesfield/:/root/run_danesfield kitware/danesfield 'LOGLEVEL=DEBUG python /root/danesfield//danesfield/tools/run_danesfield.py /root/run_danesfield/wrk/input.ini' \u003e output_pointcloud.txt 2\u003e\u00261\n\n\nNote: `\u003cinput.ini\u003e`_ should contain a valid point cloud path via ``p3d_fpath``.\n\nTo execute a pipeline with a set of satellite images, run\n\n.. code-block::\n\n    docker run --rm --gpus all -it -v ~/projects/danesfield:/root/danesfield -v ~/data/run_danesfield/:/root/run_danesfield kitware/danesfield 'LOGLEVEL=DEBUG python /root/danesfield/danesfield/tools/run_danesfield.py --image /root/run_danesfield/imageful/imageful.ini' \u003e\u003e output_image.txt 2\u003e\u00261\n\nNote: `\u003cinput.ini\u003e`_ should contain a valid path to imagery via ``imagery_dir``.\n\nSee comments in `\u003cinput.ini\u003e`_ for each configuration option.\nTo see more options on runnning danesfield pipeline, execute\n\n.. code-block::\n\n    python run_danesfield.py -h\n\nwhere notable options are\n\n- ``--image``: run pipeline with image data as the source; default uses a point cloud\n\n- ``--roads``: get roads from open street maps; default extracts no roads\n\n- ``--vissat``: run VisSat stereo pipeline using satellite imagery\n\n- ``--run_metrics``: run evaluation metrics; requires ground truth for DSM, DTM, etc.\n\nMinimum Harware Requirements\n----------------------------\n\nDanesfield runs a variety of processing steps, some of which take advantage of\nmultiple CPU cores and GPUs to accelerate processing large data sets.\nAt a minimum Danesfield requires:\n\n- 12GB RAM, 16GB preferred\n- a modern CPU preferably multi-core\n- a modern Nvidia GPU with 8GB of GPU RAM, 16GB preferred\n\nProject History\n===============\n\nThe Danesfield project is named for Danesfield House in\nBuckinghamshire, England.  This location was the center of `Allied\nimage intelligence \u003chttps://en.wikipedia.org/wiki/RAF_Medmenham\u003e`_\nduring World War II.  During the war, analysts use multiple\noverhead images to physically build 3D models of important sites.\n\nInitial work on this project was funded by the\n`IARPA CORE3D \u003chttps://www.iarpa.gov/index.php/research-programs/core3d\u003e`_\nprogram in 2017 and 2018.\nThe results of this initial work were presented at EarthVision_ 2019.\nAt the time of this publication, Danesfield included a dependency on\nproprietary software developed by Raytheon.\nThe Raytheon P3D software was used to extract point clouds from satellite\nimages and bundle adjust RPC camera models.\nThis dependency limited the use Danesfield to users with a license for\nthe Raytheon P3D.\n\nSince the initial CORE3D work, we have extended Danesfield in a few ways.\nFirst, we have since integrated VisSat_ as an open source alternative to P3D\nto allow for an end-to-end open source pipeline.\nNote that while VisSat works as a replacement to P3D, several downstream\nalgorithms were trained on, or had parameters tuned for, P3D data.\nSo results produced with VisSat instead of P3D may not achieve the\nsame results as published.\n\nSecond, we have started to explore other input data in addition to WorldView 3.\nWe have generalized the pipeline to allow processing a geospatial point cloud\ndirectly. This allows Danesfield to run on Lidar or other sources of point\nclouds. We are also exploring other options, such as integrating the\n`TeleSculptor \u003chttps://telesculptor.org/\u003e`_ project to extract the point\ncloud from aerial video sources.\n\nThird, we are adding open source tools to convert the meshes produced by\nDanesfield into the `3D Tiles \u003chttps://www.ogc.org/standards/3DTiles/\u003e`_\nformat for more efficient transmission over the web.\n\n\n.. _EarthVision: http://www.classic.grss-ieee.org/earthvision2019/\n.. _EarthVisionPaper: http://openaccess.thecvf.com/content_CVPRW_2019/html/EarthVision/Leotta_Urban_Semantic_3D_Reconstruction_From_Multiview_Satellite_Imagery_CVPRW_2019_paper.html\n__ EarthVisionPaper_\n.. _VisSat: https://github.com/Kai-46/VisSatSatelliteStereo\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitware%2Fdanesfield","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitware%2Fdanesfield","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitware%2Fdanesfield/lists"}