nw  

Kamera-basierter Sensor für Raumbelegung

Zusammenfassung

Um die Auslastung von Büroräumen und freien Zonen besser zu messen und zu optimieren, sollen die Personen im Raum gezählt werden. Für die Zählung werden Raspberry Pi Microcontroller als Kameras eingesetzt und mittels Objekterkennung die Personen auf Bildern ermittelt. In diesem Projekt sollen zwei Architekturvarianten als Prototypen umgesetzt und miteinander verglichen werden. Dafür soll herausgefunden werden, welche Kombination von Hardware und Software (Algorithmen zur Objekterkennung) am besten geeignet ist.

Schlüsselbegriffe

Raspberry Pi, Python 3, Tensorflow, Tensorflow-lite, OpenCV, YOLOv3, Flask, Javascript, Node, LoRaWAN

Zielsetzung

Folgendes waren zusammengefasst die Ziele des Projekts

Ausgangslage

Die Auslastung von Büroräumen kann bisher gemessen werden mit Sensoren, die angeben, ob ein Raum belegt ist oder nicht. Erwünscht sind allerdings genauere Informationen zur Raumbelegung um die Gebäudeinfrastruktur besser optimieren zu können. Benötigt wird deshalb die Anzahl der Personen die sich zu einem Zeitpunkt in einem Raum, einer freien Zone oder auch im Gebäude befinden. Die bisher verwendeten Sensoren können diese Information nicht sammeln und es wird eine kamerabasierte Lösung benötigt. Allerdings erfordert solch eine Kameralösung hohe Sicherheit, um die Privatsphäre der sich darauf befindenden Personen zu schützen.

Ergebnisse

Im Projekt wurden zwei Architekturvarianten entwickelt und auch miteinander verglichen. Zusätzlich wurde auch eine Konfigurationsoberfläche entwickelt, welche es unter anderem auch ermöglicht den Aufnahmebereich der Kamera einzuschränken, um gewünschte Bereiche auszublenden. In der ersten Varianten(Send Only) werden von den Raspberry Pi Kameras aufgenommene Bilder per Wifi an einen Gateway Server gesendet. Dort werden sie ausgewertet und die Anzahl der Personen auf dem Bild wird an einen Backend Server weitergeleitet.



In der zweiten Variante (Complete Object Detection) wurde versucht, die Objekterkennung direkt auf einem Raspberry Pi auszuführen und nur die Anzahl der Personen per LoRaWAN an ein Backend zu senden. Somit verlassen keine Bilder die Kamera, was dem "Privacy-by-Design" Ansatz folgt.



Die Objekterkennung für das bestimmen der Personenanzahlen wurde mit verschiedenen Algorithmen und Geräte umgesetzt. Als Framework wurden dafür OpenCV und Tensorflow eingesetzt, welche für die Objekterkennung jeweils ein neuronales Netzwerk verwenden. In diesem Projekt wurden allerdings bereits trainierte Modelle für das neuronale Netzwerk verwendet. Anhand von Testversuchen konnte gezeigt werden, dass das yolov3 Modell die beste Erkennungspräzision liefert und zusammen mit OpenCV am performantesten ausgeführt werden kann. Diese Kombination kann auf dem Gateway genügend gut ausgeführt werden und funktioniert dementsprechend sehr gut für die Send Only Variante. Für die Complete Object Detection Variante funktioniert die Kombination ebenfalls, allerdings nur wenn dafür ein Microcontroller verwendet wird, welcher eine genügend grosse Leistung bietet, wie zum Beispiel der Raspberry Pi 4B.

Im untenstehenden Diagramm sind die Resultate des Testversuchs visualisiert. Gezeigt wird dabei, wie gut mit dem entsprechenden Modell die Personenanzahl erkannt wird. Mit dem yolov3 Modell werden ca. 80% - 90% der Personen auf einem Bild richtig klassifiziert.

Projektdaten
Projektdauer 11.02.2019 - 16.08.2019
Personenstunden 2x 360h
Teamgrösse 2 Personen
Auftraggeber

Schweizerische Bundesbahnen SBB CFF FFS

Web Site SBB

Kontaktperson:

Jens Küng

Portfolio Manager

jens.kueng@sbb.ch
Projektteam

Ronny Häfeli

Student Informatik

6. Semester

ronny.haefeli@students.fhnw.ch

Cagatay Özyurt

Student Informatik

6. Semester

cagatay.oezyurt@students.fhnw.ch
Kontakt

Prof. Thomas Amberg

Dozent für Internet of Things am Institut für Mobile und Verteilte Systeme

thomas.amberg@fhnw.ch
<< zurück