IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Traitement d'images Discussion :

Reconnaissance de caractères braille


Sujet :

Traitement d'images

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Reconnaissance de caractères braille
    Bonjour à tous.

    Je travaille actuellement sur un sujet portant sur la reconnaissance des caractères brailles. Le projet consiste d'abord à reconnaître les caractères au sein d'un document écrit en braille. Je compte ensuite transcrire les caractères brailles reconnus en alphabet latin, de manière à reconstituer un texte qui puisse être lu par les personnes ne sachant pas lire le braille.

    Je suis novice sur le plan du traitement d'images. Donc je rencontre pas mal de difficultés pour réaliser ce travail. Je me suis dans un premier temps renseigné sur les méthodes de reconnaissance optique de caractères. Pour commencer, j'ai choisi d'utiliser la librairie OpenCV pour réaliser ce travail. J'ai pris une image d'un document braille :

    Nom : BrailleTest.jpg
Affichages : 472
Taille : 14,3 Ko

    Ensuite je me suis renseigné sur les étapes importantes à réaliser pour le traitement d'images dans le cas d'une reconnaissance optique de caractères, à savoir :

    • Convertir l'image originale en niveaux de gris
    • Améliorer la qualité de l'image (réduction du bruit, amélioration du contraste au niveau des contours ...)
    • Réaliser la binarisation de l'image


    J'ai tenté de réaliser ce traitement sous Java en utilisant OpenCV et en m'inspirant de ce que l'on trouve sur Internet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    public class TestTraitement {
     
    static {
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
    }
     
     
    public static void main(String args[]) {
     
        Mat imgGrayscale = new Mat();
        Mat imgBlurred = new Mat();
        Mat imgCanny = new Mat();
     
        Mat image = Imgcodecs.imread("C:/Users/BrailleTest.jpg", 1);
     
        int imageWidth = image.width();
        int imageHeight = image.height();
     
     
     
        Imgproc.cvtColor(image, imgGrayscale, Imgproc.COLOR_BGR2GRAY);
        Imgproc.GaussianBlur(imgGrayscale, imgGrayscale, new Size(3, 3), 0);
        Imgproc.adaptiveThreshold(imgGrayscale, imgGrayscale, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 5, 4);
     
     
     
     
        Imgproc.medianBlur(imgGrayscale, imgGrayscale, 3);
        Imgproc.threshold(imgGrayscale, imgGrayscale, 0, 255, Imgproc.THRESH_OTSU);
     
        Imgproc.GaussianBlur(imgGrayscale, imgGrayscale, new Size(3, 3), 0);
        Imgproc.threshold(imgGrayscale, imgGrayscale, 0, 255, Imgproc.THRESH_OTSU);
     
        Imgcodecs.imwrite( "C:/Users/resultat.jpg", imgGrayscale );
     
    }
     
    }
    Pour ce premier test, mon résultat est le suivant :

    Nom : resultat.jpg
Affichages : 463
Taille : 24,6 Ko

    Je souhaiterais avoir des avis sur l'image obtenue et sur les possibilités d'amélioration. Je pense que l'on peut jouer sur certains paramètres ou peut-être réaliser d'autres traitements pour améliorer ce premier résultat.

    J'aimerais avoir des conseil pour passer à l'étape suivante et savoir s'il y aura des solutions possibles pour ensuite réaliser la détection des points à partir de cette image ?

    Merci pour vos réponses.

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut ,

    de mémoire l'alphabet se défini par une matrice de 6 points (2 de large et 3 de haut)
    donc ton travail va consisté a découper cette images en une multitude de matrice afin d'en extraire les caractère
    la qualité de tes premiers filtre semble suffisant pour allez plus loin
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    L'image n'est pas uniformément éclairée. Une correction rendrait le seuillage plus robuste, avec des points plus réguliers entre le haut et le bas.Nom : braille.JPG
Affichages : 508
Taille : 102,2 Ko
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2018
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour vos réponses.
    Effectivement, je vais d'abord essayer de rechercher comment effectuer la correction de l'image avant de passer au découpage de l'image. Pour ce qui est de la correction que tu as effectuée Nebulix, je ne connais pas trop le logiciel que tu as utilisé. J'aimerais savoir s'il est possible d'utiliser ce logiciel au sein d'un projet Java car j'aimerais bien effectuer la correction au sein de mon code. Je ne sais pas si cela est possible avec la solution que tu as proposée ou est-ce mieux de le faire en utilisant la librairie OpenCV ?

  5. #5
    Membre expérimenté
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Points : 1 453
    Points
    1 453
    Par défaut
    J'ai utilisé ImageJ, mais ce sont des opérations très simples qui peuvent se faire dans tous les langages.
    Ce qui s'énonce clairement se conçoit bien ( Le hautbois)

  6. #6
    Membre éprouvé

    Homme Profil pro
    Cyber Security & AI
    Inscrit en
    Février 2009
    Messages
    506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Cyber Security & AI

    Informations forums :
    Inscription : Février 2009
    Messages : 506
    Points : 1 155
    Points
    1 155
    Billets dans le blog
    2
    Par défaut
    Bonjour,

    Pour segmenter l'image, je me rappelle que le SHIFT est une méthode très efficace.

    Elle permet de redresser les images si celle-ci n’en est pas droite.

    Bien cordialement,

  7. #7
    Membre éclairé
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 859
    Points
    859
    Par défaut
    Bonjour,

    pour info, le logiciel ImageJ (qu'a utilisé Nebulix) est codé en Java, et les sources sont disponibles. Il est donc tout a fait possible de l'utiliser dans un projet en Java. Un forum utilisateur anglophone est accessible à cette adresse : http://forum.imagej.net/

    Pour les traitements, la segmentation a l'air correcte, bien qu'effectivement une correction du fond pourrait améliorer les choses. Pour la suite, une possiblité pourrait être de réduire chaque composante connexe à un seul point (-> Connected Component Labeling, puis calcul des centroides).

    A+

Discussions similaires

  1. Outils pour reconnaissance de caractères ?
    Par gmonta dans le forum Autres langages
    Réponses: 3
    Dernier message: 27/05/2007, 18h40
  2. Reconnaissance de caractère
    Par yarol dans le forum Flash
    Réponses: 3
    Dernier message: 18/01/2007, 11h12
  3. Réponses: 5
    Dernier message: 23/10/2005, 18h27
  4. [FLASH MX2004] Problème de reconnaissance des caractères
    Par Spikefreeman dans le forum Flash
    Réponses: 10
    Dernier message: 04/01/2005, 23h08
  5. [Java][char] Reconnaissance de caractères
    Par ZeKiD dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/04/2004, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo