Project
VisualAI Lab
A custom-trained object detection system built to identify IT equipment and everyday tech gear,
paired with an interactive AI dashboard for visualizing results.
๐ธ
Upload
User selects image
๐ก
POST /detect
FastAPI receives file
๐ง
YOLOv8
Model runs inference
๐ฆ
JSON
Returns detections
๐จ
Canvas
Draws overlay
{
"detections": [
{
"label": "laptop",
"confidence": 0.94,
"box": {
"x": 120, "y": 80,
"width": 420, "height": 260
}
},
{
"label": "ethernet_cable",
"confidence": 0.87,
"box": { "x": 540, "y": 320, "width": 180, "height": 60 }
}
],
"image_size": { "width": 1280, "height": 960 }
}
Tech Stack
Training (Local GPU)
- Python + PyTorch
- Ultralytics YOLO
- CUDA acceleration
- Label Studio (annotation)
- Export โ ONNX
Backend API
- FastAPI
- Ultralytics / ONNX Runtime
- SQLite (history)
- Uvicorn ASGI server
- Nginx reverse proxy
Frontend
- Plain HTML / CSS / JS
- Canvas API (bounding boxes)
- Fetch API (image upload)
- CSS Grid + Flexbox
- Space Grotesk font
Infrastructure
- VPS (cloud server)
- Nginx static + proxy
- systemd service
- Domain: techdetector.errolvogt.ca
laptop
keyboard
mouse
monitor
ethernet_cable
usb_adapter
power_brick
access_point
Model trained on personal photos. 50โ100 images per class, multiple angles, backgrounds, and lighting conditions.
โ v1 โ Complete
- โ Image upload + detection
- โ Bounding box canvas overlay
- โ Confidence scores panel
- โ SQLite detection history
- โ Analytics dashboard
โ v2 โ Planned
- โป Webcam live detection
- โป Three.js 3D detection cloud
- โป Drag-and-drop result gallery
- โป Export results as JSON
- โป Browser-side inference (WebGPU)
โ Try It Now