Bildverarbeitung für Virtual Walk - Ausgewählte studentische ...
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
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
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.
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.
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
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
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
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
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
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
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