Smart Pay Toll System (RFID-RC522 + OpenALPR)

My bachelor degree thesis – Proof of concept Smart Pay Toll System

The idea behind this is to prove that the current pay toll systems trough out the world are not reliable as they would be if we implement basic, all-around technology that has been available for quite some time now.

The proof of concept solution is based on three essential components that are enabling us to perform all the necessary actions needed including the most important one, user (vehicle) recognition.

The three components that have been used:

  • Raspberry Pi – microcontroller that runs the Python application to do the magic
  • RFID Reader – recognizing the user by his RFID tag and also triggering the visual recognition process
  • Camera – visually recognizes the license plate of the vehicle using OpenALPR (Automatic License Plate Recognition)


Each highway line would have the module positioned above it
  1. User passes and the RFID scanner collects his unique ID from the RFID tag on the vehicle
  2. RFID tag scanning triggers the visual recognition step
  3. Camera takes a photo of the vehicle where the license plate is readable, ideally the backside of the vehicle
  4. The photo of the vehicle is then processed by ALPR so that the license plate number parameter is extracted
  5. License plate number of the vehicle is then compared with the data in the database using the unique ID from the RFID tag as an index
  6. If the compared data matches then the next step can start which in most cases it would be the payment procedure


On the demo shown below we have an example photo provided to the API and then a visual representation of the result details about the vehicle and also a highlighted area on the image that shows where exactly the license plate was found on the photo.

Ideally we would have the Python app running in the background as well to simulate the whole process so that we see updated results on every page refresh.

Obviously we could not show the RFID scanning process as well but the whole logic behind it is included in the Git repository linked at the beginning of this post.

By Bojan Stojanovski

Lead Software Developer at ComeOn Group Sweden

Leave a Reply

Your email address will not be published. Required fields are marked *