Please feel free to contact us throught contact form or directly with email

CV: Détection alvéole sur cadre

6 posts / 0 new
Last post
Raiden
CV: Détection alvéole sur cadre
French

Objectif: définir un modèle d'analyse de machine learning pour le computer vision afin de reconnaitre une alvéole sur un cadre (quelque soit sa forme, sa couleur ou son aspect général).

Types:

  • alvéole couvain
  • alvéole miel
  • alvéole male
  • alvéole vide
  • couleur alvéole

Input:

  • marqueur de mesure sur le cadre (id type de cadre + segment étalon 1cm)
  • identifie les alvéoles suivant un shéma "standard"

Computarize:

  • catégorise chaque alvéole en comparant l'alvéole à un motif

Output:

  • enregistre les résultats (id alvéole, position alvéole , type)

 

#1: création :

2 approches:

  • Référence A: Cadre complet
  • Référence B: Alvéole

Pour départager les 2:

  • - Création d'une base de données de photos (chaque photo contient une référence de grandeur facilement reconnaissable afin de servir d'étalon de mesure pour l'ensemble de la base).
  • - Définir des indicateurs de comparaison.
  • - Comparer les indicateurs et désigner la "meilleure" approche.

#2: créér motif alvéoles

#3: générer des "déformations" (max 15%)

#4: peupler un modèle

 

 

Update du 08/07/2018

Objectif: faire un support pour prendre en photo les différents types de cadre (corps et hausse dadant), de façon à avoir toutes les photos du même format, même point de vue et même angle.

Du croquis:

à la réalisation:

 

Des photos prises du support (avec un "marqueur référence" de fortune, 1cm sépare chaque trait vertical, en haut à gauche):

 

 

admin
jbeaudrey

Vision des cadres de ruche

La vision est assurée par une caméra qui se trouve en face du cadre, lequel est soulevé par le robot manipulateur qui soulève les cadres un par un afin de pouvoir les photographier. Les paramètres à prendre en compte sont les suivants:

1 - distance entre la caméra et le cadre : elle doit être régulière. rappelons que 2 pastilles de couleur sont placées sur les bords du cadre (coin haut droit et coin bas gauche), de manière à délimiter les contours. Il est possible de corriger par programme la différence de distance, le défaut de parallaxe, et la non horizontalité du cadre par rapport à la caméra; mais dans un 1er temps, on ne tient pas compte de ces défauts possibles.

2 - l' éclairage du cadre : il doit être assez fort (genre flash pourquoi pas) de manière à ce que les couleurs enregistrées soient à peu près toujours les mêmes , afin d'éviter des erreurs dans l'évaluation des couleurs dûes à l'heure, au temps -nuages, pluie, soleil...). Il faut réfléchir à un étalonnement des couleurs en temps réel, avec un petit carré sur le robot lui-même, de manière à disposer toujours de la même perception des couleurs. Enfin, pour apprécier le relief au niveau des alvéoles, il doit y avoir un éclairage rasant, pour faciliter l'interpretation du relief au niveau de chaque alvéole.

3 - la présence d'abeilles ou d'autres parasites, sur le cadre soulevé; il faut pouvoir en faire une liste à peu près exhaustive, et évaluer leur influence sur la pertinence de l'appréciation de la photo.

Dès lors que l'on sait gérer et controler ces paramètres, on peut obtenir une photo interprétable par programme; la caméra doit proposer un format standard ( JPEG, nb de pixels H et nb de pixels L).

Chaque pixel se traduit (en général) par 4 octets : 1 octet de transparence, et 3 octets RVB. Il faut donc écrire un programme qui analyse la photo du cadre pixelisée, pixel par pixel, et qui produit une évaluation correcte de la vue enregistrée. Au niveau de chaque pixel, cela ne donne pas grand chose, il faut donc découper le cadre en un tableau de n x m mini cadres et effectuer une évaluation globale de chaque mini cadre. On prendra donc comme dimmension de ce mini cadre la dimension d'une alvéole, ce qui produit une matrice de 850 alvéoles au dm2 (source à affiner : http://www.ruchewarre.net/viewtopic.php?t=4478 ), qui doit correspondre à à peu près 8000 alvéoles pour un cadre standard, soit un tableau informatique à 2 dimensions de 8000 entrées, ce qui est simple à exploiter.

On aura donc au niveau de chaque minicadre , approximativement une alvéole. Il faut naturellement tenir compte des déformations possibles des alvéoles, compression ou expansion, dûes à la vie de la ruche elle-même. Le problème est donc le suivant :

a- repérage de l'alvèole

b- détermination de son contenu : parasite présent?, couleur du contenu, et taux de remplissage ( en creux ou en bosse).

En résultat, on fournit :

a- un indice de régularité de l'alvéole

b- un code couleur

c- un taux de remplissage

d- un indice de fiablité de la mesure ( exemple : la présence d'un bourdon ou abeille va occulter la vision de l'alvèole).

Cela donne un tableau de 2 dimensions, de 8000 entrées , avec dans chaque entrée 4 valeurs à exploiter.

A partir de ce point, on passe à un niveau supérieur : en expoitant ces 8000 valeurs , et surtout de leur réparition dans l'espace, il faut fournir des valeurs synthétiques agrégées, à partir desquelles le diagnostic final du cadre sera produit. L'agrégation de ces valeurs doit faire l'objet d'un approfondissement piloté par un expert apiculteur.

Pour terminer, il faut jeter les bases de l'autorégulation du système : à partir d'unebase initiale de diagnostics, il faut affiner le processus et intégrer de nouveaux cas, corriger certains diagnostics, etc Cela suppose une analyses périodique du système par un expert apiculteur.

Autres points à approfondir :

- date de prise de vues

- région géographique de la ruche

- agrégation de résultats entre apiculteurs pour déterminer les épidémies, les teandances, etc...

----------------

Si ce compte-rendu est accepté, on peut démarrer l'écriture d'un programme qui analyse une alvéole, à partir d'images internet ou photos prises directement .

A faire : dimensionner l'image JPEG, déterminer la matrice des alvéoles standard.

admin

Hello,

Tu abordes une notion que j'avais oublié, les cotés communs avec les autres alvéoles.

A ce stade ce qui importe c'est de reconnaitre un motif quand les mêmes lignes appartiennent à différentes occurences, on peut prédire une nouvelle occurence avec le coté commun à la précédente, tout en affirmant qu'un segment d'heaxgone ne peut appartenir qu'à 1 (limites du cadre)  ou 2 alvéoles (cas commun) = maillage.

Mias est-ce la bonne méthode, ne suffit-il pas juste de créer un modèle à partir de vraies photos et de laisser l'ordinateur "trouver" ?

 

Je te rejoins sur l'utilisation des données (système expert ou décision humaine), pour le moment et comme tu le dis, il faut faire le focus sur la création des données et surtout permettre un apprentissage sous-contrôle (supervisé) dans un réseau de neurones (machine learning) :https://openclassrooms.com/courses/initiez-vous-au-machine-learning/qu-e...

On va donc commencer par un pattern généré par un script en y ajoutant des déformations (1 type de déformation accompagné d'une couleur de remplissage), mais je ne sais comment faire en sorte que l'on n'obtienne pas de "vide" entre les hexagones, il faudrait rajouter une fonction dont j'ignore l'approche de programmation.

 

CR accepté !

 

j'ai commencé un script python qui créé avec turtle un hexagone et pour le moment c'est tout ^^

jbeaudrey

Il faut donc :
1- lire sur le e-learning, pour le maitriser.
2- et commencer le prog en C pour analyser les minicadres; pour ce faire, il me faut une photo d'un cadre prise sur un de tes cadres dans les conditions normales telles que définies pour ton robot; à partir de là, j'aurai les paramètres de base pour que le prog analyse les minicadres (hauteur cadre, largeur cadre, taille alvéole, etc...)
Donc 2 pistes a explorer en //

admin

au niveau de la quantité d'alvéoles, j'ai plutôt trouvé entre 740 et 780 alvéoles /dm²