Open Detection
1.0
|
Object detection and recognition is the most important focus of Computer Vision. We are constantly in search of methods to have a 'detection' or 'recognition' system as powerful as the human being. Given a random query image, we want to have a system capable of answering the questions like: What is present in the image? Is there a house in it? Is there a human in it? Where is the house located? Questions like these which are so trivial to human beings, are extremely difficult for a computer - the same computer which is way faster than human beings in terms of sequential calculations and executions.
From the Computer Vision research community, there has been good solutions to very specific tasks; for example, face detection in an image, detection of human beings, or of some objects of very particular kinds (high texture/regular etc.). The methods for solving these different tasks can be very different and highly targeted for that special object type. Because of this reason we have implementation of crude detection/recognition algorithms scattered over different places without any common standard. Even with the availability of dedicated computer vision libraries like OpenCV/PCL, implementation of a simple object detection application based on the existing techniques is not a trivial task as it should be.
Thus, the purpose of this library is to contribute in this field and make available the existing solution in this direction in a common, very structured, and a very user-friendly APIs. Every detection algorithm here is as simple as calling a function, and one can fine tune the algorithm changing the configurable parameters.
The main philosophy is that all the APIs of detection we provide, irrespective of the type of detection and recognition is:
To detect face using the default cascade detector, the usage looks like:
For detecting people with a default pretrained HOG based detector, the usage looks like:
To train your own HOG based detector and then use the trained detector for detection, the usage looks like:
And so on... Our APIs are highly structured and follow deep polymorphism for the detector hierarchy. The library is in C++ for the fast implementation. The details are provided in the next sections.
The project was originated with the aim of having a vision tool for robotics (in particular for Robocomp). So, we have the following different categories of target audience.