How can i detect object from a RGB image?

9 views (last 30 days)
qwerty on 24 Aug 2017
Answered: Sailesh Sidhwani on 30 Aug 2017
I am working on Obstacle Avoidance Project, in which i want to detect an obstacle based on the RGB image taken by robot. It doesn't matter what is the object, i just want to see if any object is near enough so that it will collide or not?
I am thinking of canny edge detector but it won't give the idea that object is near to be treated as obstacle or not?

Answers (1)

Sailesh Sidhwani
Sailesh Sidhwani on 30 Aug 2017
Let me start by saying that there is no perfect way to achieve this. Since this is plain old RGB image and not stereo vision, you will need a reference point with a known distance from the robot. This reference point should be present in every image taken by the robot and preferably remain constant but moves with the robot. An easy hack would be to tilt the camera a bit so that some part of robot is present in every image and that can be used as a reference point. If your reference point is on the robot, your distance to reference point will be 0, assuming you do not need very high accuracy.
Once you have a good reference point you will have to calibrate based on distance between the reference point and the object detected using canny. A few trial and errors should easily give you the ratio of "distance in real world" to "distance in pixels".
Please note that this is a naive method to get you started and the calibration would change for different cameras.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!