Reading text or plate numbers from an RTSP camera in a flow: what do you use?

Hi all. I am curious how people here get text or numbers out of a camera feed inside Node-RED.

The use cases I keep hearing about: a number on an old machine display, a plate at a gate or car park, a label on a box.

What I have seen so far:

  • grab a snapshot with an http request or ffmpeg, then call Tesseract or another OCR service
    • send the snapshot to a cloud AI and parse the answer
    • run a separate program and push the result into Node-RED over MQTT
      Questions:
  • What do you use, and does it run fully local?
    • How do you deal with a bad picture (glare, night, blur)? Do you fix it at the camera or in software?
    • How often do you grab a frame, and how do you stop reading the same thing twice?
      Disclosure so nobody is surprised: I make a Windows program called VisuDock Live OCR that reads text and plates from camera feeds, so I am biased. I am not selling anything here. I just want to learn what real setups look like and what is annoying about them.

Thanks!

I did, several years ago, some experimental stuff running a Python script using cv2 & MobileNetSSD (cv2.dnn.readNetFromCaffe("MobileNetSSD_lpr.prototxt","lpr.caffemodel")

It worked ok but since I do not really need such a solution I stopped looking further. I expect that today you should have much better libraries, models and computer power available. From the perspective of object detection I think YOLO is totally outstanding compared to the rest. It should however run on a computer with lot of GPU power (i.e. Nvidia). If there are already made models for license plates I do not know

Thanks for the reply, that is useful. YOLO is a good fit for finding the plate in the picture. One thing to keep in mind: it only gives you a box around the plate, not the characters. You still need a second step that reads the letters from the cropped box, for example a small OCR model, or Tesseract limited to capital letters and digits.

Plate detectors are usually small models, so for a single gate camera a big Nvidia card is often not needed if you only look at a frame every few hundred milliseconds.

Out of curiosity, did your old script read the characters as well, or did it only find the plate?

Yes, I had a table with allowed LP's that it checked