You may be interested in a corner descriptor called PAS (Pair of Adjacent Segments). It can be computed using Canny edges and it is invariant to translation and scale changes. See the paper for details and how to use it for object detection:
For edge-based object recognition and 6-DOF pose estimation see the papers:
- M. Ulrich, C. Wiedemann, and C. Steger. CAD-based recognition of 3d objects in monocular images. International Conference on Robotics and Automation (ICRA), 2009.
- M.Y. Liu, O. Tuzel, A. Veeraraghavan, R. Chellappa, A. Agrawal, and H. Okuda. Pose estimation in heavy clutter using a multi-flash camera. IEEE International Conference on Robotics and Automation (ICRA), 2010.
If you don't need 6-DOF pose and you need just recognize and localize an object in an image then take a look at the Line-2D algorithm:
Its implementation is available in OpenCV in the objdetect module. It uses orientations of gradients on a boundary of an object to create Line-2D templates so it is essentially recognition by silhouettes.
Hi,
can you be more specific and tell us why do you want to use edges/corners instead of the most common approach which is to use interest points (e.g. SIFT)?
Because, unfortunately my prof., obbligated me to do so. I have already implemented a system using ORB and it works fine, now i need to do this using corner or edge. A reason could be that SIFT/SURF doens't take in account the shape of the object
The question is good. Sometimes you don't have features, i.e. objects without texture, or transparent objects. There are some approaches that analyze contours, but I'm not specialist, let's wait for gurus :) In the meantime you can start from this paper: http://www.roboticsproceedings.org/rss08/p35.html, it is about one particular problem, but may be it'll inspire you!
thanks for the paper. Anyway let's hope for some Guru response :D