Title: How to get better answers to your computer vision questions - PyImageSearch

URL Source: https://pyimagesearch.com/2017/02/27/how-to-get-better-answers-to-your-computer-vision-questions/

Published Time: 2017-02-27T15:00:50+00:00

Markdown Content:
![Image 1](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20600%20257'%3E%3C/svg%3E)

Today’s blog post is part one of a two-part series inspired by an email I received over the weekend from Aarav, a PyImageSearch reader who is interested in studying computer vision:

> SUBJECT: How do I ask good computer vision questions?
> 
> Hey Adrian,
> 
> My name is Aarav. First, I just want to say how much I love your blog. It’s been a great resource to me.
> 
> I’m currently studying computer science at IIT Bombay. I’m very interested in computer vision and deep learning but am new to the fields.
> 
> I know I have a lot to learn but I’m self-conscious when asking questions.
> 
> I’ve posted questions on top computer vision LinkedIn groups, StackOverflow, and reddit:
> 
> (Links omitted in respect to Aarav’s privacy)
> 
> But I often don’t get a response. The responses that I do get are short, sometimes unpleasant, and are very unhelpful to me.
> 
> To be honest, it’s made me question whether I want to study this field.
> 
> Adrian, can you help me? Am I doing something wrong?
> 
> It would be helpful if you could do a blog post on how to ask good computer vision questions.
> 
> Thanks,
> 
> Aarav

I can empathize with Aarav — learning to ask a good question is an acquired skill, almost an “art” of sorts.

How do I know this?

Besides collectively spending seven years in school earning my bachelors degree and PhD (asking my own fair share of questions along the way), each day I spend a significant chunk of my time answering questions from PyImageSearch readers just like yourself who are interested in studying computer vision, but are hung up on a particular topic.

Over the past three years running PyImageSearch **I’ve answered tens of thousands of computer vision questions**_…but I’ve never actually addressed the components of what constitutes a “good” computer vision question._

As Aarav posed, how do you _know_ you’re asking a “good” question?

And how do you ask this question such that you:

1.  Obtain the knowledge/clarity you are seeking.
2.  While recognizing and respecting the time of others?

Is there such a magic formula?

Unfortunately, there isn’t a one-size-fits-all solution.

_**But there are general techniques you can (and should) be using when asking questions about computer vision (or any technical subject in general).**_

In today’s blog post we’ll discuss the five key components that go into asking a good computer vision question.

Next week we’ll apply these components to analyze and dissect _actual PyImageSearch questions_ to better understand how to ask insightful questions.

Whether you are posting on StackOverflow, emailing me, or contacting any other [subject matter expert](https://en.wikipedia.org/wiki/Subject-matter_expert), my hope is that you use these techniques to better help yourself and those who are responding to your questions.

_**Note:** Aarav’s name, university and affiliation have been anonymized to protect the identity of the reader who asked the question. Any real-life correlation with the name, question, or affiliation is purely coincidental._

To start today’s blog post I want to share a _personal story_ with you from my time in college studying computer vision.

We’ll then discuss what makes a “good” question, followed by reviewing the five key components required when asking **_any_** question.

### A personal story

![Image 2](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20450%20450'%3E%3C/svg%3E)

**Figure 1:** As an undergraduate student I had trouble grasping the concept of kernels and convolutions, one of the cornerstones of computer vision and image processing.

When I first started studying computer vision and image processing I had **_a lot_** of questions.

In particular, I vividly remember struggling with the concept of [_kernels and convolutions_](https://pyimagesearch.com/2016/07/25/convolutions-with-opencv-and-python/) — I simply couldn’t translate the mathematics in my textbook to an actual practical implementation.

After my professor first discussed kernels and convolutions in class, I spent the next two days spinning my wheels, fruitlessly re-reading the same chapter in my textbook and reviewing the same lecture notes, only to get nowhere.

Before our next lecture, I went to my professor during office hours, tail between my legs, feeling half-ashamed that I couldn’t grasp such a simple concept (I even doubted my ability to study computer vision as a career).

My professor was a huge help and very patient with me.

He helped clear my doubts.

Looking back, I remember feeling **_extremely nervous and self-conscious_** going to see my professor:

_I didn’t want to waste his time on questions I should have been able to understand and answer myself._

**I couldn’t have been farther from the truth.**

People like my computational photography professor (and many other teachers I’ve had) **genuinely wanted to help me** — all they asked for in return was:

1.  Respect for their time.
2.  The understanding that while they could guide me and point me in the right direction, _I still had to do the hard work myself._

It’s been a long time since I thought about that interaction with my computational photography professor, but I was reminded of it this past weekend when I received the email from Aarav outlined above.

Aarav’s question helped me pause for a moment and reflect:

In a way I’ve come full-circle with my professor. While I’ll always consider myself a student (I am _never_ done learning and will _always_ make it a point to study and try new things), **I have become a _subject matter expert_ in computer vision.**

Over the past three years running PyImageSearch, I have seen my share of good questions — ones that were well thought out and had a specific purpose and end goal.

I’ve also respond to questions that required a bit of digging and going back-and-forth with the reader to understand what the actual underlying problem was.

And I’ve even answered some extremely trying questions, requiring both the patience of myself and the reader.

**My personal opinion is that we can all get better at asking questions, no matter how good we are already.**

The more questions we ask, the more we can learn — but we need to do so in a manner that is respectful to those around is.

### What is a good question?

You might be familiar with the old phrase:

![Image 3](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20600%20300'%3E%3C/svg%3E)

**Figure 2:** _“There is no such thing as a stupid question”_

For the most part, this is true.

However, I think [Carl Sagan](https://en.wikipedia.org/wiki/Carl_Sagan), astronomer, cosmologist, and astrophysicist put it best when he said:

![Image 4](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20600%20300'%3E%3C/svg%3E)

**Figure 3:** _“…every question is a cry to understand the world. There is no such thing as a dumb question”_ — Carl Sagan

In highly technical, advanced fields such as computer vision there are _**bound**_ to be questions — it’s the very _nature_ and _existence_ of these questions that make computer science (and all other sciences) possible.

Experts in advanced scientific fields are _asking questions all the time._

In fact, researchers, quite literally _make a job out of asking questions._

They question their research.

They question the research of their peers.

And they derive _more questions_ from their _original questions_.

You might already be familiar with this process — it’s called the **scientific method:**

![Image 5](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20600%20257'%3E%3C/svg%3E)

**Figure 4:** Whether we are just getting started in our science careers or already performing state-of-the-art research, we can _**all**_ apply the scientific method.

*   **Step #1:** Ask a question and develop a hypothesis.
*   **Step #2:** Run an experiment to test your hypothesis.
*   **Step #3:** Measure and record the results of your experiment.
*   **Step #4:** Draw conclusions from your results.
*   **Step #5:** Go back to Step #1 and repeat using your new found knowledge.

These _exact steps_ allow us to perform novel research and advance the current state-of-the-art…

**…but this process isn’t _just_ for researchers, _it’s for anyone who is involved in computer science._**

While researchers are advancing their respective fields, on the opposite side of the spectrum we have students we are just trying to get started by asking questions regarding the _very fundamentals_ of computer vision. These initial questions build the foundation on which they’ll ask _even more advanced questions_ later in their careers.

Simply put:

**We _need_ questions to be asked. We _need_ questions to be answered. Without this process, science cannot progress.**

Given the inevitability of questions, both at the very high level (i.e., state-of-the-art research) to the very fundamentals (i.e., the building blocks of computer vision) we need to **focus on on _how to write more insightful, intelligent questions_ with _specific goals in mind_ that can be answered by others.**

### Five components of a practical, insightful question

![Image 6](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20600%20257'%3E%3C/svg%3E)

**Figure 5:** The five components of a practical insightful question.

I’m going to stop focusing on what makes a “good” question and instead focus on what makes an “insightful” question.

Asking an insightful question starts _well before_ it’s typed into an email message or comment form.

I’ve included the components of writing practical, insightful computer vision questions below:

1.  Know the purpose.
2.  Understand the context.
3.  Do your research.
4.  Ask your question (and be respectful of others time)
5.  Repeat the process as necessary.

We’ll review each of these components in detail in the remainder of this post.

#### Component #1: Know the purpose

Before you ask a question, you should first take a step back and ask yourself **_why_** you are asking the question in the first place.

More specifically, ask yourself: _“After asking this question, what knowledge/insight do I hope to obtain?”_

You see, _all_ insightful, intelligent questions have a purpose — they _all_ have an end goal. What is _**your** end goal_ in asking a question?

By combining the _purpose_ (Component #1) along with the _context_ (Component #2) allows subject matter experts to better help you.

#### Component #2: Understand the context

Understanding the _“why_“ _behind_ your question is helpful, but it’s also not enough — **I need the _context_ of your question as well.**

What do I mean by context?

Context are the _circumstances that form the setting of your question_.

What relevant life circumstances are prompting this question?

Are you a student working on a tricky homework assignment?

Are you a researcher performing state-of-the-art experiments and hoping to publish your results?

Or are you simply curious about a particular computer vision topic and want to learn more?

Understanding not only _why_ you are asking the question but also the _context_ behind it **makes your question much easier to answer.**

The more _context_ you can provide regarding your question, the better.

#### Component #3: Do your research

After understanding the purpose of your question, you should take some time to do a bit of initial research, _even if its only on an internal level._

**Ask yourself:**

*   Do I have any pre-existing knowledge about this topic? If so, what do I already know?
*   Where can I find resources related to this question/subject matter?
*   Are there any existing tutorials, blog posts, research papers, etc. that address my question?
*   Have I spent 15-20 minutes on Google querying for content similar to my question and reading what others have asked before me?

You may be able to answer _all_ of these questions — or you may only be able to answer _none_ of them.

The point of this exercise isn’t to “check each item off”, but rather to take a step back and _think critically_ about your question.

#### Component #4: Ask your question (and be respectful of others time)

By the time you actually _ask_ your question, you should be well prepared.

You should understand what your end goals are and what you hope to learn/accomplish by asking your question.

You should have done your homework on the question to seen if others have asked similar questions (as well as reviewed the responses).

Finally, and most importantly:

_**Ask your question while being respectful of others time.**_

Regardless of whether you are posting on StackOverflow, LinkedIn, or asking a subject matter expert (like myself), _**respect their time.**_

*   Don’t expect the person you are asking to writeup a multi-page email response to your question, analyzing every little detail and including references to an exhaustive list of papers you should read.
*   Don’t expect them to write code for you.
*   And don’t expect them to hold your hand.

Be realistic and set your expectations accordingly:

1.  Ask your question with your _specific end goal_ and _context_ in mind.
2.  And you will receive a response that helps point you in the right direction (but won’t do all the hard work for you). You’ll need to do the hard work yourself.

A question is only as good as the thought, time, and effort that goes into it.

If you take the time to ask questions with a well thought out purpose and end goal, you’ll find that the responses you receive in return are much better and helpful to accomplishing your particular project/task.

#### Component #5: Repeat the process as necessary

More times than not, one question leads to another.

We ask a question that clarifies a particular matter, only to find that it further muddies the water of another concept downstream — we again need help and explanation.

In this case, it’s time to repeat the process.

Assess your new question.

Why are you asking it?

What is your end goal?

Do your research on the question.

Then ask (while respecting others time).

Rinse and repeat.

### Asking good questions takes practice

As you get better at asking insightful questions you’ll start to notice a pattern in how others ask questions as well.

You’ll begin to sense when a coworker or colleague has done adequate research to prepare their question…_or if they are flying by the seat of their pants, hoping for a solution to suddenly materialize from a poorly thought out inquiry._

As a subject matter expert, I can tell you what a **_huge pleasure_** it is to answer questions that have a specific purpose and end goal.

I _love_ answering these questions because I can not only _clarify any doubts_, but also _provide advice_ on how to solve the overall problem the reader is working on.

The reader walks alway happy, not only because their question is answered, but also because they have more resources they can leverage to help solve their problem.

On the contrary, I can also tell you how **_trying and tedious_** it can be to answer questions where readers:

*   Are not being respectful of my time.
*   Haven’t taken the time themselves to consider _why_ they are asking the question (i.e., the end goal + context).

In next week’s blog post, we’ll analyze _actual questions_ I have received on the PyImageSearch blog, reviewing them piece-by-piece, and see the five components of asking a good question in action. These examples will help you improve your own ability to ask questions — because let’s face it, we all can use a little practice.

### What's next? We recommend [PyImageSearch University](https://pyimagesearch.com/pyimagesearch-university/?utm_source=blogPost&utm_medium=bottomBanner&utm_campaign=What%27s%20next%3F%20I%20recommend).

**Course information:**  
84 total classes • 114+ hours of on-demand code walkthrough videos • Last updated: February 2024  
★★★★★ 4.84 (128 Ratings) • 16,000+ Students Enrolled

**I strongly believe that if you had the right teacher you could _master_ computer vision and deep learning.**

Do you think learning computer vision and deep learning has to be time-consuming, overwhelming, and complicated? Or has to involve complex mathematics and equations? Or requires a degree in computer science?

That’s _not_ the case.

All you need to master computer vision and deep learning is for someone to explain things to you in _simple, intuitive_ terms. _And that’s exactly what I do_. My mission is to change education and how complex Artificial Intelligence topics are taught.

If you're serious about learning computer vision, your next stop should be PyImageSearch University, the most comprehensive computer vision, deep learning, and OpenCV course online today. Here you’ll learn how to _successfully_ and _confidently_ apply computer vision to your work, research, and projects. Join me in computer vision mastery.

**Inside PyImageSearch University you'll find:**

*   ✓ **84 courses** on essential computer vision, deep learning, and OpenCV topics
*   ✓ **84 Certificates** of Completion
*   ✓ **114+ hours** of on-demand video
*   ✓ **Brand new courses released _regularly_**, ensuring you can keep up with state-of-the-art techniques
*   ✓ **Pre-configured Jupyter Notebooks in Google Colab**
*   ✓ Run all code examples in your web browser — works on Windows, macOS, and Linux (no dev environment configuration required!)
*   ✓ Access to **centralized code repos for _all_ 536+ tutorials** on PyImageSearch
*   ✓ **Easy one-click downloads** for code, datasets, pre-trained models, etc.
*   ✓ **Access** on mobile, laptop, desktop, etc.

[Click here to join PyImageSearch University](https://pyimagesearch.com/pyimagesearch-university/?utm_source=blogPost&utm_medium=bottomBanner&utm_campaign=What%27s%20next%3F%20I%20recommend)

Summary
-------

Today’s blog post discussed how to ask good computer vision questions.

The five components of asking a good question involves:

1.  Knowing the _purpose_ of your question (i.e., the end goal).
2.  Relaying the _context_ of the question (the situation you are in prompting the question to be asked).
3.  Doing your research.
4.  Asking the question while being respectful of others time.
5.  Repeating the process as necessary.

This formula can also be extended to other technical domains outside computer science as well.

In the second tutorial in this two-part series, I’ll discuss _how to ask questions **specifically** on the PyImageSearch blog._

We’ll look at actual emails I have received here on the PyImageSearch blog, and take them apart, discussing the positive (and negative) qualities of the question — I’ll even suggest methods to better phrase your inquires to help ensure you find the information you’re looking for.

_**To be notified when this next “can’t miss” blog post goes live, be sure to enter your email address in the form below to join the PyImageSearch Newsletter!**_

![Image 7](data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20410%20567'%3E%3C/svg%3E)

#### Join the PyImageSearch Newsletter and Grab My FREE 17-page Resource Guide PDF

Enter your email address below to **join the PyImageSearch Newsletter** and **download my FREE 17-page Resource Guide PDF** on Computer Vision, OpenCV, and Deep Learning.