Computer Vision News - September 2016

Our CEO Ron Soferman continues his series of lectures providing a robust yet simple overview about how to ensure that computer vision projects respect goals, budget and deadlines. Mr. Soferman shares one of his project management tips in each issue of Computer Vision News. Today we learn about what he calls the Unbearable Lightness of Algorithm Development . We always like to recruit very creative and innovative thinkers to work in our algorithm group. These engineers always find new directions and new solutions for the development , making it possible to solve the problems. In this article we want to shed a light on the other side of creativity in algorithm development. We notice it most often among young developers who just finished school and wish to solve all kind of problems in computer vision with the power of the countless algorithms that they have learned in school. Moreover, today you can easily apply algorithms from Matlab or OpenCV in only a few minutes. The problem arises when one starts to solve a problem using an algorithm which gives some kind of good result for part of the problem at hand. Seeing that about 20% of the problem is yet to be solved, the developer will choose to add another algorithm layer that would increase the yield and give better results . And after that, another algorithm and then another one. On the contrary, it is advisable to check more thoroughly each algorithm, to tweak it and find the right adaption of this algorithm to the specific problem and hence to be sure that the new developer is very rigorous in debugging the code. Otherwise, you might find that the multiple algorithms, one on top of the other, might just be a cover for the inefficiency in applying the right algorithm . This will turn as a boomerang against the development effort. The objective is to find one algorithm that will do most of the work. It has to be very neat and clean, so that all the mathematical theorems that supplement the use of this algorithm will play the right role with the right parameters. Using algorithms over algorithms will only produce a very confused process, that will rarely converge; and in many cases, the assumptions which are needed for the algorithm will not hold, following the input of yet another algorithm. “ Multiple algorithms, one on top of the other, might just be a cover for the inefficiency in applying the right algorithm ” The Unbearable Lightness of Algorithm Development Management Computer Vision News Project Management Tip 19