Computer Vision Engineer: The Advanced Guide
"Computer Vision Engineer"
Is that a title worth fighting for? I do think so!
But what does it really mean?
In this article, I will explain to you all the different paths you can follow, such as being a researcher, an integrator, or even a CTO.
We will explore the skills needed to reach each of these path, and you will build your own Roadmap from knowledgeable rookie to CTO of a Computer Vision startup.
Since that goes with it, we'll also talk about computer vision engineer salaries and jobs.
Okay, enough teasing.
14 Types of Computer Vision Engineers
The last thing I want is to give you a boring definition. Instead, I'm going to show you 14 different types of Computer Vision Engineers, and let you identify as one of them.
In this roadmap, I'm showing 4 levels of Computer Vision Engineering:
Let's briefly take a look into each:
You start to fall in love with AI and Computer Vision. You don't really have skills that would get you hired, but you know enough to talk about it.
When I started in Computer Vision, I realized we're all at the Knowledge Level when starting. We get interested in AI, we start creating powerpoints about Machine Learning vs Deep Learning vs AI, we build our first OpenCV functions, setup our Python code. It's all new and passionating.
Believe it or not, as a knowledgeable engineer, you can be one of the 4:
- The Consultant — You are assigned to Computer Vision related projects, either for labelling, managing, or developing basic bricks.
- The AI Face — You are the public face of your company when it comes to AI and Computer Vision. You animate meetups and give talks about the fundamentals of AI to a non-technical audience
- The Project Manager — You know enough about Computer Vision to manage a basic project that is not the #1 priority of the company
- The Intern — You learn computer vision you (aren't) get paid
A lot of them are straightforward. Something not too much theorized is what I called the "AI Face". Back when I started, I was in a consulting company where AI wasn't the main activity. There were doing digital transformations, and were playing with the idea of "Artificial Intelligence".
I didn't want to play, I wanted a career in it. One thing I did was to be one chapter ahead of my colleagues in Machine Learning and Computer Vision, and they let me be the AI Face of the company. It means I:
- Was invited to every client talk that involved artificial intelligence
- Was animating and hosting meetups on AI and Computer Vision (I even ended up being Head Dean of The France School of AI founded by YouTuber Siraj Raval)
- Was in charge of proofreading any AI Proposal we were sending.
It didn't end up here; I have even been invited to introduce Artificial Intelligence to former French President Nicolas Sarkozy (you can read the story here).
If you're in a company like the one I was in, being the AI Face is a smart move.
> If you're over this, then you might already be at the application level:
The next step is to start coding your own stuff. You have followed Andrew Ng and Adrian Rosebrock, and you're now more familiar with Computer Vision. It's the next step when you want to be more than a consultant, and would prefer work in the engineering and coding team. You'll start playing with Python, OpenCV, and work on small personal projects.
Inside companies, you can be one of the two profiles:
- The Integrator — You integrate existing solutions into your projects or inside web-apps. You can also work on external platforms such as IBM, ...
- The Junior — You can develop simple Computer Vision bricks such as object detection, classification, thresholding, ... in basic languages and platforms
Most Computer Vision Engineers are at this step.
> If not, you're probably at the Engineer Level.
This step is the one where you can have the most fun. You already know how Computer Vision and Artificial Intelligence works, and you have at least a year of experience developing these projects. You aren't playing anymore, you are building your career in the field.
There are several ways to reach that level, and we'll cover that a bit later in the article. For now, I'd like to show you the 3 profiles I identified:
- The Computer Vision Engineer — Classic. You build, train, optimize, and deploy/integrate models for a specific hardware, using one language and a known use-case.
- The Research Player — You focus more on the "Models" and spend most of your time on optimization, GPU programming, researching for state-of-the-art models, ...
- The Edgeneer — You create projects at the cutting-edge of Computer Vision such as 3D Vision, 4D Predictions, Visual Fusion, Mapping, Robotics, Advanced Deep Learning, ...
This stage is actually where I focus most of my courses and projects at. To help you transition from "Application" to "Engineer".
> Finally, the Expert Level (and beyond):
EXPERT LEVEL & BEYOND
Finally, I'd like to talk about the EXPERT LEVEL. These are the "senior" positions. These are paid better, and are almost always about years of experience. The two types of Experts are:
- The Senior — You now export your skills to different domains and platforms such as mobile or embedded, you can manage teams, code in different languages, build modular software, ...
- The Researcher — You research novel deep learning architectures for complex problems such as self-driving cars, healthcare, video processing, ...From there, there will be different positions to look for, such as:
- The CTO
- The 10X
- The Head of Computer Vision
So, which one of these 14 profiles are you?
Now that you've identified yourself as one of these profiles, let's take a look at the skills needed.
How to build Computer Vision Skills
Are you familiar with my Computer Vision Pyramid? It's something I've created a few months ago for my email readers, and it shows exactly the type of skills to learn to get from one level to another.
For this article, I have updated it and added the 4 Stages of Computer Vision Engineers. It means that if you ascend the Pyramid, you'll likely reach the levels I showed you.
Let's take a look:
Each of these stages correspond to one of the 4 levels we just discussed.
- Foundations & Basic AI is when you only handle the foundations of AI, such as maths, coding, linux, and maybe a bit of Machine Learning, you are at the Knowledge Level. This is the level most MS graduates have by default.
It doesn't mean you can be the AI face of your company though. For that, you'll need to also validate the Basic AI skills, such as knowing the fundamentals of Artificial Intelligence, Machine Learning, Deep Learning, and Computer Vision. Ultimately, you want to build mini-projects and get documented on AI, at least more than your colleagues.
With basic knowledge of AI and Machine Learning, you can get internships and even jobs in companies where AI is more of an experiment than a priority.
- Applied AI corresponds to more intermediate skills such as object tracking, pose estimation, image segmentation, or even object detection. These skills exactly correspond to "The Junior" and "The Integrator" in the "Application Level" section I described. You
- Research AI will correspond to skills that are in the "Engineer Level" section. The skills are more advanced, and will demand you to understand cameras (and not just images), to be good at Deep Learning, Sensor Fusion, 3D Reconstruction systems, or even Video Processing, 3D Deep Learning, Kalman Filters, ...
These are skills that go much beyond "object detection in 2D", but they also get the best kind of jobs, such as "Computer Vision Engineer", or even what I call "Edgeneer" (cutting-edge engineer).
To make it clear, you have a technical roadmap to follow if you want to ascend the pyramid, and I added the type of projects you should be building to ascend it. But some of the jobs will require real work experience anyway.
You can't be an Edgeneer if you've never been in the shoes of someone who has just been named "AI Expert" after two weeks of Deep Learning and feels like a charlatan. You can't be a Research Engineer and build your own models if you've never professionally worked on other people's models before.
It all takes time, and it's likely that you'll need to gradually ascend the pyramid by building projects, and then get a job that corresponds to your skills, and then upskill thanks to your job and higher level projects (listed on the pyramid), and then find another job, ...
At any stage, you can be a Computer Vision Engineer. In fact, you can call yourself a Computer Vision Engineer if you just have knowledge about it, by trying to be assigned to a Computer Vision project and take your first steps there.
It's not black or white. And it's not "Edgeneer or nothing".
Finally, I'd like to talk about salaries and job offers.
Diving into the Computer Vision Engineer Salaries
Well, there isn't much to tell you about it. You've probably seen that some engineers make 100k per year, and others make 200k. But if you don't live in the Silicon Valley, it's likely you only make 50 or 60k. Yes, Computer Vision Engineers are highly paid, but it also depends on where you're living, and what type of "Level" you have.
An Edgeneer working in a startup will likely make more than an integrator working in a consulting firm.
You might not be able to control job offers and salaries around you, but you can control how to raise your salary. If you're interested in finding out if your Computer Vision Engineer salary is too low, I have a post that reveals 3 Ugly Truths about that exact topic.
Also, in my daily emails, I'm constantly showing ways to increase your salary via portfolio-driven approaches and psychology. You can subscribe here to receive them.
Finally, let's see a job offer:
Analyzing a Computer Vision Engineer Job Offer
There is this company named Fyusion that specializes in mobile 3D Computer Vision.
I'm not sure whether this is your "Dream Job", but it's the perfect study case for us. It's a computer vision startup, and notice how a computer vision startup doesn't just "detect objects". In this case, they specialize in mobile computer vision for automotive inspections. Using their software, you can capture and display 3D images taken from your phone.
So, the position we want to apply to is "Computer Vision Engineer - Computer Vision Optimization".
Here is the job description that I comment live:
This is the Job Title I would label as "Computer Vision Engineer" in the "Engineer Level" section.
Notice how it involves the need to work on constrained environments such as mobiles. Most of the time, inference will be done on CPU and you will need to know how to optimize models, and deploy them in "containerized solutions".
There is also geometry that is highly involved, in particular "multi-view scene understanding". This is something that belongs to the 3D Computer Vision World and that I teach a lot in my courses.
Next, let's see the requirements:
- 👉🏼 Most of the time a requirement to have a Master's Degree. A Ph.D is usually not mandatory. Then, the next 3 points show that the company will need you to show them relevant projects or experiences working on 3D Computer Vision. You can build some in my 3D Computer Vision course.
- C++ isn't always required, but it is when it comes to robotics environments, and sometimes mobile environments. Usually, every time you need speed, you will need C++.
- I assume you're familiar with computer vision libraries such as OpenCV, but handling at least one or two others in the list above would be great. For this company, these are mostly C++ libraries to work with vectors and make your code more efficient.
And the bonus points:
Notice how Python is merely a bonus point for this job. It might not please you (I'm sure it doesn't), but this is what it is, at least for this job. There are TONS of Python jobs, but note that they might not involve mobile or embedded development.
Conclusion: How to become a Computer Vision Engineer?
We have been through the job offer, and I hope you now have a better idea of the type of skills needed to become a 3D Computer Vision Engineer for this company (or any other).
Yes, you can find jobs that include "object detection" and "OpenCV only". But these might not be the best or most interesting jobs.
As I say in the course's page for my Stereo Vision course:
"What kind of Engineer do you want to be?"
We've just seen 14 Computer Vision Engineer profiles, along with 4 types of skills you should learn, and we've even studied salaries and one of the many Computer Vision Engineer jobs. For some of you, the path is clear.
If it's not totally clear, here is what I recommend:
- Identify yourself as one of the 14 Computer Vision Engineer
- Identify yourself inside one of the 4 Levels of the Computer Vision Pyramid
- List the skills needed from your current position to your target position.
How to build these skills?
I'm sure you can find on your own the places to learn the fundamentals of Computer Vision. If you'd like to target higher levels (such as the Engineer or Expert Level), I have a huge collection of courses to learn intermediate and advanced computer vision. You can check them out here, but more importantly, I'd recommend us to stay in touch.
Thank you for reading!