Amphi connecté

De fablab
Aller à : navigation, rechercher
Aperçu du projet "Amphi Connecté"

Le projet Amphi connecté vise à créer un dispositif connecté permettant d'effectuer le montage automatique d'une session d'amphi, pour la diffuser en direct ou la visionner plus tard.

Pour voir l'avancement du projet, consultez la page Avancement du projet amphi connecté.

Informations générales

Présentation

Fonctionnalités

  • Capture d'un flux vidéo global
  • Capture d'un flux vidéo rapproché avec suivi de personne
  • Détection de personnes sur la caméra globale pour choisir une scène à afficher

Démonstration

Démo du projet "Amphi Connecté" avec caméra PTZ Fichier:Demo amphi connecte.mp4

Travail restant

  • Intégrer la sauvegarde de la vidéo montée au projet
  • Ajouter deux autres sources vidéo :
    • Capture de la vidéoprojection
    • Ajout d'une caméra mobile pour suivre une intervention du public
  • Affiner la détection de personnes, notamment s'il y a plusieurs intervenants

Technologies utilisées

Logiciels

  • Qt5 : framework C++ utilisé sur l'ensemble du projet. Son aspect multiplateforme nous permet de coder pour ordinateur comme pour smartphone.
  • GStreamer : compression et transfert de flux vidéo. Aussi multiplateforme.
  • YOLOv3-tiny : réseau neuronal pour la détection d'objets. En comparant avec les autres technologies testées (cascades de Haar, YOLOv3, OpenPose), il est le plus léger.
  • OpenCV : bibliothèque de vision par ordinateur. OpenCV permet d'appliquer YOLOv3-tiny sur les images capturées.

Prérequis matériels

Aperçu du support pour la Caméra maison

Caméra PTZ

Une caméra PTZ (pan tilt zoom) inclut des mécanismes de pilotage activables à distance. Souvent utilisée pour la vidéosurveillance ou la visioconférence, ce type de caméra est parfaitement adapté au suivi de personne. Ce projet utilise le protocole VISCA pour piloter les caméras PTZ.

Les caméras suivantes ont été testées :

Elle doit être couplée à un Raspberry Pi (ou autre ordinateur comportant une liaison série) effectuant l'analyse d'image en temps réel pour piloter la caméra.

Caméra maison

Il est possible de fabriquer une caméra « maison » (à un seul axe de rotation), fonctionnant à l'aide d'un smartphone, pour remplacer une caméra PTZ.

Pour des instructions de fabrication de la caméra maison, consultez la page Amphi connecté : caméra maison.

Architecture du projet

La caméra motorisée envoie son flux vidéo au compositeur par liaison USB, la connexion Wi-Fi n'étant pas suffisamment stable et avec un débit insuffisant.

La composition se fait donc en direct avec la bibliothèque Qt. Pour sauvegarder ou transférer la vidéo, on capture la sortie vidéo de l'application de composition.

Obtenir et compiler les logiciels

Dépendances système

  • qt5-tools
  • qt5-base
  • qt5-multimedia
  • qt5-websocket
  • qt5-declarative
  • qt5-quickcontrols2
  • qt5-connectivity
  • git-lfs
  • opencv
  • gstreamer
  • gst-rtsp-server

Récupération et compilation

Le projet Qt ViscaPersonFollower

git clone https://gitlab.ensimag.fr/projet-fablab-amphi/visca-person-follower.git --recursive
cd visca-person-follower
git lfs install
git lfs pull
mkdir build
cd build/
qmake ..
make

Applications précompilées

Application Android : (bientôt disponible)

Mise en place des logiciels

Les étapes suivantes sont à effectuer dans l'ordre.

  • Compiler le projet ViscaPersonFollower
  • Connecter le téléphone / caméra PTZ au serveur de montage par USB
  • Lancer le logiciel de montage automatique (serveur ViscaPersonFollower)
  • Lancer l'application Android / contrôleur de caméra PTZ (client ViscaPersonFollower)
  • Connecter le client au contrôleur de caméra par Bluetooth (pour la caméra maison) ou liaison série à travers l'interface graphique
  • Connecter le client au serveur de montage à travers l'interface graphique
  • Capturer la sortie vidéo du serveur

Il est peut-être nécessaire de modifier les paramètres présents dans les fichiers QML (chemin vers les sources vidéo, définition vidéo, ...).