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
- Créer un environnement virtuel nommé
oak-tracker(par exemple) pour le projetconda create -n oak-tracker python=3.10
conda activate oak-tracker - Cloner le repository
git clone https://gitlab.intech.dev/intech/stages/2023/suivi-affluence/oak-tracker.git - Installer les packages Python de développement
pip install -r requirements.txt - Créer un fichier
affluence.conf.devà la racine du projet en copiant le fichieraffluence.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.pypermet de simuler un ensemble de caméra qui vont envoyer la position des personnes qu'elles voient à l'API backendtracking_gui.pypermet de tester visuellement le tracking en mode globaltracking_3d.pypermet 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
- 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ésshdans la partitionboot(normalement la seule partition lisible sur Windows) - Créer un fichier
affluence.confdans la partitionboot, copié à partir du fichieraffluence.confsitué à la racine du projet, et le compléter avec les bonnes informations (URL de l'API backend et une clé API valide) - Se connecter en SSH au Raspberry Pi (voir Connexion en SSH si besoin)
- Installer Miniforge
- Créer un environnement virtuel nommé
oak-tracker(par exemple) pour le projetconda create -n oak-tracker python=3.10
conda activate oak-tracker - Cloner le repository
git clone https://gitlab.intech.dev/intech/stages/2023/suivi-affluence/oak-tracker.git - Installer les packages Python pour Raspberry Pi
pip install -r requirements_rpi.txt - Créer un fichier
affluence.confà la racine du projet en copiant le fichieraffluence.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 de192.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.confsur 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é.