Title: WATERSHED TRANSFORMATION
1WATERSHED TRANSFORMATION
- M.SACHIDANAND
- October 15th,2007
2Image Segmentation
- Process of partitioning a digital image into
multiple regions (sets of pixels) - Simplify and/or change the representation of an
image into something that is more meaningful and
easier to analyze. - Typically used to locate objects and boundaries
(lines, curves, etc.) in images.
3WATERSHED TRANSFORMATION
- Image data may be interpreted as a topographic
surface where the gradient image gray-levels
represent altitudes. - Region edges correspond to high watersheds and
low-gradient region interiors correspond to
catchment basins.
4WATERSHED TRANSFORMATION
- Catchment basins of the topographic surface are
homogeneous in the sense that all pixels
belonging to the same catchment basin are
connected with the basin's region of minimum
altitude (gray-level) by a simple path of pixels
that have monotonically decreasing altitude
(gray-level) along the path. - Such catchment basins then represent the regions
of the segmented image.
Original Image
Watershed Segmented Image
5Watershed Based Image Segmentation Procedure
6APPLICATIONS
- Medical Imaging
- Semiconductor Technology
- Traffic Monitoring
- Face Recognition
- Identifying Fractures in Steel
Coffee Beans Separation
7Pattern Recognition Letters 26 (2005) 12661274
- A fast watershed algorithm based on chain code
and its application in image segmentation - -Han Sun , Jingyu Yang, Mingwu Ren
8ABSTRACT
- A new Watershed Transformation Algorithm based on
chain code. - Complexity of the proposed algorithm is
discussed. - Experiment results are shown to prove that the
presented algorithm runs fast.
9CHAIN CODES
- A chain code is a more concise way of
representing a list of points than a simple
(x1,y1),(x2,y2) ..... . - A chain code describes the boundary as a series
of one pixel vector transitions at different
orientations only the starting point is defined
explicitly. - Chain code is thought as representing the contour
of the image. - Each code can be considered as the angular
direction, in multiples of 45deg., that we must
move to go from one contour pixel to the next.
10CHAIN CODES
11Definitions for chain code basedWatershed
Transformation
- Point-out chain code is the directional code that
current pixel points to. - 2) Point-in chain code is the directional code
that neighbor pixel points to.
12Steps involved in the Algorithm
- Step-A For each pixel in a given image, its
lowest neighborhood is detected.
13Steps involved in the Algorithm
- 2) Step-B For each pixel on plateaus, if one
of its neighbors points somewhere (lower
plateau), the pixel points the neighbor. - Repeating this procedure using a FIFO, pixels on
plateaus point one of their lower plateaus. The
FIFO is used to divide plateaus evenly according
to the distances from their lower plateaus.
14 Steps involved in the Algorithm
- 3) Step-C For each pixel which points, a unique
label is given. Then, its neighbor pixels on the
same plateau point the pixel. By repeating this
procedure, all pixels on the plateau points the
pixel directly or indirectly. - 4) Step-D Pointers for all pixels are
dereferenced, and labels are given to all pixels.
15EXPERIMENTS AND RESULTS
- Watershed transformation and region merging
(brain) - (a) brain (388 395)
- (b) gradient image, m 3
- (c) watershed results(6227 regions)
- (d) merging results (11 regions).
16EXPERIMENTS AND RESULTS
- Watershed transformation and region merging
(blood) - (a) blood (272 265)
- (b) gradient image, m 3
- (c) watershed results(1644 regions)
- (d) merging results (27 regions).
17Performance Analysis on Pentium IV 2.4 GHz CPU
-
- The above 3 algorithms produce the same number of
regions, hence identical in function. - Algorithm BM and new(chain code) algorithms are
faster.
18IMPLEMENTATION OF A PARALLEL AND PIPELINED
WATERSHED ALGORITHM ON FPGA -Dang Ba Khac
Trieu and Tsutomu Maruyama
International Conference on Field Programmable
Logic and Applications, 2006
19ABSTRACT
- Implementation of a parallel and pipelined
watershed algorithm on FPGA. - Implemented on XC2V6000 and up to 32 pixels are
processed in parallel. - The performance for 512 x 512 pixel images is
found to be about 3 - 4 msec, which is fast
enough for real-time applications.
204 Basic Steps in this process
- A given image is divided to K regions.
- Several of them are cached on the FPGA.
- The watershed algorithm is applied on those
regions. - 4) The next (or previous) region is loaded to the
FPGA during the computation to hide the loading
time.
21PIPELINED AND PARALLEL ALGORITHM
- 1) Two arrays are used.
- 2) One array to store labels. Another to divide
non-minima plateaus evenly. - 3) Repetitive sequential scanning of pixels from
top-left to bottom-right and vice-versa. - 4) Repetition is finished when no values of array
are modified in the current scanning.
22Pseudocode
23Steps-1 and 2 in Algorithm
24Steps-1 and 2 in Algorithm
25Step-3 in Algorithm
26Step-3 in Algorithm
27Step-3 in Algorithm
28IMPLEMENTATION OF THE ALGORITHM
- 1) Without Cache Memory on FPGA
- All data are stored in external Memory Banks.
- Performance varies with the number of memory
banks.
29IMPLEMENTATION OF THE ALGORITHM-Parallel and
Pipelined Processing
- Four lines are processed in parallel.
- We need to wait 3 clock cycles before starting
the computation of the next line. - The total clock cycles to processes N lines
becomes - L (N - 1) 3 where L is the pipeline
depth.
30IMPLEMENTATION OF THE ALGORITHM
- 2) With Cache Memory on FPGA
- A given image is divided to smaller regions along
x (or y) axis. - Algorithm is applied to a region cached in some
of these cache memory banks. - Data for next region is downloaded to another
cache during this computation
31IMPLEMENTATION OF THE ALGORITHM Trace of
Computation with Cache on FPGA
32EXPERIMENTAL RESULTS
- The algorithm was implemented on ADM-XRC-II
with one XC2V6000. - X or Y of the given image can not be larger
than 512. - Performance of circuit is faster than 30 frame
per second with one unit. - With four units (without cache memory banks),
the performance - can be improved about 3.7 - 3.8 times.
33EXPERIMENTAL RESULTS
34LIMITATIONS
- Performance gain by 32 units over four units is
limited. - Reasons
- 1) In the approach with cache memory banks, the
algorithm is applied at least twice to each
region. - 2) Number of back traces is huge.
- 3) Pipeline overhead is high because of usage of
32 parallel lines.
35FUTURE WORK
- To improve performance gain attained by 32 units
over four units. - - reducing pipeline overhead.
- - using column optimized scanning.