Thesis: ontwikkeling van een stereovisie systeem voor microchirurgie

advertisement
Departement Industriële
Ingenieurswetenschappen
Master in de industriële wetenschappen: Elektronica-ICT
afstudeerrichting Elektronica
Thesis: ontwikkeling van
een stereovisie systeem
voor microchirurgie
Masterproef voorgedragen tot
het behalen van de beroepstitel
van industrieel ingenieur.
Academiejaar 2011-2012
Door:
Jonathan Augustinus
Promotor hogeschool:
Toon Goedemé
Promotor bedrijf:
Emmanuel Vander Poorten
Koen Buys
ii
iii
iv
Departement Industriële
Ingenieurswetenschappen
Master in de industriële wetenschappen: Elektronica-ICT
afstudeerrichting Elektronica
Thesis: ontwikkeling van
een stereovisie systeem
voor microchirurgie
Masterproef voorgedragen tot
het behalen van de beroepstitel
van industrieel ingenieur.
Academiejaar 2011-2012
Door:
Jonathan Augustinus
Promotor hogeschool:
Toon Goedemé
Promotor bedrijf:
Emmanuel Vander Poorten
Koen Buys
vi
vii
School promotor:
Toon Goedemé,
Professor electronics and head of research cell EAVISE
EAVISE: Embedded and Applied Vision Engineering - www.eavise.be,
Campus DE NAYER, Lessius Mechelen, Associatie K.U.Leuven,
Jan De Nayerlaan 5, Sint-Katelijne-Waver, Belgium
VISICS - PSI -ESAT, K.U.Leuven,
Kasteelpark Arenberg 10 - bus 2441, 3001 Heverlee, Belgium
[email protected]
tel: +32-15 31 69 44 - Fax: +32 15 31 74 53
Bedrijf promotoren:
Professor Dominiek Reynaerts,
Dept. of mechanical engineering, division PMA, K.U. Leuven
Celestijnenlaan 300B, B-3001 Heverlee, Belgium
[email protected]
tel. +32 16 322640 of +32 16 322480
Emmanuel Benjamin Vander Poorten,
Postdoctoral Researcher,
Dept. of mechanical engineering, division PMA, K.U. Leuven
Celestijnenlaan 300B, B-3001 Heverlee, Belgium
[email protected]
tel: +32/(0)16.32.25.28
Koen Buys,
Doctoral Researcher,
Dept. of mechanical engineering, division PMA, K.U. Leuven
Celestijnenlaan 300B, B-3001 Heverlee, Belgium
[email protected]
tel: +32 16 32 80 59
viii
Voorwoord
Voor het behalen van de titel van industrieel ingenieur moest er een eindwerk gemaakt worden.
Dit zou niet mogelijk geweest zijn zonder de hulp en steun van vele mensen. Eerst en vooral
wil ik mijn twee promotoren, Toon Goedemé en Emmanuel Vander Poorten, bedanken voor al
hun hulp.
Ook dank aan Andy Gijbels voor het kalibratiebed en de hulp met de robot, Wesley Verheecke
voor het printen van het kalibratieparoon en Bert Augustinus voor de medische onderbouw van
deze thesis.
Last but not least wil ik mijn vriendin, Jolien Gysemans, bedanken voor de mentale steun en
vertrouwen.
x
xi
Abstract
Cannulatie van retinale venen is een veelbelovende oogheelkundige techniek ter behandeling
van RVO (retinale veneuze occlusie), een belangrijke oorzaak van slechtziendheid op oudere
leeftijd. Het aanprikken van retinale aders vergt een dermate precisie dat dit manueel niet
routinematig kan worden uitgevoerd. Dit maakt deze ingreep interessant voor robotchirurgie.
Vertrekkende van een klassieke opstelling van een oogheelkundige operatiemicroscoop en een
reeds ontwikkelde slave robot, wordt in dit werk bekeken hoe een beeldverwerkingssysteem
kan worden ontwikkeld om een dergelijke robotgesteunde interventie uit te voeren. Aanpassingen van het camerasysteem van de operatiemicroscoop worden besproken met focus op het
probleem van camerakalibratie. Uitgaande van een aderdetectiesysteem wordt bekeken hoe een
driedimensioneel beeld kan worden ogebouwd, hoe het traject van een chirurgische naald in het
oog kan worden gevolgd en hoe de beeldverwerking de robot kan aansturen. Experimenten met
een test-oog worden beschreven.
xii
xiii
English Abstract
Retinal vein cannulation is a promising technique in ophthalmic surgery for treating RVO (retinal vein occlusion), an important cause of visual loss in the elderly. Puncturing retinal veins
however has to be performed with such a degree of precision that it becomes very difficult to
routinely realise in a classical manual setting. This is why this type of intervention is interesting
for robot surgery. Starting from a classical setting of an ophthalmic operating microscope and
an already developed slave robot, this paper looks at possibilities to develop an image processing system to support such robot assisted procedures. Adjustments to the camera system of the
operating microscope are discussed, focusing on the problem of camera calibration. Starting
from a vein detection system, the creation of a three-dimensional image is looked at as well as
how tracking of the surgical needle can be realised an how the robot can be controlled by the
image processing device. Experiments with an artificial eye are being discussed.
xiv
Inhoudsopgave
1
2
Inleiding
1
1.1
Concrete doelstellingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2
Schets van een mogelijke computergesteunde interventie . . . . . . . . . . . .
3
1.3
Opbouw van deze tekst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Literatuurstudie
5
2.1
RVO: Retinale Veneuze Occlusie
. . . . . . . . . . . . . . . . . . . . . . . .
5
2.2
Beeldverwerkingsalgoritmes voor intra-oculaire toepassingen . . . . . . . . . .
6
2.2.1
6
Het detecteren van aders in het netvlies . . . . . . . . . . . . . . . . .
2.2.1.1
2.2.2
Detection of retinal blood vessels based on nonlineair projection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2.1.2
On the Adaptive Detection of Blood Vessels in Retinal Images
7
2.2.1.3
Hybrid Retinal Image Registration . . . . . . . . . . . . . .
8
2.2.1.4
Retinal Vessel Centerline Extraction Using Multiscale Matched Filters, Confidence and Edge Measures . . . . . . . . .
9
2.2.1.5
De Gabor filter . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.2.1.6
Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
Overzicht van een aantal algemeen bruikbare beeldverwerkingstechnieken 10
2.2.2.1
CCD - contracting curve density algoritme . . . . . . . . . .
11
2.2.2.2
Kleursegmentatie . . . . . . . . . . . . . . . . . . . . . . .
11
2.2.2.3
Hough transformatie . . . . . . . . . . . . . . . . . . . . . .
12
2.2.2.4
Background Subtraction . . . . . . . . . . . . . . . . . . . .
14
2.2.2.5
Template Matching . . . . . . . . . . . . . . . . . . . . . .
14
2.3
Visual Servoing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.4
Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
xvi
3
INHOUDSOPGAVE
Opbouw en kalibratie van een opstelling voor stereo-microscopie
17
3.1
Visualisatie tijdens intra-oculaire interventies . . . . . . . . . . . . . . . . . .
17
3.2
Uitbouw van de Leica M690 operatiemicroscoop tot een meetsysteem voor robotsturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.2.1
Bestaande opstelling . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.2.2
Uitgebouwde opstelling . . . . . . . . . . . . . . . . . . . . . . . . .
18
3.2.3
Verschillende types van camera’s . . . . . . . . . . . . . . . . . . . .
19
3.2.4
Ontwikkeling van testbed voor kalibratie . . . . . . . . . . . . . . . .
22
3.2.5
3D printen van het patroon . . . . . . . . . . . . . . . . . . . . . . . .
23
Principes van stereovisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.3.1
Cameramodellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
3.3.2
Niet-idealiteiten verantwoordelijk voor beeldvervorming/distortie . . .
25
3.3.2.1
Entrance pupil . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.3.2.2
Decentring distortion . . . . . . . . . . . . . . . . . . . . .
25
3.3.2.3
Variabele zoom en focus . . . . . . . . . . . . . . . . . . . .
25
3.3.3
Stereovisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.3.4
Stereovisie voor microscopie . . . . . . . . . . . . . . . . . . . . . . .
28
3.4
Camerakalibratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
30
3.5
Software voor interfacen en kalibratie van camera’s . . . . . . . . . . . . . . .
30
3.5.1
ROS (Robot Operating System) . . . . . . . . . . . . . . . . . . . . .
31
3.5.2
Camerakalibratie in ROS
. . . . . . . . . . . . . . . . . . . . . . . .
32
3.5.2.1
Verloop van het kalibratieproces . . . . . . . . . . . . . . .
32
3.5.2.2
Bepalen van de nauwkeurigheid van het kalibratiepatroon . .
33
3.5.2.3
Bepalen van de interne cameraparameters . . . . . . . . . .
34
3.5.2.4
Bepalen van de externe cameraparameters . . . . . . . . . .
35
3.5.2.5
Opbouw van het 3D-beeld . . . . . . . . . . . . . . . . . . .
35
Uitvoering van de kalibratie in ROS . . . . . . . . . . . . . . . . . . .
36
Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
37
3.3
3.5.3
3.6
4
Ontwikkeling van het beeldverwerkingssysteem
39
4.1
Detectie van aders in het netvlies van het oog . . . . . . . . . . . . . . . . . .
39
4.2
Het aanduiden van de in te spuiten ader op één camerabeeld . . . . . . . . . .
40
4.3
Het volgen van een chirurgische naald . . . . . . . . . . . . . . . . . . . . . .
41
4.4
Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
INHOUDSOPGAVE
5
6
Robotsturing gebaseerd op beeldverwerking
43
5.1
Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
5.2
Kalibratie van de robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
5.3
Uitgewerkte architectuur . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
5.4
Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
Experimenten
47
6.1
Testen aangaande het beeldverwerkingssysteem . . . . . . . . . . . . . . . . .
47
6.1.1
Testen van aderdetectie . . . . . . . . . . . . . . . . . . . . . . . . . .
47
6.1.2
Testen van het aanduiden van een ader . . . . . . . . . . . . . . . . . .
47
6.1.3
Testen van het volgen van een naald . . . . . . . . . . . . . . . . . . .
48
Testen van de aansturing van de slave robot . . . . . . . . . . . . . . . . . . .
49
6.2
7
xvii
Conclusie
Bibliografie
53
54
xviii
INHOUDSOPGAVE
Lijst van figuren
1.1
De netvlieschirurg kijkt door de microscoop . . . . . . . . . . . . . . . . . . .
2
1.2
Voorstelling van een robotgestuurde operatie . . . . . . . . . . . . . . . . . . .
2
1.3
Aangeduide ader op linker en rechter camerabeeld . . . . . . . . . . . . . . . .
3
1.4
Naalddetectie linker camerabeeld . . . . . . . . . . . . . . . . . . . . . . . . .
4
2.1
Retina rechteroog: normaal . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2
Retina rechteroog: RVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3
Testbeelden aders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.4
Detectie van aders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
2.5
Flowchart: Hybrid Retinal Image Registration
. . . . . . . . . . . . . . . . .
9
2.6
Testbeeld: aderdetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.7
Input beeld van Gabor-filter . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.8
Gefilterde beeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.9
CCD werking voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.10 RGB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.11 CMYK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.12 HSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.13 Hough transformatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.14 Background subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
2.15 Template Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.16 Camera−robot configuratie gebruikt bij visual servoing (van links naar rechts):
VM1 een enkele gemonteerde camera, VM2 een afzonderlijke camera, VM3
stereo−camera setup op een robot, VM4 een afzonderlijke stereo−camera setup
VM5 een redundant camera systeem. . . . . . . . . . . . . . . . . . . . . . . .
15
3.1
Openingen in het oog voor de vitrectomie . . . . . . . . . . . . . . . . . . . .
18
3.2
Cannulatie van een retinale ader . . . . . . . . . . . . . . . . . . . . . . . . .
19
xx
LIJST VAN FIGUREN
3.3
Het EIBOS-systeem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
3.4
Leica M690 microscoop voor aanpassingen . . . . . . . . . . . . . . . . . . .
20
3.5
Prosilica GC1290C camera . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.6
Leica M690 microscoop met aanpassingen . . . . . . . . . . . . . . . . . . . .
22
3.7
Kalibratiebed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
3.8
60 micron baantjes door 3D-printer . . . . . . . . . . . . . . . . . . . . . . . .
23
3.9
Het print proces van de aerosol jet printer . . . . . . . . . . . . . . . . . . . .
24
3.10 Het pinhole cameramodel . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
3.11 Vervorming van camerabeeld . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
3.12 Stereovisie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
3.13 Dispariteit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
27
3.14 Diepteresolutie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.15 Principetekening microscoop . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
3.16 Voorbeeld kalibratieproces . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
3.17 Testbeeld met microscoop . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32
3.18 Standen voor kalibratiepatroon . . . . . . . . . . . . . . . . . . . . . . . . . .
33
3.19 Nauwkeurigheid kalibratiepatroon . . . . . . . . . . . . . . . . . . . . . . . .
34
3.20 3D-geprint kalibratiepatroon . . . . . . . . . . . . . . . . . . . . . . . . . . .
35
4.1
Beeld van het test−oog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
4.2
Aderdetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
40
4.3
Aangeduide ader op linker en rechter camerabeeld . . . . . . . . . . . . . . . .
40
4.4
Naalddetectie na kleursegmentatie . . . . . . . . . . . . . . . . . . . . . . . .
41
4.5
Naalddetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
5.1
Voorbeeld assenstelsel transformatie . . . . . . . . . . . . . . . . . . . . . . .
44
5.2
Regelsysteem robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
44
5.3
DC−motor met encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
45
5.4
Inlezen afstanden in labview . . . . . . . . . . . . . . . . . . . . . . . . . . .
46
6.1
Beeld van het test−oog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
6.2
Aderdetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
6.3
Aderdetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
48
6.4
Slechte detectie van de naald . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
LIJST VAN FIGUREN
xxi
6.5
Goede detectie van de naald . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
6.6
Naalddetectie zonder naald . . . . . . . . . . . . . . . . . . . . . . . . . . . .
50
6.7
Naalddetectie met naald . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
51
xxii
LIJST VAN FIGUREN
Lijst van tabellen
3.1
Fabrikanten van camera’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
3.2
Specificaties camera’s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
3.3
Resultaten kalibratie linker camera . . . . . . . . . . . . . . . . . . . . . . . .
37
3.4
Resultaten kalibratie rechter camera . . . . . . . . . . . . . . . . . . . . . . .
38
3.5
Resultaten stereo-kalibratie . . . . . . . . . . . . . . . . . . . . . . . . . . . .
38
6.1
Testen aderaanduiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
6.2
Testen naalddetectie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
xxiv
LIJST VAN TABELLEN
Hoofdstuk 1
Inleiding
Het doel van deze thesis is om beeldverwerkingstechnieken te ontwikkelen ter ondersteuning
van uiterst preciese robotgestuurde oogoperaties. Het gaat hierbij over een specifieke ingreep ter
behandeling van retinale veneuze occlusies waarbij klonteroplossende medicatie (TPA) rechtstreeks in een verstopte, microscopisch fijne, ader van het netvlies dient te worden geïnjecteerd.
De medische benaming voor deze interventie is “retinale cannulatie”.
Op de afdeling PMA van het departement werktuigkunde van de KU Leuven werd reeds een
master-slave robot ontwikkeld om dit type van ingreep te ondersteunen. De robot kan via een
incisie in het oog, gemaakt door de chirurg, met een joystick vanop afstand een naald in het oog
bewegen en de uiterst fijne aders van de retina aanprikken.
Het oorspronkelijk doel van de thesis is het ontwikkelen van beeldverwerkingstechnieken om
de robotgestuurde naald t.o.v. het oog te localiseren en op basis hiervan extra veiligheidsvoorzieningen en assistentie tijdens operaties te programmeren. Detectie van aders, geleiding naar
aders toe en schatten van interactiekracht op basis van beeldverwerking zijn een aantal mogelijke toepassingen.
Om de retinale vaten in het oog in beeld te brengen maken we gebruik van een operatiemicroscoop. Bij de gangbare intra-oculaire operaties kijkt de chirurg door de oculairen van de
microscoop tijdens de ingreep naar het netvlies en geleidt hij/zij manueel de micro-instumenten
in het oog. De kleinste aders in het netvlies zijn ongeveer 10 micron dik. Manueel aanprikken
van deze aders is uitermate moeilijk vermits de chirurg geen feedback krijgt over de diepte van
de naald en hij ook niet nauwkeurig genoeg kan werken door een onvermijdelijke mate van
fysiologische tremor (trillingen van de hand).
Figuur 1.1 en figuur 1.2 geven het verschil weer tussen een manueel uitgevoerde operatie en
robotgestuurde operatie.
Om de chirurg toe te laten vanop afstand via de master-slave robot de interventie uit te voeren,
moeten hem de oorspronkelijke beelden, gegenereerd via de microscoop, op een alternatieve
manier kunnen worden aangeboden. De beschikbare microscoop werd uitgerust met twee camera’s. De twee camera’s produceren elk een beeld. Deze beelden komen overeen met wat de
chirurg door elk oog zou zien bij rechtstreeks kijken door de oculairen van de microscoop. Door
combinatie van de twee beelden beschikken we over diepte-informatie die kan gebruikt worden
2
Inleiding
Figuur 1.1: De netvlieschirurg kijkt door de microscoop
Figuur 1.2: Voorstelling van een robotgestuurde operatie
om een fijne naald te localiseren alsmede de aders van het netvlies. Door de beeldverwerking te
linken met de regelaar van de robot moet het mogelijk zijn de robot te stabiliseren en te geleiden
en zo de veiligheid van de interventie te verhogen. Een bijkomende opgave is het compenseren
van oog- en hoofdbewegingen van de patiënt.
1.1 Concrete doelstellingen
1.1
3
Concrete doelstellingen
De hoofddoelstelling van de thesis is om aan de hand van beeldverwerking de chirurg te helpen
om de naald, die in het oog gebracht wordt, te volgen en feedback te geven over de afstand
tussen de naald en het netvlies. Om de diepte van de naald in het oog te kennen, moet er een
3D-beeld van de binnenkant van het oog opgebouwd worden.
Bij de daadwerkelijke uitvoering van deze thesis komen volgende elementen aan bod:
• Hoe kunnen aders in het netvlies van het oog gedetecteerd worden ?
Dit kan helpen om de in te spuiten ader beter te visualiseren.
• Hoe kan het 3D-beeld bekomen worden?
• Hoe kan het traject van een chirurgische naald gevolgd worden ?
• Hoe de kennis uit de beeldverwerking te gebruiken om de robot aan te sturen ?
1.2
Schets van een mogelijke computergesteunde interventie
Een computergesteunde interventie zou als volgt kunnen verlopen:
1. De chirurg bekijkt voorafgaandelijk aan de operatie eerst de ogen van de patiënt en markeert op de digitale abeelding van het oog de plaats van de in te spuiten ader.
2. Het systeem onthoudt de coördinaten aangegeven door de chirurg en extraheert de ader
op het netvlies die overeenkomt met de aangeduide locatie.
De plaats van de aangeduide ader wordt weergegeven op figuur 1.3.
Figuur 1.3: Aangeduide ader op linker en rechter camerabeeld
3. De patiënt wordt onder de operatiemicroscoop gelegd.
4
Inleiding
4. De chirurg gaat dan de injectienaald manueel door de oogwand in het oog brengen tot
deze door de camera’s gedetecteerd wordt. Figuur 1.4 geeft de detectie van de punt van
de naald weer. Dit gebeurt normaal op zowel het linker als het rechter camerabeeld.
Figuur 1.4: Naalddetectie linker camerabeeld
5. Aan de hand van de kalibratieparameters van de twee camera’s, uitgelegd in sectie 3.5.2,
gaat dan de 3D coördinaat van de aangeduide ader en de punt van de naald bepaald kunnen
worden.
6. Aan de hand van deze twee coördinaten kan dan de afstand tussen de naald en de ader
worden berekend.
7. Deze afstand gaat dan doorgestuurd worden naar de slave robot en deze zal de naald dan
naar de gewenste positie bewegen.
Dit werk onderzoekt de mogelijkheid of aan de hand van beeldverwerking en enkele kleine
interventies van een chirurg dit type operatie uitvoerbaar is.
1.3
Opbouw van deze tekst
In de literatuurstudie worden verschillende beeldverwerkingstechnieken uitgelegd. In hoofdstuk 3 worden al de elementen om een stereo camerasysteem te gebruiken en te begrijpen uitgelegd met focus op camerakalibratie. De opbouw van het beeldverwerkingssysteem wordt
uiteengezet in hoofdstuk 4. In hoofdstuk 5 wordt dieper ingegaan op de noodzakelijke aanpassingen om de bestaande robot-infrastructuur te interfacen met het beeldverwerkingssysteem. In
een laatste hoofdstuk worden de uitgevoerde experimenten beschreven.
Hoofdstuk 2
Literatuurstudie
Deze literatuurstudie bespreekt de achtergrond en technieken die nodig zijn voor een goed begrip van deze thesis.
In eerste instantie wordt de oogkwaal waarmee de thesis verband houdt toegelicht (sectie 2.1).
Vervolgens worden enkele algoritmes voor aderdetectie besproken (sectie 2.2.1). Aderdetectie
is nuttig om de ader die de chirurg wil aanprikken beter te visualiseren. Aansluitend komen er
nog enkele mogelijke technieken aan bod om een chirurgische naald te kunnen volgen in het
oog en een ader terug te vinden in beide camerabeelden (sectie 2.2.2). Ten slotte wordt het
principe van “visual servoing” uitgelegd (sectie 2.3).
2.1
RVO: Retinale Veneuze Occlusie
Hieronder volgt een medische toelichting, geschreven door Dr B.Augustinus, oogarts.
De retina of het netvlies is de structuur van het oog die verantwoordelijk is voor de captatie
van visuele informatie en de transmissie hiervan naar de hersenen. Het wegvallen van de retinale functie geeft aanleiding tot onomkeerbare blindheid of slechtziendheid. De retina heeft een
complex bevloeiingssysteem met een netwerk van aanvoerende (slagaders of arteries) en afvoerende vaten (aders of venen). Een retinale veneuze occlusie (RVO) is een belangrijke oorzaak
van plots visusverlies in de oudere bevolkingsgroep ( > 55 jaar). De oorzaak is trombusvorming
(aderverkalking) in de retinale venen, teweeggebracht door hart- en vaatziekten (hoge bloeddruk, suikerziekte, hoge cholesterol). Het dichtslibben van de retinale venen gaat gepaard met
retinale bloedingen, lekkage van bloedvaten met oedeemvorming en ischemie (zuurstofnood)
van het netvlies. Dit alles kan leiden tot vaak onomkeerbaar verlies van gezichtsvermogen. Een
afdoende behandeling voor de veneuze occlusies is er tot nog toe niet. Klonteroplossende medicatie (TPA: tissue plasminogen activator) blijkt onder andere uit experimenten met proefdieren
een mogelijke behandeling te kunnen zijn. Het zeer fijne kaliber van de retinale vaten vormt
evenwel een belemmering om de medicatie ter plaatse te kunnen brengen. Robotchirurgie zou
hier een oplossing kunnen bieden.
Figuren 2.1 en 2.2 geven het verschil weer tussen een gezond netvlies en een netvlies met
RVO.
6
Literatuurstudie
Figuur 2.1: Retina rechteroog: normaal
2.2
Figuur 2.2: Retina rechteroog: RVO
Beeldverwerkingsalgoritmes voor intra-oculaire toepassingen
Het gebruik van beeldverwerkingsalgoritmes ter ondersteuning van robot/computer geassisteerde procedures kent een toenemende populariteit. Ook in oogchirurgie en met name intraoculaire toepassingen werden in het verleden reeds een aantal interessante algoritmes ontwikkeld. Hieronder worden enkele artikels besproken over de detectie van aders in retinale beelden.
Een tweede deel bespreekt enkele veelgebruikte beeldverwerkingstechnieken die gebruikt kunnen worden voor ondermeer het real-time volgen van een instrument op camerabeelden. Beide
elementen zijn nodig om ’visual servoing’ technieken toe te passen ter ondersteuning van retinale ader cannulatie.
2.2.1
Het detecteren van aders in het netvlies
2.2.1.1
Detection of retinal blood vessels based on nonlineair projection
Deze aderdetectie-techniek wordt uitgebreider uitgelegd in referentie [1].
Hier bestaat de detectie uit twee delen:
• De segmentatie van het adernetwerk
• Het volgen van één enkele ader
Er worden verschillende technieken toegepast om de aders uit de beelden te halen. Dit gebeurt door het classificeren van elke pixel op basis van lokale eigenschappen. Hiervoor worden
matched filters, edged based methodes, local adaptive thresholding, wavelet transform en morphological filtering gebruikt.
Uit de geclassificeerde pixels moeten de aders dan gevisualiseerd worden. Dit gebeurt door
manueel of automatisch een beginpunt van een ader aan te wijzen waardoor het algoritme dat
adersegment gaat volgen tot aan het einde van de ader en dit voor elke ader. De automatische
versie gebruikt het fuzzy K-means algoritme om het beeld in delen met een gelijkaardige kleur
te verdelen en hiermee wordt dan de volgende zoeklocatie gezocht. Het volgen van de ader
gebeurt door een kalman-filter [2]. De werking van de filter verloopt als volgt. De filter gaat
ruis wegfilteren uit de afbeelding en gaat de geclassificeerde punten met elkaar verbinden tot
2.2 Beeldverwerkingsalgoritmes voor intra-oculaire toepassingen
7
Figuur 2.3: Testbeelden aders
Figuur 2.4: Detectie van aders
een lijn. De punten die te hard afwijken worden niet als ader beschouwd. Hierdoor kunnen
bloedplekken op beelden weggewerkt worden zodat enkel de aders te zien zijn. Figuur 2.3 en
figuur 2.4 geven de werking van dit algoritme weer.
2.2.1.2
On the Adaptive Detection of Blood Vessels in Retinal Images
Deze aderdetectie-techniek wordt uitgebreider uitgelegd in referentie [3]. Deze techniek bestaat
uit 3 delen:
• het contrast van de beelden verbeteren
• het classificeren van pixels
• het vinden van de aders
Bij deze techniek gaat men eerst de beelden verbeteren door het contrast te vergroten. Dit wordt
gedaan door histogramequalisatie. Hierdoor worden de kleuren in een afbeelding gelijkmatiger
verdeeld over het ganse kleurbereik. Dit heeft een gunstig effect op de detectie van kleinere
aders. Vertrekkende van een initieel punt gaat men vervolgens het verdere verloop van de aders
opbouwen. Dit wordt gerealiseerd door een combinatie van filters zoals hierboven eveneens
8
Literatuurstudie
wordt geïllustreerd. Parametrische Gaussische kernels, twin Gaussian of Gaussian-achtige templates worden gebruikt. De filters worden toegepast op enkel het groene deel van het kleurbeeld.
Hierdoor blijft er een grijswaardebeeld over. Dan worden de pixels van dit grijswaardebeeld gegroepeerd tot een beeld met een beperkt aantal niveaus. Aan de hand van de globale en de lokale
eigenschappen van dit beeld kan men de aders detecteren. Naarmate de aders, op het originele
beeld, kleiner worden zal de kwaliteit ervan afnemen en de detectie hiervan moeilijker zijn. De
beschreven techniek is echter in staat zowel kleine als dikkere aders te detecteren.
2.2.1.3
Hybrid Retinal Image Registration
Deze aderdetectie-techniek wordt uitgebreider uitgelegd in referentie [4].
Dit algoritme moet de vroegtijdige behandeling van diabetische retinopathie mogelijk maken.
Hier gaat men gebruik maken van een combinatie van twee technieken, de oppervlaktegebaseerde techniek en de feature-based techniek. De oppervlaktegebaseerde techniek gaat vooral
gebruikmaken van de intensiteit van de pixels en van enkele geoptimaliseerde objectfuncties zoals de least mean square error, cross correlatie, fasecorrelatie of feature informatie. De featurebased techniek is gelijkaardig aan de manuele registratie. Men gaat er eerst vanuit dat er overeenkomsten zijn tussen twee beelden. Het registratieproces zal deze gevonden overeenkomsten
maximaliseren.
Het hybride algoritme bestaat uit vier stappen:
• Eerst worden de aders gedetecteerd door gebruik te maken van een lokale entropiegebaseerde threshold techniek.
• Vervolgens wordt er een eerste-orde translatie geschat door het maximaliseren van de
gemeenschappelijke informatie gebaseerd op het binaire beeldpaar.
• Dan wordt de kwaliteit van de afbeelding beoordeeld met betrekking tot de vroegtijdige
behandeling van diabetische retinopathie. Dit wordt gedaan op basis van het translatiemodel.
• Wanneer het beeldpaar geaccepteerd wordt zullen hogere-orde transformaties toegepast
worden. Twee dergelijke transformaties worden gebruikt: mijlpaal punten zoals vertakpunten van de aders en sample punten. Deze zorgen voor een affiene/kwadratische schatting van het model.
• Drie empirische condities worden experimenteel afgeleid om het verloop van het algoritme te controleren om zo weinig mogelijke registratiefouten en de hoogste kans op
succes te hebben.
Figuur 2.5 geeft de flowchart weer van de opbouw van dit algoritme.
2.2 Beeldverwerkingsalgoritmes voor intra-oculaire toepassingen
9
Figuur 2.5: Flowchart: Hybrid Retinal Image Registration
2.2.1.4
Retinal Vessel Centerline Extraction Using Multiscale Matched Filters, Confidence and Edge Measures
Deze aderdetectie-techniek wordt uitgebreider uitgelegd in referentie [5]. Deze paper behandelt
drie voorname problemen bij aderdetectie.
• De breedte van de aders is niet constant
• Aders kunnen een heel laag contrast hebben, voornamelijk de kleinste aders
• Er kunnen zich verschillende structuren voordoen in het beeld zoals bv.ziektes, het samenvloeien van de aders, ...
Hiervoor hebben ze een multi-scale matched filter voor aders ontworpen. Het resultaat van de
matched filter wordt vergeleken met een nieuwe vertrouwde meting van een ader. Dit geeft dan
een aanduiding van hoe dicht de betrokken regio overeenkomt met dit van een ideaal aderprofiel
onafhankelijk van de amplitude. Hierbij worden dan edge detectie responsies en vertrouwde
waarden toegevoegd van de grens van de veronderstelde ader. Deze meting vormt dan een
vector met 6 vrijheidsgraden per pixel. Vervolgens wordt er een leertechniek gebruikt om van
deze vector een mapping te maken van de waarschijnlijkheid van het aderig zijn van een pixel.
Hierdoor krijgt men een idee van elke pixel en kan men deze informatie gebruiken voor de
segmentatie van ader pixels, de detectie van pixels in het midden van de aders en de breedte
van de aders. We gebruiken de middens van de aders omdat hierbij de response maximaal zal
zijn. Dit geeft een compactere, geometrische beschrijving van de aders dan bij segmentatie
alleen. Figuur 2.6 geeft van links naar rechts het input beeld, het beeld met de kandidaten van
de mogelijke aders en de uiteindelijke output weer.
10
Literatuurstudie
Figuur 2.6: Testbeeld: aderdetectie
Figuur 2.7: Input beeld van Gabor-filter
2.2.1.5
Figuur 2.8: Gefilterde beeld
De Gabor filter
De Gabor-filter is een filter die voor allerhande toepassingen zoals edge-detection, texture feature extraction en contour extraction kan gebruikt worden [6]. Referentie [7] geeft de link weer
van een web-applicatie waarin de toepassing van een Gabor-filter wordt gedemonstreerd en uitgelegd. Figuur 2.7 geeft de niet gefilterde afbeelding weer en figuur 2.8 geeft de afbeelding
weer na toepassing van de Gabor-filter die aanwezig is op deze website.
2.2.1.6
Conclusie
Het grote aanbod aan onderzoeken die te maken hebben met het beter visualiseren van retinale aders geeft aan dat er in de medische wereld veel intresse is voor deze algoritmes. Deze
algoritmes kunnen ook heel nuttig zijn om de diagnose van ziektes te vergemakkelijken.
2.2.2
Overzicht van een aantal algemeen bruikbare beeldverwerkingstechnieken
Het volgen van een fijne naald in het oog geeft aanleiding tot verschillende problemen. Aangezien de naald van bovenaf belicht wordt, zal er tijdens een operatie op de camerabeelden
schaduwvorming van de naald optreden. Ook zal er reflectie ontstaan omdat de naald een heel
glanzend oppervlakte heeft. Om deze reden zal de naald veel minder zichtbaar zijn in de camerabeelden. Ook de aanduiding van hetzelfde punt van een ader in twee verschillende camerabeelden levert een probleem op. In deze sectie worden enkele beeldverwerkingstechnieken
besproken om deze problemen aan te pakken.
2.2 Beeldverwerkingsalgoritmes voor intra-oculaire toepassingen
2.2.2.1
11
CCD - contracting curve density algoritme
Dit is een algoritme dat zonder markeerpunten voorgedefinieerde objecten kan detecteren en
volgen [8] [9]. In de literatuur vindt men veel algoritmes terug die gebruik maken van ofwel
louter kleurinformatie, ofwel kleurinformatie samen met kennis van de vorm van het instrument.
Bij dit algoritme heeft men enkel de vorm van het voorwerp nodig. Eerst maakt men een model
aan van het voorwerp dat men wil zoeken. Dit model gaat dan in de beelden zoeken naar
voorwerpen die op dit model gelijken en het model er steeds beter aan aanpassen. Dit kan je
aanzien als een betere vorm van template matching maar hier heeft de schaal van het voorwerp
en zijn positie geen belang. Figuur 2.9 geeft weer hoe dit proces verloopt.
Figuur 2.9: CCD werking voorbeeld
2.2.2.2
Kleursegmentatie
Hierbij is het de bedoeling om enkel te gaan kijken naar de kleuren die voorkomen in de beelden. Mits de naald een heel andere kleur heeft dan de rest van het netvlies zou de naald hierdoor
vrij gemakkelijk uit het beeld gehaald kunnen worden. Op het bekomen beeld zal enkel de naald
te zien moeten zijn.
Men kan bij kleursegmentatie verschillende voorstellingswijzen gebruiken om kleuren te segmenteren:
(a) RGB: Red Yellow Blue
Hierbij wordt een kleur voorgesteld als een combinatie van de drie additieve primaire kleuren. Om een bepaalde kleur te bekomen, moet aan elke primaire kleur een getal worden
toegewezen. Figuur 2.10 geeft dit model weer.
(b) CMYB: Cyan Magenta Yellow and Black
Dit is het kleurmodel dat gebruikt wordt bij printers. Hierbij worden deze kleuren gemengd
om de te printen kleur te bekomen. Men spreekt hier van een subtractive color model.
Figuur 2.11 geeft dit model weer.
12
Literatuurstudie
Figuur 2.10: RGB
Figuur 2.11: CMYK
(c) HSV: Hue Saturation Value
Dit is een model dat gebruikt wordt om kleuren te beschrijven. De Hue geeft de kleur
weer. De Saturation (S) geeft de verzadiging of de hoeveelheid, felheid van een kleur weer.
De Value geeft de intensiteit of lichtheid van de kleur weer. Het model wordt voorgesteld in
figuur 2.12. Dit model wordt vooral gebruikt bij computergebaseerd grafisch ontwerp. De
ontwerper kan dan eerst de kleur kiezen en dan aan de hand van de saturatie en de Value de
tint aanpassen.
2.2.2.3
Hough transformatie
De Hough transformatie is een algoritme dat ondermeer gebruikt wordt om lijnen en cirkels te
detecteren [10]. Het algoritme gebruikt de resultaten van een lijndetectie-filter om zo lijnen of
cirkels in een afbeelding te vinden.
2.2 Beeldverwerkingsalgoritmes voor intra-oculaire toepassingen
13
Figuur 2.12: HSV
De linkse afbeelding van figuur 2.13 geeft de parametrische voorstelling van een lijn in het
camera domein. De rechtse afbeelding van figuur 2.13 geeft de voorstelling van deze lijn weer
in het Hough domein. In de linkse afbeelding wordt een lijn weergegeven als een rechte die de
twee punten (x, y) en (u, v) snijdt.
In de rechtse afbeelding wordt een lijn weergeven door het snijpunt van twee of meerdere bogen. Het aantal bogen die eenzelfde punt snijden geeft aan hoeveel punten er op dezelfde lijn
liggen.
Figuur 2.13: Hough transformatie
ρ = de afstand in pixels ten opzichte van de linker onderhoek van de afbeelding
θ = de hoekverdraaiing ten opzichte van de x-as
De bogen worden weergegeven door formule (2.1).
punt 1 : xcos(θ ) + ysin(θ )
punt 2 : ucos(θ ) + vsin(θ )
(2.1)
14
Literatuurstudie
Beschrijving van de lijndetectie van de Hough-transformatie:
De Hough-transformatie gaat in tegenstelling to een normaal lijndetectie-algoritme ook aangeven hoeveel punten er op deze lijn liggen. Hierdoor gaat men een beter beeld hebben van welke
lijnen ook echt lijnen zijn en welke niet moeten worden weergegeven.
2.2.2.4
Background Subtraction
Background subtraction is een methode die gebruikt wordt om de voorgrond en de achtergrond
van een afbeelding te scheiden [11]. Dit wordt meestal toegepast wanneer de camera vastgemonteerd staat. In het eenvoudigste geval zal de camera altijd dezelfde achtergrond filmen.
Hierbij kan je een afbeelding maken van deze achtergrond en kijken wat het verschil is met
wat de camera nadien filmt. Wanneer er dan iets verandert in het beeld gefilmd door de camera, zal enkel dit weergegeven worden. Dit wordt dan de voorgrond genoemd. Er bestaan ook
complexere methodes waarbij de achtergrond verandert. Bij die methodes zal de achtergrond
continu aangepast moeten worden aan de omgeving. Figuur 2.14 geeft een voorbeeld van de
eenvoudige methode van backgroundsubtraction.
Figuur 2.14: Background subtraction
2.2.2.5
Template Matching
Met deze techniek kan er gekeken worden hoeveel één beeld op een ander beeld gelijkt [12].
Men kan bijvoorbeeld een stuk uit een afbeelding vergelijken met een andere afbeelding om te
weten waar dit stuk overeenkomt in het andere beeld. Figuur 2.15 geeft een voorbeeld van deze
techniek.
2.3
Visual Servoing
Visual servoing is de benaming voor het gebruik van camera’s als feedback om de positionering
van robots en andere machines nauwkeuriger te maken [13] [14]. Het voordeel hiervan is dat
2.3 Visual Servoing
15
Figuur 2.15: Template Matching
het om een feedback gaat die niet contactueel gebeurt. Omdat er geen sensoren in het oog geplaatst kunnen worden om de naald te volgen, is het gebruik van visual servoing heel nuttig om
de positie van de naald te kennen en eveneens de afstand tot een ader in het oog. Hierdoor zal
de beweging van de naald gestuurd kunnen worden aan de hand van de camerabeelden. Figuur
2.16 geeft de mogelijke configuraties weer om aan visual servoing te doen.
Figuur 2.16: Camera−robot configuratie gebruikt bij visual servoing (van links naar rechts): VM1 een
enkele gemonteerde camera, VM2 een afzonderlijke camera, VM3 stereo−camera setup op een robot,
VM4 een afzonderlijke stereo−camera setup VM5 een redundant camera systeem.
Bij de verschillende opstellingen is het noodzakelijk dat er een tranformatie gedaan wordt tussen
de verschillende assenstelsels. Hierbij gaat het over een transformatie van de positie van de
eind-effector in het robot-assenstelsel naar het camera-assenstelsel. De algemene voorstelling
van deze transformatie wordt voorgesteld in formule (2.2).
Pc = R · Pr + T
(2.2)
In deze formule is Pc een punt in het camera-assenstelsel en Pr het overeenkomstige punt in het
robot-assenstelsel. De transformatie gebeurt door Pr te vermenigvuldigen met de rotatiematrix
R en hierbij de translatiematrix T op te tellen om zo het punt Pc te bekomen.
16
2.4
Literatuurstudie
Besluit
Het onderzoeken van de verschillende beeldverwerkingstechnieken, besproken in het vorige
hoofdstuk, heeft geholpen bij het vormen van een idee over de uiteindelijk uitwerking van het
beeldverwerkingssysteem.
Hoofdstuk 3
Opbouw en kalibratie van een opstelling
voor stereo-microscopie
Het vorige hoofdstuk gaf aan welke algoritmes kunnen worden gebruikt en welke aanpak mogelijk is om de robot m.b.v beeldverwerking een cannulatietaak te laten uitvoeren. In dit hoofdstuk
bespreken we hoe we aan de beelden komen die hiervoor gebruikt kunnen worden. Na een korte
uitleg over visualisatie tijdens normale microchirurgische ingrepen in het oog (sectie 3.1), bespreekt dit hoofdstuk de uitbouw van een digitale opstelling voor stereo-microscopie (sectie 3.2
en 3.3) en de kalibratie ervan voor toepassing van beeldverwerkingsalgoritmes (sectie 3.4 en
3.5).
3.1
Visualisatie tijdens intra-oculaire interventies
Hieronder volgt een medische toelichting, geschreven door Dr B.Augustinus, oogarts.
De klassieke chirurgische benadering van het netvlies is via de zogenaamde “pars plana vitrectomie”. De ingreep kan gebeuren onder lokale “retrobulbaire” verdoving of onder algemene
narcose. Met de patiënt in liggende positie wordt, met behulp van de vergroting van de binoculaire operatiemicroscoop, eerst het slijmvlies rond het oog geopend. Vervolgens worden drie
kleine openingen van minder dan één millimeter gemaakt in de harde oogrok, vlak naast het
hoornvlies (ter hoogte van de “pars plana” ). Figuur 3.1 geeft deze verschillende openingen
tijdens de operatie weer [15]. In deze openingen worden fijne trocards bevestigd. Een eerste
opening wordt gebruikt om een vochtinfuus aan te leggen, noodzakelijk om tijdens de operatie
een stabiele druk in het oog te genereren. Via opening 2 kan een lichtfiber worden ingebracht
om het oog van binnenuit te belichten. Opening 3 wordt gebruikt om zeer fijne instrumenten
het oog in te brengen. Via deze laatste toegang kan bvb een cannulatienaald manueel worden
ingebracht om een retinale ader aan te prikken en medicatie in te spuiten. Figuur 3.2 geeft
weer hoe een adercannulatie zou gebeuren. Om het netvlies mooi in beeld te brengen wordt gebruik gemaakt van een breedbeeld voorzetlens welke bvb met een EIBOS-systeem [16], zoals
weergegeven in figuur 3.3, aan de operatiemicroscoop kan worden gekoppeld.
18
Opbouw en kalibratie van een opstelling voor stereo-microscopie
Figuur 3.1: Openingen in het oog voor de vitrectomie
3.2
3.2.1
Uitbouw van de Leica M690 operatiemicroscoop tot een
meetsysteem voor robotsturing
Bestaande opstelling
De aanwezige binoculaire operatiemicroscoop (Leica M690) is uitgerust met een camera en een
meekijker voor de assistent. Aan de microscoop hangt een voetpedaal die zowel de zoom als de
hoogte van de microscoop kan regelen. De zoom is instelbaar van 1x tot 36x. De stand van de
zoom kan enkel afgelezen worden op een ronddraaiende schijf met getallen op. Aangezien de
exacte stand van de zoom op deze manier niet digitaal kan worden uitgelezen, kan deze niet door
de beeldverwerking gebruikt worden. Er is eveneens een bedieningspaneel aanwezig waarmee
de sterkte van de lichtbron van de microscoop, de snelheid van de sturing voor de zoom en de
hoogte van de microscoop kan worden geregeld. Figuur 3.4 geeft de originele microscoop weer
alvorens er aanpassingen op aangebracht zijn.
3.2.2
Uitgebouwde opstelling
Door testen te doen met de bestaande microscoopopstelling bleek dat de meekijker en de camera maar één beeld ontvangen en dus geen stereovisie genereren. Om los van het chirurgisch
oculair toch stereovisie te creëren, moesten de oorspronkelijke camera en de meekijker vervangen worden door twee identieke camera’s. Bij verschillende fabrikanten van camera’s werden
offertes aangevraagd (tabel 3.1).
3.2 Uitbouw van de Leica M690 operatiemicroscoop tot een meetsysteem voor
robotsturing
19
Figuur 3.2: Cannulatie van een retinale ader
Figuur 3.3: Het EIBOS-systeem
3.2.3
Verschillende types van camera’s
Er zijn twee types van camera’s, nl. de CCD en de C-MOS camera [17, 18]. Beide types zetten
licht om naar een elektrische lading en verwerken deze tot elektrische signalen. De kostprijs
van beide systemen is ongeveer gelijk voor dezelfde volumes.
1. CCD: charge coupled devices
• Hier wordt de lading van elke pixel getransformeerd door een gelimiteerd aantal
output-nodes, meestal maar één, om omgezet te worden in een spanning. Alle pixels
hangen af van het opgevangen licht en van de uniformiteit van de output die hoog
moet zijn. Omdat er maar weinig output-nodes zijn, zal de uniformiteit waarschijnlijk heel hoog zijn. Twee pixels met de zelfde kleur zullen dezelfde kleur blijven
wanneer ze uit de output-nodes komen.
20
Opbouw en kalibratie van een opstelling voor stereo-microscopie
Figuur 3.4: Leica M690 microscoop voor aanpassingen
Fabrikanten Camera’s
Mantis
Optronics
Moticam
Imaging planet
Micro-shot
Allied Vision
Jenoptic
Tabel 3.1: Fabrikanten van camera’s
• Toepassingsdomein: fotografie, wetenschap, industriële applicaties voor hoog kwalitatieve beelden.
2. C-MOS: complementary metal oxide semiconductor
• Hier heeft elke pixel zijn eigen lading tot spanningsconversie en de sensor bevat
meestal ook versterkers, ruiscorrectie en digitalisatieschakelingen. Deze functies
verhogen wel de complexiteit en verkleinen mede de ruimte die men kan gebruiken
voor het opvangen van licht. Nadeel hiervan is dat de uniformiteit van de output
slechter is omdat elke pixel zijn eigen conversie doet.
• Toepassingsdomein: Integratie (meer functies op de chip), laag vermogensdissipatie, kleinere systemen (afwegen kostprijs en beeldkwaliteit)
Men kan voor beide types zowel voor- als nadelen opsommen maar voor onze toepassing diende
er niet lang nagedacht te worden over welk type er gebruikt zou worden. Er werd voor een CCD
camera gekozen omdat deze een kleinere pixelgrootte heeft en eveneens kwalitatief betere beelden produceert.
3.2 Uitbouw van de Leica M690 operatiemicroscoop tot een meetsysteem voor
robotsturing
21
Uiteindelijk werd er gekozen voor een camera van Allied Vision die de beste prijs/kwaliteit
aanbood.
Twee identieke camera’s van deze firma werden geselecteerd en aangekocht (figuur 3.5).
Figuur 3.5: Prosilica GC1290C camera
Tabel 3.2 geeft de specificaties van de camera’s weer:
Prosilica GC
Interface
Resolutie
Sensor
Sensor type
Sensor afmetingen
Pixelgrootte
Lens type
Max frame-rate
1290
IEEE 802.3 1000baseT
1280 x 960
Sony ICX445
CCD Progressive
1\3”
3,75 micron
C\CS
32 fps
Tabel 3.2: Specificaties camera’s
De camera heeft een hoge resolutie en heeft een frame-rate van 32 frames per seconde. Met
deze camera zijn vervolgens enkele testbeelden gemaakt zowel met als zonder de microscoop
en deze bleken kwalitatief heel goed te zijn.
Wanneer men de twee camera’s op een microscoop monteert, moet men rekening houden met
de noodzaak dat het optische pad van beide camera’s hetzelfde is zodat beide beelden dezelfde
optische elementen doorlopen en dus dezelfde vervorming hebben. Het monteren van de camera’s op de microscoop wordt gedaan door gebruik te maken van een speciale video-adapter.
Op deze video-adapter bevindt zich ook een manuele focus waardoor je de focusafstand van
beide camera’s kunt bijregelen. Het soort tussenstuk hangt af van de schroefdraad waarmee de
camera kan vastgedraaid worden. Het type dat wij nodig hebben heet een C-mount adapter.
Een offerte van C-armen werd aangevraagd bij de firma Leica. In december 2011 werden deze
geleverd.
Figuur 3.6 geeft de microscoop weer met aangebrachte aanpassingen.
22
Opbouw en kalibratie van een opstelling voor stereo-microscopie
Figuur 3.6: Leica M690 microscoop met aanpassingen
3.2.4
Ontwikkeling van testbed voor kalibratie
De kalibratie van de op de microscoop gemonteerde camera’s is een belangrijke stap om de
nauwkeurigheid van het beeldverwerkingssysteem te verhogen. Het principe van camerakalibratie wordt uitgebreid uitgelegd in sectie 3.4. Om de kalibratie accuraat te kunnen uitvoeren,
moest een mechanische constructie uitgedacht worden waarin het kalibratiepatroon gemonteerd
kon worden. Aan de basis van deze constructie staat een xyz-slede die het patroon langs 3 assen
kan bewegen.
Aan deze slede moest dan een constructie bevestigd worden om het patroon vast te houden.
Deze constructie moest er eveneens voor zorgen dat het patroon verdraaid kon worden. Dit
werd gerealiseerd door middel van een bolscharnier waarin het patroon gemonteerd werd. Figuur 3.7 geeft het kalibratiebed weer dat ervoor zorgt dat het kalibratiepatroon gekanteld en
verplaatst kan worden.
Figuur 3.7: Kalibratiebed
3.3 Principes van stereovisie
3.2.5
23
3D printen van het patroon
Het printen van het patroon werd op Campus De Nayer zelf gedaan. Hierbij werd gebruik
gemaakt van de Aerosol Jet Printer. Er is voor deze printer gekozen omdat het patroon met een
resolutie van 1 micron, zoals berekend in sectie 3.5.2.2, moest afgedrukt worden. Deze printer
kan baantjes tussen de 1 en de 5 micron printen met een nauwkeurigheid van minder dan een
micron. Bij het berekenen van de nauwkeurigheid van het kalibratiepatronen kwamen we uit op
een nauwkeurigheid van 1 micron (sectie 3.5.2.2). Deze printer bleek dus nauwkeurig genoeg
om het kalibratiepatroon af te drukken. Figuur 3.8 laat enkele door de Aerosol geprinte 60
micron dunne baantjes zien. Figuur 3.9 geeft het print proces weer van de aerosol jet printer.
Figuur 3.8: 60 micron baantjes door 3D-printer
Het proces gebeurt in drie stappen:
• Stap 1: Het vloeibaar ruw materiaal wordt in een verstuiver geplaatst die de vloeistof
omzet in een fijne straal van 1 tot 5 micron breed.
• Stap 2: De straal wordt naar de spuitkanalen gebracht en overtollig gas wordt verwijderd.
• Stap 3: De straal wordt dan gefocust naar de spuitmond door het toevoegen van een extra
straal gas.
3.3
3.3.1
Principes van stereovisie
Cameramodellen
Een cameramodel kan men aanzien als de mathematische beschrijving van de omzetting tussen
de positie van het gefilmde object en de uiteindelijke 2D afbeelding hiervan. Er zijn verschillende cameramodellen, onder andere het pinhole of het conventioneel model en het nieuw generisch cameramodel [19] [20]. Het eerste model wordt gebruikt bij een camera waarbij het licht
24
Opbouw en kalibratie van een opstelling voor stereo-microscopie
Figuur 3.9: Het print proces van de aerosol jet printer
maar door een klein gaatje de sensor kan bereiken. Dit is het meest eenvoudige model en wordt
als basis gebruikt voor het andere cameramodel. Figuur 3.10 geeft het pinhole cameramodel
weer.
Figuur 3.10: Het pinhole cameramodel
Het nieuw generisch model is in staat om radiale vervorming te compenseren. Figuur 3.11 geeft
een principeschets weer van radiale vervorming. Dit is belangrijk om de nauwkeurigheid van
de beelden te waarborgen. De vervorming zorgt ervoor dat sommige pixels op de verkeerde
plaats op de sensor vallen. Het model gaat deze vervorming compenseren en de pixels terug op
de juiste plaats zetten.
Het verschil tussen het pinhole en het nieuw generisch model is dat het nieuw generisch model gebruikt kan worden bij opstellingen met een variabele zoom en focus. Ook camera’s met
een groothoeklens kunnen hiermee gekalibreerd worden. Het model houdt ook rekening met
verschillende soorten vervorming: entrance pupil en decentring distortion. Dit zijn twee fenomenen die optreden wanneer je een camera in combinatie met een lens gebruikt en zeker bij
een microscoop waarbij meerdere lenzen achter elkaar geplaatst worden. Deze niet-idealiteiten
worden in de volgende sectie in detail toegelicht.
3.3 Principes van stereovisie
25
Figuur 3.11: Vervorming van camerabeeld
3.3.2
Niet-idealiteiten verantwoordelijk voor beeldvervorming/distortie
3.3.2.1
Entrance pupil
Een oorzaak van entrance pupil vervorming is het afwijken van het intredepunt in het oog of
een lens. Entrance pupil geeft het punt aan waarnaar de hoofdstraal van een bundel binnenkomende stralen wordt geleid. Hierbij wordt meestal aangenomen dat dit punt samen valt met
het middelpunt van het optische pad van het lenzensysteem. Dit is echter bijna nooit het geval.
Hoe het fenomeen van de verschuiving van de entrance pupil kan worden in rekening gebracht
wordt in referentie [21] uitgelegd. Dit is vooral het geval bij fisheye lenzen, een lenstype dat
een soortgelijk beeld oplevert als wanneer je in water naar een voorwerp kijkt. Deze lenzen
geven aan een beeld een bolvormige vervorming, zoals weerspiegeling in bv. een kerstbal. Bij
het opereren van ogen maakt men, zoals reeds vermeld, gebruik van een EIBOS om de bolling
van het oog tegen te werken waardoor je een vlakke afbeelding krijgt zonder vervorming.
3.3.2.2
Decentring distortion
Hoe het fenomeen decentring distortion kan worden in rekening gebracht, wordt in referenties
[22] [23] uitgelegd. Oorzaken van decentring distortion zijn o.a:
• leunend sensor oppervlak: door de manier waarop de sensor gemonteerd is, kan het zijn
dat wanneer de camera schuin hangt, de sensor een beetje overhelt
• slechte uitlijning van lenzen
• niet constante brekingsindex van de lenzen
3.3.2.3
Variabele zoom en focus
Wanneer men de zoom van de microscoop verandert, verandert de virtuele afstand tussen de
twee op de microscoop gemonteerde camera’s. Dit wil zeggen dat het dan lijkt alsof de camera’s verder uiteen liggen maar in de werkelijkheid verandert hun positie niet. Hierdoor moet
26
Opbouw en kalibratie van een opstelling voor stereo-microscopie
men, wanneer de zoom van de camera verandert, de kalibratie opnieuw uitvoeren. Omdat de
kalibratie tijdsrovend is en veel rekenkracht vergt, kan men dit oplossen door op voorhand voor
elke stand van de zoom een kalibratie uit te voeren. Wanneer de zoom veranderd wordt, zal
het desbetreffende kalibratieprofiel dan geladen worden. Het probleem hierbij is echter dat de
zoom mechanisch geregeld wordt en er geen sensor beschikbaar is op dit systeem om de exacte
stand in te lezen.
3.3.3
Stereovisie
Figuur 3.12: Stereovisie
Wanneer gebruik wordt gemaakt van twee camera’s, die vanuit een verschillende positie eenzelfde object filmen, geven deze elk een 2D representatie weer van het gefilmde opbject. Hierbij
spreekt men van binoculaire dispariteit. Binoculaire dispariteit geeft het verschil in positie weer
van het gefilmde object op de beelden van de ene camera ten opzichte van de beelden van de andere camera. Door deze twee beelden op de juiste manier te combineren kan men een 3D-beeld
creëren. Tekening 3.12 geeft goed weer hoe de transformatie van 2D naar 3D gebeurt [24] [20].
Om de coördinaten van één punt te vinden, gebruikt men de afbeeldingen van dit punt op de
twee camerabeelden en tekent men een virtuele lijn door alle punten die op deze camerabeeldlocaties vallen. Hoe deze lijn getrokken wordt, hangt af van het cameramodel dat je gebruikt.
Het snijpunt van deze twee lijnen geeft de coördinaten van dit punt. Dit principe is eveneens
van toepassing wanneer men enkel de microscoop bekijkt zonder camera’s erop gemonteerd.
Hier worden de beelden door onze hersenen gecombineerd tot een 3D-beeld.
Het mappen van 3D naar 2D wordt gedaan door middel van een 4 × 3 projectiematrix. 3D punten bestaan uit een 1 × 4 vector bestaande uit de homogene coördinaten van een punt uitgedrukt
ten opzichte van het wereldassenstelsel Σw :
xw , yw , zw , ww
(3.1)
De afbeeldingen van dergelijke punten op het camerabeeld zijn 2D representaties die worden
uitgedrukt in een 1 × 3 vector die de positie op de uiteindelijke afbeelding voorstellen, uitgedrukt in het camera assenstelsel Σc :
1 1 1 (3.2)
xc , yc , wc
3.3 Principes van stereovisie
27
De w in de formule wordt gebruikt om onderscheid te maken tussen punten die op één lijn
liggen ten opzichte van de camera. Om van een 2D afbeelding terug een 3D representatie te
maken heeft men dus twee verschillende beelden nodig. Hieronder ziet men een voorbeeld van
zo’n projectiematrix. De parameters van de matrices stellen de kalibratieparameters voor die in
sectie 3.4 uitgelegd worden.
Camera 1


xc1
y1c
w1c

xc2
y2c
w2c


fx1
= 0
0
0
fy1
0
c1x
c1y
0
fy2
0
c2x
c2y


1


fx2
= 0
0
1


(3.3)

xw2
 2 
  y2w 
 zw 
w2w
(3.4)
p112
p122
p132
p113
p123
p133
p114
p224
p234

p211
p221
p231
p212
p222
p232
p213
p223
p233
p214
p224
p234

Camera 2


xw1
 1 
  y1w 
 zw 
w1w
p111
p121
p131


Wanneer het 3D-beeld opgebouwd is, moet er gekeken worden naar de diepteresolutie. De diepteresolutie is een maat van de nauwkeurigheid van deze bekomen diepte-informatie en wordt
gedefinieed als de ’minimale afstand tussen schijfjes’ waarmee je het voorwerp virtueel kan
opbouwen. Hieronder wordt uitgelegd hoe je door middel van triangulatie de diepte-informatie
kunt bekomen [25].
Figuur 3.13 geeft een voorbeeld weer waarbij de camera’s recht naar voor gericht zijn.
Figuur 3.13: Dispariteit
De basis geometrie die gebruikt wordt bij een stereo-camerasysteem wordt beschreven als epipolar geometry. Op de afbeeldingen ziet men twee camera’s ( C1 en C2 ) die het punt P op twee
plaatsen P1 en P2 van het image plane ( IP1 en IP2 ) zien. c1 en c2 geven het centrum van de
28
Opbouw en kalibratie van een opstelling voor stereo-microscopie
twee camera’s weer. De hoeken waaronder de camera’s het punt P zien zijn respectievelijk θ1
en θ2 . De dispariteit wordt weergegeven door het verschil tussen de afstanden van het centrum
van de camera tot de afbeelding van het punt op het image plane (d = V1 −V2 ).
De diepte wordt berekend volgens formule 3.5.
D = (b · f )/d
(3.5)
D = de afstand van de lens tot een punt in de ruimte waar de camerabeelden elkaar
snijden
b = de afstand tussen de camera’s
f = de focusafstand van de camera’s
d = de disparity van de opstelling
Figuur 3.14 geeft de configuratie van twee camera’s weer die onder een hoek van 50 graden ten
opzichte van elkaar geplaatst zijn. De camera’s worden onder een hoek opgesteld aangezien
de beelden van twee camera’s, gemonteerd op een microscoop, ook op deze manier gemaakt
worden. De zwarte en groene lijnen op de tekening geven de afbeeldingen weer met daarop de
pixels. Om een 3D-beeld te bekomen, overlapt men de beelden van de twee camera’s. De hoek
tussen AB en BC is 50 graden. Voor de pixelafstand AB en BC nemen we 3,75 micron. Hieruit
bepaalt men dan de diepteresolutie, zoals berekend in formule 3.6, door gebruik te maken van
de cosinus-regel. Dit is de afstand die je per pixel verplaatst in de diepte van het 3D gecreërde
beeld ( blauwe lijn op de tekening ). Dit komt overeen met iets minder dan één pixel van het
2D beeld. Als hoek is er zelf een getal genomen maar dit mag niet te klein of te groot zijn. Bij
een te kleine hoek is er te weinig verschil tussen de beelden en bij een te grote hoek te weinig
overeenkomst om een 3D-beeld te maken. Voor een hoek van 50 graden en een pixelafstand
voor beide camerabeelden van 3,75 micron geeft dit een diepteresolutie van 3,17 micron. Merk
op dat de nauwkeurigheid typisch 10x de resolutie is.
q
(AB)2 + (BC)2 − 2 · AB · BC · cos(ABÌ‚C)
p
(3.6)
= 3, 752 + 3, 752 − 2 · 3, 752 cos50
= 3, 17 micron.
We kunnen dus stellen dat we een 3D-object, gevisualiseerd door 2 camera’s die onder een hoek
van 50 graden ten opzichte van elkaar staan, kunnen opdelen in lagen die 3,17 micron uit elkaar
liggen. Dus het 3D-model van het object heeft dan een diepteresolutie van 3,17 micron. Hierbij
is de stand van de zoom nog niet in rekening gebracht.
3.3.4
Stereovisie voor microscopie
Beelden gemaakt door een binoculaire microscoop worden in principe op dezelfde manier opgebouwd als bij een stereovisiesysteem met twee convergerende camera’s. Dit komt overeen
met twee camera’s die onder een hoek naar elkaar gericht zijn en dus niet parallel naast elkaar
gemonteerd zijn. Dit principe komt overeen met hoe onze ogen functioneren. Wanneer onze
3.3 Principes van stereovisie
29
Figuur 3.14: Diepteresolutie
ogen iets waarnemen staan beide ogen naar dit zelfde punt gericht. Er worden hier eveneens
twee beelden gemaakt met allebei een verschillende oriëntatie ten opzichte van het object. Om
de camera’s te kunnen kalibreren moeten we eerst uitzoeken hoe groot dit kalibratiepatroon
zal moeten zijn. Het kalibratiepatroon moet hierbij voor verschillende standen van de zoom
kunnen gebruikt worden. Wanneer dit te klein of te groot is zal het patroon niet gedetecteerd
worden of niet helemaal in beeld zijn. Op Figuur 3.15 ziet men een principetekening van hoe
een dergelijke kalibratie-opstelling er in de praktijk uitziet.
Figuur 3.15: Principetekening microscoop
30
Opbouw en kalibratie van een opstelling voor stereo-microscopie
3.4
Camerakalibratie
De kalibratie van de camera’s is heel belangrijk. Dit wordt gedaan door de projectiematrix op
te meten en toe te passen. Hoe een camera gekalibreerd wordt, is uitgelegd in volgende referenties [26] [20]. Dit zorgt ervoor dat elke pixel op de juiste plaats op de afbeelding wordt
geprojecteerd. Hiervoor heeft men verschillende parameters nodig. De interne cameraparameters zijn parameters die te maken hebben met de positie van pixels in het camera-assenstelsel.
De externe parameters geven de relatie weer tussen het camera-assenstelsel Σc en het wereld
assenstelsel Σw .
Interne cameraparameters:
• Het middelpunt of het principle point van de sensor (cx en cy )
• Focusafstand en pixelgrootte ( fx en fy )
Externe cameraparameters:
• Optische middelpunt
• Oriëntatie van de CCD-chip
• Hoek tussen de camera-assenstelsel Σc en het wereldassenstelsel Σw
Er bestaan verschillende methodes om camera’s te kalibreren.
Eén ervan is de Tsai methode [27]. Om de interne en externe parameters te bekomen wordt
een bepaald patroon op verschillende posities voor de camera gehouden. Figuur 3.16 geeft een
voorbeeld van een dergelijk kalibratieproces. De bovenste afbeeldingen geven de beelden van
de twee camera’s weer. De afbeelding linksonder geeft het patroon weer waar de kalibratie
op toegepast wordt. Bij deze software wordt gebruik gemaakt van een patroon met kleine cirkels [28]. De afbeelding rechtsonder geeft het resultaat van de kalibratie weer, dus de waarden
van de interne en externe cameraparameters.
Bij de kalibratie van de camera’s zal er een schaakbordpatroon gebruikt worden omdat de in
sectie 3.5 beschreven software enkel met dit type kalibratiepatroon kan werken. Aangezien er
gebruik gemaakt wordt van een microscoop moet ervoor gezorgd worden dat dit patroon nauwkeurig en klein genoeg afgedrukt kan worden omdat anders de kalibratie niet goed kan worden
uitgevoerd. Dit wordt verder omschreven in sectie 3.5.2.
3.5
Software voor interfacen en kalibratie van camera’s
Volgende sectie beschrijft de software die gebruikt wordt om de beelden van de camera’s in te
lezen en te bewerken.
De aspecten van de camerakalibratie worden vervolgens ook besproken.
3.5 Software voor interfacen en kalibratie van camera’s
31
Figuur 3.16: Voorbeeld kalibratieproces
3.5.1
ROS (Robot Operating System)
ROS is een open-source software platform dat zorgt voor bibliotheken en tools om softwareontwerpers te helpen om robotapplicaties te ontwikkelen [29]. Om ROS te gebruiken moet je een
Unix gebaseerd OS gebruiken. Op de site ROS.org staan verschillende tutorials om met robots
te kunnen werken en hoe bepaalde camera’s in te lezen, te kalibreren enzovoort.
ROS werd gebruikt om de kwaliteit van de op het departement aanwezige camera te verifiëren alvorens deze zelf aan te kopen. Onze camera voldeed aan de gestelde verwachtingen.
Figuur 3.17 toont een testbeeld gemaakt met de aangekochte camera gemonteerd op de microscoop. De microscoop was ingesteld op een vergroting van 15x. Het rechtse beeld is genomen
32
Opbouw en kalibratie van een opstelling voor stereo-microscopie
met een gewoon fototoestel. Hieruit kon opgemaakt worden dat dit een goede camera is voor
onze toepassing.
ROS is een gratis meta-besturingssysteem waar de processen plaatsvinden in Nodes die sensor,
controle, status, planning, motor-data en andere boodschappen kunnen versturen en ontvangen.
Bij een camera zal er gespecifieerd moeten worden via welke node hij de data moet versturen. Het enige wat er dan gedaan dient te worden is deze node te openen en de data ervan op
te vragen. Ook zijn er te installeren paketten aanwezig om verschillende soorten camera’s te
kalibreren en 3D-beelden op te bouwen. Bovendien worden er in ROS nog allerhande andere
beeldverwerkingsalgoritmes aangeboden. Er is tevens ook de mogelijkheid om via OPENCV
[20] beeldverwerking te doen in combinatie met ROS. Hiervoor dienen de beelden die door
middel van ROS-nodes gepubliceerd worden, omgezet te worden naar OPENCV compatibele
beelden. Dit wordt gedaan door het pakket CV_bridge. OPENCV is een gratis bibliotheek met
allerhande beeldverwerkingsalgoritmes.
Omdat ROS op de KULeuven gebruikt wordt, is er voor dit pakket gekozen. Op de bijgevoegde CD-ROM is een overzicht weergegeven van al de belangrijke commando’s die gebruikt
zijn geweest in ROS.
Figuur 3.17: Testbeeld met microscoop
3.5.2
Camerakalibratie in ROS
3.5.2.1
Verloop van het kalibratieproces
De kalibratie van de camera’s verloopt als volgt. Eerst dienen de interne cameraparameters
bepaald te worden. Dit wordt gedaan door beide camera’s apart te kalibreren. Tijdens de stereokalibratie worden zowel de interne als de externe parameters bepaald. Bij de kalibratie dient
een kalibratiepatroon onder de camera’s bewogen te worden ten opzichte van de x,y en z-as.
Eveneens moet het kalibratiepatroon schuin gehouden worden ten opzichte van de z-as van de
camera’s. Figuur 3.18 geeft de verschillende standen van het kalibratiepatroon weer. Tijdens
de kalibratie is het de bedoeling om het patroon zo dicht mogelijk bij de verschillende randen
van het camerabeeld te detecteren en tevens onder een zo groot mogelijke hoek ten opzichte
van de z-as van de camera’s. De verplaatsing wordt gerealiseerd aan de hand van een een
3.5 Software voor interfacen en kalibratie van camera’s
33
xyz-slede die fijn afgesteld kan worden. De verdraaiing wordt gerealiseerd door een soort bolscharnier. Tijdens de kalibratie zal het patroon bewogen en verdraaid worden en zullen er foto’s
van goede posities genomen worden. Deze procedure wordt bij zowel de mono-kalibratie en
de stereo-kalibratie gebruikt. Aan de hand van deze foto’s zullen dan de interne en externe
parameters bepaald worden.
Figuur 3.18: Standen voor kalibratiepatroon
3.5.2.2
Bepalen van de nauwkeurigheid van het kalibratiepatroon
Het kalibreren van de camera’s die gemonteerd zijn op de operatiemicroscoop dient heel nauwkeurig gedaan te worden. Camerakalibratie door middel van een op papier afgedrukt patroon
bleek niet afdoende.
Om de resolutie van het kalibratiepatroon te bepalen moet gekeken worden naar wat in de reële
wereld de grootte van één pixel is. Dit is gerealiseerd door een patroon met gekende afmetingen
onder de microscoop te leggen en te kijken hoeveel pixels dit patroon voorstelt op de afbeelding
van het patroon, gemaakt door de camera.
Figuur 3.19 toont een kalibratiepatroon met de aangeduide afmetingen gemeten op het beeld
van één camera op het scherm van de pc.
De afmetingen van dit patroon zijn in werkelijkheid 1,01cm op 0,79cm. Om de nauwkeurigheid
van het patroon te bepalen moet men de werkelijke afmetingen van het patroon vergelijken met
het aantal pixels dat hiermee overeenkomt op de afbeelding gemaakt door de camera.
De camera heeft een resolutie van 1280 op 960. De beelden die door de camera’s geproduceerd
worden zijn dus 1280 pixels breed en 960 pixels hoog. Er moet eerst berekend worden door
hoeveel pixels het patroon voorgesteld wordt in de breedte en de hoogte.
Dit kan gedaan worden door de afmetingen van het patroon met de afmetingen van de totale
afbeelding te combineren. Na het uitvoeren van deze berekeningen werd er een gemiddelde
breedte en hoogte van één pixel met afmetingen van 13 micron bekomen.
Dit geeft een idee van de grootteorde van de resolutie die het kalibratiepatroon zal moeten
hebben. Aangezien er een vuistregel bestaat die zegt dat de resolutie een factor 10 kleiner
34
Opbouw en kalibratie van een opstelling voor stereo-microscopie
Figuur 3.19: Nauwkeurigheid kalibratiepatroon
is dan de nauwkeurigheid zal de resolutie van het kalibratiepatroon rond de 1 micron
moeten liggen. Figuur 3.20 geeft het uiteindelijke kalibratiepatroon weer. Dit patroon is
0,9 cm breed en 0,7 cm hoog en bestaat uit 9 op 7 vierkantjes van 1 mm2 .
3.5.2.3
Bepalen van de interne cameraparameters
De interne cameraparameters heeft men nodig alvorens de externe te kunnen bepalen. De algemene projectiematrix met de interne parameters wordt als volgt weergegeven [30].
Camera kalibratiematrix algemeen


f

Cx
f Cy 
1
(3.7)
f = de focusafstand
Cx = de x-coördinaat van het middelpunt van de camera-sensor uitgedrukt in pixels
Cy = de y-coördinaat van het middelpunt van de camera-sensor uitgedrukt in pixels
Deze voorstelling van de camera kalibratiematrix geldt echter niet voor een CCD-camera. Hiervoor dienen enkele parameters veranderd te worden. Bij een CCD-camera kan het zijn dat de
pixels niet vierkantig maar eerder rechthoekig zijn. Onderstaande formules houden rekening
met breedte en hoogte van één pixel.
3.5 Software voor interfacen en kalibratie van camera’s
35
Figuur 3.20: 3D-geprint kalibratiepatroon
Camera kalibratiematrix CCD-camera


αx
X0

αy Y0 
1
(3.8)
αx = f · mx = de focusafstand maal het aantal pixels per grootorde-eenheid
αy = f · my = de focusafstand maal het aantal pixels per grootorde-eenheid
X0 = mx · Cx = het middelpunt van de sensor maal het aantal pixels per grootorde-eenheid
Y0 = my · Cy = het middelpunt van de sensor maal het aantal pixels per grootorde-eenheid
3.5.2.4
Bepalen van de externe cameraparameters
Zoals reeds beschreven in sectie 3.4 geven de externe cameraparameters de positie van de twee
camera’s ten opzichte van elkaar weer. Dit wordt gedaan door de essentiële matrix E op te meten
die de transformatie van het assenstelsel van de eerste camera Σ1c naar het assenstelsel van de
tweede camera Σ2c weergeeft. Het opmeten van deze matrix gebeurt door features uit beide
camerabeelden te combineren om zo de transformatie te kunnen opstellen. Deze transformatie
bestaat uit een rotatie en een translatie. Deze transformatie wordt gecombineerd met de interne
cameraparameters waardoor men de fundamentaalmatrix T bekomt. Wanneer men dan een punt
uit de afbeelding van de ene camera neemt, kan men dit punt terugvinden op de afbeelding van
de andere camera.
3.5.2.5
Opbouw van het 3D-beeld
Alvorens beelden in 3D te kunnen produceren, dienen de camera’s gekalibreerd te worden.
Het kalibreren van beide camera’s afzonderlijk verliep vrij vlot. Hieruit konden de interne cameraparameters gehaald worden. Vervolgens dienden de camera’s gelijktijdig gekalibreerd te
36
Opbouw en kalibratie van een opstelling voor stereo-microscopie
worden om de externe parameters te weten te komen. Hierbij kwamen er enkele problemen
kijken. Om de stereo-kalibratie te kunnen starten, moesten de camera’s gesynchroniseerd zijn.
Deze synchronisatie zat normaal gezien geïmplementeerd in het ROS-pakket van de cameradrivers. Wanneer er één camera als slave en de andere als master ingesteld was bleek dit niet te
werken. Na controle van de broncode werd duidelijk dat in de configuratie file van de cameradrivers de synchronisatie niet meer geïmplementeerd was. Dit is dan gemeld en wanneer het
pakket een tijd later nog eens geherinstalleerd werd, bleek dit wel terug te werken. Gezien dit
noodzakelijk was om de stereo-kalibratie uit te kunnen voeren, heeft het lang geduurd alvorens
de stereo-kalibratie te kunnen testen.
3.5.3
Uitvoering van de kalibratie in ROS
Bij het kalibreren van de camera’s moest er tevens gezorgd worden dat de focusafstand van
beide camera’s gelijk was. De camera’s zijn op de microscoop bevestigd door middel van twee
bevestigingsarmen die beide een manueel instelbare focus hebben zoals aangeduid op figuur
3.6. Uit de gegevens die je door de kalibratie bekomt, kan je de focusafstand halen. Dit werd
getest door één camera afzonderlijk te kalibreren. Aangezien er eerst nog geen nauwkeurig
patroon ter beschikking was, is er getracht om een idee te krijgen over de focusafstand door
gebruik te maken van een op papier afgedrukt patroon. Wanneer de camera’s bij verschillende
standen van de manuele focus gekalibreerd werden en deze resultaten werden vergeleken, bleek
er geen logisch verband te zijn tussen de verschillende standen van de manuele focus.
Om die reden zijn er dan bij eenzelfde stand van de manuele focus verschillende kalibraties
uitgevoerd en werden er steeds ver uiteenliggende waarden van de cameraparameters bekomen.
Er werd vervolgens getracht om het verloop van het kalibratieproces zoals beschreven in sectie 3.5.2.1 steeds nauwkeuriger uit te voeren. Uiteindelijk werd er een opstelling bekomen die
nauwkeurig genoeg zou moeten zijn om de camera’s te kalibreren. Het kalibratiebed beschreven
in sectie 3.2.4 werd hiervoor gebruikt. Spijtig genoeg bleken ook hier de cameraparameters niet
te kunnen kloppen. Uiteindelijk werd het kalibratie-proces op een iets andere wijze uitgevoerd.
Tabel 3.3 en 3.4 vat de resultaten van deze laatste testen samen. Deze resultaten zijn reeds beter,
doch hangen nog steeds af van hoe goed het kalibratieproces uitgevoerd wordt. Bij meting één
van de linker camera komen de focusafstanden vrij goed overeen en liggen de gemeten middelpunten bijna op het echte middelpunt van de sensor. Dit is bij meting vier van de rechter camera
ook het geval. De rest van de metingen wijken iets harder hiervan af. Het kalibratieproces moet
dus meerdere keren uitgevoerd worden tot er een goede kalibratie gedaan is.
Vervolgens werden er testen gedaan met het uitvoeren van de stereo-kalibratie. Deze kalibratie
is eveneens enkele keren uitgevoerd. Tijdens de stereo-kalibratie werden zowel de interne als
de externe cameraparameters tegelijk berekend. Op de resultaten van de stereo-kalibratie, weergegeven in tabel 3.5, is te zien dat de bekomen cameraparameters niet realistisch zijn. Hieruit
bleek dat de kalibratie van de microscoopopstelling op deze manier niet uitgevoerd kon worden.
3.6 Conclusie
37
Kalibratie parameters linker camera
1
2
3
meting
Focusafstand
fx
fy
Middelpunt sensor
Cx
Cy
Distortie
Distortie 1
Distortie 2
Distortie 3
Distortie 4
4
41698,77
41794,07
66025,79
62009,87
145797,84
167518,85
48295,82
47499,65
639,517
479,51
639,06
479,33
639,95
475,3
635,83
478,52
-1,251332
-15322,58
-0,00687
-0,02071
-12,89459
0,1225
-0,07257
-0,08205
-92,87642
0,00289
0,092936
-0,14805
-11,62576
0,13613
0,01901
-0,08499
Tabel 3.3: Resultaten kalibratie linker camera
3.6
Conclusie
Dit hoofdstuk omschrijft al de benodigde elementen om een stereo camerasysteem te gebruiken
en te begrijpen. De kalibratie van het camerasysteem is nog niet kunnen uitgevoerd worden.
Er is er tot de conclusie gekomen dat een convergerende camera setup zoals een digitale stereo
microscoop niet gekalibreerd kan worden door de algoritmes die tot op heden in ROS worden gebruikt. Als reden voor het falen van de stereo-kalibratie kan aangehaald worden dat het
dept-of-field van de camera waarschijnlijk te beperkt is voor de huidige opstelling. Door het kalibratiepatroon nog verder te miniaturiseren zou dit probleem normaal gezien opgelost kunnen
worden. Referentie [31] beschrijft een andere methode om toch de kalibratie van de microscoop
te kunnen uitvoeren. Deze methode is in dit werk niet geïmplementeerd kunnen worden wegens
tijdgebrek.
38
Opbouw en kalibratie van een opstelling voor stereo-microscopie
Kalibratie parameters rechter camera
1
2
3
meting
Focusafstand
fx
fy
Middelpunt sensor
Cx
Cy
Distortie
Distortie 1
Distortie 2
Distortie 3
Distortie 4
4
49977,91
44520,41
81636,3
91214,9
90400,96
85950,46
86889,76
84911,12
643,28
479,38
639,62
479,98
639,56
479,46
637,75
479,76
-9,54522
-0,08371
0,05251
-0,02716
-34,79924
-0,059536
-0,04414
0,11043
-20,87754
-0,05802
-0,03761
0,1369
-35,06847
-0,16243
-0,06342
0,17009
Tabel 3.4: Resultaten kalibratie rechter camera
meting
Focusafstand
fx
fy
Middelpunt sensor
Cx
Cy
Afwijking Cx
Afwijking Cy
Resultaten stereo-kalibratie
cameraparameters linker camera
cameraparameters rechter camera
1
2
3
1
2
3
72531
72531
131635
131635
87031
87031
72531
72531
131635
131635
87031
87031
67656
67656
0
0
15314
619186
0
0
12024
91220
0
0
67656
67656
-37742
0
15314
619186
0
-74357
12024
91220
0
-7684
Tabel 3.5: Resultaten stereo-kalibratie
Hoofdstuk 4
Ontwikkeling van het
beeldverwerkingssysteem
In dit werk is reeds uitgelegd hoe de opbouw van het camerasysteem eruitziet en hoe de kalibratie van de opstelling gedaan kan worden. Het volgende hoofdstuk geeft weer hoe het beeldverwerkingssysteem is opgebouwd. Hierbij werd gebruik gemaakt van OPENCV en matlab als
hulpmiddelen. OPENCV is de afkorting van open computer vision. Dit zijn gratis bibliotheken
van algoritmes die gebruikt worden voor beeldverwerking. Deze bibliotheken zijn geschreven
in de programmeertaal c/c++. Matlab is dan weer een programma dat voor allerhande domeinen
kan gebruikt worden zoals signaalverwerking en beeldverwerking. Het beeldverwerkingssysteem kan opgesplitst worden in drie aparte delen:
• De detectie van aders in het netvlies van het oog
• Het aanduiden van de in te spuiten ader op één camerabeeld
• Het volgen van een chirurgische naald in een oog
De programma-code is terug te vinden op de bijgevoegde CD-ROM. Bij de code zit ook een
handleiding over hoe de code kan gebruikt worden in de ROS omgeving.
4.1
Detectie van aders in het netvlies van het oog
Na enkele initiële testen om de aders van het netvlies te visualiseren, bleek het interessanter om
eerst onderzoek te doen naar bestaande aderdetectie-algoritmes. Deze werden reeds beschreven
in sectie 2.2.1. Het detecteren van de aders wordt gebruikt om de positie van de in te spuiten ader
beter te visualiseren voor de chirurg. Voor de uiteindelijke detectie is er gebruik gemaakt van
de Gabor filter. Op figuur 4.1 ziet u het oorspronkelijke beeld en figuur 4.2 geeft de aderdetectie
weer.
40
Ontwikkeling van het beeldverwerkingssysteem
Figuur 4.1: Beeld van het test−oog
Figuur 4.2: Aderdetectie
Figuur 4.3: Aangeduide ader op linker en rechter camerabeeld
4.2
Het aanduiden van de in te spuiten ader op één camerabeeld
Hierbij is het de bedoeling dat er op het beeld van één camera de in te spuiten ader wordt aangeduid. Dit punt moet dan teruggevonden worden in het beeld van de andere camera. Wanneer
men manueel twee punten zou aanduiden, zou het heel moeilijk zijn om exact hetzelfde punt
in het andere beeld aan te duiden. Wanneer er op één van beide camerabeelden met de muis
een ader wordt aangeduid, zal een deel van dit camerabeeld, met als middelpunt de aangeduide
ader, gebruikt worden om dit punt terug te vinden in het andere camerabeeld. Hiervoor wordt de
reeds in sectie 2.2.2 beschreven techniek van template matching gebruikt. Eenmaal de ader in
het andere camerabeeld teruggevonden is, kan dit template gebruikt worden om de positie van
de ader te controleren. Wanneer het camerabeeld een klein beetje verschuift door beweging van
het oog van de patiënt zal dit punt nog steeds teruggevonden worden in beide camerabeelden.
Figuur 4.3 geeft het resultaat van het aanduiden van een ader op enkel het rechtse beeld. Hierop
kun je zien dat op beide beelden dezelfde ader omkaderd is.
4.3 Het volgen van een chirurgische naald
41
Figuur 4.4: Naalddetectie na kleursegmentatie
Figuur 4.5: Naalddetectie
4.3
Het volgen van een chirurgische naald
Hierbij is het de bedoeling om enkel de punt van de naald te visualiseren in het beeld. Dit wordt
gerealiseerd door op basis van kleursegmentatie de naald te visualiseren. Het resultaat van deze
segmentatie is een zwart-wit beeld waarbij bijna enkel de naald gevisualiseerd wordt. Enkel de
kleuren die je zoekt, worden hierbij in het wit weergegeven. Figuur 4.4 geeft het beeld weer
na de kleurdetectie. Vervolgens wordt op dit zwart-wit beeld de Hough-transformatie toegepast
om de locatie van lijnen in het beeld te detecteren. Wanneer men de parameters van het Houghalgoritme juist instelt, bekomt men enkel de coördinaten van de lijnen die samenvallen met de
naald. Vervolgens moet enkel de coördinaat van de punt van de naald in beide camerabeelden
gevonden worden. Aangezien de chirurg weet waar de naald het oog zal binnenkomen, kan
de naalddetectie vereenvoudigd worden. Men kan de naalddetectie hints geven door enkel de
coördinaten die binnen een bepaald gebied in de afbeelding liggen te gebruiken. Figuur 4.5
geeft van links naar rechts het beeld voor en na de naalddetectie weer. Wanneer dit in beide
beelden gerealiseerd wordt, kan de 3D-coördinaat van de punt van de naald berekend worden.
Aangezien de 3D-coördinaten van maar twee punten gebruikt worden, is het niet nodig om heel
42
Ontwikkeling van het beeldverwerkingssysteem
het beeld om te zetten naar 3D. Dit zal veel minder rekenkracht en tijd van de pc vergen.
4.4
Conclusie
In dit hoofdstuk werd besproken hoe de verschillende delen van het beeldverwerkingssysteem
opgebouwd zijn en wat het resultaat hiervan is. Wanneer de kalibratie van de opstelling gelukt
zou zij, zou de 3D coördinaat van zowel de aangeduide ader en de punt van de naald bepaald
kunnen worden. Het afstandsverschil zou dan naar de robot, die in hoofdstuk 5 besproken
wordt, gestuurd kunnen worden.
Hoofdstuk 5
Robotsturing gebaseerd op
beeldverwerking
Het volgende hoofdstuk bespreekt de hardware en de software van de reeds ontwikkelde slave
robot. De aangepaste labviewcode is ook terug te vinden op de bijgevoegde CD-ROM. Hierbij
is enkel de aangepaste code toegevoegd aangezien de opbouw van de robot niet mag besproken
worden.
5.1
Principe
De aansturing van de robot gebeurt door een FPGA die geprogrammeerd en aangestuurd wordt
vanuit Labview. De FPGA bevindt zich in een compactRIO van National Instruments [32]. Dit
maakt het heel eenvoudig om via labview de FPGA te programmeren en uit te lezen. Op de
FPGA kunnen verschillende soorten expansiemodules worden aangesloten. De robot wordt aan
de hand van zo een expansie module aangestuurd. De compactRIO bevat ook twee ethernetpoorten waarvan er één wordt gebruikt voor het aansturen en programmeren van de robot en de
andere zal gebruikt worden om de robot aan te sturen aan de hand van de beeldverwerking die
op een andere pc gerealiseerd wordt.
Om de robot aan te sturen aan de hand van de gerealiseerde beeldverwerking zal het UDPprotocol gebruikt worden. Dit is sneller in vergelijking met het TCP-protocol omdat er een
kleinere header meegestuurd wordt, er niet aan foutcontrole gedaan wordt en er telkens maar
kleine commando’s verzonden dienen te worden naar de robot. Omdat er hier met een punt tot
punt verbinding gewerkt wordt, is de kans dat er fouten doorgestuurd worden heel klein.
De bedoeling van de beeldverwerking is enerzijds om de coördinaten van de tip van de naald
te bepalen en anderszijds om de afstand te bepalen tussen dit punt en de in te spuiten ader. De
verplaatsing langs de x,y en z-as moet dan als parameter doorgestuurd worden naar de robot.
Alvorens deze afstanden naar de robot door te sturen, moet er echter een transformatie gedaan
worden van het camera-assenstelsel Σc naar het robot-assenstelsel Σr . Op figuur 5.1 zie je een
voorbeeld van een dergelijke transformatie. Om het ene assenstelsel gelijk te stellen aan het andere moeten op het voorbeeld zowel de x-as en de z-as verdraaid worden. Omdat er een afstand
44
Robotsturing gebaseerd op beeldverwerking
Figuur 5.1: Voorbeeld assenstelsel transformatie
naar de robot wordt doorgestuurd, zal er hierbij geen translatie gedaan hoeven te worden om de
assenstelsels te laten overlappen. Wanneer de afstanden binnenkomen aan de robotzijde dienen
deze omgerekend te worden naar verplaatsingscommando’s van de robot’s actuatoren. Deze
omzetting, de zogenaamde ‘inverse kinematica’ was reeds geïmplementeerd in het bestaande
regelsysteem van de robot. Figuur 5.2 toont je hoe het volledige stuurprogramma van de robot
eruitziet. De regeling gebeurt aan de hand van de hoekverdraaiing van de motoren van de robot. qd stelt de hoek voor naar waar de desbetreffende motor moet bewegen. Deze hoek wordt
vergeleken met de actuele positie van de robot en vervolgens wordt de desired of fouthoek qd
bekomen. De PID−regelaar zorgt ervoor dat de motor gecontroleerd naar deze positie beweegt.
De positie qa wordt vervolgens teruggekoppeld naar de ingang om ervoor te zorgen dat de fouthoek qd 0 graden zal worden.
Dit regelsysteem bestaat uit een PID-regelaar waarbij de stijfheid en de demping van de motoren kan ingesteld worden. Er werden eveneens limieten ingesteld op de beweging van de naald.
De robot kan dus maar in een bepaald afgebakend volume bewegen.
Figuur 5.2: Regelsysteem robot
5.2 Kalibratie van de robot
45
Figuur 5.3: DC−motor met encoder
5.2
Kalibratie van de robot
Aangezien de master-slave robot normaal gezien enkel bediend zou worden door een chirurg
was er geen nauwkeurige terugkoppeling van de positie nodig. Wanneer door de beeldverwerking naar de robot een afstand gestuurd wordt, moet er gezorgd worden dat de robot deze afstand
nauwkeurig aflegt. De stand van de motoren van de robot kan uitgelezen worden door middel
van encoders. Encoders zijn detectoren die feedback geven over de positie van een motor die
hierop aangesloten is. Hieruit wordt de hoekverdraaiing van de motor in graden uitgelezen.
De encoders, gemonteerd op de motoren van de robot, bleken niet juist afgesteld te staan. Deze
konden gecorrigeerd worden door een correctiefactor bij de encoderwaarden op te tellen. Omdat
men bij bepaalde posities van de robot de output van de encoder kent, kan men deze vergelijken
met de opgemeten waarde en hieruit de correctiefactor berekenen. Dit wordt dan herhaald voor
de andere twee encoders. Aangezien de opbouw van de robot niet besproken mag worden, kan
ik hier geen afbeelding van laten zien. Figuur 5.3 geeft een voorbeeld van een motor met op de
achteras een encoder gemonteerd.
5.3
Uitgewerkte architectuur
Het stuurprogramma van de robot is als volgt opgebouwd. Aan de hand van de beeldverwerking
wordt de afstand tussen de positie van de naald en de in te spuiten ader bepaald. Deze afstand
wordt vervolgens doorgestuurd naar de compactRIO door gebruik te maken van het reeds vermelde UDP-protocol. Het bestaande labview-programma is aangepast om de huidige opstelling
te laten functioneren. Er moest gezorgd worden dat de robot de afstand tussen de naald en de in
te spuiten ader kon binnenlezen. Figuur 5.4 geeft de inlezing van de x,y en z verplaatsing weer.
46
Robotsturing gebaseerd op beeldverwerking
Aangezien er geen zoom-functie beschikbaar is in labview zou het onoverzichtelijk zijn om de
rest van het programma als afbeelding in te voegen. De rest van het labview-programma kan
teruggevonden worden op de bijgevoegde CD-ROM.
Figuur 5.4: Inlezen afstanden in labview
Wanneer deze gegevens binnengelezen zijn, zal het PID-regelsysteem de robot naar de gewenste
coördinaten positioneren
De PID-regelaar die weergegeven wordt in figuur 5.2 bestaat uit de volgende drie elementen [33]:
• P-actie: Het verschil tussen de gewenste waarde en de foutwaarde wordt met een bepaalde
factor vermenigvuldigd
• I-actie: De integrerende term zorgt voor een constante sommatie van de fout en zal de
fout beter wegregelen
• D-actie: De differentiërende term wordt minder gebruikt. Deze actie reageert op de snelheid van de verandering van de fout. Hoe groter de fout, hoe sneller deze zal bijregelen.
5.4
Conclusie
Dit hoofdstuk geeft een idee over de aanwezige infrastructuur van de robot en de aanpassingen die nodig waren om het beeldverwerkingssysteem hiermee te interfacen. Alle elementen
beschreven in dit en vorige hoofdstukken worden nu bijeengevoegd en besproken in volgend
hoofdstuk 6 dat de experimentele resultaten in meer detail bespreekt.
Hoofdstuk 6
Experimenten
Dit hoofdstuk beschrijft de uitgevoerde testen aangaande de sturing van de robot en de uitwerking van het beeldverwerkingssysteem.
Hierbij worden eerst de testen aangaande de werkende delen van de beeldverwerking uitgelegd.
Vervolgens wordt uitgelegd wat er gedaan diende te worden om de robot te kunnen bedienen
aan de hand van deze beeldverwerking.
6.1
6.1.1
Testen aangaande het beeldverwerkingssysteem
Testen van aderdetectie
Het detecteren van de aders in het netvlies van een oog bleek vrij lastig te zijn. De uiteindelijke
realisatie van deze detectie bleek van veel parameters af te hangen en bij toepassing op andere
beelden moesten deze parameters opnieuw ingesteld worden. Hierbij was het ook niet nuttig
om zelf diepgaand onderzoek naar een eigen implementatie van een geoptimaliseerd algoritme
te doen aangezien er rond dit principe al veel onderzoek gedaan was. Figuur 6.1 geeft het beeld
van het test-oog weer en figuur 6.2 geeft het resultaat weer van de testen die ik gedaan heb
met een opgenomen beeld. Hierbij is lang gezocht naar de juiste instelling van de verschillende
parameters die dit algoritme gebruikt.
6.1.2
Testen van het aanduiden van een ader
Bij dit onderdeel moest er gekeken worden naar hoe goed het beeld van de aangeduide ader
teruggevonden werd in het andere camerabeeld. Hierbij is er gekeken naar het uiteindelijke resultaat van de detectie die door middel van een rechthoek rond de plaats van de ader gebeurde.
In het midden van deze rechthoek werd er tevens een punt weergegeven van de plaats waarop
de aangeduide ader zich bevond. Ook de coördinaten van de plaats van de ader in beide beelden werd in de terminal geprint. Bij deze techniek was het wel noodzakelijk dat er een ader
aangeduid werd. Wanneer men bijvoorbeeld een aanduiding doet op een plaats waar er zich
geen ader bevond, kan het zijn dat er geen juiste overeenkomst gevonden werd. Hiermee is
rekening gehouden doordat de chirurg na het aanduiden kan controleren of de overeenkomst in
48
Experimenten
Figuur 6.1: Beeld van het test−oog
Figuur 6.2: Aderdetectie
beide beelden wel juist kan zijn. Wanneer dit niet het geval is, kan de chirurg een andere plaats
aanduiden alvorens te starten met het detecteren van de naald. Figuur 6.2 geeft het resultaat
van deze aanduiding weer en de coördinaten van de positie van meerdere aanduidingen wordt
in tabel 6.1 weergegeven.
Figuur 6.3: Aderdetectie
6.1.3
Testen van het volgen van een naald
Bij deze techniek was het de eerste stap om enkel de naald te kunnen detecteren in het oog.
Dit werd gedaan aan de hand van kleursegmentatie. Hierbij moest, bij het afstellen van de
parameters van het algoritme, een afweging gemaakt worden tussen het weergeven van enkel
de naald op dit tussenresultaat met hierbij het risico een deel van de naald te verliezen of een
beeld te bekomen waarbij nog enkele delen van het beeld behouden blijven. Er is geopteerd
om dit laatste toe te passen aangezien het belangrijk was om de juiste positie van de punt van
de naald weer te kunnen geven. Aangezien de naalddetectie op beide beelden op dezelfde
manier verloopt, worden de resultaten op enkel het linker camerabeeld weergegeven. Figuur
6.4 geeft het tussenresultaat weer waarbij enkel de naald gevisualiseerd wordt in één van de
camerabeelden en figuur 6.5 geeft de voledige naald weer met nog een klein deel van het overige
beeld. Figuur 6.6 geeft van links naar rechts het inputbeeld, het beeld na kleursegmentatie en
6.2 Testen van de aansturing van de slave robot
49
Coördinaten aangeduide ader
Ader linker camera Ader rechter camera
coördinaat
x
y
x
y
Meting 1
999
307
914
339
Meting 2
915
496
831
527
Meting 3
935
627
1045
637
Meting 4
964
671
888
704
Meting 5 1056
260
972
292
Tabel 6.1: Testen aderaanduiding
Figuur 6.4: Slechte detectie van de naald
de naalddetectie. Dit beeld geeft weer dat wanneer er geen naald in het beeld aanwezig is er
ook geen aanduiding gebeurt van de naald. Wanneer dit wel zou gebeuren zouden de verkeerde
gegevens naar de robot gestuurd worden. Figuur 6.7 geeft dezelfde afbeeldingen weer met
hierop een naald weergegeven in het beeld. Op het rechter beeld zie je de aanduiding van de
punt van de naald. Tabel 6.2 geeft enkele coördinaten weer van de detectie van de punt van de
naald in het beeld.
Coördinaten van de punt van de naald
coördinaat
x
y
Meting 1 756
607
Meting 2 768
548
Meting 3 778
528
Meting 4 800
447
Meting 5 850
346
Tabel 6.2: Testen naalddetectie
6.2
Testen van de aansturing van de slave robot
Bij het testen van de robot moest eerst gekeken worden naar de opbouw van de bestaande labviewcode. De volgende stap was, zoals in sectie 5.2 uitgelegd, om de robot beter te kalibreren
50
Experimenten
Figuur 6.5: Goede detectie van de naald
Figuur 6.6: Naalddetectie zonder naald
alvorens hiermee testen te doen. Dit werd gedaan door de robot op bepaalde posities te plaatsen waarvan men de output van de encoders kende. Hierdoor konden de correctiefactoren van
de verschillende encoders bepaald worden. Na de kalibratie moest er gekeken worden hoe het
programma aangepast diende te worden om afzonderlijk van de master robot te kunnen functioneren. Hierbij is er eerst gekeken om vanuit het labview programma zelf de robot te bedienen
en vervolgens vanuit de linux-pc waarop de beeldverwerking gerealiseerd wordt. Alvorens
vanaf de linux-pc cördinaten te kunnen sturen, moest uitgezocht worden hoe deze pc met de
compactRIO geïnterfaced kon worden. De communicatie is uiteindelijk gerealiseerd door het
UDP-protocol te implementeren aan de hand van c programmatuur. Dit was vrij eenvoudig te
realiseren. Aangezien de kalibratie van de camera’s nog niet gerealiseerd was, kon het totale
systeem nog niet in zijn geheel getest worden. Om de aansturing van de robot vanaf de linux-pc
te testen zijn er dus enkele coördinaten gebruikt waarvan geweten was dat deze binnen de limieten van de robot lagen. Wanneer deze coördinaten vervolgens naar de robot gestuurd werden,
bewoog de robot ongeveer naar de gewenste positie. Er zat echter een fout op van ongeveer 3
mm ten opzichte van de gewenste positie. De reden van deze fout is dat de integrerende-actie
van de regelaar van de robot, die op het einde pas toegevoegd is, nog niet juist ingesteld is.
6.2 Testen van de aansturing van de slave robot
Figuur 6.7: Naalddetectie met naald
51
52
Experimenten
Hoofdstuk 7
Conclusie
In dit werk werden een aantal beeldverwerkingstechnieken onderzocht die gebruikt kunnen
worden om computergestuurde assistentie te verlenen aan chirurgen tijdens precieze microchirurgische intra-oculaire ingrepen. Hiertoe werd een operatie-microscoop type Leica M690 omgebouwd tot een digitale meetmicroscoop. Een interface met ROS werd opgebouwd die toelaat
alle beelden van de operatie op te nemen en te analyseren. Een aantal beeldverwerkingstechnieken werden uitgetest op retinale beelden, zoals onder meer aderdetectie d.m.v. Gabor filter,
naalddetectie d.m.v. Hough transformaties en template matching om corresponderende delen in
camerabeelden terug te vinden. Bovendien werd een protocol voorgesteld om op automatische
wijze een cannulatie uit te voeren. Dit gaat als volgt.
Eerst wordt door de chirurg de in te spuiten ader aangeduid op de digitale afbeelding van het
oog van de patiënt. Vervolgens wordt de aangeduide ader geëxtraheerd. De patiënt wordt dan
onder de operatiemicroscoop gelegd. Er zal door de chirurg een naald in het oog gebracht worden tot deze door de camera’s gedetecteerd wordt. De 3D-coördinaten van zowel de punt van
de naald en de aangeduide ader worden bepaald. Hierdoor kan de afstand tussen de punt van de
naald en de ader worden berekend. Na het doorsturen van deze afstand naar de robot zal deze
naar de gewenste positie bewegen.
Een UDP interface tussen beeldverwerkingssysteem en de robotcontroller werd opgebouwd
en het is nu mogelijk om de robot (en hiermee de naald die de robot vasthoudt) rechtstreeks te
sturen vanop afstand en technieken zoals visual servoing toe te passen op basis van één camerabeeld.
Om de diepte te schatten kan gebruik gemaakt worden van de schaduw van de naald die via een
kleurfilter uit het camera-beeld kan geëxtraheerd worden. Een alternatieve methode die werd
onderzocht is om via stereovisie 3D representaties van naald en retina af te leiden en deze informatie rechtstreeks te gebruiken om de cannulatie uit te voeren. Stereo-kalibratie van de op
de microscoop gemonteerde camera’s is geen evidente zaak en er werd veel moeite gedaan om
een degelijke test-opstelling te bouwen om dergelijke kalibratie mogelijk te maken. Een uiterst
precies kalibratiepatroon werd geprint en geplaatst op een speciaal ontworpen mechanisch kalibratiemechanisme.
Kalibratietesten gaven spijtig genoeg onvoldoende consistente resultaten. Als reden voor het
falen van de stereo-kalibratie kan aangehaald worden dat het dept-of-field van de camera waarschijnlijk te beperkt is voor de huidige opstelling. Door het kalibratiepatroon nog verder te
54
Conclusie
miniaturiseren zou dit probleem normaal gezien opgelost kunnen worden.
Een verdere bijdrage van dit werk bestaat uit een manier om de 3D voorstelling van de aan te
prikken aderlocatie te bepalen door gebruik te maken van template matching. Deze manier zou
toelaten om met minimale computing power en dus op hoge snelheid de ader locatie te volgen.
Dit is nodig om in een later stadium in staat te zijn om compensatie van hoofd-bewegingen van
de patiënt mogelijk te maken en dus een extra veiligheid in het systeem in te bouwen.
Deze thesis onderzocht enkele beeldverwerkingstechnieken om computergestuurde assistentie tijdens uiterst precieze microscopische intra-oculaire ingrepen mogelijk te maken. Hoewel
verder onderzoek nodig is om op betrouwbare wijze de volledige lus te sluiten en op automatische wijze een cannulatie uit te voeren, werd het potentieel van beeldverwerking duidelijk
aangetoond. Extra moeite dient gedaan te worden om de stereo-kalibratie tot een goed einde te
brengen. Vervolgens dient aandacht te gaan naar ontwikkelen van manieren om de robuustheid
(betrouwbaarheid) van de voorgestelde aanpak te verhogen. Dit kan door de expertise van de
chirurg maximaal te blijven gebruiken tijdens de operatie, door alternatieve/redundante beeldverwerkingstechnieken in parallel toe te passen en de consistentie van de resultaten te bewaken
of door methoden te ontwikkelen die specifiek trachten de invloed van stoorfactoren zoals belichting, beweging van patiënt te voorspellen of beperken.
Bibliografie
[1] Y. Zhang, W. Hsu, and M. L. Lee, “Detection of retinal blood vessels based on nonlinear
projections,” J Sign Process Syst, vol. 55, pp. 103–112, 2009.
[2] G. Welch and G. Bishop, “An introduction to the kalman filter,” University of North Carolina, Tech. Rep., 2007.
[3] D. Wu, M. Zhang, and J.-C. L., “On the adaptive detection of blood vessels in retinal
images,” Texas A&M University, Tech. Rep., March 24 2005.
[4] T. Chanwimaluang, G. Fan, and S. R. Fransen, “Hybrid retinal image registration,” IEEE
TRANSACTIONS ON INFORMATION TECHNOLOGY IN BIOMEDICINE, vol. 10, 2006.
[5] M. Sofka and C. V. Stewart, “Retinal vessel centerline extraction using multiscale matched
filters, confidence and edge measures,” IEEE TRANSACTIONS ON MEDICAL IMAGING,
vol. 25, 2006.
[6] S. Grigorescu, N. Petkov, and P. Kruizinga, “Comparison of texture features based on
gabor filters,” IEEE Trans. on Image Processing, vol. 11, pp. 1160–1167, 2002.
[7] [Online]. Available: http://matlabserver.cs.rug.nl/cgi-bin/matweb.exe
[8] R. Hanek and M. Beetz, “The contracting curve density algorithm: Fitting parametric
curve models to images using local self-adapting separation criteria,” the International
Journal of Computer Vision, vol. 59, pp. 233–258, 2004.
[9] C.Staub, G.Panin, A. Knoll, and R. Bauernschmitt, “Visual instrument guidance in
minimally invasive robot surgery,” International Journal on Advances in Life Sciences,
vol. 2, p. 3 en 4, 2010. [Online]. Available: http://www.iariajournals.org/life_sciences/
[10] A. Großmann and R. Poli, “Robust mobile robot localisation from sparse and noisy proximity readings using hough transform and probability grids,” 1999.
[11] D. H. Parks and S. S. Fels, “Evaluation of background subtraction algorithms with postprocessing,” International Conference on Advanced Video and Signal Based Surveillance,
pp. 192–199, 2008.
[12] C. I. Processing and P. R. Society, “Fast templatematching,” Canadian Image Processing
and Pattern Recognition Society, pp. 120–123, 1995.
[13] S. Hutchinson, G. Hager, and P. Corke, “A tutorial on visual servo control,” Robotics and
Automation, IEEE Transactions on, vol. 12, pp. 651–670, 1996.
56
BIBLIOGRAFIE
[14] D. Kragic and H. I. Christensen, “Survey on visual servoing for manipulation,” Computational Vision and Active Perception Laboratory, Fiskartorpsv, vol. 15, 2002.
[15] [Online]. Available: http://www.oogziekenhuis.nl/oogaandoeningen-en-oogafwijkingen/
verdiepende-informatie/glasvochttroebelingen-behandelingen.html
[16] “brochure eibos 2.” [Online]. Available:
ophthalmology/eibos-2.html
http://www.moeller-wedel.com/products/
[17] D. Litwiller and Dalsa, “Cmos vs. ccd,” Laurin Publishing, 2005. [Online]. Available:
http://www.findthatfile.com/download.php?i=52455399&t=hPDF
[18] D. Litwiller, “Ccd vs cmos: facts and fiction,” Photonics Spectra, pp. 475–486,
2003. [Online]. Available:
http://www.cctv-dvr.co.uk/catalogue/cctv%20security%
20surveillance%20ip%20network%20dome%20camera%20articles/Photonics_Spectra_
CCDvsCMOS_Litwiller.pdf
[19] A. Ryberg, A.-K. Christiansson, B. Lennartson, and K. Eriksson, “Camera modelling and
calibration - with applications,” University West Sweden, Tech. Rep., 2008.
[20] G. B. A. Kaehler, Learning Open CV, M. Loukides, Ed.
O’Reilly Media Inc, 2008.
[21] D. B. Gennery, “Generalized camera calibration including fish-eye lenses,” International
Journal of Computer Vision, vol. 3, pp. 239–266, 2006.
[22] K. J and S. S. Brandt, “A generic camera model and calibration method for conventional,
wide-angle, and fish-eye lenses,” IEEE Transactions on Pattern Analysis and Machine
Intelligence, vol. 8, pp. 1335–1340, 2006.
[23] H. J, “Geometric camera calibration using circular control points,” IEEE Transactions on
Pattern Analysis and Machine Intelligence, vol. 10, pp. 1066–1077., 2000.
[24] J. Liu, Y. Zhang, and Z. Li, “Selection of cameras setup geometry parameters in binocular
sterevision,” IEEE, p. 6, 2006. [Online]. Available: http://citeseerx.ist.psu.edu/viewdoc/
download?doi=10.1.1.86.3239&rep=rep1&type=pdf
[25] Depht
approximation
in
digital
imaging.
[Online].
Available:
http://sine.ni.com/nipdfgenerator/nipdfgenerator?pageURL=http://zone.ni.com/
devzone/cda/tut/p/id/8176&clientAppName=dz&dotsPerPixel=&dotsPerPoint=
[26] P. Hillman, “White paper: Camera calibration and stereo vision,” Lochrin Terrace, Edinburgh EH3 9QL, Tech. Rep., Oktober 2005.
[27] R. A. Hamzah and S. I. M. Salim, “Software calibration for stereo camera on
stereo vision mobile robot using tsai’s method,” International Journal of Computer
Theory and Engineering, vol. 2, pp. 1793 – 8201, 2010. [Online]. Available:
http://www.ijcte.org/papers/173-G272.pdf
[28] F. Cheng and X. Chen, “Intergration of 3d stereo vision measurements in
industrial robot applications,” International Conference, 2008. [Online]. Available:
http://www.ijme.us/cd_08/PDF/34_ENG%20102.pdf
BIBLIOGRAFIE
57
[29] [Online]. Available: http://www.ros.org/wiki/ROS
[30] R. Hartley and A. Zisserman, Multiple View Geometry in computer vision, C. U. Press,
Ed. The Press Syndicate Of The University Of Cambridge, 2003.
[31] H. Schreier, D. Garcia, and M. Sutton, “Advances in light microscope stereo vision,” Experimental Mechanics, vol. 44, pp. 278–288, 2004.
[32] [Online]. Available: http://www.ni.com/compactrio/
[33] [Online]. Available: http://nl.wikipedia.org/wiki/PID-regelaar
Download