Konferenzüberwachungssystem auf Basis von Bilderkennung in Rust
Über Conf-Count
Conf-Count ist ein Konferenzüberwachungssystem in Rust, das AWS-Dienste wie S3 und Rekognition nutzt, um die Ähnlichkeitsbewertung von zwei Bildern zu erhalten, die über die Rust-Anwendung gesendet werden. Das übergeordnete Ziel dieses Projekts ist es, die Konferenzteilnehmer zu überwachen und den Überblick über alle in einer Organisation abgehaltenen Konferenzen zu behalten.
Dieses Projekt basiert auf Bilderkennung, bei der das Bild aller registrierten Benutzer mit dem Bild des aktuellen Benutzers unter Verwendung des AWS Rekognition Service verglichen wird. Wenn ein registrierter Benutzer nicht in der Lage ist, an der Konferenz teilzunehmen, bleibt sein Konferenzstatus abwesend und eine E-Mail wird an diesen Benutzer zusammen mit seinem Status und Gesprächsinhalt gesendet.
Herausforderungen
Die Hauptprobleme, mit denen wir konfrontiert waren, waren folgende:
- Interaktion mit AWS Rekognition unter Verwendung von Rust.
- Asynchrones Auslösen der Raspberry Pi Kamera.
- Handhabung von Multipart in Rust
Lösung
Die Interaktion mit AWS Rekognition war durch die Rust-Programmierung recht schwierig, da sie einen Fehler in Bezug auf die Laufzeit auslöst. Daher stellen wir eine Tokio-Laufzeit zur Verfügung (tokio::runtime::Runtime) und spawnen den Rekognition-Thread in die Methode (futures::sync::oneshot::spawn), um mit der CompareFaces-API des Rekognition-Service zu arbeiten.
Die RPi-Kamera asynchron auszulösen war nicht die richtige Entscheidung, denn asynchron bedeutet, dass das Programm mit dem zuvor aufgenommenen Bild arbeitet, weil es sich um eine asynchrone Aufgabe handelt und ein neues Bild noch in Arbeit ist. Deshalb haben wir uns entschieden, die auslösende Kamera synchron zu machen, damit wir immer das aktuelle Bild erhalten können. Die Handhabung von Multipart war nicht so einfach, wie wir dachten, daher haben wir beschlossen, die (futures::stream) und (actix-web::multipart) zu kombinieren, um die Multipart-Anfrage zu behandeln.
Ergebnisse
Die Vorteile der Arbeit mit Conf-Count sind vielfältig:
- Conf-Count ist ein Open-Source-Projekt. Sie können den Quellcode hier finden.
- Alle Beiträge sind willkommen. Wenn Sie einen Beitrag leisten möchten, erstellen Sie bitte einen GitHub-Problemfall und stellen Sie einen Pull-Request.
Weitere Fallstudien lesen
Vom Überwinden von Widrigkeiten zum Reiten der Welle der digitalen Transformation im Bildungssektor
Erfahren Sie, wie NashTech dem Trinity College London hilft, die Welle der digitalen Transformation im Bildungssektor zu reiten
Migration und Modernisierung der virtuellen Lernumgebung auf AWS für ein verbessertes Erlebnis
Das migrierte und modernisierte Moodle Infrastruktur bedeutet, dass The Open Die Universität kann nun folgende Vorteile nutzen Cloud-Vorteile.
Ein Einblick in eine einjährige RPA-Reise mit einem führenden digitalen Werbedienst
Ein Einblick in eine einjährige RPA-Reise mit einem führenden Anbieter von digitalen Werbedienstleistungen und -lösungen und wie NashTech ihnen geholfen hat.
Lassen Sie uns über Ihr Projekt sprechen
- Themen: