Brevet FR2861524A1 — publié le 20050429

L'invention concerne un dispositif et un procédé de détection de l'orientation d'une image. L'invention concerne plus généralement la détection automatique de 5 l'orientation d'une image, pouvant éventuellement contenir également du texte. Les appareils photo numériques, de même que les scanners génèrent des photos qui sont souvent visualisées sur un écran, tel un écran d'ordinateur. Ces images peuvent être visualisées correctement, c'est-àdire dans la bonne orientation ou alors dans un sens qui ne permet pas à l'utilisateur de les visualiser sans avoir à tourner la tête à gauche ou à droite, voire même à avoir la tête en bas. En effet, les appareils de capture tels les appareils photos numériques ou les caméras, peuvent saisir des images dans plusieurs sens, et notamment il n'est pas rare qu'un utilisateur prenne certaines de ses photos en mode portrait et d'autres en mode paysage. Les photos ainsi prises sont ensuite transférées vers un ordinateur et visualisées toutes dans le même sens. Certaines seront donc correctement visualisées alors que d'autres nécessiteront une rotation de 90, 180 ou 270 degrés pour être visualisées correctement. Certains dispositifs de capture et notamment certains appareils photo numériques, possèdent des capteurs d'orientation qui détectent une rotation de l'objectif et transmettent une information de rotation obtenue du capteur avec l'image. Ceci permet au dispositif de visualisation, grâce à l'information de rotation, d'effectuer automatiquement une rotation de l'image pour qu'elle apparaisse dans le bon sens. D'autres dispositifs utilisent des procédés d'extraction des caractéristiques bas niveau ou haut niveau de l'image. Ceci permet d'analyser le contenu de l'image en terme de couleur, texture et également en terme de contenu sémantique. Cependant de tels dispositifs ne sont pas robustes pour tous les types d'images. L'invention concerne plus particulièrement la rotation automatique d'images dans des dispositifs de visualisation ne recevant pas d'information d'orientation du dispositif de capture et présentant des géométries particulières. L'invention concerne un procédé de détection de l'orientation d'une image. Selon l'invention, le procédé comporte les étapes de: - détection des lignes dans l'image, - calcul, pour chaque ligne détectée, d'attributs caractérisant chaque ligne, - détection de l'orientation de l'image en fonction des attributs de l'ensemble des lignes détectées. Lorsque l'on regarde, de profil, un paysage contenant des lignes horizontales et des lignes verticales, les lignes verticales restent verticales, par contre les lignes horizontales sont obliques. Ainsi, les photos contenant un fort pourcentage de lignes verticales peuvent être considérées comme des photos dont l'orientation est correcte. Par contre, les photos qui contiennent un fort pourcentage de lignes horizontales peuvent être considérées comme des photos devant subir une rotation pour être visualisées correctement. Ceci est illustré par la figure 1. Le procédé est particulièrement adapté pour des images contenant plusieurs lignes horizontales et verticales. II peut, de manière avantageuse, être utilisé en complément de méthodes connues de détection automatique d'orientation. Selon un mode de réalisation préféré, l'étape de détection des lignes 30 dans l'image comporte les sous-étapes de - détection de contours, seuillage du gradient de luminance des points appartenant à chaque contour détecté. 2861524 3 Selon un mode préféré de réalisation, l'étape de détection de l'orientation consiste en une détection par apprentissage de l'orientation de l'image. L'invention concerne également un dispositif de détection de l'orientation d'une image caractérisé en ce qu'il comporte des moyens de: -détection des lignes dans l'image, - calcul, pour chaque ligne détectée, d'attributs (F) caractérisant cette ligne, - détection de l'orientation de l'image en fonction des attributs de l'ensemble des lignes détectées. L'invention est également relative à un produit programme d'ordinateur caractérisé en ce qu'il comprend des instructions de code de programme 15 aptes à mettre en oeuvre le procédé selon l'une des revendications 1 à 5 lorsque le programme est exécuté sur un ordinateur. L'invention sera mieux comprise et illustrée au moyen d'exemples de modes de réalisation et de mise en oeuvre avantageux, nullement limitatifs, en 20 référence aux figures annexées sur lesquelles: la figure 1 représente une image dont les différentes lignes horizontales et verticales ont été mises en évidence, la figure 2 représente un mode préféré de réalisation de l'invention. La figure 1 représente une image dont les lignes horizontales, verticales et obliques ont été mises en évidence. La figure 1 représente plus particulièrement une image représentative 30 d'un bâtiment et comportant donc un nombre important de lignes horizontales et verticales. En se basant sur le fait que la photo a été prise par un appareil photo dont l'axe optique est situé dans le plan horizontal, la perspective a pour effet que les lignes verticales de la scène restent verticales, par contre les lignes horizontales deviennent obliques. Les lignes horizontales du bâtiment, par exemple les lignes délimitant les fenêtres et le toit, sont devenues obliques en perspective. Par contre, les lignes verticales, délimitant les contours du bâtiment et des fenêtres, sont restées verticales. Les lignes horizontales prises de face restent horizontales. Ainsi, l'orientation d'une telle photo peut être déterminée en effectuant un pourcentage entre le nombre de lignes horizontales et le nombre de lignes verticales. Effectivement, cette photo contient un nombre important de lignes verticales, proportionnellement au nombre de lignes horizontales. Elle contient en outre un nombre important de lignes obliques. La figure 2 représente un organigramme de fonctionnement d'un procédé selon un mode préféré de réalisation. Le procédé comporte une première étape El de détection de contour afin d'isoler les différentes lignes présentes dans l'image. La détection de contours peut être effectuée en utilisant différentes méthodes connues de détection de contours telles les méthodes de Prewitt, Sobel ou Canny-Deriche. De telles méthodes sont par exemple décrites dans le livre de Cocquerez et Philipp intitulé Analyse d'images: filtrage et segmentation , et publié en 1995 chez Masson. Cette opération consiste à estimer la variation locale de luminance. Pour chaque pixel de l'image, on calcule le module du gradient de luminance, c'est-à-dire l'intensité de la variation de luminance dans un petit voisinage local autour de ce point. Les pixels de plus fort module de gradient sont alors considérés comme étant sur des contours. L'étape de détection de contour est suivie d'une étape E2 de seuillage permettant d'isoler les contours. Lors de cette étape, le module du gradient de luminance des points ayant été détectés lors de l'étape précédente comme faisant partie d'une ligne, est comparée à un seuil. Le seuil peut être unique pour toute l'image ou alors il peut varier en fonction de la texture des différentes régions de l'image. Un algorithme de partage des eaux ( watershed en anglais), peut également être appliqué pour obtenir les contours. Suite à cette opération de seuillage, on obtient une image binaire représentant des contours partiels, c'est-à-dire des portions de courbes. Il peut ensuite s'avérer nécessaire de supprimer les contours obtenus à l'étape de seuillage qui sont trop petits ou alors de connecter les contours 10 disjoints mais proches. Puis, ensuite l'image est transformée lors de l'étape E3 en utilisant une transformation de Hough afin d'identifier les lignes dans l'image. La transformée de Hough est une méthode classique de détection de formes simples dans une image. Cette méthode fait partie de la famille des algorithmes de votes et peut par exemple être utilisée pour détecter des droites ou des cercles. Ceci donne un ensemble de lignes alignées sur les lignes détectées dans l'image originale. L'étape suivante consiste à mesurer l'orientation prédominante. Pour chaque droite détectée dans l'image, un ensemble de K attributs sont calculés lors de l'étape E4 (nombre de points sur la ligne, dispersion de l'ensemble de points, distances entre points non connectés de façon à privilégier les lignes qui correspondent à des objets réels, etc.) représentés sous la forme d'un vecteur d'attributs F. F = (fk),k e [1,K] Chaque ligne peut être pondérée. Les lignes dont les points ne sont 30 pas réellement alignés, sont peu probablement des lignes et peuvent donc subir une pondération de façon à être moins prises en compte dans la décision de l'orientation. L'orientation (ou l'inclinaison) des lignes est quantifiée, de o à 71 et les mesures sont regroupées par intervalle angulaire. Ainsi on obtient pour chaque intervalle angulaire i, un certain nombre Ni de droites dont l'orientation est comprise dans cet intervalle. Cette quantification n'est pas uniforme dans le sens où l'intervalle [0; n] n'est pas divisé en intervalles égaux mais il est découpé de façon plus fine autour de n/2, pour accentuer le fait que l'on recherche les lignes ayant une orientation voisine de n/2. L'intervalle [0; n] est divisé en N intervalles (a; = 0, an = zr). [0 [=tJ,:=o '[a=,ai-1[ Les intervalles ne sont pas de taille égale mais sont de taille plus petite autour de n/2. L'orientation de l'image dépend du rapport entre le nombre de lignes horizontales et verticales. Afin de prendre la décision, on utilise, dans ce mode de réalisation, un système de décision avec apprentissage, de type réseau neuronal. F' représente les attributs de la droite n dans le secteur angulaire i. Les entrées du système de décision, sont pour chaque segment _ [a, , a,+1 [ le nombre Ni de droites détectées dans le segment angulaire, Un vecteur d'attribut F; fonction de l'ensemble des vecteurs d'attributs de ces droites, F , n e [1,N, ]. Et à titre illustratif dans ce mode de réalisation, la moyenne des Ni vecteurs associés à chaque droite détectée dans cet intervalle, ou toute autre fonction qui résume ces Ni vecteurs en un seul. Ces données collectées pour chaque intervalle constituent les entrées d'un système de décision à apprentissage tel un classifieur supervisé, par angulaire S 25 exemple un réseau neuronal. Selon un autre mode de réalisation, on peut également utiliser une machine à support de vecteurs (SVM) ou toute autre technologie appartenant au domaine de la reconnaissance de formes. Le fonctionnement d'un tel système est décrit dans le document Statistical Pattern Recognition: A Review de Anil K. Jain, Robert P.W. Duin et Jianchang Mao publié en Novembre 1999 dans le volume IEEE Transactions, PAMI 22(1), page 4-37, 2000 Le système de décision par apprentissage est un système qui modélise (étape E5) des images exemples en mode portrait ou paysage et qui ensuite en déduit des attributs. II peut ainsi associer à une image entrante, en fonction des attributs, un type portrait ou paysage. Les attributs fournis par le système de décision sont des attributs identiques à ceux fournis en entrée du système de décision. Cette association se fait par comparaison des vecteurs d'attributs et ensuite en fonction de la valeur des vecteurs d'attributs, par comparaison de distance avec les vecteurs d'attribut de la classe portrait ou de la classe paysage. De cette manière, lorsqu'il reçoit en entrée le vecteur d'attributs, il peut classer dans la catégorie portrait ou paysage, par comparaison, l'image en fonction des images exemples qu'il a modélisées et du vecteur d'attributs de cette image. Les SVMs modélisent des hyperplans de séparation entre les classes à détecter, soit portrait ou paysage: ensuite, selon que les attributs d'une nouvelle image tombent d'un côté ou de l'autre de la frontière entre les deux hyperplans, l'image est classée en tant que portrait ou paysage. Le procédé de détection de l'orientation d'une image tel que proposé dans l'invention s'insère de manière avantageuse dans des procédés de détection de l'orientation d'une image connus. En effet, ce procédé est particulièrement avantageux pour des images contenant un fort pourcentage de lignes horizontales, obliques, et verticales mais présente des résultats moins intéressants pour des images ne contenant que des personnes ou par exemple des paysages. II est donc intéressant d'associer ce procédé à des procédés mettant en oeuvre des étapes d'extraction de caractéristiques haut niveau et bas niveau efficaces pour des images présentant d'autres types de contenu. Parmi des procédés d'extraction des caractéristiques bas niveau, on connaît des procédés de détection de la couleur, par exemple de la couleur du ciel. Ceci est par exemple décrit dans la demande de brevet EP1107182 déposée au nom de Kodak industrie le 17 novembre 2000. Parmi des procédés d'extraction des caractéristiques de haut niveau, on connaît des méthodes permettant de détecter des visages dans des images qui peuvent permettrent par la suite la détection de l'orientation d'une image. Suivant le contenu des images, il est donc avantageux de combiner ces méthodes avec la méthode selon l'invention qui se base sur des propriétés physiques et géométriques d'éléments pouvant être présents dans l'image. Revendications 1. Procédé de détection de l'orientation d'une image caractérisé en ce 5 qu'il comporte les étapes de: - détection (E1, E2, E3) des lignes dans l'image, - calcul (E4), pour chaque ligne détectée, d'attributs (F) caractérisant chaque ligne, - détection (E5) de l'orientation de l'image en fonction des attributs de 10 l'ensemble des lignes détectées. 2. Procédé selon la revendication 1 caractérisé en ce que l'étape de détection des lignes dans l'image comporte les sous-étapes de - détection (El) de contours, - seuillage (E2) du gradient de luminance des points appartenant à chaque contour détecté. 3. Procédé selon l'une des revendications précédentes caractérisé en ce que l'étape de détection (E5) de l'orientation consiste en une détection 20 par apprentissage de l'orientation de l'image. 4. Procédé selon l'une des revendications précédentes caractérisé en ce qu'il comporte une étape de détection de l'inclinaison des lignes détectées et que les attributs caractérisant les lignes détectées de l'image comprennent des paramètres relatifs à l'inclinaison des lignes. 5. Procédé selon l'une des revendications précédentes caractérisé en ce que les lignes détectées sont classées suivant leur orientation. 6. Dispositif de détection de l'orientation d'une image caractérisé en ce qu'il comporte des moyens de: -détection des lignes dans l'image, calcul, pour chaque ligne détectée, d'attributs (F) caractérisant cette ligne, - détection de l'orientation de l'image en fonction des attributs de l'ensemble des lignes détectées. 7. Produit programme d'ordinateur caractérisé en ce qu'il comprend des 5 instructions de code de programme aptes à mettre en oeuvre le procédé selon l'une des revendications 1 à 5 lorsque le programme est exécuté sur un ordinateur.