Closed mohammedalsaeed-uob closed 5 months ago
Added new resource to use in implementation. https://github.com/Muhammad-Zeerak-Khan/Automatic-License-Plate-Recognition-using-YOLOv8
Brainstormed a few tasks:
(will add these as their own issues)
We successfully developed Consumer 1.
Inquiry @maramesk @cerashdan
The model is alright, but it's not the most accurate: It sometimes captures extra characters. We have the option of training it on Bahraini cars. Our question is: Is that a priority? There are two key points to consider here
Should we focus some of our efforts on training the model now? Or should we come back to it at a later time when we've made more the other consumers (for the other violations)?
P.s. After you respond we will close this issue, since the task itself is complete. Just leaving it opened to discuss this point.
@mohammedalsaeed-uob The returning students from the Amakin Challenge (currently working in BQA) have implemented accurate plate detection on Bahraini plate numbers, reach out to them to check their approach. They did not have to train their own model on Bahraini plates and I don't think its feasible for you to do so either.
@maramesk Will do, thank you.
Adding few more pointers to guide you:
Using textract for every frame is unpractical as you are processing a video. This problem could easily be solved using ML approaches running on the consumer itself.
Automatic License/Number Plate Recognition (ANPR/ALPR) is a solved problem in Computer Vision, have a look at:
More specifically this section: Lines 30 and 31 perform a blackhat morphological operation to reveal dark characters (letters, digits, and symbols) against light backgrounds (the license plate itself). As you can see, our kernel has a rectangular shape of 13 pixels wide x 5 pixels tall, which corresponds to the shape of a typical international license plate
This blog post above, shows you how to solve this problem purely using Computer Vision approaches without using ML Models/Training.
@cerashdan Thank you for sharing these invaluable pointers and resources. I would like to point out that we are not using Textract on every frame, so no need to worry about that. After adjusting the code, it generally works much better now. Thank you once again.
Currently migrating our functions and code to SST/CDK per the following: -edit lambda to get queue URL on stack creation (husain) -edit lambda to get permissions with iam role (husain) ✅ -create ec2 /computer stack (mohammed) -create ssm/run command and userdata (mohammed) -edit S3 notification to trigger correct lambda (husain)✅
then we can close this issue.