View online - Ghent University Library

Gebarentaalherkenning met convolutionele neurale
netwerken
Lionel Pigou
Promotor: prof. dr. ir. Benjamin Schrauwen
Begeleiders: Sander Dieleman, Pieter-Jan Kindermans, Philémon Brakel
Masterproef ingediend tot het behalen van de academische graad van
Master of Science in de ingenieurswetenschappen: computerwetenschappen
Vakgroep Elektronica en Informatiesystemen
Voorzitter: prof. dr. ir. Jan Van Campenhout
Faculteit Ingenieurswetenschappen en Architectuur
Academiejaar 2013-2014
Gebarentaalherkenning met convolutionele neurale
netwerken
Lionel Pigou
Promotor: prof. dr. ir. Benjamin Schrauwen
Begeleiders: Sander Dieleman, Pieter-Jan Kindermans, Philémon Brakel
Masterproef ingediend tot het behalen van de academische graad van
Master of Science in de ingenieurswetenschappen: computerwetenschappen
Vakgroep Elektronica en Informatiesystemen
Voorzitter: prof. dr. ir. Jan Van Campenhout
Faculteit Ingenieurswetenschappen en Architectuur
Academiejaar 2013-2014
Woord vooraf
Ik wens Sander Dieleman en Pieter-Jan Kindermans hartelijk te bedanken voor hun
begeleiding. Hun expertise en passie voor het vakgebied was zeer motiverend.
Voor het nalezen van deze masterproef wil ik graag David De Lille, Sander Dieleman en
Pieter-Jan Kindermans bedanken.
v
Overzicht
Gebarentaalherkenning met convolutionele neurale netwerken
Lionel Pigou
Promotor: prof. dr. ir. Benjamin Schrauwen
Begeleiders: Sander Dieleman, Pieter-Jan Kindermans, Phil´emon Brakel
Masterproef ingediend tot het behalen van de academische graad van Master in de ingenieurswetenschappen: computerwetenschappen
Vakgroep Elektronica en Informatiesystemen
Voorzitter: prof. dr. ir. Jan Van Campenhout
Faculteit Ingenieurswetenschappen en Architectuur
Academiejaar 2013-2014
Universiteit Gent
Trefwoorden: gebarentaalherkenning, convolutionele neurale netwerken, machine learning,
deep learning, Microsoft Kinect
vi
Sign Language Recognition Using Convolutional
Neural Networks
Lionel Pigou. Superisors: Sander Dieleman, Pieter-Jan Kindermans. Promotor: Benjamin Schrauwen.
Ghent University - Department of Electronics and Information Systems
Abstract—There is an undenying communication problem between the Deaf community and the hearing majority. Innovations
in automatic sign language recognition try to break down this
communication barrier. Our contribution proposes a recognition
system using the Microsoft Kinect, convolutional neural networks
(CNNs) and GPU acceleration. Instead of constructing complex
handcrafted features, CNNs are able to automate the process of
feature construction [1]. We are able to recognize 20 isolated
gestures from the Italian Sign Language (ISL). The predictive
model is able to generalize on users and surroundings not
occuring during training with a validation accuracy of 91.7%.
The final test accuracy is 95.7% in the context of the ChaLearn
Looking at People 2014 (CLAP14) competition.
I. I NTRODUCTION
Very few people can understand sign language. This complicates communication between the Deaf community and the
hearing majority. The alternative of written communication is
cumbersome, because the Deaf community is generally less
skilled in writing a spoken language [2]. Furthermore, this
type of communication is impersonal and slow in face-toface conversations. If an accident occurs, it is often necessary
to quickly communicate with the emergency physician where
written communication is not always possible.
The purpose of this work is to contribute to the field of
automatic sign language recognition. There are two main
steps in building an automated recognition system for human
actions in spatio-temporal data [3]. The first step is to extract
features from the frame sequences. This will result in a
representation consisting of one or more feature vectors, also
called descriptors. This representation will aid the computer to
distinguish between the possible classes of actions. The second
step is the classification of the action. A classification model
will use the constructed representation to predict the class of
the action. In our model, the feature extraction is automated
by using convolutional neural networks (CNNs). An artificial
neural network is used (ANN) for classification.
II. R ELATED W ORK
The work in our research is a continuation of the previous
work by Roel Verschaeren in [4]. He proposed a CNN model
that recognizes a set of 50 different signs in the Flemish Sign
Language with an error of 2.5%, using the Microsoft Kinect.
However, this was achieved by training and evaluating the
model on a single person in a single environment.
In [5] an American Language recognition system is presented with a vocabulary of 30 words. They constructed
appearance-based representations and a hand tracking system
(a) RGB
(b) Depth map
(c) User index
(d) Skeleton
Fig. 2. Dataset for the ChaLearn gesture recognition challenges of 2013 [8]
and 2014.
to be classified with a hidden Markov model (HMM). An
error rate of 10.91% was achieved on the RWTH-BOSTON-50
database.
The approach in [6] uses the Microsoft Kinect to exract
appearance-based hand features and track the position in 2D
and 3D. The classification results were obtained by comparing
a hidden Markov model (HMM) approach with sequential
pattern boosting (SP-boosting). This resulted in an accuracy
of 99.9% on 20 different isolated gestures on their specifically
constructed dataset and 85.1% on a more realistic one with 40
gestures.
The Microsoft Kinect was also used in [7] that proposes a
recognition system for 239 words of the Chinese Sign Laguage
(CSL). Here, the 3D movement trajectory of the hands where
used in addition to a language model to construct sentences.
This trajectory is aligned and matched with a gallery of known
trajectories. The top-1 and top-5 recognition rates are 83.51%
and 96.32% respectively.
III. M ETHODOLOGY
A. Dataset
The used dataset is available in the context of the following
competition: ChaLearn Looking at People Challenge 2014
Track 3: Gesture Spotting (CLAP14). The same dataset is
used as the 2013 ChaLearn Multi-modal Gesture Recognition
competition [8]. CLAP14 consists of 20 different Italian gestures, performed by 27 users with variations in surroundings,
clothing, lighting and gesture movement. The videos are
recorded with a Microsoft Kinect. This means the depth map,
user index (location of the user in the depth map) and the joint
postitions are given (Figure 2). We used 6600 gesture samples
in the development set of CLAP14 for our experiments: 4600
for the training set and 2000 for the validation set. The test
Convolutions
16@5x5
Pooling
2x2x2
Convolutions
32@5x5
Pooling
2x2x2
Convolutions
48@4x4
Pooling
2x2x2
512
en
Flatt
Input
videos
Feature
map
2@64x64x32
Layer 1
Layer 2
Layer 3
Feature extraction
Fig. 1.
20
ANN
Classification
The architecture of the convolutional neural network. This illustustration only shows one of the two identical CNNs.
set of CLAP14 is also considered as the test set for this work
and constists of 3543 samples. The users and backgrounds in
the validation set do not occur in the training set. The users
and backgrounds in the test set can occur in the training and
validation set.
B. Preprocessing
In the preprocessing, the highest hand and the upper body
are cropped using the given joint information. This results in
four video samples (hand and body with depth and grayscale)
of resolution 64x64x32 (32 frames of size 64x64). Furthermore, the noise in the depth maps is reduced with thresholding,
background removal using the user index, and median filtering.
The end result is shown in Figure 3
information of the feature maps are pooled together. These
techniques are performed in multiple layers as shown in
Figure 1. For the pooling method, we used max-pooling:
only the maximum value in a local neighborhood of the
feature map will remain. To accommodate video data, the maxpooling is performed in three dimensions. However, using 2D
convolutions resulted in a better accuracy.
The architecture of the model consists of two CNNs, one
for extracting hand features and one for extracting upper body
features. Each CNN is three layers deep. Classification is done
with a classical ANN with one hidden layer. An illustration
of the architecture is depicted in Figure 1. Also, local contrast
normalisation (LCN) as in [15] is applied in the first two layers
and all artificial neurons are rectified linear units (ReLUs [16],
[17]).
D. Training details
(a) Original
(b) Noise reduction
Fig. 3.
(c) 4 input channels
Preprocessing.
C. Convolutional neural network
CNNs (based on [9]) are feature extraction models in the
field of deep learning that recently prove to be very succesful
at image recognition [10], [11], [12], [13]. As of now, the
models are used by various industry leaders like Google and
Facebook. And recently, researchers at Google applied CNNs
on video data [14].
CNNs are inspired by the visual cortex of the human
brain. The artificial neurons in a CNN will only connect to
a local region of the visual field, called a receptive field. This
is accomplished by performing discrete convolutions on the
image with filter values as trainable weights. Multiple filters
are applied for each channel, and together with the activation
functions of the neurons, they form feature maps. This is
followed by a pooling scheme, where only the interesting
During training, dropout [18] and data augmentation are
used to generalise the model. The data augmentation is performed in realtime on the CPU during the training phase
while the model trains on the GPU as in [10]. This consists
of spatial and temporal translations, zooming, and rotations.
We used Nesterov’s accelerated gradient descent (NAG) [19]
with a fixed momentum-coefficient of 0.9 and mini-batches
of size 20. The learning rate is initialised at 0.003 with a
5% decrease after each epoch. The weights in the CNNs are
randomly inititialised with a normal distribution µ = 0 and
σ = 0.04, and σ = 0.02 for the weights of the ANN. The
biases in the CNNs are initialised with 0.2 and the biases in
the ANN with 0.1.
Experiments are conducted on one machine with a hexacore
processor (Intel Core i7-3930K) and a NVIDIA GeForce
GTX 680 GPU. The models are implemeted using the Python
libraries Theano [20], and PyLearn2 [21] for the fast implementation of 2D convolutions by Alex Krizhevsky [10].
IV. R ESULTS
The validation results of the most notable experiments are
shown in Table I. We observe a validation accuracy of 91.70%
(8.30% error rate) for our best model. Furthermore, ReLUs
prove to be very effective with an improvement of 23.8% with
TABLE I
VALIDATION RESULTS .
Tanh units
ReLU
+ dropout
+ LCN (first 2 layers)
+ data augmentation
Error rate (%)
Impovement (%)
18.90
14.40
11.90
10.30
8.30
23.8
17.4
13.4
19.4
respect to tanh units. The accuracy on the test set is 95.68%
and we observe a 4.13% rate on false positives for continuous
predictions in the test videos. These results rank us fifth of
the 35 registered teams for the CLAP14 competition. As of
writing, the results and methods of the other participants are
not yet publicly available.
V. C ONCLUSION
This work shows that convolutional neural networks can be
used to accurately recognize different signs of a sign language,
with users and surroundings not included in the training set.
This generalization capacity of CNNs in spatio-temporal data
can contribute to the broader research field on automatic sign
language recognition.
R EFERENCES
[1] S. Ji, M. Yang, and K. Yu, “3D convolutional neural networks for
human action recognition.” IEEE transactions on pattern analysis and
machine intelligence, vol. 35, no. 1, pp. 221–31, Jan. 2013.
[2] M. Van Herreweghe, “Prelinguaal dove jongeren en nederlands: een
syntactisch onderzoek,” Universiteit Gent. Faculteit Letteren en Wijsbegeerte, 1996.
[3] R. Poppe, “A survey on vision-based human action recognition,” Image
and vision computing, vol. 28, no. 6, pp. 976–990, 2010.
[4] R. Verschaeren, “Automatische herkenning van gebaren met de microsoft
kinect,” 2012.
[5] M. M. Zaki and S. I. Shaheen, “Sign language recognition using a
combination of new vision based features,” Pattern Recognition Letters,
vol. 32, no. 4, pp. 572–577, 2011.
[6] H. Cooper, E.-J. Ong, N. Pugeault, and R. Bowden, “Sign language
recognition using sub-units,” The Journal of Machine Learning Research, vol. 13, no. 1, pp. 2205–2231, 2012.
[7] X. Chai, G. Li, Y. Lin, Z. Xu, Y. Tang, X. Chen, and M. Zhou, “Sign
Language Recognition and Translation with Kinect,” 2013.
[8] S. Escalera, J. Gonzlez, X. Bar, M. Reyes, O. Lopes, I. Guyon, V. Athistos, and H. Escalante, “Multi-modal gesture recognition challenge 2013:
Dataset and results,” ICMI, 2013.
[9] Y. Lecun, L. Bottou, Y. Bengio, and P. Haffner, “Gradient-based learning
applied to document recognition,” Proceedings of the IEEE, vol. 86,
no. 11, 1998.
[10] A. Krizhevsky, I. Sutskever, and G. Hinton, “Imagenet classification
with deep convolutional neural networks,” Advances in Neural
Information, pp. 1–9, 2012.
[11] D. Cires¸an, U. Meier, and J. Schmidhuber, “Multi-column deep neural
networks for image classification,” in Computer Vision and Pattern
Recognition (CVPR), 2012 IEEE Conference on. IEEE, 2012, pp. 3642–
3649.
[12] M. D. Zeiler and R. Fergus, “Visualizing and understanding convolutional neural networks,” arXiv preprint arXiv:1311.2901, 2013.
[13] I. J. Goodfellow, Y. Bulatov, J. Ibarz, S. Arnoud, and V. Shet, “Multidigit number recognition from street view imagery using deep convolutional neural networks,” arXiv preprint arXiv:1312.6082, 2013.
[14] A. Karpathy, G. Toderici, S. Shetty, T. Leung, R. Sukthankar, and
L. Fei-Fei, “Large-scale video classification with convolutional neural
networks,” in CVPR, 2014.
[15] K. Jarrett and K. Kavukcuoglu, “What is the best multi-stage
architecture for object recognition?” Computer Vision, 2009 IEEE 12th
International Conference on, pp. 2146–2153, 2009.
[16] V. Nair and G. E. Hinton, “Rectified linear units improve restricted boltzmann machines,” in Proceedings of the 27th International Conference
on Machine Learning (ICML-10), 2010, pp. 807–814.
[17] X. Glorot, A. Bordes, and Y. Bengio, “Deep Sparse Rectifier
Networks,” Proceedings of the 14th International Con- ference on
Artificial Intelligence and Statistics, vol. 15, pp. 315–323, 2011.
[18] G. E. Hinton, N. Srivastava, A. Krizhevsky, I. Sutskever, and R. R.
Salakhutdinov, “Improving neural networks by preventing co-adaptation
of feature detectors,” arXiv preprint arXiv:1207.0580, 2012.
[19] I. Sutskever, J. Martens, G. Dahl, and G. Hinton, “On the importance
of initialization and momentum in deep learning,” in Proceedings of the
30th International Conference on Machine Learning (ICML-13), 2013,
pp. 1139–1147.
[20] J. Bergstra, O. Breuleux, F. Bastien, P. Lamblin, R. Pascanu, G. Desjardins, J. Turian, D. Warde-Farley, and Y. Bengio, “Theano: a CPU
and GPU math expression compiler,” in Proceedings of the Python for
Scientific Computing Conference (SciPy), Jun. 2010, oral Presentation.
[21] I. J. Goodfellow, D. Warde-Farley, P. Lamblin, V. Dumoulin, M. Mirza,
R. Pascanu, J. Bergstra, F. Bastien, and Y. Bengio, “Pylearn2: a
machine learning research library,” arXiv preprint arXiv:1308.4214,
2013.
Inhoudsopgave
Woord vooraf
v
Overzicht
vi
Afkortingen
xii
1 Inleiding
1
1.1
Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1.1
Vlaamse Gebarentaal
. . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1.2
Automatische gebarentaalherkenning . . . . . . . . . . . . . . . . . .
2
1.2
Doelstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.3
Herkenning van menselijke acties in spatio-temporele data . . . . . . . . . .
4
1.3.1
Beeldrepresentatie . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.3.2
Classificatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Aanverwante studies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
1.4.1
Omtrent gebarentaalherkenning . . . . . . . . . . . . . . . . . . . . .
7
1.4.2
Omtrent videoclassificatie met CNN’s . . . . . . . . . . . . . . . . .
8
Leeswijzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.4
1.5
2 Theoretisch kader
2.1
2.2
9
Machine learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.1.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.1.2
Overfitting en generalisatie . . . . . . . . . . . . . . . . . . . . . . . 10
2.1.3
Artificieel neuraal netwerk . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.4
Gradient descent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.5
Deep learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Convolutioneel neuraal netwerk (CNN) . . . . . . . . . . . . . . . . . . . . . 17
2.2.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2.2
Filterbank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.3
Max-pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
x
xi
Inhoudsopgave
2.2.4
2.3
Volledig netwerk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Optimalisatietechnieken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.1
Normalisatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2
Momentum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.3
Dropout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.4
Data-augmentatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3 Onderzoeksopzet en resultaten
3.1
3.2
26
Dataset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.1
Eigenschappen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.2
Opdeling van de data . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Voorverwerking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.1
Bijsnijding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.2.2
Ruisonderdrukking in dieptebeeld . . . . . . . . . . . . . . . . . . . . 31
3.3
Architectuur, hyperparameters en training . . . . . . . . . . . . . . . . . . . 33
3.4
Opstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5
Experimenten en validatieresultaten . . . . . . . . . . . . . . . . . . . . . . 37
3.5.1
Invloed van de invoerkanalen . . . . . . . . . . . . . . . . . . . . . . 38
3.5.2
Invloed van de architectuur . . . . . . . . . . . . . . . . . . . . . . . 39
3.6
Segmentatie en realtime demo . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.7
Eindresultaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4 Conclusie
43
4.1
Besluit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2
Aanbevelingen voor verder onderzoek . . . . . . . . . . . . . . . . . . . . . . 44
Bibliografie
45
Afkortingen
ANN
artificieel neuraal netwerk
Aug
data-augmentatie
CNN
convolutioneel neuraal netwerk
Drop
dropout
FIFO
first in, first out
HMM
hidden Markov model
LCN
lokaal contrast normalisatie
LRN
lokaal response normalisatie
NAG
Nesterov’s accelerated gradient
ReLU
rectified linear unit
xii
Hoofdstuk 1
Inleiding
Het eerste hoofdstuk is de inleiding van de masterproef. Hier wordt de probleemstelling
(Sectie 1.1) en de doelstelling (Sectie 1.2) uitgelicht. Verder wordt in Sectie 1.3 een inleiding
gegeven omtrent de automatische herkenning van menselijke acties. Tot slot wordt er in
Sectie 1.4 de prestaties en technieken van aanverwante studies besproken.
1.1
1.1.1
Probleemstelling
Vlaamse Gebarentaal
Vlaamse Gebarentaal is een visuele taal waarbij men begrippen communiceert door specifieke
hand-, arm-, hoofd- en lichaamsbewegingen te maken. Het is een volwaardige taal met een
eigen lexicon en grammatica onafhankelijk van het Nederlands (of een andere gesproken taal).
De Vlaamse Gebarentaal kan gebruikt worden in alle (face-to-face) situaties waarin ook een
gesproken taal gebruikt kan worden, gaande van een gesprek aan de ontbijttafel tot het geven
van een academische presentatie. In tegenstelling tot wat velen denken, is “gebarentaal” geen
internationale taal. In Vlaanderen gebruikt men de Vlaamse Gebarentaal, die verschillend
is van de Frans-Belgische Gebarentaal in Walloni¨e of de Nederlandse Gebarentaal in
Nederland. Er bestaan een vijftal dialecten of varianten van de Vlaamse Gebarentaal, die
gebruikt worden in regio’s die ongeveer overeenkomen met de vijf Vlaamse provincies. Deze
varianten verschillen slechts in beperkte mate [Van Herreweghe & Vermeerbergen, 2009].
Hierdoor verstaat slechts een kleine groep van mensen de lokale gebarentaal. Dit bemoeilijkt
de communicatie tussen de Dovengemeenschap en horenden. Er zijn dove of slechthorende
mensen die een gesproken taal kunnen beheersen, omdat ze niet doof geboren zijn of omdat
ze het geleerd hebben, maar velen kunnen dit maar in beperkte mate. Ook hun schriftelijke
1
Hoofdstuk 1. Inleiding
2
vaardigheden in een gesproken taal (bijvoorbeeld het Nederlands) zijn gemiddeld beperkter
dan die van de gemiddelde horende persoon [Van Herreweghe 96]. Bovendien is schriftelijke
communicatie onpersoonlijk en te traag voor directe conversaties. Bij een ongeval is het
vaak ook noodzakelijk te communiceren met de spoedarts en is schriftelijke communicatie
niet altijd mogelijk. In dergelijke situaties worden vaak tolken Vlaamse Gebarentaal
ingezet, maar een Vlaming met gehoorsbeperking krijgt voor priv´e-situaties (zoals een
doktersbezoek) maar 18 tolkuren per jaar terugbetaald van de Vlaamse overheid.
1.1.2
Automatische gebarentaalherkenning
Automatische gebarentaalherkenning heeft als doel het leven van mensen, die geen gesproken
taal beheersen, te vergemakkelijken. Het herkennen van gebaren is voor de mens een relatief
eenvoudige taak. Onze hersenen zijn namelijk in staat te interpreteren wat men te zien krijgt,
waardoor men vrijwel onmiddellijk verschillende gebaren van elkaar kan onderscheiden.
Mensen zien waar de handen zich bevinden, in welke richting de armen bewegen en hoe
de vingers gestrekt of geplooid worden. Deze interpretatiemogelijkheden van de mens zijn
zeer complexe neurologische fenomenen waar men nog altijd niet van weet hoe ze precies
werken.
De automatisering van gebarentaalherkenning introduceert een hele reeks van problemen
waar men in eerste instantie niet aan zou denken. Dit komt omdat deze voor de mens
triviaal of niet-bestaand zijn. Computers en slimme apparaten hebben de mogelijkheid
om te “zien” door de aansluiting van een camera. Tegenwoordig is dat zelfs mogelijk met
dieptezicht door 3D-cameratechnologie. Maar de interpretatiemogelijkheden van computers
zijn nog ver verwijderd van die van de mens. Het enige wat de computer waarneemt zijn
pixelwaarden. De grootte van die pixelwaarden is gebaseerd op de lichtintensiteit van het
opgenomen beeld. Dat heeft als gevolg dat beelden uit een donkere ruimte heel andere
pixelwaarden bevatten dan beelden uit een goed verlichte ruimte, terwijl beide beelden
verder dezelfde zouden kunnen zijn.
Gebarentaalherkenning is dus moeilijk, omwille van de grote variabiliteit van de invoer.
De gebruiker kan ver van of dicht bij de camera staan, links of rechts, onder of boven in
het beeld. De gebruikers kunnen klein of groot zijn, andere lichaamsverhoudingen hebben
of verschillende kleding dragen. Ze zijn links- of rechtshandig, maken zeer expressieve
of meer ingetogen gebaren. De achtergrond van de gebruiker kan storende elementen
bevatten, er kunnen meerdere gebruikers in beeld komen of de ruimte kan slecht verlicht
zijn. Deze problemen, en nog vele andere die niet vermeld werden, zijn zaken waar het
ideale herkenningssysteem rekening mee moet houden.
Een bijkomend probleem is dat gebarentaal uit een continue stroom van gebaren bestaat.
Hoofdstuk 1. Inleiding
3
Deze continue stroom zal in eerste instantie automatisch gesegmenteerd moeten worden,
omdat men moet weten wanneer een afzonderlijk gebaar begint en wanneer het eindigt.
Men moet hiervoor rekening houden met de “bewegingsepenthesis”, dit is het fenomeen
op de grens tussen twee gebaren waar men een beweging maakt om van het einde van
het eerste gebaar over te gaan naar het begin van het tweede gebaar. Onderzoek naar
zulke automatische segmentatie is zeer schaars [Yang et al., 2010], maar is desondanks een
essentieel onderdeel voor het herkenningssysteem.
Vlaamse Gebarentaal heeft daarnaast ook een specifieke grammatica, waarbij afzonderlijke
gebaren gecombineerd worden tot grotere betekenisvolle eenheden, i.e. zinsdelen of hele
zinnen. De automatisering hiervan vereist dat taalspecifieke regels worden toegepast om
de herkende gebaren te combineren.
Niet alleen in de dovengemeenschap is gebarentaal belangrijk, maar ook in sommige
omgevingen of situaties waar gesproken taal niet mogelijk is. Enkele voorbeelden zijn
vliegvelden, drukke restaurants en tijdens het diepzeeduiken. Men spreekt in deze gevallen
eerder over afgesproken gebaren dan over een volwaardige taal.
1.2
Doelstelling
Het doel van deze masterthesis is om een stap vooruit te maken in het domein van
automatische gebarentaalherkenning met behulp van convolutionele neurale netwerken
(afgekort door CNN’s) en GPU-acceleratie. Een CNN is een model uit deep learning,
een subtak van machine learning. De recente succesverhalen van CNN’s in domeinen als
videoclassificatie [Karpathy et al., 2014], [Ji et al., 2013] en fotoclassificatie [Krizhevsky
et al., 2012], [Cire¸san et al., 2011a],[Cire¸san et al., 2011b] en de toepassing ervan in de
industrie door o.a. Google en Facebook, staven het gebruik van deze techniek.
Deze masterproef is een verderzetting op het werk van Roel Verschaeren, die zijn masterthesis aan de UGent in juni 2012 verdedigde [Verschaeren, 2012]. Hij heeft met succes
een CNN ontwikkeld die 50 verschillende gebaren kan herkennen op een gebruiker met
een nauwkeurigheid van 97.5%. Het model wordt getraind door elk gebaar tien keer op te
nemen met een Microsoft Kinect om tot een dataset te komen van 500 voorbeelden. Dit
moet herhaald worden voor elke gebruiker, aangezien het model niet kan trainen op de ene
gebruiker en herkennen op de andere.
De generalisering (het concept van generalisatie wordt ge¨ıntroduceerd in Sectie 2.1.2) van
het model van Roel Verschaeren is ´e´en van de doelen voor deze masterproef. Dit wil
zeggen dat het CNN gebaren moet herkennen op gebruikers en omgevingen die niet in
de trainingsfase voorkomen. Hiervoor is de gebarendataset die Roel Verschaeren heeft
Hoofdstuk 1. Inleiding
4
opgenomen niet voldoende, zoals aangetoond wordt in zijn werk. De dataset uitbreiden is
een zeer tijdrovende taak en ik heb daarom beslist om de ChaLearn dataset [Escalera et al.,
2013] te gebruiken die meerdere malen groter is, maar 20 gebaren bevat in plaats van 50.
Naast generalisering is het ook de bedoeling state-of-the-art acceleratietechnieken voor
CNN’s en neurale netwerken toe te passen om een competitief resultaat te behalen op de
ChaLearn wedstijden van 2013 en 2014. Zonder optimalisatietechnieken, om de training te
versnellen en het model te doen generaliseren, is het haast onmogelijk om competitieve
resultaten te behalen.
Verder zal een realtime herkenningssysteem ontwikkeld worden voor 20 verschillende
ge¨ısoleerde gebaren, gebruik makend van de Microsoft Kinect. Om dit te verwezenlijken
is een segmentatiesysteem nodig, dat automatisch bepaalt wanneer een gebaar begint en
eindigt. Desondanks zal er de nadruk gelegd worden op classificatietechnieken en minder
op segmentatietechnieken.
Kort samengevat, zijn dit de hoofddoelen voor deze masterthesis:
• verdere ontwikkeling van het CNN, gebaseerd op het werk van Roel Verschaeren,
voor de herkenning van ge¨ısoleerde gebaren in een beperkt vocabularium,
• generalisatie voor de herkenning op gebruikers en achtergronden die niet in de
trainingset voorkomen,
• acceleratie om de trainingsfase te versnellen,
• segmentatie voor de herkenning in continue video’s en realtime toepassingen,
• ontwikkeling van een realtime-demo, gebruik makend van de Microsoft Kinect 3D
camera.
1.3
Herkenning van menselijke acties in spatio-temporele
data
Het herkennen van menselijke acties, inclusief gebaren(taal), in spatio-temporele data
bestaat uit twee hoofdstappen (Figuur 1.1. De eerste stap is de extractie van features
in de sequentie van beelden. Een video zal dus eerst getransformeerd worden in een
representatie die robuuster is voor herkenning. Deze representatie bestaat uit ´e´en of
meerdere featurevectoren (ook descriptors genoemd) . De tweede stap is de classificatie
van de actie. Deze stap zal gebruik maken van de representatie om een klasselabel aan de
invoervideo toe te kennen. De technieken en modellen die in deze sectie beschreven worden
zijn gebaseerd op de onderzoekswerken [Poppe, 2010] en [Ali & Shah, 2010].
5
Hoofdstuk 1. Inleiding
Feature-extractie
Video
Beeldrepresentatie
Classificatie
Klasse
Figuur 1.1: Overzicht van een herkenningssysteem met behulp van videodata.
1.3.1
Beeldrepresentatie
De verschillende benaderingen voor de herkenning van menselijke handelingen en activiteiten
is volgens [Ali & Shah, 2010] op te delen in categorie¨en op basis van representaties.
Representaties kunnen gebaseerd zijn op:
• Visuele features: men tracht hier het uiterlijk van het menselijk lichaam of lichaamsdelen te modelleren met featurevectoren zoals SIFT (Scale Invariant Feature Transform),
Haar of HOG (Histogram of Oriented Gradients) descriptors. Met behulp van, bijvoorbeeld, Hidden Markov Modellen (HMM) kan er rekening gehouden worden met
het tijdsaspect.
• Vormfeatures: representaties gebaseerd op vormfeatures zullen randen en silhouetten
extraheren om de pose van het menselijk lichaam te encoderen per frame. Dit kan
eveneens uitgebreid worden naar meerdere frames door HMM of volumefeaturedescriptors te gebruiken.
• Volumefeatures (3D-features): deze features worden ge¨extraheerd door de video’s als
driedimensionale volumes te benaderen. Een mogelijke methode is om bovenstaande
descriptors uit te breiden in drie dimensies, met de tijdscomponent als derde dimensie.
Enkele voorbeelden zijn 3D SIFT, 3D HOG en 3D Haar descriptors.
• Points/Region/Volume Of Interest (POI, ROI, VOI): hier worden punten (1D),
gebieden (2D) of volumes (3D) getracked in de beelden van de video’s. De trajecten
van deze features in de tijdsdimensie kunnen ook nuttig zijn.
• Optical flow: deze features zijn gebaseerd op de bewegingsinformatie aanwezig in de
video’s. De optical flow is de distributie van de snelheid van bewegende objecten in een
beeld. Deze kunnen bepaald worden door schattingen te maken met opeenvolgende
frames.
Er bestaan dus beeldrepresentaties die de temporele dimensie in rekening brengen en
anderen die enkel features extraheren per frame. Deze laatsten moeten rekenen op de
classificatieprocedure om de temporele variaties te hanteren.
Bij traditionele methoden moet er feature engineering gebeuren vooraleer een classificatie
kan gemaakt worden. Dit wil zeggen dat er eerst een aantal featurevectoren moeten
Hoofdstuk 1. Inleiding
6
gekozen worden en de extractie uit de invoer expliciet moet ge¨ımplementeerd worden. Met
convolutionele neurale netwerken wordt automatisch geleerd tijdens de trainingsfase welke
features het meest gunstig zijn om te extraheren zonder expliciet te specificeren hoe deze
kenmerken eruit moeten zien.
1.3.2
Classificatie
Eens een representatie gevormd is, wordt het gebruikt door een classificatiemodule die
de juiste klasse van mogelijke menselijke acties zal aanduiden. In het geval waar de
beeldrepresentatie nog een te hoge dimensionaliteit bezit, zal meestal een tussenstap
toegevoegd worden om de dimensionaliteit te reduceren, zoals PCA (Principal Component
Analysis). Veelgebruikte classificatietechnieken die niet specifiek rekening houden met de
tijdsdimensie zijn de volgende:
• k-nearest neighbor (kNN)
• artifici¨ele neurale netwerken (ANN)
• support vector machines (SVM)
• random forests (RF)
Modellen die wel rekening houden met het temporele aspect:
• hidden Markov modellen (HMM)
• dynamic time warping (DTW)
• conditional random fields (CRF)
• sequential pattern boosting (SP-boosting)
Voor de experimenten van deze thesis wordt een artificieel neuraal netwerk gebruikt,
omdat dit de meest gebruikte classificatiemethode is bij convolutionele neurale netwerken.
CNN’s zijn namelijk gebaseerd op ANN’s. Desondanks wordt soms ook met andere
classificatietechnieken ge¨experimenteerd.
Hoofdstuk 1. Inleiding
1.4
1.4.1
7
Aanverwante studies
Omtrent gebarentaalherkenning
[Zaki & Shaheen, 2011] gebruiken een representatie gebaseerd op een combinatie van visuele
features: de handvorm, de handori¨entatie, de plaats van articulatie en de handbeweging.
Enkel de meest dominante hand wordt getracked. Als classificatietechniek wordt een hidden
Markov model (HMM) toegepast. Het systeem wordt getest op de RWTH-BOSTON-50
database met videos van Amerikaanse Gebarentaal met een vocabularium van 50 woorden
(waarvan 30 gebruikt worden) en drie gebruikers. Het eindresultaat is een foutpercentage
van 10.91%.
[Cooper et al., 2012] presenteren een aantal benaderingen voor gebarenherkenning met
behulp van visuele handfeatures, 2D - en 3D tracking met de Microsoft Kinect, en vergelijken
HMM met SP-boosting voor classificatie. Ze gebruiken een zelf-opgenomen dataset en
halen een herkenningsnauwkeurigheid van 99.9% op 20 verschillende ge¨ısoleerde gebaren en
85.1% op een meer realistische dataset met 40 gebaren.
[Chai et al., 2013] herkennen 239 woorden uit de Chinese Gebarentaal door eveneens
gebruik te maken van de Microsoft Kinect 3D camera. Het 3D-bewegingstraject van de
gebruiker wordt gealigneerd en gematched met een gallerij van gekende trajecten. Hierbij
wordt elk woord vijf keer opgenomen. De top-1 en top-5 herkenningspercentages zijn
83.51% en 96.32% respectievelijk. Verder wordt ook een taalmodel ontwikkeld voor de
opbouw van zinnen.
[Verschaeren, 2012], waarop deze masterproef gebaseerd is, heeft met success een convolutioneel neuraal netwerk ontwikkeld die 50 verschillende gebaren uit de Vlaamse Gebarentaal
kan herkennen op een gebruiker met een nauwkeurigheid van 97.5%. Het model wordt
getraind door elk gebaar tien keer op te nemen met een Microsoft Kinect om tot een dataset
te komen van 500 voorbeelden. Dit moet herhaald worden voor elke gebruiker, aangezien
het model niet kan trainen op de ene gebruiker en herkennen op de andere.
[Vannieuwenhuyse, 2013], een masterthesis van de UGent, bouwt een herkenningssteem
met behulp van hidden Markov modellen. Hier wordt een Microsoft Kinect gebruikt voor
de positie en de richting van de vingers en van beide handen te extraheren. Daarvoor
wordt een dataset van 20 verschillende ge¨ısoleerde gebaren opgenomen. Het eindresultaat
is een nauwkeurigheid van 84.33%.
Hoofdstuk 1. Inleiding
1.4.2
8
Omtrent videoclassificatie met CNN’s
[Ji et al., 2013] ontwikkelt een 3D convolutioneel neuraal netwerk voor de herkenning
van menselijke acties in realistische, ongecontroleerde omgevingen. Door driedimensionale
convoluties worden zowel spatiale als temporele features automatisch ge¨extraheerd uit de
video’s. De automatiseren van feature extractie heeft als gevolg dat er geen handgemaakte
features meer moeten geconstrueerd worden. Experimenten en evaluaties worden uitgevoerd
op de TRECVID 2008 dataset, waar het de beste resultaten tot nu toe behaalt, en de KTH
dataset, waar het zeer competitieve resultaten behaalt.
[Karpathy et al., 2014] toont aan dat automatische feature-extractie met CNN’s een
aanzienlijke verbetering is ten opzichte van handgemaakte feature-extractie: van 55.3%
naar 63.9% classificatienauwkeurigheid op een dataset van 1 miljoen YouTube videos
met 487 te classificeren categori¨en. Daarnaast wordt ge¨experimenteerd met verschillende
fusietechnieken om de ge¨extraheerde features van elk beeld lokaal in de tijd met elkaar te
fuseren. De conclusie is dat de verbetering ten opzichte van het model zonder fusering niet
zo significant is (een nauwkeurigheid van 59.3% naar 60.9%). Verder worden de bovenste
lagen van het model hertraind met de UCF- 101 Action Recognition dataset en kan een
sterke verbetering waargenomen worden in vergelijking met het UCF-101 baseline model
(een nauwkeurigheid van 43.9% naar 63.3%).
1.5
Leeswijzer
In het tweede hoofdstuk worden de technische en theoretische aspecten van dit werkstuk
in detail uiteengezet. Hier komen machine learning (Sectie 2.1), convolutionele neurale
netwerken (Sectie 2.2) en optimalisatietechnieken (Sectie 2.3) aan bod.
Hoofdstuk 3 beschrijft de onderzoeksopzet en de onderzoeksresultaten. De gebruikte
dataset (Sectie 3.1), de voorverwerking op deze dataset (Sectie 3.2), de architectuur van het
model (Sectie 3.3), de opstelling voor de experimenten (Sectie 3.4), de validatieresultaten
(Sectie 3.5), de segmentatietechnieken (Sectie 3.6) en de testresultaten (Sectie 3.7) worden
in het hoofdstuk besproken.
Het laatste hoofdstuk formuleert een besluit in Sectie 4.1 en bespreekt enkele aanbevelingen
voor verder onderzoek in Sectie 4.2.
.
Hoofdstuk 2
Theoretisch kader
2.1
2.1.1
Machine learning
Inleiding
Kort samengevat, verwijst Machine learning naar computers die leren voorspellen uit
data. Volgens Arthur Samuel in 1959 is de definitie van machine learning “het vakgebied
dat computers de mogelijkheid geeft om te leren zonder expliciet geprogrammeerd te
worden” [Samuel, 1959]. In 1997 gaf Tom Mitchell de volgende definitie: “Een computerprogramma leert van ervaring E met betrekking tot een klasse van taken T en prestatiemaat P,
als de prestaties op taken in T, gemeten door P, verbetert met ervaring E” [Mitchell, 1997].
Een predictief model zal leren een prestatiemaat te verbeteren door ervaring op te doen.
Het leren (of trainen) gebeurt door (hyper)parameters van een model te optimaliseren met
behulp van algoritmen uit machine learning. Deze optimalisatie-algoritmen zorgen ervoor
dat de parameters van het model iteratief worden bijgestuurd tijdens het trainen. De
prestatiemaat moet goed gekozen worden zodat het een zo nauwkeurig mogelijke indicatie
geeft over het predictief vermogen van het systeem. Tijdens de trainingsfase wordt het
model geoptimaliseerd, tijdens de evaluatiefase wordt het model ge¨evalueerd en tijdens
de testfase wordt een finale evaluatie gemaakt of wordt het systeem toegepast in een
productie-omgeving.
Ervaring wordt opgedaan door het predictief model te trainen met behulp van een dataset.
De beschikbare data wordt meestal opgedeeld in drie delen: een trainingset, een validatieset
en een testset die in de trainingsfase, de evaluatiefase en de testfase respectievelijk worden
gebruikt. De trainingset is meestal de grootste omdat deze gebruikt wordt om de parameters
van het model te bepalen (= leren of trainen). De validatieset en de testset moeten groot
9
10
Hoofdstuk 2. Theoretisch kader
genoeg zijn om representatieve evaluatie- en testscores te verkrijgen.
De testset mag tijdens de ontwikkeling van het model niet gebruikt worden, omdat men
anders een systeem kan opbouwen dat geoptimaliseerd wordt om zo goed mogelijk te
presteren op de gebruikte testset. Zou men nadien met een andere testset evalueren, zal
die testscore niet zo hoog zijn, waardoor de finale evaluatiescore niet meer representatief is.
Het type of de categorie van machine learning dat in deze thesis de bovenhand zal
halen is gesuperviseerde classificatie. Gesuperviseerd, omdat de traingset bestaat uit
voorbeeldparen van invoeren en uitvoeren. De invoeren zijn de datavoorbeelden en de
uitvoeren zijn klasselabels. Met andere woorden, de trainingset bevat de oplossing voor
de voorspellingen. Het identificeren of voorspellen tot welke klasse een nieuw voorbeeld
behoort, wordt classificatie genoemd. Een nieuw voorbeeld is een ongeziene datavoorbeeld
die niet voorkomt in de trainingset. De uitvoer van het model is een klasselabel die de
voorspelde klasse aangeeft. Zoals later beschreven zal worden, kan de uitvoer ook de
voorspelde probabiliteiten voor elke klasse weergeven.
Een classificatieprobleem in machine learning kan als volgt beschreven worden. Gegeven
een trainingset T :
T = {(x(n) , y (n) )}
, x(n) ∈ RD , y (n) ∈ N, n = 1, ..., N
(2.1)
met x(n) de n-de datavoorbeeld met klasselabel y (n) , D het aantal dimensies van x, en N
het aantal trainingsvoorbeelden. Het classificatieprobleem is dan het schatten/benaderen
van een model f met parameters θ zodat:
f (x, θ) = y,
∀(x, y) ∈ T.
(2.2)
Het uiteindelijke getrainde classificatiemodel kan zowel een benadering als een exacte
schatting van f en θ zijn. De onbekende klasselabel y van een nieuw voorbeeld xnieuw wordt
voorspeld door f (xnieuw , θgetrained ) = yˆ. Een welbekend predictief model voor classificatie
is een artificieel neuraal netwerk (ANN). ANN’s worden gebruikt als classificatiesysteem
voor de experimenten van deze thesis en zullen in de volgende subsectie besproken worden.
2.1.2
Overfitting en generalisatie
Overfitting is het fenomeen dat veroorzaakt wordt door de trainingset dat niet groot
genoeg is, door een te groot aantal modelparameters (men zegt ook dat het model te
complex is) of door een combinatie van beide. Het gevolg is dat de prestatie aanzienlijk
vermindert indien men het model op ongeziene data evalueert. Met andere woorden, het
11
Hoofdstuk 2. Theoretisch kader
model is niet gegeneraliseerd om patronen te herkennen op data die niet in de trainingset
voorkomen. Generalisatie is dus het vermogen om nauwkeurige voorspelling te maken op
nieuwe datavoorbeelden.
Overfitting gebeurt doordat het model de trainingsdata memoriseert en dus de aanwezige
ruis en imperfecties probeert te modelleren door de exacte schatting (of allesinds een zeer
nauwkeurige benadering) van f en θ in (2.2) te bekomen. Om dit tegen te gaan wordt de
dataset opgedeeld in een trainingset en een validatieset. Op deze manier is het doel niet
meer om een zo nauwkeurig mogelijke f en θ te schatten. In de plaats daarvan wordt een
evaluatiescore op de validatieset geminimaliseerd (of gemaximaliseerd, afhankelijk van de
gekozen scorefunctie).
Nu is er echter het probleem dat het model geoptimaliseerd wordt voor de validatieset en
dus is er nog altijd sprake van overfitting. Is de prestatie ook dezelfde met data buiten de
validatie- en trainingset? Deze score is dus niet representatief voor het voorspellingsvermogen van het model. Daarom wordt de beschikbare data opgedeeld in drie delen: 60%
van de data dient als trainingset, 20% validatieset en 20% testset (andere verdelingen zijn
mogelijk). Het enige verschil is dat de testset nooit mag dienen als middel om het model
aan te passen met als doel een beter prestatie te verkrijgen op de testscore. Daarvoor
dient de validatieset. In het ideale geval wordt de testset slechts ´e´en keer gebruikt voor de
eindevaluatie. Voor alle duidelijkheid, dit zal het generalisatievermogen niet verbeteren,
maar de testscore zal een betere indicatie van generalisatie weergeven dan de validatiescore.
Om de generalisatie van een model te verbeteren, wordt gebruik gemaakt van regularisatie
en data-augmentatie, die beiden later zullen besproken worden.
2.1.3
Artificieel neuraal netwerk
Artifici¨ele neurale netwerken (ANN’s) zijn ge¨ınspireerd door het neurale netwerk in het
menselijk brein. In onze hersenen worden ongeveer 100 miljard neuronen met elkaar
verbonden in een complex netwerk. Neuronen zijn op zichzelf staande verwerkingseenheden
en vormen de bouwstenen van het zenuwstelsel. Ze ontvangen, verwerken en versturen
informatie doorheen de hersenen en het lichaam. Bij een artificieel neuron wordt dit
nagebootst door middel van invoer, gewichten, een bias, een sommatie, een activatiefunctie
en een uitvoer zoals afgebeeld in Figuur 2.1a.
Een artificieel neuron kan formeel als volgt beschreven worden:
yneuron = a b +
D
X
i=1
!
x i wi
(2.3)
12
Hoofdstuk 2. Theoretisch kader
2
Invoer
x2
w2
x3
w3
1
Activatie
Σ
Uitvoer
y
a(x)
x1
Gewichten
w1
Bias
b
0
−1
−2
(a) Artifici¨ele neuron.
ReLU
Tanh unit
Sigmo¨ıde unit
−1
0
1
2
x
(b) Activatiefuncties.
Figuur 2.1: Een artifici¨ele neuron met 3 invoerdimensies.
waar xi de i-de invoer van de neuron is, y de uitvoer, a de activatiefunctie, b de bias en wi
het gewicht voor de verbinding met de i-de invoer.
De activatiefunctie zorgt voor een niet-lineariteit in het ANN. Hierdoor kunnen nietlineaire classificatieproblemen opgelost worden. Dit zal het voorspellingsvermogen van het
model aanzienlijk verbeteren. Artifici¨ele neuronen worden vaak genoemd naargelang hun
activatiefunctie. De meest gebruikte neuronen (of units) zijn afgebeeld in Figuur 2.1b en
hebben de volgende definitie:
Tanh unit: a(x) = tanh(x)
1
Sigmo¨ıde unit: a(x) =
1 + exp(−x)
(2.4)
Rectified linear unit (ReLU): a(x) = max(0, x)
De tangens hyperbolicus- en de sigmo¨ıde-functie zorgen ervoor dat de waarden doorheen
het netwerk binnen het bereik [-1,1] en [0,1] respectievelijk blijven. ReLU’s verwijderen
negative waarden door ze op 0 af te beelden en passen een identieke afbeelding toe op het
volledige [0,+∞] bereik.
De artifici¨ele neuronen worden in verschillende lagen met elkaar verbonden om een artificieel
neuraal netwerk te vormen (Figuur 2.2). In het kader van deze thesis worden enkel feedforward ANN’s beschouwd, i.e. ANN’s zonder lussen. De eerste laag is de invoerlaag, de
laatste laag wordt de uitvoerlaag of de softmaxlaag genoemd en alle lagen ertussen worden
verborgen lagen genoemd. De invoerlaag neemt waarden aan van de datavoorbeelden die
men tracht te classificeren. De softmaxlaag geeft als uitvoer de voorspelde probabiliteiten
voor elke klasse. Opeenvolgende lagen hebben een volledige connectiviteit, wat wil zeggen
dat elke unit in een laag verbonden wordt met elke unit in de volgende laag. Het aantal
verborgen lagen en het aantal verborgen units zijn hyperparameters die geoptimaliseerd
moeten worden door evaluatie op de validatieset.
13
Hoofdstuk 2. Theoretisch kader
Verborgen
Invoer
Verborgen
Softmax
(1)
w(1)
x1
h1
w(2)
(2)
h1
(1)
x2
h2
w(3)
p(y = 1|x)
(2)
x3
h2
p(y = 2|x)
(1)
x4
h3
x5
(2)
1 b
1
1 b(3)
b(1)
Figuur 2.2: Een artificieel neuraal netwerk met 2 klassen, 4 invoerdimensies en 2 verborgen lagen.
De uitvoer van de j-de verborgen laag h(j) (x) wordt gedefinieerd door:
  a b(j) + w(j) x
,j = 1
h
i
h(j) (x) =
 a b(j) + w(j) h(j−1) (x) , 1 < j ≤ L
(2.5)
met L het aantal verborgen lagen en w(j) x het inwendig product van de invoer met de
gewichten (i.e. gewogen som van de invoer).
De uitvoer van het ANN wordt bepaald door de softmaxlaag. Deze laag bevat evenveel units
als het aantal klassen voor het classificatieprobleem. De neuronen hebben een verschillende
functionaliteit dan die van de verborgen units. Ze geven namelijk de voorspelde probabiliteit
van elke klasse weer:
α(x) = b(L+1) + w(L+1) h(L) (x)
exp[α(x)j ]
p(y = j|x) = PC
i=1 exp[α(x)i ]
(2.6)
softmax(x) = [p (y = 1|x) , . . . , p (y = C|x)]T
De functie α is de pre-activatie (de bewerkingen v´oo´r de activatie) van de laatste verborgen
laag en C is het aantal klassen. p(y = j|x) is de voorspelde probabiliteit dat y, de te
voorspellen klasse-index, gelijk is aan de klasse-index j, gegeven de invoer x.
Het ANN kan beschreven worden als het classificatiemodel f :
f (x, θ)j = softmax(x, θ)j = p(y = j|x, θ)
(2.7)
met parameters θ:
θ = {w(1) , b(1) , . . . , w(L+1) , b(L+1) }
(2.8)
Indien men slechts ´e´en klasse wil, in plaats van voorspelde probabiliteiten, kan men de
14
Hoofdstuk 2. Theoretisch kader
klasse selecteren met de hoogste voorspelde probabiliteit:
y = arg max f (x, θ)j
j
(2.9)
De parameters θ zijn waarden die initieel willekeurig worden gekozen. In het geval van
neurale netwerken, worden ze tijdens de trainingsfase iteratief bijgestuurd door middel van
backpropagation. Backpropagation is een algoritme die de fout op de voorspelling van een
voorbeeld in omgekeerde richting door het netwerk zal laten propageren (terugpropagatie,
backpropagation) en op basis daarvan de paramaters zal aanpassen. Voor deze iteratieve
aanpassingen wordt gebruikt gemaakt van gradient descent, dat in de volgende subsectie
uitgelicht wordt.
2.1.4
Gradient descent
Gradient descent is een algoritme die de uitvoer van een functie minimaliseert door
de parameters van die functie iteratief te optimaliseren. De functie die we proberen
minimaliseren is, in het geval van machine learning, de kostfunctie L(θ) (engels: loss
function of cost function):
N
1 X
L(θ) =
E(f (x(n) , θ), y (n) ) + Ω(θ)
N
(2.10)
n=1
waarbij E(f (x(n) , θ), y (n) ) de foutfunctie is en Ω(θ) de regularisieterm. De waarde van de
foutfunctie is een indicatie van de gemaakte fout op de voorspellingen. In het eerste deel
van de kostfunctie wordt dus de gemiddelde voorspellingsfout berekend. De foutfunctie
kan op verschillende manieren worden gedefinieerd (dit moet gekozen worden, zie verder).
Het tweede gedeelte van de kostfunctie is de regularisieterm. Deze zal bepaalde extreme
waarden van θ afstraffen. Dit kan helpen overfitting tegen te gaan. De foutfunctie en de
regularisieterm zullen later in meer detail besproken worden.
Gradient descent wil het minimum van de kostfunctie vinden en hiervoor moet het dus
de parameters θ van het model f optimaliseren, zodat de foutfuntie E zo laag mogelijk
wordt. Dit is juist ook wat men wil bereiken met het trainen van een model: men wil de
parameters van het model vinden zodat het voorspellingsvermogen zo hoog mogelijk is, of
anders gezegd, de voorspellingsfout moet zo laag mogelijk. De optimale parameters θopt
worden dus bereikt door de kostfunctie L te minimaliseren:
θopt = arg min L(θ)
(2.11)
θ
Het gradient descent-algoritme zal dit globale minimum echter meestal niet exact kunnen
15
Hoofdstuk 2. Theoretisch kader
Figuur 2.3: Een illustratie van gradient descent uit [Brunet, 2010] met behulp van een 2D
voorstelling van de parameterruimte en contourlijnen van de kostfunctie. De zwarte
lijnstukken duiden de aanpassingen van gradient descent aan voor elke iteratie. Het
rode punt is een lokaal minimum.
bepalen. Er zal namelijk gezocht worden naar een lokaal minimum. Men gaat eerst de
gradi¨enten van de kostfunctie ten opzichte van alle parameters in de parameterruimte
bepalen. Informeel gezegd, beschrijven de gradienten de “helling” van de kostfunctie in de
parameterruimte. Omdat we een lokaal minimum willen bereiken wordt er elke iteratie een
stap gezet in de richting waar de helling het stijlst naar beneden gaat (Figuur 2.3). Dit
wil zeggen dat de parameters θ van het model iteratief gewijzigd worden door volgende
aanpassingsregel:
θ ← θ − α∇θ L(t, θ)
(2.12)
met α de leersnelheid (een hyperparameter) en ∇θ L(t, θ) de gradient van de kostfunctie
op iteratie t. De leersnelheid α heeft een grote invoed op het algoritme. Een te kleine
waarde voor α resulteert in een te trage convergentie en een te grote waarde resulteert
in overshooting, waar de parameterwaarden te grote sprongen maken en dus het lokale
mininum zullen voorbijgaan.
De kostfunctie zoals gedefinieerd in (2.10) heeft zeer veel berekingen nodig. Namelijk, het
moet de foutfunctie voor alle voorbeelden in de trainingset berekenen en dan pas kan er
een aanpassingstap gemaakt worden. Mini-batch gradient descent wordt toegepast om dit
probleem op te lossen. Om een schatting van de kostfunctie te maken zal men elke iteratie
slechts een deel (een mini-batch) van de trainingsvoorbeelden betrekken:
L(t, θ) =
1
B
B(t+1)
X
E(f (x(n) , θ), y (n) ) + Ω(θ)
(2.13)
n=Bt+1
De grootte van de mini-batch B is een hyperparameter en t is de huidige iteratie. Merk op
dat de mini-batches in een epoch (i.e. een overloop van de trainingset) disjunct zijn.
Typische foutfuncties zijn de absolute fout |y − y 0 | of de kwadratische fout (y − y 0 )2 , maar
16
Hoofdstuk 2. Theoretisch kader
voor de experimenten in deze masterproef wordt de negatieve log-likelihood gebruikt:
E(f (x, θ), ylabel ) = − ln f (x, θ)ylabel
(2.14)
= − ln p(y = ylabel |x, θ)
De negatieve log-likelihood neemt dus eerst de voorspelde probabiliteit voor de correcte
klasse die overeenkomt met het invoervoorbeeld x. Deze probabiliteit wordt door middel
van de softmaxlaag in een ANN berekend. Logischer wijze zou deze waarde zo dicht
mogelijk bij 1 moeten liggen. Door nadien de negatieve ln van deze probabiliteit te nemen,
zullen waarden dichter bij nul veel meer afgestraft worden, omdat de limiet naar 0 gelijk is
aan oneindig.
De regularisieterm is niet altijd aanwezig in de kostfunctie, maar kan vaak helpen om
het predictief model te doen generaliseren. Extreme gewichten kunnen namelijk vaak het
gevolg zijn van overfitting op de trainingset. De regularisieterm zal ervoor zorgen dat de
gewichten niet meer zulke extremiteiten vertonen. Dit wordt gedaan door de waarden van
de gewichten op de volgende manier in de kostfunctie te betrekken:
Ω(θ) = γ
XXX
k
|
i
j
{z
(k)
|wij | +λ
`1-regularisatie
}
XXX
k
|
i
(k)
(wij )2
(2.15)
j
{z
`2-regularisatie
}
De hyperparameters γ en λ bepalen de mate van `1- en `2-regularisatie respectievelijk.
`1-regularisatie bepaalt de mate waarin gewichten zo veel mogelijk 0 willen zijn (sparsity),
omdat het alle gewichtwaarden evenveel afstraft. Met de kwadratering straft `2-regularisatie
grote waarden veel meer af dan kleine, waardoor de gewichten klein gehouden worden.
2.1.5
Deep learning
Het domein van deep learning ([Lecun et al., 1998], [Hinton et al., 2006], [Bengio et al.,
2007], [Bengio, 2009]) is een subdomein van machine learning. Met deep learning zal
een predictief model in de trainingsfase leren welke representatie van de invoer het beste
is voor classificatie. Met andere woorden, de invoer wordt eerst automatisch omgezet
in een representatie die beter en gemakkelijker te interpreteren valt door de computer.
Dit gebeurt in een hi¨erarchie van verschillende opeenvolgende lagen. In de eerste lagen
worden kenmerken ge¨extraheerd van laag niveau, zoals randen. In volgende lagen worden
kenmerken ge¨extraheerd van hoger niveau. Bijvoorbeeld, vingers worden gevormd door
specifieke randen in het beeld en in een volgende laag vormen de vingers een hand. Dit
heeft als gevolg dat er geen noodzaak is om zelf kenmerken te extraheren.
Bij traditionele methoden moet er feature engineering gebeuren vooraleer een classificatie
17
Hoofdstuk 2. Theoretisch kader
Feature-extractielaag
Normalisatie
Filterbank
Nietlineariteit
Pooling
(a) E´en feature-extractielaag
Invoer
Laag 1
...
Laag n
Classificatie
(b) Meerdere lagen
Figuur 2.4: Feature-extractie architectuur in deep learning.
kan gemaakt worden. Dit wil zeggen dat men eerst een aantal kenmerken moeten kiezen
en de extractie uit de invoer expliciet moet implementeren. Met deep learning wordt
automatisch geleerd tijdens de trainingsfase welke kenmerken het meest gunstig zijn om te
extraheren zonder ze handmatig op te stellen.
Een feature-extractielaag in een deep learning-model is afgebeeld in Figuur 2.4a. Meestal
wordt eerst de invoer genormaliseerd om het leren te versnellen. De filterbank zorgt voor
een expansie van de invoer. Deze expansie is nodig om de verschillende klassen beter te
onderscheiden. Men gaat als het ware in een hogere dimensie kijken of het verschil in de
klassen beter te onderscheiden valt. De parameters in de filterbank worden automatisch
in de trainingsfase geleerd. Vervolgens wordt een niet-lineaire module toegepast zodat
het niet-lineaire onderscheidingen kan maken. Als laatste worden de interessantste delen
bij elkaar gepoold. Pooling zal elk lokaal venster of elke partitie van de invoer filteren
tot ´e´en enkele waarde door, bijvoorbeeld, enkel het maximum over te houden. Dit zal
dus de dimensionaliteit weer reduceren. Meerdere lagen worden geconcateneerd en de
eindrepresentatie wordt gebruikt voor classificatie (Figuur 2.4b).
Een van de meest succesvolle modellen uit deep learning zijn convolutionele neurale
netwerken die in de volgende sectie worden besproken.
2.2
Convolutioneel neuraal netwerk (CNN)
Het model uit deep learning dat de laatste jaren state-of-the-art resultaten behaalt is het convolutioneel neuraal netwerk (afgekort door CNN). Recente onderzoeksresultaten bewijzen
dat CNN’s recordbrekende classificatieresultaten behalen voor beeldherkenningsproblemen
[Krizhevsky et al., 2012], [Cire¸san et al., 2012], [Zeiler & Fergus, 2013a], [Goodfellow
et al., 2013a]. Deze methoden worden reeds toegepast in de industrie door o.a. Google en
Facebook. Sinds kort worden CNN’s door Google ook toegepast op videodata [Karpathy14].
18
Hoofdstuk 2. Theoretisch kader
...
...
...
(a) Volledige connectiviteit
...
(b) Lokale connectiviteit
Figuur 2.5: Receptieve velden.
2.2.1
Inleiding
Convolutionele neurale netwerken zijn feature-extractiemodellen uit deep learning die
ge¨ınspireerd zijn door de visuele cortex in onze hersenen. Deze hi¨erarchische meer-lagen artifici¨ele neurale netwerken zijn in staat visuele patronen rechtstreeks uit pixels te herkennen
zonder enige voorverwerking.
Het probleem met diepe artifici¨ele neurale netwerken, zoals beschreven in Sectie 2.1.3, is
de volledige connectiviteit tussen de verschillende verborgen lagen. Het aantal parameters
is direct gerelateerd aan de invoerdimensie, zoals getoond in Figuur 2.5a, waardoor deze
modellen ongeschikt zijn voor afbeeldingen of video’s. Daarom is het een betere oplossing
om elke artifici¨ele neuron met slechts een lokaal gebied van de invoerafbeelding te verbinden
zoals in Figuur 2.5b. Deze gebieden worden receptieve velden genoemd. Alle mogelijke
gebieden (ook overlappende) worden verbonden met een verschillende unit. Naast de
lokale connectiviteit in CNN’s, worden de parameters tussen de units ook gedeeld. Dit
wil zeggen dat de units in Figuur 2.5b elk dezelfde set van gewichten hanteren. Als de
receptieve velden een grootte van 5x5 hebben, zullen slechts 25 gewichten nodig zijn (per
invoerkanaal).
Een CNN bestaat uit opeenvolgende feature-extractielagen (ook convolutielagen genoemd).
Elke laag bestaat voornamelijk uit twee basisstappen: een filterbank en een pooling-module.
De filterbank bestaat uit featuremaps die verkregen worden door tweedimensionale discrete
convoluties uit te voeren met verschillende filters op de invoer. In de pooling-module
wordt hier gebruik gemaakt van max-pooling, al zijn er andere subsampling methoden die
gebruikt kunnen worden. Max-pooling zal de dimensionaliteit reduceren door enkel de
belangrijkste waarden van de featuremaps over te houden.
19
Hoofdstuk 2. Theoretisch kader
2.2.2
Filterbank
De lokale verbindingen in een CNN zijn eigenlijk niets anders dan discrete convolutiefilters
(Figuur 2.6a):
(w ∗ x)n1 ...nD =
+∞
X
wm1 ...mD xn1 −m1 ,...,nD −mD
(2.16)
m1 ,...,mD =−∞
met x de invoer van de filter, w de waarden van de filter en D het aantal dimensies.
De filter w is slechts voor een aantal waarden niet gelijk aan nul. De uitvoer van deze
convolutie is de voornaamste stap in de opbouw van een featuremap.
In een filterbank worden er zo meerdere featuremaps gevormd, telkens met een verschillende
filter (Figuur 2.6b). Het aantal featuremaps per laag in een CNN zijn hyperparameters.
Naast de convoluties wordt ook een bias opgeteld en vervolgens wordt een niet-lineaire
activatiefunctie toegepast. De filterbank kan op volgende wijze beschreven worden:
y (ij) = a b(ij) +
Ni
X
n=1

2D:
(ij)
= a b(ij) +
ypq
!
w(ijn) ∗ x(in)
Qi
Ni X
Pi X
X

(ijn) (in)
wp0 q0 xp−p0 ,q−q0 
(2.17)
n=1 p0 =1 q 0 =1

3D:
(ij)
ypqr
= a b(ij) +
Qi X
Ni X
Pi X
Ri
X

(ijn)
(in)
wp0 q0 r0 xp−p0 ,q−q0 ,r−r0 
n=1 p0 =1 q 0 =1 r0 =1
(ij)
waar ylmk de pixel op positie (p, q) van de r-de frame in de j-de featuremap van de i-de
laag is en w(ijn) de filterparameters die het j-de uitvoerkanaal verbindt met het n-de
invoerkanaal in de i-de laag. Ni is het aantal invoerkanalen voor de i-de laag. De groottes
van de filters in de i-de laag zijn Pi x Qi en Pi x Qi x Ri (hoogte x breedte x frames) voor
respectievelijk het tweedimensionaal en het driedimensionaal geval.
Traditioneel worden enkel 2D featuremaps berekend voor feature-extractie in afbeeldingen
of frames in video’s. Maar er kan ook met spatio-temporele features ge¨experimenteerd
worden door 3D featuremaps te berekenen met driedimensionale discrete convoluties zoals
in (2.17).
2.2.3
Max-pooling
De tweede techniek die wordt toegepast in een CNN-laag is max-pooling. Deze zal elke
featuremap opsplitsen in kleine partities. Nadien wordt enkel de maximale waarde van
20
Hoofdstuk 2. Theoretisch kader
2,0
1,0
0,0 1 2,1
1,
0,1 2 2,2
1,
0,2
0
W2
0
0
W0
1
W0
2
W0
W1
1
1
W1
W2
22
4
1,1
W
2
13
W1
6
3x3 Filter
Invoer
Invoer
Uitvoer
(a) 2D Discrete convolutie
Feature maps
(b) Filterbank
3
13
18
13
16
3
15
14
13
3
max →
1
10
18
7
16
15
14
2x2 Uitvoer
4x4 Invoer
(c) 2x2 Max-pooling
Figuur 2.6: De basistechnieken in een convolutielaag van een convolutioneel neuraal netwerk.
elke partitie overgehouden, zoals aangetoond wordt in Figuur 2.6c. Hierdoor zal dus de
dimensionaliteit verminderen terwijl de belangrijkste featurewaarden (de maximumwaarden)
behouden worden.
Omdat in deze thesis met video’s wordt gewerkt zijn de featuremaps driedimensionaal en
wordt er 3D max-pooling gebruikt. Om dit formeel te beschrijven wordt meestal gebruik
gemaakt van een vensterfuntie VS1 xS2 xS3 (p, q, r) die overal nul is behalve in de partitie met
grootte S1 xS2 xS3 , waarover het maximum genomen wordt:
(ij)
ypqr
= max[x(ij) VS1 xS2 xS3 (p, q, r)]
(2.18)
Max-pooling zal ook zorgen voor translatie-invariantie. Bijvoorbeeld, indien een hand een
aantal pixels naar links of naar rechts verschuift, de handfeatures worden uiteindelijk bij
elkaar gepoold tot dezelfde posities in de featuremaps. Hetzelfde geldt voor translaties in
de tijdsdimensie.
2.2.4
Volledig netwerk
Door gebruik te maken van beide bovenstaande technieken, namelijk convoluties en maxpooling, wordt er een convolutielaag in een CNN gevormd. Maar CNN’s zouden niet
tot deep learning behoren moesten ze niet diep zijn. Daarom worden meerdere lagen
geconcateneerd en de uiteindelijke representatie dient als invoer voor de classificatiemodule,
zoals te zien is in het voorbeeld in Figuur 2.7.
Een CNN heeft een diepe architectuur, zodat het features kan extraheren die in de eerste
lagen kleinschalig zijn, zoals randen, en in de laatste lagen kunnen de features vingers of
handen zijn. Dit komt, omdat de features samen worden gepoold met max-pooling.
21
Hoofdstuk 2. Theoretisch kader
Convoluties
Pooling
Convoluties
Pooling
Convoluties Pooling
kk
Afvla
ing
Invoer
video
Feature
map
Convolutielaag 1
Convolutielaag 2
Convolutielaag 3
Feature-extractie
ANN
Classificatie
Figuur 2.7: Een driedimensionaal convolutioneel neuraal netwerk met 4 featuremaps in de eerste
laag, 8 maps in de tweede laag en 16 in de derde. Eraan gekoppeld is een neuraal
netwerk (ANN) met ´e´en verborgen laag.
2.3
Optimalisatietechnieken
Indien we een predictief model opbouwen met de tot hier toe beschreven technieken, zou
er al een competente prestatie kunnen behaald worden. Maar state-of-the-art toepassingen
verbeteren deze prestatie aanzienlijk door gebruik te maken van een aantal optimalisatietechnieken die uit recent onderzoek voortvloeien. Dit zijn aanpassingen en toevoegingen
bovenop de basistechnieken die de generalisatie en/of de snelheid van de trainingsfase
verbeteren. Deze sectie veronderstelt dat de optimalisaties op CNN’s en ANN’s worden
toegepast.
Een recente innovatie omtrent neurale netwerken zijn het gebruik van rectified linear units
(ReLU’s) ([Glorot et al., 2011], [Nair & Hinton, 2010]) zoals besproken in Sectie 2.1.3. Men
zou op het eerste zicht vermoeden dat de discontinu¨ıteit in de oorsprong voor problemen
zorgt bij de gradi¨entberekeningen voor het gradient descent-algoritme. Maar in de praktijk
is de pre-activatie (de waarden v´
oo´r de activatiefunctie) nooit negatief voor alle voorbeelden
in de traingset. Namelijk, indien voor slechts een klein aantal trainingsvoorbeelden de
pre-activatie groter is als 0, zal de unit in staat zijn om te leren.
De vier optimalisatietechnieken die hier besproken worden, zijn normalisatie, momentum,
dropout en data-augmentatie. Normalisatie en momentum zullen zowel de prestatie als de
trainingssnelheid vehogen. Dropout en data-augmentatie, daarentegen, zijn technieken die
het model beter generaliseren, maar de trainingsfase vertragen.
2.3.1
Normalisatie
Normalisatie wordt soms als een basisstap van een CNN beschouwd, omdat het zeer vaak
wordt gebruikt. Pixels zijn namelijk gebaseerd op lichtintensiteiten. Dus een donkere ruimte
zal zeer verschillende waarden produceren als een goed belichte ruimte. Een model zoals
22
Hoofdstuk 2. Theoretisch kader
LCN
LCN
(a) Donkere achtergrond, laag contrast
(b) Lichte achtergrond, hoog contrast
Figuur 2.8: Lokaal contrast normalisatie.
het CNN kan hiervoor relatief gemakkelijk invaranties aanleren, maar dit gaat welliswaar
ten koste van trainingstijd. Daarom wordt een techniek gebruikt om het contrast (de
verschillen in lichtintensiteit) te normaliseren. De meest gebruikte techniek in CNN’s is
lokaal contrast normalisatie (LCN) [Jarrett & Kavukcuoglu, 2009]:
vij = xij −
X
kpq xi+p,j+q
pq
yij = vij / max[mean(σij ), σij ]
!1/2
X
2
σij =
kpq xi+p,j+q
(2.19)
pq
met vij het resultaat van de lokale substractie, xij de pixels van het invoerbeeld, kpq de
waarden van de genormaliseerde Gaussiaanse filter, yij de pixels van het lokaal contrast
genormaliseerd beeld en σij de lokale standaardafwijking. Bij deze methode wordt dus
een gaussiaanse blur-filter over het beeld toegepast en afgetrokken van het originele. Dit
heeft als resultaat dat enkel snel veranderende pixelwaarden, zoals randen, overblijven.
Het is een vorm van hoogdoorlaatfilter. Nadien worden de absolute waarden van de pixels
genomaliseerd door een deling met de lokale standaardafwijking. Het eindresultaat is
afgebeeld in Figuur 2.8.
LCN kan toegepast worden op alle featuremaps in elke laag van een CNN. Het zorgt voor
lokale en spatiale competitie tussen de features, waardoor de generalisatie verbetert. In
een variant op (2.19) kunnen naburige featuremaps in de normalisatie eveneens betrokken
worden.
Een tweede normalisatietechniek die recent in [Krizhevsky et al., 2012] succesvol wordt
gebruikt, is lokaal response normalisatie (LRN of CCN: cross channel normalisation), waar
de helderheid i.p.v. het contrast wordt genormaliseerd over naburige featuremaps:

i
ypq
= xipq / k + α
min(N −1,i+n/2)
X
j=max(0,i−n/2)
β
(xjpq )2 
(2.20)
23
Hoofdstuk 2. Theoretisch kader
µvt
θb
g(θb )
θa
µvt
θt+1
θt
θt
g(θt + µvt )
θt+1
g(θa )
g(θt )
θlok min
θlok min
(b) Klassieke momentum
(a) Parameterruimte
θlok min
(c) NAG
Figuur 2.9: Het verschil tussen het klassieke momentum en Nesterov’s accelerated gradient (NAG).
De gradi¨entvector wordt hier afgekort als g(θt ) = −α∇θt L(t, θt ).
met xipq de i-de featuremap op positie (x, y), n (hyperparameter) het aantal naburige
featuremaps die betrokken worden op dezelfde spatiale positie, N het aantal featuremaps
in de laag, en de constanten k,α en β zijn hyperparameters.
2.3.2
Momentum
Momentum is een optimalisatietechniek voor het (mini-batch) gradient descent-algoritme.
Het is te vergelijken met het impuls-begrip (Engels: momentum) uit de natuurkunde. Als
een bal van een helling in een vallei rolt, zal deze niet plots stilstaan op een dieptepunt
van de vallei. De bal zal eerst nog wat verder rollen door zijn impuls. In het geval van
gradient descent, zou er zonder momentum gezocht worden naar een lokaal minimum voor
de kostfunctie en op dit punt blijven vastzitten. Als momentum wordt toegevoegd aan
het algoritme, zal er tijdens de trainingsfase, informeel gezegd, over te kleine putten in de
parametervallei gerold worden.
Dit wordt verwezenlijkt door de snelheid van verandering in de parameteraanpassingen te
vertragen. Een aanpassing zal, bijvoorbeeld, voor 90% dezelfde zijn als de vorige en voor
10% in de richting en grootte zoals de huidige gradi¨enten het aangeven. In dat geval is de
momentumco¨effici¨ent gelijk aan 0.9.
[Sutskever et al., 2013] brengt het belang van momentum in deep learning aan het licht en
vergelijkt tevens het klassieke momentum met Nesterov’s accelerated gradient (NAG). De
gewijzigde aanpassingsregel met het klassieke momentum wordt op deze manier gedefinieerd:
vt+1 = µvt − α∇θt L(t, θt )
(2.21)
θt+1 = θt + vt+1
waarbij µ ∈ [0, 1] de momentumco¨effici¨ent (een hyperparameter) is. En Nesterov’s accelerated gradient (NAG) wordt als volgt beschreven:
vt+1 = µvt − α∇θt L(t, θt + µvt )
θt+1 = θt + vt+1
(2.22)
Hoofdstuk 2. Theoretisch kader
24
Het verschil is dat bij NAG, voor het berekenen van de gradi¨enten, eerst een iteratie
verder zal gedacht worden. Alvorens de parameters aan te passen wordt het huidige
momentum-component µvt opgeteld met θt en hiervan worden de gradi¨enten berekend.
Figuur 2.9 maakt duidelijk dat dit een gunstigere aanpassing levert, omdat het uiteindelijke
punt zich dichter bij het lokaal minimum bevindt.
2.3.3
Dropout
Dropout is een recent bevinding die in [Hinton et al., 2012] voor het eerst aan bod komt.
Het is een techniek die het ANN zal aanpassen tijdens de trainingsfase, zodat het model
tijdens de evaluatie robuuster zal zijn. Elk artificieel neuron, voor elk trainingsvoorbeeld
die doorlopen wordt, zal met een probabiliteit Bernoulli(p) uitgeschakeld worden (i.e.
de uitvoer wordt gelijkgesteld aan nul). De hyperparameter p wordt doorgaans op 0.5
gehouden, zodat gemiddeld de helft van alle units verwijderd worden. Dit gebeurt enkel
in de trainingsfase en dus moet de uitvoer van de units geschaald worden met een factor
1/(1 − p) tijdens het trainen.
Deze techniek zorgt ervoor dat er geen co-adaptatie tussen de units ontstaat. Co-adaptatie
is het fenomeen wanneer units op elkaar rekenen om patronen te herkennen. Zonder
dropout kunnen de units leren dat de anderen de features goed genoeg herkennen en zelf
dus niets of niet veel moeten bijdragen. Met dropout is elke unit er tijdens de trainingsfase
voor de helft van tijd niet, dus kunnen ze er niet co-adapteren. Dit zal dus elke artifici¨ele
neuron op zichzelf nuttiger maker.
2.3.4
Data-augmentatie
Een laatste optimalisatietechniek is data-augmentatie. De beste manier om overfitting
tegen te gaan is meer data vergaren. Maar dat is natuurlijk niet altijd mogelijk en is meestal
zeer tijdrovend. Daarom zal data-augmentatie helpen om artifieel data bij te cre¨eren. Dit
wordt gedaan door bestaande trainingsvoorbeelden te augmenteren. Augmentatie kan op
vele verschillende creatieve wijzen gebeuren, maar de meest voor de hand liggenden zijn
beeld- en videotransformaties, en het toevoegen van ruis. Enkele voorbeelden van dataaugmentatie zijn (zie ook Figuur 2.10): beeldrotaties, spatiale - en temporele translaties,
bijsnijden of zoomen (resampling in tijd en/of ruimte), elastische beelddistorties en witte
Gaussiaanse ruis en impulsruis.
25
Hoofdstuk 2. Theoretisch kader
(a) Translaties
(b) Rotaties
(c) Zoomen
(d) Ruis
Figuur 2.10: Enkele voorbeelden van data-augmentatie.
Hoofdstuk 3
Onderzoeksopzet en resultaten
3.1
Dataset
De gebruikte dataset is beschikbaar gesteld in het kader van de wedstrijd “2014 ChaLearn
Looking at People Challenge Track 3: Gesture Spotting” . Dit is dezelfde dataset als de
wedstrijd van een jaar eerder: “2013 ChaLearn Multi-modal Gesture Recognition” [Escalera
et al., 2013]. Het doel in deze wedstrijden is om gebaren in de gegeven video’s, opgenomen
met een Microsoft Kinect 3D camera, te herekennen en/of te spotten. De opdrachten in
beide wedstrijden zijn desondanks niet dezelfde. In 2013 mocht audio gebruikt worden om
gebaren te herkennen. In 2014 is de audio uit de dataset verwijderd en wordt er meer de
nadruk gelegd op het spotten van gebaren. Dit wil zeggen dat men naast classificatie ook
het begin- en eindframe van een gebaar moet detecteren.
De dataset bevat 13858 gebarenvoorbeelden van 20 verschillende Italiaanse gebaren met
volgende benamingen: vattene, ok, vieniqui, cosatifarei, perfetto, basta furbo, prendere,
cheduepalle, noncenepiu, chevuoi, fame, daccordo, tantotempo, seipazzo, buonissimo, combinato, messidaccordo, freganiente en sonostufo (zie Figuur 3.1). Deze worden uitgevoerd
door 27 verschillende gebruikers. Dit wordt aangeleverd in 940 video’s, waaronder 470
(ongeveer 7000 gebaren) die gelabeld zijn in de trainingset, 230 (3418 gebaren) in de
validatieset en 240 in de testset (3543 gebaren).
3.1.1
Eigenschappen
Een aantal veronderstellingen en eigenschappen over de opgenomen dataset voor de wedstrijden zijn de volgende:
• Een videobestand bevat een continue stroom van ´e´en enkele gebruiker die ge¨ısoleerde
26
27
Hoofdstuk 3. Onderzoeksopzet en resultaten
(1) Vattene
(2) Viene qui
(3) Perfetto
(4) E un furbo
(5) Che due palle
(6) Che vuoi
(7) Vanno d’accordo
(8) Sei pazzo
(9) Cos hai
combinato
(10) Nonme me friega
niente
(11) Ok
(12) Cosa ti farei
(13) Basta
(14) Le vuoi prendere
(15) Non ce ne piu
(16) Ho fame
(17) Tanto tempo fa
(18) Buonissimo
(19) Si sono d’accordo
(20) Sono stufo
Figuur 3.1: De 20 Italiaanse gebaren [Escalera et al., 2013].
28
Hoofdstuk 3. Onderzoeksopzet en resultaten
(a) RGB-stroom
(b) dieptebeeld
(c) gebruikersindex
(d) skeletinformatie
Figuur 3.2: ChaLearn Gesture Recognition dataset gegevens.
gebaren uitoefent.
• Sommige gebaren zijn zogenaamde “ruisgebaren” , omdat ze niet behoren tot de set
van de 20 Italiaanse gebaren.
• De camera zelf beweegt niet en wordt gericht op het bovenlichaam van de gebruiker.
• Ten alle tijde is slechts ´e´en gebruiker aanwezig in het visuele veld.
• De gebaren worden enkel met de armen en de handen uitgevoerd.
• Er is geen afgesproken rusthouding tussen de gebaren in.
• Gebaren die slechts ´e´en hand gebruiken, kunnen zowel met de linkse als de rechtse
hand uitgevoerd worden.
• Er zijn variaties in: achtergrond, kleding, huidskleur, belichting, resolutie en gebaaruitvoering.
Er worden vier verschillende datastromen gegeven (zie Figuur 3.2):
• RGB-beeld: kleurenbeeld in 8-bit 640x480 resolutie.
• Dieptebeeld: de z-component per pixel in millimeters met een 11-bit 640x480 resolutie.
• Gebruikersindex: geeft aan waar de gebruiker zich in het dieptebeeld bevindt met
een niet-nul waarde.
• Skeletinformatie: voor elke frame worden de gewrichtsposities en -ori¨entaties gegeven.
De skeletinformatie bestaat uit de volgende data:
• Gewrichttypes (Figuur 3.3): HipCenter, HipLeft, Spine, KneeLeft, ShoulderCenter,
AnkleLeft, Head, FootLeft, ShoulderLeft, HipRight, ElbowLeft, KneeRight, WristLeft,
AnkleRight, HandRight, FootRight, HipCenter, Spine.
• WorldPosition: de x-,y- en z-componenten van de globale positie in millimeters.
Hoofdstuk 3. Onderzoeksopzet en resultaten
29
Figuur 3.3: Gewrichten die getracked worden door de Microsoft Kinect.
• PixelPosition: de pixelco¨ordinaten in het RGB-beeld van het middelpunt van het
gewricht.
• WorldRotation: de ori¨entatie in de driedimensionale ruimte van het gewricht of van
het bot van het skelet. Om dit te beschrijven zijn er vier co¨ordinaten nodig (in
radialen).
3.1.2
Opdeling van de data
De dataset die gebruikt wordt voor de experimenten van deze thesis, is de trainingset van
de ChaLearn 2014 dataset. Deze bevat namelijk veel nauwkeurigere labels dan die van de
ChaLearn 2013 dataset. Het nadeel is echter dat de labels van de validatieset pas op 9 mei
2014 beschikbaar worden gesteld. Daarom worden voor de meeste experimenten enkel de
trainingset gebruikt. Dit heeft dan weer als voordeel dat er meer experimenten uitgevoerd
kunnen worden in een kortere tijd, door de minder omvangrijke dataset.
Uit 470 video’s in de trainingset van de wedstrijd worden 6600 niet-corrupte voorbeelden
voorverwerkt. Een voorbeeld is corrupt als er belangrijke informatie ontbreekt, zoals
bijvoorbeeld de skeletinformatie. De 6600 voorbeelden worden opgesplitst in 4600 trainingsvoorbeelden en 2000 validatievoorbeelden. De validatievoorbeelden bevatten een
achtergrond en gebruikers die niet voorkomen in de trainingsvoorbeelden.
De validatieset van de wedstrijd wordt enkel gebruikt om de segmantatie van de video’s te
optimaliseren (zie Sectie 3.6). De testset van de wedstrijd wordt ook beschouwd als de
testset voor deze masterproef. De gebruikers en de achtergronden in de testset komen deze
keer w´el voor in de trainingset en de validatieset. Daarom kan men verwachten dat het
classificatieresultaat op de testset beter zou zijn dan op de validatieset.
Kort samengevat, wordt de beschikbare data op de volgende manier opgedeeld:
Hoofdstuk 3. Onderzoeksopzet en resultaten
30
• Trainingset: 4600 gebaren uit de trainingset van de wedstrijd.
• Validatieset voor classificatie: 2000 gebaren uit de trainingset van de wedstrijd, met
gebruikers en achtergronden die niet voorkomen in de trainingset.
• Validatieset voor segmentatie: 3418 gebaren. Dit is de validatieset van de wedstrijd.
• Testset: 3543 gebaren met gebruikers en achtergronden die wel kunnen voorkomen
in de trainingset en de validatieset. Dit is de testset van de wedstrijd.
3.2
Voorverwerking
Om het CNN te helpen wordt er enige voorverwerking op de dataset toegepast alvorens de
trainingsfase te starten. In theorie is er geen voorverwerking nodig, maar omdat de dataset
beperkt is, zal de voorverwerking helpen om de belangrijkste patronen te herkennen in
plaats van te overfitten op de overtollige informatie of de ruizige dieptebeelden. Daarom
wordt zoveel mogelijk overtollig beeldmateriaal weggeknipt en de interresantste delen van
de video’s naar boven gebracht. Daarnaast worden ook de ruizige dieptebeelden van de
Microsoft Kinect bewerkt, door de achtergrond weg te filteren en de ruis te onderdrukken.
Vooraleer beeldverwerkingen worden toegpast, worden de video’s van de trainingset gesegmenteerd aan de hand van de meegegeven labels. Een label bevat het ID en het beginen eindframe van het gebaar. Van elk gebaar worden 32 frames ge¨extraheerd rond het
middenste frame en de RGB-stroom wordt omgezet in een grijswaardenbeeld. Na de beeldverwerkingen worden alle beelden herschaald naar een resolutie van 64x64. Op die manier
wordt in de voorverwerking voor elk gebaar een videovoorbeeld van grootte 64x64x32
permanent opgeslagen. Belangrijk om op te merken is dat voor data-augmentatie de
videovoorbeelden opgeslagen worden met een resolutie van 128x128x32 en na augmentatie
de voorbeelden herschaald worden naar 64x64x32.
3.2.1
Bijsnijding
In een eerste fase werd ge¨experimenteerd met het uitknippen van beide handen. Dit is
mogelijk, omdat de positie van de handen gegeven is in de skeletinformatie (HandLeft en
HandRight). De grootte van het uit te snijden gebied wordt bepaalt door:
l=
|HipCenter − Head|
2
(3.1)
Dit is experimenteel bepaald door te kijken naar het resultaat. Deze grootte is niet constant,
omdat de gebruiker dichter of verder van de camera kan staan, en grotere mensen hebben
31
Hoofdstuk 3. Onderzoeksopzet en resultaten
(a) Detectie van hand en bovenlichaam.
(b) Eindresultaat van voorverwerking.
Figuur 3.4: Het resultaat van de voorverwerking.
vaak ook grotere handen.
Nadien werd vastgesteld dat beide handen niet hoeven uitgeknipt te worden. Namelijk,
de meeste gebaren (in het geval voor deze dataset) worden met ´e´en hand uitgevoerd. En
de gebaren die beide handen gebruiken, voeren dezelfde (gespiegelde) beweging uit met
links en rechts. Daarom wordt voor elk gebaar gedetecteerd welk hand gemiddeld het
hoogst opgetild wordt. Indien de linkerhand wordt gebruikt, wordt de video gespiegeld ten
opzichte van de verticale as. Op die manier hoeft het model slechts ´e´en richting te leren
herkennen.
Het bovenlichaam wordt eveneens uitgeknipt, omdat hier meer informatie te vinden is over
de positie van beide armen ten opzichte van het lichaam. De grenzen voor het uitgeknipt
gebied wordt bepaald door:
ytop = HipCentery − 1.4h
ybodem = HipCentery + 0.7h
(3.2)
h = |HipCenter − Head|
Opnieuw is dit experimenteel bepaald door te kijken naar het resultaat. Verder wordt
ervoor gezorgt dat het gebied een 1:1 ratio heeft. En ook hier worden de video’s gespiegeld
ten opzichte van de verticale as, indien de linkerhand gebruikt wordt. Het resultaat van de
bijsnijdingen is te zien op Figuur 3.4.
3.2.2
Ruisonderdrukking in dieptebeeld
De dieptebeelden van de Microsoft Kinect hebben een zeer ruizig karakter. Daarom worden
een aantal technieken toegepast om de ruis te onderdrukken en de achtergrond weg te
werken. De verschillende stappen worden gevisualiseerd in Figuur 3.5 en worden in wat
volgt uitgelicht.
32
Hoofdstuk 3. Onderzoeksopzet en resultaten
(1) Origineel
(2) Thresholding
(3) Achtergrond
(4) Mediaanfilter
Figuur 3.5: Voorverwerking van het dieptebeeld.
Een eerste stap zal het hoogste 20% van het mogelijke bereik in het dieptebeeld thresholden.
Thresholding is een techniek die een te kiezen interval van waarden op nul zal afbeelden.
De pixels van het dieptebeeld B(x, y), met mogelijke waarden tussen a en b, worden op
deze manier gethreshold:
B 0 (x, y) =

0
als B(x, y) > 0.8(a − b)
(3.3)
 B(x, y) anders
Deze grote waarden zouden objecten zeer dicht bij de camera moeten voorstellen. In de
dataset zijn er echter geen objecten dicht bij de camera, aangezien de gebruikers telkens
een zekere afstand houden. Daarom kan men met zekerheid zeggen dat deze grote waarden
ruis bevatten.
In de volgende stap wordt er getracht de achtergrond te verwijderen. Hiervoor wordt de
gebruikersindex ingezet. De gebruikersindex bevat zelf ook aanzienlijke ruis, waardoor men
niet zomaar de achtergrond kan verwijderen door het als een binair masker te beschouwen.
De index wordt gebruikt om statistieken uit de dieptewaarden van de gebruiker te bepalen.
Door die statistieken kan men de achtergrond beter van de gebruiker onderscheiden. In het
gebied BI waar de gebruiker zich volgens de index zou bevinden, wordt de mediaan B˜I en
de standaardafwijking σBI berekend. Vervolgens wordt alles wat kleiner is dan B˜I − 3σBI
gethreshold:
B 0 (x, y) =

0
als B(x, y) < B˜I − 3σBI
(3.4)
 B(x, y) anders
Zoals men kan zien in de derde stap van Figuur 3.5, blijft er nog heel wat ruis achter.
Aangezien het hier duidelijk om impulsruis gaat, is een mediaanfilter hiervoor geschikt.
Een mediaanfilter is een niet-lineaire filter die het hele dieptebeeld zal afgaan en elke
pixel zal vervangen door de mediaan in een lokaal venster (in dit geval wordt een venster
van 3x3 gekozen). Dit zorgt ervoor dat impulsruis volledig verwijderd wordt, in plaats
van uitgesmeerd, zoals met een Gaussiaanse filter. Daarnaast worden randen met een
Hoofdstuk 3. Onderzoeksopzet en resultaten
33
Figuur 3.6: De architectuur van het gebruikte classificatiemodel voor de experimenten.
mediaanfilter goed behouden in vergelijking met andere filters.
3.3
Architectuur, hyperparameters en training
De architectuur van het model waarmee ge¨experimenteerd wordt, is afgebeeld in Figuur
3.6. De voorverwerking zal voor vier invoerkanalen zorgen met een resolutie van 64x64x32
(32 frames met grootte 64x64): het grijswaardenbeeld en het dieptebeeld van de hand en
het bovenlichaam. De twee kanalen van de hand worden in een verschillend CNN gestopt
dan die van het bovenlichaam. De architecturen van beide CNN’s zijn ten alle tijden
identiek aan elkaar. Ze bestaan elk uit drie lagen met in de eerste laag 16 5x5 filters, in de
tweede laag 32 5x5 filters en in de laatste laag 48 4x4 filters. Voor max-pooling wordt in
alle lagen gepoold in vensters van 2x2x2. Het ANN bestaat uit ´e´en verborgen laag met
512 units. Alle units zijn ReLU’s, al zijn er een tweetal experimenten die met tanh units
worden uitgevoerd. Voor de normalisatie wordt in de eerste twee lagen van het CNN lokaal
contrast normalisatie (LCN) gebruik. In de derde laag wordt variantienormalisatie per
featuremap toegepast v´
o´
or en na de filter-pool combinatie: (x − µ)/σ.
Alle bovenstaande architectuurbeslissingen en de hyperparameters uit Tabel 3.1 werden
experimenteel en enigszins op intu¨ıtie en goede raad van de begeleiders bepaald. Het is
namelijk onmogelijk om in een korte tijd alle mogelijke combinaties van hyperparameters
uit te proberen. Merk op dat `1- en `2-regularisatie niet wordt gebruikt. Hier wordt
initieel mee ge¨experimenteerd, maar uiteindelijk wordt vastgesteld dat dropout voldoende
regulariseert en `1- en `2-regularisatie geen verbetering biedt.
Voor de experimenten met data-augmentatie worden de transformaties in Tabel 3.1 toegepast op de trainingsvoorbeelden. Dit wordt in real time uitgevoerd tijdens het trainen
Hoofdstuk 3. Onderzoeksopzet en resultaten
Hyperparameter
Waarde
Filters:
Laag 1
Laag 2
Laag 3
16@5x5
32@5x5
48@4x4
Verborgen units ANN
Leersnelheid
Leervertraging per epoch
Mini-batch grootte
`1-regularisatie
`2-regularisatie
Momentumco¨effici¨ent
Dropout
LCN filters
512
3.10−3
5%
20
0
0
0.9
50% (p = 0.5)
9x9 in laag 1 en 7x7 in laag 2 en 3
Initialisatie:
Gewichten CNN
Bias CNN
Gewichten ANN
Bias ANN
Gaussiaans verdeeld (µ = 0, σ = 0.04)
0.2
Gaussiaans verdeeld (µ = 0, σ = 0.01)
0.1
Data-augmentatie:
Zoom
Rotatie
Spatiale translatie
Temporele translatie
[0, 10]%, uniform verdeeld
[-3, 3]°, uniform verdeeld
[-5, 5] pixels, uniform verdeeld
[-4, 4] frames, uniform verdeeld
34
Tabel 3.1: Hyperparameters.
met behulp van meerdere processen en een multicore processor. De processor is hiervoor
beschikbaar, omdat het model op de GPU getraind wordt (zie volgende sectie). Met een
gedeelde FIFO-wachtrij over alle processen worden de geaugmenteerde voorbeelden aan
het model doorgegeven.
Het trainingsalgoritme maakt gebruik van mini-batch gradient descent en NAG-momentum.
Tijdens het trainen wordt na elke epoch (i.e. een overloop van de trainingset) het model
ge¨evalueerd met de validatievoorbeelden. De trainingsfase wordt stopgezet als de trainingskost en -fout zeer lage waarden behaald hebben (afhankelijk van experiment, omdat een lage
waarde met data-augmentatie 3% betekent, terwijl dit 0.1% is zonder data-augmentatie)
en er een aantal epochs geen verbetering op de laagste validatiefout te zien is. Op het
moment dat de validatiefout het laagst is, wordt het model met zijn parameters permanent
opgeslagen. Deze laagste validatiefout wordt dan beschouwd als het validatieresultaat. De
trainingsfase telt gemiddeld voor alle experimenten 25 tot 35 epochs, waarbij elke epoch 5
tot 10 minuten duurt met GPU-acceleratie en 3 tot 5 keer trager zonder GPU-acceleratie.
Hoofdstuk 3. Onderzoeksopzet en resultaten
35
Het resultaat van een getraind model wordt gevisualiseerd in Figuur 3.7 1 . Men ziet
duidelijk dat het CNN geleerd heeft om de contouren van het bovenlichaam en de vingers
naar boven te halen. Merk op dat het ook geleerd heeft om zo veel mogelijk verschillende
features te extraheren. De featuremaps zijn bijna allemaal verschillend. Dit zal helpen de
verschillende klassen te onderscheiden. De laatste lagen worden moeilijker herkenbaar voor
de mens, maar juist meer herkenbaar voor de computer.
3.4
Opstelling
De experimenten worden uitgevoerd op een aantal beschikbare PC’s van het Reservoir Lab
aan de vakgroep voor Elektronica en Informatiesystemen van de UGent. Deze bevatten
hexacore processors (Intel Core i7-3930K) met een kloksnelheid van 3.2GHz en en maximum
turbofrequentie van 3.8GHz. Het predictief model wordt met GPU-technologie getraind
met behulp van een NVIDIA GeForce GTX 680 grafische kaart.
De programmeertaal die gebruikt wordt is Python. Om datamanipulatie en GPU-acceleratie
toe te passen, bestaan er handige en krachtige bibliotheken voor Python. Het is tegenwoordig een van de meest gebruikte talen voor wetenschappelijke berekeningen in het algemeen.
Er wordt voornamelijk gebruik gemaakt van de volgende open source Python bibliotheken:
• SciPy-stack2 : een collectie van wetenschappelijke software. NumPy is hierin het
meest fundamentele pakket.
• Theano 0.6 [Bergstra et al., 2010]: een softwarepakket dat mathematische expressies omzet tot een symbolische graaf om nadien te compileren tot een functie die
transparant gebruik maakt van GPU-acceleratie. Daarnaast biedt Theano een aantal
veelgebruikte functies in machine learning, zoals bijvoorbeeld de implementatie van
de softmaxlaag in een ANN.
• PyLearn2 [Goodfellow et al., 2013b]: een bibliotheek met modellen voor machine
learning. Hiervoor is Theano vereist. Deze bibliotheek wordt enkel gebruikt voor de
Python-wrappers van enkele snelle GPU-implementaties die ontwikkeld werden voor
het werk van [Krizhevsky et al., 2012]. Namelijk, de implementatie van een filterbank
met 2D-convoluties en de implementatie van lokaal response normalisatie.
Voor de realtime demonstratie wordt een Microsoft Kinect gebruikt, met Python-bindings
voor het Kinect SDK-pakket van Microsoft. Er is tijdens het academiejaar een alpha versie
1
2
Noteer dat dit niet exact dezelfde architectuur bevat dan in de experimenten voor de validatieresultaten.
http://www.scipy.org/
36
Hoofdstuk 3. Onderzoeksopzet en resultaten
2@
64x64x32
Convolutie:
16 filters (7x7)
16 @
58x58x32
Max-pooling (2x2x2)
+ LCN
16 @
29x29x16
Convolutie:
32 filters (8x8)
32 @
22x22x16
Max-pooling (2x2x2)
+ LCN
32 @
11x11x8
Convolutie:
64 filters (6x6)
64 @ 6x6x8
Max-pooling (2x2x2)
64 @ 3x3x4
Figuur 3.7: Visualisatie van het convolutioneel neuraal netwerk.
37
Hoofdstuk 3. Onderzoeksopzet en resultaten
Fout (%)
Verbetering (%)
20.20
18.90
14.40
11.90
10.30
8.30
6.4
23.8
17.4
13.4
19.4
Tanh units
+ momentum
ReLU + momentum
+ dropout
+ LCN (eerste 2 lagen)
+ data-augmentatie
Tabel 3.2: Validatieresultaten.
van de Microsoft Kinect versie 2 besteld geweest, maar deze is defect aangekomen en er
kon geen nieuwe opgestuurd worden.
3.5
Experimenten en validatieresultaten
De validatieresultaten zijn weergegeven in Tabel 3.2. Het model dat gebruikt werd om deze
resultaten te behalen, is beschreven in Sectie 3.3. De opdeling van de dataset wordt in
Sectie 3.1.2 uitgelicht. Opmerkelijk is de grote verbetering wanneer overgeschakeld wordt
van tanh units naar ReLU’s. Een verbetering van 23.8% op de het foutpercentage door ´e´en
enkele optimalisatietechniek toe te passen, is een grote sprong. Daarom wordt in wat volgt
ook alleen maar met ReLU’s ge¨experimenteerd.
Momentum heeft weinig effect op de verbetering van de validatiefout, maar deze is vooral
ingezet voor het versnellen van de trainingsfase. Dropout, met een verbetering van
17.3%, bewijst hier een grote rol te spelen in de generalisering. Met LCN kunnen we het
foutpercentage nog verder laten dalen tot 10.3%. Tot slot wordt met data-augmentatie nog
een verbetering van maar liefst 19.4% gehaald. Het beste waargenomen resultaat is dus
een validatienauwkeurigheid van 91.7% (foutpercentage van 8.3%) met behulp van ReLU’s,
momentum, dropout, LCN en data-augmentatie.
De vergelijking van de trainingssnelheden zijn afgebeeld in Figuur 3.8. Merk op dat de
epochs voor de verschillende gevallen ongeveer even lang duren, omdat hetzelfde model
wordt gebruikt, en data-augmentatie wordt op de CPU’s uitgevoerd. Men ziet duidelijk dat
dropout de trainingstijd ruwweg verdubbelt. De reden hiervoor is dat het artificieel neuraal
netwerk wordt aangepast door dropout. Willekeurige units worden verwijderd waardoor
het leren vertraagd wordt. Maar door LCN in de eerste twee lagen van het CNN toe te
passen, kan het weer aanzienlijk versneld worden. En dit zonder dat de trainingsfout te snel
een kleine waarde aannneemt. Men ziet dat zonder dropout, de trainingsfout vrij snel naar
nul convergeert. Dit is meestal een indicatie dat het model overfit. Er valt namelijk snel
niets meer te trainen. De fout is gelijk aan nul en de kostfunctie heeft een lokaal minimum
38
Hoofdstuk 3. Onderzoeksopzet en resultaten
35
NAG
NAG+Drop
NAG+Drop+LCN
NAG+Drop+LCN+Aug
Trainingsfout (%)
30
25
20
15
10
5
0
0
5
10
15
20
Epoch
Figuur 3.8: Vergelijking van de trainingssnelheid voor de verschillende optimalisatietechnieken.
bereikt, terwijl de validatiefout vaak vele malen groter is. Met data-augmentatie zien we
niet meer zo’n sterke daling van de trainingsfout. Dit kan verklaard worden doordat de
data aan de invoer praktisch nooit hetzelfde is over alle epochs, waardoor de generalisatie
van het model verbetert.
Omdat met data-augmentatie de trainingsfase aanzienlijk wordt vertraagd, zal er in
wat volgt verschillende experimenten vergeleken worden zonder data-augmentatie (het
voorlaatste resultaat in Tabel 3.2). Hier wordt een classificatiefout behaald van 10.3%
met behulp van ReLU’s, NAG-momentum, dropout en LCN (alle optimalisatietechnieken
zonder data-augmentatie).
3.5.1
Invloed van de invoerkanalen
De invoerkanalen van het model zijn de voorverwerkte video’s die besproken worden in
Sectie 3.2. Er zijn in totaal vier invoerkanalen: het grijswaardenbeeld en het dieptebeeld
van de hand en het bovenlichaam. Om na te gaan welk soort invoerkanaal het meeste
nuttige informatie voor het CNN bevat, wordt ge¨experimenteerd door enkel ´e´en kanaalsoort
als invoer te beschouwen. De resultaten voor deze experimenten zijn te vinden in Tabel
3.3.
Uit deze resultaten blijkt dat de nuttigste informatie voor het CNN zich bevindt in
de voorverwerkte dieptebeelden. Door de grijswaardenbeelden toe te voegen aan de
dieptebeelden gaat het foutpercentage slechts van 11.55% naar 10.3%, terwijl deze van
23.3% naar 10.3% gaat in het omgekeerde geval. Verder wordt waargenomen dat gebaren
iets minder te onderscheiden zijn door enkel het bovenlichaam in te voeren t.o.v. enkel
de hand. Dit kan verklaard worden doordat sommige gebaren dezelfde armbewegingen
maken, maar verschillende handuitdrukking. Er zijn daarenboven meer verschillende
handuitdrukkingen dan verschillende armbewegingen tussen de 20 gebaren.
39
Hoofdstuk 3. Onderzoeksopzet en resultaten
Fout (%)
Grijswaarden + diepte:
Bovenlichaam
Hand
15.45
14.05
Bovenlichaam + hand:
Grijswaarden
Diepte
23.30
11.55
Spatiale resolutie:
32x32
64x64
128x128
11.15
10.30
11.70
Tabel 3.3: Invloed van het invoerkanaal op het valiatieresultaat.
# lagen
2
3
4
Fout (%)
11.90
10.30
10.95
Filters
9x9 - 5x5 - 3x3
5x5 - 5x5 - 4x4
3x3 - 4x4 - 3x3
Fout (%)
10.30
10.30
11.75
# filters
8 - 16 - 24
16 - 32 - 48
32 - 64 - 48
Fout (%)
11.60
10.30
11.10
Tabel 3.4: Invloed van de architectuur op het validatieresultaat.
3.5.2
Invloed van de architectuur
Met het architectuur van het CNN wordt ook ge¨experimenteerd (Tabel 3.4). Maar zoals de
resultaten aangeven, hebben deze niet zoveel invloed op het eindresultaat in vergelijking
met de invoerkanalen in de vorige sectie. De grootste afwijking die waargenomen wordt is
als er twee CNN lagen in plaats van drie worden gebruikt (van 10.3% naar 11.9%). Dit
wil zeggen dat de diepte van het architectuur het belangrijkst is. Daarnaast kan men ook
zien dat te kleine filters niet zo goed features kunnen extracten als grotere filters (van
10.3% naar 11.75%). Verder kan men ook sleutelen aan het aantal filters in elke laag.
Teveel filters zorgen voor teveel parameters, waardoor het model meer kan overfitten. En
te weinig filters zorgen voor een te hoge bias, omdat de expansie van de filterbank niet
groot genoeg is om de 20 klassen van elkaar te onderscheiden. Dit gezegd zijnde, hebben
deze architectuurwijzigingen in het algemeen niet zoveel invloed.
De validatieresultaten van een aantal noemenswaardige experimenten omtrent de architectuur van het model zijn weergegeven in Tabel 3.5. Met frame-pooling, wordt 3D
max-pooling vervangen door spatiale 2D max-pooling en de frames worden nadien bij
elkaar gepoold. Alle frames worden gepartitioneerd in groepen van twee frames. Van
elke groep blijft de frame over waar het gemiddelde het grootst is. De reden voor dit
experiment is dat max-pooling over videoframes niet zo initiu¨ıtief lijkt voor de mens. Als
men, bijvoorbeeld, max-poold over twee frames waar een hand beweegt, zal het resulterende
40
Hoofdstuk 3. Onderzoeksopzet en resultaten
Experimeten
Frame-pooling
2D pooling (i.p.v. 3D)
3D convoluties (i.p.v. 2D)
LCN in 3 lagen
LRN (i.p.v. LCN)
Fout (%)
13.60
11.95
10.75
10.90
13.50
Tabel 3.5: Invloed van de architectuur op het validatieresultaat. Een aantal noemenswaardige
experimenten.
frame twee handen bevatten. Op het eerste zicht lijkt dit een vreemde manier om features
te extraheren. Maar voor de computer blijkt dit helemaal geen probleem te zijn. En zoals
de resultaten aangeven is zelfs zonder pooling over de derde dimensie een betere oplossing
dan frame-pooling (van 11.95% naar 13.6%).
Verder wordt ook ge¨experimenteerd met 3D convoluties. De filtergroottes voor het resultaat
in de tabel (10.75%) zijn 3x5x5 in de eerste laag, 5x5x5 in de tweede laag en 3x4x4 in de
laatste CNN laag. Tijdens het academiejaar werd meerdere malen ge¨experimenteerd met
3D convoluties, maar 2D convoluties gaven altijd betere resultaten en maken het model
ook minder rekenintensief. Er wordt daarenboven ook steeds ervoor gezorgt dat het aantal
parameters in elke laag afgestemd wordt op de validatievoorbeelden.
Tot slot wordt ge¨experimenteerd met normalisaties. Als men LCN ook in de laatste laag van
het CNN toepast, zal dit geen gunstig effect geven. In de laatste laag is er niet veel lokaliteit
meer, door de lage resoluties van de featuremaps. Het enige wat LCN zal doen ten opzichte
van variantienormalisatie, is informatie verliezen aan de randen van de featuremaps, door
de toepassing van de Gaussiaanse filter. Verder wordt er ook een experiment uitgevoerd
met LRN met dezelfde hyperparamters als gebruikt wordt in [Krizhevsky et al., 2012].
Deze normalisatie wordt niet zo vaak gebruikt, en het resultaat voor dit experiment is
ongustig, daarom wordt beslist om het verder niet meer te gebruiken.
3.6
Segmentatie en realtime demo
De validatieresultaten van vorige sectie zijn behaald door continue videostromen in stukken
te knippen door middel van de meegeleverde labels. Met andere woorden, tot nu toe
werd manueel aangegeven wanneer een gebaar begint en wanneer dit eindigt. Indien
men gebarentaalherkenning wil automatiseren moet deze temporele segmentatie uiteraard
automatisch gebeuren. Bovendien is dit ook noodzakelijk voor de ChaLearn wedstrijd
(beschreven in Sectie 3.1). De testset van de wedstrijd is namelijk niet gelabeled. Dit gezegd
zijnde, is er voor classificatie meer aandacht besteed dan voor segmentatie. Er zijn geen
41
Hoofdstuk 3. Onderzoeksopzet en resultaten
state-of-the-art technieken gebruikt, maar desondanks is de ontwikkelde segmentatiemodule
voldoende functioneel om een degelijke score te halen op de testset en de validatieset van
de wedstrijd.
Voor de segmentatie wordt een eenvoudige sliding window-techniek toegepast over 32
frames. Alle mogelijke intervallen van 32 frames worden in het model gevoerd, waardoor
de voorspelde probabiliteiten van elke klasse worden verkregen. Als tijdens het verloop
van de frames in de video de maximale probabiliteit hoog genoeg is (bijvoorbeeld hoger
dan 0.9), zal er voorspeld worden dat een gebaar aan het begin van dat interval begint.
Eens de maximale probabiliteit weer daalt of dat het maximum verschuift naar een andere
klasse, zal er voorspeld worden dat het gebaar eindigt. Om een duidelijker onderscheid
te maken tussen segmenten met een gebaar en segmenten zonder gebaar, wordt een extra
klasse aan het model toegevoegd die de videosegmenten zonder gebaar categoriseren.
De hierboven beschreven segmentatietechniek is eveneens toegepast voor de ontwikkeling
van het realtime demo met de Microsoft Kinect. Voor deze demo moet ervoor gezorgt
worden dat de voorverwerking, de evaluatie en de segmentatie snel genoeg zijn voor realtime
gebruik. Dit blijkt, zelfs met een middenklasse laptop uit 2013, geen groot probleem te
zijn. Door het aantal predicties per seconde klein genoeg te kiezen, kan het gemakkelijk
aangepast worden aan de gebruikte computer.
3.7
Eindresultaten
De testset voor deze masterproef is de testset van de 2014 ChaLearn wedstrijd en bevat 240
video’s (3543 gebaren) van gebruikers en achtergronden die eveneens kunnen voorkomen in
de trainingset en de validatieset. De classificatiefout die het beste model hierop behaalt
is 4.32% met alle optimalisatietechnieken ingeschakelt, inclusief data-augmentate. Dit
model is geoptimaliseerd op de validatieset, waar het een fout van 8.3% behaalt. De
video’s bevatten ook een aantal gebaren die niet tot de 20 klassen behoren. Hierop worden
eveneens een aantal fouten gemaakt door het model, namelijk 4.13% zijn fout-positieve
voorspellingen.
De test- en validatiescore van de wedstrijd wordt bepaald op basis van de Jaccard Index
per gebaar:
Jn =
An ∩ B n
An ∪ B n
(3.5)
met An en Bn binaire vectors waarbij de 1-waarden de frames aangeven dat het n-de
gebaar wordt uitgevoerd. An is de ground truth van alle frames waar het n-de gebaar in
de video voorkomt en Bn is de voorspelling. De score is gelijk aan het gemiddelde van Jn
Hoofdstuk 3. Onderzoeksopzet en resultaten
42
over alle gebaren in zowel de ground truth als in de predicties. Het is een mate van overlap
tussen de voorspellingen en de ground truth. In het geval van fout-positieven (voorspelde
gebaren die niet in de ground truth voorkomen) wordt de Jaccard Index automatisch 0
voor dat voorspelde gebaar en dat zal meegeteld worden in het gemiddelde.
De totale Jaccard Index-gebaseerde validatiescore van de wedstrijd is 0.790, ofwel 79.0%
overlap. De testscore bedraagt 0.789, ofwel 78.9% overlap. Dit verschil is zeer klein, omdat
in de testset dezelfde gebruikers en achtergronden voorkomen als de validatieset van de
wedstrijd (niet de validatieset van deze masterproef). Van de 35 teams die zich hebben
ingeschreven voor de ChaLearn wedstrijd, behaalt deze score de vijfde plaats. De resultaten
en de methodes van de andere teams zijn op dit moment nog niet publiekelijk bekend
gemaakt.
Kort samengevat, zijn dit de eindresultaten voor de testset:
• Classificatiefout: 4.32%
• Fout-positieven: 4.13%
• Temporele overlap: 78.9%
Hoofdstuk 4
Conclusie
4.1
Besluit
Er is aangetoond dat het mogelijk is om 20 verschillende ge¨ısoleerde gebaren te herkennen
met behulp van de Microsoft Kinect, convolutionele neurale netwerken (CNN’s) en GPUacceleratie. Er is een validatienauwkeurigheid van 91.70% en een testnauwkeurigheid van
95.68% waargenomen. De reden dat het testresultaat beter is dan het validatieresultaat
is omdat het model geoptimaliseerd wordt op de validatieset met gebaren die uitgevoerd
worden door gebuikers en omgevingen die niet in de trainingset voorkomen.
In de voorverwerking wordt het bovenlichaam en de bovenste hand uitgesneden, en wordt
de ruis in het dieptebeeld onderdrukt. Er worden twee CNN’s gebruikt, ´e´en voor de
extractie van handfeatures en ´e´en voor het bovenlichaam. Een artifieel neuraal netwerk
(ANN) met ´e´en verborgen laag zorgt voor de classificatie. Generalisatietechnieken zoals
dropout, data-augmentatie en rectified linear units (ReLU’s), en acceleratietechnieken,
zoals lokaal contrast normalisatie (LCN), momentum en GPU-technologie, zijn met success
toegepast en onderzocht met behulp van de dataset van de 2014 ChaLearn wedstrijd.
ReLU’s en het gebruik van voorverwerkte dieptebeelden bewijzen de meeste invloed op het
classificatieresultaat te hebben. Verder tonen de experimenten aan dat kleine aanpassingen
aan de architectuur van CNN’s weinig impact hebben op het resultaat.
De temporele segmentatie van videostromen wordt verwezenlijkt door in elk interval van
32 frames te bepalen of de maximale voorspelde klasseprobabiliteit voldoende groot is en
door een extra klasse toe te voegen met segmenten zonder gebaar.
Met behulp van bovenstaande technieken is er een realtime demo ontwikkeld met de
Microsoft Kinect die de 20 Italiaanse gebaren met hoge nauwkeurigheid kan herkennen.
43
Hoofdstuk 4. Conclusie
4.2
44
Aanbevelingen voor verder onderzoek
Automatische herkenning van ge¨ısoleerde gebaren volstaat niet, omdat gebarentaal een
continue gebarenstroom is met bewegingsepenthesis. Er kan onderzocht worden hoe de segmentatie van de videostroom aangepakt moet worden en hoe men met bewegingsepenthesis
moet omgaan. Hiervoor kunnen eerst de standaard-aanpakken uit de spraakverwerking
ge¨evalueerd worden, want daar bestaan detzelfde problemen. Gesproken taal is namelijk
een continue stroom van geluid en moet gesegmenteerd worden in het geval van spraakherkenning. Hier bestaat ook het probleem van epenthesis en/of hiaatdelging. Extra klanken
of medeklinkers worden toegevoegd om de uitspraak te vergemakkelijken. “Hoe is het
ermee?”, bijvoorbeeld, spreekt men in spraaktaal uit als “Hoe-w-istermee?”.
Een ge¨ıntegreerd model zou opgebouwd kunnen worden op basis van een CNN, dat
segmentatie, bounding box bepaling en classificatie simultaan implementeert. [Erhan et al.,
2013] gebruikt diepe modellen voor zowel objectdetectie, i.e. het bepalen van een bounding
box, als classificatie. [Zeiler & Fergus, 2013b] toont aan hoe eenzelfde netwerk zou kunnen
gebruikt worden voor zowel bounding box-bepaling als classificatie.
Verder zou onderzocht kunnen worden hoe men een taalmodel moet ontwikkelen die de
afzonderlijke gebaren kan combineren tot betekenisvolle zinnen. Dit taalmodel zal eveneens
de prestatie van het herkenningssysteem verbeteren.
Het onderzoekswerk omtrent een specifieke gebarentaal kan ook overgebracht worden naar
een andere taal. Hierbij kunnen technieken uit transfer learning [Pan & Yang, 2010]
gebruikt worden. Het herkenningsmodel zal geleerde kennis over de gebruikte gebarentaal
bezitten. Een deel van deze kennis is specifiek voor de taal. Maar vooral de eerste lagen van
het diep model, waar laagniveau kenmerken worden ge¨extraheerd (zoals randen, vingers
en handen), zijn over te dragen naar andere gebarentalen en/of dialecten. Dit zal dus het
bouwen van herkenners voor andere gebarentalen en varianten vereenvoudigen.
Het onderzoek naar automatische gebarentaal met behulp van deep learning is veelbelovend
voor de herkenning in realistische omstandigheden. Het zal niet alleen doven en slechthorenden vooruit helpen, maar kan ook gebruikt worden als een tool die taalkundig onderzoek
naar gebarentaal vergemakkelijkt. Daarnaast kan alle innovatie omtrent CNN’s en deep
learing van nut zijn voor andere toepassingen, zoals beeldherkenning, sc`ene-interpretatie
en -segmentatie, en andere taken waar videodata aan te pas komt.
Bibliografie
[Ali & Shah, 2010] Ali, S. & Shah, M. (2010). Human action recognition in videos using
kinematic features and multiple instance learning. Pattern Analysis and Machine
Intelligence, IEEE Transactions on, 32(2), 288–303.
[Bengio, 2009] Bengio, Y. (2009). Learning deep architectures for ai. Foundations and
trends in Machine Learning, 2(1), 1–127.
[Bengio et al., 2007] Bengio, Y., Lamblin, P., Popovici, D., Larochelle, H., et al. (2007).
Greedy layer-wise training of deep networks. Advances in neural information processing
systems, 19, 153.
[Bergstra et al., 2010] Bergstra, J., Breuleux, O., Bastien, F., Lamblin, P., Pascanu, R.,
Desjardins, G., Turian, J., Warde-Farley, D., & Bengio, Y. (2010). Theano: a CPU and
GPU math expression compiler. In Proceedings of the Python for Scientific Computing
Conference (SciPy). Oral Presentation.
[Brunet, 2010] Brunet, F. (2010). Contributions to Parametric Image Registration and 3D
Surface Reconstruction. PhD thesis, Universit´e d’Auvergne.
[Chai et al., 2013] Chai, X., Li, G., Lin, Y., Xu, Z., Tang, Y., Chen, X., & Zhou, M. (2013).
Sign Language Recognition and Translation with Kinect.
[Cire¸san et al., 2012] Cire¸san, D., Meier, U., & Schmidhuber, J. (2012). Multi-column deep
neural networks for image classification. In Computer Vision and Pattern Recognition
(CVPR), 2012 IEEE Conference on (pp. 3642–3649).: IEEE.
[Cire¸san et al., 2011a] Cire¸san, D. C., Meier, U., Gambardella, L. M., & Schmidhuber, J.
(2011a). Convolutional neural network committees for handwritten character classification.
In Document Analysis and Recognition (ICDAR), 2011 International Conference on (pp.
1135–1139).: IEEE.
[Cire¸san et al., 2011b] Cire¸san, D. C., Meier, U., Masci, J., Gambardella, L. M., & Schmidhuber, J. (2011b). Flexible, high performance convolutional neural networks for
45
Bibliografie
46
image classification. In Proceedings of the Twenty-Second international joint conference
on Artificial Intelligence-Volume Volume Two (pp. 1237–1242).: AAAI Press.
[Cooper et al., 2012] Cooper, H., Ong, E.-J., Pugeault, N., & Bowden, R. (2012). Sign
language recognition using sub-units. The Journal of Machine Learning Research, 13(1),
2205–2231.
[Erhan et al., 2013] Erhan, D., Szegedy, C., Toshev, A., & Anguelov, D. (2013). Scalable
object detection using deep neural networks. arXiv preprint arXiv:1312.2249.
[Escalera et al., 2013] Escalera, S., Gonz`alez, J., Bar´o, X., Reyes, M., Lopes, O., Guyon,
I., Athistos, V., & Escalante, H. (2013). Multi-modal gesture recognition challenge 2013:
Dataset and results. ICMI.
[Glorot et al., 2011] Glorot, X., Bordes, A., & Bengio, Y. (2011). Deep Sparse Rectifier
Networks. Proceedings of the 14th International Con- ference on Artificial Intelligence
and Statistics, 15, 315–323.
[Goodfellow et al., 2013a] Goodfellow, I. J., Bulatov, Y., Ibarz, J., Arnoud, S., & Shet, V.
(2013a). Multi-digit number recognition from street view imagery using deep convolutional
neural networks. arXiv preprint arXiv:1312.6082.
[Goodfellow et al., 2013b] Goodfellow, I. J., Warde-Farley, D., Lamblin, P., Dumoulin, V.,
Mirza, M., Pascanu, R., Bergstra, J., Bastien, F., & Bengio, Y. (2013b). Pylearn2: a
machine learning research library. arXiv preprint arXiv:1308.4214.
[Hinton et al., 2006] Hinton, G. E., Osindero, S., & Teh, Y.-W. (2006). A fast learning
algorithm for deep belief nets. Neural computation, 18(7), 1527–1554.
[Hinton et al., 2012] Hinton, G. E., Srivastava, N., Krizhevsky, A., Sutskever, I., & Salakhutdinov, R. R. (2012). Improving neural networks by preventing co-adaptation of
feature detectors. arXiv preprint arXiv:1207.0580.
[Jarrett & Kavukcuoglu, 2009] Jarrett, K. & Kavukcuoglu, K. (2009). What is the best
multi-stage architecture for object recognition? Computer Vision, 2009 IEEE 12th
International Conference on, (pp. 2146–2153).
[Ji et al., 2013] Ji, S., Yang, M., & Yu, K. (2013). 3D convolutional neural networks
for human action recognition. IEEE transactions on pattern analysis and machine
intelligence, 35(1), 221–31.
[Karpathy et al., 2014] Karpathy, A., Toderici, G., Shetty, S., Leung, T., Sukthankar, R.,
& Fei-Fei, L. (2014). Large-scale video classification with convolutional neural networks.
In CVPR.
Bibliografie
47
[Krizhevsky et al., 2012] Krizhevsky, A., Sutskever, I., & Hinton, G. (2012). Imagenet
classification with deep convolutional neural networks. Advances in Neural Information,
(pp. 1–9).
[Lecun et al., 1998] Lecun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based
learning applied to document recognition. Proceedings of the IEEE, 86(11).
[Mitchell, 1997] Mitchell, T. M. (1997). Machine learning. 1997. Burr Ridge, IL: McGraw
Hill, 45.
[Nair & Hinton, 2010] Nair, V. & Hinton, G. E. (2010). Rectified linear units improve
restricted boltzmann machines. In Proceedings of the 27th International Conference on
Machine Learning (ICML-10) (pp. 807–814).
[Pan & Yang, 2010] Pan, S. J. & Yang, Q. (2010). A survey on transfer learning. Knowledge
and Data Engineering, IEEE Transactions on, 22(10), 1345–1359.
[Poppe, 2010] Poppe, R. (2010). A survey on vision-based human action recognition. Image
and vision computing, 28(6), 976–990.
[Samuel, 1959] Samuel, A. L. (1959). Some studies in machine learning using the game of
checkers. IBM Journal.
[Sutskever et al., 2013] Sutskever, I., Martens, J., Dahl, G., & Hinton, G. (2013). On the
importance of initialization and momentum in deep learning. In Proceedings of the 30th
International Conference on Machine Learning (ICML-13) (pp. 1139–1147).
[Van Herreweghe & Vermeerbergen, 2009] Van Herreweghe, M. & Vermeerbergen, M.
(2009). Flemish sign language standardisation. Current Issues in Language Planning, 10.
[Vannieuwenhuyse, 2013] Vannieuwenhuyse, J. (2013). Gebarentaal herkennen met de
microsoft kinect.
[Verschaeren, 2012] Verschaeren, R. (2012). Automatische herkenning van gebaren met de
microsoft kinect.
[Yang et al., 2010] Yang, R., Sarkar, S., & Loeding, B. (2010). Handling movement
epenthesis and hand segmentation ambiguities in continuous sign language recognition
using nested dynamic programming. Pattern Analysis and Machine Intelligence, IEEE
Transactions on, 32(3), 462–477.
[Zaki & Shaheen, 2011] Zaki, M. M. & Shaheen, S. I. (2011). Sign language recognition
using a combination of new vision based features. Pattern Recognition Letters, 32(4),
572–577.
Bibliografie
48
[Zeiler & Fergus, 2013a] Zeiler, M. & Fergus, R. (2013a). Stochastic pooling for regularization of deep convolutional neural networks. arXiv preprint arXiv:1301.3557, (pp.
1–9).
[Zeiler & Fergus, 2013b] Zeiler, M. D. & Fergus, R. (2013b). Visualizing and understanding
convolutional neural networks. arXiv preprint arXiv:1311.2901.