Deep learning b’ddarija: Kifach t9ra plaque d’immatriculation mn tswera.

ChmHsm
ChmHsm
Published in
8 min readAug 24, 2020

F had l’article ghadi n7awel nkoun rapide w nbsset l7wayj ma amkan. Ghadi nchoufo ahamm l7wayj f deep learning, w ghandwzo f nefss lwe9t exemple wa9i3i w li ghanchoufo fih f lkher ar9am mouhimma b7al les précisions li wselna lihom w b’ch7al y9der ytt9am 3lik entrainement f Azure.

1- Achno houa lprojet li ghandiro bih l’exemple?

Lprojet dyalna relativement simple. Khessna un modèle li ghayakhod comme input wa7d tswera (b7al hadi li lte7t) fiha license plate f chi 9ent, w ydir jouj 7wayj:

  • Etape 1 — License plate localization: ygoul lina fayn kayna license plate f tswera bach tshal l9raya dyalha mn be3d:
  • Etape 2 — Digits localization: mn dak license plate, y9ra lina chno mektoub fiha:

Remarque: Koulla rectangle kayban b loun bach nseparer classe mn classe akhra. Matalan f had tswera li lfo9, la classe dyal séparateur vertical smitha “Sep” w précision dyalhom 99% w 98%.

2- Ahamm 7aja f DL w ML

DATA. Data katl3eb dawr kbir bzzaf f’nisbat naja7 dyal projet f DL wlla ML. Wach data 3ndek wla la, w wach had data mzyana wla 3yana.

Hadi wa7d lms2ala makay3tewhach nass jdad f domaine ahammia w kayb9aw kayfkkro f l’code w python w TensorFlow w PyTorch w kaynsaw l2ahammia dyal data. 7ta kaybdaw ydkhlo l’entrainement dyal lmodèle w l’évaluation dyalo 3ad kaybdaw ychoufo des résultats mahoumach w kayfhmo mn b3d blli data dyalhom ma hiach w kaysd9o m3awdin bzzaf dyal l’khdma.

Koun mt2kked blli ila kant 3ndek data mzyana w kafia rak dmenti joz2 kbir f projet dyalk. W ila kant data 3ndek 9lila awla la qualité dyalha 3yana, kat7kem 3la l’projet b l’fachal mn lwwel.

Hadchi 3lach, ila jiti tgérer projet f DL wlla ML ghatla7ed blli te9riban 50% dyal lwe9t li kadwwez f projet kaykoun lié ghir l des tâches dyal data.

Chnou houma les tâches liées l’data:

  • Jmi3 dyal data (Data acquisition): bghiti ddir modèle de reconaissance des plaques d’immatriculation? khssek tjme3 tsawer dyal tonobilat mswwrin, w mswwrin b différents angles w mn l9oddam w llor etc...
  • Qualité dyal data: bghiti lmodèle dyalk ykoun kay9ra les images mzyan? khssek matalan tjme3 tsawer haute résolution w petite résolution, awla w7da mnnhom, walakin mn afdal haute résolution 7it mn be3d t9der n9oss lihom résolution kif bghiti, w l3ekss maymkench. Ye3ni ghaliban aykhssek tnod mn pc dyalk w tkhrej takhod tsawer.
  • Prétraitement dyal data: pour l’exemple dyal les matricules aykhssek twjjed data f chi répertoire awla tsayb lihom des pipelines (hna kanhdro 3la data engineering) w ddir data labeling. Matalan f had l’projet dyalna khssek trsem des rectangles 3la les matricules fayn kaynin f koulla tswira (yes, koulla tswira, ila 3ndek 5000 tswira khssek ddir had l’opération 3la 5000 tswera, atkoun fhemti daba 50% dyal lwe9t fayn katmchi). Kayn wa7d la technique katsemma data augmentation li ghanhdro 3liha mn be3d.

3- Data labeling تسمية البيانات

Pour l’exemple dyalna khessna 2 modèles: wa7ed ylocalizi license plate w lakhor ylocalizi koulla digit f license plate. Hadchi kay3ni blli khessna n3llmo 2 modèles et donc khessna ndiro 2 types dyal labeling (ana kanst3mel LabelImg bach ndir labeling dyal les images) :

1- Labeling lwwel dyal license plate localization khess trsem des rectangles 3la license plates dyal les images li 3ndek f dataset, b7al hakka:

2- Labeling ttani dyal digits khess trsem rectangle dayer 3la ga3 les digits li f license plates, w chaque digit kan3tiwh un id (“class” b l’english).

Important: Hnaya khess t3ref blli koulla digit kan3tiwh classe, ye3ni finma l9ina rra9m “1” f chi license plate kan3tiwh la classe 1 w rra9m “2” kan3tiwh la classe 2 etc… w même chose m3a l7orof w les séparateurs. Hakka l’modèle dyalna kayredd lina digit fayn kayn w en même temps achmen digit hadak.

Ila la7dto f had tswera lekhra, encadrina tta douk les séparateurs verticaux, 3lach? yak 7na bghina l’modèle y3ref ghir l2ar9am w l7orof.

Encadrinahom 7it bghina l’modèle y3ref yfrre9 mabin séparateur, w le digit “1” w l’2alif. Mabghinach lmodèle yl9a séparateur w ygoul lina hadak “1” awla alif, hada kanswmmih false positive (إيجابية كاذبة). W bach manti7ouch f false positive, khessna ngoulo l modèle “had l’caractère machi alif w machi “1””. Hakka kan3llmo modèle yfrre9 bin 7wayj li 9rab w li y9der yghlet fihom.

4- Data augmentation

Data aumentation, bl’3rbia زيادة البيانات, hia tari9a bach tzid f data li 3ndek bla maddir effort kbir. les images houma as’hal type de data li t9der ddir 3lihom augmentation, matalan 7na l’besoin dyalna houa ndiro augmentation dyal motion blur, l’contrast, ttelj, chta, ddbab, w chwia dyal rotation:

Orignal image with augmentions, in order: motion blur, contrast, flare, fog, rain, rotation, snow.

B’had ttari9a 9derna ntll3o le nombre d’images mn 1.000 tswera l 10.000 tswera bdoun mejhoud kbir.

5- Deep learning

N9dro nsmmiw deep learning (التعلم العميق) tari9a avancée dyal neural networks. B’khtisar, deep learning khda neural networks (dyal machine learning) w zad 3lihom ti9nyat jdad bach wellina daba kan9dro nkhdmo b networks kbar w compliqués w ye3tiwna résultat 7ssen mn neural networks classiques.

(Hna kent baghi nchre7 chno houa l’forward-prop w l’back-prog sa3 ghadi nt99el l’article bzzaf. Mrra akhra ma3lich…)

Bach tsayb deep neural network li ye3ti résultat mzyan khesso ykoun network kbir. KBIIIR. W bach t’entrainer network kbir aykhssek computing power kbira. w fach kangoulo computing power for deep learning, kanhdro principalement 3la des GPUs (cartes graphiques). Hadchi kaytle3 ghali… Walakin tranfser learning kay3awn f had nna7ia.

6- Transfer learning

Transfer learning, b l’3rbia التعلم عن طريق النقل, hia tari9a bach ddwwez ma3rifa mn modèle l modèle akhor. W had tari9a kat9der biha takhod un modèle li déjà entrainé mn taraf charika kbira li 3endha les GPUs, w nta katzid t3ellmo ghir dakchi li m7taj lih nta. W b’had tari9a kaysde9 3ndek modèle kbir, entrainé 3la dakchi li m7taj lih, bla ma thlek jibek b computing power kbira w ayyam dyal l’entrainement.

7- End-to-end Deep Learning

Ila 39elto lfou9 chwia glet blli khdemna b jouj dyal les modèles. Hna t9der tgoul lia “3lach jouj? 3lach machi ghir modèle wa7d li ydir lkhedma kamla?”.

Modèle wa7ed li kaydir lkhedma kamla houa li kansmmiw end-to-end deep learning. Momkin ddirha, ghir houa ghaykhssek bzzaf dyal data (bzzaf ye3ni vers les milions dyal data), w bzzaf dyal computing power, w ghansd9o halkin jibna w we9tna. Koul ma s33ebti la tâche 3la lmodèle dyalk, koul ma khsso data kter w we9t kter dyal entrainement.

8- Bayach khdemna bach 3llemna lmodèle dyalna?

Note: L’entrainement dyalna ddar f des VMs f Azure cloud f 2 configurations, w7da CPU w w7da GPU:

  • NC6s_v2: VM li fiha GPU NVIDIA Tesla P100 16Go, 6 CPUs, 112 Go de RAM
  • B4ms : VM li fiha 4 CPUs, 16 Go de RAM, No GPU.

Important: Keep in mind blli khdemna b transfer learning f les modèles bjouj.

F lwwel khdemna b yolov3 bach derna license plate localization. Natija kant na9sa chwia, ha 3lach:

  • Kaynin 2 architectures principales dyal yolov3: we7da smitha tiny (basé 3la darknet-19) w we7da smitha full (basé 3la darknet-53, 19 w 53 pour dire l3adad dyal les couches de convolutions, ye3ni darknet-53 kber mn darknet-19). The full version katakhod 1.5 à 2 secondes (f CPU, w 0.7 secondes f GPU) bach ddir wa7d forward prop f CPU, ye3ni ila bghiti yolov3 full ye3tik un résultat mn une image, kay9der yakhod tal 2 secondes bach yredd 3lik, chose li mam9boulach f des projets à mettre en production. The tiny version ma3tatnach précision mzyana, donc la youmkin.

Jrrebna digits recognition b’OCR using Tesseract w pyTesseract. Tesseract zwin ila bghiti t9ra chi 7aja mektouba b computer f wr9a awla doc pdf matalan, machi license plate las9a f tonobile. W 3ad l3rbia 3endo na9sa so 3tana des résultats 3yanin w 7na nwe99foh. (Houa sara7a kan khess yban lina Tesseract overkill mn lwwel 7it kaykhdem b un LSTM w 7na mam7tajinch LSTM f la tâche tania. Mais ma3lich.)

Jrrebna digits localization b yolov3 tiny, 3ta précision mzyana walakin kaydir 0.7 secondes bach ydwwez forward prop, me9boula walakin jatna too much ghir bach n9raw digits f tswera sghera.

Dezna l’yolov5 ghir bach tkoun 3ndna fikra 3la forward prop dyalo, sde9 dar 0.014 secondes en GPU (vs 0.7 secondes pour yolov3 tiny, fer9 kbir). Hna gelna khssna nzido n7efro f yolov5. Khedina asghar version fih, li smitha yolov5s:

  • derna lih entrainement 3la 10.000 images (pour la tâche dyal license plate localization), 3tana précision 95% f mAP@0.5 w 89% f mAP@0.95, hado ar9am dyal validation of course, mn be3d 50 epochs w 14 sa3a dyal entrainement f GPU.
  • derna lih entrainement 7tta l’digits localization 3tana 99% f mAP@0.5 w 81% f mAP@0.95. Hna t9der tswwelni 3lach ghir 81% f digits localization? 7it tout simplement madernach data bzzaf f digits localization, à peu près derna wa7d 300 images, mn be3d 500 epochs w 15 sa3a dyal entrainement f GPU.

9- L’code

L’code 7alo sahel f had l’exemple, sir ghir l’repo dyal Ultralytics dyal yolov5 rahom mwedd7in koulchi. Li s3ib f tatbi9at deep learning houa data w data engineering w design dyal le(s) modèle(s) w computing power. Le code mafihch mouchkil. Ay software dev 3endo 3am wlla jouj d l’khibra ghadi yjih 3adi.

10- B’ch7al ?

La VM GPU f Azure i bach khdemna katt9am b chi $80/jour, ye3ni ila kenti mwjjed koulchi f repos w jrrebti l’entrainement f PC dyalk w bda sans problème, pushi koulchi f chi repo w tlle3 VM dyalk f Azure w lance l’entrainement. Pour transfer learning, 24 heures kayfyak largement même pour 2 modèles b7al had l’exemple, donc dir l’7sab dyal 80$ minimum. Ila kenti ghaddir chwia dyal R&D b7alna aykhssek kteeeer biensur :) mohim 7seb 80$ f nnhar, w had rra9m biensur 3la 7sab achmen VM khditi.

11- Keep in touch

Ila 3jbek b7al hadchi, douz 3endi for upcoming content:

Facebook: facebook.com/ChmHsm (hna ghanbda ndir des polls bach n3ref chno le contenu dyal les prochains articles, w tb9aw à jour m3a contenu dyali)

LinkedIn: linkedin.com/in/chmhsm (hna for business purposes)

Choukrane w dir partager :)

--

--