A TUTORIAL ON OBJECT RECOGNITION BY MACHINE LEARNING TECHNIQUES USING PYTHON
Universidad de Málaga (SPAIN)
About this paper:
Conference name: 13th International Technology, Education and Development Conference
Dates: 11-13 March, 2019
Location: Valencia, Spain
Abstract:
This paper presents our experiences towards a tutorial on a hot Computer Vision problem, object recognition employing Machine Learning techniques [1], which we consider can be a resource didactically interesting for both practitioners’ and lecturers’ communities. The recognition of objects is an innate ability of human beings. When we look at a picture, we are able to effortlessly detect elements like animals, signals, objects of interest, etc. In the Computer Vision field, this process is carried out by Machine Learning tools, aiming to retrieve information about the content of an image. The possible applications of object recognition are numerous, to name a few: image panoramas, robot localization, face detection/recognition, autonomous driving, or pedestrian detection.
Given the relevance of this problem, they have been explored numerous approaches for addressing it. Among the most popular techniques in both, real applications and academia, we can find those recognizing objects by means of hand-crafted features. Typical features are descriptors of their keypoints extracted according to a certain criterion (e.g. Scale-Invariant Feature Transform, SIFT [2]), or those geometrically (size, orientation, shape, etc.) or visually (colour, texture, etc.) describing the regions to be recognized. The number of software tools developed to carry out this task is large, including well-known software libraries as OpenCV [3] or scikit-learn [4]. However, object recognition is far from being a one-step task, and most of them lack a comprehensive step-by-step description of the pipeline needed for accomplishing it. This pipeline usually includes the management and analysis of the data used to train the recognition model, a pre-processing of such data to convert them into a usable form, the fitting of the model and, finally, its validation.
The tutorial presented in this work encompasses those steps, giving detailed information and hints about how to complete each one. It is accompanied by a public implementation of the object recognition pipeline (https://github.com/jotaraul/object_recognition_in_python) using trendy python tools (Pandas, seaborn and scikit-learn), so it can be profitable by Computer Vision practitioners and lecturers aiming to gain insight/illustrate good practices for the design of a successful object recognition system. It is also open to any contribution from those communities. Finally, we also provide some directions and experiences regarding its utilization in Computer Vision courses.
References:
[1] Christopher M. Bishop. Pattern Recognition and Machine Learning (Information Science and Statistics). Springer-Verlag New York, Inc., NJ, USA, 2006.
[2] David G. Lowe. Distinctive image features from scale-invariant keypoints. Int. Journal of Computer Vision, 60(2):91–110, 2004.
[3] The OpenCV library: https://opencv.org/ [Accessed online Nov’2018].
[4] The scikit-learn library: https://scikit-learn.org/ [Accessed online Nov’2018].Keywords:
Object recognition, computer vision, tutorial, python, pandas, seaborn, scikit-learn, undergraduate courses.