Author : [Eliot JACQUEMIN, Salman ALMUTAIRI, Nicolas LE ROUX, Ahmed ALOTAIBI, Victor XU / SOIA-MASSEL2024]
Ce projet, codé dans le cadre du projet système en 2e année à l'ENSTA Bretagne, consiste en la création d'un système de détection, suivi et identification de personnes utilisant comme caméra, le téléphone portable.
Version utilisée : Python 3.7
Environnement utilisé : PyCharm 2022.3.2
numpy 1.21.6
opencv-python 4.6.0.66
face-recognition 1.3.0
face-recognition-models 0.3.0
dlib 19.24.0
imutils 0.5.4
ATRComplete.py
faces_database_auto.py
tracker.py
multi_cam.py
multi_cam_complete.py
faces_database.py
Test_material/Images (un répertoire "Test_material" au niveau des fichiers .py, dans lequel se trouve "Images", dans lequel se trouvent les photos des visages)
Un environnement pour du code Python
Connexion Wi-Fi stable : le(s) téléphone(s) portable(s) et l'ordinateur doivent être connectés au même réseau Wi-Fi
EpocCam Webcam for Mac et PC 2023.1.1 et Camera Hub 1.5.1 (mono-caméra)
DroidCam Webcam & OBS Camera 1.9.3 (multi-caméra)
- Remplir "Images" avec les photos de personnes à identifier, format idéal pour le nom de la photo: Prénom_Nom (convention fixée par le groupe).
- Exécuter faces_database_auto.py (ce qui va charger la base de données avec les données des photos précédentes).
- Lancer EpocCam sur le téléphone portable à utiliser, et Camera Hub sur l'ordinateur central.
- Exécuter ATRComplete.py
Remarques : Si tout fonctionne comme prévu, une fenêtre apparait à l'écran de l'ordinateur avec le flux vidéo du téléphone portable. Pour changer entre la caméra de l'ordinateur principal et celle du téléphone portable, il faut mettre en commentaire (ou dé-commenter pour l'inverse) la ligne 8 ou 10 de ATRComplete.py pour changer l'entrée vidéo.
- idem partie EpocCam
- idem partie EpocCam
- Lancer Droidcam sur le téléphone portable.
- Dans le programme 'multi_cam.py' (resp. 'multi_cam_complete.py'), rajouter la caméra souhaitée (à partir de la ligne 12 (resp. 42)) avec la syntaxe suivante : NomCamera=cv2.VideoCapture('http://IP:PORT/video') en remplaçant IP et PORT par ceux fournis par droidcam et en choissant le nom de caméra que vous souhaitez (attention à ne pas utiliser 2 fois le même nom)
- Dans le programme 'multi_cam.py', rajouter dans la liste captures (ligne 19 (resp. 45)) la variable NomCamera
- Exécuter le programme 'multi_cam.py' (resp. 'multi_cam_complete.py').
NB: Plus le nombre de caméras utilisées est grand, plus le système prend du temps pour répondre et risque de crasher.
NB2: 'multi_cam.py' ne permet que la reconnaissance faciale mais a été testé et fonctionne. 'multi_cam_complete.py' permet toutes les autres fonctionnalités mais n'a jamais réussi à fonctionner plus d'une minute (demande de puissance de calculs trop grande).