Download - New Processors in Sherlock 7 Ben Dawson
![Page 1: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/1.jpg)
IPD Technical ConferenceFebruary 19th 2008
New Processors in Sherlock 7Ben Dawson
![Page 2: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/2.jpg)
Sherlock’s Processors
Preprocessor = Image to Image (e.g. threshold)
Algorithm = Image to “readings” (e.g. blob analysis)
Formula = Reading to Reading (e.g. add to a number)
Sherlock 7 inherited most Sherlock 6 Processors
Some have slight differences (e.g. dynamic threshold)
![Page 3: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/3.jpg)
New Processors
Some processors improved (e.g., edge detectors)
New processors for new image types (e.g., color)
New processors for specific tasks (e.g., a “bead tool”)
New “high level” processors (e.g., Hough transform)
New utility processors (e.g., test patterns)
Introduce some of these new goodies and application
![Page 4: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/4.jpg)
Rewrite of Edge Detection Algorithms
Our edge detection algorithms needed improvement:
Inconsistent implementations with varying accuracy
Limited options
Sometimes not intuitive to use
Rewrote most standard edge detectors
Improved and consistent implementation
Better accuracy (1/8 pixel nominal, 1/25 best)
Flexible and easy-to-use GUI
![Page 5: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/5.jpg)
GUI for New Edge Detectors
![Page 6: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/6.jpg)
Comparing Old and New Edge Detection
Old edge detectors listed at the bottom of the line algorithms and marked “(legacy)”
Will be deprecated
NOTE: 0,0 is the CENTER of the pixel
“Legacy” New, with GUI
Detect Edges Detect Edges
First Edge Find Edge
Inside Caliper Inside Caliper
Max Edge Max Edge
Outside Caliper Outside Caliper
![Page 7: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/7.jpg)
Other Edge Detectors
Edge Count uses the old interface and algorithms
HVLine has poor sub-pixel accuracy (½ pixel at best)
New edge detectors for specific tasks:
Laser Caliper (also used on Bead Tool)
Corner Detector
Ramp Edges has been subsumed by Detect Edges, etc.
Chatter Edges is an edge enhancer not a edge detector!
![Page 8: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/8.jpg)
Color Processing
Not calibrated (referenced to some standard)
Need standard lighting and calibration targets
Newer DALSA cameras will have calibration
Usually not necessary in machine vision
Can compensate for lighting changes
Color Correction Coefs and Color Correction
Needs a “reference patch” in field-of-view
Even LEDs change color with temperature and age
![Page 9: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/9.jpg)
Some Color Preprocessors
Color Correction – Applies correction coefficients
Gamma – Applies gamma correction
Raises each pixel to a fixed exponent, pg
Makes the image look better on the display
Usually not good for MV. Turn it off at the camera too!
Threshold – AND or OR of R,G,B thresholds
Threshold Components – Threshold individual components
Simple “classifier” that divides color space into cubes
Normalize by Chroma – Divides out intensity
![Page 10: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/10.jpg)
Tray of Aerators
![Page 11: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/11.jpg)
Threshold Components
![Page 12: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/12.jpg)
Normalize by Chroma
![Page 13: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/13.jpg)
Color Algorithms – Statistics
Color Correction Coefs – Learns correction coefficients
Average [channel] – Average value per channel
Count [channel] – Per channel count of pixels with specified value
Count [color] – Count of pixels with specified color
MinMax – Minimum and maximum RGB and location
MinMax [channel] – Minimum and maximum value per channel and location
Statistics [channel] – Arrays of minimum, maximum, average, variance per channel, and histograms
Unique Colors – Number of unique colors in ROI
![Page 14: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/14.jpg)
Color Classifiers
“Recognizes” or “Identifies” learned colors
GUI for training makes our classifiers easy to use
Color Map – Labels learned colors (outputs image)
Color Presence – Lists learned colors found in ROI
Spot Meter – Detects average learned color in an ROI
Trained classifiers can be shared between Color Map and Color Presence
Training for Map and Presence can take some time
![Page 15: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/15.jpg)
![Page 16: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/16.jpg)
![Page 17: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/17.jpg)
Specific Task Processors – Bead Tool
Designed to follow a “bead” – a thin line of material such as glue
Example: Checking glue bead on automotive liners
Set “start box” and learn the path of the bead.
At run time, follows learned path and checks that bead is there and correctly dimensioned
![Page 18: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/18.jpg)
Specific Processors – Chatter Edges
Amplifies very wide (slow intensity change) edges
Designed to help detect bearing “chatter”
Can be used for other slowly changing “ramp” edges
Note the “phase shift” of edges – this is normal
![Page 19: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/19.jpg)
Specific Processors – Laser Tools
Set of tools for mostly doing height measurements using a line of light (like a laser) and triangulation
Laser Caliper – Measure width of a bright line
Similar to Outside caliper but only bright lines and some additional noise reduction
Laser Points – Find line of light points
Laser Line – Fits a Sherlock line to points in the line of light
Laser Height – Measures part heights by triangulation
![Page 20: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/20.jpg)
Laser Tools Setup for Height 1
LaserLine Camera
Camera view across pill width
![Page 21: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/21.jpg)
Laser Tools Setup for Height 2
Can put Laser above or off to the side. Above is better.
Camera must be to the side or above, opposite of laser
DALSA IPD’s height algorithm needs only three height calibration points: baseline, medium, high
NO measurements of the camera and laser positions, angles, distances etc. are needed
Typical accuracy is 1 part in 300
Some limiting factors:
Laser speckle
Lens distortion
![Page 22: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/22.jpg)
High Level Processors
Extract features and information with more constraints and knowledge than edge detectors, calipers, blob, etc.
Roughness – Local standard deviation preprocessor
Texture – Edge Angles – Our first texture analyzer
Edge Crawler Sub-pixel edge crawler (Crawler is pixel)
Corner Finder – Finds corners (duh!)
Hough Transforms – Finds lines, line segments, or circles in noisy images
![Page 23: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/23.jpg)
Roughness Preprocessor
Computes the standard deviation in each neighborhood
Can be used as an “amplifier” for edges
Can be used as a spatial frequency texture filter
Can be used to suppress “background” texture
![Page 24: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/24.jpg)
Roughness as a Texture Filter
![Page 25: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/25.jpg)
Roughness used to Suppress Texture
![Page 26: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/26.jpg)
Texture – Edge Angles
First texture Algorithm (analyzer) – there will be more
Measures edge angle distribution (histogram) and computes an entropy (disorder) measure
These can be used to discriminate different textures
![Page 27: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/27.jpg)
Edge Crawler (sub-pixel)
Tracks edges and reports their sub-pixel position
Can select individual contours
Older Crawler algorithm is integer pixel position
![Page 28: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/28.jpg)
Corner Finder
Finds corners using the Harris corner detector
Corners are more constrained and therefore have more information than edges.
![Page 29: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/29.jpg)
Corner Finder Applications
Applied to finding and counting flexible circuit connector “pins”
![Page 30: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/30.jpg)
Hough Lines
Finds lines in noisy images
Hough transforms are “evidence-based” voting methods
![Page 31: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/31.jpg)
Hough Segments
Finds line segments with specific length ranges
Very useful and works well
![Page 32: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/32.jpg)
Hough Circles
Finds circles with specified radius ranges
Can’t tolerate distortions
Currently difficult to use – often generates a huge number of unwanted circles
Suggest using the spoke tool and BestFitCircleToPts formula for now
![Page 33: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/33.jpg)
Utility Processors – Test Patterns
Test pattern generators
Constant – ROI set to constant color or intensity
Draw Bars – Sub-pixel bars for testing edge detectors
Draw Gaussian – Draws Gaussian intensity distribution
Draw Line – Draws a single line
Draw Ramp – Draws intensity ramps
Draw Grid – Draws a grid of lines of any thicknesses
Draw Checkerboard – Draws checkerboard
![Page 34: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/34.jpg)
Draw Gaussian Example
Many test generators have “blending” option
![Page 35: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/35.jpg)
Checkerboard Example
![Page 36: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/36.jpg)
Testing Connectivity Analysis
![Page 37: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/37.jpg)
Other Utility Processors
Apodize – Increases or decreases intensity towards the edges of the image.
Could be used to compensate for some vignetting
Better to use radial cos4(r), not separable functions
ROI to Array(s) – Copies ROI pixel values to array(s)
Border – Puts a border (frame) just inside the ROI
Field Extract – Extracts even or odd fields from monochrome or color images
Mainly used to remove motion “interlace fingers” from older RS-170 interlaced images.
Sometimes useful in surveillance applications
![Page 38: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/38.jpg)
![Page 39: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/39.jpg)
What’s Cooking in the Lab
Adding 16-bit image processors
Only a Statistics algorithm is currently distributed
Averaging, Shading correction
“Smart” conversion to 8-bit images
16-bit test pattern generators
Applications in biological and microscope images
More specific and higher-level processors
Spring Tool (not the season or a delivery time)
Additional Laser Tools (wave, topographic surface, etc.)
Image Morphology Tools (Top-hat, watershed, etc.)
Improvements to Hough and other tools
![Page 40: New Processors in Sherlock 7 Ben Dawson](https://reader035.vdocuments.us/reader035/viewer/2022062517/568130c1550346895d96e055/html5/thumbnails/40.jpg)
Summary
Many new and improved processors in Sherlock 7
Most new processors are documented in technical “white papers” found on the web site
Move towards “higher level” vision processors
Edge detection still fundamental, but we can do better in many cases
Ease-of-use is an important design consideration
We welcome your input and suggestions
Send us your hard problems. After we all have a laugh…