Il y a quelques mois, l'éditeur belge Creecead présentait Primo, un logiciel qu'il affirmait révolutionnaire. Il faut dire qu'en plus de redresser, de ”détorsionner” facilement une image, Prizmo permet aussi de pratiquer la reconnaissance des caractères présents sur une simple photo qu'on aurait prise avec son APN ou, comme c'est le cas d'habitude, depuis l'image livrée par un scanner. Mais que vaut ce logiciel ? Est-il efficace ? Réponse dans notre test de Prizmo 1.1.
Acquisition d’images
Prizmo travaille donc sur une image. L’importation des images dans l’application se fait par simple-glisser de la photo sur l’application, ou par le classique dialogue d’ouverture. Prizmo permet aussi de sélectionner un image depuis la librairie iPhoto, ou encore mieux, directement depuis un APN sans passer par le “Transfert d’image”.
Ainsi, pas de stockage d’images intermédiaire. De plus, Prizmo permet de faire une rotation d’image, fonction étonnamment disponible uniquement dans les menus.
Traitement de l’image
Le traitement de l’image commence par l’application d’une grille sur celle-ci afin de permettre une correction de la perspective, par exemple ici sur une image d’un fronton pris en contre-plongée de biais.
Ainsi, en plaçant correctement les quatre coins, on obtient une image du fronton correctement redressée. Dans cet exemple, le travail est facilité en s’appuyant sur les bords de briques :
Bien sûr, on peut faire des effets graphiques si on place les points n’importe où :
La simplicité de ce traitement est tellement agréable qu’il serait sympathique de retrouver cette fonction comme plug-in dans iPhoto, en s’appuyant sur la grille de travail déjà présente dans iPhoto.
Bien sûr, plus la résolution de l’image est importante, plus le résultat est de qualité.
La manipulation de l’image ou de la grille est assez intuitive : déplacement par simple glissement avec le bouton gauche de la souris enfoncé sur l’image, ou la grille, ou l’un des sommets ou encore l’un des côtés. Bien, mais il serait encore plus pratique de pouvoir bouger toute l’image avec une commande différente, par exemple avec un autre bouton. En effet, lorsqu’on travaille sur une image fortement zoomée, on ne voit plus forcement l’image hors grille. Il faut alors dézoomer pour bouger la zone de travail, l’application n’ajoutant pas d’ascenseur. Autres solutions : permettre les déplacements via les flèches du clavier ou alors finaliser l’utilisation de la roulette qui permet aujourd’hui qu’un déplacement vertical, mais pourrait permettre un déplacement horizontal de l’image avec l’appui simultané sur une touche majuscule. Bref, plusieurs solutions peuvent être envisagées.
D’une image à l’autre, le logiciel propose de reprendre la grille avec le cadrage précédent. Ceci peut permettre de gagner pas mal de temps dans le cas de photos de plusieurs pages d’un livre par exemple...
Les réglages suivants sont répartis par thème et s’affichent sous forme de “vrais” dialogues (comme des phylactères en BD, comme le fait déjà par exemple “Picturesque”)
Petit reproche : ils restent ouverts tant qu’on n’appuie pas à nouveau sur l’icône du dialogue pour les refermer ou sur une autre icône pour l’ouverture d’un autre dialogue. Un clic dans le bandeau pourrait permettre de refermer n’importe quelle bulle.
Calibrage
Le second dialogue concerne le calibrage. En effet, chaque objectif d’un appareil photo peut entraîner des distorsions. Cette distorsion est beaucoup moins présente, et peut même être absente avec les scanners (à plat). Or l’idée de Prizmo est de travailler avec des photos… Creaceed a donc fait un effort important dans ce domaine. Il est d’abord possible de faire une correction directe de la distorsion via les deux curseurs. On voit ici, le résultat si on exagère :
Le logiciel propose aussi de calibrer votre appareil via un set de photos à faire sur une grille :
Pour cela, il faut prendre une dizaine de photos. Seul moment où la documentation a été utile (d’ailleurs bien faite). Il aurait été souhaitable de résumer la procédure dans l’introduction (nombre minimum de photos à faire, sous quel angle exactement, quelle zone à photographier...). Si le calibrage a été possible, le logiciel propose d’enregistrer les réglages de votre appareil+objectif dans sa base de données afin de le réutiliser plus tard, mais aussi d’en faire profiter d’autres utilisateurs. Bonne idée, mais il est dommage qu’on ne puisse pas consulter la liste des calibrages déjà enregistrés.
Réglages
D’autres réglages sont possibles, et les jeux de réglages mémorisables à volonté dans des présets. Un petit reproche, dont la correction serait sûrement difficile à implémenter : les réglages sont concernent globalement l’image, or parfois on aimerait corriger l’image, par exemple l’exposition, sur une partie seulement de l’image....
Reconnaissance de caractères
La reconnaissance de caractères sur photo est la fonction à forte valeur ajoutée mise en avant. Qu’en est-il ?
Déjà, le site indique qu’il s’agit de l’implémentation du code de “ExperExchange”, qui d’après le web est le code de Typereader. D’ailleurs, l’export des résultats en PDF semble confirmer ce point dans les informations du fichier produit :
Parfait, car rien que la version “desktop” de TypeReader est à 400 $ et Prizmo n’est qu’à 10% de ce prix ! (et c’est pire avec OpenRTK® dont la “development license” est à 5 190 $).
Bien sûr, encore une fois, le résultat de la reconnaissance de caractères dépend de la qualité de la l’image source (résolution contraste, déformation...) Mais globalement le logiciel ne s’en sort pas trop mal. La reconnaissance de bloc est présente, mais pas toujours optimale...
mais on peut aider le logiciel en faisant soit même le découpage en bloc en appliquant la grille bloc par bloc.
La reconnaissance se fait donc sur la zone couverte par la grille, dont une représentation sous format image se trouve dans la zone de gauche. Le logiciel visualise les blocs qu’il a repérés, et le passage de la souris sur ces blocs provoque l'affichage du résultat de la reconnaissance de caractères sur un bandeau en haut de l’application :
Le dialogue dévolu à l’OCR permet de modifier rapidement le seuil de binarisation appliqué avant de faire la reconnaissance. Le simple réglage de ce seuil permet souvent d’améliorer le résultat de la reconnaissance. De plus en restant appuyé sur le curseur, on voit en direct le résultat de la binarisation :
En revanche, l’effet du choix de la langue semble ne rien changer au résultat de la reconnaissance. C’est d’autant plus frustrant que le texte résultat n’est visible que via le bandeau avec un affichage glissant, et non simplement sous la forme d’un champ texte où l’on pourrait corriger de petites fautes en direct, voire éventuellement améliorer la reconnaissance par apprentissage, en s’appuyant alors sur le dictionnaire...
L'exportation
L’exportation permet de sauvegarder bien sûr l’image traitée sous forme d’image dans les trois formats classiques (JPEG, PNG, TIFF), d'ailleurs sans avoir accès aux paramètres de qualité, mais aussi d’exporter le résultat de la reconnaissance de caractères. En plus des “textes simples”, deux versions PDF sont proposées : Le texte mis en forme comme dans l’image ! et encore plus bluffant, l’image recouverte de façon masquée du texte reconnu : ainsi si on fait une sélection du texte dans le PDF, on obtient dans le presse papier le texte correspondant à l’image !
Ainsi à partir de l’extrait de journal suivant
on obtient facilement le fichier PDF avec le texte mis en forme, c'est-à-dire un PDF avec du texte mis en forme comme dans l’image
ou mieux un fichier PDF image et texte caché, texte que l’on peut récupérer en sélectionnant le texte ou que spotlight peut utiliser pour indexation :
A noter que le texte seul, au format RTF, dans le cas où la reconnaissance a trouvé des blocs différents comme dans cet exemple, ajoute des retours à la ligne entre ces blocs :
Et bien sûr plus le journal est mis à plat, plus on évite les reflets lumineux, meilleure sera l’image et meilleure sera la reconnaissance de caractères...
Enfin, un petit clin d’œil sympathique dans le “A propos” de l’application :
Le mot de la fin
Prizmo est un logiciel abouti, qui comporte plusieurs bonnes idées bien implémentées. L’interface est intuitive, les fonctionnalités relativement complètes. Les résultats de l’OCR sont variables (souvent bons, voire très bons, mais parfois étonnamment médiocres), mais de toutes les façons difficiles à qualifier, car ils dépendent pour beaucoup de paramètres (qualité de la police de caractères, des conditions de prise de vue, de l’appareil…). Le logiciel met à disposition un maximum d’outils pour contrer au mieux ces problèmes. Prizmo n’est pas prévu pour faire de l’OCR en grosse série, quoique la mémorisation des différents paramètres peut y aider, mais plutôt pour récupérer l’information issue d’articles de la presse papier, de notes, pages de livres... pour les conserver et surtout les retrouver facilement ensuite via spotlight, par exemple. Et dans ce cadre, Prizmo a son rôle à jouer.
Acquisition d’images
Prizmo travaille donc sur une image. L’importation des images dans l’application se fait par simple-glisser de la photo sur l’application, ou par le classique dialogue d’ouverture. Prizmo permet aussi de sélectionner un image depuis la librairie iPhoto, ou encore mieux, directement depuis un APN sans passer par le “Transfert d’image”.
Ainsi, pas de stockage d’images intermédiaire. De plus, Prizmo permet de faire une rotation d’image, fonction étonnamment disponible uniquement dans les menus.
Traitement de l’image
Le traitement de l’image commence par l’application d’une grille sur celle-ci afin de permettre une correction de la perspective, par exemple ici sur une image d’un fronton pris en contre-plongée de biais.
Ainsi, en plaçant correctement les quatre coins, on obtient une image du fronton correctement redressée. Dans cet exemple, le travail est facilité en s’appuyant sur les bords de briques :
Bien sûr, on peut faire des effets graphiques si on place les points n’importe où :
La simplicité de ce traitement est tellement agréable qu’il serait sympathique de retrouver cette fonction comme plug-in dans iPhoto, en s’appuyant sur la grille de travail déjà présente dans iPhoto.
Bien sûr, plus la résolution de l’image est importante, plus le résultat est de qualité.
La manipulation de l’image ou de la grille est assez intuitive : déplacement par simple glissement avec le bouton gauche de la souris enfoncé sur l’image, ou la grille, ou l’un des sommets ou encore l’un des côtés. Bien, mais il serait encore plus pratique de pouvoir bouger toute l’image avec une commande différente, par exemple avec un autre bouton. En effet, lorsqu’on travaille sur une image fortement zoomée, on ne voit plus forcement l’image hors grille. Il faut alors dézoomer pour bouger la zone de travail, l’application n’ajoutant pas d’ascenseur. Autres solutions : permettre les déplacements via les flèches du clavier ou alors finaliser l’utilisation de la roulette qui permet aujourd’hui qu’un déplacement vertical, mais pourrait permettre un déplacement horizontal de l’image avec l’appui simultané sur une touche majuscule. Bref, plusieurs solutions peuvent être envisagées.
D’une image à l’autre, le logiciel propose de reprendre la grille avec le cadrage précédent. Ceci peut permettre de gagner pas mal de temps dans le cas de photos de plusieurs pages d’un livre par exemple...
Les réglages suivants sont répartis par thème et s’affichent sous forme de “vrais” dialogues (comme des phylactères en BD, comme le fait déjà par exemple “Picturesque”)
Petit reproche : ils restent ouverts tant qu’on n’appuie pas à nouveau sur l’icône du dialogue pour les refermer ou sur une autre icône pour l’ouverture d’un autre dialogue. Un clic dans le bandeau pourrait permettre de refermer n’importe quelle bulle.
Calibrage
Le second dialogue concerne le calibrage. En effet, chaque objectif d’un appareil photo peut entraîner des distorsions. Cette distorsion est beaucoup moins présente, et peut même être absente avec les scanners (à plat). Or l’idée de Prizmo est de travailler avec des photos… Creaceed a donc fait un effort important dans ce domaine. Il est d’abord possible de faire une correction directe de la distorsion via les deux curseurs. On voit ici, le résultat si on exagère :
Le logiciel propose aussi de calibrer votre appareil via un set de photos à faire sur une grille :
Pour cela, il faut prendre une dizaine de photos. Seul moment où la documentation a été utile (d’ailleurs bien faite). Il aurait été souhaitable de résumer la procédure dans l’introduction (nombre minimum de photos à faire, sous quel angle exactement, quelle zone à photographier...). Si le calibrage a été possible, le logiciel propose d’enregistrer les réglages de votre appareil+objectif dans sa base de données afin de le réutiliser plus tard, mais aussi d’en faire profiter d’autres utilisateurs. Bonne idée, mais il est dommage qu’on ne puisse pas consulter la liste des calibrages déjà enregistrés.
Réglages
D’autres réglages sont possibles, et les jeux de réglages mémorisables à volonté dans des présets. Un petit reproche, dont la correction serait sûrement difficile à implémenter : les réglages sont concernent globalement l’image, or parfois on aimerait corriger l’image, par exemple l’exposition, sur une partie seulement de l’image....
Reconnaissance de caractères
La reconnaissance de caractères sur photo est la fonction à forte valeur ajoutée mise en avant. Qu’en est-il ?
Déjà, le site indique qu’il s’agit de l’implémentation du code de “ExperExchange”, qui d’après le web est le code de Typereader. D’ailleurs, l’export des résultats en PDF semble confirmer ce point dans les informations du fichier produit :
Parfait, car rien que la version “desktop” de TypeReader est à 400 $ et Prizmo n’est qu’à 10% de ce prix ! (et c’est pire avec OpenRTK® dont la “development license” est à 5 190 $).
Bien sûr, encore une fois, le résultat de la reconnaissance de caractères dépend de la qualité de la l’image source (résolution contraste, déformation...) Mais globalement le logiciel ne s’en sort pas trop mal. La reconnaissance de bloc est présente, mais pas toujours optimale...
mais on peut aider le logiciel en faisant soit même le découpage en bloc en appliquant la grille bloc par bloc.
La reconnaissance se fait donc sur la zone couverte par la grille, dont une représentation sous format image se trouve dans la zone de gauche. Le logiciel visualise les blocs qu’il a repérés, et le passage de la souris sur ces blocs provoque l'affichage du résultat de la reconnaissance de caractères sur un bandeau en haut de l’application :
Le dialogue dévolu à l’OCR permet de modifier rapidement le seuil de binarisation appliqué avant de faire la reconnaissance. Le simple réglage de ce seuil permet souvent d’améliorer le résultat de la reconnaissance. De plus en restant appuyé sur le curseur, on voit en direct le résultat de la binarisation :
En revanche, l’effet du choix de la langue semble ne rien changer au résultat de la reconnaissance. C’est d’autant plus frustrant que le texte résultat n’est visible que via le bandeau avec un affichage glissant, et non simplement sous la forme d’un champ texte où l’on pourrait corriger de petites fautes en direct, voire éventuellement améliorer la reconnaissance par apprentissage, en s’appuyant alors sur le dictionnaire...
L'exportation
L’exportation permet de sauvegarder bien sûr l’image traitée sous forme d’image dans les trois formats classiques (JPEG, PNG, TIFF), d'ailleurs sans avoir accès aux paramètres de qualité, mais aussi d’exporter le résultat de la reconnaissance de caractères. En plus des “textes simples”, deux versions PDF sont proposées : Le texte mis en forme comme dans l’image ! et encore plus bluffant, l’image recouverte de façon masquée du texte reconnu : ainsi si on fait une sélection du texte dans le PDF, on obtient dans le presse papier le texte correspondant à l’image !
Ainsi à partir de l’extrait de journal suivant
on obtient facilement le fichier PDF avec le texte mis en forme, c'est-à-dire un PDF avec du texte mis en forme comme dans l’image
ou mieux un fichier PDF image et texte caché, texte que l’on peut récupérer en sélectionnant le texte ou que spotlight peut utiliser pour indexation :
A noter que le texte seul, au format RTF, dans le cas où la reconnaissance a trouvé des blocs différents comme dans cet exemple, ajoute des retours à la ligne entre ces blocs :
Et bien sûr plus le journal est mis à plat, plus on évite les reflets lumineux, meilleure sera l’image et meilleure sera la reconnaissance de caractères...
Enfin, un petit clin d’œil sympathique dans le “A propos” de l’application :
Le mot de la fin
Prizmo est un logiciel abouti, qui comporte plusieurs bonnes idées bien implémentées. L’interface est intuitive, les fonctionnalités relativement complètes. Les résultats de l’OCR sont variables (souvent bons, voire très bons, mais parfois étonnamment médiocres), mais de toutes les façons difficiles à qualifier, car ils dépendent pour beaucoup de paramètres (qualité de la police de caractères, des conditions de prise de vue, de l’appareil…). Le logiciel met à disposition un maximum d’outils pour contrer au mieux ces problèmes. Prizmo n’est pas prévu pour faire de l’OCR en grosse série, quoique la mémorisation des différents paramètres peut y aider, mais plutôt pour récupérer l’information issue d’articles de la presse papier, de notes, pages de livres... pour les conserver et surtout les retrouver facilement ensuite via spotlight, par exemple. Et dans ce cadre, Prizmo a son rôle à jouer.