How Engineering helped swapping 20k license plates

Andy Huber
Voi Engineering
Published in
4 min readMar 6, 2020

Have you ever changed 20 000 license plates in three days?

We just did. To comply with German regulations, we had to swap the license plate of all our German scooters within three days.

This process is very labor-intensive, and we knew that we could help our warehouse teams in the different cities to speed up this process, and the result was more than astonishing.

What had to be done

Unfortunately, it’s more work than just taking off the old license plate and sticking on a new one. That would have been too easy, right?

We needed to be able to keep track of which scooter held which license plate.
To begin with, we had to write down the vehicle serial number, the scooter id, the old license plate, and finally, scraping off the old plate. To finish off one scooter, we had to stick on a new license plate and add that data to the previously noted numbers.

That process would have taken our warehouse staff countless hours. We estimated that registering a scooter with new and old plates would take 2 min.

20 000 * 2 min = 40 000 min = 666 man-hours

2020 license plate and Scooter Id

How we solved it

Besides the sheer amount of time needed, there was also the factor of human error while trying to read all the tiny numbers and typing them into a spreadsheet.

We, as engineers, knew that we have technology at hand that removes the human error factor and saves a vast amount of time in getting those numbers into a spreadsheet.

We started playing around with a couple of different image recognition services to see which one was giving us the best result in different light situations. Quite fast, we concluded that we were going to use Google’s image recognition algorithm and build it into an iOS App written in Swift.

Furthermore, we realized that we couldn’t expect the staff to scan all three numbers in the same order. So we came up with a mechanism that allowed us to use the camera continually, and the staff was able to scan the codes in whatever order they wanted and give them haptic feedback, so they could work without looking at their screen.

Since we haven’t had time to build a backend service to handle all the scanned data, we decided to use a Google Form that accepts our Post requests and adds them directly into a shared spreadsheet.

All the above efforts helped us to reduce the time it takes to get the data of one scooter into a spreadsheet from 2 minutes to 20 seconds. Thanks to our iOS App, we saved approximately 500 man-hours.

20 000 * 0,3 min = 6000 min = 100 man-hours

What was the challenge

The biggest challenge we were facing beside the very tight deadline was that we got a few wrong readings from the image recognition algorithm. It was especially hard to improve it since we had no physical license plate in our HQ, and we were working with only one perfectly clean scooter. Thanks to changing the way we are scanning from a single photo to continuous mode and using the number occurring the most in multiple scans, we were able to improve it drastically.

One of the challenges — Dirty vehicle serial number

How did the license plate swap turn out

We did it!!!

The whole swapping process went exceedingly smooth besides some hiccups with minor image recognition faults that we were able to fix manually.

Thank’s to the app, we were able to set up a nice workflow in the warehouses, having some people dedicated to scanning the different numbers and then pass on the scooter to the next person that changes the license plate.

Our German staff was extremely pleased with the app and decided to continually use our scanner app to provision new scooters coming into the warehouse.

Screenshot of our final iOS App version

Big thanks to everyone involved in the swapping of all license plates.

It was amazing to see how everyone involved in this project was working so well together and made sure that we were able to pull it off in time.

iOS Leap application in action — Berlin Warehouse
iOS Leap application in action — Germany

--

--