Back to Projects

Neon Sign Generator

Computer vision system that converts sketches and logos into photorealistic neon sign visualizations with automated price estimation for a real client.

July 1, 2022
Computer VisionOpenCVPythonRANSAC

Overview

Second-year group project at Universiteit van Amsterdam, built for Your Neon — a company that creates custom neon LED signs. The client's problem: customers would submit sketch requests, the client would spend hours manually designing neon signs and calculating prices, only for many customers to back out after seeing the cost. We automated both the visualization and price estimation.

Application GUI

How It Works

Given an input image (logo, text, or sketch) and a desired width, the system:

  1. Preprocessing: Greyscale conversion and adaptive thresholding to isolate the salient image object from background noise
  2. Edge/Skeleton Extraction: Two modes depending on the design type:
    • Contour mode: Traces the outer edges of the design (for outlined signs)
    • Skeleton mode: Extracts the centerline through the design (for filled shapes)
  3. Length Measurement: Converts the pixel-wide tracing to real-world meters using the customer's specified width
  4. Price Estimation: Feeds the length into the client's pricing formula (LED strip cost, packaging, shipping, materials)
  5. Neon Visualization: Renders a photorealistic glowing neon effect over the extracted edges

Ajax Logo — Original, Skeleton Trace, and Contour Trace with Price Estimates

Price Model

We initially attempted a neural network for length-to-price estimation but lacked sufficient training data. Instead, we fitted separate RANSAC linear regression models for contour and skeleton images, which significantly outperformed least-squares regression by handling outliers in the client's historical pricing data.

RANSAC vs Least Squares Price Regression

Technologies

Python, OpenCV, Canny Edge Detection, RANSAC, Linear Regression, Tkinter GUI