Specularity Removal for Robust Road Detection — Real-Time Vision on Embedded Hardware
Robust real-time road detection underpins both autonomous transport and driver-assistance systems, and many state-of-the-art approaches classify pixels in an illuminant-invariant feature space. That space, though, rests on an assumption that quietly breaks in the real world: deriving the illuminant-invariant image from RGB assumes the road is a Lambertian surface. Specular reflection of sunlight off the road — an everyday daytime occurrence — violates that assumption, so illuminant-invariant methods fail on exactly the road regions where specularities appear. White lane markings pose a second, related problem: they aren't part of the road model, so those same algorithms don't classify them as road either. This work, my Master's thesis, targets both failure modes at once.
The core contribution is a specularity detection and removal method designed specifically for road detection, which as a side effect inherently eliminates the white markings that otherwise confuse the classifier. By handling specular reflections before the illuminant-invariant step, the method restores road pixels the baseline would have dropped — and the results show a clear accuracy improvement in the presence of specular reflection, precisely the condition where prior methods degrade.
Accuracy alone wasn't the bar, though. For this to matter in a vehicle, it has to run in real time on low-power mobile hardware, so a large part of the work was hands-on implementation rather than algorithm design in isolation. I implemented the method with OpenCV and deployed it on two low-power development boards — the BeagleBone Black and the Raspberry Pi 2 — ultimately favouring the Pi 2 for its four cores, which let me parallelize the pipeline across them. Running the full detection loop in real time on that hardware served as a proof of concept that the approach is viable on the kind of embedded platform a real driver-assistance system would actually ship on.