Unit testing of Video Processing Algorithms
|Project title||Unit testing of Video Processing Algorithms|
|Background||Software developers typically write unit tests to ensure that future changes to the code base do not break existing behavior. For example, a unit test could easily be written for a function that converts a temperature from Celsius to Fahrenheit, by checking a few well known conversions (e.g. 0 degrees Celsius is 32 degrees Fahrenheit). Developers writing video processing algorithms face a harder challenge because the output of the algorithm may be different but equally valid. For example, a video compression algorithm may produce a different but equally valid representation of the original pixels.|
|Description||The ideal solution to this problem would be able to reduce an array of pixels to a single value that represents what the image looks like. This number could be compared to the value produced by another array of pixels to determine a similarity. It's unlikely that there is a single metric for a picture that would produce this result.
The scale-invariant feature transform (SIFT) is a feature detection algorithm in computer vision to detect and describe local features in images. The patent on this algorithm has expired or is due to expire soon. The goal of this project is to create a method that can be used in unit tests to ensure that changes in the codebase have not adversely affected the algorithm. This will be achieved by using the SIFT algorithm to create coefficients for images that may be compared against a known good result.
|Deliverable||The project would consist of components that could be split between team members, including unit testing examples for various image processing libraries, feature detection and coefficient comparison algorithm development.|
|Skill set desirable||C++ or C# for the application logic. Telestream have a team of three software developers who will be available to advise. No previous knowledge of video processing is assumed.|
|Client time availability||30-60 min weekly or more|
|IP requirement||Open source project|