24

I work for a company that has several projects involving computer vision. The literature rarely has papers on the exact problems we are solving. Furthermore, the state of the art in much of computer vision is often not reproducible or not ready for actual applications. Furthermore, the rate at which new papers come out in the areas we are interested in would make it very time consuming to digest most, let alone all of them.

On the other hand, we often get stuck and would like to get answers or at least inspiration from existing work.

Our goal in the end is to get to solutions as fast as possible. Does anyone have any guidance on how to balance time spent reading vs doing?

32

There is a wonderful quotation by Frank Westheimer that accurately summarizes the relationship between work and reading:

A couple of months in the laboratory can frequently save a couple of hours in the library.

If you don't know what's in the literature, you can easily spend days, weeks, or even months reinventing the wheel. It's tempting to get your hands dirty, but it can be a very expensive proposition if you later find that somebody else has already done the same thing.

  • 23
    That's very true, but I'd say that going to the library can also save you from obtaining a really thorough understanding of the material. – Jaap Eldering Feb 16 '15 at 12:41
  • 5
    @JaapEldering: True, but if you're an experimentalist, for instance, that could be a very costly understanding that your advisor might not appreciate. – aeismail Feb 16 '15 at 20:47
8

If your group is large enough, hiring a new Ph.D. every few years would make sure you always had someone who was up on the current literature.

  • 5
    This doesn't work in most fields I would say. I, as a PhD student, have certainly a lower level of knowing the literature and previous work and context than my supervisor has. It's one of the things you have him for: to tell you "and have you seen ..." when you come with an idea. – yo' Feb 17 '15 at 16:01
  • @yo', you might find that your supervisor's knowledge comes mainly from conference presentations and networking - make careful note of any names/groups (s)he mentions and look up their work - it may or may not help in the end. But my point is that the supervisor having this overview doesn't guarantee that they have had time to keep up with the details of the methods. – Chris H Feb 17 '15 at 16:57
5

Given that Computer Vision is a fast-paced research topic these days, I'd go for a Systematic Literature Review:

A systematic review (also systematic literature review or structured literature review, SLR) is a literature review focused on a research question that tries to identify, appraise, select and synthesize all high quality research evidence relevant to that question. (source: http://en.wikipedia.org/wiki/Systematic_review)

More specifically, Guidelines for performing Systematic Literature Reviews in Software Engineering could be helpful to you:

The stages associated with planning the review are: • Identification of the need for a review (See Section 5.1). • Commissioning a review (See Section 5.2). • Specifying the research question(s) (See Section 5.3). • Developing a review protocol (See Section 5.4). • Evaluating the review protocol (See Section 5.5). The stages associated with conducting the review are: • Identification of research (See Section 6.1). • Selection of primary studies (See Section 6.2). • Study quality assessment (See Section 6.3). • Data extraction and monitoring (See Section 6.4). • Data synthesis (See Section 6.5). The stages associated with reporting the review are: • Specifying dissemination mechanisms (See Section 7.1). • Formatting the main report (See Section 7.2). • Evaluating the report (See Section 7.3).

(source: http://www.elsevier.com/__data/promis_misc/525444systematicreviewsguide.pdf )

As you may not need to report the review, you could skip this part. The thing I foresee more useful to you is that this system gives you insights about what you left behind in case you have to go back to study the literature, and it also helps to share the work among your colleagues.

So, for example, once you've determined the conferences to read, the authors to follow, etc. you can start by reading the titles of the papers, that goes to a table. If the title seems promising, then read the abstract, so to another table. Finally you would have a stack of papers you have read completely, so you can write some lines about them in that very moment... and when you have a problem you didn't have before, you can re-read your previous work before searching for a new solution in the wild.

5

On the other hand, we often get stuck and would like to get answers or at least inspiration from existing work. Our goal in the end is to get to solutions as fast as possible. Does anyone have any guidance on how to balance time spent reading vs doing?

In addition to the other great answers here, if this problem comes up frequently for you guys, you could consider associating in some way with a near-by researcher in computer vision. Their job is essentially to know the current state of research, and even if they don't know by heart whether a solution to a concrete problem exists, they should be able to figure it out relatively quickly ("it" being checking whether there is a published solution on this problem, not necessarily solving the problem if no known solution exists).

What kind of relationship works for you guys differs from time to time - could be short-time consulting contracts, could be a longer-time joint project (if your problem is not yet solved and interesting to the researcher), could be something else entirely (I know researchers that joined the advisory board of a related company, and basically get paid for giving scientific advise on an irregular basis).

4

I'd look to the main conferences and focus on the most current papers, specifically the ones from researchers that have made their code available online, then you can more easily replicate their results. If it's computer vision work, you're talking deep neural networks now for most problems. In that case, you are very lucky, there are lots of open source and scaleable deep learning algorithms out there in many different languages to experiment with. I would pick a framework like Torch that has a lot of backing and is constantly getting updated with new results, that way you can download the latest research into a package you are familiar with. Caffe is also very popular. Graph Lab also has a deep learning module with a network structure pre-built for image classification problems.

2

If you are in the product business as opposed to the research business then you have deliverable cost-timeline constraints probably. In this vein of thought I would imagine that the path worth considering is researching the best commercial/open source solutions available and "foldable into your product". This might be a library or other resource your products can use, as opposed to studying the latest research as that portends adding the effort of writing your own from scratch once you find a promising idea or technology.

If on the other hand your business model includes complete R&D then tie your research stopping point to what offers a clear path to your deliverable.

I would still in this case look at open source and commercial offerings as you could glean some path to a previously unconsidered technology path ie you might find something you would NOT use but which reveals a possible approach you have not considered or realized exists.

HTH Jeff

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.