Von CI/CD Pipelines zu DevOps

Dr. Hongguang Yang, Lead Consultant beim Beratungshaus msg Systems AG, erläutert in einem Vortrag am 9.11.2022, 11:30 Uhr, im Raum BB.111, wie mithilfe von Containern und der Cloud die Entwicklung und der Betrieb von Software unterstützt werden kann.

Der Vortrag findet im Rahmen der Vorlesung „Software Engineering“ statt, ist aber hochschulöffentlich, d.h. Besucher sind willkommen.

Deepfakes

Im Rahmen einer Projektarbeit wurden die Tools und die Technologie rund um Deepfake-Videos, also dem Ersetzen einer Person durch eine Andere innerhalb einer Filmaufnahme bzw. eines Live-Videos, analysiert und angewendet.

Werbevideo für das Deepfake-Modell Heinz 2.0

Motivation

Ein Rapbattle zwischen Donald Trump und Joe Biden, widersprüchliche Weihnachtsgrüße der Queen oder Donald Trump, der Belgien rät aus dem Pariser Klimaabkommen auszutreten – alles Situationen, die für uns nur schwer vorstellbar sind. Warum sollten berühmte Persönlichkeiten, wie Politiker oder Hollywood-Stars, solche Aussagen überhaupt treffen und das mögliche Ende ihre Karriere heraufbeschwören? Die Antwort darauf lässt sich ganz einfach sagen: gar nicht. Es handelt sich um gefälschte Medieninhalte, sogenannte DeepFakes. In einer Welt voller Fake News ist es für viele Menschen allerdings zum Alltag geworden, kritische Nachrichten anzuzweifeln und diese zu hinterfragen. Aber was macht es mit uns, auf einmal eine Person in unserem direkten Umfeld in solch einer Situation zu finden? Auf genau diesen Effekt zielen wir mit unserem Projekt ab. Mit Heinz 2.0 kann jede beliebige Person, mit Hilfe von Deepfakes, zu dem in den Ruhestand eingetretenen Professor Heinz Brünig werden.

Bildschirm mit Webcam, Website Heinz 2.0 ist sichtbar, daneben eine große Lampe
Aufbau während der Projektpräsentation

DeepFaceLive

DeepFaceLive ist eine Erweiterung von DeepFaceLab. Die Arbeit mit Deepfacelab war unser Hauptfokus aus der ersten Projekthälfte, denn diese Software macht die Erstellung von hochwertigen Deepfake-Videos möglich.  DFLive hingegen ermöglicht einen Gesichter Tausch (auch FaceSwap genannt), welcher Live vor einer Webcam stattfindet, also in Echtzeit. Normalerweise werden Deepfake-Videos mit dem Ziel trainiert ein bestimmtes Gesicht mit einem weiteren bestimmten Gesicht zu tauschen. Die daraus entstehenden Deepfake-Modelle sind aufeinander abgestimmt und eine Wiederverwendung für andere Gesichter ist nicht möglich. Dieser Vorgang muss dann auch noch für jedes weitere Deepfake Video oder Modell wiederholt werden. Wie können wir also dieses Konzept abändern, um Modelle zu erstellen welche für mehrere Gesichter anwendbar sind? Wie kann man also die trainierten Modelle für den Live-Betrieb und für weitere Deepfake-Videos wieder verwenden?

Der große Unterschied bei DeepFaceLive besteht darin, dass sogenannte RTM Modelle (Ready-To-Merge Modelle) zum Einsatz kommen. Im Zuge der Projektarbeit Heinz 2.0 wurde auf die Erstellung eines solchen Modells eingegangen um den in Ruhestand gehenden Professor Heinz Brünig für das Hochschulleben zu erhalten.

Mehrere Gesichter denen mithilfe eines Deepfakes die Gesichtszüge gegen die von Heinz Brünig ausgetauscht wurden.
Mehrere Beispiele von Heinz 2.0 als Deepfake

Website

https://heinz-2-0.de/

Die verbreitetste Nutzung von Deepfakes ist es allerdings nicht, Professoren aus der Rente zu ziehen oder falsche Nachrichten im Internet zu verbreiten. Deepfakes finden ihre Hauptverwendung heute beim Austausch von Akteuren in Pornos. Dementsprechend waren auf der Website, von der wir unsere Informationen gezogen haben, neben detailreichen Tutorials und Guides zur Deepfake Erstellung auch pornografische Inhalte. Um dem allerdings ein Ende zu setzen und dem schädlichen Image von Deepfakes entgegenzutreten, entschieden wir uns, eine jugendfreie Website zum Thema Deepfakes zu erstellen: Die Internetseite Heinz 2.0, auf der Tutorials, Tipps und Hintergründe zu unserem Projekt zu finden sind.

Der Kommissar im Internet

Wie sieht Polizeiarbeit im Umfeld der IT-Sicherheit aus? Welche Herausforderungen ergeben sich für einen Kommissar durch die fortschreitende Digitalisierung aller Lebensbereiche?

Antworten auf diese Fragen verspricht der Vortrag von Kommissar Oliver Weidel, der als studierter Wirtschaftsinformatiker bei der bayerischen Polizei mit dem Schwerpunkt IT-Kriminalität tätig ist.

Datum: 17. Dezember 2020
Zeit: 14:00 Uhr
Ort: Zoom

ICPRAM 2020

Das Ergebnis der Bachelorarbeit von Herrn Tobias Hassel (Studiengang Media Engineering) konnte auf der ICPRAM 2020 (International Conference on Pattern Recognition Applications and Methods) vorgestellt werden.

Worum geht es?

Möchte man Roboter mit künstlicher Intelligenz steuern, ist i.d.R. ein aufwändiges Anlernen erforderlich. Stehen keine Trainingsdaten zur Verfügung, bleibt nur ein „Trial and Error“-Ansatz, der sich aber bei Robotern verbietet, da Fehler u.U. mit hohen Kosten und Beschädigungen verbunden wären.

In der Arbeit von Herrn Hassel wurde daher ein „Digital Twin“ in der Simulationsumgebung Unity geschaffen, mit dem das Anlernen ohne Gefahren für die Umgebung in einer virtuellen Welt ausgeführt werden kann. Anschließend wurde das trainierte Model erfolgreich genutzt, um den „echten“ Roboter zu steuern.

Cozmo

Digital Twin

In der Arbeit wird der Spielzeugroboter Cozmo verwendet, der über eine Programmierschnittstelle verfügt. Der „Digital Twin“ bildet die Geometrie, die Sensoren (insbesondere die Kamera) und die Eigenschaften des Antriebs genau nach. Dazu wurden umfangreiche Messungen und Anpassungen durchgeführt.

Als Aufgabe wurde das Verfolgen einer gezeichneten Spur ausgewählt. Der Roboter ermittelt dazu die im Kamerabild enthaltenen Kanten und berechnet ein „Center of Gravity“ (COG) der Pixel. Das Modell versucht, dieses COG in der Mitte des Bildes zu halten. Dazu „lernt“ ein neuronales Netz, wir Steuerbewegungen die Position des COG verändern.

Sicher im Internet

Am 20.2.2020 konnten sich sieben Schülerinnen des Christoph-Jacob-Treu-Gymnasiums in Lauf im Rahmen der OHM-Tage einen Einblick in die Gefahren des Internets gewinnen. Der Fokus lag dabei ganz bewusst nicht auf dem häufig thematisierten Cyber-Mobbing, sondern auf den technischen Möglichkeiten des Zugriffs auf private Daten.

Nachdem zunächst gemeinsam erarbeitet wurde, wer Interesse an persönlichen Daten haben könnte (das Spektrum reichte von der Polizei bis Donald Trump) und welche Daten besonders schützenswert sind (immerhin waren wir im Labor für medizinische Informationstechnik), haben wir uns anschließend angesehen, wie diese Daten abgegriffen werden können. Dazu haben sich die Schülerinnen in bereitgestellte freie WLANs einbuchen und an einem (fiktiven) Webshop anmelden können.

Die Überraschung war groß, als die bei der Registrierung verwendeten Passwörter im Protokoll der WLAN-Hotspots ausgelesen werden konnten und damit deutlich wurde, welche Möglichkeiten ein Anbieter eines freien WLANs besitzt. Der Nutzen einer Ende-zu-Ende-Verschlüsselung wurde auf diese Weise allen Teilnehmerinnen sehr bewusst.

Hacken nicht leicht gemacht: Cyber-Security

Welchen Angriffen aus dem Internet sind heute Unternehmen ausgesetzt? Wie werden diese ausgeführt? Wie häufig passiert so etwas? Und wie reagiert man darauf?

Antworten auf diese Fragen verspricht der Vortrag von Dr. Thomas Riechmann, der bei Atos als „Head of Managed Security Services“ weltweit Unternehmen hilft, die Cyber-Abwehr auf Vordermann zu bringen.

Datum: 7. Januar 2020
Zeit: 11:30 Uhr
Ort: KA.204

Projektarbeit „Smart Home“

Eine modulierbare Smart Home-Umgebung zur Erkennung von Personen in Räumen der Hochschule

In dieser Projektarbeit des Studiengangs Medizintechnik wurde eine Smart Home-Umgebung entwickelt, um die Auslastung von Laboren der Hochschule überwachen zu können. Die Umgebung wurde mit Hilfe von eigens entwickelten Sensoren und außerdem kommerziell erhältlichen Sensoren überwacht und in einem Webinterface daraufhin analysiert, ausgewertet und dargestellt.

Aufbau der Smart Home-Umgebung

Ein Raspberry Pi dient als Basis der Smart Home-Umgebung. Auf diesem Linux basierten Computer wurde die Umgebung über einzeln installierbare Software-Pakete realisiert und in drei verschiedene Teile gegliedert:

  1. Node-RED übernimmt die Logik und das darstellen der Benutzeroberfläche
  2. Mosquitto (MQTT) dient dem Transport der erfassten Daten
  3. Homegear und piVCCU stellen die Schnittstelle für die kommerziellen Sensoren dar.

Node-RED

Node-RED ist ein auf der Plattform node.js basierendes und in JavaScript geschriebenes grafisches Entwicklungswerkzeug. Die Entwicklung von Funktionsabläufen, wie beispielsweise die Steuerung von einer HomeMatic Steckdose, findet im Browser statt. Dazu ist zudem keine zusätzliche Software notwendig. Das Node-RED Dashboard ist eine Erweiterungsmöglichkeit für Node-RED und ermöglicht unter anderem die Konfiguration einer grafischen Benutzeroberfläche (siehe Abb. 1). Der User kann aus diesem Grund die Sensordaten visualisieren und daraufhin die Sensoren steuern. Das Tool Node-RED stellt ein bereits integriertes Package-System zur Verfügung. Der Entwickler kann dadurch Erweiterungen einfach nachinstallieren. Weiterhin ist die einfache Handhabung via Drag & Drop, die zahlreichen Erweiterungsmöglichkeiten und außerdem die kurze Einarbeitungszeit ein Pluspunkt für die Nutzung von Node-RED in der Projektarbeit gewesen.

https://nodered.org/

Abb. 1: Visualisierung der Sensordaten in einem Node-RED Dashboard

Die Erstellung von Funktionsabläufen geschieht in sogenannten Arbeitsblättern/Flows. Durch Drag & Drop von einzelnen Bausteinen, sind deshalb einfache Abläufe schnell erstellt. Somit lässt sich der Tür-Sensor von HomeMatic mit lediglich vier Nodes umsetzen (Abb. 3).

Abb. 2: Arbeitsblatt zu dem HomeMatic Door Sensor

Sensoren

Für das Projekt wurden einerseits HomeMatic Produkte und andererseits Eigenbau Sensoren verwendet. Ein HomeMatic-IP Präsenzmelder ist für die Anwesenheit von Personen durch die Erfassung feinster Bewegungen im Einsatz und ein HomeMatic Türsensor stellt fest, ob beispielsweise eine Tür geöffnet oder geschlossen wurde.

Im weiteren Hinblick auf die Präsenzdetektion und Bewertung der exakten Personenanzahl im Raum wurden kostengünstige PIR-Sensoren ausgewählt, da diese einen hohen Stellenwert als Bewegungsmelder haben. Ein ESP8266 Microcontroller wurde als Schnittstelle und erste Logikeinheit zwischen dem besagten PIR-Sensor und Node-RED eingesetzt, da so eine Datenübertragung zwischen den einzelnen Protokollen möglich ist. Die Auswertung dieser aufgenommenen Daten findet im Node-RED Dashboard statt.

Abb. 3: Bewegungsmelder – PIR-Sensor

Analog zum PIR-Sensor wurde auch ein Ultraschallsensor umgesetzt. Zwei HC-SR04 Sensoren errechnen 10 mal in der Sekunde die aktuelle Entfernung zur nächsten Oberfläche aus der Echozeit. Passiert nun eine Person dieses Messfeld, ändert sich folglich die Entfernung signifikant. Man kann nun aus den Daten in Node-RED ablesen, welcher Sensor zuerst ausgelöst hat. Abschließend kann die Logik der Software also bewerten, ob die Person den Raum betreten oder verlassen hat.

Abb. 4: Bewegungssensor – HC-SR04

MQTT

Die erfassten Daten der Sensoren werden über das IoT-Protokoll MQTT an Node-RED übertragen. Der MQTT-Broker Mosquitto, welcher auf dem Raspberry Pi ist, bekommt alle Daten der Sensoren zugesendet. MQTT unterscheidet zuvor die Teilnehmer des Netzwerkes in einen Broker und mehrere Clients auf. Der Raspberry Pi ist in unserem Fall der Broker. Die Sensoren, aber auch Node-RED, sind Clients. Erkennt zum Beispiel ein PIR-Sensor Bewegung, sendet dieser anschließend die Nachricht „Bewegung erkannt“ an den MQTT-Broker auf dem Raspberry Pi. Der Broker empfängt daraufhin die Nachricht und leitet sie an einen Client weiter. Dieser empfangende Client hat vorher beim Broker angemeldet, dass er alle Nachrichten des PIR-Sensors empfangen möchte.

Projektarbeit „Kidnapp’d“

Das sprachgesteuerte Escape-Room-Game

In einer Projektarbeit des Studiengangs Media Engineering wurde in Anlehnung an alte klassische Textadventures ein Escape Room konzipiert und realisiert, der völlig auf visuelle Elemente verzichtet und ausschließlich durch ein CUI (Converstional User Interface) mit Sprache gesteuert wird. Dazu wurde für Amazon „Alexa“ ein Skill implementiert.

Was ist ein Escape Room?

Der Escape Room ist eine neue Erscheinung, die sich mittlerweile einer großen Beliebtheit erfreut. Die Spieler werden dabei in einem Raum eingesperrt und müssen aus diesem entkommen, indem Rätsel gelöst werden. Escape Rooms sprechen jede Altersgruppe an. Eine der wichtigsten Fähigkeiten, um in so einem Raum zu bestehen, ist Teamfähigkeit. Viele Aufgaben müssen im Team gemeistert werden.

Die Escape Rooms sind je nach Setting verschieden eingerichtet. Ob königliches Schlosszimmer oder heruntergekommene Bruchbude – es ist alles möglich.

Rätsel können verschieden ausgelegt sein. Zum einen können Rätsel Nacheinander angeordnet sein so dass die Lösung eines Rätsels zu einem anderen führt. Die parallele Rätselbearbeitung ist ebenfalls möglich. So können zum Beispiel die Ergebnisse vieler einzelner Rätsel die Zahlenkombination eines Schlosses ergeben. Auch die Interaktion mit Gegenständen ist fester Bestandteil von Escape Rooms, wie das Drücken von Knöpfen, Verschieben von Möbeln, Öffnen von Schubladen oder Schränken etc

Story

Die Story handelt von einem namenlosen Protagonisten, der gekidnappt wurde und in einer unbekannten Umgebung aufwacht. Das ganze Setting soll dazu anregen, den Spieler auf der einen Seite neugierig auf die Umgebung zu machen und anderseits animieren die Situation des Protagonisten zu verbessen und aus den Räumen zu entkommen.

Der Alexa Skill

Die Alexa Developer Console ist das webbasierte Tool von Amazon, um Alexa Skills zu entwickeln. Über das Tool wird der End-Point eingetragen, das Interaction Model sowie die jeweilige Invocation eingetragen.

Amazon bietet 2 Möglichkeiten einen Skill zu betreiben.

1. Amazon Lambdafunktionen gehostet über den Amazon Web Service (AWS)

Amazon als einer der größten Anbieter von Cloudservices bietet die Möglichkeit seinen Skill komplett über die webbasierte Anwendung Aws-Services zu realisieren. Das bedeutet das die Skilllogik als Lambdafunktion bei Amazon hinterlegt ist und diese auch mit der Alexa Developer Console kommuniziert.

2. Hosting eines eigenen Servers

Wir haben uns dafür entschieden, dass wir den Amazon Web Service nicht nutzten wollen, sondern den Skill auf unserem eigenen Server zu hosten. Der Amazon Alexa Services kommuniziert über HTTPS mit unserem Server. Diese Kommunikation funktioniert über die Post Methode in der JSON Dateien geschickt werden.

Damit die Alexa Developer Console den Applicationserver findet, wird in der Alexa Developer Console die URL zum Server abgelegt.

Intents

Intents sind ein wichtiger Bestandteil des Amazon-Kommunikation-Models. Dieses Kommunikation-Model gibt den Aufbau der zu erwartenden Befehle an. Intents nehmen in diesem Model den Platz der Befehle ein, die dann in dem entsprechenden Code verarbeitet werden und eine Reaktion des jeweiligen provozieren.

Die Rückkehr der BOTS

Aufgrund des positiven Feedbacks aus dem Sommersemester 2018 kehren die BOTS auch 2019 auf den wundersamen Donut-Planeten zurück. In den Räumen von KURZDIGITAL in Fürth waren am 14.06.19 wieder EFI-Studierende gefordert, kniffelige Aufgaben in kleinen Teams zu lösen. Die besten Teams erhielten Preise, Essen und Trinken gab es für alle.

Endergebnis

Projektarbeit „Schafkopfzähler“

Motivation

Schafkopf ist, insbesondere in Bayern und Franken, ein sehr beliebtes Kartenspiel.  Dabei ist das Ziel eine bestimmten Punktzahl, um genau zu sein 61, durch Stechen zu erreichen.  Am Ende der Runde, wenn alle Karten ausgespielt wurden, werden die Punkte der Karten, die man durch Stiche erlangt hat, zusammengezählt. Mithilfe der App „Schafkopfzähler“ sollen die Spieler beim Zusammenzählen unterstützt werden.Insbesondere für Anfänger ist, neben dem eigentlichen Spiel an sich, das Punktzählen anhand der Karten schwierig. Beim Zusammenspiel mit erfahrenen Spielern wird deutlich, dass diese beim Punktzählen bedeutend schneller sind als ein Anfänger. Dieser behindert somit ein flüssiges Spiel und bei fehlerhafter Berechnung, kann es sogar zu Ungereimtheiten im Spielablauf kommen.

„Nur ein Projektmitglied konnte Schafkopf spielen. Somit kann aus eigener Erfahrung gesagt werden, dass, neben den Regeln, das Punktezählen eine besondere Herausforderung ist.

Felix Kramer, Projektmitglied

Aus diesem Grund wurde im Rahmen einer studentischen Projektarbeit ein Prototyp einer App entwickelt, die dem Benutzer die Notwendigkeit des Punktezählens abnimmt. Dabei fotografiert der Spieler jede seiner Karten. Anschließend werden diese an einen django-Webserver gesendet und dort erkannt. Letztendlich wird dadurch die Punktzahl der Karte erkannt und auf die aktuelle Punktzahl des Spielers addiert.

Android-App Schafkopfzähler

Beim Starten der App sieht man, wie im Video dagestellt, einen Startbildschirm, auf welchem man durch das Drücken von „Los Geht´s“ zur Eingabe der Namen der Mitspieler kommt.

Diese werden reihum eingeben. Anschließend kommt man durch das Drücken des Buttons „Weiter“ zum Hauptlayout der App.

Jetzt kann die Ansage gemacht werden, die festlegt, welche Karten Trumpf sind. Dafür geht man im Hauptlayout auf „Neue Ansage“. Dort wählt man dann die gewünschte Spielart aus, bestätigt diese und kommt zurück in das Hauptlayout. Im Beispielvideo wurde „Blaue“ ausgewählt. Dabei handelt es sich um ein Sauspiel (Partnerspiel), bei dem das Blatt-Ass gerufen wird. Kurzgesagt spielt der Spieler, der das Blatt-Ass auf der Hand hat, mit dem Spieler zusammen, der das Spiel angesagt hat.

Wurden nun alle Karten ausgespielt, kann man seine Punkte mit Hilfe der App ermitteln. Dazu drückt der Spieler im Hauptlayout seinen Namen an, um in den Erkennungsmodus zu gelangen. Dort scannt er nacheinander seine Karten und erhält umgehend Rückmeldung vom Server. Dieser erkennt die Karten und die App errechnet daraufhin die Punktzahl des Stichs. Wurden nun alle Karten erfolgreich gescannt, kommt der Spieler über „Bestätigen“ wieder zurück in das Hauptlayout. Ebenda wird unter dem Namen des Spielers die Punktzahl angezeigt. Nun hat der nächste Spieler die Möglichkeit seine Karten zu scannen.