Dharini Baskaran
updating code
f48e15f
|
raw
history blame
2.94 kB
---
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:**
```bash
git clone <this-repo-link>
cd inovonics-ui-vectorizer
```
2. **Install the required Python packages:**
```bash
pip install -r requirements.txt
```
3. **Download the pretrained model:**
- Download `model_final.pth` from [Google Drive here](https://drive.google.com/file/d/1yr64AOgaYZPTcQzG6cxG6lWBENHR9qjW/view?usp=sharing).
- Place it inside:
```plaintext
inovonics-ui-vectorizer/rcnn_model/output/model_final.pth
```
4. **Run the app:**
```bash
streamlit run app.py
```
5. Open your browser at [http://localhost:8501](http://localhost:8501) to start using the app!
---
## Project Structure
```plaintext
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