Dharini Baskaran
updating code
f48e15f
|
raw
history blame
2.94 kB
metadata
title: 2D Floorplan Vectorizer
emoji: πŸ–ŒοΈ
colorFrom: blue
colorTo: green
sdk: docker
app_file: Dockerfile
pinned: false

2D Floorplan Vectorizer

A Streamlit web app that allows you to upload 2D floorplan images and automatically vectorize them into COCO-style annotations using a trained Mask R-CNN model.


How to Run the App

  1. Clone the repository:

    git clone <this-repo-link>
    cd inovonics-ui-vectorizer
    
  2. Install the required Python packages:

    pip install -r requirements.txt
    
  3. Download the pretrained model:

    • Download model_final.pth from Google Drive here.

    • Place it inside:

      inovonics-ui-vectorizer/rcnn_model/output/model_final.pth
      
  4. Run the app:

    streamlit run app.py
    
  5. Open your browser at http://localhost:8501 to start using the app!


Project Structure

inovonics-ui-vectorizer/
β”œβ”€β”€ app.py                     # Streamlit frontend app
β”œβ”€β”€ public/
β”‚   └── logo.png                # App logo
β”œβ”€β”€ rcnn_model/
β”‚   β”œβ”€β”€ extraction/             # Extract information from uploaded png image
β”‚   β”‚   └── annotation_builder.py      
β”‚   β”‚   └── floorplan_sampler.py
β”‚   β”‚   └── from_labelme_runner.py
β”‚   β”‚   └── svg_to_json.py   
β”‚   β”œβ”€β”€ output/                 # Empty folder while cloning. Place the pth file here
β”‚   β”œβ”€β”€ preprocessing/          # Preprocess the image before sending to model
β”‚   β”‚   └── cleaning_images.py  
β”‚   β”‚   └── cleaning_single_image.py 
β”‚   β”‚   └── splitting_dataset.py
β”‚   β”‚   └── svg_to_yolo.py    
β”‚   β”œβ”€β”€ results/                # Empty folder while cloning. The resulting image and JSON will be stored here
β”‚   β”œβ”€β”€ sample/                 # Sample images for the model       
β”‚   β”œβ”€β”€ scripts/                # Model training, evaluation and inference. Streamlit runs the rcnn_run.py file from the frontend
β”‚   β”‚   └── rcnn_config.py    
β”‚   β”‚   └── rcnn_eval.py  
β”‚   β”‚   └── rcnn_full_tuner.py 
β”‚   β”‚   └── rcnn_run.py  
β”‚   β”‚   └── rcnn_train.py     
β”‚   β”œβ”€β”€ uploads/                # Temporary folder for streamlit to store the user uploaded image
β”‚   β”œβ”€β”€ utils/                  # Utility functions during model train and preprocessing
β”‚   β”‚   └── coco_to_inovonics_json.py
β”‚   β”‚   └── floorplan_vectorizer_utils.py
β”‚   β”‚   └── inovonics_ann_builder.py
β”œβ”€β”€ README.md                   # (this file)
β”œβ”€β”€ requirements.txt            # Python dependencies
└── .gitignore                  # Files to ignore during Git commits