|
Informatique Micro-ordinateur Réseau crack Programmation Web Cybernétique et Vision par Ordinateur Cette rubrique est consacrée pour enrichir votre connaissance dans le monde de l'informatique . Définition : science du traitement automatique de l’information par des ordinateurs. L’informatique est d’une importance capitale en science, dans l’industrie et dans l’administration. Historique : Née avec l’apparition des premiers ordinateurs à la fin de la Seconde Guerre mondiale, l’informatique eut tout d’abord pour mission de pallier les insuffisances humaines en matière de calcul numérique. Les ordinateurs devaient être alors capables de manipuler d’importantes masses de données dans un minimum de temps, faisant office de calculatrices électroniques performantes. Grâce aux progrès fulgurants en électronique et en automatisation, les machines se développèrent rapidement : depuis environ trente ans, elles offrent chaque année une puissance de calcul de 30 p. 100 supérieure à l’année précédente, pour un coût inversement proportionnel. Parallèlement à cette avancée technologique apparut dans les années 1950 une approche formelle de l’informatique en tant que science. Le mathématicien américain Norbert Wiener établit ainsi les fondements de la cybernétique, pendant qu’un autre mathématicien américain, Claude Elwood Shannon, élaborait la théorie de l’information. L’informatique s’orienta rapidement dans une nouvelle direction lorsque l’on comprit que son domaine d’application pouvait s’étendre bien au-delà du simple calcul numérique. Dès lors, les ordinateurs furent conçus pour le traitement de l’information en général, tandis que se développaient les premiers langages de programmation adaptés aux problèmes de gestion, comme le langage COBOL. Dans les années 1960, les langages et les logiciels se multiplièrent, ainsi que les programmes assurant la gestion interne de la machine, toujours plus complexe. Les constructeurs furent alors confrontés à une situation délicate : malgré le progrès spectaculaire des techniques matérielles (hardware), les performances globales des systèmes informatiques n’évoluaient que très peu, en raison de la densité des techniques logicielles (software) installées sur chaque machine. Dans les années 1970, la microprogrammation se chargea donc de relayer les logiciels dans les opérations élémentaires de programmation, augmentant ainsi considérablement les performances de l’ordinateur. Actuellement, l’industrie informatique axe ses recherches sur la miniaturisation des ordinateurs associée à des performances toujours plus élevées. De leur côté, les informaticiens théoriciens travaillent à une reproduction des mécanismes de la pensée par la machine, domaine de l’intelligence artificielle. Applications : L’informatique est aujourd’hui présente dans la plupart des domaines de la vie professionnelle et privée. Elle occupe bien évidemment une grande place en science appliquée, se chargeant notamment des calculs complexes requis en astronautique ou en météorologie. Mais elle intervient également dans les entreprises, l’enseignement, les banques, les assurances ou encore les commerces, ainsi qu’à domicile. Grâce à la conception et à la fabrication assistées par ordinateur, l’informatique est un outil important dans tous les métiers nécessitant une modélisation préalable (artisans, architectes, etc.). Elle permet en outre de diffuser l’information par le biais de réseaux informatiques, dont Internet constitue l’exemple le plus marquant. Enfin, en s’associant aux techniques de télécommunications, elle facilite largement l’administration des bureaux en proposant ses services de télématique et de bureautique. En contrepartie, l’informatique a engendré un nouveau type de délit, le délit informatique, consistant à pénétrer illégalement dans des systèmes informatiques . Composants d’un micro-ordinateur : L’équipement complet d’un micro-ordinateur multimédia comprend des périphériques d’entrée (clavier, dispositifs de pointage tels qu’une souris), des périphériques de sortie (moniteur, imprimante), des unités de stockage (CD-ROM, disquette, etc.) et leurs lecteurs, ainsi qu’une connexion avec l’extérieur (assurée par exemple par un modem). Structure d'un ordinateur : La structure d'un ordinateur comprend cinq éléments fondamentaux : une unité centrale de traitement (microprocesseur), des périphériques d'entrée et de sortie, des unités de stockage (mémoires externes et internes), et un bus chargé de véhiculer l'information entre les composants de la machine.
Réseau informatique : Ensemble de connexions entre ordinateurs et périphériques, un réseau informatique permet à ses utilisateurs d'envoyer et de recevoir des informations de leur poste de travail. Le grand carré rouge, à gauche, représente l'installation informatique d'une entreprise. Les communications entre chaque poste de travail s'effectuent soit par câbles, soit par lignes téléphoniques grâce à des modems qui convertissent les signaux analogiques en signaux numériques ou inversement. L'ensemble de ces communications est contrôlé par des serveurs, ordinateurs chargés de partager les ressources des postes de travail (par exemple, les imprimantes). La connexion principale au réseau est figurée par la ligne rouge, les connexions locales par des lignes bleues.
Un programme, souvent appelé logiciel (software), est une séquence d'instructions qui indique au matériel informatique (hardware) les opérations qu'il doit effectuer sur les données. Les programmes peuvent être intégrés au hardware, comme sur les micro-ordinateurs que l'on trouve dans les calculatrices, les montres, les moteurs automobiles ou les fours à micro-ondes. Sur un ordinateur classique coexistent deux types de logiciel, selon le type de tâche qu'ils exécutent. Les logiciels d'application prennent en charge la multitude des tâches pour lesquelles sont utilisés les ordinateurs : traitement de texte, gestion de bases de données, etc. Les logiciels système, qui sont souvent invisibles à l'utilisateur, contrôlent le fonctionnement de l'ordinateur : on les appelle systèmes d'exploitation. Systèmes d'exploitation Les systèmes d'exploitation gèrent l'allocation et l'utilisation des ressources matérielles de l'ordinateur, telles que la mémoire, l'unité centrale de traitement, l'espace du disque dur et les périphériques (imprimante, manette de jeu, modem, etc). Ce sont des logiciels stockés de façon permanente dans la mémoire, qui interprètent les commandes de l'utilisateur suivant le service qu'il désire : afficher, imprimer ou copier des fichiers de données, lister tous les fichiers d'un répertoire, ou encore exécuter un programme particulier. Langages Les instructions sont transmises à l'ordinateur par le biais d'un langage de programmation, c'est-à-dire une configuration particulière d'informations binaires numériques. Aujourd'hui, il existe un grand nombre de langages informatiques, certains d'entre eux étant très ciblés tandis que d'autres sont plus universels et d'utilisation plus souple. Nous sommes bien loin de la programmation des premiers ordinateurs, tâche difficile et laborieuse, car les commutateurs ON-OFF des tubes à vides devaient être réglés manuellement. Ainsi la programmation de certaines tâches simples, comme la sortie d'une liste de noms, demandait souvent plusieurs jours de travail. Langage machine Le langage de l'ordinateur, ou langage machine, qui utilise le système binaire, est difficilement utilisable par les non-professionnels. Dans ce langage, le programmeur doit entrer chaque commande et toutes les données sous forme binaire. Ainsi, une opération de base telle que la comparaison du contenu d'un registre avec les données d'un emplacement de puce-mémoire pourrait ressembler à : 11001010 00010111 11110101 00101011. Langage assembleur Pour alléger et simplifier la programmation en langage machine, on peut avoir recours au langage assembleur. Ce langage assigne un court code mnémonique (généralement composé de trois lettres) à chaque instruction exprimée en langage machine. Le programmeur écrit donc ses programmes en langage assembleur (code source)!; ceux-ci sont ensuite transcrits par un logiciel en langage machine (code objet), puis exécutés par l'ordinateur. Ce langage permet de programmer beaucoup plus rapidement qu'en langage machine!; en outre, il évite les éventuelles erreurs logiques et de données, appelées bugs. (En anglais, bugs signifie cafards, lesquels, en quête de chaleur, pénétraient dans les circuits des ordinateurs, y provoquant des dysfonctionnements. Depuis, le terme s'applique à tout dysfonctionnement informatique.) Cependant, un langage assembleur demeure spécifique à chaque type de puce de traitement ou de microprocesseur, si bien que les programmeurs devaient apprendre un nouveau style de programmation chaque fois qu'ils travaillaient sur une machine de type différent. Il était donc nécessaire de concevoir un langage où une seule instruction symbolique pourrait représenter une séquence de plusieurs instructions en langage machine, et qui puisse fonctionner sur différents types de machines. Ces besoins ont entraîné le développement de langages évolués. Langages évolués Les langages évolués utilisent souvent des mots empruntés à l'anglais pour désigner des commandes, par exemple, list, print, open, etc. Celles-ci peuvent remplacer une séquence de dizaines ou de centaines d'instructions en langage machine. Les commandes sont entrées à l'aide du clavier, à partir d'un programme en mémoire, ou sur une unité de stockage. Elles sont ensuite interceptées par un programme, qui les traduit en langage machine. Il existe deux types de programmes de traduction : les interpréteurs et les compilateurs. Un interpréteur est un programme qui décode et exécute chaque instruction l'une après l'autre. Ainsi, si le programme à traduire comporte plusieurs fois la même instruction, l'interpréteur la décode puis l'exécute chaque fois qu'elle apparaît. Les programmes interprétés fonctionnent donc plus lentement que les programmes en langage machine. En revanche, les compilateurs traduisent le programme en langage machine avant l'exécution, si bien que ces programmes fonctionnent ensuite comme s'ils étaient directement écrits en langage machine. Évolution des ordinateurs Aujourd'hui, les ingénieurs orientent leurs recherches vers une miniaturisation des ordinateurs : ils essaient de graver le maximum de circuits dans des puces de plus en plus réduites. Les chercheurs tentent également de fabriquer des ordinateurs encore plus rapides en utilisant au niveau des circuits la supraconductivité, phénomène électrique observé à très basse température. Beaucoup d'informaticiens rêvent aussi de concevoir des ordinateurs qui reproduiraient les mécanismes de la pensée, et étudient dans ce but les ordinateurs à traitement parallèle, qui utilisent plusieurs puces pour effectuer simultanément des tâches différentes. En effet, le traitement parallèle permet, à un certain degré, d'approcher et d'évaluer les fonctions de la pensée humaine (voir Réseau neuronal). Une autre tendance actuelle est le développement des réseaux informatiques, capables de transmettre des données entre différents ordinateurs par le biais de lignes téléphoniques et de satellites. Enfin, de nombreux travaux portent sur l'ordinateur «!optique!», qui ne répondrait pas aux impulsions électriques, mais aux impulsions lumineuses, beaucoup plus rapides.
1.
Qu ’ est-ce que le Web ? Cybernétique et Vision par OrdinateurRésumé
1 Cybernétique
1.1 Wiener: feedback et boucle perception-actionEn 1948, Norbert Wiener publie la première édition du livre Cybernetics,
or Control and Communication in the Animal and the Machine (Wiener
1961). Ce livre séminal établit les premiers liens entre la branche
naissante qu'est alors l'informatique, la théorie du contrôle électronique
des processus, et le fonctionnement des organismes vivants. Dès le début,
et c'est ce qui rend ce livre passionnant, Wiener jette les bases d'une
approche formelle qui s'attaque à unifier et modéliser les processus régissant
tant la machine que l'homme. Pour le citer: La première notion clé que Wiener introduit est celle du feedback, ou rétroaction, qui consiste à utiliser le signal de sortie d'un système pour contrôler son comportement. En effet, c'est seulement en observant l'effet provoqué par une action qu'il est possible de corriger celle-ci, de façon à obtenir un but désiré. Cette notion conduit tout naturellement à celle de boucle perception-action. Dans cette boucle (Figure 1.a), les senseurs de perception (par exemple la vue, le toucher) sont indispensables pour permettre de contrôler une action motrice. A son tour, l'action motrice influence la perception de l'environnement, par exemple par une modification de la position de l'observateur. Du livre de Wiener ressort finalement l'idée qu'un animal est une machine computationnelle, régie par un ensemble de processus bouclés qui communiquent entre eux. La structure de ces boucles donne lieu à un comportement émergeant; une altération de l'une de ces boucles conduit à un désordre du comportement. Les idées avancées par Wiener et ses collègues sont à la base de nombreuses et fructueuses lignes de recherche. Par exemple, le domaine des neurosciences cognitives regroupe des chercheurs en psychologie, neurophysiologie, informatique, qui s'attachent à comprendre et modéliser le fonctionnement de divers organes sensoriels des organismes vivants. Plutôt que de détailler ces notions fondamentales, l'objectif de cet article est d'illustrer ce que sont devenus ces concepts dans le domaine de la vision par ordinateur appliquée au contrôle de robots. 1.2 Promenade cybernétiqueUn robot mobile peut schématiquement être représenté comme un animat comprenant (Figure 1.b):a) des senseurs, par exemple visuels (une ou plusieurs caméras), tactiles, et de déplacement (odomètres); b) des actionneurs, tels des moteurs, ou des bras équipés de préhenseurs; c) des éléments de calcul, tels un contrôleur effectuant la commande des moteurs, ou un processeur analysant les images captées par la caméra. Supposons que ce robot doive aller d'un point A à un point B. L'ordre de base qui sera donné aux processeurs de l'animait sera du type "{Origine=A, destination=B, trajet=rectiligne}". La Figure 2.a illustre un tel contrôle, dit en boucle ouverte : le contrôleur n'a aucun moyen de savoir si le trajet se déroule conformément aux prévisions. En particulier, un tel type de contrôle ne peut pallier à des déviations de trajectoire, dues par exemple au fonctionnement imprécis des moteurs, au glissement des roues, etc. Pour cela, il faut introduire une boucle de rétroaction, ou feedback : l'erreur e entre la trajectoire souhaitée x0 (dite de consigne) et la trajectoire effective x est mesurée, et le contrôleur de trajectoire corrige cette dernière en fonction de l'erreur (Figure 2.b). Plus l'erreur sera grande, plus l'action correctrice sera importante; à l'opposé, si l'erreur est nulle, aucune correction n'est nécessaire. Ce principe de contrôle dit en boucle fermée se retrouve dans tous les mécanismes automatiques utilisés actuellement. Il y a cependant de nombreuses situations dans lesquelles une simple boucle de rétroaction ne suffit pas à assurer une trajectoire correcte. Tout d'abord, il est souvent difficile de mesurer avec précision la trajectoire réellement effectuée x. L'erreur e est donc souvent fausse et par conséquent la correction est imparfaite. Ensuite, il peut se produire des événements imprévus, tel un obstacle se trouvant sur le chemin. Finalement, l'on peut vouloir demander à l'animat un comportement présentant un certain degré d'adaptabilité, tel: aller en B s'il s'y trouve une assiette, sinon aller en C. Dans ce dernier cas, il est nécessaire de pouvoir reconnaître les objets présents dans la scène. Dans ces trois situations, il devient nécessaire d'intégrer au système de contrôle des senseurs externes fournissant des informations supplémentaires. Ces entrées, dites perceptives, vont par exemple permettre au robot de détecter des événements imprévus et donc de réagir en conséquence . Il existe plusieurs types de senseurs, notamment tactiles, à ultrasons, ou visuels. Il est ainsi courant d'équiper des bras de robots de senseurs tactiles détectant un contact. Toutefois, avec ce genre de senseurs, le robot ne peut pas anticiper les événements. Pour remédier à ce problème, les ultrasons qui permettent une analyse tridimensionnelle grossière de la scène sont beaucoup employés. Les senseurs visuels, quant à eux, vont de la simple diode photo-réceptrice à une, voire plusieurs caméras. Ils fournissent une information photographique détaillée et se rencontrent de plus en plus fréquemment. L'analyse en trois dimensions de l'espace est plus délicate qu'avec les ultrasons, car la scène est projetée en perspective sur l'image bidimensionnelle mesurée; par contre, l'on peut tirer profit des informations données par la couleur.
2 Vision par Ordinateur
2.1 L'image numérique, son traitement et son analyseUne image numérique est un ensemble de points, ou pixels (picture éléments), chacun caractérisé par une valeur. Dans le cas d'images en noir et blanc, les valeurs sont des niveaux de gris: 0 correspond par exemple au noir, 255 au blanc (Figure 3). Pour des images en couleur, à chaque point correspondent trois valeurs, mesurant par exemple les trois couleurs primaires rouge R, vert V et bleu B. Dans ce cas, un point pour lequel R = 255, V = 255 et B = 0 sera un point jaune. Les méthodes dites de traitement d'images remplissent plusieurs fonctions (Kunt et al 1993). Tout d'abord, ces méthodes permettent d'améliorer les images, typiquement en réduisant les perturbations (bruit) qui peuvent survenir lors de leur saisie, ou encore en améliorant leur contraste. Elles permettent également de transformer les valeurs des pixels au moyen d'algorithmes mathématiques, de façon à faire ressortir certaines caractéristiques ou à extraire certains éléments importants, appelés primitives. Il est par exemple possible d'obtenir les contours des objets, ou les régions importantes qui les caractérisent . Ensuite, au moyen de méthodes dites d'analyse d'images, des mesures peuvent être effectuées: longueur des contours, surface et périmètre des régions, etc. C'est au moyen de ces mesures qu'il est possible de caractériser, donc d'identifier des objets. Des domaines d'application typique du traitement et analyse d'images sont la robotique, où les objets à reconnaître sont des pièces manufacturées, ou l'imagerie biomédicale, où l'on s'attache par exemple à améliorer des radiographies ou à reconnaître certains types d'organes. Tous ces traitements sont supervisés : c'est l'utilisateur qui choisit les meilleures méthodes en fonction du problème à traiter.
2.2 Problèmes et tendances en vision par ordinateurLa vision par ordinateur va plus loin que l'analyse d'images (Wechsler 1990, Haralick & Shapiro 1993). L'objectif n'est pas seulement d'effectuer des mesures, mais d'arriver à interpréter automatiquement des scènes plus ou moins complexes; ceci nécessite également l'utilisation de méthodes d'intelligence artificielle. Le principe de base est, à partir d'une image bidimensionnelle, d'extraire les caractéristiques primitives (typiquement contours et régions). Ensuite, ces caractéristiques seront comparées avec celles des différents modèles d'objets potentiellement présents dans la scène. Cette démarche oblige donc à séparer le problème en deux phases: l'apprentissage, c'est-à-dire la construction des modèles, et la reconnaissance, basée sur la comparaison des caractéristiques. Ces recherches sont encore loin d'avoir abouti à un système capable de comprendre n'importe quel type de scène. Différentes grandes tendances ont émergées au cours de ces vingt dernières années. Dans les années 1970, l'accent portait sur la classification d'objets utilisant une succession d'algorithmes conceptuellement déconnectés; c'était en quelque sorte le règne du ad hoc. En 1982, Marr a le premier proposé une théorie globale au problème de la reconnaissance, dite approche reconstructioniste, qui d'ailleurs a également été la première à s'appuyer systématiquement sur les découvertes en neurosciences (Marr 1982). A partir des diverses primitives extraites dans l'image, cette approche s'attache à reconstruire la forme des objets qui composent la scène. La reconstruction se fait par étape, passant des primitives bidimensionnelles à une estimation des surfaces des objets et de leurs orientations dans l'espace. Une estimation tridimensionnelle de l'objet inconnu peut donc être calculée, qui sera comparée aux modèles mémorisés lors de l'apprentissage. L'analyse est essentiellement bottom-up ; les connaissances à-priori ne sont utilisées qu'implicitement par le biais des modèles, et ne servent pas à contrôler les algorithmes d'analyse de l'image. Or l'expérience montre qu'il est illusoire d'espérer extraire de manière aveugle des primitives de qualité suffisante pour reconstruire correctement les objets inconnus. L'approche purposive au problème de la vision par ordinateur, plus récente, se fonde sur la supposition que l'on sache ce que l'on cherche (Aloimonos 1992). Dès lors, le problème n'est plus d'analyser ce que l'on voit mais de reconnaître dans l'image tout ou partie de l'objet recherché. Ceci permet par exemple d'améliorer l'extraction des primitives, en regroupant diverses primitives simples en éléments plus complexes qui seront plus pertinents pour la reconnaissance. Une extension de la vision purposive, dite vision active (Ballard 1991), se base sur la constatation suivante. Lorsqu'un observateur ne comprend pas la scène qu'il observe, il cherche à s'adapter, par exemple en se positionnant différemment. Il acquiert ainsi de nouvelles vues de l'objet qui attire son attention et améliore donc sa compréhension de la scène tridimensionnelle. Selon ce principe, le robot va acquérir plusieurs images d'une même scène, et pourra également suivre visuellement un objet en déplacement. Dans le domaine de la cybernétique, Brooks a proposé une approche que l'on peut appeler comportementaliste (behaviorist) (Brooks 1986). Plutôt que d'avoir un seul processus qui contrôle l'ensemble de la boucle perception-action, divers comportements (behaviors) sont actifs simultanément. Au niveau élémentaire, des comportements réactifs, ou réflexes, gèrent les situations simples. Par exemple, la présence d'un obstacle fera reculer le robot. Les niveaux sont "empilés", et chacun intègre les résultats des niveaux inférieurs pour permettre des comportements de plus en plus sophistiqués. Par ordre de complexité croissante, on aura ainsi des comportements d'évitement d'obstacle, de déplacement aléatoire, d'exploration, de construction de cartes de l'environnement, de détection de changements, et d'identification des objets.
3 Cybernétique et vision par ordinateur
3.1 Un système de perception visuelle par ordinateurLorsque qu'un humain accomplit une action motrice telle un déplacement, son attention se fixe sur un but. Au cours du mouvement, il vérifie constamment l'absence d'obstacles imprévus (mécanisme d'alerte) et sa position par rapport à la position visée. Le flot d'informations sensorielles contrôle donc les actions motrices, permettant d'éviter les obstacles ou de rectifier la trajectoire; en retour, toute action nécessite une perception des nouvelles conditions d'environnement qu'elle engendre. Cette même boucle perception-action doit régir les déplacements d'un robot. Par conséquent, tout système de vision utilisé en cybernétique doit intégrer des fonctions d'alerte, de focalisation de l'attention, et de reconnaissance d'objets. Un exemple d'un tel système de vision par ordinateur intégrant ces fonctionnalités est présenté à la Figure 5, et décrit ci-dessous. A partir de l'image d'entrée, numérisée par une caméra, deux voies principales apparaissent. L'une opère sur l'image entière et reproduit les fonctions d'alerte et de focalisation de l'attention, produisant des masques dans l'image indiquant les régions "où il se passe un événement intéressant" . L'autre voie opère sur les primitives (contours, régions) et trie ces dernières selon leur pertinence pour la reconnaissance. Après leur tri, chaque type de primitives est ordonné en un flot de données dans lequel les primitives les plus importantes arrivent en premier (Burgi 1994). L'importance d'une primitive est fonction de diverses mesures, par exemple la longueur et le contraste pour les contours, ou la taille et l'homogénéité pour les régions. Les flots de chaque type de primitive sont ensuite fusionnés en un flot unique, qui sera filtré spatialement par les masques d'attention. A ce stade, l'image aura été réduite à quelques régions seulement, dans lesquelles les primitives auront de plus été triées selon leur importance. La phase de groupage permet ensuite, à partir des primitives simples, d'obtenir des groupes de primitives qui caractérisent les objets de maniè re plus discriminatoire. Par exemple, le groupe de primitives caractéristique de la forme "porte" de la Figure 3 est la conjonction de deux droites parallèles, d'un segment court perpendiculaire et d'un arc de cercle. C'est au moyen de ces groupements de primitives que les objets seront identifiés (Art 3.3).
3.2 Mécanismes d'alerte et de focalisation de l'attentionLes objets en mouvement captent automatiquement notre attention, qui se porte sur les zones où se déplacent des objets. Le mécanisme d'alerte reprend cette idée et recherche les régions de l'image où des objets se meuvent. Il utilise en entrée une séquence d'images (film vidéo) et produit en sortie des masques correspondants aux régions recherchées; l'analyse de l'image peut alors se restreindre à ces zones, ce qui réduira la quantité de données à traiter. Le principe de ce mécanisme est illustré par la Figure 7. Très schématiquement, plusieurs fonctions liées à la différence entre deux images successives sont calculées et intégrées . Un "remplissage" transforme ensuite cette estimation initiale du mouvement en masques (Gil 1993). Même sur des images statiques, le système visuel humain a la faculté de focaliser son attention sur des régions "intéressantes" de l'image, et ceci sur la base de critères purement bottom-up. En vision par ordinateur, ceci est réalisé tout d'abord par l'extraction à partir de l'image de plusieurs cartes de caractéristiques locales (orientation, contraste, courbure). Dans chaque carte, les régions différentes de leur entourage sont déterminées par un filtrage de type ON-center/OFF-surround (différences de gaussiennes orientées). Un processus d'intégration fusionne finalement ces informations en une image contenant les masques recherchés (Figure 8) (Milanese 1994).
3.3 Apprentissage et reconnaissanceLors de la phase d'apprentissage, les groupements de primitives les plus caractéristiques des objets à reconnaître sont mémorisés et constituent des modèles pour ces objets. Cette phase est délicate et difficile à rendre automatique, car elle nécessite la sélection d'un petit nombre de ces groupements les plus discriminants parmi tous ceux possibles. Par exemple, une droite dans l'image peut appartenir à n'importe quel objet, car presque tous en comprennent une. Par contre, caractériser un objet par une région ronde et orange, ou par une configuration précise de segments, réduit significativement les possibilités. Il s'agit donc de choisir les groupements qui permettront, lors de la reconnaissance, de déterminer le plus rapidement possible les quelques objets probables. Lors de la phase de reconnaissance, les objets à identifier sont composés d'une ou plusieurs combinaisons particulières de primitives. Il faut donc utiliser les combinaisons extraites de l'image pour évaluer à quel objet elles s'apparentent le plus. Grâce aux mécanismes d'attention décrits ci-dessus, il ne restera plus qu'un nombre réduit de primitives à considérer pour cette évaluation. De plus, l'ordonnancement des primitives dans le flot de données permet de les trier par ordre d'importance. Sans ces mécanismes de réduction de données, le problème de la reconnaissance d'objets conduirait à une explosion combinatoire du nombre de possibilités à évaluer (Tsotsos 1990). Schématiquement, les groupements de primitives provenant des régions d'attention et arrivant en premier dans le flot de données vont permettre d'indexer (présélectionner) un nombre réduit d'objets compatibles avec ces données. Ces objets vont constituer des hypothèses initiales, qui devront être vérifiées par la présence dans l'image d'autres caractéristiques non encore détectées appartenant à ces mêmes objets. Cette phase de recherche directive sera donc top-down, ou purposive, donc relativement robuste aux défauts des méthodes d'extraction de primitives (Figure 9.b). Si les caractéristiques manquantes sont bel et bien retrouvées, l'objet est alors reconnu. Sinon, le processus est répété avec les groupements de primitives suivants dans le flot de données. Ces concepts sont détaillés dans (Bost 1993), et sont actuellement en cours d'expérimentation.
4 ConclusionLa vision par ordinateur tient une place importante en cybernétique, par sa fonction sensorielle essentielle dans la boucle perception-action. En particulier, les mécanismes d'alerte, de focalisation de l'attention visuelle et de reconnaissance d'objets sont nécessaires à la bonne marche d'un système robotique autonome. Ces fonctions peuvent actuellement être reproduites dans une certaine mesure au moyen de systèmes de vision par ordinateur, tel celui présenté ici. Pour conclure, si l'on prend l'homme en comparaison, l'œil, puis le cerveau permettent de déclencher et contrôler les actions motrices. En cybernétique, le robot simulera le corps, tandis que la vision par ordinateur s'attachera à reproduire une partie des facultés cognitives du cerveau.
RéférencesALOIMONOS Y. - Ed., Special Issue: Purposive, Qualitative and Active Vision, Comp. Vision, Graphics and Image Processing: Image Understanding, 56, 1, 1992. BALLARD D. H. - Animate vision, in Artificial Intelligence, 48, 57-86, 1991. BROOKS R. A. - A robust layered control system for a mobile robot, in IEEE J. Robotics and Automation, 2, 14-22, 1986. BOST J.-M. - Active search for visual indexing in cluttered environments: from relevance to delays, Ph.D. Dissertation, No. 2656, University of Geneva, December 1993. BURGI P.-Y. PUN T. - Asynchronous image analysis: using the relationship luminance-to-latency to improve segmentation, in J. Optical Soc. of Amer. (JOSA), in press, 1994. GIL S. PUN T. - Multiresolution alerting for motion detection, in Proc. 14eme GRETSI Symposium on Signal and Image Processing, Juan-les-Pins, 13-16 Sept. 903-906, 1993. HARALICK R.M. SHAPIRO L.G. - Computer and robot vision, Addison-Wesley, 1993. KUNT M. GRANLUND G. KOCHER M. - Traitement Numérique des Images, Coll. Electricité, Traitement de l'Information, Vol. 2, Presses Polyt. et Univ. Romandes, 1993. MARR D. - Vision, Freeman, USA, 1982. MILANESE R. WECHSLER H. GIL S. BOST J.-M. PUN T. - Integration of bottom-up and top-down cues for visual attention using non-linear relaxation, in Proc. IEEE - Comp. Vision & Pattern Rec. 94, Seattle, USA, June 20-23, 1994. THORPE S.J. - Spike arrival times: A highly efficient coding scheme for neural networks, In Parallel processing in neural systems, R. Eckmiller, G. Hartman and G. Hauske (Eds.), , North-Holland Elsevier, 91-94, 1990. TSOTSOS J.K. - Analyzing vision at the complexity level, in Behav. & Brain Sciences, 13, 423-469, 1990. WECHSLER H. - Computational Vision, Academic Press, 1990. WIENER N. - Cybernetics, or Control and Communication in the Animal and the Machine, 2nd Edition, The M.I.T. Press, Cambridge, USA, 1961.
N.B : nous sommes entrains de vous donnés quelques nom des logiciels avec ses N°= de série on a dans notre bibliothèque + et + de N°= de série, si vous avez une version non enregistrée ou shareware sans problème envoyez le logiciel et sa version à : njnet@caramail.com et voici ainsi une liste des logiciels crackers :
|
NJnet corporation © 2002