programme de reconnaissance d'objets qui ne démarre mal

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Jano31
Messages : 10
Enregistré le : sam. 26 juin 2021 13:29

programme de reconnaissance d'objets qui ne démarre mal

Message par Jano31 » lun. 28 juin 2021 22:57

bonjour ,


j'essaye de faire tourner le programme de reconnaissance d'objets proposé sur le site de la framboise314 sur ma carte 3B+ et je bute sur des problèmes de base dès la ligne 5 du programme.

(j'ai des connaissances en informatique embarquée qui datent de 20 ans et je suis débutant en linux python et en raspberry)

j'ai installé python 3.7.3, OpenCV,imutils avec pip3 défini un environnement virtuel et recopié le code de reconnaissance d'objets dans un fichier .py. j'ai rajouté le dossier ou se trouve mon fichier python dans le PATH.

j'ai le message suivant: from imutils.video import VodeoStream ModuleNotFoundError: No module named 'imutils'. pourtant j'ai refait un pip3 install imutils pour être sur , mais le problème persiste.


help ! quelqu'un a une idée ?

merci d'avance

piper
Raspinaute
Messages : 656
Enregistré le : sam. 5 juin 2021 18:57

Re: programme de reconnaissance d'objets qui ne démarre mal

Message par piper » mar. 29 juin 2021 00:18

Bonsoir.
Quand on a un message de ce genre (module python non trouvé) :
1) vérifier son orthographe : bon ok, le module dit manquant est lmutils mais tu as écrit :
from imutils.video import VodeoStream
C'est
from imutils.video import VideoStream
2) ensuite je n'ai pas écrit le programme en question et à vrai dire je ne le connais pas.
Mais la 1ère ligne du code ne précise pas quelle version de python doit-être utilisée.
Donc je suppose que tu le lances par

Code : Tout sélectionner

python3  reconnaissance_objets.py

??????
Car si tu fais à la place :

Code : Tout sélectionner

python  reconnaissance_objets.py

Alors ce sera la version par défaut de python sur ton système qui sera lancée et pas forcément python3
Pour savoir quelle version de python est lancée par défaut :

Code : Tout sélectionner

python --version
pip3 installe les module pour python3
pip les installe pour python2

(Oui, je sais, c'est nul ces incompatibilités de versions de python c'est son gros défaut, le mieux pour un débutant est de toujours utiliser python3 au début)

Maintenant, si tu as bien fait python3 reconnaissance_objets.py et sudo pip3 install lmutils (sans qu'une erreur ne ce soit produite)
alors là, je sèche, il faudrait voir ton code, et ta ligne de commande, et une copie exacte de l'erreur à l'écran.
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Jano31
Messages : 10
Enregistré le : sam. 26 juin 2021 13:29

Re: programme de reconnaissance d'objets qui ne démarre mal

Message par Jano31 » mar. 29 juin 2021 13:29

merci piper pour ta réponse rapide,

je ferai des copies de programme en rentrant a la maison en fin de journée. le "vodeo" c'est une faute de frappe, car j'ai recopié a la mano le message.

par contre je suis sur d'avoir utilisé python3 pour lancer et pip3 pour l'install de imutils. et c'est bien python 3.7.3 qui tourne, je l'avais verifié avec la commande "--version"

je suis moins sur de mon coup concernant le PATH, les repertoires ou sont installés python, les librairies, je ne sais pas trop ou tout ca a été mis lors de l'install. du coup je me demande si python trouve bien les modules/librairies, sans savoir comment vérifier.

j'ai aussi installé un environnement virtuel, car j'avais lu que c'était plus sur, et j'utilise workon au demarrage. mais je peux pas dire que j'ai compris à 100% les implications....


que de mystères.............

merci,

Jano31
*

piper
Raspinaute
Messages : 656
Enregistré le : sam. 5 juin 2021 18:57

Re: programme de reconnaissance d'objets qui ne démarre mal

Message par piper » mar. 29 juin 2021 20:45

Dans une installation normale de python, on n'a pas a se soucier du path sous linux.
Mais dans un environnement virtualisé.....
Perso je fais confiance à mes.propres codes sources (un peu normal non ?) Donc utiliser une sandbox pour ça, je n'y voit pas l'intérêt. Sauf à s'imposer des environnements differents pour preparer un "kit d'installation" des développements qui seraient destinés à une redistribution soit sous la forme d'une vente, soit sous la forme d'un freeware.

Envoyé de mon SM-J710F en utilisant Tapatalk

3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Jano31
Messages : 10
Enregistré le : sam. 26 juin 2021 13:29

Re: programme de reconnaissance d'objets qui ne démarre mal

Message par Jano31 » mar. 29 juin 2021 23:18

merci piper pour ta réponse,


j'ai copié ci dessous le code et les différents messages d'erreur selon le contexte: (j'ai mis aussi le comportement en activant l'environnement virtuel, au cas ou ca peut aider...)

(le code vient de l'article de Framboise314 sir la reconnaissance d'objets:

# Ouvrir un terminal et executer la commande ci dessous
# python3 reconnaissance_objets.py --prototxt MobileNetSSD_deploy.prototxt.txt --model MobileNetSSD_deploy.caffemodel
#import imutils
# importer tout les packages requis
from imutils.video import VideoStream #----------plantage 1
from imutils.video import FPS
import numpy as np
import argparse
import time
import cv2
# packages nécessaires pour la gestion des emails
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
import ntpath
import pyautogui



# construction des arguments
ap = argparse.ArgumentParser()
ap.add_argument("-p", "--prototxt", required=True, #-----------plantage 2
help="path to Caffe 'deploy' prototxt file")
ap.add_argument("-m", "--model", required=True,
help="path to Caffe pre-trained model")
ap.add_argument("-c", "--confidence", type=float, default=0.2,
help="minimum probability to filter weak detections")
args = vars(ap.parse_args())
...........
...........
........

quand je lance le programme depuis Thonny, ca plante à "#-----------plantage 2" avec le commentaire suivant: (mais c'est pareil si je lance le programme du shell linux avec l'instruction python3 reconnaissanceobj.py)

Python 3.7.3 (/usr/bin/python3)
>>> %Run reconnaissanceobj.py
usage: reconnaissanceobj.py [-h] -p PROTOTXT -m MODEL [-c CONFIDENCE]
reconnaissanceobj.py: error: the following arguments are required: -p/--prototxt, -m/--model


si j'active mon environnement virtuel avec "workon janocv", ca plante toujours mais ailleurs (voir #----------plantage 1) avec ce message:

pi@janopi:~/Documents/pythonjano/reconnaissance_objets $ workon janocv
(janocv) pi@janopi:~/Documents/pythonjano/reconnaissance_objets $ python3 reconnaissanceobj.py
Traceback (most recent call last):
File "reconnaissanceobj.py", line 5, in <module>
from imutils.video import VideoStream
ModuleNotFoundError: No module named 'imutils'


bizarre.....

si ca vous inspire, tout commentaire est le bienvenu, merci!


bonsoir,


jano31

piper
Raspinaute
Messages : 656
Enregistré le : sam. 5 juin 2021 18:57

Re: programme de reconnaissance d'objets qui ne démarre mal

Message par piper » mer. 30 juin 2021 09:46

Boujour,
Sous Thonny, le programme ne plante pas !
Il te répond qu'il faut des arguments au lancement.

Et avec workon, attention, il risque de changer ton chemin de recherche système (donc ne pas trouver les bibliothèques que tu as installé sur python). Je ne connais pas workon, je ne pourrais pas t'aider là dessus.

Pour savoir si imutils est bien installé fait ceci :

Code : Tout sélectionner

 sudo pip3 freeze | grep -i imutils
Car pip3 freeze donne la liste de toutes les bibliothèques installées sous python3
| grep est un filtre qui ne sort que les lignes contenant l'argument qui suit (imutils)
-i dit à grep de ne pas faire de différences entre minuscules et majuscules.

Si imutils s'affiche c'est qu'il est installé, sinon c'est qu'il ne l'est pas

S'il ne l'est pas, tentent ceci , pour voir si le module n'est pas installé sur python2 (car sur un de mes pizero, avec une installation très très récente, par défaut, c'est python2.7 qui est choisis)

Code : Tout sélectionner

 sudo pip freeze | grep -i imutils
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Jano31
Messages : 10
Enregistré le : sam. 26 juin 2021 13:29

Re: programme de reconnaissance d'objets qui ne démarre mal

Message par Jano31 » mer. 30 juin 2021 23:46

merci piper,

a priori ca doit être installé, raspberry me répond "imutils==0.5.4"


je vais creuser cette histoire d'arguments, car j'ai copié le code proposé sur l'article framboise314 sans rien modifier, et il n'était pas précisé qu'il fallait passer des arguments....du coup j'avais cru que le code fonctionnait tel quel.


je vais chercher, si je ne trouve rien, je reviendrai sur ce post.


merci en tous cas,

jano31

piper
Raspinaute
Messages : 656
Enregistré le : sam. 5 juin 2021 18:57

Re: programme de reconnaissance d'objets qui ne démarre mal

Message par piper » jeu. 1 juil. 2021 07:55

Pas precisé ?
C'est précisé
Et c'est dans le code aussi
"the following arguments are required: -p/--prototxt, -m/--model"

Envoyé de mon SM-J710F en utilisant Tapatalk

3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Jano31
Messages : 10
Enregistré le : sam. 26 juin 2021 13:29

Re: programme de reconnaissance d'objets qui ne démarre mal

Message par Jano31 » dim. 4 juil. 2021 23:51

merci Piper,



maintenant ca va un peu plus loin, mais ca plante sur cette instruction:

net = cv2.dnn.readNetFromCaffe(args["prototxt"], args["model"]) avec le code suivant: AttributeError: module 'cv2' has no attribute 'dnn'

Mais je vais chercher sur internet, j'ai vu qu'il y avait à lire sur ce thème. je reviendrai si je sèche....


bonne soiree

Jano31

piper
Raspinaute
Messages : 656
Enregistré le : sam. 5 juin 2021 18:57

Re: programme de reconnaissance d'objets qui ne démarre mal

Message par piper » lun. 5 juil. 2021 00:11

Bonsoir,
Tu ne dis pas cequi clochait au debut.
Sinon
Tu as bien installé ceci ?
pip3 install opencv-python


Envoyé de mon SM-J710F en utilisant Tapatalk

3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Répondre

Retourner vers « Python »