[HN Gopher] Show HN: Build a DIY license plate reader with machi... ___________________________________________________________________ Show HN: Build a DIY license plate reader with machine learning Author : calebkaiser Score : 116 points Date : 2020-09-16 14:51 UTC (8 hours ago) (HTM) web link (github.com) (TXT) w3m dump (github.com) | dickfickling wrote: | This is great! I've been meaning to build something like this for | a long time. I'm always excited when I notice I've passed the | same car on commutes on different days, or see a car I recognize | from home in a different part of town. Automating that process | and having my phone tell me e.g. "You just passed a car that you | once drove past 1,000 miles away from here" is such a tempting | side project. Bit big-brothery, though. | ocdtrekkie wrote: | Yeah, I am interested in adding LPR to my car's computer at | some point, but it'd be locally processed and stored for | personal reference. | | I'd maybe like to know if it detects the plates of people I | know well nearby (sometimes I wonder when I see a car I feel I | recognize), and I'd want to be able to mark bad drivers I see, | and be warned if they come near my car again. | | My thought is that if I am driving around a driver bad enough | that I think about the risk of accident, I might want to know | if they're close to me again in the future. | tgot wrote: | I want this tied to a crude speed estimation algorithm, from a | stationary camera. | | Even with ALPR retention restrictions, I could trigger a video | save and send the police a video of the idiots doing 50mph | through the residential neighborhood. | ALittleLight wrote: | For speed estimation, I wonder if the simplest thing would be | two plate readers a fixed distance apart. Say they're | attached to light poles N meters distant. | | When the reader triggers and takes a picture, it pings your | server for a timestamp. It does the processing and records | car X at time T provided by the timestamp. You then calculate | the speed by the distance between the two meters divided by | the time between the two timestamps for X. | | Provided that speeding cars are a problem in your | neighborhood, I bet you could find the people responsible for | the light poles (which likely have power associated to them) | to let you install the devices, especially if you're | providing the devices and servers. | | I don't think you'd necessarily be able to ticket the drivers | though, as you're not law enforcement. Maybe you'd be able to | work with local law enforcement though. | groby_b wrote: | "You, too, can now actively participate in the surveillance | state" | | Yes, I get the technical appeal. I wish we all wondered less if | we could, and more if we should. | pc86 wrote: | I'm much less concerned about this being used by a private | citizen to keep license logs along with dash cams, integrate | ALPR output into dash cam footage, etc, than I am about the | surveillance _State_ as a whole. | mitchtbaum wrote: | https://music.youtube.com/watch?v=w1mUAVPaX98&feature=share | giarc wrote: | Am I missing something or in this image, is the confidence score | 99.23% and has the incorrect license plate? The plates clearly | have a 5 but it's predicting an S. | | https://camo.githubusercontent.com/5138d6bce5c840d15e533db6f... | cochne wrote: | Typical model output is not actually a probability, but a | mostly arbitrary number between 0 and 1. Models usually have to | be calibrated to match probability. | cptskippy wrote: | Is that confidence for the value or the category. It comes | after LP in the image which makes me think it's the confidence | that it is a license plate, not necessarily the confidence of | the reading of said license plate. | giarc wrote: | You might be right. The gif on github, at times, shows no | plate prediction but still includes a confidence score. I | would suspect that if it can't even show a prediction, it's | confidence score wouldn't show either (being that it would be | 0%). | cptskippy wrote: | > I would suspect that if it can't even show a prediction, | it's confidence score wouldn't show either (being that it | would be 0%). | | Recognizing that something is a license place, and being | able to read the plate are mutually exclusive things. | People can identify license plates even if they can't read | them, and people who don't know what a license plate is my | still be able to read the numbers on them. | | The ML has to do two things; the first is reject anything | that isn't a License Plate, the second is OCR License | Plates. | hundchenkatze wrote: | Nope, you are correct. Wow, both examples from that image are | wrong. | IncRnd wrote: | 99.23% is not 100%. 1/130ish But, the wrong examples don't seem | a good demonstration of that... | CleanItUpJanny wrote: | sweet, time to add this to my car and make some dough selling | license plate locations to Facebook Custom Audience | techbio wrote: | "Do-it-yourself" seems like a not quite appropriate title for an | interface that calls a webservice with pre-built vision ML. | parasanti wrote: | I was thinking the same thing. If it was all localized to a Pi | then yes, but outside services isn't really DIY so much. Maybe | half DIY if such a thing. | sokoloff wrote: | On the other hand, I would tend to agree that this project is | a "DIY Alexa" (edit to add: in the minds of most readers of | Instructables website): https://www.instructables.com/id/DIY- | Amazon-Alexa/ | hundchenkatze wrote: | This is another example of what the GP comment is | complaining about. It's not a DIY Alexa. Alexa is the | virtual assistant API. This is a DIY Amazon Echo that still | relies on the Alexa service. | sokoloff wrote: | As an engineer and a technologist, I agree that you and | GP are precisely correct. | | If you showed it to and asked a string of randoms off the | street, I think way more than half would agree with the | "DIY Alexa" label as reasonably communicative description | and more useful than a longer but more precise title. | hundchenkatze wrote: | Yeah, that's a good point. It's easy to get caught up in | our little tech bubble :) | varispeed wrote: | This is CIY - cobble it yourself. | alexchamberlain wrote: | The actual computation here shouldn't be that great, right? | (especially given the RPi has a GPU on) Seems like an | inconsiderate design to stream images to a cloud service, rather | than process locally and stream the plates themselves. | calebkaiser wrote: | Hey HN, | | I'm Caleb, and I'm a maintainer of Cortex, an open source model | deployment platform. Not long ago, we published this DIY license | plate reader project, and I wanted to share it here for anyone | who is interested in computer vision or production machine | learning in general. | | The project is a web service that accepts images and, using three | trained models, returns extracted license plate text, assuming | there is a license plate in the image. Of the models used, two | are pre-trained models from keras-ocr, while one is a fine tuned | YOLOv3. All models are freely available. | | You can see a video of the project in action here: | https://www.youtube.com/watch?v=gsYEZtecXlA | | And read a write up by Robert Lucian, the maintainer who | spearheaded this entire project, about how he built a camera | system to interface with the web service using a Raspberry Pi and | 5G: https://towardsdatascience.com/i-built-a-diy-license- | plate-r... | omgwtfbyobbq wrote: | This looks very neat. Do you think something like a Jetson Nano | would be able to handle inference locally? | calebkaiser wrote: | Thanks! The short answer is that I don't know, as it's only | been run on EC2 instances, but given its current compute | needs, probably not. | | The longer answer is that this project has a ton of room for | optimization, some of which is mentioned in the repo, and | with lower latency requirements + optimizations, I don't see | why it wouldn't work on less powerful hardware (I've never | personally worked with the Jetson Nano, so I don't want to | speak with any false confidence on it specifically). | jmnicolas wrote: | I wonder if it would be more efficient with OpenCV? | calebkaiser wrote: | That's very possible. The Python interface for writing | prediction APIs makes it pretty easy to switch between | models, so it shouldn't be hard to test. | yuvadam wrote: | How does this implementation perform compared to classic | approaches such as OpenALPR [1] ? | | At the very least running local inference becomes much more | expensive, and possibly provides worse results. | | [1] - https://github.com/openalpr/openalpr | tyingq wrote: | I wonder how much more revenue police departments are making with | ANPR[1]. | | They can, for example, have a camera in all the cruisers, and | automatically alert when a nearby car has an expired | registration, inspection, etc. Or, if they have the tie-ins, | registered to an owner with an open warrant or unpaid traffic | citations. | | [1] https://en.wikipedia.org/wiki/Automatic_number- | plate_recogni... | tangled wrote: | I've pondered the implications of running an 'installation art' | project where a bunch of these are deployed around a city, with | aggregated data visible over a web UI (assuming that this doesn't | violate any laws.) The aim would be to raise public awareness of | pervasive surveillance, and perhaps catalyze changes to the law. | pc86 wrote: | Regardless of the content, I think the idea of an installation | art project whose goal is to make the art project itself | illegal is pretty cool. | [deleted] | jlturner wrote: | Take care to understand your local law regarding automatic | license plate recognition. Use of such software and/or data | collected with it may be under regulation. IANAL, but see your | state statutes here if you live in the US: | https://www.ncsl.org/research/telecommunications-and-informa... | lubesGordi wrote: | The site makes it sound like it's only illegal for law | enforcement to do this. | joncrane wrote: | I find it interesting that some states are trying to regulate | something like this. | | What if you had a child read off every license plate they see | and use voice recognition to record the license plates? | | Is it illegal in real time, but allowed if you replay your | dashcam footage later? | arcticfox wrote: | The vast majority of those laws seem to be targeted at law | enforcement. I imagine any system designed to automatically | collect license plates would be included, whether it's sync | or async. | varispeed wrote: | What if you let the child buy drugs? Same thing. Don't let | your child do illegal things and better - don't help it. If | you hear your child is reciting the number plates, make sure | all recording hardware in your car is off before you lecture | the kid that what it does is absolutely forbidden. | bobbean wrote: | Good luck having someone do that 24 hours a day, or during | rush hour. I assume it's more about bulk collection. | jmnicolas wrote: | The photos I saw seemed to be in Paris, and I'm pretty sure | it's illegal to run a license plate reader in France. | csours wrote: | I've been watching dashcam footage lately and thinking about | this. It would be very helpful for hit and runs if the dashcam | had some on-board recognition that saved the last x license | plates just like it saves the last x seconds of videos. | | Often the video footage is not good enough to get a plate because | the capture settings are set lower so that more footage can be | stored. | master_yoda_1 wrote: | can somebody tell this joker that it is illegal and stay the fcuk | away from my car. | hundchenkatze wrote: | It _may_ be illegal where you live, but you have to remember | that people live in other places than you, with different laws. | cptskippy wrote: | It's probably not illegal where they live judging by their | tone. Often people who don't like something will tell you | it's illegal to gain your compliance relying on your | ignorance. They usually cuss and make a big show of it. | darkport wrote: | This is great. One of my side project ideas is to build an ANPR | based app and 'social network' starting with basic tracking, I.e. | you've passed this car 4 times before. I'm new to the ML world so | still learning vut Do you think this is feasible to run in real | time using CoreML on iOS? ___________________________________________________________________ (page generated 2020-09-16 23:00 UTC)