Executive Summary: Project done in early 2025 by four students of IP-Paris/M2 DataScience for VINCI-ENERGIES/DIANE aiming to detect rooms in AutoCAD floor plans in GeoJSON format.
Capstone ContourDetection is a project developed by four M2 Data Science students at IP-Paris in for VINCI-ENERGY/DIANE as part of their academic studies. The goal of this project is to leverage automatic techniques to detect rooms in AutoCAD floor plans, providing an efficient and automated solution for architectural analysis and further work. Floors plans are exported as GeoJSON files.
- Room Detection: Automatically identifies rooms in AutoCAD floor plans in GeoJSON format.
- High Accuracy: Utilizes state-of-the-art computer vision models for precise detection on top of robust geometric preprocessing.
- Scalable: Designed to handle large and complex floor plans.
- User-Friendly: Outputs results in a portable format.
To get started with Capstone ContourDetection, follow these steps:
-
Clone the repository:
git clone https://github.com/your-repo/CapstoneContour.git cd CapstoneContour -
Install the required dependencies:
pip install -r requirements.txt
Alternatively, you can use
condato create an environment and install dependencies (recommended):conda env create --name capstone_env --file=environment.yml conda activate capstone_env
-
Consult the
Howtonotebook for examples.
The classical pipeline follow these steps:
- A floor plan is exported to GeoJSON format.
- The GeoJSON plan is loaded into memory as a
shapely.GeometryCollection. - One of the three models from folder
models/computes the contours of the rooms.SegmentBasedClusteringuses only geometric computation.CapstoneVisionSegmentationrelies on CV2 contour detection.SAMSegmentationuses the famous SAM model on GPU.
- The contours are saved back as a GeoJSON file for further use in AutoCAD.
The three models share common steps as illustrated bellow, and use utility functions from the utils/ folder.

The plans can be pretty complex:

Project is closed. Feel free to contact VINCI/DIANE for further details.
This project is licensed under the MIT License. See the LICENSE file for details.


