Thumbnail Image

Geometric and semantic understanding of objects from a single image using deep learning

Afifi, Ahmed J. M.

Since the dawn of computer vision, semantic and geometric scene understanding has been an essential problem. It impacted early works and led to numerous real-world applications. A scene is a place where an agent can act with or navigate. Scene understanding is the process of analyzing the semantic information inside the static 2D image and the relationships between the scene contents. This dissertation presents the use of deep learning models and how they can be applied to recognize the surrounding environment given a single still image. The scene captured in an image contains different objects from various classes and they are looking in different directions. These objects appear in the image either small because they are far from the camera or large because they are very close to the camera. When the scene is complex, we find that some objects are occluded and it is hard sometimes to predict contextual information about the complete 3D object. Also, using a single view always leads to ill-posed problems as there is no enough information to reveal the ambiguity. So, to build a useful and complete understanding of a given scene, we have to answer the following questions: (1) what are the object classes that appear in the image? (2) from which direction do they look at the camera? (3) are the objects far or close to the camera? (4) if some object parts are hidden, how can the machine generate the 3D information of the object? More specifically, this dissertation approaches scene understanding by answering the above-mentioned questions. First, we present a multi-task CNN model that performs object classification and viewpoint estimation simultaneously. These two problems seem to have opposite representative features. For object classification, the features should be powerful so that they are orientation-invariant features. For viewpoint estimation, the features should preserve the orientation characteristic and the ability to describe the same object with different viewpoints. To this end, the proposed CNN has a shared network for both tasks and task-specific sub-networks. With this design, the mentioned problems can be solved using the same model without proposing parallel models and separating the tasks. Second, we address the problem of depth estimation from a single image. We formulate this problem as a regression task and propose two different CNN models to solve this task. The first model uses a series of stacked convolutional layers that generate the depth map from a single image. This model is a fully convolutional network that regresses the depth information for each pixel. However, the generated depth images are smaller than the input images and they are blurry. To overcome this drawback, we propose a second model that has encoder-decoder architecture. This model has an encoder part to extract useful features and a decoder part to reconstruct the image and generate the final depth image. The useful information extracted in the encoder part is transferred to the decoder part using the skip-connections. This information helps in generating more accurate depth images with sharper objects’ parts. For this task, we select a non-convex loss function to train the models and optimize the network weights. The no-convex loss function is robust against to the outliers and converges faster. In the last part of the dissertation, we propose a CNN model that reconstructs 3D point clouds of objects form a single image. Single-view reconstruction is a hard task as the 3D structure can be inferred accurately for specific object classes given restricted assumptions. The proposed model is a simple, yet powerful, that utilizes an initial point cloud of a sphere shape to generate the final point cloud. For this problem, we use a large-scale 3D dataset to train the model. Many images are rendered from each 3D model and used for training. To generate the ground-truth point clouds, we sample the points from the object’s surface. The proposed model takes a single image of an object and generates a point cloud that presents the desired object accurately. An initial sphere is used to spread the points evenly on the reconstructed object surface and prevents the points to be grouped in some parts of the objects.This dissertation demonstrates the leverage of using deep learning technology to give a comprehensive understanding of a scene using a single image only. We conclude this dissertation with a general discussion and propose several potential future research directions for better deep learning understanding and interpretation in solving computer vision tasks.
Seit dem Beginn von Computer Vision war das semantische und geometrische Verständnis von Szenen ein essentielles Problem. Es beeinflusste erste Arbeiten und führte zu zahlreichen Anwendungen. Eine Szene beschreibt einen Ort in welchem ein Agent agiert oder navigiert. Daher ist das Verständnis einer Szene der Prozess semantische Informationen in einem statischen 2D Bild zu analysieren und die Beziehungen zwischen den einzelnen Inhalten in diesem Bild zu verstehen. Diese Dissertation präsentiert wie verschiedene Deep Learning Modelle genutzt und für ein Verständnis von Szenerien aus einem einzigen Bild eingesetzt werden können. Ein aufgenommenes Bild enthält verschiedene Objekte aus verschiedenen Klassen, die unterschiedlich ausgerichtet sind. Diese Objekte können entweder durch eine große Distanz zur Kamera sehr klein erscheinen oder groß, wenn sie sich direkt vor der Kamera befinden. Enthält eine Szene viele Objekte, verdecken einige Objekte andere und schränken somit die verfügbaren Informationen über das komplette 3D Objekt ein. Somit führt ein einzelnes Bild immer zu Problemen mit unzureichenden Informationen um Unklarheiten aufzulösen. Für das kreieren eines nützliches und komplettes Verständnis einer gegebenen Szene müssen folgende Fragen beantwortet werden: (1) Welche Objektklassen kommen in dem Bild vor? (2) Aus welcher Richtung betrachtet die Kamera die Szene? (3) Sind die Objekte nah an der Kamera oder weit weg? (4) Wenn Teile von Objekten verdeckt sind, wie kann eine Maschine diese 3D Informationen ergänzen? Genauer, diese Dissertation nähert sich dem Problem des Szenenverständnisses indem sie die oben genannten Fragen beantwortet. Als erstes wird ein multi-task CNN Modell vorgestellt, welches sowohl Objektklassifizierung als auch den Betrachtungsstandpunkt schätzt. Diese beiden Probleme scheinen gegensätzliche repräsentative Features zu benutzen. Für Objektklassifizierungen sollten die Features invariant zur Orientierung des Objektes sein. Für die Schätzung des Betrachtungsstandpunktes sollte jedoch die Orientierung erhalten bleiben. Zusätzlich sollte die Fähigkeit bestehen bleiben Objekte von verschiedenen Blickwinkeln aus zu beschreiben. Dennoch hat das vorgeschlagene Modell ein neuronales Netz, das für beide Probleme genutzt wird, und problemspezifische Subnetze. Mit diesem Design können beide Aufgaben mit dem gleichen Modell gelöst werden statt jedes Problem parallel und separat zu lösen. Als zweites wird die Problematik der Tiefenbestimmung aus einem Bild behandelt. Hierfür werden zwei verschiedene CNNs vorgeschlagen um das Problem als Regression zu lösen. Das erste benutzt eine Reihe von aufeinanderfolgenden Faltungen, die eine Tiefenkarte aus einem einzelnen Bild generiert. Dieses ist ein reines Faltungsnetz, welches die Tiefe für jeden Pixel per Regression bestimmt. Allerdings sind diese generierten Bilder kleiner als das Ursprüngliche und verwaschen. Daher wird ein weiteres Modell vorgeschlagen, welches einer encoder-decoder Architektur folgt. Der Encoder extrahiert nützliche Features aus denen der Decoder dann das ürsprüngliche Bild rekonstruiert und das fertige Tiefenbild generiert. Die nützlichen Informationen werden im Encoder extrahiert und durch sogenannte Skip-Connections an den Decoder weiter gegeben. Diese Informationen verbessern die Genauigkeit der Tiefenkarte und schärferen Objektkanten. Für das Trainieren und Optimieren der Netzwerkgewichte wurde eine nicht konvexe Verlustfunktion gewählt. Die nicht konvexe Verlustfunktion führt zu weniger Einfluss von Ausreißern und konvergiert schneller. Im letzten Teil der Dissertation wird ein CNN Modell eingeführt, das 3D Punktwolken aus einem einzigen Bild rekonstruiert. Rekonstruktionen durch einen einzigen Betrachtungswinkel ist ein schweres Problem, da die 3D Struktur für spezifische Objekte nur durch Annahmen genau geschlussfolgert werden kann. Das vorgeschlagene Modell is einfach und trotzdem wirkungsvoll. Es benutzt eine Punktwolke einer Kugel um daraus die Punktwolke des Objekts zu generieren. Der Trainingsprozess basiert auf einem großzügig angelegten 3D Datenset. Aus 3D Modellen wurden viele Bilder erzeugt, die als Trainingsgrundlage dienen. Als optimale Lösung wurden Punkte auf der Oberfläche der 3D Geometrien extrahiert. Das vorgeschlagene Modell nutzt daher ein einzelnes Bild um daraus eine Punktwolke zu generieren, welche das gewünschte Objekt akkurat visualisiert und beschreibt. Die ursprüngliche Kugel wird genutzt um die Punkte gleichmäßig auf dem rekonstruierten Objekt zu verteilen. Sie verhindert, dass sich Punkte an einigen Stellen des Objekts gruppieren. Es wird demonstriert welchen Wirkungsgrad Deep Learning Technologien haben können um ein umfassendes Verständnis von Szenen aus nur einem einzelnen Bild zu erlangen. Die Arbeit wird mit einer Diskussion beendet und schlägt verschiedene potentielle Forschungsrichtungen vor, die zu einem besseren Verständnis und Interpretation von Deep Learning in Computer Vision führen können.