bleugafoto

Des photos, et des restes. le blog de ecaheti.

Articles taggés avec ‘je colle des tags’

Mon Raspberry Pi, c’est mon petit passe-temps quand j’en ai marre de bosser. Mais tout de même, je me rassure en me disant que quand je fais du développement sur le Pi, ça me fait découvrir des trucs divers et variés.
Pour le coup, je suis encore sur ma détection / suivi de mouvement utilisant la Camera Board. L’algorithme général est pas bien compliqué :

  1. Acquérir l’image n-2 et la convertir
  2. Acquérir l’image n-1 et la convertir
  3. Acquérir l’image n et la convertir
  4. Comparer les images n-2 et n-1
  5. Comparer les images n-1 et n
  6. Déduire des deux étapes précédentes s’il y a eu un mouvement
  7. Centrer la caméra vers le mouvement
  8. Sauvegarder les images pertinentes sur le réseau
  9. Renommer n-1 en n-2 et n en n-1
  10. Boucler à l’étape 3

L’étape 7 est faite avec un script en python, les étapes 4, 5 et 6 faites avec un soft en C, le reste, c’est du bash script. Le script générant des fichiers régulièrement, je le fais tourner dans un ramdisk histoire de ne pas pourrir ma flash.
L’idée, c’est d’optimiser un peu le concept. Première piste que j’ai suivi, c’est de lancer en arrière-plan les différentes copies et renommage de fichier lorsque que ça pouvait être fait (genre l’étape 8, mais pas la neuf). En bash c’est pas bien compliqué, suffit de rajouter un « & » à la fin de la ligne. De même, le lancement du script python pour faire pivoter la caméra, je me fous pas mal d’attendre que le mouvement ce termine.

Puis, je me suis mis en tête de mesurer le temps d’exécution du soft en C, qui pour rappel prends 3 images en entrée, et me sort 3 images en sortie (diff entre n-2 et n-1, diff entre n-2 et le mouvement résultant). J’ai pris le timestamp au démarrage du soft et à la fin, une différence entre les 2, un printf, un boucle réalisant 100 fois l’opération histoire de faire un peu de stat’.

Ayant développé l’appli sur un PC, j’ai donc eu comme première mesure moyenne 99ms pour réaliser l’opération (sur un Core i7 3520M @ 2,9GHz), que j’ai ensuite refait sur le Pi à partir de la flash, et j’ai eu 597ms de moyenne (sur un Raspberry Pi 256Mo @ 700MHz). Alors oui… ça fait beaucoup. Puis test en ramdisk, et j’ai eu la surprise de voir que le temps moyen, 624ms est plus élevé qu’en flash ! Je n’ai pas encore compris pourquoi, il faudra que je vois s’il n’y pas une merde dans ma config de ramdisk.

En étant bête et con, j’ai ensuite overclocké le Pi avec l’outil de config fourni avec (raspi-config) à 1GHz. Résultat en flash : 477ms, et en ramdisk 478ms. Conclusion partielle, avec un overclock de 43%, je gagne 23% de perf. Bon, c’est toujours ça de pris.

Enfin, un peu plus malin, j’ai testé de compiler mon soft avec l’option d’optimisation de GCC (gcc -Ox source.c -o mon_exe), qui propose 5 niveaux de vitesse et une optimisation en taille. J’ai gardé l’overclock par flemme de redémarrer le R-Pi, et j’ai fait tourner l’appli en flash. Les résultats oscillent entre 354ms et 328ms, respectivement pour l’optimisation en taille et l’optimisation de niveau trois (-O3).

Avec un overclock et une option en plus dans GCC, je suis donc passé de 597 à 328ms 45% de temps en moins. L’air de rien, c’est pas si mal et ne m’a demandé aucun effort intellectuel d’optimisation de code.

Résumé des différents essais :

Au final, j’ai surtout tenté d’améliorer le temps d’exécution de la comparaison d’image. Mais il y a d’autres points qui pourraient être abordé :

  • Pouvoir lancer des commandes en fond dans le shell script en étant sur que leurs résultats seront prêts quand j’en aurai besoin
  • La comparaison d’image se fait en comparant les images pixels par pixels et couleur par couleurs (une boucle « for » avec 3 comparaisons dedans). Bien que le Rpi soit mono-coeur, peut être qu’on pourrait tenter de paralléliser ces comparaisons, ou bien de ne faire qu’une seule couleur
  • Vérifier que la partie « conversion d’image » est optimal. Pour le moment, je fais une capture en JPG, convertie ensuite et redimensionner en bmp (avec un rapport x16 entre les deux, permettant de créer la miniature bmp en sous échantillonnant les pixels de l’image capturé)

Et pour terminer, vérifier régulièrement que le truc marche encore après toutes ces bidouilles !

J’ai raté ma vie

Sunday 27 September 2009

Enfin non, pas au sens qu’on prendrais pour parler de Linkito ou de Calvi quand on les écoute parler d’eux. Il me suffit de me retrouver dans certaines situation pour me dire que je ne suis pas à ma place.

Ma place, c’est faire du dev embarqué, c’est de la balle, ça me plait. Jeudi soir j’étais en Ecosse pour le boulot, et après avoir intégré dans un caisson étanche notre électronique, puis mis le caisson dans une enceinte blindé (des fois que ca explose…) et relié les 3 pauvres câbles nous donnant quelques infos sur le fonctionnement du produit, j’ai vu clignoté 4 LEDs. C’est quoi 4 LEDs? Rien du tout, mais pour le coup ça signifiait que mon soft tournait la dedans. Mon premier soft sorti de la maison mère en France, qui marche, après 2 jours d’angoisse pendant le montage du caisson. Moment professionnel priceless.

Tout ça pour dire que ce petit voyage en Ecosse m’a rappelé qu’il y a deux ans j’avais stagiairé dans un labo près d’Oxford et que mon tuteur avait répondu à la question “Would you hire the student ?” du questionnaire de l’école par un “Yes, definitly”. Ce jour là j’avais vu comme une opportunité de me barrer, et puis bon, retour en france, encore un an d’étude, bref, le truc est passé.

Et puis des fois, je vois un reportage sur les toubib, et je me rappelle que que j’hésitais à faire médecine quand j’étais au lycée. Le truc qui m’aurait branché ça aurait été de faire mes études au SSA, le service de santé des armées. Ma belle soeur faisait ses études via l’armée, à Lyon, et ça avait l’air bien! Mais le concours est plutôt restrictif, bien plus que les concours peanuts d’ingénieur, mon autre choix professionel de l’époque.

Parfois quand je me balade à la fnac, j’ai envi de taper un vendeur, lui piquer ça formidable veste verte et conseiller les gens. Ca doit etre chouette d’être compétant pour un vendeur fnac. Je parlerais pendant des heures sur des questions techniques, renvoyant les clients me posant des questions sur des sujets inconnu. Expliquant aux photographes en devenir qu’il n’y a pas que Canon et Nikon dans le monde des photos, et passant mon temps à trifouiller les Mac, objets qui échappent à ma connaissance, attisant ainsi ma curiosité.

Evidement être payé pour faire des photos, ça serait chouette. Photographe de guerre. Typiquement comme Brad Pitt dans Spy Game, mais en plus beau. Etre au coté des soldats, des civils, des ONGs qui bossent, peu importe le camp. Se sentir vivant à la moindre alerte, être le premier sur le lieu ou une explosion viendrait de survenir, ramper derrière un muret, sentir battre son coeur à 200bpm au moment ou on presse le déclencheur au dessus du mur, sans même savoir ce qu’on prend, tout en entendant siffler les balles (oui, j’ai une vision très romantique de la photo).

Petit, il fut un temps ou je voulais devenir “Inventeur”. Ouais m’sieur, comme Emett Brown, rien que ça. Je m’imaginais faire des moteurs qui mangerais des poubelles, je faisais de la plomberie avec des kilomètres de pailles, des pots de yahourt, du scotch est trois bateaux de sucettes.

J’ai aussi eu ma période pompier, comme tout les petits garcons. Mais un jour on m’a dit : “les pompiers c’est bénévoles” - “c’est quoi bénévoles?” - “ça veut dire qu’ils gagnent pas d’argent”. WTF??!!? J’ai oublié l’idée en 2 minutes.

Mais tout ça, ça ne vaut pas mon rêve de gosse, être jardinier, faire pousser mes légumes, les vendre, les manger, je m’imaginais avec un chapeau de paille jaune, une chemise blanche, un tablier vert. Mais contrairement aux autres métiers dont je parle plus haut, ca me ferait bien chier en fait. Sérieusement, c’est vraiment pas mon truc le jardinage, chez moi j’ai un plant, j’arrive même pas à faire de quoi consommer. Oh, un plant de basilic hein.

Bref, tout ça c’était avant le drame. En fait je suis très content de ton taf. Mais faut reconnaitre que parfois j’aime bien  m’imaginer ce qu’aurait pu être ma vie si j’avais suivi une voie complètement différentes.

re : Pix-O #12 à la bourre

Thursday 2 July 2009

avec la photo cette fois
J’avais aucune idée de quoi faire pour ce pixo, et finalement en prenant mon café je me suis rappelé que j’avais un cliché sur mon dur qui répondait à la problématique.
Enfin bon, à la bourre et cliché daté de plus d’un an (il provient de mes petits souvenirs de stage à Oxford, les innondations de juillet 2007 pour être précis)

Salon de la Photo 2008

Tuesday 23 December 2008

Photos prises sur le stand Olympus, avec un E-3 (miam), et leur système de flash piloté à distance qui envoi du bois.

Finalement, pour faire des photos “studio” correct, suffit d’avoir la lumière qui va bien. En tout cas, je me suis bien amusé avec ce matos de bourrin.

Edit : Voilà à quoi ressemble le podium en grand angle (objectif 7-14mm, équivalent 14-28mm en 24×36) :