Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...

Die Seite wird erstellt Peer Schwab
 
WEITER LESEN
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
Bildverarbeitung für Virtual Walk

      Bachelor Thesis an der Hochschule Luzern
 im Fachbereich Elektrotechnik & Informationstechnologie

                        Student:
                     Silvan Schmid

                 Betreuender Dozent:
                  Prof. Dr. Klaus Zahn

                        Experte:
                 Dr. Jürg M. Stettbacher

                   Industriepartner:
        Schweizer Paraplegiker-Zentrum, Nottwil
                Prof. Dr. Roger Abächerli

                       04.01.2021
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
BAT HS20: Bildverarbeitung für Virtual Walk

     Bachelor-Thesis an der Hochschule Luzern - Technik & Architektur

     Titel                            Bildverarbeitung Virtual für Walk

     Diplomandin/Diplomand Schmid Silvan

     Bachelor-Studiengang Bachelor Elektrotechnik und Informationstechnologie

     Semester                         HS20

     Dozentin/Dozent                  Prof. Dr. Klaus Zahn

     Expertin/Experte                 Dr. Jürg Stettbacher

     Abstract Deutsch
     Zur Behandlung von Phantomschmerzen nach Rückenmarksverletzung wird das System Virtual
     Walk entwickelt. Bei diesem System handelt es sich um eine visuelle Therapiemethode. Der
     Oberkörper des Patienten wird dabei gefilmt und auf fremde, laufende Beine in einem bewegten
     Hintergrund platziert. Die Bewegung der Beine sowie die Geschwindigkeit des Hintergrundes
     wird dabei von der Armbewegung gesteuert. Um die Illusion auf den jeweiligen Patienten anzu-
     passen, kann in einer graphischen Benutzeroberfläche verschiedene Einstellungen vorgenom-
     men werden. Dabei kann aus verschiedenen Hintergründen und Beinen ausgewählt werden.

Alle Rechte vorbehalten. Die Arbeit oder Teile davon dürfen ohne schriftliche Genehmigung der Rechteinhaber weder in
irgendeiner Form reproduziert noch elektronisch gespeichert, verarbeitet, vervielfältigt oder verbreitet werden.

Sofern die Arbeit auf der Website der Hochschule Luzern online veröffentlicht wird, können abweichende Nutzungsbedin-
gungen unter Creative-Commons-Lizenzen gelten. Massgebend ist in diesem Fall die auf der Website angezeigte Creative-
Commons-Lizenz.
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
BAT HS20: Bildverarbeitung für Virtual Walk

     Abstract Englisch
     The Virtual Walk system is developed for the treatment of phantom pain after spinal cord injury.
     This system is a visual therapy method. The patient's upper body is filmed and placed on
     strange, walking legs in a moving background. The movement of the legs as well as the speed
     of the background is controlled by the arm movement. In order to adapt the illusion to the respec-
     tive patient, different settings can be made in a graphical user interface. Different backgrounds
     and legs can be selected.

     Ort, Datum                       Luzern, 04.01.2021
     © Silvan Schmid, Hochschule Luzern – Technik & Architektur

Alle Rechte vorbehalten. Die Arbeit oder Teile davon dürfen ohne schriftliche Genehmigung der Rechteinhaber weder in
irgendeiner Form reproduziert noch elektronisch gespeichert, verarbeitet, vervielfältigt oder verbreitet werden.

Sofern die Arbeit auf der Website der Hochschule Luzern online veröffentlicht wird, können abweichende Nutzungsbedin-
gungen unter Creative-Commons-Lizenzen gelten. Massgebend ist in diesem Fall die auf der Website angezeigte Creative-
Commons-Lizenz.
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
BAT HS20: Bildverarbeitung für Virtual Walk

Inhaltsverzeichnis

1.     Einleitung ......................................................................................................................... 5
     1.1    Aufgabenstellung ...................................................................................................... 5
2.     Grundlagen ...................................................................................................................... 5
     2.1    System ..................................................................................................................... 5
     2.2    bisheriges Konzept ................................................................................................... 7
3.     Konzept ............................................................................................................................ 8
     3.1    Benutzeroberfläche................................................................................................... 9
     3.2    Umsetzung ............................................................................................................. 10
       3.2.1           Programmübersicht........................................................................................ 10
       3.2.2           Main ............................................................................................................... 11
       3.2.3           Process stream .............................................................................................. 15
       3.2.4           Merge Prozess............................................................................................... 16
       3.2.5           graphische Benutzeroberfläche ..................................................................... 17
4.     Schlussdiskussion ........................................................................................................ 22
     4.1    Reflexion & Ausblick ............................................................................................... 22
5.     Abbildungsverzeichnis ................................................................................................. 24
6.     Literaturverzeichnis ...................................................................................................... 24
7.     Anhang ........................................................................................................................... 25
     7.1    Aufgabenstellung .................................................................................................... 25
Bildverarbeitung für Virtual Walk ........................................................................................ 25

Abkürzungen

Abkürzung            Beschreibung
SPZ                  Schweizer Paraplegiker-Zentrum
OBS                  Open Broadcaster Software
GUI                  graphical user interface / graphische Benutzeroberfläche

                                                                                                                        Seite 4 von 27
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
BAT HS20: Bildverarbeitung für Virtual Walk

1. Einleitung
Viele Patienten mit einer Querschnittslähmung leiden oft an chronischen, neuropathischen
Schmerzen. Um diese chronischen Schmerzen zu behandeln, hat das Institut für Medizintechnik
ein Forschungsprojekt mit der Schmerzklinik am SPZ Nottwil. Für dieses Projekt wird das Virtual
Walk System entwickelt, welches eine visuelle Therapierungsmethode darstellt. Es wird dabei
der Oberkörper der gelähmten Person mit einer Kamera aufgenommen und danach auf fremde,
gehende Beine in einem Hintergrundvideo zusammengefügt. Durch diese visuelle Ausgabe soll
dem Patienten eine Illusion vermittelt werden, dass alles in Ordnung ist und er gehen kann.
Durch diese Illusion wird erwartet, dass die Nichtübereinstimmung der motorischen Befehle und
der sensorischen Rückmeldungen korrigiert werden kann.[1] In dieser Projektarbeit wird ein
Konzept realisiert, das die visuelle Ausgabe in einer graphischen Benutzeroberfläche zusam-
menführt.

1.1     Aufgabenstellung
Das folgende Zitat beschreibt die originale Aufgabenstellung:
« In Vorgängerarbeiten konnte die prinzipielle Machbarkeit des Systems nachgewiesen werden. Allerdings
ist die fusionierte Aufnahme noch nicht ausreichend realitätsnah. Ein bestehendes Problem ist die nicht
optimale Synchronisation der Armbewegung des sitzenden Patienten mit der Beinbewegung des aufge-
zeichneten Videos. Ziel der Arbeit ist es, auf Basis von Methoden der digitalen Bildverarbeitung, Musterer-
kennung und des Machine Learnings Methoden zu entwickeln, welche vollständig automatisiert die Arm-
und Beinbewegung aus den beiden Videoquellen extrahieren und diese Information in einer graphischen
Benutzeroberfläche zusammenführen. »

2. Grundlagen
In diesem Kapitel werden die Grundlagen des bestehenden Systems aufgezeigt.

2.1 System
Das bestehende System besteht aus einer Tiefenkamera, der Intel Realsense D435, einer An-
zeige, einem Computer sowie aus einem Wippstuhl. In der untenstehenden Abbildung 1 ist die
Anordnung der einzelnen Komponenten zu sehen. Die Kamera wird dazu verwendet, um den
Oberkörper zu filmen und die Distanz von der Kamera zur Hand zu messen. Der gefilmte Ober-
körper wird danach auf fremde, laufende Beine in einem ausgewählten Hintergrund gesetzt. Die
Videos der Beine und des Hintergrundes sind dabei vorgegeben, und es kann zwischen männ-
lichen, weiblichen Beinpaaren und verschiedenen Hintergründen ausgewählt werden. Das zu-
sammengesetzte Video wird anschliessend auf der Anzeige ausgegeben. Die Bewegung der
Beine und die Geschwindigkeit des Hintergrundes sollen dabei von der Armbewegung vorgege-
ben werden. Der Patient sitzt zusätzlich auf einem höhenverstellbaren Wippstuhl, welcher die
Beckenbewegung nachahmt.

                                                                                          Seite 5 von 27
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
BAT HS20: Bildverarbeitung für Virtual Walk

Abbildung 1: Illustration des Virtual Walk (Quelle: Virtualwalk.github.io)

In der untenstehenden Tabelle sind die verschiedenen Videoquellen aufgeführt. Bei den Hinter-
grundvideos handelt es sich um einen abgefilmten Weg wie bspw. in einem Wald. Die Beinvi-
deos wurden auf einem Laufband mit grünem Hintergrund aufgenommen.

Abbildung 2: Beispiel Hintergrund und Beine

 Beschreibung                                      Auflösung                 Framerate [fps]

 Hintergrundvideo Wald 1                           1920 x 1080               24

 Hintergrundvideo Wald 2                           1280 x 720                50

 Hintergrundvideo Sure 2                           1280 x 720                29.97

 Hintergrundvideo U-Graben 2                       1280 x 720                29.97

 Beinvideo Männlich                                1280 x 720                30

 Beinvideo Weiblich                                1280 x 720                30

 Kamera Intel Realsense D435 RGB                   1920 x 1080               30

 Kamera Intel Realsense D435 Depth                 1280 x 720                Up to 90

                                                                                               Seite 6 von 27
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
BAT HS20: Bildverarbeitung für Virtual Walk

2.2     bisheriges Konzept
Das bisherige Konzept baut dabei auf der Idee auf, dass die verschiedenen Elemente gemäss
Abbildung 3 synchronisiert werden. Dabei wird mit Hilfe der Kamera die Distanz von der Kamera
zur Hand gemessen und somit die Armbewegung detektiert. Für die Detektion der Hand und
weitere Bildverarbeitung wurde dabei die freie Programmbibliothek "OpenCV" verwendet. Mit
der Information über die Armbewegung wird anschliessend die Geschwindigkeit und Position
der Beine angesteuert.

Abbildung 3: bisheriges Konzept

Die drei Videoelemente Oberkörper, Beine und Hintergrund wurden dabei in der Open
Broadcaster Software(OBS) zusammengefügt. Diese Software verfügt dabei einen eigenen
Greenscreen-Filter und die Videoelemente des Oberkörpers und der Beine können mit der Maus
positioniert und skaliert werden. Ein Ausschnitt der Software ist dabei in der Abbildung 4 ersicht-
lich.

Abbildung 4: Open Broadcaster Software(OBS)

Die Ansteuerung der Beine wurde dabei mit einem Lookup-Algorithmus realisiert. Dazu wurde
als erstes genau ein Schritt aus dem Beinvideo extrahiert. Die Idee dabei ist, dass nun für jede

                                                                                   Seite 7 von 27
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
BAT HS20: Bildverarbeitung für Virtual Walk

Position der Arme ein Bild mit der richtigen Beinposition angezeigt werden kann. Dazu wird zu-
erst die Distanz der rechten Hand zur Kamera gemessen, welche gegenüber der Zeit als Sinus-
schwingung beschrieben werden kann. Dieser Sinusschwingung wird dann für jede Position ein
passendes Bild der Beine zugewiesen. Lediglich bietet die OBS unzureichende Funktionalität
für die Bildverarbeitung und ist für den Benutzer etwas mühsam zu bedienen.

3. Konzept
Das folgende Kapitel zeigt das realisierte Konzept auf, welches aufbauend auf der vorgängigen
Arbeit erarbeitet wurde.

Das System besteht, wie in der untenstehenden Abbildung ersichtlich, ausfolgenden 4 Ebenen:
Der Armbewegung, der Beinbewegung, dem Hintergrund und dem Stuhlwippen. Die Distanz
von der Kamera zu einer Hand kann als Sinusschwingung angesehen werden. Die Armbewe-
gung wird somit als zentrales Element angesehen und gibt somit die Geschwindigkeit und Posi-
tion der Beine, des Wippstuhls sowie die Geschwindigkeit für den Hintergrund vor.

                                   Armbewegung

    Beinbewegung                    Hintergrund                      Stuhlwippen

Die zuvor verwendete Software OBS biet etwas eingeschränkte Möglichkeiten für die Verarbei-
tung der verschiedenen Videos und ist für den Benutzer etwas umständlich zu bedienen. Das
neue Konzept soll deshalb ohne die zusätzliche Software OBS verwirklicht werden. Somit wird
für das Zusammenführen der einzelnen Videoquellen in der Programmiersprache Python und
mit Hilfe der freien Programmbibliothek "OpenCV" umgesetzt. Eine Übersicht der verschiedenen
Ebenen ist dabei in der Abbildung 5 zu sehen.

                                                                                   Seite 8 von 27
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
BAT HS20: Bildverarbeitung für Virtual Walk

Abbildung 5: Übersicht Konzept

3.1     Benutzeroberfläche
Da die Software OBS ersetzt werden soll, muss eine graphische Benutzeroberfläche erstellt
werden. Dabei muss mindestens folgende Anforderungen erfüllt werden, welche zuvor durch die
OBS zur Verfügung standen:

    -   Auswahlmöglichkeit für Hintergrund und Beine

    -   Positionierung der Beine und des Oberkörpers im Hintergrund von Hand

    -   Abspeicherung von Szenen

    -   Greenscreen-Filter

Durch die Entwicklung einer eigenen Benutzeroberfläche stehen mehr Möglichkeiten für die Be-
arbeitung der einzelnen Videoquellen zur Verfügung. Somit können bspw. mehr Einstellungs-
möglichkeiten für die Kamera gemacht werden. Auch eine automatisierte Positionierung und
Skalierung der einzelnen Videos wäre wünschenswert. Ein erster Designentwurf für die Benut-
zeroberfläche ist dabei Abbildung 6 ersichtlich.

                                                                               Seite 9 von 27
Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
BAT HS20: Bildverarbeitung für Virtual Walk

Abbildung 6: Designentwurf GUI

3.2     Umsetzung
In folgendem Kapitel wird das umgesetzte Konzept erläutert.

3.2.1 Programmübersicht
In der Abbildung 7 ist eine Übersicht des erstellten Programms zusehen. Im Hauptprogramm
werden dabei zuerst die Prozesse für die Bestimmung des passenden Beinbildes (Calc_Pic-
ture_Nr_Process), den Zusammenschnitt(Merge_Process), den Greenscreen-Filter der Live-
Aufnahme(Process_stream) sowie der Thread der graphischen Benutzeroberfläche initialisiert.
Danach wird in einer wiederkehrenden Schlaufe jeweils ein Bild der Kamera gelesen. Aus die-
sem Bild wird anschliessend in einem bestimmten Bereich anhand der Hautfarbe die Hand er-
kannt. In dem Zentrum des erkannten Bereichs wird dann die Distanz von der Kamera zur Hand
gemessen. Aus diesen Messpunkten wird dabei die Abspielgeschwindigkeit sowie die Postion
der Arme an den Calc_Picture_Nr Prozess weitergegen. In diesem Prozess wird jeweils um
eine echte Anzeigedauer eines Beinframes gewartet und jeweils die aktuelle Bildnummer an den
Merge Prozess weitergegeben. Im Merge Prozess wird das aktuellste Bild der Kamera, welches
zuvor durch einen Greenscreen-Filter gefiltert wird mit den passenden Bein Bild und dem Hin-
tergrund zusammengefügt und angezeigt. Solange der Start Knopf noch nicht betätigt wurde,
kann die Position und Grösse des Oberkörpers und der Beine von Hand positioniert werden.
Des Weiteren kann über die graphische Benutzeroberfläche aus verschiedenen Hintergründen
und     Beinpaaren       ausgewählt   werden.   Über    ein   Menu     können     zusätzlich

                                                                            Seite 10 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

Einstellungsmöglichkeiten für den Greenscreen, die Handerkennung und der Kamera aufgeru-
fen werden. Die einzelnen Klassen werden in folgenden Unterkapiteln genauer erläutert.

 Kamera                           Main
 - Live Aufnahme                  - Handerkennung
                                  - Distanzmessung
                                                                        Calc_Picture_Nr_Process
                                                       Periode, Phase   - Bestimmung Beinbild
                                                                        - Bestimmung Hintergrund
                                  - Bestimmung                          Geschwindigkeit
 GUI Thread                       Extrema
 - Auswahl
 Hintergrund
 - Auswahl Beine                                                               Bildnummer
 - Auswahl Audio                          Kamerabild
 - Start/Stop
 - Einstellungen
                      Choose Roi             Process_stream                  Merge_Process
                      - Auswahl              - Greenscreen-                  - Greenscreen-
                      Greenscreen            Filter                          Filter Beine
                      Bereich                                                - Zusammenschnitt
                      - Auswahl
                      Handbereich
                                                                             Set_positions
                                                                             - Positionierung
                                                                             Beine und Live-
                                                                             Aufnahme

Abbildung 7: Übersicht Programm

3.2.2 Main
Die Abbildung 8 zeigt den groben Ablauf des Hauptprogrammes. In einem ersten Schritt wird
die Graphische Benutzeroberfläche sowie die zusätzlichen benötigten Prozesse gestartet.
Durch die Verwendung der Python Bibliothek "multiprocessing" wird erreicht, dass verschiedene
Aufgaben parallel abgearbeitet werden können und sie werden nicht durch das Global Interpre-
ter Lock blockiert[2]. Für die Kommunikation zwischen den verschiedenen Prozessen werden
Queues verwendet. Es wird somit eine möglichst hohe Framerate für das Video und eine
schnellstmögliche Abtastung der Distanz von Hand zur Kamera angestrebt. Nach dieser Initiali-
sierung befindet sich das Hauptprogramm in einer wiederkehrenden Schlaufe.

                                                                                                   Seite 11 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

                    Start Main

          - Start   GUI
          - Start   Calc_Process
          - Start   Merge_Process
          - Start   Stream_Process

                                           Send color frame to
          Get camera frames                process_stream

          Detect Hand

          Get distance

                                           Send display time &
              Extrema found ?        Yes   Start position to
                                           calc_process

                       No

Abbildung 8: Ablauf Main

Zyklisch werden immer ein Farbbild sowie das Tiefenbild der Kamera geladen. Der Hersteller
Intel bietet dabei mit der Python Bibliothek "pyrealsense2" die benötigten Funktionen an. Das
Farbbild wird dabei jeweils an den proccess_stream gesendet. Im Farbbild wird dann in einem
vorbestimmten Bereich nach einer Hautfarbe detektiert. Der vorbestimmte Bereich kann über
das GUI im Menu unter "Einstellungen" ->"Kamera" ausgewählt werden. Diese Einstellung wird
im Kapitel 3.2.5 noch genauer aufgezeigt. Um nach der Hautfarbe zu detektieren wird das Farb-
bild in den YCrCb Farbraum konvertiert. In diesem Farbraum beschreibt die Variable Y die
Grundhelligkeit und die Variablen Cr (Red-Green Chrominance) und Cb(Blue-Yellow Chromi-
nance) die Farbkomponenten. Der Bereich der Hautfarbe kann dabei über das Menu der gra-
phischen Benutzeroberfläche eingestellt werden. Dadurch werden die Messwerte der Distanz
zuverlässiger. Die untenstehende Abbildung 9 zeigt links das gegebene Farbbild und rechts das
Tiefenbild. In dem blauen Rahmen im Farbbild ist die erkannte Hand rot markiert und es wird

                                                                             Seite 12 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

die Distanz zum weissen Punkt gemessen.

Abbildung 9: Handerkennung

Die gemessenen Distanzen werden jeweils abgespeichert und es wird bei jedem Durchlauf
das aktuelle Differential mit dem Vorherigen verglichen. Wenn sich diese unterscheiden, so
handelt es sich bei dem Messwert um eine maximale oder minimale Distanz von Hand zu Ka-
mera. Die untenstehenden Abbildung 10 zeigt eine Testsequenz von einer Armbewegung, wo-
bei die jeweiligen Extrema markiert wurden.

Abbildung 10: Bestimmung Extrema

Zusätzlich wurde ein Kalman Filter implementiert, um allfälliges Messrauschen zu reduzieren
und den Verlauf der Messwerte voraussagen zu können. In der untenstehenden Abbildung 11
sind dabei die gefilterten Werte abgebildet.

                                                                              Seite 13 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

Abbildung 11: Messpunkte mit Kalman-Filter

Bei gefundenem Extremum wird jeweils die verstrichene Zeit zu dem letzten Extremum für die
Anzeigedauer der Beinbilder verwendet. Diese Anzeigedauer und ob es sich beim letzten Ext-
remum um ein Maximum oder ein Minimum gehandelt hat, wird an den Calc_Process weiterge-
reicht. In diesem Prozess wird für jedes Bein Bild um die Anzeigedauert gewartet und das an-
zuzeigende Bildnummer der Beine und ob ein neues Hintergrundbild geladen werden soll oder
nicht, über eine Queue an den Merge Prozess gesendet.

                                                                            Seite 14 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

3.2.3 Process stream
Der Stream Prozess erhält jeweils das Farbbild vom Main. In diesem
                                                                                    Get Positons and
Prozess wird der Greenscreen aus dem Bild gefiltert. Für diese Auf-                 size

gabe wurde ein separater Prozess erstellt, um die Geschwindigkeit
                                                                                    Resize upper body
des Main Codes sowie des Merge Prozesses möglichst wenig zu be-
einträchtigen. In der nebenstehenden Abbildung ist der Ablauf des
                                                                                    Generate empty
Prozesses abgebildet. In einem ersten Schritt wird dabei zuerst die                 image in size of
                                                                                    background
Position und die Grösse im Verhältnis zum Hintergrund vom Merge
Prozess bezogen. Diese Variablen können mit der Maus in dem Aus-
gabebild vom Merge Prozess angepasst werden, solange der Start                      Place upper body
                                                                                    into empty image
Knopf in der graphischen Benutzeroberfläche noch nicht betätigt
wurde. In einem zweiten Schritt wird das Bild der Kamera auf die ge-
                                                                                    Set other regions to
wünschte Grösse gebracht. Danach wird ein leeres Bild in der Grösse
                                                                                    green
des Hintergrundes erstellt und das Kamerabild in der richtigen Posi-
tion gesetzt. In diesem Bild werden anschliessend die noch nicht be-
                                                                                    Convert to HSV
setzten Pixel auf grün gesetzt und dann in den HSV-Farbraum kon-                    colorspace
vertiert. In diesem Farbraum steht das "H" für den Farbwert(englisch:
hue), das "S" für Farbsättigung(englisch: saturation) und das V für
                                                                                    Generate Mask
den Hellwert(engisch: value). In der Abbildung 12 ist der HSV-Far-
braum als Zylinder dargestellt. Es wurde dieser Farbraum gewählt, da
sich dort die Grenzen für den grünen Bereich besser bestimmen las-                  Send resulting
                                                                                    image and mask to
sen. Diese Grenzen lassen sich über das Menu der graphischen Be-                    merge process
nutzeroberfläche einstellen. Somit kann das Filter jeweils an die ge-
gebenen Lichtverhältnisse angepasst werden. Nach der Transforma-
tion kann eine Maske generiert werden. Diese Maske ist eine Matrix, welche die Information
enthält, welche Pixel im Bild in dem festgelegten grünen Bereich liegen. Mit Hilfe dieser Maske
und des Bildes der Kamera kann anschliessend im Merge Prozess das Hintergrundbild mit dem
Kamerabild zusammengefügt werden.

Abbildung 12: HSV-Farbraum (Quelle: https://docs.opencv.org/3.4/da/d97/tutorial_threshold_inRange.html)

                                                                                             Seite 15 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

3.2.4 Merge Prozess
In der untenstehenden Abbildung 13 ist der Ablauf des Prozesses für den Zusammenschnitt der
Bilder dargestellt. Solange die Starttaste auf der Benutzeroberfläche noch nicht betätigt wurde,
wird die Funktion Set_positions aufgerufen. In dieser Funktion wird jeweils ein Bild der Beine,
des Hintergrundes und der Kamera zusammengeschnitten. Anschliessend wird in der Grösse
des Beinbildes ein Viereck angezeigt, welches sich mit der Maus vergrössern und verschieben
lässt. Bei Doppelklick mit der linken Maustaste auf das Viereck kann dasselbe auch für den
Oberkörper durchgeführt werden. Die Positionen der Vierecke werden jeweils gespeichert und
beim Drücken von Start für die Positionierung der Beine und des Oberkörpers verwendet. So-
bald die Starttaste gedrückt wurde, werden zuerst die Masken aller Beinbilder generiert, um das
Grün aus den Beinbildern zu filtern. Diese Masken werden zuerst berechnet, damit die Anzahl
Bilder pro Sekunde für die Ausgabe des Resultats erhöht werden kann.

           Start from GUI?           No   Set_positions()

                 Yes

                                          Merge pictures

           Remove Green
   No
          from leg pictures

                                            Generate
                                            rectangle

           Start from GUI?
                                           Show picture

                 Yes
                                          Get rectangle
                                           positions
          Load background
           and leg picture

           Merge pictures

            Show picture

Abbildung 13: Ablauf Merge Prozess
                                                                                Seite 16 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

3.2.5 graphische Benutzeroberfläche
Das folgende Kapitel beschreibt die erstellte graphische Benutzeroberfläche.

PyQt

PyQt bringt das Qt C++ cross-platform Anwendungsframework und die corss-platform Pro-
grammiersprache Python zusammen[3]. In diesem Projekt wird mit der Version PyQt5 gearbei-
tet. Das Qt Framework ist in verschiedene Module gegliedert. Es wird dabei in Basiskompo-
nenten, den "Qt Essentials" sowie den zusätzlichen Modulen für spezielle Einsatzzwecke, den
"Qt Add-Ons" unterschieden. Die Basiskomponenten sind dabei in weitere Module aufgeteilt,
wobei für dieses Projekt die Module "Qt Core", "Qt Gui" und "Qt Widgets" verwendet werden.
Eine praktische Funktionalität bildet die Verwendung des Signal-Slot-Konzepts, welches eine
ereignisgesteuerte Kommunikation zwischen zwei Objekten erlaubt. Ein Objekt kann ein Signal
auslösen, was dazu führt, dass in einem anderen Objekt eine Methode ausgeführt wird, wobei
sich die beiden Objekte nicht zwangsläufig kennen müssen. Dies ermöglicht eine lose Kopp-
lung zwischen den Modulen. Des Weiteren werden die Typensicherheit und Threadsicherheit
gewährleistet[4].

                                                                               Seite 17 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

Qt Designer
Die untenstehende Abbildung 14 zeigt die grafische Benutzeroberfläche des Qt Designers. Mit
dem Qt Designer lassen sich grafischen Benutzeroberflächen mit Hilfe der Bibliothek Qt erstel-
len. Es können per drag-and-drop verschiedene Elemente wie Schalter, Textfelder etc. in das
Hauptfenster eingefügt werden. Die Elemente können durch Verwenden von verschiedenen
Layouts in die gewünschten Positionen angeordnet werden. Das Tool generiert eine .ui Datei,
welche das gewünschte Design als Baum in einem XML-basiertem Format enthält. [ Quelle:
https://build-system.fman.io/qt-designer-download] Diese Datei kann folglich direkt in den Py-
thon-Code geladen werden oder in Python übersetzt werden. Für dieses Projekt wurde die .ui
Dateien in Python übersetzt. Es konnte somit eine erste Form des Designs erstellt werden und
Änderungen folglich mit dem Qt Designer oder durch Verändern des generierten Coder vorge-
nommen werden.

Abbildung 14: Qt Designer

                                                                               Seite 18 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

Design

In der Abbildung 15 ist das fertige Design zu sehen.
Die Idee für das Design ist, dass dem Benutzer eine
möglichst einfache und intuitive Verwendung des
Programms ermöglicht wird. Das GUI wird in die ver-
schiedenen Bereiche Hintergrund, Beine, Audio und
Szenen eingeteilt. Beim Audio handelt es sich um bi-
naurale Beats, welche zu den normalen Hintergrund-
geräuschen gemischt werden. Diese Audios sollen
bestimmte Gehirnwellen stimulieren und werden der-
zeit von Mitstudenten im Team des Virtual Walks ge-
nauer untersucht. In den oberen drei Bereichen soll
der Benutzer aus verschiedenen Hintergründen,
Beinpaaren und Audios auswählen können. Sobald
der Benutzer mit den Einstellungen zufrieden ist, soll
die Möglichkeit bestehen, die aktuellen Einstellungen
als Szene für den jeweiligen Patienten zu speichern.
Dies vereinfacht die weiterführende Therapie. Am un-
teren Rand des Fensters sind zusätzlich noch ein
Start- sowie ein Stop-Knopf zu sehen. Solange der
Start Knopf noch nicht gedrückt wurde, lassen sich
die Beine, sowie der Oberkörper mit Hilfe des in der
Abbildung 16 ersichtlichen Vierecks verschieben und
skalieren. In diesem Projekt wurden bereits die Funk-
tionalität für die Auswahl des Hintergrundes, der
Beine, die Start/Stop-Knöpfe sowie ein Menu mit Ein-
                                                         Abbildung 15: Graphische Benutzeroberfläche
stellungsmöglichkeiten implementiert

                                                                                     Seite 19 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

Abbildung 16: Positionierung Beine

Über das Menu( siehe Abbildung 17) können Einstellungsmöglichkeiten für die Kamera, den
Greenscreen sowie die Handerkennung aufgerufen werden. Bei Aktivierung von dem Reiter
"Beine fortlaufend" kann umgeschalten werden, ob die Beine bei Anhalten der Arme
weiterlaufen, oder anhalten sollen.

Abbildung 17: Menu GUI

Bei Aufrufen der Kameraeinstellungen wird dem Benutzer das Kamerabild wie in Abbildung 18
angezeigt. In dem Fenster kann mit der Maus ein Viereck für den grünen Bereich ausgewählt
werden. Diese Auswahl kann mit der Taste "q" zurückgesetzt und wiederholt werden oder mittels
"Enter" bestätigt werden. Bei Bestätigung wird ein neues Fenster geöffnet, bei dem der
Bewegungsbereich der rechten Hand ausgewählt werden kann.

                                                                             Seite 20 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

Abbildung 18: Auswahl für Greenscreen und Hand

Unter den Reitern Greenscreen und Handerkennung wird, wie in Abbildung 19 ersichtlich,
jeweils ein seperates Fenster geöffnet. In diesen Fenstern lassen sich die unteren und oberen
Grenzen für die Bestimmung der Masken mit Hilfe von Schiebereglern einstellen. Bei
Verschiebung eines Wertes kann im Live-Bild jeweils gesehen werden, wie sich der Wert auf
das Bild auswirkt. Es kann somit der Greenscreen-Filter der Kamera auf die jeweiligen
Lichtverhältnisse angepasst werden. Dasselbe gilt auch für die Handerkennung, damit
sichergestellt wird, dass die konstant die ganze Hand erkannt wird.

                                                                             Seite 21 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

Abbildung 19: Einstellungsfenster für Greenscreen und Handerkennung

4. Schlussdiskussion
In der Schlussdiskussion wird das weitere Vorgehen für das Projekt erläutert. Weiter wird das
Projekt von dem Standpunkt des Studenten reflektiert und die wichtigsten Erkenntnisse aus die-
sem Projekt festgehalten.

4.1     Reflexion & Ausblick
In diesem Projekt konnte ein Programm erstellt werden, welches die OBS ersetzt. Dadurch ste-
hen nun mehr Möglichkeiten für die Bildverarbeitung zur Verfügung und die Bedienung kann im
Vergleich zum OBS vereinfacht werden. Jedoch sind in der graphischen Benutzeroberfläche
noch nicht alle Funktionen implementiert worden. Die Auswahl für den Ton sowie dessen Laut-
stärkeregler und die Speicherung für Szenen sind momentan noch nicht funktionsfähig. Des
Weiteren könnten die Positionierung und Skalierung der Beine und des Oberkörpers automati-
siert werden. Eine Möglichkeit wäre dabei, dass mittels Gesichtserkennung der Abstand zu den
Händen gemessen wird und somit der Oberkörper im richtigen Verhältnis zu den Beinen skaliert
                                                                              Seite 22 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

und positioniert wird. Auch die richtige Positionierung der Beine müsste passend zu jedem Hin-
tergrund evaluiert werden, damit ein Schritt der Beine auch der richtigen Distanz im Hintergrund
entspricht. Die Ansteuerung der Beine funktionierte im Home-Office relativ zuverlässig. Jedoch
muss das Programm auf andere Beine und Hintergründe angepasst werden. Das Programm
muss in einem nächsten Schritt im Testsystem in Horw oder am SPZ ausgetestet werden. Auch
die Ansteuerung des Wippstuhls konnte noch nicht realisiert werden.

                                                                                Seite 23 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

5. Abbildungsverzeichnis
Abbildung 1: Illustration des Virtual Walk (Quelle: Virtualwalk.github.io) ................................... 6
Abbildung 2: Beispiel Hintergrund und Beine ............................................................................ 6
Abbildung 3: bisheriges Konzept .............................................................................................. 7
Abbildung 4: Open Broadcaster Software(OBS) ....................................................................... 7
Abbildung 5: Übersicht Konzept................................................................................................ 9
Abbildung 6: Designentwurf GUI ............................................................................................. 10
Abbildung 7: Übersicht Programm .......................................................................................... 11
Abbildung 8: Ablauf Main ........................................................................................................ 12
Abbildung 9: Handerkennung ................................................................................................. 13
Abbildung 10: Bestimmung Extrema ....................................................................................... 13
Abbildung 11: Messpunkte mit Kalman-Filter .......................................................................... 14
Abbildung                       12:                                HSV-Farbraum                                          (Quelle:
https://docs.opencv.org/3.4/da/d97/tutorial_threshold_inRange.html) ..................................... 15
Abbildung 13: Ablauf Merge Prozess ...................................................................................... 16
Abbildung 14: Qt Designer...................................................................................................... 18
Abbildung 15: Graphische Benutzeroberfläche ....................................................................... 19
Abbildung 16: Positionierung Beine ........................................................................................ 20
Abbildung 17: Menu GUI ........................................................................................................ 20
Abbildung 18: Auswahl für Greenscreen und Hand ................................................................ 21
Abbildung 19: Einstellungsfenster für Greenscreen und Handerkennung ............................... 22

6. Literaturverzeichnis
[1] www.hslu.ch/de-ch/hochschule-luzern/forschung/projekte/detail/?pid=3907
[2]   medium.com/@bfortuner/python-multithreading-vs-multiprocessing-
73072ce5600b#:~:text=Processes%20speed%20up%20Python%20operations,com
bine%20them%20which%20takes%20time
[3] https://www.riverbankcomputing.com/software/pyqt
[4] https://de.wikipedia.org/wiki/Qt_(Bibliothek)

                                                                                                              Seite 24 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

7. Anhang
7.1      Aufgabenstellung
 Horw, 14. September 2020
 Seite 25/27

 Bachelor Thesis im Studiengang
 Elektrotechnik und Informationstechnologie

Aufgabe für Herrn Silvan Schmid

Bildverarbeitung für Virtual Walk

Fachliche Schwerpunkte
Signalverarbeitung & Kommunikation, Mechatronik, Automation, Robotik

Einleitung
Das Institut für Medizintechnik (IMT) hat ein Forschungsprojekt mit der Schmerzklinik am SPZ
Nottwil. Dabei wird ein Prototyp entwickelt, welcher querschnittsgelähmten Personen den Ein-
druck des Gehens vermittelt. Hierzu wird der Oberkörper der gelähmten Person sitzend mit einer
Kamera aufgenommen und in Echtzeit mit einem Video, welches bewegte Beine zeigt, fusioniert
und dann auf einem Bildschirm ausgegeben.

Aufgabenstellung
In Vorgängerarbeiten konnte die prinzipielle Machbarkeit des Systems nachgewiesen werden.
Allerdings ist die fusionierte Aufnahme noch nicht ausreichend realitätsnah. Ein bestehendes
Problem ist die nicht optimale Synchronisation der Armbewegung des sitzenden Patienten mit
der Beinbewegung des aufgezeichneten Videos. Ziel der Arbeit ist es, auf Basis von Methoden
der digitalen Bildverarbeitung, Mustererkennung und des Machine Learnings Methoden zu ent-
wickeln, welche vollständig automatisiert die Arm- und Beinbewegung aus den beiden

                                                                              Seite 25 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

Videoquellen extrahieren und diese Information in einer graphischen Benutzeroberfläche zu-
sammenführen.

Termine
Start der Arbeit:              Montag 14.9.2020
Zwischenpräsentation:          Zu vereinbaren im Zeitraum 19.10. – 20.11.2020
Abgabe Schlussbericht:         Montag 4. Januar 2021, vor 16:00 im D311
Abgabe Digitale Doku:          Gemäss separater Anweisung der Studiengangleitung
Abschlusspräsentation:         Zu vereinbaren im Zeitraum 4.1. – 22.1.2021
Diplomausstellung:             Freitag 2. Juli 2021 (Teilnahme obligatorisch!)
Dokumentation
Der gebundene Schlussbericht enthält keine Selbständigkeitserklärung und ist in einfacher Aus-
führung zu erstellen. Er enthält zudem zwingend
   -   einen sehr kurzen, englischen Abstract.
   -   Ein Titelblatt, gleich hinter dem Deckblatt, gemäss Weisungen der Studiengangleitung
   -   Eine SD-Hülle, innen, auf der Rückseite des Berichtes für den Betreuer
Alle Exemplare des Schlussberichtes müssen komplett und termingerecht gemäss Angaben der
Studiengangleitung abgeben werden. Zusätzlich muss eine SD-Speicherkarte mit dem Bericht
(inkl. Anhänge), dem Poster und den Präsentationen, Messdaten, Programmen, Auswertungen,
usw.        unmittelbar      nach       der       Präsentation      abgeben      werden.
Die gesamte Dokumentation ist zudem gemäss Anweisungen der Studiengangleitung elektro-
nisch auf einen Server zu laden. Sämtliche abzugebende Teile der Dokumentation sind Be-
standteile                                 der                               Beurteilung.

Fachliteratur/Web-Links/Hilfsmittel

Geheimhaltungsstufe:                               Öffentlich

Verantwortlicher Dozent/Betreuungsteam, Industriepartner

Dozent                      Prof. Dr. Klaus Zahn                 klaus.zahn@hslu.ch

Industriepartner            Schweizer Paraplegiker-Zentrum

                     Kontakt via Prof. Dr. R. Abächerli (MT)

                         Prof.              Dr.                     R.                 Abächerli
                         roger.abaecherli@hslu.ch          Tel. +41 41 349 37 86
                                                                                 Seite 26 von 27
BAT HS20: Bildverarbeitung für Virtual Walk

Experte
                         Dr. Jürg Stettbacher
                         dsp@stettbacher.ch     Tel. +41 43 299 57 23

 Hochschule Luzern
 Technik & Architektur

 Prof. Dr. Klaus Zahn

                                                                    Seite 27 von 27
Sie können auch lesen