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

Raspberry Pi Discussion :

Reconnaissance avec caméra Raspberry


Sujet :

Raspberry Pi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Avril 2019
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Avril 2019
    Messages : 1
    Par défaut Reconnaissance avec caméra Raspberry
    Bonjour à tous,
    j'aurais besoin d'aide pour réaliser une reconnaissance de formes grâce à la caméra du Raspberry Pi. Je m'explique, j'utilise la caméra basique du Raspberry, et il faudrais qu'elle prenne une photo, puis l'analyse pour en déduire les formes présentes. Pour ce faire, j'ai trouvé quelques programmes utiles sur internet et ai cru comprendre qu'il était judicieux d'utilisé cv2. Sur la base de ce que j'ai déniché j'ai obtenu le code suivant :
    Code Python : 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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    # Imports
    import picamera
    import time
    import os
    import numpy as np
    import cv2
     
    # Supression de l'image précédente dans le fichier
    file = os.listdir('/home/pi/Camera/PhotoReconnaissance')
    os.remove('/home/pi/Camera/PhotoReconnaissance'+'/'+file[0])
    camera = picamera.PiCamera()
    #camera.resolution = (720,1080)
     
    camera.start_preview(fullscreen = False, window=(50,50,640,480))
    time.sleep(5)
    # Photo prise
    camera.capture('/home/pi/Camera/PhotoReconnaissance/image.bmp')
    camera.stop_preview()
    # Récpération de l'image prise
    image = cv2.imread('/home/pi/Camera/PhotoReconnaissance/image.bmp',0)
    gray = image
    ret,thresh = cv2.threshold(gray,250,255,cv2.THRESH_BINARY_INV)
    img,contours,h =cv2.findContours(thresh,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
    for cnt in contours:
        perimetre=cv2.arcLength(cnt,True)
        approx = cv2.approxPolyDP(cnt,0.01*perimetre,True)
     
        M = cv2.moments(cnt)
        cX = int(M["m10"] / M["m00"])
        cY = int(M["m01"] / M["m00"])
        cv2.drawContours(image,[cnt],-1,(0,255,0),2)
        if len(approx)==3:
            shape = "triangle"
        elif len(approx)==4:
            (x, y, w, h) = cv2.boundingRect(approx)
            ratio = w / float(h)
            if ratio >= 0.70 and ratio <= 1.30:
                shape = "carre"
            else:
                shape = "rectangle"
        elif len(approx)==5:
            shape = "pentagone"
        elif len(approx)==6:
            shape = "hexagone"
        else:
            shape= "circle"
        cv2.putText(image, shape, (cX, cY), cv2.FONT_HERSHEY_SIMPLEX,0.5, (255, 255, 255), 2)
    image_data = np.asarray(image)
    cv2.imshow('image',image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    J'ai déjà un code qui fonctionne très bien avec des images prises sur internet avec des contours nets. Le problème est l'intégration de la caméra. L'exécution de ce code renvoi toujours "rectangle", peu importe la forme. Je précise que l'image doit avoir un fond blanc pour fonctionner. Je ne sais pas exactement comment fonctionne cv2. Si vous avez des solutions, je suis preneur ! Sinon, existerait-il des alternatives équivalentes avec une simple reconnaissance de couleurs ?
    Mon projet consiste à pouvoir reconnaître des formes simples. Ainsi, un cube vu de face sera vu comme un carré et identifié comme il le faut. Mais les couleurs peuvent très bien faire l'affaire avec des formes qui auraient leur couleur propre.
    Merci de votre aide !

  2. #2
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Par défaut
    Citation Envoyé par Mat0s Voir le message
    Bonjour à tous,
    j'aurais besoin d'aide pour réaliser une reconnaissance de formes grâce à la caméra du Raspberry Pi. Je m'explique, j'utilise la caméra basique du Raspberry, et il faudrais qu'elle prenne une photo, puis l'analyse pour en déduire les formes présentes. Pour ce faire, j'ai trouvé quelques programmes utiles sur internet et ai cru comprendre qu'il était judicieux d'utilisé cv2.
    Salut Mat0s,
    J'ai écrit un bouquin chez Eyrolles sorti en janvier sur le Raspberry Pi et Java.
    J'ai vérifié tous mes composants (leds, capteurs, relais, etc) avec Python, mais pas la caméra, où j'ai utilisé raspistill, exécuté depuis Java avec ProcessBuider, qui produit le résultat, c'est à dire la photo, dans un fichier..
    Le chapitre 21 est consacré à la caméra où je n'ai pas utilisé Python.
    Ce que tu fais m'intéresse ... mais j'aimerais le faire en Java.

    A ta place, je prendrais simplement la commande raspistill (hors Python), c'est à dire https://www.raspberrypi.org/app/uplo...umentation.pdf, et essayerais de trouver des paramètres produisant un résultat utilisable pour tes besoins.
    Il y a plein de paramètres qui pourrait aider pour ton cas. A essayer .... voire avec raspistillyuv.
    Pour mon bouquin, j'avais juste eu besoin de choisir des dimensions raisonnables de photos, pour pouvoir ensuite, par exemple, envoyer un courriel de l'intrus passé devant un PIR .... sans indiquer sa forme!

Discussions similaires

  1. Jeu 2D vue de dessus avec caméra
    Par Aureroy dans le forum Agents de placement/Fenêtres
    Réponses: 13
    Dernier message: 20/10/2013, 15h18
  2. [3DS] probleme hair and fur avec caméra
    Par milach dans le forum Moteurs 3D
    Réponses: 0
    Dernier message: 06/08/2009, 18h59
  3. Problème requête HTTP avec caméra IP
    Par Sleeping Lionheart dans le forum Bibliothèques
    Réponses: 7
    Dernier message: 28/02/2009, 21h25

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