-
-
Tracks each inspection stage and summarizes alignment status, detected changes, and uncertainty.
-
An interactive interface for comparing reference and test images.
-
Aligning images despite rotation, translation, and perspective differences.
-
Identifying and marking regions where visual differences occur.
-
Showing alignment decisions, comparison metrics, uncertainty, and structured reports.
-
Combining color difference, edge detection, and structural similarity to identify visual changes.
-
Tracks alignment decisions, comparison results, and uncertainty.
-
Highlighting changed regions using multiple computer vision techniques.
Inspiration
Visual inspection is important in manufacturing, document comparison, and infrastructure monitoring, but manually comparing images can be time-consuming. Small changes can be overlooked, and image misalignment, lighting variations, and noise can make comparisons difficult. This inspired us to build InspectAI, a computer-vision tool that makes image differences easier to analyze and understand.
What We Built
InspectAI compares a reference image with a test image using a multi-stage alignment pipeline and three complementary comparison methods: Lab color difference, Canny edge analysis, and Structural Similarity Index (SSIM).
It localizes changed regions using bounding boxes and provides visual evidence through heatmaps, masks, and interactive comparison views. It also records the inspection steps, decisions, evidence, and uncertainties in an agent trace and exports a structured JSON report.
How We Built It
We built InspectAI using Python, OpenCV, NumPy, and Streamlit. OpenCV handles image alignment and computer-vision operations, NumPy supports numerical analysis, and Streamlit provides the interactive interface.
The alignment pipeline evaluates different transformation candidates and records whether they are accepted, rejected, or ambiguous. Rather than silently choosing an uncertain alignment, InspectAI makes the decision and its supporting evidence visible to the user.
We also developed synthetic image pairs and automated tests to check behaviours such as image rotation, translation, perspective changes, lighting variations, and localized patches.
Challenges We Faced
One of our main challenges was distinguishing meaningful image differences from changes caused by lighting, noise, or misalignment. We addressed this by combining multiple comparison methods and inspecting alignment before analyzing the final differences.
Another challenge was handling ambiguous cases, particularly repetitive textures where multiple alignments may appear plausible. Instead of always forcing a correction, InspectAI records uncertainty and preserves rejected or ambiguous candidates for review.
We also worked to make the results explainable through visual overlays, region measurements, agent traces, and structured reports.
What We Learned
Building InspectAI helped us understand how image registration, colour-difference analysis, edge detection, and structural similarity can work together in a visual inspection pipeline. We also learned the importance of testing difficult cases, documenting uncertainty, and avoiding conclusions that the available evidence cannot support.
InspectAI is currently a local prototype, not a deployed production system. It highlights and measures visual changes but does not independently confirm defects or determine whether a change is meaningful. Our next steps are to evaluate its accuracy, runtime, and robustness on varied images and further develop observation-driven inspection capabilities.
Log in or sign up for Devpost to join the conversation.