1
$\begingroup$

We are working on a computer vision project where an automated robotic system will be deployed on a 3-lane highway.

We are using a bosch IP camera (I don't remember the model exactly, but it cost around $ 1k). The video resolution is 1920 by 1080 @ 60 FPS.

The problem is our LP (license plate) detector is really struggling to read the license plates. I have attached a sample frame from the video that we extracted from the IP camera.

enter image description here original pasteboard image link

If we cannot get this camera to provide the necessary resolution, how can we determine which cameras with a simple interfacing option (RTSP or streaming option) are optimized for text-based detection? I suspect due to compression the text quality is getting somewhat deteriorated. Our detector can run at 30 FPS max. so anything with >= 30 FPS and good resolution (especially text) would be an option. (I do bufferless processing, so yes my model only processes half the frames at a time. But, I can configure my detector to run at different FPS, the thing is I can't go lower than 30 FPS for a camera.)

Our budget is around (USD 1k to 2k) for the camera.

I'm open to any suggestion (maybe using a different setup, optimizing the current camera itself) from the experts in the field.

$\endgroup$
2
  • 1
    $\begingroup$ It might be worth trying Hardware Recommendations when you're ready, and Signal Processing might be able to help with the image processing side (extracting more information from the data you have). If you ask questions there, feel free to link back here and link here to there so people on each site can see the other options you are pursuing and verify that the different questions (tailored to each site) aren't duplicates of each other. $\endgroup$
    – Mark Booth
    May 12 '20 at 11:41
  • 1
    $\begingroup$ That's Ok, always happy to have new experts join us. Machine learning is gaining traction in the robotics space, so having a machine learning expert join the site is very timely. $\endgroup$
    – Mark Booth
    May 12 '20 at 11:45
1
$\begingroup$

I think your big problem is that in the worst case, the characters on your number plates are only a few pixels wide, and the script really doesn't look ideal for OCR anyway.

Camera resolution

By my calculations, at the top of each frame the resolution is around 6mm/pixel (assuming a 7m wide highway which is 1200 pixels wide at that point in the image).

A higher resolution camera sensor might help, but you may be limited more by the lens than by the sensor. A higher resolution camera might just give you more, blurrier pixels.

Before you go buying another camera, I would suggest that you need to determine what the limiting factor on image quality is.

Camera field of view

You may get significantly better results with three cameras, one per lane but zoomed in closer.

I would make sure that there is an overlap of half the width of a number plate between each cameras field of view, so a vehicle switching lanes would be captured on both cameras rather than a number plate being split between the two. You could stitch the images together after doing perspective correction, but that has other problems.

Assuming the same camera angle and resolution with a 2.3m lane and 0.3m overlap, that would increase your resolution to around 2.2mm/pixel (2.6m/1200) which is better than an expensive 4k camera trying to cover a 7m width (also, three HD cameras would be 3/4 the bandwidth of one 4k camera and 3/4 of the pixel processing).

Camera orientation

Whether you orient the cameras in landscape or portrait will depend on resolution and field of view requirements, but also on traffic speed. While landscape maximises your resolution, portrait maximises the time dimension.

If you orient the camera in landscape and a vehicle travelling at the maximum expected speed can pass the field of view of the camera without the number plate being captured, then orienting the camera in portrait would increase the speed it would have to be travelling at to have a chance of avoid detection.

For instance, if your field of view is 2.6m wide and 1.46m deep and a car speeds past at 100mph (161kph, 45m/s), then at 30 frames per second (1.5m/frame), there is a (small) chance that only the top half of the number plate will be visible on one frame, while only the bottom half of the number plate will be visible on the next. If a vehicle is going faster than that, there is an increasing chance that it may not be in frame at all.

Reorienting the camera to portrait would cut the top of frame resolution from 2.2mm/pixel to 3.9mm/pixel (2.62600m/(1200/16*9)), but increase time resolution significantly, potentially giving you several frames containing the numberplate of even the fastest moving vehicles (assuming the shutter speed isn't too high enough that the individual frames are blurry).

Summary

I think before you spend more money, you need to characterise what you can achieve with the hardware you already have. If you can get good results with your current \$1000 camera when looking at a single lane, then your \$2000 budget could buy you two more identical cameras to extend the system to all three lanes (you may even be able to get a discount on buying a pair).

If this is a prototype, and you will be doing other installations elsewhere later, then you can look into cost reduction mechanisms once the prototype is performing well and you you have a test bed for trying out cheaper components.

$\endgroup$
0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.