Bonjour,
j'ai actuellement le projet de détecter plusieurs robots dans un espace réduit. Afin de les identifier ils porteraient, sur leur face supérieur, un carré avec dedans quatre autres carrés qui permettraient d'identifier le robot et son orientation. J'ai donc commencé à regarder la librairie d'Opencv... Bon, après un bon mois de programmation les soirs et les week-end, je commence à comprendre comment je pourrait le faire. Seulement, je me heurte à la loi de l'emmerdement générale , bref voila les différentes technique de détection que j'envisage:
-j'utilise la transformée de hough, je détecte les lignes et j'en déduis les carrés puis les robots. Cette technique est plus facile d'accès pour moi, cependant je trouve qu'elle reste peu précise.
-une autre technique sur laquelle je n'est pas trop approfondie les recherche se base sur la détection de blob, mais la je n'ai rien essayé
-le procédé d'haartraining j'ai trouvé pas mal de doc. A mon avis, c'est la meilleur technique que je privilégierai, c'est pourquoi je vais un peu plus détailler. Cependant lorsque je lance la procédure... ça me donne toujours les même fichiers de sortie et ça me détecte n'importe quoi...
Si mes sources sont bonnes, il faut disposer de la version beta 3.1 d'opencv : je l'ai, donc je chope les dll et je les met dans mon dossier.
ensuite j'ai pris les même fichier que ceux disponible à cette adresse
Lorsque je lance le truc (après avoir modifié deux ou trois bugs au niveau du .bat) il me fait tous sauf que j'obtiens les même fichier dans le classifier, j'ai aussi l'impression que mon fichier .vec a toujours la même taille
Et donc l'ultime question existentielle sera: est-ce ma version de dll qui déconne ou les exécutables ?
Bref c'est ici que je bloque.
je vous donne le fichier .bat si cela en serai la source d'erreur
Voila, je remercie d'avance toutes personnes tentant d'aporter une réponse à ce problème.@echo off
set WIDTH=20
set HEIGHT=20
set NUMPOS=1
set NUMNEG=1
set STAGES=8
for /f "tokens=1,2" %%u in ('date /t') do set d=%%v
for /f "tokens=1" %%u in ('time /t') do set t=%%u
if "%t:~1,1%"==":" set t=0%t%
set TIMESTR=%d:~6,4%-%d:~3,2%-%d:~0,2%_%t:~0,2%-%t:~3,2%h
set LOG_C=data\classifier_%TIMESTR%\log_createsamples.txt
set LOG_T=data\classifier_%TIMESTR%\log_haartraining.txt
set LOG_P_POS=data\classifier_%TIMESTR%\log_performance_hitrate.txt
set LOG_P_NEG=data\classifier_%TIMESTR%\log_performance_falsealarm.txt
del data\vector.vec
rd /S /q data\classifier
echo.
echo 1-1) sample creation
createsamples.exe -info positives/train/train.txt -vec data/vector.vec -num %NUMPOS% -w %WIDTH% -h %HEIGHT%
echo.
echo 1-2) check your sample file
createsamples.exe -vec data/vector.vec -num %NUMPOS% -w %WIDTH% -h %HEIGHT%
echo.
echo 2-1) built and train
haartraining.exe -data data/classifier/ -vec data/vector.vec -bg negatives/train/train.txt -npos %NUMPOS% -nneg %NUMNEG% -nstages %STAGES% -nsplits 1 -mem 1400 -mode ALL -w %WIDTH% -h %HEIGHT%
echo.
echo 3-1) testing hitrate (skipped for demo)
rem performance.exe -data data/classifier_%TIMESTR%/ -info positives/testing/testing.txt -w %WIDTH% -h %HEIGHT% -rs %STAGES%
echo.
echo Process completed.
echo.
pause
Cordialement, Moi-même.
Partager