How I replicated an $86 million project in 57 lines of code

Using open source technology is a no-brainer.My solutionAt a high level, my solution takes an image from a dashcam video, pumps it through an open source license plate recognition system installed locally on the device, queries the registration check service, and then returns the results for display.The data returned to the device installed in the law enforcement vehicle includes the vehicle’s make and model (which it only uses to verify whether the plates have been stolen), the registration status, and any notifications of the vehicle being reported stolen.If that sounds rather simple, it’s because it really is..For example, the image processing can all be handled by the openalpr library.This is really all that’s involved to recognize the characters on a license plate:A Minor CaveatPublic access to the VicRoads APIs is not available, so license plate checks occur via web scraping for this prototype..While generally frowned upon — this is a proof of concept and I’m not slamming anyone’s servers.Here’s what the dirtiness of my proof-of-concept scraping looks like:ResultsI must say I was pleasantly surprised.I expected the open source license plate recognition to be pretty rubbish..Additionally, the image recognition algorithms are probably not optimised for Australian license plates.The solution was able to recognise license plates in a wide field of view.Annotations added for effect..Number plate identified despite reflections and lens distortion.Although, the solution would occasionally have issues with particular letters.Incorrect reading of plate, mistook the M for an HBut … the solution would eventually get them correct.A few frames later, the M is correctly identified and at a higher confidence ratingAs you can see in the above two images, processing the image a couple of frames later jumped from a confidence rating of 87% to a hair over 91%.I’m confident, pardon the pun, that the accuracy could be improved by increasing the sample rate, and then sorting by the highest confidence rating..Alternatively a threshold could be set that only accepts a confidence of greater than 90% before going on to validate the registration number.Those are very straight forward code-first fixes, and don’t preclude the training of the license plate recognition software with a local data set.The $86,000,000 QuestionTo be fair, I have absolutely no clue what the $86M figure includes — nor can I speak to the accuracy of my open source tool with no localized training vs..the pilot BlueNet system.I would expect part of that budget includes the replacement of several legacy databases and software applications to support the high frequency, low latency querying of license plates several times per second, per vehicle.On the other hand, the cost of ~$391k per vehicle seems pretty rich — especially if the BlueNet isn’t particularly accurate and there are no large scale IT projects to decommission or upgrade dependent systems.Future ApplicationsWhile it’s easy to get caught up in the Orwellian nature of an “always on” network of license plate snitchers, there are many positive applications of this technology..Imagine a passive system scanning fellow motorists for an abductors car that automatically alerts authorities and family members to their current location and direction.Teslas vehicles are already brimming with cameras and sensors with the ability to receive OTA updates — imagine turning these into a fleet of virtual good samaritans..Ubers and Lyft drivers could also be outfitted with these devices to dramatically increase the coverage area.Using open source technology and existing components, it seems possible to offer a solution that provides a much higher rate of return — for an investment much less than $86M.Part 2 — I’ve published an update, in which I test with my own footage and catch an unregistered vehicle, over here:Remember that $86 million license plate scanner I replicated?.Here’s what happened next.Successes, failures, and catching one very naughty More details

Leave a Reply