Aller au contenu principal

OAK-Tracker

Bien que le projet soit fait pour fonctionner sur un petit ordinateur (comme un Raspberry Pi) pour transmettre des informations à distance, il est possible de le lancer directement sur un ordinateur pour le développer.

Pré-requis

Quelque soit l'appareil sur lequel vous voulez lancer le projet, il est nécessaire d'installer Conda ou un de ses dérivés pour gérer un environnement virtuel pour Python (par exemple, Miniconda pour avoir une installation minimale). D'autres solutions existent, mais après différents essais, seul Conda permet d'installer correctement la librairie Open3D, utilisée pour travailler avec les nuages de points.

Pour l'installer sur Raspberry Pi, il est nécessaire d'installer Miniforge car les autres versions de Conda ne sont pas supportées

Utilisation sur ordinateur

Installation

  1. Créer un environnement virtuel nommé oak-tracker (par exemple) pour le projet
    conda create -n oak-tracker python=3.10
    conda activate oak-tracker
  2. Cloner le repository
    git clone https://gitlab.intech.dev/intech/stages/2023/suivi-affluence/oak-tracker.git
  3. Installer les packages Python de développement
    pip install -r requirements.txt
  4. Créer un fichier affluence.conf.dev à la racine du projet en copiant le fichier affluence.conf, et le compléter avec les bonnes informations (URL de l'API backend et une clé API valide)

Utilisation

Pour tester le projet, branchez une caméra OAK en USB à l'ordinateur (demander à I&D pour la caméra), puis lancez le script affluence.py :

python affluence.py

Il est aussi possible de lancer d'autres scripts, utilisés pour le débugage :

  • simulation.py permet de simuler un ensemble de caméra qui vont envoyer la position des personnes qu'elles voient à l'API backend
  • tracking_gui.py permet de tester visuellement le tracking en mode global
  • tracking_3d.py permet de tester visuellement le tracking en mode local, avec calcul de la position de la caméra dans un nuage de points

Utilisation sur Raspberry Pi

Installation

  1. Flasher sur une carte MicroSD une version de Raspberry Pi OS compatible avec le Raspberry Pi sur lequel vous souhaitez lancer le projet (guide ici).
    Pensez à activer le SSH dans les options de Raspberry Pi Imager. Si vous ne l'avez pas fait, vous pouvez aussi créer un fichier vide nommé ssh dans la partition boot (normalement la seule partition lisible sur Windows)
  2. Créer un fichier affluence.conf dans la partition boot, copié à partir du fichier affluence.conf situé à la racine du projet, et le compléter avec les bonnes informations (URL de l'API backend et une clé API valide)
  3. Se connecter en SSH au Raspberry Pi (voir Connexion en SSH si besoin)
  4. Installer Miniforge
  5. Créer un environnement virtuel nommé oak-tracker (par exemple) pour le projet
    conda create -n oak-tracker python=3.10
    conda activate oak-tracker
  6. Cloner le repository
    git clone https://gitlab.intech.dev/intech/stages/2023/suivi-affluence/oak-tracker.git
  7. Installer les packages Python pour Raspberry Pi
    pip install -r requirements_rpi.txt
  8. Créer un fichier affluence.conf à la racine du projet en copiant le fichier affluence.conf, et le compléter avec les bonnes informations (URL de l'API backend et une clé API valide)

Pour simplifier toute l'installation, il est prévu que des images modifiées de Raspberry Pi OS soient créées afin d'être installées directement sur une carte microSD, ne nécessitant que de modifier le fichier affluence.conf sur la partition de boot.

Utilisation

Pour tester le projet, branchez une caméra OAK en USB au Raspberry Pi (demander à I&D pour la caméra), puis lancez le script affluence.py :

python affluence.py

Connexion en SSH

Le principal moyen d'administrer un Raspberry Pi sans écran est de s'y connecter en SSH. Cependant, si l'on ne connaît pas son adresse IP, il peut être difficile d'y accéder. Deux méthodes permettent d'y accéder plus simplement :

  • Connecter en ethernet un ordinateur au Raspberry Pi, et partager la connexion de l'ordinateur avec le Raspberry Pi. Une fois le partage effectué, le Raspberry Pi doit obtenir automatiquement une adresse IP sur un réseau que créée l'ordinateur. Il est alors plus simple de tester les différentes adresses. Par exemple, sur Windows, le réseau créée sera en 192.168.137.XXX, et le serveur DHCP attribue les adresses à partir de 192.168.137.2, ce qui sera l'adresse du Raspberry Pi.

  • Créer un point d'accès WiFi, par exemple avec un téléphone, et créer un fichier wpa_supplicant.conf sur la partition de boot avec le contenu suivant (en remplaçant les bons paramètres) :

    country=lu
    update_config=1
    ctrl_interface=/var/run/wpa_supplicant

    network={
    scan_ssid=1
    ssid="NomDuRéseau"
    psk="MotDePasse"
    }

    Un guide expliquant en détail la manipulation est disponible ici. Au démarrage, le Raspberry Pi devrait se connecter au réseau. De même que via ethernet, on peut alors plus facilement déterminer son adresse IP. De plus, si on a accès à l'interface d'administration du réseau (comme sur Android), on peut avoir directement l'adresse IP en consultant la liste des appareils connectés.
    Cette méthode ne fonctionne pas sur tous les ordinateurs, car durant les tests, les Raspberry Pi ne pouvaient pas se connecter au réseau créé depuis nos ordinateur Windows. Cela dépend probablement de la carte WiFi utilisée, peut-être aussi de l'OS utilisé.