Difference between revisions of "Barrel Detection"
Jump to navigation
Jump to search
(→Strategy: provided more detail regarding how the bottom edge of a barrel is determined) |
(→Progress) |
||
Line 31: | Line 31: | ||
* I have written an experimental image filter called '''BarrelBlobFinder''', included in [[ImageFilterDemo]] [[:Image:ImageFilterDemo v1 2 3.zip|v1.2.3]], that implements a more complex version of this algorithm. It works quite well, although it could benefit from some more calibration. --[[User:DavidF|David]] 23:22, 19 Oct 2005 (EDT) | * I have written an experimental image filter called '''BarrelBlobFinder''', included in [[ImageFilterDemo]] [[:Image:ImageFilterDemo v1 2 3.zip|v1.2.3]], that implements a more complex version of this algorithm. It works quite well, although it could benefit from some more calibration. --[[User:DavidF|David]] 23:22, 19 Oct 2005 (EDT) | ||
* I am investigating the usage of [[Intensity Scaling#Adaptive Thresholding|adaptive thresholding]] to dynamically determine appropriate values for the threshold-style parameters of the '''BarrelBlobFinder''' filter. --[[User:DavidF|David]] 20:48, 20 Oct 2005 (EDT) | * I am investigating the usage of [[Intensity Scaling#Adaptive Thresholding|adaptive thresholding]] to dynamically determine appropriate values for the threshold-style parameters of the '''BarrelBlobFinder''' filter. --[[User:DavidF|David]] 20:48, 20 Oct 2005 (EDT) | ||
+ | * I have enhanced '''BarrelBlobFinder''' to determine the width of barrels a ''lot'' more accurately. Check it out in [[ImageFilterDemo]] [[:Image:ImageFilterDemo_v1_2_5.zip|v1.2.5]]. --[[User:DavidF|David]] 21:38, 5 Nov 2005 (EST) | ||
=== '''Distance-Map Acquistion & Shape Identification''' === | === '''Distance-Map Acquistion & Shape Identification''' === |
Revision as of 21:37, 5 November 2005
Contents
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 scan line as containing the bottom edge of one or more barrels.
- Find the interval of orange pixels on the scan line within the X% and (100-X)% quartiles (where X is a parameter - typically 5%). Mark this interval as being the bottom edge of a barrel. (The usage of quartiles is to ensure robustness in the prescense of orange pixel noise.)
- Note: This step assumes that the bottom edges of more than one barrel will not occur in the same scan line.
- 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 the 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)
- I have enhanced BarrelBlobFinder to determine the width of barrels a lot more accurately. Check it out in ImageFilterDemo v1.2.5. --David 21:38, 5 Nov 2005 (EST)
Distance-Map Acquistion & Shape Identification
Strategy
- Scan distances in front of robot by some method, obtaining a distance-map.
- 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
- 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
- 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.