Binary image object recognition
Hi,
I want to detect and locate a pallet in an image. I have filtered the input image with a distance (3d picture) treshold resulting in a 2D binary image. The algorithm should be able to locate the position and orientation of the pallet. I already have tried a SurfFeatureDetector/SurfDescriptorExtractor/FlannBasedMatcher and OrbFeatureDetector/OrbDescriptorExtractor/BFMatcher but without succes. I noticed that I had not much keypoints (due to binary image ??? ) and the matching was wrong.
Do you have suggestions for the right approach finding the write algorithm that is:
- Able to find orientation and position of a pallet
- Able to find orientation and position of a pallet
- Robust to noisy input image
- Robust for missing a small regions of the pallet in the input image
- (Able to find more than one pallet in the input image)
Object to be found :
I noticed that without sufficient "white" surround the image no keypoints could be found in the object. I don't know why ?
Object with ORB keypoints :
I didn't test any algorithm with Hough finding lines and corners.
Thanks in advance
Have you tried finding corners in this image? Then apply Prob hough line Transform?
It is not found in the first image because there is not enough pixel information around the keypoint to define enough edgeness and thus raise a keypoint. You should read up on how Harris corner detection defines his edgeness for example. Same applies for ORB.
Steven is right.