Project / 01
Research Engineering / Computer Vision Backend / Bachelor's FYP - Early 2025
Floor Plan GNN Parser
A FastAPI and TypeScript implementation of a floor plan parsing research paper.
For my bachelor's final year project, I built a FastAPI backend and TypeScript interface for floor plan line segment classification. Users can upload a floor plan and view the output of the processing steps.
Explore the repositoryHow it works
- 01image
- 02segments
- 03graph
- 04objects
- 05classes
What is included
This page covers the software built around the research pipeline. The project follows an existing paper and does not claim a new model. The code separates preprocessing, graph construction, YOLOv11 object segmentation, GNN classification, API delivery, and browser visualisation.
- E1The public repository contains both the FastAPI backend and TypeScript interface.
- E2The implementation names the research paper that informed the graph pipeline.
- E3YOLOv11 object segmentation and GNN line classification are separate steps.
The challenge
What the project needed to do.
A floor plan passes through image preprocessing, line extraction, graph construction, YOLOv11 object segmentation, and GNN classification. I needed to keep those steps separate enough to test and debug while exposing them through one application.
How I built it
Break the work into small, testable steps.
01
Read the paper 'Parsing Line Segments of Floor Plan Images Using Graph Neural Networks' and listed each processing step.
02
Separated image preprocessing, graph construction, YOLOv11 object segmentation, and line segment classification in the backend.
03
Exposed the processing steps through FastAPI and built a TypeScript interface for uploads and visualisation.
04
Displayed intermediate output so I could test and debug each step.
Result
What I finished.
The repository contains a working research prototype with a FastAPI backend and TypeScript frontend. Its processing steps are separated in code so the pipeline is easier to test and debug.
What I learned
This project taught me to break unfamiliar research into small steps with clear interfaces and visible intermediate output.