Identificarea modelelor cu contururi opencv versus haartraining

Însuși procesul de lucru cu OpenCV implică dansuri preliminare cu o tamburină, despre care există suficiente descrieri detaliate:

inclusiv pe Habré:

Configurarea proiectului în OpenCV de la utilizatorul skynoname. pentru care are o mulțumire deosebită!







Încercați stiloul.

Primele fructe.

Combinarea ulterioară a acestor metode a durat câteva minute, ducând la următoarele

Afișând această imagine în camera web, veți vedea o fereastră pop-up cu un semn.

Semnătura dă drumul

Voi adăuga mai multe setări pentru mediul cu care lucrează proiectul:

VC ++ Directoare> Biblioteci> C: OpenCV2.4.4opencvbuildx86vc10lib;
C / C ++> AdditionalIncludeDirectories> C: OpenCV2.4.4opencvbuildincludeopencv; C: OpenCV2.4.4opencvbuildinclude
Linker> General> Activați conectarea incrementală> Nu (/ INCREMENTAL: NO)
Linker> Intrare>
opencv_video244d.lib;
opencv_ml244d.lib;
opencv_legacy244d.lib;
opencv_imgproc244d.lib;
opencv_highgui244d.lib;
opencv_core244d.lib;
opencv_objdetect244d.lib;

Agonia creativității.

După ce a obținut detectarea unui semn, a procedat la adăugarea recunoașterii celui de-al doilea semn. Și apoi a început declanșarea falsă, programul a confundat semnele și munca este extrem de instabilă. Adăugați alte caractere, pur și simplu prin copierea unei părți a codului din caracterul curent și modificarea variabilelor. Am vrut să fac procedura, dar nu mi-am luat mâinile, pentru că mi-am dat seama că această metodă nu este interesantă pentru mine. A apela la compararea cu numărul de pixeli din circuit și metodele similare nu au făcut-o.

Al doilea act de dans cu o tamburină.

Ca rezultat, m-am îndreptat spre partea de antrenament a cascadelor. "Afumat" în această direcție a realizat că am nevoie de două instrumente care creează amulete și hărțuiesc. Dar exe lor nu am avut, dar a refuzat să compileze. În acel moment, versiunea OpenCV pe care o aveam era 2.4.4, configurată pentru primul articol. în al doilea articol am citit mai întâi despre utilizarea Cmake în timpul instalării. Ca rezultat, am decis să descărc versiunea 2.3.1 și să reinstalez biblioteca. După aceea, am reușit să execut instrumentele necesare prin linia de comandă și am pus întrebarea cum să lucrez cu ei. Toate punctele de mai sus "și" sunt articole plasate, care arată parametrii cu care trebuie să creați cîmpuri și hărțuire cu o descriere detaliată a acestor parametri.







Cod de la zero.

În cele din urmă, abandonând metoda veche, codul a fost rescris pentru a înlocui cascadele instruite.

Am creat mediul în același mod ca și în proiectul anterior.

Repetarea este părinții învățării.

Este o chestiune de "mici" pentru a antrena cascade.)
Apoi distracția începe. După aceea am decis să scriu despre toate aceste încercări pentru Habr și să cer sfaturi.
Am pregătit 500 de imagini care măsoară 1600x1200. și o imagine cu un semn dă drumul la dimensiunea de 80x80. O imagine va fi suficientă, pentru că detectăm un anumit obiect, mai degrabă decât o mare varietate de fețe.

Deci, prin pregătirea imaginilor și crearea fișierului neg.dat cu structura

executați fișierul opencv_createsamples.exe prin CMD cu următorii parametri

De exemplu utilitatea taie bg-picture la dimensiunea imaginii pozitive. Parametrii -w și -h nu modifică rezultatul, iar fondul este încă aproape invizibil. Dacă brusc cineva știe ce este, împărtășiți-vă gândurile. Dimensiunea imaginilor negative este redusă la 800x600 - rezultatul este același.

În plus, este necesar să lansăm opencv_haartraining.exe cu parametrii

atunci veți obține mult-așteptatul fișier xml, care poate fi încărcat în codul sursă al programului.
Drept urmare, cascada este ușor antrenată și, cu multe fals pozitive, reacționează la imaginea semnului pe care mi-a plăcut-o, să renunț.
Dar nu pot realiza declanșarea exactă, mi se pare, datorită faptului că fundalul este trunchiat în imagini pozitive. Și nu primiți fotografiile ca în manuale. Dar există încă opțiunea de a mări numărul de etape de antrenament și de a încărca calculatorul pentru întreaga zi, așteptați până când cascada va fi mai "educată". De asemenea, intenționez să fac înainte de apariția altor idei.







Trimiteți-le prietenilor: