Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op...

17
Practicum: deel 1 Hond zoekt Bal In het practicum Hond zoekt Bal laten we je kennis maken met de werking van supercomputers. We gebruiken daarvoor een applicatie waarmee met een webcam objecten herkend kunnen worden. De rekenkracht die daarvoor nodig is, wordt geleverd door supercomputers die op diverse plekken in Nederland staan opgesteld. In de demoversie van dit programma werd oorspronkelijk uitgegaan van het idee van de robothond die door middel van een camera in zijn neus objecten kon herkennen. Vandaar de titel voor dit practicum. In de door ons gebruikte demo verloopt het herkennen van beelden in feite in 2 fasen: 1. een leerfase: dit is de fase waarin we de computer vertellen wat voor soort object het is. Er wordt dus aangeleerd dat er bijvoorbeeld een bal bestaat en wat een bal is.

Transcript of Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op...

Page 1: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

Practicum: deel 1

Hond zoekt Bal In het practicum Hond zoekt Bal laten we je kennis maken met de werking van supercomputers. We gebruiken daarvoor een applicatie waarmee met een webcam objecten herkend kunnen worden. De rekenkracht die daarvoor nodig is, wordt geleverd door supercomputers die op diverse plekken in Nederland staan opgesteld.

In de demoversie van dit programma werd oorspronkelijk uitgegaan van het idee van de robothond die door middel van een camera in zijn neus objecten kon herkennen. Vandaar de titel voor dit practicum.

In de door ons gebruikte demo verloopt het herkennen van beelden in feite in 2 fasen:

1. een leerfase: dit is de fase waarin we de computer vertellen wat voor soort object het is. Er wordt dus aangeleerd dat er bijvoorbeeld een bal bestaat en wat een bal is.

Page 2: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

2

2. een herkenningsfase: dit is de fase waarin de computer de aangeleerde objecten kan herkennen. Als er een bal voor de webcam ligt, zal de computer melden dat het object een bal is.

In de loop van dit practicum zullen we dieper ingaan op beide fasen.

Na het openen van Ibis Deploy, dit is de omgeving waarmee we de applicatie launchen (opstarten), verschijnt het venster van de Ibis Deploy sciencelab-workspace:

Opdracht 1: Beweeg met je muis over de diverse cirkels die in de Experiment Editor te zien zijn. Elke cirkel vertegenwoordigt een locatie waar een supercomputer is opgesteld. In welke plaatsen staan supercomputers opgesteld? Noteer je antwoord op het antwoordenblad. Dit antwoordenblad tref je aan achter de tekst van het practicum.

Opdracht 2: In de Experiment Editor kun je in- en uitzoomen. In Amsterdam wordt een cirkel afgebeeld die is opgebouwd uit 3 verschillende taartpunten. Wat gebeurt er met deze cirkel als je uitzoomt en welke conclusie kun je daaraan verbinden?

Page 3: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

3

Naast het venster van de Experiment Editor staat het venster van de Experiment Monitor. In de Experiment Monitor staan een cirkeltje met een daarin de letter D (van Deploy).

Opdracht 3: Als je met de muis over dit cirketje beweegt, krijg je een IP-adres te zien. Noteer dit IP-adres. Zoek vervolgens via de url http://www.mijn-ip.net/ip_adres_achterhalen.asp uit wat het IP-adres is van de computer waar je Ibis Deploy op hebt gestart.

Achter het IP-adres staat bijvoorbeeld 4125. Dit is het poortnummer waar gebruik van gemaakt wordt. Deze poortnummers horen bij netwerkpoorten. Dit zijn softwarematige poorten die gebruikt worden voor het uitwisselen van diensten tussen diverse systemen of op een en hetzelfde systeem. Zo maakt het http-protocol standaard vaak gebruik van poort 80.

Boven het afgebeelde IP-adres staat Ibis Deploy @local. De omgeving Ibis Deploy werkt dus vanaf het werkstation met de vermelde IP-adres.

Onder de Experiment Editor staat een lijst waarin de plaatsen genoemd worden waar supercomputers staan opgesteld. Bovenaan staat Client en iets verderop Local-Server.

Opdracht 4: Klik op het driehoekje (play-knop) voor Client. Het driehoekje verandert in een vierkantje (stop-knop) en na een tijdje staat er achter Client bij job status en hub status deployed en wordt er een tweede scherm, de Ibis Object Recognition Client Demo, geopend.

Page 4: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

4

Opdracht 5: We plaatsen voor de webcam één van de beschikbare objecten. In ons geval is dat een kopje. Typ boven Teach de naam van het object in. In ons geval vermelden we dat het om een kopje gaat. Klik daarna op Teach. Welke melding krijg je?

Opdracht 6: Kun je verklaren waarom het niet mogelijk is om de computer aan te leren dat er een kopje voor de webcam staat?

De Client, deze Client draait op de locale machine waarachter je werkt, maakt gebruik van diensten van een server. Om objecten te kunnen herkennen zul je gebruik moeten maken van de rekenkracht die door een server geleverd kan worden. We gaan daarvoor in eerste instantie de rekenkracht van de lokale server gebruiken.

Page 5: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

5

Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local-Server. Na enige tijd staat er onder local bij job status en hub status deployed. Dat wil zeggen dat Ibis Deploy nu gebruik kan maken van de services (de rekenkracht) van de lokale pc waar we achter werken.

Opdracht 8: In de Experiment Monitor is er ook het een en ander veranderd.

Beweeg met je muis over de cirkeltjes met de letter I. Wat valt je op aan de IP-adressen van deze processen?

Page 6: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

6

Fase 1: de leerfase

We zijn nu in de fase beland waarin we de computer verschillende objecten gaan aanleren. In het venster van de Ibis Object Recognition Demo Client zien we onder Servers nu local staan.

Het woordje local kan drie verschillende kleuren hebben:

1. grijs: de server is nog niet geïnitialiseerd

2. zwart: de server is klaar voor gebruik, maar er wordt nog geen gebruik van gemaakt

3. groen: de server is klaar voor gebruik en er wordt gebruik van gemaakt.

Links onderaan zie je een gedeelte waar een grafiek kan worden weergegeven. Daarboven staat:

Webcam 9.8 fps Processed 0.0 fps.

De waarde achter de webcam geeft aan dat deze camera 9.8 frames per seconde vastlegt. Het getal zegt dus iets over de hoeveelheid foto’s die per seconde wordt gemaakt. Voor films wordt gewerkt met een framerate van 25 en 30. Achter Processed staat nu nog 0.0 fps. Dat komt omdat we de locale server die nu wel beschikbaar is, nog niet hebben ingeschakeld om beelden te gaan verwerken.

In de fase waarin we objecten gaan aanleren, wordt voor 1 videoframe een ingewikkelde berekening uitgevoerd die leidt tot een zogenaamde “ featurevector”. Een featurevector is een rij met getallen die als het ware een gecomprimeerde beschrijving is van wat in de videoframe te zien is. Elk object dat we willen aanleren krijgt een objectnaam of label mee. Deze naam (label) kan in combinatie met de featurevector worden opgeslagen in een database.

Opdracht 9: Klik nu in de lijst op het driehoekje voor Client. Door op het driehoekje voor local te klikken, activeer je de locale server. We kunnen nu dus gebruik gaan maken van de rekenkracht van de locale server voor het aanleren van objecten.

Page 7: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

7

We gaan de computer aanleren dat er zoiets als een kopje bestaat. In het geopende venster staat rechts bovenaan onder Servers local vermeld.

Nadat de server is geactiveerd, onder Servers verandert na het initialiseren het woordje local van kleur, zie je dat de locale server berichten gaat genereren. Bijvoorbeeld 14:53:00 local does not recognize this object. Er wordt nog geen object herkend. Dat is logisch, want we hebben nog geen object aan de database toegevoegd. Dat gaan we nu doen.

Opdracht 10: Plaats een object voor de webcam. In dit geval is dat een kopje. Vul vervolgens boven Teach de naam van het object in en klik op Teach. Als alles goed gaat, krijg je een bericht dat het object aangeleerd is.

Page 8: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

8

Onder messages zien we dat de locale server aangeeft dat we met een kopje te maken hebben. Onder Processed staat nu Database size 1 items. Er is dus één item aan de database toegevoegd.

Fase 2: de herkenningsfase Inmiddels zijn we in de tweede fase, namelijk de fase waarin objecten herkend worden, terecht gekomen. In de herkenningsfase wordt exact dezelfde berekening uitgevoerd over 1 videoframe. Nu wordt echter de resulterende featurevector niet met een label opgeslagen, maar wordt deze vergeleken met alle vectoren die al in de database bestaan. De opgeslagen featurevector die het meest lijkt op de featurevector van het te herkennen beeld wordt gezien als “match”. Als de gelijkenis met die “match” heel groot is, dan nemen we aan dat het om hetzelfde object gaat en kennen we aan de te herkennen videoframe het label toe van die meest gelijkende featurevector.

Opdracht 11: Welke waarde staat er nu achter Processed? Wat wil dat zeggen?

Opdracht 12: We plaatsen een tweede object (in ons geval een mandarijn) voor de webcam. Hoelang duurt het voordat de mandarijn als mandarijn wordt herkend? Kun je dat verklaren.

Page 9: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

9

Aangezien we geen opdracht hebben gegeven om aan te leren dat er zoiets als een mandarijn bestaat, zal de server blijven aangeven dat de mandarijn een kopje is. Pas nadat we verteld hebben dat de mandarijn een mandarijn is zal er onder messages daadwerkelijk komen te staan: local says this is a mandarijn.

Opdracht 13: Om een nieuw object (in ons geval dus een mandarijn) te kunnen herkennen zullen we er dus eerst voor moeten zorgen dat het object aan de database moet worden toegevoegd. Typ boven Teach de naam van het object in en klik op Teach. In ons geval een mandarijn, maar bij jullie zou dat ook iets anders kunnen zijn.

Het duurt een tijdje voordat het object door de locale server wordt herkend.

Opdracht 14: Hoeveel seconden zijn er ongeveer nodig voordat het nieuwe object aangeleerd is? Waaraan kun je dat zien?

Page 10: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

10

In dit practicum hebben we een kopje en een mandarijn als voorbeeld van objecten genomen. Tijdens de scienlab krijgen jullie vermoedelijk andere objecten in handen die je voor dit practicum kunt gebruiken. In de opdrachten moet je kopje en mandarijn dan ook vervangen door de namen van de objecten waarmee jullie aan de slag gaan.

Opdracht 15: Vervang het tweede object (de mandarijn) door het eerste object (het kopje). Hoeveel seconden zijn er ongeveer nodig voor de locale server het eerste object herkend?

Page 11: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

11

Practicum: deel 2

Tot nu toe hebben we alleen gebruik gemaakt van de rekenkracht van onze eigen computer. In dit practicum gaan we de rekenkracht van het DAS-cluster op de VU toevoegen. We gaan eens bekijken wat dat voor gevolgen heeft voor de snelheid waarmee nieuwe objecten aangeleerd en herkend kunnen worden.

Opdracht 16: activeer in de Ibis Deply – demo-workspace de server van de VU. Dit doe je door op het driehoekje voor VU-Server te klikken. Het driehoekje verandert wederom in een vierkantje. Na het intitialiseren krijg je ook hier de melding deployed onder job status en hub status. Dat kan een tijdje duren.

Opdracht 17: Ga vervolgens naar het venster met de beelden van de webcam en activeer de server van de VU. Wat staat er achter Processed? Kun je hiervoor een verklaring geven?

Page 12: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

12

In de Experiment Monitor zie je dat het cluster van de VU is toegevoegd. De server op de VU heeft in de Eperiment Monitor een andere kleur dan de Local Server. De VU-Server wordt in het venster weergegeven met een Hub met daarnaan verbonden 5 aparte cirkeltjes. Deze cirkels staan allemaal voor aparte processen waar de VU-server gebruik van maakt.

Opdracht 18: Leer een derde object aan. Hoeveel tijd is er nodig voordat het object aangeleerd is? Vergelijk je antwoord eens met het antwoord dat je gegeven hebt bij opdracht 11.

Opdracht 19: Plaats een ander object voor de webcam en klik op recognize. Kijk eens of er verschil is tussen hoelang de Server van de VU er over doet om het object te herkennen en hoelang de Local Server nodig heeft. Kun je een verklaring voor je antwoord geven?

Behalve de rekenkracht van de VU-Server kunnen we ook nog de rekenkracht van de Delft-Server, de Leiden-Server, de UvA-Server en de Multimedia-Server toevoegen.

Opdracht 20: activeer in de Ibis-Deploy sciencelab-workspace de genoemde servers.

Page 13: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

13

Opdracht 21: Voeg in het scherm van de Ibis Recognotion Demo Client de rekenkracht van de genoemde Servers toe aan de rekenkracht die we al tot onze beschikking hadden. Welke waarde staat er nu achter Processed?

Opdracht 22: Leer een nieuw object aan. Vergelijk de snelheid waarmee dit gaat nog maar eens met het aanleren van objecten waarbij alleen de rekenkracht van de locale server wordt gebruikt.

Opdracht 23: Deactiveer één of meerdere servers en bekijk het effect ervan op het aantal verwerkte frames per seconde.

Page 14: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

14

Page 15: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

15

Conclusie:

In dit practicum heb je gezien hoe de rekenkracht van supercomputers ingezet kan worden bij het herkennen van kleurgebaseerde objecten. Het algoritme wat we daarvoor gebruiken is op dit moment het best werkende algoritme en is onder perfecte (laboratorium)omstandigheden getest. In de echte wereld werkt het algoritme zeker niet perfect. Het gebruik van matige camera’s zorgt bijvoorbeeld voor veel ruis waardoor de objectherkenning niet altijd even soepel verloopt. In het practicum heb je gezien dat in de fase van het aanleren er voor 1 videoframe een ingewikkelde berekening wordt uitgevoerd die een featurevector, dit is een gecomprimeerde beschrijving van hetgeen in de videoframe te zien is, oplevert. Deze featurevectors worden opgeslagen in een database. In de herkenningsfase wordt voor het object dat voor de camera geplaatst, is nogmaals dezelfde berekening uitgevoerd over 1 videoframe. Het resultaat, een featurevector wordt nu niet opgeslagen in de database, maar vergeleken met de features die zich al in de database bevinden. De opgeslagen featurevector die het meest lijkt op de featurevector van het te herkennen beeld wordt gezien als 'match'. Als de gelijkenis met die 'match' heel groot is, dan nemen we aan dat het om hetzelfde object gaat - en kennen we aan de te herkennen videoframe het label toe van die meest gelijkende featurevector.

Page 16: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

16

Antwoordenblad practicum Hond zoekt Bal

1

2

3

4

5

6

7

8

9

10

11

12

Page 17: Practicum: deel 1 · 5 Opdracht 7: Klik in het scherm van de Ibis Deploy sciencelab-workspace op het driehoekje voor Local- Server. Na enige tijd staat er onder local bij job status

17

13

14

15

16

17

18

19

20

21

22

23