Executive Summary
Real Estate Photo Quality Assessment is a production-oriented computer vision system designed to automatically evaluate the visual quality of real estate photographs before publication.
Rather than relying solely on image classification, the application combines multi-label defect detection, deterministic business scoring and LLM-generated recommendations to transform raw predictions into actionable quality reports for real estate professionals.
The project explores how computer vision models can be integrated into production systems where explainability, maintainability and business rules are as important as model accuracy.
Engineering Challenges Solved
- Computer Vision Pipeline
- Multi-Label Classification
- Dataset Engineering
- Synthetic Data Generation
- Transfer Learning
- Business Rule Scoring
- Explainable AI Outputs
- Production Inference API
Problem
The quality of property photos has a direct impact on buyer engagement and listing performance. However, reviewing thousands of images manually is subjective, inconsistent and difficult to scale.
While detecting visual defects with a neural network is relatively straightforward, production systems require much more than image classification. Predictions must be translated into meaningful business decisions, remain explainable to users and generate actionable feedback instead of raw probabilities.
Building such a system requires combining computer vision, deterministic business logic and natural language generation into a single production pipeline.
Why This Problem Matters
Computer vision models rarely operate in isolation.
Real-world applications require reliable data pipelines, reproducible training processes, explainable predictions and business rules that evolve independently from machine learning models.
The challenge therefore shifts from training a classifier to engineering an end-to-end system capable of producing trustworthy and actionable results.
System Architecture

Technology Stack
- Python
- FastAPI
- PyTorch
- TorchVision
- Pillow
- Groq (Llama 3.3)
- Docker
- React
Key Engineering Decisions
Separate Detection from Business Decisions
The computer vision model is responsible only for detecting visual defects.
Quality scoring is intentionally implemented as a deterministic business layer, allowing scoring policies to evolve independently from model training.
This separation improves explainability while keeping business rules transparent, testable and easy to evolve.
Engineer the Dataset Instead of Waiting for Data
Building supervised vision systems requires annotated datasets that are often unavailable.
To accelerate experimentation, the project includes a synthetic dataset generation pipeline capable of automatically applying realistic visual defects such as blur, poor lighting and framing issues to clean property images.
This approach enables reproducible training while significantly reducing manual annotation effort.
Favor Simplicity Over Model Complexity
Given the relatively small dataset, the objective was not to maximize model size but to maximize generalization.
A lightweight transfer-learning approach based on ResNet18 provides an effective balance between inference speed, training efficiency and overfitting risk compared with significantly larger architectures.
Combine Computer Vision with Natural Language Feedback
Raw predictions are difficult for end users to interpret.
Instead of exposing probabilities, detected issues are converted into structured quality scores before being passed to an LLM that generates concise improvement recommendations.
This architecture transforms technical model outputs into practical guidance without coupling business logic to the language model.
Computer Vision Pipeline
Rather than treating image quality assessment as a single prediction task, the application decomposes the workflow into specialized stages responsible for image preprocessing, defect detection, deterministic scoring and recommendation generation.
Machine learning remains focused on perception, while business rules and LLMs handle interpretation and communication.
The result is a modular pipeline where each component can evolve independently without impacting the others.
Trade-offs
Synthetic dataset generation accelerates experimentation and enables reproducible annotations, but it cannot fully reproduce the variability of real-world photography.
Similarly, deterministic business scoring sacrifices some flexibility compared with end-to-end learned scoring, yet provides complete explainability, easier maintenance and greater control over quality policies.
Production Considerations
The system was designed with production deployment as a primary objective.
Key architectural concerns include:
- transfer learning for efficient training;
- deterministic business scoring;
- synthetic dataset generation;
- reproducible preprocessing pipeline;
- model inference through FastAPI;
- LLM-powered recommendation generation;
- separation between machine learning and business logic;
- containerized deployment with Docker.
These decisions ensure that model evolution remains independent from application behavior while keeping predictions transparent and maintainable.
Results
The project demonstrates how computer vision models become production systems once dataset engineering, inference pipelines, business rules and user-facing recommendations are integrated into the architecture.
Rather than producing isolated predictions, the application delivers complete quality assessments that combine visual defect detection, objective scoring and actionable recommendations within a single workflow.
Metrics Tracked
- Multi-Label Classification Accuracy
- Training Loss
- Inference Latency
- Quality Score Distribution
- Defect Detection Frequency
- API Response Time
- LLM Generation Latency
- End-to-End Prediction Time
What I Learned
Training a computer vision model is only one part of building an AI application.
The real engineering challenge lies in designing the surrounding system: creating reliable datasets, separating perception from business logic, ensuring explainability and transforming model predictions into information that users can confidently act upon.
This project reinforced the idea that production machine learning systems are defined as much by their software architecture as by the models they deploy.
Future Directions
- Larger real-world annotated dataset
- Advanced data augmentation
- Validation and early stopping
- Context-aware room type modeling
- Automatic room type detection
- Model explainability with Grad-CAM
- ONNX model optimization
- Batch inference pipeline