TDWCamp

Ce Samedi je me suis laissée entraîner par mon chéri au TDWCamp (TDW = travailleurs du web), une sorte d’anti conférence. Comme d’habitude, je ne connaissais pas du tout mais bon, je laisse le hasard guider mes pas …. 

Au final, je peux dire que j’ai passé une excellente journée. L’accueil était chaleureux, on était assez nombreux mais pas suffisamment pour que ça fasse l’effet foule que je déteste et l’ambiance était à la fois détendue et sérieuse. Et puis j’étais bien accompagnée ^_^. Au programme bouffe + ateliers (+ bières pour certains). 

Parmi les thèmes abordés on a pu voir :

  • Gestion de projet
  • GTD
  • Scoop
  • Web mobile
  • Télétravail et freelance
  • Monnaie
  • Modèle de communauté, marque de communauté
  • IE6 troll
  • Veille technologique

Finalement j’ai assisté à trois modules : le GTD, le télétravail et la veille techno. Je vous fait un petit compte rendu de ce qui s’y est dit.

GTD

De ce que j’ai compris du GTD (de l’anglais Get Things Done) c’est une façon de s’organiser pour gagner en efficacité à son travail. J’ai trouvé que le principe était en fait un recoupement de trois grandes questions qui sont plus ou moins particulières aux travailleurs du web et à toux ceux qui développent de manière générale :

  1. L’organisation personnelle
    Pour être efficace à son travail il faut en avoir les moyens et surtout avoir la forme, d’où l’idée d’organiser son travail en fonction de son taux d’efficacité pendant la journée. Par exemple pour les gens “du matin” réserver les premiers créneaux pour effectuer les taches qui demandent le plus de concentration et qui sont le plus urgentes.  Certains arrivent même à aller plus loin, finalement pour beaucoup de gens il est carrément impossible de travailler correctement entre 14 et 16h (pour cause de digestion). Pourquoi alors rester au boulot ? Pour la forme, pour satisfaire l’ego de son employeur ? Si la boîte où l’on travaille l’accepte il est peut-être possible d’organiser mieux ses horaires.
  2. La gestion du multi-taches
    Par exemple l’utilisation d’outils pour gérer ses listes de TODO à faire, savoir poser des limites par rapport à des contacts un peu trop exigeants. On peut aussi citer la gestion de projet informatique qui posent des problèmes de délégation de taches, de contrôle du travail des collaborateurs/subordonnés. 
     
  3. La gestion de l’information
    Cette partie est assez spécifique à tous ceux qui sont en contact permanents avec le web pour le travail. Que ce soit pour les mails qui peuvent arriver par centaines par jour pour une seule personne ou pour un travail de veille technologique avec la lecture de flux RSS la masse d’information peut rapidement submerger le plus disponibles des usagers. Il faut faire le tri. On a cité par exemple les outils de google pour les flux et le tri de mails. Bon, il existe de nombreuses autres solutions  que je n’ai pas envie de chercher tout de suite.

De toute manière les outils ne font pas vraiment la différence. Le fait d’organiser sont temps pour gagner en efficacité est surtout un travail de volonté, une démarche personnelle. Elle part souvent d’un constat : trop de mails et pas le temps de les lire, des difficultés à réaliser tout le travail à fournir alors qu’on dispose du temps requis,ou encore difficulté de gestion de projet. Les méthodes de GTD peuvent s’acquérir beaucoup par bouches à oreilles, ce sont plus des trucs et astuces qu’une véritable science, surtout que chacun a sa manière de travailler, a son propre rythme. Il faut faire attention à ne pas se fourvoyer  : la course a l’efficacité a ses revers. Plus on gagne en efficacité, plus on a de temps pour faire autre chose, plus on fait de choses et au final on se bousille car on fait trop de choses. 

Le télé-travail, le freelance

On a discuté sur les motivations, les avantages et inconvénients du freelance et du télétravail. Je vais pas trop développer, on a cité pas mal de lieus communs.

Les avantages : la flexibilité, l’absence de contraintes liées au boulot comme le temps de transport, la gestion de ses propres projets.

Les inconvénients : au début il faut se faire un réseau, prouver sa crédibilité (créer sa propre SAV est une bonne démarche en ce sens car elle oblige à l’apport de fond personnel ce qui suppose que le travailleur ne va pas tout lâcher au milieu d’un projet s’il en a envie). Il faut faire face à la mauvaise foi de certains clients.

Les difficultés plus basiques du freelance sont peut-être un peu la solitude (personne à qui papoter à la pause) dans les cas extrêmes de freelance, tendance à avoir des horaires décalés (nécessité de se poser des limites et de poser des limites à ses contacts), difficultés à évaluer son temps de travail (il faut noter chaque heure passée sur un projet sinon c’est l’oubli).

Question mentalité le freelance c’est pas uniquement le gars qui se lance pour créer sa boîte et qui si son idée est bonne peut voir celle-ci se développer, c’est aussi parfois des gens qui veulent garder une certaine indépendance par rapport à leur boîte (un seul client : la boîte et ils y vont tous les jours comme de vrais employés mais ne sont pas des employés) ou qui veulent être complètement indépendant (ne plus vouloir travailler que sur des petits projets ici et là par exemple).

Apparemment d’après certains chercheurs ces méthodes de travail (freelance et télétravail) pourraient être la forme majeur de travail dans le futur. On verrait alors des gens qui de manière temporaire se réunissent pour un projet puis se séparent et bossent avec une autre équipe sur un autre projet. 

La veille

Les flux RSS, twitter. J’en dirais pas plus. 

Et en exclusivité, le lien pour le site des TDW. Pour finir, un grand merci aux organisateurs, Babozor, Fred et les autres. Et merci à tous ceux qui étaient là pour leur bonne humeur.

Segmentation, approches mixtes régions/contours

J’ai trouvé deux documents un détaillé et un avec un beau schéma pour donner le principe de ces algorithmes.

Je modifierai cette article demain je pense mais voici les liens :

Exemple d’algorithme de segmentation

  • Ce document est issu de ‘Geometric Context from a single image’, le lien est à la fin du post.

Ce document a pour but non pas de découper l’image en objet sémantique mais en éléments contextuels qui pourraient être utile pour ce découpage fait ultérieurement. À partir de photos d’extérieur exposées sur le net les auteurs ont décris une analyse de scène modèle. Les images se découpent en 5 zones :

  • le ciel
  • un milieu intermédiaire qui se décompose lui-même en trois zones : gauche, droite, centre
  • un premier plan (le sol)

Les élements de la zone intermédaire peuvent en plus être orientées par l’extraction de caractéristiques de texture ou être définies comme non-planaire, poreuse (végétation par exemple), solide.

Voici la méthode appliquée en vue d’ensemble :

Algorithme de segmentation

Algorithme de segmentation

Deux parties sont à développer un peu plus :

Segmentation en régions homogènes : algorithme glouton

  1. ordonner aléatoirement les superpixels
  2. assigner les n_r premiers superpixels aux différentes régions
  3. itération :
    pour tous les autres superpixels
         pour toutes les régions
              calculer la fonction  ”learned pairwise affinity function”
         fin pour
         affecter le superpixel à la région qui présente un maximum selon la fonction
    fin pour
  4.  répéter la segmentation pour plusieurs nombres de régions n_r

La fonction “learner pairwise affinity function” citée plus tôt est une fonction qui évalue la probabilité que deux superpixels soient dans la même région (somme de logarithme)
Comparaison des données et classement selon la zone d’image la plus représentative

Après les segmentations précédentes on obtient des superpixels qui appartiennent à plusieurs régions (une pour chaque critère de segmentation). Chaque région est alors liée à une zone de l’image ou plusieurs. Les zones ciel/intermédiaire/bas et gauche/centre/droite sont évaluées séparément. L’algorithme détermine par exemple une gauche, un centre, et une droite pour l’image du ciel mais ne le renvoie pas.

Pour répartir les régions selon les principales zones de l’image les auteurs utilisent une version de régression logistique d’Adaboost avec classifieurs faibles et basée sur un arbre de décision à 8 nœuds. Les distributions de poids sont initialisées par le pourcentage que représente la région de l’image analysée.

Résultats de l’algorithme :

  • 86% d’assignation correcte pour les ciel/intermédiaire/bas
  • 52% pour les zones gauche/centre/droite : zones plus difficiles à déterminer

Après segmentation selon les méthodes habituelles avec et sans données contextuelles fournies par cette algorithme il s’est avéré que l’extraction du contexte avait un impact très favorable à la segmentation d’image.

Référence

Segmentation par les contours actifs

Je viens de retirer l\’article sur la segmentation par les contours actifs. En fait cette méthode implique de créer un vecteur proche des contours qui par cette méthode se superposera à ceux-ci. On utilise donc cette segmentation surtout dans l\’analyse de séquence d\’image / vidéo car à partir de la première image segmentée on a tous les contours initiés voulus.

Peut-être je re publierai l\’article sur cette segmentation mais uniquement si je trouve un projet qui l\’utilise pour des images simples.

Insertion d’équations pour les fans de lateX

Une méthode simple pour insérer des équations pour les utilisateurs de lateX :

il suffit d’insérer une image de l’équation obtenue à partir de l’adresse :

http://www.forkosh.dreamhost.com/mathtex.cgi?formdata=
+ écriture de l’équation comme sous latex

Exemple : pour l’image ci-dessous 

intégrale de a à b de x au carré

j’ai inséré une image avec comme source le lien :

http://www.forkosh.dreamhost.com/mathtex.cgi?formdata=\int_a^b(x^2)

Voilà pour l’astuce.
Un grand merci à mon chéri qui est vraiment très fort et très gentil de s’être préoccupé de mon petit problème.

C’est la fin des haricots

Ca y est ma semaine de partiels est terminée ! Je suis assez satisfaite :

  • 100 % d’efficacité, le temps éveillé n’a servi qu’au travail
  • 75 % de succès, le travail paye toujours

Bref je garderai un bon souvenir de cette semaine éprouvante. J’espère juste qu’il me restera assez de force pour entamer mon stage de façon dynamique.

Emploi du temps de cette semaine :

  •  lundi : matin DS d’ANREC, après-m : DS de GRAPH
  • mardi : matin conférence, après-m : DS de MADIS
  • mercredi : matin soutenance projet de veille, midi : DS d’APPLI, après-m : DS de QLOGI
  • jeudi : soutenance d’anglais pour le matin, DS de finance l’après-m
  • vendredi : conférence (soutenance des collègues), après-m : soutenance de projet d’application (développement sous OpenOffice.org), il faudra d’ailleurs que je vous parle de ce projet

À part ça j’ai tellement aimé mon projet de veille que je crois que je vais le continuer mais de manière plus cool. En plus j’ai repéré quelques erreurs potentielles dans ce que j’ai écrit. Bref il faut que je reprenne tout ça. D’ailleurs je change de méthode : j’avais essayé de passer directement de source informatique à des résumés informatiques, résultat : j’ai l’impression que je n’ai aucun recul sur ce que j’ai fait. Donc je reprends tout en passant par des notes que je vais faire au fur et à mesure. C’est plus long mais ça me permettra de communiquer des informations exactes (ou presque ^^).

Lundi je commence mon stage (à Paris, à Mobile Devices) : je vais faire des GPS !!! trop cool ^^ J’espère que ça va bien se passer. Je vous en dirai plus Lundi soir !

Segmentation split-and-merge

Tous le mérite revient à : la thèse de M. Fontaine

1) méthode par quadtree

Le principe de l’algorithme est d’associer un arbre à l’image à segmenter.

  • Initialement, il n’y a que la racine.
  • Puis, de manière itérative on attribue quatre noeuds fils à chaque noeud correspondant à une zone non homogène. Le découpage correspond a une division en 4 carrés de la région.
    Chaque noeud correspond donc une région carré de l’image.
  • On arrête l’analyse récursive lorsque toutes les feuilles de l’arbre respectent le prédicat d’homogénéité.
  • On démarre une nouvelle analyse récursive pour tester si des régions présentent des caractéristiques d’homogénéité deux à deux et on réalise la fusion lorsque le cas se présente.
  • L’itération est arrêtée lorsqu’il n’y a plus de couple qui respecte le prédicat d’homogénéité.

Inconvénients : 

  • la forme carrée des régions ne permet pas d’être précis sur la forme des objets
  • l’algorithme est sensible à l’ordre de parcours du quadtree.

2) méthode par partitionnement de Voronoï

La méthode de segmentation proposée comporte une étape d’initialisation, une étape de division suivie d’une étape de fusion : 

  • Initialisation : Des germes sont positionnés et répartis uniformément dans l’image grâce à un processus de Poisson. A chaque germe est associée une région dont les frontières sont établies grâce à un diagramme de Voronoï. 
  • Division : Un prédicat d’homogénéité est calculé pour chaque région et les régions non homogènes sont divisées par introduction de nouveaux germes. Le diagramme de Voronoï est remis à jour et le processus de division est réitéré jusqu’à ce que toutes les régions de Voronoï respectent un prédicat d’homogénéité. 
  • Fusion : Les germes qui ne correspondent pas à un objet dans l’image sont éliminés dans cette dernière étape. Ainsi, les régions adjacentes dont les couleurs moyennes sont proches et pour lesquelles la longueur de la frontière commune divisée par la somme de leurs périmètres est inférieure à un seuil sont fusionnées. 

Inconvénients :

  • difficulté d’ajustement du seuil de fusion 
  • et résultats influencés par  l’initialisation des germes 

3) méthode utilisant les champs de Markov

Une image est considérée par le formalisme des champs de Markov comme une réalisation particulière d’un champ de variables aléatoires. Les champs de Markov ne se limitent pas à la prise en compte individuelle des pixels car ils permettent de prendre en compte les relations de voisinage entre les pixels. Ainsi, la probabilité qu’un pixel appartienne à une classe dépend non seulement de sa couleur, mais aussi de celles de ses voisins. 

L’algorithme de segmentation se décompose en trois phases : 

  • phase de divisions successives de régions, 
         division de division de l’image originale en sous régions déformées carrés ayant une surface supérieure à un seuil et respectant un prédicat d’homogénéité.
         Chaque région est modélisée par sa pseudo-vraisemblance qui est définie comme le produit des probabilités conditionnelles des pixels qui appartiennent à cette région
  • phase de fusion préliminaire, 
         deux fusions adjacentes sont fusionnées si le rapport entre les logarithmes de leur pseudo-vraisemblance avant et après fusion est inférieur à un seuil.   
  • phase de fusion finale
          les paires de régions adjacentes qui font décroître le moins possible la pseudo-vraisemblance de toute l’image sont fusionnées.
  • fin

Les fusions successives s’arrêtent lorsque des régions de couleurs différentes tentent d’être fusionnées. 

Inconvénient :

  • la prise en compte des interactions spatiales et colorimétriques entre les pixels , bien qu’adaptée à la segmentation d’images couleur de scènes extérieures, s’avère coûteuse en temps de calcul. 

Segmentation par approche contours

La détection de contour n’est en général qu’une étape préliminaire dans la reconnaissance d’objet car elle fournit plus des informations sur les régions que les régions elle-même et doit donc être complétée par un algorithme de segmentation région. Cependant on peut dire que les contours constituent des indices riches, au même titre que les points d’intérêts, pour toute interprétation ultérieure de l’image et méritent donc d’être traités à part. Les contours dans une image proviennent des : 

  • discontinuités de la fonction de réflectance (texture, ombre),  
  • discontinuités de profondeur (bords de l’objet), 

et sont caractérisés par des discontinuités de la fonction d’intensité dans les images.

Le principe de la détection de contours repose donc sur l’étude des dérivées de la fonction d’intensité dans l’image :

  • les extréma locaux du gradient de la fonction d’intensité d’une part
  • et les passages par zéro du laplacien d’autre part.

Ces deux approches ont pour principe d’assimiler les contours aux discontinuités d’ordre 0 de la fonction d’intensité. Hors le calcul de dérivée nécessite un préfiltrage des images. Les filtres sont linéaires dans le cas de bruit de moyenne nulle ou non linéaire pour les bruits impulsionnels.

Les inconvénients sont le plus souvent due à la présence de bruit dans les images.

Les différentes approches existantes peuvent être réparties selon la manière d’estimer les dérivées de la fonction d’intensité :

  • par différences finies (opérateurs de Roberts, de Prewitt, de Sobel (très populaire), de Kirch, de Robinson)
  • par filtrage optimal (filtres de Shen-Castan, de Deriche, filtre Gaussien)
  • par modélisation de la fonction d’intensité

A partir de l’exploitation de la théorie des opérateurs et filtres précédents on peut écrire les algorithmes pour les différentes approches de détection de contours :

1) détection des contours via les gradients

L’algorithme peut donner :

  • estimation du gradient en chaque point de l’image, utilisation au choix d’un filtre parmis :
        filtre de Canny
        filtre de Deriche
        filtre de Shen-Castan
    (pour l’essentiel) 
  • extraction des maxima locaux de la norme du gradient dans la direction du gradient 
     cela revient à déterminer, pour un pixel donné, les valeurs du gradient sur la droite passant par le pixel et de direction celle de son gradient. On vérifie ensuite que le gradient en le pixel est bien localement maximal sur cette droite. 
  • sélection des maxima locaux significatifs par seuillage 
          but : limiter la fragmentation des contours obtenus ; 
          Cette étape repose sur une hypothèse de connexité. Le principe est d’utiliser deux seuils pour la norme du gradient sb et sh et de sélectionner les pixels pour lesquels :
               (a) la norme du gradient est supérieure à sb
               (b) le pixel donné est connecté, par un chemin constitué de pixels dont la norme du gradient est supérieure à sb, à un pixel pour lequel la norme du gradient est supérieure à sh. 
  • fermeture des contours en traçant les chemins suivant une ligne de crète dans l’image de la norme du gradient
    Idée : suivre une ligne de crète dans l’image de la norme du gradient à par tir de chaque extrémité de contour. 
          1- Repérer les points extrémité (énumération des configurations possibles) 
          2- Choix entre les points candidats : on explore tous les chemins possibles à par tir de chaque point candidat. Le poids d’un chemin peut être défini comme la somme de la norme du gradient en chacun de ses points

2) détection des contours suivant le laplacien

Les points de contour sont caractérisés par des passages par zéro du laplacien. La détection de ces points s’effectue en deux étapes :

  • Détection des passages par zéros. Les pixels pour lesquels le laplacien change de signe sont sélectionnés.
  • Seuillage des passages par zéros de fortes amplitudes (par hystérésis par exemple)

Référence

Exemple d’algorithme de segmentation approche régions

1) Méthode région par fusion itérative
issu de ‘Efficient Graph-Based Image Segmentation’

Principe :
construction d’un graphe à partir de l’image et de ses pixels.
méthode par fusion itérative des composants de l’image

Méthodologie :

Algorithme de segmentation

Méthodologie de segmentation

Algorithme de segmentation :
en entrée : le graphique G=(V,E) avec n éléments et m arcs 
     les éléments sont à l’origine les pixels
     les arcs sont la matérialisation de l’adjacence des pixels auxquels on affecte un poids correspondant               à la valeur donnée par le critère de différence
en sortie : une segmentation de l’image en composants S=(C1,…,Cr) 

  1. Trier E en pi = (o1,…,om), selon les poids des arcs non décroissants
  2. initialement (segmentation initiale ou S(0)) chaque élément est son propre composant
  3. répéter l’étape 4 pour q=1,…,m
  4. construction de S(q) à partir de S(q-1)
    vi et vj sont deux éléments connectés par le q ième arcs selon l’ordre défini plutôt.
    si vi et vj sont dans des composants disjoints (respectivement Ci(q-1) et Cj(q-1))
    et si le critère de différence est petit comparé à la différence interne propre aux deux composants
          alors on unie les deux composants.
    sinon rien 
    S(q) est donc obtenue à partir de la fusion éventuelle de Ci(q-1) et Cj(q-1) sinon S(q) = S(q-1)
  5. on renvoie S=S(m)

Le document source détaille les critères de similitude/différence.

Segmentation par classification/seuillage

Ce type de segmentation a pour objectif d’affecter chaque pixel à une classe unique.

Les méthodes sont :

  • les méthodes de seuillage pures
  • les méthodes de nuées dynamiques (K-moyenne)
  • les méthodes par minimisation de variance
  • les méthodes par détection de vallées
  • les méthodes de classification bayesienne
  • les méthodes neuronales
  • les méthodes de classification floue

Ces types de méthodes présentent les inconvénients 

  • du choix du nombre de classe (approches non supervisées)
  • du choix des attributs 

Les deux étant peu aisés à déterminer.

Présentation rapide des différentes méthodes :

1) Méthode de seuillage par détection de vallée

Cette méthode se base sur l’histogramme des niveaux de gris :

  • Recherche des minima locaux de l’histogramme normalisé
  • Positionnement des seuils de classification sur ces minima locaux (multiseuillage)

Remarques sur cette méthode :

  • Résultats assez moyens sur histogrammes bruités
         nombreuses irrégularités = mauvaise détection des minima locaux
  • Assez peu utilisée malgré des techniques d’amélioration de la robustesse par des algorithmes de type lissage d’histogrammes
     

2) Seuillage par minimisation de variance

Cette méthode se base sur la répartition des pixels en K classes : c’est un problème classique de classification.

  • on minimise l’intertie intra-classe
  • on maximise l’inertie inter-classe

Algorithme de Otsu

  • on balaie toutes les valeurs de seuil possible T
  • pour chaque seuil T
    on calcule les moyennes et les variances de chaque classe
    on s’intéresse à la variance intra-classe

fin algorithme ? manque de détail dans mes sources

3) méthode de seuillage par classification bayésienne

Cas de ncl classes

  • Hypothèse :  chaque classe suit une répartition gaussienne
  • Meilleurs seuils = ceux qui minimisent l’erreur de classification
  • Soient μi et μj 2 moyennes successives rangées dans l’ordre croissant, on a :

t_ij = (μi+μj)/2+σ^2/(μi-μj) log(P_j/P_i)

L’affectation des pixels :

  • i=1
  • pour j allant de 2 à ncl
           si intensité_pixel >tij alors i=j 
    finpour
  • affecter le pixel à la classe Ci

Remarques :

  • Ne tient pas compte du voisinage du point considéré
  • Peu performant pour les images complexes

4) méthode de seuillage par hystérisis

Algorithme :

1. Choisir 2 niveaux de seuil (global)
            TL: faire ressortir les éléments désirés incluant des détails non pertinents 
            TH: éléments désirés, avec des manquements 
2. Marquer tous les pixels >TH
3. Pour tous les pixels adjacents aux pixels marqués :
            marquer si >TL
4. Répéter 3 pour tous les pixels marqués dans 2
5. fin 

Référence :