Deeder.fr

Tribulations d'un geek...

Aller au contenu | Aller au menu | Aller à la recherche

Prouvons le paradoxe de Monty Hall

Il y a très exactement 5 ans, sur ce blog, je vous parlais du paradoxe de Monty Hall que je vous prouvais avec les mains. Comme tout paradoxe mathématique, il parait au premier abord quelque peu contrintuitif jusqu'à ce qu'on se penche vraiment sur le problème. Je vous propose de revenir sur ce problème et de le prouver de deux façons : une approche pratique à l'aide d'une simulation informatique pour vérifier ou infirmer notre intuition, et une approche mathématique un peu plus formelle à l'aide du théorème de Bayes.

Chèvre

L'énoncé

Le problème énoncé pour la première fois en 1975 est le suivant : un jeu télévisé met en scène 3 portes. Derrière deux d'entre elles se cachent une chèvre et derrière la troisième se cache une voiture, réparties au hasard. Le candidat (sauf s'il s'agit d'un véritable ami des bêtes) va donc tenter de deviner derrière quelle porte se cache la voiture pour tenter de la gagner. Le présentateur sait ce qui se trouve derrière chacune des portes et le jeu se déroule en plusieurs temps :

  • Le joueur choisit tout d'abord une porte au hasard
  • Sur les deux portes restantes, le présentateur en dévoile une derrière laquelle se trouve une des chèvres
  • Puis on demande alors au candidat s'il souhaite conserver son choix ou changer pour sélectionner l'autre porte

La question est alors la suivante : le joueur a-t-il intérêt à changer de porte ?

La première idée qui vient à l'esprit est que le choix est équiprobable et que, peu importe son choix, le joueur a 50% de chances de gagner. Mais est-ce aussi simple que ça ?

Simulation

Pour vérifier notre intuition, créons une simulation simple à l'aide d'un petit script simple en python. Ce script assez simple se déroule en 4 étapes principales :

  • On simule le placement de la voiture grace à \(repartirVoiture()\). Le choix est fait au hasard entre les 3 portes, avec une probabilité identique pour toutes les portes.
  • On simule le choix du candidat avec \(simulerChoixCandidat()\). Là, on peut faire un peu ce qu'on veut : rendre le choix aléatoire, choisir toujours la même porte ou s'en remettre aux astres si vous le voulez, ça ne changera pas le résultat.
  • On simule l'ouverture d'une porte derrière laquelle se trouve une chèvre avec \(ouvrirPorte()\). On considère que le présentateur sait ce qui se cache derrière chacune des portes, il ouvre donc la première porte derrière laquelle se trouve une chèvre. Mais on pourrait très bien choisir une des deux portes restantes aléatoirement également si on le voulait.
  • On simule le changement d'avis du candidat par \(changerChoix()\) le cas échéant

Ensuite, on compare tout simplement les résultats pour un grand nombre de candidats entre le choix initial et le changement de choix et on regarde les résultats. Voici donc les détails du code de la simulation :

import numpy as np

def repartirVoiture(n):
    '''Repartition aleatoire des voitures pour n emissions'''
    voitures = np.random.randint(0, 3, n)
    return voitures

def simulerChoixCandidat(n, mode='random'):
    '''Simulation des choix des candidats pour n emissions (soit aleatoire, soit toujours le meme)'''
    if mode is not 'random':
        choix = np.array([1]*n)
    else:
        choix = np.random.randint(0, 3, n)
    return choix

def ouvrirPorte(prix, choix):
    '''Ouverture d'une porte par le presentateur en fonction de la position de la voiture et du choix du candidat'''
    portesOuvertes = np.zeros(choix.shape)
    for i, x in enumerate(prix):
        for k in [0, 1, 2]:
            if k != x and k != choix[i]:
                portesOuvertes[i] = k
    return portesOuvertes

def changerChoix(choix, portesOuvertes):
    '''Le candidat decide de changer de choix apres l'ouverture de la porte par le presentateur'''
    secondChoix = np.zeros(choix.shape)
    for i, x in enumerate(portesOuvertes):
        for k in [0, 1, 2]:
            if k != x and k != choix[i]:
                secondChoix[i] = k
    return secondChoix

def afficherResultats(choixFinal, prix):
    '''Afficher les taux de gain en pourcentages'''
    mask = choixFinal == prix
    pc = mask.sum() / float(len(mask)) * 100
    return pc

n = 10000
choix          = simulerChoixCandidat(n)
prix           = repartirVoiture(n)
portesOuvertes = ouvrirPorte(prix, choix)
secondChoix    = changerChoix(choix, portesOuvertes)
print 'Reussite sans changement : %0.2f%%' % afficherResultats(choix, prix)
print 'Reussite avec changement : %0.2f%%' % afficherResultats(secondChoix, prix)

Quand on lance le script, il nous retourne les résultats suivants:

Reussite sans changement : 32.90%
Reussite avec changement : 67.10%

Contrairement à nos premières intuitions, il semblerait que les candidats qui choisissent de changer de porte soient plus chanceux que les autres : 67% de gagnants contre 33% pour ceux qui campent sur leurs positions ! Je vous l'accorde, c'est un peu contre-intuitif, mais ça n'est pas complètement aberrant. Essayons de comprendre pourquoi avec quelques équations...

Mise en équations

En fait, généralement, on part du principe que la voiture a autant de chance de se trouver derrière n'importe quelle porte puisqu'elle est répartie de façon aléatoire. Du coup, si l'on note \(P(V_i)\) la probabilité que la voiture se trouve derrière la porte \(i\), on a \(P(V_1) = P(V_2) = P(V_3) = \frac{1}{3}\). Jusque là, le raisonnement est vrai, du moins au début, pour le premier choix !

Cependant, on néglige un point particulièrement important : la suite des évènements nous apporte des informations supplémentaires sur le jeu. En effet, le présentateur, qui sait ce qui se trouve derrière les portes, ouvre délibérément une des deux portes restantes. Du coup, il nous apporte une information supplémentaire sur la porte qu'il n'a pas ouverte : s'il ne l'a pas ouverte, c'est qu'il y a plus de chances que la voiture se cache derrière. Par contre, il n'apporte aucune information sur la première porte choisie puisque de toute façon il ne peut pas l'ouvrir.

Du coup, admettons que nous ayons choisi la porte 1 et que le présentateur ouvre la porte 2. Alors \(P(V_1) = \frac{1}{3}\) reste inchangée par rapport au choix initial. La porte 2 est ouverte par le présentateur, du coup \(P(V_2) = 0\). Et enfin \(P(V_3) = 1 - P(V_2) - P(V_3) = \frac{2}{3}\) augmente du même coup.

Essayons de valider notre nouveau raisonnement mathématiquement à l'aide du théorème de Bayes. Pour rappel, son énoncé est le suivant :

Soit \(P(A|B)\), la probabilité de A sachant B et \(P(A)\) la probabilité de A. Alors,

\[P(A|B) = \frac{P(B|A)P(A)}{P(B)}\]

Utilisons d'appliquer ce théorème de Bayes à la résolution de notre petit problème. Comme tout à l'heure, au hasard, choisissons la porte 1. Puis, considérons que le présentateur, lui, nous montre une chèvre derrière la porte 2. Soit \(V_1\) l'évènement "la voiture se trouve derrière la porte 1" et \(C_2\) "le présentateur montre la chèvre derrière la porte 2". Alors, en utilisant la formule ci-dessus, on peut calculer \(P(V_1|C_2)\) la probabilité que la voiture soit derrière la porte 1 sachant que le présentateur ouvre la porte 2 :

\[P(V_1|C_2) = \frac{P(C_2|V_1)P(V_1)}{P(C_2)}\]

A ce point, il y a plusieurs subtilités :

  • Le présentateur, sachant que la voiture est derrière la porte 1 choisie par le candidat, peut ouvrir indifféremment la porte 2 ou la porte 3. On a donc \(P(C_2|V_1) = P(C_3|V_1) = \frac{1}{2}\)
  • \(P(V_1) = \frac{1}{3}\) car à la base, la voiture est répartie de manière équiprobable derrière l'une des 3 portes.
  • Le plus compliqué reste de calculer le dernier terme, ce que je vais tâcher de vous expliquer juste après.

Une astuce consiste à se rappeler que l'on peut décomposer le dénominateur comme suit : \(P(C_2) = P(C_2|V_1)P(V_1) + P(C_2|V_2)P(V_2) + P(C_2|V_3)P(V_3)\). En effet, la probabilité \(P(C_2)\) est la somme de chacune des probabilités conditionnelles multipliée par la probabilité de cette condition.

Or, \(P(V_1) = P(V_2) = P(V_3) = \frac{1}{3}\) car la voiture est encore une fois positionnée au hasard selon une loi uniforme.

Enfin, nous avons déjà déterminé que \(P(C_2|V_1) = \frac{1}{2}\). De même \(P(C_2|V_2) = 0\) car le présentateur ne va pas ouvrir la porte si la voiture se trouve derrière ! \(P(C_2|V_3) = 1\) car si le candidat choisit la première porte et que la voiture est derrière la troisième, le présentateur n'a d'autre choix que d'ouvrir la porte du milieu.

Du coup, on obtient :

\[P(V_1|C_2) = \frac{\frac{1}{2} \times \frac{1}{3}}{\frac{1}{2} \times \frac{1}{3} + 0 \times \frac{1}{3} + 1 \times \frac{1}{3}} = \frac{1}{3}\]

On a donc 33% de chance de gagner en campant sur nos positions originelles. On peut faire un calcul analogue pour \(P(V_3|C_2)\) et sans surprise on obtient :

\[P(V_3|C_2) = \frac{P(C_2|V_3)P(V_3)}{P(C_2)} = \frac{1 \times \frac{1}{3}}{\frac{1}{2} \times \frac{1}{3} + 0 \times \frac{1}{3} + 1 \times \frac{1}{3}} = \frac{2}{3}\]

Et tout ça colle bien avec notre simulation ! On retombe donc sur nos pieds.

Conclusion

On vient donc de voir comment une simple information donnée par le présentateur change totalement la donne et permet d'établir une stratégie gagnante. Attention, ça ne veut pas dire qu'en adoptant la stratégie adaptée vous gagnerez, mais vous maximisez vos chances de gagner. Et ces probabilités de gain peuvent se calculer relativement facilement à l'aide du théorème de Bayes qui est finalement un outil assez simple tant qu'on comprend les probabilités que l'on manipule et que l'on calcule. Alors à vos équations... Prêts ? Partez !

Poster du code et des équations sur Dotclear 2

Depuis quelques temps, je cherchais une solution élégante et efficace pour poster à la fois du code et des équations sur Dotclear pour poster ici même quelques billets un peu plus techniques à l'avenir. J'ai fini par trouver mon bonheur, du moins sur le papier. L'usage déterminera si ces solutions sont vraiment bonnes ou non.

Insérer du code dans Dotclear

Pour ce qui est du code, j'ai choisi d'utiliser le plugin YASH (pour Yet Another Synthax Highlighter) qui encapsule le SyntaxHighlighter d'Alex Gorbatchev en utilisant la syntaxe wiki de l'éditeur Dotclear. Celui-ci a le mérite d'effectuer le parsing et d'appliquer une coloration syntaxique pour de nombreux langages différents. Différentes CSS sont disponibles par défaut ainsi que quelques petits add-on tels que la numérotation des lignes et la sélection du texte facilitée par un double clic sur le code.

Ensuite, pour insérer une portion de code, rien de plus simple :

///yash python
def distance(a, b)
    '''Calcule la distance L1'''
    r = abs(a - b)
    return r
//./

Le point dans la dernière ligne a bien entendu été ajouté afin qu'elle ne soit pas interprétée par le parser, vous pouvez donc l'enlever dans votre cas.

Ce code nous donne donc :

def distance(a, b)
    '''Calcule la distance L1'''
    r = abs(a - b)
    return r

C'est simple, élégant et efficace. Pour l'usage que je veux en faire, c'est très bien !

Insérer des équations dans Dotclear

Pour les équations, c'est tout de suite plus compliqué car il n'existe à ce jour aucun plugin permettant d'écrire des équations MathML ou d'embarquer des équations LaTeX dans Dotclear.

Je me suis naturellement tourné vers MathJax qui est une solution que nous utilisons également dans mon entreprise. L'avantage de MathJax est qu'il peut à la fois être installé sur son propre serveur mais il est également disponible en tant que web-service via un Content Delivery Network (CDN), une sorte de cloud qui permet au lecteur de recevoir les images depuis le serveur le plus proche. Cette méthode est parfaite pour ne pas se casser la tête à installer et maintenir MathJax à chaque mise à jour.

Il suffit donc d'insérer le script suivant :

<script type="text/javascript"
  src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

ou une de ses variantes selon la configuration que vous souhaitez parmi celles expliquées dans la documentation en ligne et le tour est joué. MathML étant principalement faite pour écrire des équations depuis un éditeur WYSIWYG, je vous conseille d'écrire les équations en \(\LaTeX\) qui est plus efficace pour une petite main humaine.

Il suffit ensuite d'écrire vos équations avec la syntaxe suivante dans un code HTML pour les équations en bloc :

\[e^x = \sum_{n=0}^{+\infty}{\frac{x^n}{n!}}\]

Ce qui nous donne :

\[e^x = \sum_{n=0}^{+\infty}{\frac{x^n}{n!}}\]

Et les équations en ligne ont leur pendant (qui marche cette fois-ci sans le conteneur HTML) ci-après :

\(e^{i\Pi} + 1 = 0\)

Ce qui permet d'écrire l'équation d'Euler \(e^{i\Pi} + 1 = 0\) en plein milieu d'une phrase comme c'est le cas ici.

En suivant ces quelques conseils, vous pouvez en quelques minutes rendre votre blog Dotclear opérationnel pour traiter des sujets techniques, des vrais, avec un confort de lecture et d'écriture non négligeables. De mon côté en tout cas, je ne vais pas m'en priver ! ;)

Et pendant ce temps, au dessus de nos têtes...

Et si on prennait quelques minutes pour flanner au dessus des nuages ? L'entreprise NATS spécialisée en solutions de surveillance et de contrôle de l'espace aérien a créé une petite vidéo permettant de visualiser le balai qui a lieu au dessus de nos têtes. En effet, cette petite vidéo montre comment plus de 2500 avions traversent l'atlantique chaque jour d'été et se croisent sans même se voir dans l'immensité des airs. Au final, tout cela est plutôt élégant et permet de représenter de manière efficace la densité du trafic aérien que l'on ne soupçonne pas. Sympa non ?

Les infographies cassent-elles le web ?

C'est devenu une nouvelle mode : maintenant, tout le monde partage des infographies ou dataviz pour "data-visualisation". Plus facile à appréhender et plus sexy qu'un long texte, quelques graphiques ou une mise en forme bien pensée d'une information pertinente peut servir à faire passer un message de manière plus pertinente et plus virale qu'un article bien conçu. Il serait dommage de se priver de ce moyen de communication.

stats.jpg

Cependant, l'avalanche de données qui circulent pendant quelques jours sur nos écrans finit inévitablement par se perdre au fin fond du web. Données non commentées ou périssables, images non référençables, il serait peut être temps de redonner un peu de sens aux infographies...

Lire la suite...

Faire renaître de ses cendres une batterie LP-E6 Canon

J'ai récemment commandé l'EOS 70D de chez Canon (un test prochain test à venir ? ;-) ) pour remplacer mon vieillissant réflex d'entrée de gamme. Malheureusement, j'ai eu quelques déconvenues avec la batterie fournie (LP-E6 de son petit nom, également compatible avec les EOS 60D, 7D et le 5D Mark II) qui refusait de se charger lors de la première charge. Avec l'aide du support de Canon, tout est rentré dans l'ordre. Si vous avez le même problème, voici comment le régler rapidement...

canon-lp-e6.jpg

Lire la suite...

Google Refocus, de la stéréo au bokeh

Décidément, le refocusing est à la mode. Après Nokia, c'est au tour de Google de proposer la même fonctionnalité en natif avec la mise à jour de son application Camera pour Android. Même si dans l'idée les deux fonctionnalités sont similaires, l'approche de Google est totalement différente de celle de Nokia. Petit focus sur deux approches de refocus...

refocusExampleGoogle.png

Lire la suite...

Légiférons sur la collecte et l'utilisation des données personnelles

Big data, internet des objets, réseaux sociaux, cloud computing : nos données sont dématérialisées et parcourent les quatre coins du globe avant d'être stockée on ne sait où par on ne sait qui et d'être réutilisées on ne sait comment. Ça commence à faire beaucoup d'inconnues pour des données que l'on génère et qui nous appartiennent... en théorie ! Je dis bien en théorie car bien souvent, nous acceptons sans même les lire des conditions d'utilisation qui nous dépossèdent totalement de ses données à notre insu. Il est temps que cela change !

locks.jpg

Lire la suite...

Revues scientifiques et universités : la guerre est déclarée...

Un article de Rue89 a attiré mon attention sur un sujet dont j'ignorais jusqu'à présent l'existence : la guerre entre universités et revues scientifiques. Alors que ces dernières profitent du fait de prendre pleinement part au processus d'évaluation et de classement des universités pour augmenter continuellement (et de manière parfois abusive) leurs tarifs, les établissements universitaires du monde entier voient sans cesse leur budget être révisé à la baisse. Cela conduit à des situations ubuesques.

research.jpg

C'est ainsi que l'université Pierre et Marie Curie (UPMC) ou encore l'université Paris-V décident d'arrêter leur abonnement à certaines de ces revues. Mais les contentieux ne se cantonnent pas à nos frontières puisque le syndrome semble être le même en Belgique ou encore à l'université de Montréal.

On peut alors se demander comment vont évoluer les conditions de travail des chercheurs qui ont besoin de ces revues afin d'effectuer une veille permanente sur leurs domaines d'activité respectifs, de se comparer à leurs pairs et même de s'en inspirer afin de dépasser leurs performances. La solution réside peut-être dans une refonte du système d'évaluation de la recherche dans son intégralité, mais ce processus sera sans doute long et fastidieux.

Certaines initiatives telles Google Scholar vont déjà dans ce sens, mais cela sera-t-il suffisant ? A l'heure de l'internet et de la libre circulation des idées et des savoirs, il serait probablement temps d'entreprendre ce chantier, mais cela ne se fera probablement pas sans casse lors de la période transitoire qui mènera à cette nouvelle organisation...

Source : Dans les universités, désabonnements en masse aux revues scientifiques

Un peu de lecture : le rapport du CES 2014 est de sortie !

Si vous êtes ici, c'est que vous êtes probablement un peu geek sur les bords. Dans ce cas vous êtes probablement déjà tombé un jour sur le génialissime rapport annuel du CES d'Olivier Ezratty. Ce rapport couvre de long en large le légendaire salon de Las Vegas et est très instructif.

On voit ainsi, à travers ce livre blanc, se dessiner les évolutions macroscopiques des différents marchés, de l'internet des objets à la télévision, mais également les tentatives de différenciations et les stratégies des différents acteurs d'un même marché avec une couverture détaillée des technologies présentées. Et là où ce rapport se démarque des autres conte-rendus que l'on peut trouver ailleurs, c'est qu'au delà de son exhaustivité, Olivier décrypte également certaines pratiques marketing (parfois bien maladroites) et nous accompagne à travers l'exploration des roadmaps des fabricants de semi-conducteurs.

Bref, comme chaque année depuis 2006, c'est un must-read que je vous encourage vivement à parcourir. Vous pouvez trouver ce rapport, ainsi que les précédentes éditions, sur son blog. Bravo à Olivier pour le boulot réalisé et merci de nous en faire bénéficier chaque année !

Revue de Web du 15/01/14

Bonjour à tous ! Je vous souhaite une très bonne année (certes un peu en retard, mais il parait qu'on a un mois pour la souhaiter alors j'ai encore un peu de marge ;) ) et de la réussite dans tout ce que vous entreprenez.

L'actualité a été chargée ces derniers jours avec notamment le CES 2014 de Las Vegas qui a vu émerger son lot de nouveautés : objets connectés à tout va, prolifération de la 4K dans les périphériques de capture et d'affichage grand public, nouvelles tendances tech... Je partage donc ici et avec vous la crème des innovations de ce début d'année.

  • La meilleure innovation du CES selon moi : Intel a présenté un ordinateur qui tient dans un support de la taille d'une carte SD. Regardez à quoi ressemblaient les ordinateurs il y a 10 ans avec leur grosses tours et leurs faibles capacités calculatoires et leurs 2Go de stockage. Regardez à nouveau votre smartphone ou cette "SD card" et mesurez l'effort de miniaturisation fourni par l'industrie : c'est tout bonnement impressionnant !
  • Les tours traditionnelles on vécu. Il est peut être temps de passer à autre chose. Et c'est ce que propose Razer avec Christine, un concept qui permet d'associer n'importe quel composant sur une tour universelle avec une connectique unique : monter un PC selon ses envies et ses besoin devient aussi facile que de jouer aux Lego.
  • Les objets connectés sont à la mode, ça on le sait. Et on trouve aujourd'hui des pèse-personne, des bracelets ou encore des vêtements qui récoltent tout un tas de données que l'on peut analyser pour améliorer notre quotidien. Une perspective prometteuse mais qui nécessitera certainement de légiférer et d'encadrer l'utilisation et le stockage des données personnelles. Ceci étant dit, une nouvelle tendance commence à émerger : les objets sensoriels : on cherche à dématérialiser les sens pour les transmettre à distance et redonner un peu d'humanité à nos moyens de communication. C'est pas encore tout à fait au point mais TapTap, le bracelet connecté vibrant fait partie de cette mouvance, tout comme Scentee dont j'avais déjà parlé ici.
  • Des lunettes à 1$ pour les marchés émergents ? En voilà une bonne idée ! Des montures simples auxquelles on ajoute des verres standards avec des corrections échelonnées de +6 à +6 dioptries et le tour est joué. De quoi améliorer le quotidien de nombre de personnes qui n'ont aujourd'hui pas accès à ce genre de soins optiques.
  • Je ne pouvais pas ne pas en parler : l'Académie Française a enfin statué sur l'emploi du mot "digital" en lieu et place de "numérique". C'est pertinent et drôle. Je crois que le môssieur s'est un peu énervé. Et il y a de quoi !

En ces temps politiquement sombres, je trouve toute cette innovation rafraichissante, pas vous ? ;-)

Revue de Web du 01/12/13

C'est parti pour une nouvelle sélection de liens hebdomadaire, avec du drôle et du moins drôle, du récent et du plus vieux :

J'ai loupé quelque chose ?

Google veut vous donner accès aux raws sur Android. Concrètement ça change quoi ?

Ceci est plutôt une bonne nouvelle pour les accros à la photo mobile : Google aurait sur le feu une mise à jour de l'API de l'appareil photo permettant de traiter les images raw en sortie de capteur, permettant ainsi d'augmenter significativement la qualité des images prises sous Android à l'aide d'algorithmes plus complexes. Pourquoi est-ce une si bonne nouvelle ?

Le Raw, qu'est-ce que c'est ?

Une image raw est une image telle qu'obtenue en sortie de capteur, avec un traitement minimal de l'information effectuée sur cette dernière. L'image n'est pas regardable en tant que tel : il s'agit d'une succession de pixels rouges, bleus et verts organisés spatialement sous la forme d'un motif périodique dont le plus répandu est le Bayer (voir image ci-dessous). On dispose généralement de deux fois plus de pixels verts que les autres pour singer la sensibilité de l'oeil qui est lui aussi deux fois plus sensible au vert qu'au rouge ou au bleu.

Filtre bayer

Lire la suite...

Revue de Web du 17/11/13

Salut à tous ! Voici une petite sélection de liens intéressants glané tout au long de cette semaine à travers la toile. Idéal pour une petite lecture dominicale.

C'est tout pour aujourd'hui ! Et vous ? Vous avez des liens intéressants à partager ?

Nokia Refocus : un Lytro cheap en focus stacking

Nokia a fait le buzz en présentant la semaine dernière son appli de refocussing sur son mini-site dédié. Les liens étroits entre cette fonctionnalité nouvellement dévoilée et celles de l'appareil photo plénoptique vendu par Lytro dont je vous avais déjà parlé ici ne font aucun doute. Sauf qu'on a bien à faire à des technologies complètement différentes...

Focus au premier plan avec Nokia Refocus

Pour résumer, l'appli en question permet de faire le focus a posteriori sur les différentes zones d'une photo ou sur l'intégralité de l'image en augmentant artificiellement la profondeur de champ. Ainsi il devient difficile de rater les images prises avec un téléphone à l'auto-focus bien souvent capricieux.

Focus à l'arrière plan avec Nokia Refocus

Lytro et la reconstruction de la profondeur de la scène

L'appareil photo de Lytro cherche à déduire la profondeur de la scène sur un principe proche de celui du fonctionnement de l'oeil humain. La caméra plénoptique contient plusieurs capteurs et des jeux de lentilles complexes disposés de telle sorte à ce que les chemins optiques passant par l'un ou l'autre des capteurs soient différents.

C'est un peu comme vos yeux qui voient chacun deux images différentes avec des objets plus ou moins décalés en fonction de leur distance. Le cerveau fait ensuite le reste en opérant une reconstruction 3D à partir de cet écartement. Cette vision stéréoscopique est également à la base de la 3D au cinéma.

Lytro fonctionne exactement sur le même principe, mais avec davantage d'images d'entrée et le rôle du cerveau dans la reconstruction 3D est remplacé par quelques calculs effectués sur le processeur de votre ordinateur. Il effectue ainsi une vraie reconstruction de la profondeur de la scène grâce à la redondance d'information et peut appliquer un flou cohérent sur l'image. L'inconvénient est que la circuiterie optique est encombrante et que les calculs sont assez lourds et cela se voit sur le form-factor de l'objet et sur la résolution assez faible des images de sortie.

Nokia et le focus stacking

Nokia a choisi une approche totalement différente pour son appli. Les téléphones peuvent prendre des photos à un framerate[1] toujours plus élevé. Dans un téléphone classique, lors de la mise au point, le téléphone déplace la lentille entre chaque image puis effectue une mesure de netteté sur l'image (plus exactement sur une portion de celle-ci: la ROI). Il choisit ensuite l'image la plus nette. Tout ça se passe à chaque fois que vous souhaitez prendre une photo. Selon que l'on décide d'avoir le premier plan ou l'arrière plan net, on ne choisit pas la même ROI.

Comment changer la mise au point à posteriori ? Sur l'intégralité de la plage totale de focus, on peut donc obtenir plusieurs images correspondant à différentes régions nettes de l'image. Il suffit ensuite d'en sélectionner quelques unes et de les stocker et d'afficher l'image la plus nette dans la région dans laquelle l'utilisateur clique. Jusque là rien de très compliqué.

Là où ça se complique, c'est lorsque l'on veut faire une image avec tous les plans nets (voir image ci-dessous) à partir de toutes ces images pour lesquelles un seul plan est net. Il faut fusionner le contenu des différentes images stockées en ne gardant que ce qui est net et en supprimant les zones floues : c'est ce qu'on appelle du focus stacking. En soit c'est assez simple, sauf pour les raccords ! Faisons une petite expérience : regardez au loin, fermez un oeil et approchez votre doigt de votre oeil ouvert. Il devient flou, parait plus large et, chose importante, vous commencez à voir à travers sur les bords de celui-ci.

Tous les plans sont en focus

Il se passe exactement la même chose sur un objet à l'avant plan quand vous faites le focus à l'arrière plan avec n'importe quel appareil photo : l'objet flou au premier plan bave sur l'arrière plan. Du coup, séparer les deux est une vraie galère. C'est pour ça qu'on peut observer des artefacts sur les images fournies par Nokia à la jonction de deux plans aux focus très différents (voir photo ci-dessous: le bord de la main devrait être net, mais il devient flou à cause d'un problème de fusion d'images).

Artefacts sur les bords des objets

Pour pouvoir reconstruire correctement les bords, il faudrait une information spatiale supplémentaire pour savoir quelle est l'information cachée derrière la partie où l'avant plan bave, ce que Lytro fait très bien grâce à son système optique. Si on utilise uniquement une variation de focus, il nous manque une partie de l'information : que se cache-t-il derrière les zones d'occultation situées sur les bords des objets ?

Conclusion

Nokia Refocus permet de faire un Lytro à moindre coût et sur des images à plus haute résolution car il nécessite beaucoup moins de calculs. Mais cette solution simplifiée à un coût au niveau qualitatif puisque les transitions entre les objets éloignés ne peuvent pas être correctement reconstruites à cause d'un manque d'information. Ceci dit, il s'agit d'un compromis acceptable pour une appli légère et utilisée ponctuellement.

Note

[1] Nombre d'images par seconde

Back to buisiness

Ca y est, le nouveau thème est presque fini et c'est l'occasion de relancer le blog ! Tout a été migré vers le nouveau domaine. Les plâtres ne sont pas encore poncés et ça nécessite encore quelques touches de déco sur les murs mais c'est au moins mis au propre et fonctionnel.

Ce qu'il reste à faire :

  • Le site n'est volontairement pas compatible sous les vieux navigateurs afin de profiter des avancées de CSS3. Cependant il reste à minimiser le désagrément en terme de navigabilité sur ces supports
  • Retrouver un backup de ces foutues images qui se sont retrouvées corrompues à l'export...
  • Peaufiner le style (menus, commentaires, listes)
  • Faire le tri dans les anciens billets
  • Mettre à jour le contenu des pages statiques et ajouter un peu d'images pour agrémenter tout ça
  • Faire une CSS mobile pour améliorer l'expérience utilisateur sur ces devices
  • Dormir

En attendant si vous observez des bugs, ou si vous avez des remarques, n'hésitez pas à les partager en commentaire ou via le formulaire de contact.

Scentee : et si on rajoutait un sens à votre smartphone ?

Une fois n'est pas coutume, alors que la tendance est plutôt à l'ajout de capteurs en tous genres et à l'augmentation des capacité de traitement en temps réel de l'information qu'ils délivrent, je vous présente cette fois un actionneur un peu particulier puisque Scentee va modifier l'univers des notifications en ajoutant un diffuseur d'odeurs à votre smartphone.

Scentee

Ce petit diffuseur de parfum se connecte facilement à votre smartphone et son application associée vous permet de configurer toutes les sortes de notifications. Adieu le vibreur et les bonnes vieilles leds, maintenant vous allez pouvoir sentir que vous avez reçu un SMS.

Bon, vous pouvez dormir tranquille, a priori l'appareil ne permet aujourd'hui de diffuser qu'une seule senteur à la fois parmi un catalogue assez classique et limité à une douzaine de parfums dont jasmin, menthe, fraise ou encore curry par exemple. Votre voisin ne pourra donc pas laisser libre cours à son imagination pour mixer les parfums en créant des odeurs aussi entêtantes que nauséabondes.

Le produit disponible sur la version japonaise d'Amazon à partir de 26€. Il est alimenté par des recharges de 2ml avec une autonomie de (seulement) 100 diffusions ou 0.5min de diffusion continue environ pour 3.5€. Ajoutez à ça le fait que le device qui se plug sur la prise jack de votre téléphone n'est pas vraiment discret ni portable et vous conclurez facilement que le vibreur a encore de beaux jours devant lui.

via Frandroid

Attention travaux !

Bonjour cher visiteur ! Si tu es perdu ici par un incommensurable hasard, sache que cette zone est en pleine réfection.

Après deux ans d'inactivité, j'ai décidé de migré le site depuis son ancien nom de domaine à l'abandon vers celui-ci. Le blogging et la liberté d'expression me manquent. Ayant un peu plus de temps disponible ces derniers temps, ils est temps de passer un bon coup de balais. LiberT (nom historique depuis les débuts du site en 2004-2005 et dont j'ai perdu le domaine il y a un an environ) s'efface pour laisser la place à une nouvelle production de contenu sur mon site éponyme (Deeder.fr) jusqu'à présent utilisé en fiche d'identité numérique, regroupant mes contenus disséminés sur la toile.

Les archives vont progressivement être rapatriées et le contenu dépoussiéré et réorganisé. En 7 ans, pas mal d'articles ont pris un petit coup de vieux ! Attention, beaucoup de mouvements sont donc à prévoir dans les prochains jours. Entre le ménage et une bonne couche de peinture fraiche, il est possible que des interruptions de service se fassent sentir de temps à autre. Cependant j'estime que ça ne devrait pas durer trop longtemps.

Dotclear étant en pleine mutation en ce moment, plein de bonnes choses s'annoncent à l'horizon. Eux aussi ont, comme moi, eu une petit passe à vide. Alors on va continuer à supporter les copains encore un peu. Je viens de faire une bonne mise à jour vers la version 2.5.1 et je vais continuer à l'utiliser un moment. Mon ancien thème est tout cassé, alors je repasse sous un thème par défaut en attendant d'un créer un de toute pièce.

A très bientôt, avec du contenu et un contenant tous neufs !

Les dauphins, ces mammifères pas comme les autres

Douglas Adams l’avait souligné il y a déjà plus d’une trentaine d’année[1], les dauphins sont sans conteste l’espèce la plus intelligente de l’univers. On les savait déjà capable de se repérer grâce aux ultrasons, mais il semblerait en fait que les dauphins nous cachent bien des choses et possèdent des dons bien utiles, tel l’électro-sensitivité et le pouvoir de guérir régénérer certaines parties de leur corps.

Dauphin

En effet, une récente étude de la Royal Society montre la présence chez les dauphins de petits poils, disposés dans des pores présents sur la partie supérieure de leur "nez" et sensibles au champ électrique environnant. Ce dispositif, bien que déjà connu chez certains amphibiens, est unique chez un mammifère. Les dauphins obtiennent ainsi la capacité de capter des très faibles champs électriques, de l’ordre de 4,6 microvolts par cm², leur permettant ainsi de localiser des proies enfouies sous le sable.

Une autre de leurs particularités, encore plus intéressante que la précédente, est leur faculté de régénération. Si un dauphin se fait attaquer par un requin, il semblerait que celui-ci puisse guérir ses blessures sans douleur et en régénérant ses tissus sans aucune déformation. Ils fabriquent des cellules souches qui permettent de remplacer le tissus à l’endroit de la morsure. De plus, sa graisse comportant des composants agissant comme des antibiotiques naturels, le dauphin blessé ne subira aucune hémorragie ni ne sera victime d’une infection d’aucune sorte.

Ces nouvelles découvertes ont de quoi réjouir les scientifiques, puisque la compréhension de tels phénomènes biologiques sont d’autant de pistes pour développer de nouveaux médicaments et de nouveaux traitements à assimiler aux personnes blessées. Décidément, les dauphins ont encore beaucoup à nous apprendre… ;-)

Source : Popsci

Notes

[1] Sa théorie est développée dans le quatrième tome de la trilogie en 5 volumes H2G2 intitulé Salut, et merci bien pour le poisson

Bons baisers de Suède

Le charme de la Suède est indéniable. Son petit côté traditionnel et patriote mêlé à une population jeune et dynamique lui donne un parfum bien singulier qui dénote franchement avec celui de la France.

That's Sweden!

Certes, la proximité géographique fait que nous avons beaucoup en commun avec les suèdois. Cependant, le rapport aux gens, à la nature et à la vie est quelque peu différent du notre. Cela est certainement dû au climat exigeant auquel ils sont soumis.

Des journées longues en été, très courtes en hiver, saison qui, du haut de ses 4h d’ensoleillement par jour, parait d’ailleurs interminable. Résultat : au moindre rayon de soleil, les suèdois envahissent plages et pelouses, dégainant les barbecues et peaufinant un bronzage qui laisserait nombre cannoises pantoises.

An old tramway in Göteborg

La communication est simple puisqu’ici, comme dans la plupart des pays du nord, la quasi majorité des gens parlent un anglais à faire pâlir un rosbif et qui nous fait passer, pauvres minorité française baragouinant tant bien que mal dans la langue de Shakespeare, pour des incultes socialement inaptes.

Heureusement que leur gentillesse et leur sens de l’hospitalité est là pour nous mettre en confiance et nous introduire leur culture des plus intéressantes, au détour d’un petit verre d’aquavit, cette eau de vie légèrement aromatisée aux herbes.

On the archipelago

Si le temps le permet, une petite balade en bateau sur un des nombreux archipels ou un détour près de l’un des nombreux lacs ponctuant le pays n’est jamais à refuser. Prochaine étape : le grand nord. On va voir si on peut y construire des igloos ! ;)

Windows supporte enfin le RAW !

Voila une nouvelle qui va réjouir les amateurs de photos : Microsoft a développé un codec permettant la lecture native du format RAW par sa visionneuse d’images ainsi que l’explorateur sur les systèmes Windows 7 et Vista.

Pour ceux qui ne sont pas photographes pour deux sous ou qui n’ont jamais entendu parlé de ce fameux format RAW, il s’agit d’un format de fichier pour les images numériques, tout comme le JPG ou le PNG par exemple. Mais au contraire de ces derniers, il conserve les données directement en sortie de capteur sans aucune compression ou perte d’informations.

En gros, c’est un peu l’équivalent d’un négatif pour la photographie argentique. Parmi ses avantages : une meilleur qualité d’image et un plus grand nombres de paramètres enregistrés, ce qui permet de modifier plus facilement l’image (par exemple, il est possible de corriger la balance des blancs directement sur le fichier RAW comme on le ferait avant la prise de vue).

L’inconvénient de ce format, c’est qu’il n’est pas unique. En effet, il s’agit d’un format propriétaire et donc chaque marque a son propre format, avec son extension qui va bien. En conséquence, cela signifie qu’il faut implémenter un traitement différent des données par constructeur, ce qui explique que le support de ce genre de fichier dans un OS n’aille pas forcément de soi.

Sans données constructeur, la gestion de ses fichiers n’est pas possible à implémenter. C’est dans ces cas là qu’on est content d’avoir affaire à des formats ouverts et standardisés pour la plupart des usages actuels. Jusqu’à présent, il fallait donc user de logiciels spécifiques pour pouvoir lire et manipuler ce genre de fichiers sous Windows.

Bref, si vous voulez savoir si votre appareil photo est supporté et si vous voulez télécharger le codec en question, ça se passer sur le Microsoft Download Center. ;-)

Source : SlashGear

- page 1 de 107