Skip to content
matlabbe edited this page May 20, 2015 · 1 revision

Introduction

Find-Object 0.4.2 required

This tutorial shows how enabling multiple detection of the same object. To enable multiple detection, the parameter General->multiDetection should be checked. The approach is as following:

  • As usual, we match all features between the objects and the scene.
  • For an object which is in the scene two times (or more), it should have twice of matched features. We apply a RANSAC algorithm to find a homography. The inliers should belong to only one occurrence of the object, all others considered as outliers. We redo the homography process on the outliers, then find another homography… we do this process until no homography can be computed.
  • It may happens that a homography can be found superposed on a previous one using the outliers. You could set Homography/ransacReprojThr (in pixels) higher to accept more inliers in the homographies computed, which would decrease the chance of superposed detections. Another way is to ignore superposed homographies on a specified radius with the parameter General/multiDetectionRadius (in pixels).

Details

  1. Open Find-Object
  2. "Edit->Add objects from files…" and select 38.bmp and 39.bmp.
  3. "Edit->Camera from single file…" and select multi-scene.jpg.

Parameters

  • General/mirrorView = false
  • General/multiDetection = true
  • General/multiDetectionRadius = 30 pixels

Results

You should see something like this:

With the ROS package:

$ rosrun find_object_2d print_objects_detected

As you can see, the object 38 is detected two times:

Playing with parameters

  • If you set General/multiDetectionRadius = 0, there are multiple detections superposed (on the left we can see that object 38 is detected 4 times and object 39 is detected 2 times):

On ROS, we can see that some homographies are mostly the same:

The parameter General/multiDetectionRadius is helpful in these cases to ignore detection of the same object in a specified radius. You could set Homography/ransacReprojThr higher than 1.00 to accept more inliers in the homographies computed, which would decrease the chance of superposed detections and improve time computation performance (less homographies should be tested).

Clone this wiki locally