What I Learned While Implementing Computer Vision Papers

An effective way to practice multiple skills simultaneously

Lilit Yolyan
Towards Data Science

--

Photo by Emile Perron on Unsplash

As computer vision engineers, a friend of mine and I were thinking of a new way to improve multiple skills simultaneously which should be effective and time-saving. We came up with the idea of implementing computer vision papers on GitHub. In this short article, I want to talk about all the interesting details that we faced during the process, all the positive and negative findings that we ran into.

Positive sides first.

Computer vision skills

To implement a paper you need to understand every detail of it. You may need to read some sections more than 10 times. Sometimes, to understand a small concept, you may need to read many other reference papers. As a result, you get T-shaped knowledge: broad knowledge of the topic you are trying to implement and a deeper knowledge of that particular model and technique.

Programming skills

Here comes the responsibility in front of the community. When you’re working on an open-source project, you feel the responsibility to make it more understandable for everyone else. To write a small chunk of code you start to think longer and longer to find the optimal, understandable, useful, and effective way.

Other skills that you didn’t think you will improve

First, it seems you are working in two directions: deep learning knowledge and programming skills. However, it turns out there are a lot of things you need to learn, to make it happen.

  • Project management skills to create a workflow for the whole process: create and prioritize tasks, assign to each other, etc.
  • Communication skills: communicate with collaborators, help each other, review codes.
  • Ownership and accountability: take ownership and be accountable to make it more effective to work with a team, be responsible for your tasks and the whole project.

There is much more to learn and improve, and you will find out it during the process itself.

Collaboration with the whole world

The great advantage of GitHub and other platforms is it helps you to share your work and get the help of others. It’s an amazing feeling when people around the world start to work with you without knowing you personally and your skills for one purpose: community contribution.

Comunity reactions and interest

Community contribution is an amazing opportunity for each of us. Getting feedback from people who want to use your repository is very valuable. Many questions, requests, and open issues will have a huge input on your work.

Now let’s dive into the disadvantages we ran into.

Photo by Elisa Ventur on Unsplash

Paper structure and content

Many papers are hard to implement because of the acceptable way the authors write them. Sometimes, to understand a small concept, you may need to go up and down million times to find a key. Many papers don’t even contain the experimentation part: how they do the experiments, the elements of setting up experiments, and some general elements of model and technique description. It’s on you to assume many details or go back to other similar papers, references to understand those details.

Computational issues

Nowadays many computer vision papers from the best research labs look like a puzzle that gathers and combines different concepts from other papers. One of their main unfair advantages is the computational capacity they have. They can use an immense amount of data that is not open access, and huge computational capacity which we can’t afford. That is why it’s sometimes impossible to repeat their experiments and check their results.

Conclusion

Despite some challenges you may face while working on implementation, it is worth doing it because of the skills you’ll improve and the fun you’ll get from the process. Especially when you see support and help from the community you definitely understand why you’re doing that. I recommend everyone to make this practice part of their learning process. Find something you like and want to learn and start working on it. If you need help, community will be there for you.

GitHub Repositories: https://github.com/LilitYolyan

--

--