Skip to content

Latest commit

 

History

History
598 lines (568 loc) · 34.4 KB

cs211.md

File metadata and controls

598 lines (568 loc) · 34.4 KB

$$ \def\empty{\mathcal E} \def\R{\mathbb R} \def\m#1{\begin{pmatrix}#1\end{pmatrix}} \def\v#1{\overrightarrow#1} \def\vx{\v{x}} $$

CS211

GNU General Public License v3.0 licensed. Source available on github.com/zifeo/EPFL.

Spring 2015: Introduction à l'Informatique Visuelle

[TOC]

Introduction

  • cognition
    • traiter image
    • générer réponses
    • produire action
  • infographie
    • produire image
    • générer réponses
    • traiter actions
  • informatique visuelle : Human Computer Interaction + infographie + vision
    • réalité augmentée : superposer image digitale sur image physique en temps réel
  • perception
    • vue : image vaut 1000 mots
    • ouïe : verbal
    • toucher
    • odorat
    • goût
  • leçons clées : Human Computer Interaction
    • La capacité de stockage de notre disque dure (mémoire à long terme) est quasi-illimité ; mais notre RAM (mémoire de travail) est limité à 7 ± 2 éléments
    • On « voit » davantage avec son cerveau qu’avec son oeil
    • « Computer vision » n’a pas grand chose à voir avec « human vision »
    • On ne mesure pas la qualité d’une interface avec des questionnaires mais par un test d’utilisation
    • Pas besoin d’avoir un master en psychologie cognitive pour mesurer un effet par une expériences
    • « VisualComputing Expert» : ni psychologue, ni designer, mais un ingénieur qui comprend l’ensemble du système

Styles d'interaction

  • interface : voiture autonome ? vocal, tactile, brain, joystick ?
  • interaction : dépendence de tâche, utilisateur, détails de design et non exclusif
    • languages de commandes : shell
    • WIMP (windows icons menus pointers) : finder
    • manipulation directe : drag & drop, slider
    • formulaires
    • réalité virtuelle : second life, minecraft, haptic device (recrée sens toucher), datagloves
    • tangibles : table réactive (placement d'objet), projet
    • réalité augmentée : informations superposées, oculus rift
    • contrôle vocale : siri
    • contrôle gestuel : kinect
    • contrôle cérébral : ECG
    • bionique : prothèse mécanique
    • wearable : google Glass
    • ambiant : nabaztag, philips hue
  • commander tickets trains
    • command : rapide (expert), extensible, conventions, erreurs
    • WIMP : facile, structuré, exploration, complexe, lent, peu flexible (mobile)
    • manipulation : facile, actions reversibles, intuitif, lent, coûteux
    • forumulaire : facile, cheminement forcé, complétion, rigide
  • niveau de connaissance : nécessite certaine fréquence d'utilisation
    • novices : connaissances sémantiques liées tâche (qu'est-ce qu'une table des matières)
    • intermittents : en plus, connaissances sémantiques liées transposition informatique liées tâche (espace inter-paragraphe)
    • experts : en plus, connaissances syntaxiques, arbitraires (change minuscule = changer casse)
  • intuitif : oublié qu'on l'a appris
  • interface naturelle : mythe (Apple Newton vs Palm)
  • qualité d'interface : mesure
    • courbe d'apprentissage
    • temps pour réaliser tâche
    • nombre d'erreurs
    • satisfaction utilisateurs

Processing

  • java DSL open source : for creating visual, interactive media (from MIT)
  • infographie 3D
    • coordinate system : y inversed
    • rotate : clock-wise
    • point : $p=\m{x\\ y\\ z}\in\R^3$
    • monde (base canonique) : ${\v{u},\v{v},\v{w}}={\m{1\\ 0\\ 0},\m{0\\ 1\\ 0},\m{0\\ 0\\ 1}}$
    • transformations linéaires : $T(\vx)=A·\vx$
      • homothéties : $A=nI$
      • rotation : $A=\m{\cos\theta &-\sin\theta\\ \sin\theta & \cos\theta}$
      • cisaillement (shearing, déplacement bases d'un carré) : $A=\m{1 & k\\ 0 & 1}$ (horizontalement), $A=\m{1 & 0\\ k & 1}$ (verticalement)
    • transformations affines : $T(\vx)=A·\vx+b$ (non linéaire)
      • idée : ajouter une dimension pour linéariser transformations affines et projectives $\m{x'\\ y'\\ 1}=\m{1 & 0 & t_x\\ 0 & 1 & t_y \\ 0 & 0 & 1}\m{x\\ y\\ 1}=\m{x+t_x\\ y+t_y\\ 1}$
    • coordonnées homogènes : ensemble des coordonnes du point $\m{kx\\ ky\\ k}, k\in\R^*$ (projection)
      • point à l'infini : $\m{x\\ y\\ 0}$
    • coordonnées euclidiennes : $\m{x\\ y\\ w}\approx\m{x/w\\ y/w\\ 1}$
    • en 3D
      • translation : $\m{x'\\ y'\\ z'\\ 1}=\m{1 & 0 & 0 & t_x\\ 0 & 1 & 0 & t_y\\ 0 & 0 & 1 & t_z\\ 0 & 0 & 0 & 1}\m{x\\ y\\ z\\ 1}=\m{x+t_x\\ y+t_y\\ z+t_z \\ 1}$
      • rotation : $\m{x'\\ y'\\ z'\\ 1}=\m{ & & & 0\\ & R_{3\times 3} & & 0\\ & & & 0\\ 0 & 0 & 0 & 1}\m{x\\ y\\ z\\ 1}$
        • matrices : bonnes propriétés mathématiques, peu intuitives, courantes
          • $R_x(\theta)=\m{1 & 0 & 0\\ 0 & \cos\theta & -\sin\theta\\ 0 & \sin\theta & \cos\theta}$
          • $R_y(\theta)=\m{\cos\theta & 0 & \sin\theta\\ 0 & 1 & 0\\ -\sin\theta & 0 & \cos\theta}$
          • $R_z(\theta)=\m{\cos\theta & -\sin\theta & 0\\ \sin\theta & \cos\theta & 0\\ 0 & 0 & 1}$
        • angles d'Euler : mathématiquement dangereux
        • quaternions : $q=\m{e_x\sin(\theta/2)\\ e_y\sin(\theta/2)\\ e_z\sin(\theta/2)\\ cos(\theta/2)}$ peu intuitif mais très bonnes proprités mathématiques
        • yaw-pitch-roll : domaine-spécifique (aviation)
      • homothétie : $\m{x'\\ y'\\ z'\\ 1}=\m{\alpha & 0 & 0 & 0\\ 0 & \beta & 0 & 0\\ 0 & 0 & \gamma & 0\\ 0 & 0 & 0 & 1}\m{x\\ y\\ z\\ 1}=\m{\alpha x\\ \beta y\\ \gamma z \\ 1}$
    • compostion : multiplication de matrix
    • scene graph : pushMatrix/popMatrix
    • projection $\v{a}$ sur $\v{u}$ : $(\v{a}·\v{u})\v{u}$
    • projection orthographique : unité sur axes voulus
    • projections perspective
      • oeil (CdP) : hauteur $y$
      • distance focale : distance $d$ (CdP et plan image)
      • 2D : $\m{y\\ z}\to\m{dy/z\\ d}$
      • Model-View-Projection : $M_{MVP}=\m{1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 1/f & 0}\m{ & & & \\ & R _{cam} & & T _{cam}\\ & & & \\ 0 & 0 & 0 & 1}\m{ & & & \\ & R _{obj} & & T _{obj}\\ & & & \\ 0 & 0 & 0 & 1}$ et $\m{x _p\\ y _p\\ f\\ 1}=M _{MVP}\m{x\\ y\\ z\\ 1}$
      • 3D : $\m{1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & z/d}\m{x\\ y\\ z\\ 1}\approx\m{dx/z\\ dy/z\\ d\\ 1}$
    • rendu 3D
      • visibilité : z-buffer
      • illumination
        • réflexion spéculaire (reflets) : lumière incidente + angle de réflexion (normal)
        • réflexion diffuse (couleur) : artefact de réflexion
        • émissive
        • ambiante
      • ombres : shadow mapping, voir le monde à travers source lumière
      • textures : plusieurs images (couleurs, éclairages) corespondant aux polygones
      • technique rendu
        • raytracing : lumière physique, lent
        • rasterization : projection géométrique (pipeline)
      • shaders : programme écrit GLSL (GL Shading Language, OpenGL) ou HLSL (High-Level Shading Language, Direct3D) et exécuté sur GPU

Vision humaine

  • vision : oeil (peu) + cerveau (beaucoup)
  • oeil
    • cornée : lentille entrée
    • cristalin : lentille biconvexe
    • macula : zone de la rétine caractérisée par une concentration maximale de cônes (~18°)
    • fovéa : zone centrale de la macula, est la zone de la rétine où la vision des détails est la plus précise (~5°)
    • rétine : partie de l'oeil sensible à la lumière composé de photorécepteurs
    • point aveugle : dépouvru de récepteur, passage du nerf optique à travers la rétine
  • vision fovéale
    • zone : 3.5-4mm à l'écran (40cm)
    • lecture : 4-5 lettres vues à 100%
  • étude du regard : oeil se pose, prélève information et saute
    • fixation : 220-250 ms
    • saccade : < 50 ms (aveugle pendant ce laps de temps)
    • novice : distraction facile, cheminement confus
    • expert : structuré, peu perturbable
  • écran
    • dimensions : 13 pouces
    • définition : 640x480 = VGA
    • résolution (pixel par pouce carré, dots per inch) : 326 ppp/dpi (Apple Retina)
    • profondeur (nombre de bit d'information par pixel) : 8 bpp (= 256 valeurs possibles)
  • photorécepteurs
    • ~5 millions cônes (vision diurne, colorée) : 3-4 fps
    • ~120 millions bâtonnets (vision crépusculaire, nocturne en noir/blanc) : 100 fps
    • ~10 millions couleurs discriminables (controverse)
  • format d'image : taille = # pixel x profondeur x compression
    • GIF : lossless
    • JPEG : lossy
    • PCD : eye-lossy
    • TIFF, FPX, PDF, PNG
  • image par seconde : pourquoi 24 fps ?
    • hypothèse 1 (oeil) : persistence rétinienne -> probablement faux
    • hypothèse 2 (cerveau) : effet PHI/BETA (l'apparition d'images perçues successives, susceptibles d'être raccordées par un déplacement ou une transformation)
    • effet STROOP : semantic interference (vert écrit en bleu)
  • profondeur : cerveau
    • indices binoculaires
      • point de fixation à l'infini : parallèle (zero)
      • objet distant : petit
      • objet proche : grand
    • indices monoculaires : perspective
      • parralaxe : objets en avant-plan donnent l’impression d’un déplacement plus rapide que les objets en arrière-plan
      • effet kinetic depth : mouvements de l’objet donnent une perception de la profondeur
      • occlusion : 2D donne l’impression qu’un objet se trouve devant l’autre
      • taille relative : plus petit = plus loin sauf si on connait leur taille relative
      • position par rapport à l'horizon
    • recréation en 2D
      • lumière & ombres
      • profondeur de champ
      • finesse de la texture
      • brouillard de distance
  • hémisphères cérébraux
    • expérience du split brain : hypothèse (controverse)
      • si stimulus visuel inférieur au seuil de perception (par ex. taille, longueur d'onde, 0.04 secondes) : perception possible par inconscient, influence non-contrôlable sur notre comportement

Cognition humaine

  • **cognition **
    • attention
    • raisonnement
    • langage
    • intelligence
    • compétences
    • connaissances
    • apprentissage
  • mémoire
    • sensorielle : < 1 s
    • court terme : < 10 min
  • mémoire de travail : CPU
    • charge cognitive : $7\pm 2$ éléments
    • mesurable physiologiquement : EEG, mouvements occulaires, fréquence cardiaque (pilote)
    • mesurable subjectivement : NASA task load index
    • charge mental : augmentation de la difficulté sur une tâche augmente une augmentation du nombre d’erreurs sur l’autre tâche, probablement parce qu’elles sollicitent les mêmes ressources
      • niveau d'expertise
      • novice : freiner, embrayer, changer, débrayer, freiner
      • expert : ralentir (connaissance compilées, répertoire de cas typiques, critères de sélection)
    • split attention effect : augmentation charge mentale (par ex. figure géométrique séparé des données)
    • combien d'information est optimal pour présenter sur un écran
      • structure de l’information réduit la charge cognitive (alignement des aiguilles d'un cockpit)
      • redondance réduit le split attention (et permet des styles d’interaction personels)
    • charge cognitive = quantité d'information (imposée par tâche) / (niveau d'expertise (imposée par public-ciblé) x qualité du design (notre variable))
      • principes de design
      • usability tests
    • cognition distribuée : écran = extension mémoire travail
  • mémoire long terme
    • connaissance déclaratives : déplace ton centre de gravité sur le ski aval
      • mémoire sémantique (lobes temporaux) : faits, concepts, définitions
        • modèle mentaux : évolue avec expérience, liés au contexte, pas forcément correct ni complet, explications simplifiés de phénomènes complexes, permet de comprendre erreurs et gérer l'incertitude de la validité
          • termostat comme un minuteur ou robinet ?
          • quel glaçon fondra le plus rapidement, celui sous la laine ou sans rien ?
          • induction vs discrimination : observations -> patterns -> abstraction
          • biais inductif : connaissance préalables permettent choisir une généralisation souhaitable parmi l’infinité des généralisations possibles
      • mémoire épisodique (hippocample, lobes temporaux) : événements passé ou imaginés
    • connaissance procédurales (sous-cortical, cervelet): réflexe
  • métacognition (capacité) : connaissance de ses connaissances, raisonnement sur son raisonnement

Mécanique de jeux

  • assassin creed unity (140 millions) vs candy crush (1/2 millions/jour)
  • indie game : don't starve
  • jeu vs jouet : buts et régles définis vs à inventer sur le moment
  • succès d'un jeu
    • on essaie : réseaux sociaux, buzz, nouveauté, prix, plateforme, esthetiques
    • on revient : esthetique, méchanisme d'engagement (addiction)
  • game mechanics
    • espace : l’ensemble des positions qui correspondent à un état
      • discret : monopoly, echec
      • continu : billard, ski
      • espaces nichés : continu (scène 3D) dans discret (étape)
      • structure : linéaire (SuperMario), grille (Minecraft), web, partition (Civilisation)
      • game space vs modèle mental
      • capacité d'orientation spatial (jeux 3D) : test paper folding, test rotation mentale
      • orientation : boussole, minimap, radar, cartes, repères (landmarks)
    • temps
      • discret : tour
      • continu : horloge (limité/illimité, ralenti, pause, score)
    • objets
      • caractéristique constante (maxspeed) vs etat actuel (speed)
      • states transition : changement d'objet (évolution), changement d'état (pacman)
      • personnages & avatars
      • réalisme : uncanny valley (mal-être)
      • objets = noms, attributs = adjectifs, actions = verb
    • actions
      • basic actions (game interface) : move, jump, shoot
      • stategic actions (mental model) : protect, sacrifice, trap
      • emergent gameplay : petit nombre d’actions de base autorise un grand nombre d’actions stratégiques
    • règles
      • faisable : qui peut faire quelle action sur quel objet à quel moment ?
      • souhaitable : comment les actions déterminent ma performance (score, victoire) ?
      • fondamentale : objectif du joueur
    • modes : règles différentes s’appliquent pendant différentes phases de jeu
      • changement nécessite adaptation et visibilité
      • nombre de modes doit être petit
      • interface modale : sur un même input produit différents effets selon l'état actif
      • mode actif prend 1 slot de mémoire de travail
      • interface modeless : produisent moins d'erreur
    • skills : équilibre entre skills du joueur (vraie valeur) et du personnage (pouvoir donné au joueur)
      • triangle : compétences physique (billard), compétences cognitives (echecs) et chance (roulette)
    • chance : équilibre entre skills du joueur (juste) et chance (surprise, pseudo-aléatoire ou aléatoire)
    • points de vue : position de la caméra
      • fixe : objets et personnages sont rendus en temps réel mais le décor est statique pendant une scène
      • top down : vue aérienne en 2D
      • scroll latéral : caméra se déplace de gauche à droite avec le déplacement de l’avatar
      • bird eye : vue élevée en perspective depuis les yeux d’un oiseau
      • first person : vue depuis les yeux de mon avatar
      • over the shoulder
      • camera lock-on : caméra suit ennemis
      • radar : vue de l’ensemble de l’espace, localisation le sous-espace actuellement affiché
      • caméra contrôlable
    • vue : choisir la meilleure vue au meillleur moment
    • roles : différences des règles assignées aux joueurs, qui peut faire quelle action sur quel objet quand ? (gameplay assymétrique)
    • secrets : accès à l'information, qui voit quoi ?
    • collaboration vs compétition
    • modélisation mutuelle : quels mécanismes permettent au joueur A de prédire ce que va faire le joueur B (équipier ou adversaire) ? (compilar par entraînement)
    • spectateurs : présence de spectateurs ou streaming
    • triangularity (non transitif) : pierre -> ciseau -> papier -> pierre
    • échapper à la réalité : devenir Dieu, nouvelle vie
    • scoreboard : analytics
  • gamification : application des mécanismes de jeux à des situations qui ne sont pas intrinsèquement ludiques (cadeaux coop)
  • flow : état mental d'une personne immergée dans le jeu (concentration totale sur un objet, perte de conscience de soi/du temps, sentiment de contrôle de la situation)
    • nécessite objectifs claires, règles, feedback immédiat, équilibre entre difficulté et compétence
    • dynamic game difficulty adjustment : force des joueurs, fréquence d'attaques, tailles cibles, précisions du tir, opportunités offertes, effet élastique (Mario Kart, US Parent)
    • type de motivation : je dois vs je veux
  • moteur de jeu (game engine) : Unreal Engine
    • rendu graphique
    • rendu sonore
    • moteur physique
    • détection des collisions : statique ou dynamique (anticipation)
    • language de scripting pour définir comportement

Visualisation de l'information

  • visualiser : places des données sur une image de base de telle sorte que les propriétés visuelles de l’image reflètent les propriétés abstraites des données en particulier les relations entre données
  • grammaires visuelles : correspondance les variables des données et les composantes graphiques
  • dimensions : mettre en correspondance un espace de n dimensions vers un espace de moindre dimensions par des méthodes graphique…. et des méthodes statistiques
  • principes de conception (Tufte)
    • choisir des unités qui conservent du sens à travers les comparaisons (minutes vs big mac)
    • choisir des unités qui ont du sens pour le lecteur (GDP per person vs minimum wage minutes of work to buy a big mac)
    • choisir des intervalles pertinents (bar plot)
    • evaluer les effets du choix des intervalles
    • vérifier l’intégrité graphique : est-ce que l’importance visuelle correspond à la quantité représentée ? (perspective grossissante, 3D)
    • minimiser le chart junk : eviter les éléments qui n’apportent pas d’information et risquent de bruiter le message (arrière-fond)
    • optimiser le data ink ratio : quel pourcentage des pixels correspond à une donnée ? (si on l’efface, on perd de l’information)
    • utiliser les small multiple : trellis d'un graphique avec la variation d'une dimensions
    • montrer les co-variations : l’aller-retour de l’oeil entre les images crée la correlation (interpolation vs discret)
    • montrer le contexte : mort guerre Irak vs WW2
  • distorisions géométriques
    • forcées : sphère -> plan
      • august's projection
      • winker tripel projection : minimiser les distortion en termes de distance, angles et surfaces
    • forcées : pyramide -> plan (carte station ski)
    • nécessaires : variation de densité, échelles non-linéaires (réseau métro, effet loupe, mode interactif)
    • jitter : ajouter un bruilt aléatoire aux données pour rendre tous les points visible
    • nécessaires : échelles incompatibles (ratio vertical/horizontal = 5, patrouille des glaciers)
    • visuliser c'est communiqué : pas toujours objectif (échelle !)
    • pour réveler l'information : carte du monde selon population
  • erreurs fréquentes
    • couleurs : pas d'information
    • empilement nécessite de calculer mentalement les compairsons (addition de couche)
    • valeurs extrêmes écrasent l'information (utilisation d'échelles non-linéaire pour résoudre)
    • système génère automatiquement une échelle inappropriée
    • ordre des données non justifié (jour de la semaine)
    • points connectés par des traits ne sont pas réellement des données liées les unes aux autres (discrétisation)
    • sensibilité de la moyenne aux valeurs extrêmes (box plots ou comparer la différence de moyenne en fonction de la différence de dispersion)
    • sensibilité des courbes de tendance (mauvaise fonction)
    • interpréter une corrélation comme un lien de causalité (variable cachée)
    • acronymes rares pour l'utilisateur augmentent sa charge cognitive
    • split attention effect augmente la charge cognitive
  • visulisations dynaminques/interactive : changement d'échelle, rotatation, variable, mouse over

Impression 3D

  • overhang angle : < 45°
  • wall thickness : > 2 mm
  • no open face
  • no shared edge : gap or overlapping
  • no inverted normal

Image processing

  • edge detection

    • line drawing : compressed version of image
    • discontinuities
    • edges profiles
    • noise in reality : zebra, bad quality picture
    • illusory contours : 3 pacmans
    • ambiguities : which are really contours depends on people
    • edge properties
      • normal : unit vector in the direction of maximum intensity change
      • direction : unit vector perpendicular to the edge normal
      • position or center : image location at which edge is located
      • strength : speed of intensity variation across the edge
    • boundaries types
  • edge operator

    • difference operators : gradient methods, large first deivative
      • Fourier interpretation : differentiating emphasizes noise
      • removing noise : high frequencies lead to trouble, suppress them by convolving with low-pass filter
    • convolution operators : smooth first
      • derivative theorem : convolution is associative with derivation
      • mask : wider masks to add an element of smoothing ($N\times N$ image and $W\times W$ mask)
        • Roberts operator : equivalent to fitting plane to patch $G=\sqrt{[I(x+1,y+1)-I(x,y)]^2+[I(x+1,y-1)-I(x-1,y+1)]^2}$
        • average value
        • Prewitt (full unit value) & Sobel : equivalent to fitting a quadric to patch $S_x=\m{-1 &amp; -2 &amp; -1\\ 0 &amp; 0 &amp; 0\\ 1 &amp; 2 &amp; 1}$ and $S_y=\m{-1 &amp; 0 &amp; 1\\ -2 &amp; 0 2\\ -1 &amp; 0 &amp; 1}$
          • non separable : $N^2W^2$
          • separable : $2N^2W$
        • larger windows : minize the squared error between surface model and image data
        • gaussian smoothing : eliminates high frequency noise (small, separable) $g_1(x)=\frac{1}{\sqrt{\pi}\sigma}e^{-\frac{x^2}{\sigma^2}}$ with $g(x,y)=g_1(x)g_1(y)$
        • gaussian derivative
      • canny edge detector
        • gradient convolution : strengh, direction
        • non maxima suppression : check if pixel is local maximum along gradient direction, which requires checking interpolated pixels
        • hysteresis thresholding : 2 threshold, iteratively label edges from strong ones
          • pixel with edge strength above high threshold is an edge
          • any pixel with edge strength below low threshold is not
          • any pixel above the low threshold and next to an edge is an edge
        • Y or T junction problem : empty space
      • rapid tracker : estimate contours, find closest edge points to normal direction, minimize distances in least square sense, iterate
      • scale space : increasing scale $\sigma$ removes details but never adds new ones
    • trained detectors : training database, machine learning
  • parametric shapes detection

    • hough transform : algorithmic, used in computer vision, easy, parametric shape
      • lines : 2 parameters ($\theta$, $r$)
        • obtain binary edge points : $G=\sqrt{S_x^2+S_y^2}$ with threshold
        • accumulator : discretized parameter space where each bin represents a line in image space
          • cartesian formulatiom : lines in parameter space, parameter unbounded (infinity)
          • polar formulation : sinusoid in parameter space, $r=x\cos\theta+y\sin\theta$, $r\in[0,C]$ and $\theta\in[0,360)$
        • voting : action of increasing the accumulator values for each points in image space
        • non max suppression : localize local maxima which are large enough
        • local maxima : pick pixel location whose value is bigger than any of its neighbors
      • circle : 3 parameters ($x_0=x-r\cos\theta$, $y_0=y-r\sin\theta$, $r$)
      • ellipse : 4 parameters ($x_0=x-a\cos\theta$, $y_0=y-b\sin\theta$, $a$, $b$)
      • R-table : set of possible positions of a reference point given boundary orientation (allow better voting by making them depending on the direction of edges), template matching
      • general steps : R-table, form accumulator (initialized to 0), for each edge point compute possible centers and increment corresponding point in accumulator
      • limitation : computation cost exponential in terms of model parameters, lacks flexibility
    • radon transform : used in tomography (scanner), mathematically proven, no artefact
    • blob detection
      • color segmentation : create binary image holding only area of interest
        • RGB : red, green, blue, distance between colors are not what it seems (very bright = same ?)
        • HSB : hue, saturation, brightness, intuitive color space
          • RBG to HSB : $C=\max(R,G,B)-min(R,G,B)$
          • hue : $H=60°H'$ where
            • if $C=0$ : undefined
            • if $M=R$ : $H'=(G-B)/C\mod 6$
            • if $M=G$ : $H'=(B-R)/C+2$
            • if $M=B$ : $H'=(R-G)/C+4$
          • brightness : $V=\max(R,G,B)$
          • saturation : $S=C/V$ or $0$ if $V=0$
      • connected component : connect pixels to form blobs, two pass algorithm
        • get the neighboring elements of the current element
        • if there are no neighbors, uniquely label
        • find the neighbor with the smallest label and assign it
        • store the equivalence between neighboring labels
        • do a second pass replacing each id with smallest equivalent id
      • limitation : relies on good first-hand thresholding, need distinctive colors
      • others methods
        • maximally stable extremal regions (MSER): try multiple threshold, keeps blobs that are stable across different threshold
        • scale space blob detection : instead of thresholding, use scale space, keep on smoothing with circular filter, perform non-max suppresion on response
        • SIFT : panorama stitching, find key locations

    Games & brains

  • actions video games as exemplary learning tools : not social or control game

  • individuals who play video game exhibit superior performance

    • low level vision
    • efficiency of attention
    • aspect of cognition
  • importance of study field : mean age of gamer 33 year old (90% school-aged individuals, 70% of the heads of households)

  • effect of gaming on brain function and organization

    • contrast sensitivity chart : improved spatial frequency
    • correcting cortex optics
    • amblyopie (young eye foolness) : pay with one eye more stimulated
    • multi-tasking : search
    • task switching : decision making
    • mental rotation
    • approximate mathematics : time estimation
    • visual working memory
    • attentional control : better at selecting relevant information for task at hand, learn faster how to
  • game factor for brain plastcity

    • variable entry learning : novice to expert
    • incremental learning : level of difficulty
    • reward : opposed to punishment
    • self-mastery/confidence : desire to learn
    • motivation & arousal
  • action factor

    • pacing : worm under time constraints
    • load on divided attention : dynamic display with many target to attend to
    • flexible shift of focus : precise visuo-motor requirements in the context of divided attention
    • need for prediction and thus error monitoring
    • rich environment that prevents automatization

Etudes utilisateur

  • évaluation interface
    • utilisateurs efficaces
    • principes de design : partiellement contradictoires, pas des solutions
      • golden rules : Ben Schneiderman
        • strive for consistency : bouton de comfirmation s’appelle toujours ok et se trouve toujours en bas à droite
        • enable frequent users to use shortcuts : raccourci clavier
        • offer informative feedback : complexité du mot de passe, statut de téléchargement, action perçue (micro-feeback, hover)
        • design dialog to yield closure : précédent/suivant, clair déroulement de la procédure
        • offer simple error handling : message d'erreur avec suggestion de solution, prévenir l'erreur
        • permit easy reversal of actions : revenir en arrière
        • support internal locus of control
        • reduce short-term memory load
      • usability heuristics : Jakob Nielsen
        • visibility of system status : status bar
        • user control and freedom
        • consistency and standards
        • error prevention
        • recognition rather than recall (cognitive load) : reconnaissance plutôt qu’évocation
        • flexibility and efficiency of use : shortcuts
        • aesthetic and minimalist design
        • help users recognize, diagnose, and recover from errors
        • help and documentation
        • match between system and the real world : structure du site web reflète structure de l'entreprise/de besoins des utilisateurs
      • desing principles : Don Norman
        • consistency : détecter & applique des pattrens
        • visibility : toutes mes actions possibles sont visibles
        • affordance : la forme de l’objet nous indique comment l’utiliser
        • mapping : lien entre l’action et son effet sont évidents
        • feedback
        • constraints : une grille de dessin avec l’option « snap to grid »
    • solution : prototyper et tests utilisateurs continuellement
    • prototypage rapide : low fidelity (paper) to high fidelity (concret)
    • wizard of Oz : test utilisateur avec réactions déclenchées par une personne (cachée, non connu) en fonction des réactions utilisateurs
    • usability
      • learnability : commbien de temps un novice a-t-il besoin pour manipuler le logiciel (NO USER GUIDE)
      • efficiency : combien de temps est nécessaire pour faire la tâche qu’il veut faire ?
      • memorability : si ils ne l’utilisent pas pendant un certain temps, est-ce que c’est difficile d’y revenir ?
      • errors : combien d’erreurs ? prêtent-elles à conséquence ?
      • satisfaction : est-ce agréable d’utiliser l’application ?
    • usability testing : en 3 jours
      • apprendre l'application, préparer liste tâches, recruter 8 utilisateurs
      • demander de faire tâche en pensant à voix haute, enregistrer, demander ce qu'ils en pensent
      • analyser résultats, convaincre concepteurs
      • testeur n'est pas papa, indépendant et test sans papa
    • accessibilité
    • utilisable
    • user experience
  • comparaison interface
    • concevoir expérience : mesurer l'effet (quantifier variations d'une variable dépendante si on modifie une variable indépendante)
      • variable dépendante (discrète) : score, vitesse, erreurs, plaisir, longétivité, apprentissage
      • variable indépendante (discrète) : input device
      • plan expérimental : between subjects, 1 dimensions
        • facteur indépendant
        • conditions : modalité du facteur
        • 1 groupe expérimental & 1 groupe de contrôle : personnes dans la condition 1 sont différents des personnes dans la condition 2
          • plan expérimental : within subjects, 1 dimensions - même groupe : personnes dans la condition 1 passent ensuite dans la condition 2
        • inverser ordre passage pour la moitié : contre-balancer l'effet d'ordre
        • sujets identiques et moins nombreux, mais effet d'ordre possible
      • effet d'interaction : dépendance des valeurs
      • plans expérimentaux à plus de 2 dimensions : beaucoup de sujets (pour $N$ facteurs, $M$ modalités par facteur, on accepte au minimum $20M^N$ sujets), résultat difficle à interprêter (mieux vaut décomposer l'expérience)
      • biais expérimentaux
        • sujets soumis équivalents au départ ?
          • même age (questionnaire), rato H/F, niveau socio-culturel, niveau scolaire (recrutement), connaissances préalable (test), intelligence, raisonnement spatial, motivation (25.—)
          • contrôles : échantillonnage aléatoire, recrutement (variable controlée), analyse statistique des co-variances
        • sujet informés but expérience ?
          • effet Hawthorne : changer quelque chose dans l'entreprise résulte en gain de productivité
        • expérimentateur neutre ?
          • effet Pygmalion (Rosenthal) : perforance des sujets est fonction des attentes de l'expérimentateur
          • double-aveugle : en Human Computer Interaction, difficle (ni sujet, ni expérimentateur ne savent quel traitement utilisé)
        • élément non-controllé peu expliquer les variations de la variable dépendante ?
          • variables intermédiaires (processus var. indep. -> var. dép.) : fatigue, précision, hauteur, interaction (input tangible vs joystick, output score moyen)
          • effet médiation : relation entre entrée et résultat s'explique statistiquement par une autre variable (par ex. regarde la plaque plutôt que l'écran)
          • corrélations != causalité
          • différence significative : par rapport à une gaussienne ? (taille échantillon réduit probabilité d'avoir par hasard une moyenne extrême)
          • moyenne peuvent faussé : Federer et Dillenbourg ont gagné 8.5 tournois du Grand Chelem en moyenne
    • méta-analyse : analyse des analyses

Visual computing

  • computer graphics & geometry
    • inverse light simulation
    • performance capture & animation
    • architectural geometry
    • 3D reconstruction
    • rendering : how to generate an image from a digital representation of a 3D scene ? (realtime rendering, OpenGL)
    • modeling : how to build a digital representation of 3D scene ? (mesh processing, procedural methods)
    • animation : how to bring a 3D scene to life ? (character animation, physics-based animation)
  • avatar creation
    • photos
    • reconstruct point cloud
    • rigidly align template
    • deforme template to scan
    • reconstruct texture
    • build blendshapes

Eye tracking

  • regard dépend de la question
  • eye-mind hypothesis
    • processus bottom-up : ce que je regarde -> ce que je traite
    • processus top-down : ce que je traite -> ce que je regarde
  • mesurer position oeil
    • electro-oculogramme : rétine négative, cornée positive, différence de potentiel = direction, également yeux fermés
    • méthodes optique : projeter lumière infrarouge sur l'oeil, augmente contraste pupille-iris, rétine reflète et illumine pupille, calibration par points distribués, caméras détectent réflexion (glints) sur la cornée
  • post-calibration souvent nécessaire
  • précesion controversée (~0.4°), fréquence (50-500 Hz)
  • oeil fait pour détecter des incohérences dans les patterns
  • applications : recherche, marketing, sécurité, education (niveau d'expertise), groupware (qualité interaction), contrôler interface