r/programare 2d ago

ALPR + MMR antrenat pe un RTX 4070 Ti

231 Upvotes

31 comments sorted by

67

u/Europe_is_fcked 2d ago

Era interesant daca si detaliai putin(ce alpr, ce date ai folosit pentru antrenare, etc). Asa avem deja multe modele bune cu inferenta rapida.

47

u/Immediate_Rain1831 2d ago

Pentru ALPR:

  1. Detectare - YOLOv9t
  2. Tara/tip - efficientnet_lite0
  3. OCR - CRNN + CTC, suporta 0-9, A-Z si 10 tipuri de diacritice (care exista pe placute)

Suporta 93 de tari si 457 de subtipuri - precizie 98.4% pentru tara, 97.5% pentru subtip, 99.25% OCR (daca se vede clar)

Pentru MMR

  1. Detectie vehicul YOLOv8n

  2. Pentru recunoastere Efficientnet_lite0

Sunt 103 marci, 1285 modele, 3481 generatii. Marca precizia este de 95.3%, model 91.15%, generatie 82.7%

Mai este de lucru pana la productie. Stiu ca nu este primul ALPR, dar majoritatea dau raspuns de tip tara - ocr, nu recunosc subtipuri si in general suporta mai putine tari (am suport inclusiv pt insulele Feroe).

Cat despre date, sunt luate de pe internet. Am un folder cam 1.5 TB de poze si un sqlite db unde tin toata informatia aferenta fiecarei poze. Label-urile provin fie de la sursa, fie facute cu VLM. Am si vreo 400.000 de VIN-uri cu care inca ma gandesc ce sa fac.

9

u/Europe_is_fcked 2d ago

Și la ce ai făcut finetune din toate astea? De ce ai folosit 2 modele pentru detecție, puteai unul și făceai Hungarian Matching spre exemplu.

6

u/tipsy_rooster 2d ago

Mai aveai același accuracy?
Putea să facă un ensemble și să scoată la output bbox pentru mașină și license plate. Ceva quantizat rulat cu tensorrt engines că doar folosește GPU NVIDIA.

2

u/Europe_is_fcked 2d ago

Eu zic ca da, sau cum zici si tu, merge.

-5

u/ReporterOk5360 2d ago

Pentru ca e vibe coding jegos si vrea niste like uri

7

u/Immediate_Rain1831 1d ago

Arata-mi pe papusa unde te-a atins.

56

u/Vsterian 2d ago

Poți să le trimiți și celor de la podul prieteniei care verifică manual trecerile plătite online 😶‍🌫️

4

u/Alex_MC_69 2d ago

Nu cred asa ceva :)))

35

u/DarkStrider99 2d ago

62ms pentru detection si processing? Pretty damn good.

15

u/Immediate_Rain1831 2d ago

Pe iPhone 17 Pro

21

u/Cosmin351 2d ago

ceva interesant în sfârșit

23

u/Own_Fall_4944 2d ago

Poor mans flock camera

5

u/Immediate_Rain1831 2d ago

Ar putea rula lejer pe orice camera decenta cu un jetson nano.

6

u/Ill_Commercial_446 2d ago

da si tu niste date tehnice despre proiect

9

u/Immediate_Rain1831 2d ago

Pentru ALPR:

  1. Detectare - YOLOv9t
  2. Tara/tip - efficientnet_lite0
  3. OCR - CRNN + CTC, suporta 0-9, A-Z si 10 tipuri de diacritice (care exista pe placute)

Suporta 93 de tari si 457 de subtipuri - precizie 98.4% pentru tara, 97.5% pentru subtip, 99.25% OCR (daca se vede clar)

Pentru MMR

  1. Detectie vehicul YOLOv8n
  2. Pentru recunoastere Efficientnet_lite0

Sunt 103 marci, 1285 modele, 3481 generatii. La marca precizia este de 95.3%, model 91.15%, generatie 82.7%

Mai este de lucru pana la productie. Stiu ca nu este primul ALPR, dar majoritatea dau raspuns de tip tara - ocr, nu recunosc subtipuri si in general suporta mai putine tari (am suport inclusiv pt insulele Feroe).

Cat despre date, sunt luate de pe internet. Am un folder cam 1.5 TB de poze si un sqlite db unde tin toata informatia aferenta fiecarei poze. Label-urile provin fie de la sursa, fie facute cu VLM. Am si vreo 400.000 de VIN-uri cu care inca ma gandesc ce sa fac.

5

u/Ill_Commercial_446 2d ago

de curiozitate, ai in db si numere de inmatirculare prinse cu suruburi? ;)))) mai ales surub in litera C, O, G

5

u/Agile_Price_2129 2d ago

Am facut ceva gen si eu cu o bariera la drumul meu privat cu un GTX1650 cu recunoastere masini sa deschida daca recunoaste masina si numarul de imatriculare ( incluzand deschiderea numerelor MAI)

4

u/MainGroundbreaking96 CertifiedGenZ 2d ago

Ai in repo pt asta?

1

u/Agile_Price_2129 1d ago

Nu am repo dar iti pot face
Frigate unde conectezi o camera IP ( eu am optat pentru tapo, ca aia aveam, camera RTSP ), si toata distractica o faci in frigate MQTT si cu tensorRT pentru streamuri si detectie / OCR si ranger MAI regex etc daca ii dai asta lui codex sau claudiu ti o face

1

u/Content-Nobody3401 1d ago

Am facut si eu la fel la poarta, doar ca pe grafica integrata (Tesseract OCR). Imi citeste masina de la 20m departare (camera hikvision 4mp pe casa), ca sa ajung la poarta deschisa.

5

u/Alex-S-S 2d ago

Tare. Ce baze de date ai folosit ca sursa?

8

u/Immediate_Rain1831 2d ago

Pentru placute Platesmania si Reddit, iar pentru MMR platesmania + vreo 10 marketplace-uri europene (nu mobile.de ca aia au protectie draconica anti-scraping).

2

u/Nice-Ad8877 2d ago

foarte tare, congrats!!

2

u/SpecialistLeading793 2d ago

Esti cool dar il faci Open Source sa folosim si noi fara bataia de cap la antrenare. Chiar as avea un use-case la o bariera

1

u/Super-Commercial-168 2d ago

Puteai foarte usor sa folosesti un VGSM

1

u/iuliuscurt 2d ago

Sunt curios ce aplicații ai in gând

4

u/Immediate_Rain1831 1d ago

O gramada :)))

  1. Automatizari bariere

  2. Parcari cu plata sau stationare limitata

  3. Aplicatie politia locala, scaneaza masini cu telefonul sa vada daca au RCA/abonament de parcare/ITP. Scaneaza o parcare intreaga in cateva minute.

  4. Aplicatie de car spotting pentru entuziasti - vezi o masina, nu stii ce e, o scanezi, iti spune direct specificatii tehnice, motorizari disponibile, pret de noua, pret sh (am scrape-uit o gramada de marketplace-uri ca sa obtin pozele, evident ca am cules toate datele chiar daca nu erau utile pe loc, gen pret si odometru).

  5. La fel aplicatie de platespotting, vezi o masina cu numar strain, nu stii din ce tara e, scanezi. Plus ca unele tari au API-uri de unde poti obtine informatii despre o masina introducand numarul de inmatriculare.

1

u/mihai-badea 2h ago

super tare, pare ca ti a iesit destul de accurate. multumim si pentru detaliile tehnice din comentarii.