Sztuczna sieć neuronowa do estymacji parametrów geometrycznych obiektu odwzorowanego w obrazie 3D
Artificial neural network for estimation of geometric parameters of an object visualized in a 3D image
Streszczenie
W ramach niniejszej pracy opracowane zostało rozwia˛zanie oparte o sztuczna˛ siec´
neuronowa˛, pozwalaja˛ce na estymacje˛ wektorów normalnych do powierzchni obiektów odwzorowanych
w obrazach 3D. Przetwarzane obrazy były obrazami składaja˛cymi sie˛ z wokseli
- elementów obrazu analogicznych do dwuwymiarowych pikseli, a nie siatki wieloka˛tów,
jak ma to miejsce w znacznej cze˛s´ci rozwia˛zan´ słuz˙a˛cych do estymacji wektorów normalnych
dla obrazów 3D. Na potrzeby pracy wygenerowane zostały obrazy odwzorowuja˛ce
proste przestrzenne figury geometryczne. Obrazy te zostały wykorzystane do uczenia i testów
stworzonej sieci neuronowej. Powstaja˛ce rozwia˛zanie implementowane było w je˛zyku
Python, a sie´c neuronowa tworzona i uczona z wykorzystaniem biblioteki TensorFlow. Zaprojektowana
siec´ jest siecia˛ splotowa˛, która przyjmuje wycinek obrazu o wymiarach 7x7x7
woksela. Siec´ zwraca dla danego wycinka dwie wartos´ci - j i q be˛da˛ce współrze˛dnymi
estymowanego wektora w sferycznym układzie współrz˛ednych. Trzecia współrz˛edna - r,
nie jest estymowana, jako z˙e decyduje ona jedynie o długos´ci wektora. Stworzone rozwia˛-
zanie daje satysfakcjonuja˛ce wyniki oraz charakteryzuje sie˛ zadowalaja˛ca˛ odpornos´cia˛ na
szum. Otrzymywane wyniki zostały szerzej przeanalizowane w ramach pracy. Przedstawione
zostały równie˙z wizualizacje estymowanych wektorów. Dokonana została wst˛epna
analiza potencjalnej implementacji sprz˛etowej.
Słowa kluczowe: [Sieci neuronowe], [Obrazy 3D], [Konwolucyjne sieci neuronowe],
[Splotowe sieci neuronowe], [Wektory normalne], [TensorFlow].
Abstract
As a result of work related to this thesis a solution for estimation of surface normal
vectors for objects visualised in 3D images was created. The solution is based around an
artificial neural network. The images that are being processed consist of voxels - image elements
analogous to two-dimensional pixels, as opposed to polygon mesh that is predominant
in papers dealing with the issue of surface normal estimation for 3D images. For the purpose
of this work, images visualising simple 3D geometric shapes were generated. Those images
were then used to teach and test the neural network that was being created. The solution
was implemented using the Python programming language and the network was created and
taught using the TensorFlow library. The designed network is a convolutional neural network
that takes a 7x7x7 voxels image fragment as an input. For a given fragment the network returns
two values - j and q, which are the spherical coordinates of the estimated vector.
The coordinate r is not being estimated as it corresponds merely to the length of the vector.
Created solution yields satisfactory results and displays sufficient noise resistance. Results
obtained for the test examples were further scrutinized as a part of this thesis. Visualizations
of the estimated surface normals were created and presented in the thesis. Preliminary
analysis of potential hardware implementation was performed.
Keywords: [Neural networks], [3D images], [Convolutional neural networks],
[Surface normals], [TensorFlow].