Computer vision is perhaps one area that has been most impacted by developments in deep learning.
It can be difficult to both develop and to demonstrate competence with deep learning for problems in the field of computer vision.
It is not clear how to get started, what the most important techniques are, and the types of problems and projects that can best highlight the value that deep learning can bring to the field.
On approach is to systematically develop, and at the same time demonstrate competence with, data handling, modeling techniques, and application domains and present your results in a public portfolio of completed projects.
This approach allows you to compound your skills from project to project.
It also provides the basis for real projects that can be presented and discussed with prospective employers in order to demonstrate your capabilities.
In this post, you will discover how to develop and demonstrate competence in deep learning applied to problems in computer vision.
After reading this post, you will know:Let’s get started.
How to Develop and Demonstrate Competence With Deep Learning for Computer VisionPhoto by Sole Perez, some rights reserved.
This tutorial is divided into three parts; they are:Perhaps one domain that has been the most impacted by developments in deep learning is computer vision.
Computer vision is a subfield of artificial intelligence concerned with understanding data in images, such as photos and videos.
Computer vision tasks such as recognizing handwritten digits and objects in photographs were some of the early case studies demonstrating the capability of modern deep learning techniques achieving state-of-the-art results.
As a practitioner, you may wish to develop and demonstrate your skills with deep learning in computer vision.
This does assume a few things, such as:This does not mean that you are an expert, only that you have a working knowledge and are able to wok through problems systematically.
As a machine learning or even deep learning practitioner, how can you show competence with computer vision applications?Competence with deep learning for computer vision can be developed and demonstrated using a project-based approach.
Specifically, the skills can be built and demonstrated incrementally by completing and presenting small projects that use deep learning techniques on computer vision problems.
This requires you to develop a portfolio of completed projects.
A portfolio helps you in two specific ways:Projects can be focused on standard and publicly available computer vision datasets, such as those developed and hosted by academics or those used in machine learning competitions.
Projects can be completed in a systematic manner, including aspects such as clear problem definition, review of relevant literature and models, model development and tuning, and the presentation of results and findings in a report, notebook, or even slideshow presentation format.
Projects are small, meaning that they can be completed in a workday, perhaps spread over a number of nights and weekends.
This is important as it limits the scope of the project to focus on workflow and delivering a skillful result, rather than developing a state-of-the-art result.
Projects can be selected carefully in such a way to both build in terms of challenge or complexity and in terms of leverage or skill development.
Below is a three-level framework for developing and demonstrating competence with deep learning for computer vision, intended for practitioners already familiar with the basics of applied machine learning and the basics of deep learning:Data handling competence refers to the ability to load and transform data.
This includes basic data I/O operations such as loading and saving image or video data.
Most importantly, it involves using standard APIs to manipulate image data in ways that may be useful when preparing data for molding with deep learning neural networks.
Examples include:Data handling could be demonstrated with one of many image handling APIs, such as:It may include the basic data handing capability of machine learning and deep learning libraries, such as:What are your favorite image handling APIs in Python?.Let me know in the comments below.
Technique competence refers to the ability to use the specific deep learning models and methods that are used for computer vision problems.
This includes from a high-level the three main classes of methods:More specifically, this requires a demonstration of strong skills with how to configure and get the most of the layers used in a CNN, such as:This may also include skill with some general classes of effective models, such as:What are your favorite deep learning techniques for computer vision?.Let me know in the comments below.
Application competence refers to the ability to work through a specific computer vision problem and use deep learning methods to deliver a skillful model.
A skillful model means a model that is capable of making predictions that have better performance than a naive baseline method.
It does not mean achieving state-of-the-art results and replicating a model and results in a paper, although they are fine project ideas if they are within scope of a small project.
The project should be completed systematically, including most if not all of the following steps:A step before this process, step zero, might be to choose a publicly available dataset appropriate for the project.
The backbone of deep learning for computer vision is image classification, commonly referred to as image recognition or object detection.
This involves predicting a class label given an image, often a photograph.
Problems of this type should be the focus.
Two standard computer vision datasets of this type include:A related computer vision task is identifying the location of one or more objects within photographs, also referred to as object recognition or object localization or segmentation.
There are also tasks that involve a mixture of computer vision and natural language processing, for example:Finally, there are computer vision tasks that can be performed using manipulations of existing standard datasets or catalogs of photos, such as:What are your favorite applications of deep learning for computer vision?.Let me know in the comments below.
This section provides more resources on the topic if you are looking to go deeper.
In this post, you discovered how to develop and demonstrate competence in deep learning applied to problems in computer vision.
Specifically, you learned:Do you have any questions?.Ask your questions in the comments below and I will do my best to answer.