Difference between revisions of "Barrel Detection"

From RoboJackets Wiki
Jump to navigation Jump to search
m (Methods to Obtain a Distance Map: added link to SICK page)
m ('''Distance-Map Acquistion & Shape Identification''')
Line 45: Line 45:
 
#* Obtains a distance-map along a ''plane'' projected away from the robot.
 
#* Obtains a distance-map along a ''plane'' projected away from the robot.
 
#* ''Pros''
 
#* ''Pros''
#** [[User:SpencerC|Spencer]] already has a rudimentary implementation of a steroscopic imaging algorithm.
+
#** none significant
 
#* ''Cons''
 
#* ''Cons''
 
#** Difficult to implement programmatically.
 
#** Difficult to implement programmatically.
Line 51: Line 51:
  
 
==== Progress ====
 
==== Progress ====
* ''none so far''
+
* [[User:SpencerC|Spencer]] already has a rudimentary implementation of a steroscopic imaging algorithm.
  
 
== A Note on Notation ==
 
== A Note on Notation ==
 
In the above steps, items surrounded with parentheses are ''data''. Other items are ''analyses'' or ''filters''.
 
In the above steps, items surrounded with parentheses are ''data''. Other items are ''analyses'' or ''filters''.

Revision as of 22:29, 23 October 2005

A barrel, and its bounding box, as identified by BarrelBlobFinder

Approaches

The following approaches have been considered:

Image Acquisition & Color Identification (#1)

Strategy

  • Find orange pixels (on barrel) with (Pixels) => Red - Green => High-Pass Threshold => (Orange pixels)
  • Find while pixels (on barrel) with (Pixels) => Saturation => Low-Pass Threshold => (White pixels)
  • (Orange pixels) => Blob seperation => Orange stripes (Bounding Boxes)
  • (Orange pixels) => Blob seperation => White stripes (Bounding Boxes)
  • {Orange stripes (Bounding Boxes), White stripes (Bounding Boxes)} => Blob merging => Barrels (Bounding Boxes)

Progress

  • none so far

Image Acquisition & Color Identification (#2)

Strategy

  • Preprocessing
    • Find orange pixels (on barrel) with (Pixels) => Red - Green => High-Pass Threshold => (Orange pixels)
    • Find white pixels (on barrel) with (Pixels) => {Saturation, Brightness} => {Low-Pass Threshold, High-Pass Threshold} => (White pixels)
  • Algorithm
    • Scan horizontal lines of image, starting from the bottom, and moving up. When current scan line intersects a sufficient number of orange pixels, mark the orange segment of the line as being the bottom edge of a barrel.
    • Once the bottom edge of a barrel is identified, scan horizontal line-segments above the bottom edge, starting from the bottom and moving up. When an insufficient percentage of current scan line-segment contains orange/white pixels, mark the line-segment as being the top edge of the barrel.
    • Once the top and bottom edges of a barrel have been identified, record the bounding box of the barrel and delete the barrel from the image (clear all of the pixels within the bounding box). Continue scanning.

Progress

  • I have written an experimental image filter called BarrelBlobFinder, included in ImageFilterDemo v1.2.3, that implements a more complex version of this algorithm. It works quite well, although it could benefit from some more calibration. --David 23:22, 19 Oct 2005 (EDT)
  • I am investigating the usage of adaptive thresholding to dynamically determine appropriate values for the threshold-style parameters of the BarrelBlobFinder filter. --David 20:48, 20 Oct 2005 (EDT)

Distance-Map Acquistion & Shape Identification

Strategy

  1. Scan distances in front of robot by some method, obtaining a distance-map.
  2. Find/distinguish the "plateaus" of the graph. Mark each "plateau" as the near-edge/near-face of a barrel.

Methods to Obtain a Distance Map

  1. SICK
    • Obtains a distance-map along a line projected away from the robot.
    • Pros
      • Easy to implement programmatically.
    • Cons
      • Expensive hardware. May be able to get from the CS department
  2. Stereoscopic Imaging
    • Obtains a distance-map along a plane projected away from the robot.
    • Pros
      • none significant
    • Cons
      • Difficult to implement programmatically.
      • Requires two camcorders. Currently, we only have one.

Progress

  • Spencer already has a rudimentary implementation of a steroscopic imaging algorithm.

A Note on Notation

In the above steps, items surrounded with parentheses are data. Other items are analyses or filters.