Forum général.cherche-logiciel Traitement / reconnaissance d'images

Posté par . Licence CC by-sa.
Tags : aucun
6
16
avr.
2019

Salut à tous,

Je stocke sur mes disques durs quelques millions de photos du même endroit qui ont été prises par un RaspberryPi et qui ont servi à pondre quotidiennement des vidéos de type timelapse au format mkv dans ce genre là.

Parmi toutes ces photos, y'a à boire et à manger: des photos de nuit, des levers de soleil, des jours brumeux, des jours ensoleillés, de l'hiver, de l'été, des jours nuageux, des couchers de soleil, des transits lunaires, des photobombs de faucon, …

Je suis à la recherche d'un ou plusieurs logiciels pouvant m'aider à faire un tri dans tout ça pour ne conserver que les plus belles photos (je sais, c'est très subjectif).

Dans mon esprit, j'aimerai par exemple pouvoir déterminer si telle ou telle photo ressemble à un lever / coucher de soleil. Ou contient beaucoup de nuages. Ou de la neige…

Pouvez-vous m'aiguiller ?

Idéalement, je préfère évidemment du soft libre, scriptable, et surtout offline parce que je me vois mal uploader plusieurs Tio de photos vers Google / Amazon / whatever !!!

  • # opencv + python/c++ ?

    Posté par . Évalué à 4.

    Ce n'est pas un logiciel mais une bibliothèque. Y a plusieurs tutos sur leur site. Elle peut te permettre de faire la reconnaissance d'objet mais tu auras peut être des faux positifs/négatifs.

    OpenCv peut être utiliser en C++ ou en python. Je pense que ça pourrait répondre en partie à tes attentes (libre + scriptable)

    • [^] # Re: opencv + python/c++ ?

      Posté par . Évalué à 4.

      C'est aussi la première idée que j'ai.

      Par contre j'attaquerais en cherchant les photos "banales", pour virer celles où il ne se passe rien. Parce que apprendre à trouver une photo unique (des photobombs de faucon t'as pas dû en avoir des centaines), ça se fait pas encore :)

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: opencv + python/c++ ?

        Posté par . Évalué à 1.

        Je vais jeter un œil là-dessus. Même si pour moi le C++ c'est niet parce que je sais pas faire. Python j'apprends, donc ça ira…

        L'idée c'est de toute façon de faire un pré-tri de mes photos à partir des métadonnées que j'ai. Pour chaque photo j'ai évidemment son timestamp et les métadonnées EXIF de ma caméra. Mais j'ai aussi pour chaque jour les éphémérides calculés avec gcal: heures approximatives des lever et coucher de soleil pour ma position géographique précise, ainsi qu'un certain nombre de paramètres physiques que les capteurs de mon RPi ont relevé toutes les 5 minutes (luminosité, température, humidité de l'air, pression atmosphérique, …). Je peux aussi bêtement regarder le poids de mes JPG pour écarter d'emblée les photos de nuit presque noires :-)

        Une fois ce pré-tri effectué, il va me rester des dizaines de milliers de photos prises durant une période de lever de soleil par exemple. Parmi lesquelles quelques centaines de vraiment spectaculaires qui piquent les yeux et qui font fondre les pixels ! C'est celles là que je cherche.

        Et pour le faucon, si, j'en ai quelques unes puisqu'il habitait sur une poutre à 2 mètres de celle de mon RPi ;-) mais c'est négligeable…
        (j'ai aussi plein de parapentistes, quelques montgolfières, 2 ou 3 Rafale en vadrouille, etc…)

      • [^] # Re: opencv + python/c++ ?

        Posté par . Évalué à 2.

        Ah ouais, effectivement openCV à l'air très bien ! Trop même ! Et, euh, comment dire, c'est probablement overkill pour moi ! 8-o

        J'avais commencé à regarder du côté d'ImageMagick mais pareil, ça fait tellement trop de choses que je vois pas trop où creuser…

        • [^] # Re: opencv + python/c++ ?

          Posté par . Évalué à 2.

          OpenCV est capable de beaucoup de choses et c'est vrai que tu peux être perdu de prime abord. Commence petit : fais un tuto d'introduction d'openCV ou bien essaie de détecter si un soleil brille sur ton image.

          Détecter une zone brillante

          Le tuto est dans un cas particulier car tout le reste est sombre, mais je pense que tu peux t'en inspirer pour savoir si il y a un soleil ou non. Tu peux également bosser directement avec ton interpréteur python pour expérimenter.

  • # Typiquement le genre d'usage ...

    Posté par . Évalué à 1.

    Pour le "machine learning".

    Par contre … Ca te prendre probablement autant de temps d'implémenter le bout de soft + de lui apprendre "les bases" que de faire cette selection à la main.

    Mais si malgré tout tu veux te lancer, je suis sûr que des moules vont trouver des bons tutos à te faire tourner (dont je serai d'ailleurs preneur, c'est un domaine intéressant)

    • [^] # Re: Typiquement le genre d'usage ...

      Posté par . Évalué à 3.

      À la main !
      J'ai environ 6 millions de photos donc même en consacrant seulement 2 secondes à chaque photo, à raison de 8 heures par jour, ça nous fait quand même plus d'un an sans week-end ni vacances! Dur… :-)

      • [^] # Re: Typiquement le genre d'usage ...

        Posté par (page perso) . Évalué à 4.

        T'as prévu un cluster de calcul ?

        Python 3 - Apprendre à programmer en Python avec PyZo et Jupyter Notebook → https://www.dunod.com/sciences-techniques/python-3

      • [^] # Re: Typiquement le genre d'usage ...

        Posté par . Évalué à 5.

        les grands projet necessite du temps, meme si tu fait le tri automatiquement, cela va prendre du temps.

        la grande question est : accepte tu de perdre 1 photo qui font pleurer les enfants ?

        je serais toi je ferai un peu à l'arrache, d'abord avec le time stamp, ca me semble facilement possible avec python puis a la taille du fichier en octet, ouais ouais carrément a toi de choisir une fourchette.

        puis avec ce qui reste, tu apprend tranquillement python.

        il y a la méthode communautaire, tu pond un site web (qui tiens la charge), tu permet de voter pour les photo, oui, peut etre, non. chaque vote fait changer de photo. Et tu communique dessus sur FB, twitter etc … et le tri se fait naturellement :)

        tu invente une jolie histoire bien commercial qui va attirer le chaland:

        vous avez vu 2563879 photo ? la 2563880 vous surprendra
        un tournage de film porno en pleine nature a eu lieu juste devant la camera.

        en plus sérieux une vidéo de la totalité sur youtube serait pas trop mal.

    • [^] # Re: Typiquement le genre d'usage ...

      Posté par (page perso) . Évalué à 2. Dernière modification le 16/04/19 à 20:50.

      Il y a pas mal de bons tutos de classification d'images avec machine learning sur la toile, ça peut valoir le coup d'essayer ! Tu dois pouvoir avoir un truc simple fonctionnel avec quelques heures d'exploration. Là où ça devient compliqué et prend du temps est d'avoir quelque chose qui marche vraiment bien, mais ça peut valoir le coup !
      Il faut voir comme approcher le problème, trouver tous les levers de soleil peut bien correspondre à un problème de classification (séparer des images dans plusieurs catégories prédéfinies) et donner une note à l'image peut être un problème de régression (chaque image obtient un score). Il y a des exemples sympas sur le site de sklearn.

      • [^] # Re: Typiquement le genre d'usage ...

        Posté par (page perso) . Évalué à 2.

        Je pense qu'il faut notamment penser à mesurer l'écart des couleurs par rapport à une photo normale à cette heure-là pour détecter ce qui arrache. Si j'ai bien suivi, OpenCV fait aussi de la détection de mouvement, donc il va trouver facile le faucon!

        ⚓ À g'Auch TOUTE! http://afdgauch.online.fr

  • # Setup ?

    Posté par . Évalué à 6.

    Désolé, je n'ai pas de réponse à ta question mais je suis hyper intéressé pour connaître comment est ton installation pour obtenir de telles photos.

    Est-ce en pleine nature ? Comment est-ce alimenté ? Quelle est la caméra utilisée ?

    Merci !

    • [^] # Re: Setup ?

      Posté par . Évalué à 4.

      Mon installation est composée de:

      • un RPi 3 sous Raspbian Jessie avec une poignée de scripts bash de mon cru (écrits avec les pieds comme il se doit) et un peu de python de chez Adafruit (écrit proprement of course). Tout ça me sert à récupérer les valeurs de mes capteurs toutes les 5 minutes, à calculer les éphémérides du jour (lever et coucher de soleil essentiellement), à prendre des photos à intervalle variable (moins fréquent la nuit, plus fréquent pour les couchers et levers de soleil, plus fréquent pour le 13 juillet au soir à cause des feux d'artifices, etc …) et finalement à pondre des jolies vidéo de la journée écoulée chaque nuit à 3 heures du mat' (avec avconv)
      • des radiateurs de récup là où il faut (taillés à la scie à métaux dans d'anciens radiateurs de chipset)
      • une RaspiCam v2
      • un HDD externe de 500 Gio en USB
      • un hub USB
      • une alim Aukru 3000mA branchée sur une prise électrique extérieure judicieusement placée
      • un module DS3231 (Real Time Clock + température interne de la boîte) connecté au bus I²C
      • une sonde BME280 (température extérieure + pression atmosphérique + humidité) connectée au bus I²C
      • une sonde BH1750 (luminosité) connectée au bus I²C

      Le tout est hébergé par la carcasse d'un ancien projecteur halogène prévu pour l'extérieur et à peu près étanche (sauf le BME280 qui est déporté à environ 1m de là et protégé des intempéries par une bête boite électrique étanche).

      Tout ce fourbi est fixé sous une poutre de ma maison mon chantier à environ 700 mètres d'altitude et bénéficie d'un point de vue sur le monde, disons "intéressant" :-D.

      J'ai uploadé quelques mauvaises photos d'une ancienne version du machin juste . Ne me jetez pas de pierres, je suis tout débutant en électronique…

      • [^] # Re: Setup ?

        Posté par . Évalué à 2. Dernière modification le 17/04/19 à 22:40.

        Très bonne idée le projecteur halogène !

        Je viens d'acheter une maison et j'avais l'idée de faire une installation similaire pour enregistrer les évolutions du jardin.

        Merci pour toute ces infos !

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.