Adaptive Filtering of Raster

chemistoddAI and Robotics

Nov 6, 2013 (3 years and 10 months ago)

68 views

Adaptive Filtering of Raster
Map Images

Minjie

Chen*,
Mantao

Xu

and
Pasi

Fränti

Speech and Image Processing Unit (SIPU)

School of Computing

University of
Eastern Finland
,
FINLAND




Topographic or road maps


Few
colors


Detailed spatial structures

Requirement

No over
-
smooth, remain readable

Number of
colors

does not increase

Preserve spatial structures










Noise Model

Impulsive Noise

Gaussian Noise

Original: 4 colors

Scanning Image:

11063
colors

Quantized Image:

4 colors

Impulsive Noise

Vector Median (VM, AVM)

Peer Group Filtering (PGF,FPGF )

Morphological Filtering

Context Tree Modelling

Discrete Universal
Denoiser

(DUDE)


Gaussian Noise

Wavelet
denoising

using Gaussian scale mixtures (GSM)

Non
-
local mean (NLM)

Dictionary
-

based method (K
-
SVD)

Blocking matching and 3D filtering (BM3D)

Markov random fields/conditional random fields (
FoE,ARF
)

Non
-
Local Sparse Models for Image Restoration (NLSM)

Patch
-
based Locally Optimal Wiener Filtering for Image Denoising (PLOW)

Sparsity
-
based Image Denoising via Dictionary Learning and Structural Clustering (CSR)


Most algorithms are designed for continuous
-
tone(photographic) images


Complicated spatial structures in the map will be destroyed



Covert multi
-
dimension image filtering problem into a
series of binary image
filtering

problem using layer
seperating

After filtering on each layer, select suitable layer
ordering to reconstruct the image


Step 1: Divide color image into Multi
-
Layer binary images

Step 2: Filter binary layers separately

Step 3: Layer ordering decision

Step 4: Merge the filtered layers


Layer separating

Filter each layer

Merging step with
global color priority


Global criterion : select colors according to
their frequency

Lowest priority
is used
as background color

PRIORITY

Highest

Priority

618416 230020 173358 22975 3458 349

Same color priority for
whole image

No difference for different
regions


Segment the image into several regions with
different background color, set different ordering
criterions for these regions

Merging with local color priority

Process each color layer by soft morphological dilation
and filling holes operations.

Large blocks regions are possible background regions.

Region

labeling

labels

connected

pixels

After

region

labeling,

sort

segments

according

to

their

size

If

the

size

of

the

segments

is

larger

than

a

threshold,

select

as

background

region

candidate

The

goal

is

to

extract

large

connected

segments

in

each

layer

for

later

background

filling

step



Segment

Size

1

765241

2

662515

3

187677

4

83904

5

51170

6

21044

Six
large segments are detected from different layer

2,5
from black layer, 3 from blue, 1,4 from white, 6 from brown


Evaluate

if

those

large

segments

detected

in

Step

3
.
2

are

real

background

regions
.

First

create

a

blank

background

image

Evaluate

those

segments

one

by

one

from

large

segment

to

small

segment
.

If

it

is

real

background,

add

to

background

image,

labeling

the

region

with

the

layer

color



Two

features

used

for

validating

if

it

is

background

segment

Feature

1
:

How

many

change

after

dilation

and

image

filling

operation

Background

segment’s

size

does

not

change

much,

have

large

ratio









Region 1: Before 526337 After 765241


Ratio 0.6878(ADDED)

Region 2
: Before
193606 After 662515


Ratio 0.2922(NOT ADDED)




Feature

2
:

Does

this

segment

overlap

with

background

already

filled?

In

common

condition,

it

should

have

a

small

value,

this

feature

can

enhance

the

filling

accuracy

If

feature

1

is

close

to

1
,

this

feature

can

also

be

large,

it

will

add

a

background

inside

one

background

segment









Region 2: Overlap percentage 97% (NOT ADDED)

Region 1: Overlap percentage 0% (ADDED)

Already labeled region 1

Blank Background

Fill block 1

S1/S2

Po

ADD(Y/N)

1

0.6878

0

Y

2

0.2922

0.9712

N

3

0.8373

0.0172

Y

4

0.8024

0.0149

Y

5

0.2302

0.9953

N

6

0.1567

1

N

Fill block 3

Fill block 4

Blank
background
image

We can set different
threshold in filling step,
causing different
background images.

Classification can be
done to decide
threshold for different
type of images.

Large

unfilled

regions

----

set

as

small

background

region
.

Small

unfilled

region

----

merge

it

to

the

nearest

background
.


Set as small
background
region

Merge to the
nearest
background

After processing

For

all

background

region,

calculate

its

corresponding

color

histogram


We

then

get

different

color

priority

for

different

region


The current method does not work if color number is large

Priority between small structures not considered

Special local patterns combined with multiple color is missed


Colors with low conditional probability will be replaced by the dominated color

Frequency

Frequency

X

X

Frequency

409

3

4

5

9

Frequency

2

2

193

3

6

Context Template

Context Dilution


6
-
color,
20
-
pixel template
has 6
20

= 3,656,158,440,062,976 contexts

Most contexts has rare appearance, cause inaccurate conditional probability estimation
.


Context Tree Modeling

Only
appeared contexts are allocated in memory

Time complexity
O
(
N
), where
N

is the length of a data sequence.

Tree spanning is terminated once the frequency of the context on a given node is less than
a predefined value(
N
)


Threshold

Contexts

N=256

23676

N=128

35847

N=64

54736

N=32

82260

X
X
X
X
1
1
1
Root
1
N
1
=220
N
2
=110
N
3
=25
N
4
=35
N
1
=405
N
2
=117
N
3
=238
N
4
=6
N
1
=46
N
2
=810
N
3
=44
N
4
=75
N
1
=400
N
1
=58
N
1
=24
N
1
=30
Children pointer array
X
1
2
X
1
2
X
1
2
N
1
=23
N
2
=67
N
3
=25
N
4
=5
N
1
=85
N
2
=16
N
3
=0
N
4
=10
N
1
=112
N
2
=27
N
3
=0
N
4
=20
Including noise pixels in the surrounding contexts makes good
conditional probability estimation difficult.


For contexts with rare appearance, a merging process is done
to collect the statistics of all
similar

contexts.


Time complexity is O(kNM
2
), where M is the number of
colors
, k is the depth of the context tree, N is the number of
contexts with rare appearance.

Example of context merging

Noisy pixel

Most consistent sub
-
context

Discrete Universal
Denoiser
(DUDE)








M is the number of
colors
,
δ is the noise level, u
0

is the color with highest conditional
probability.

DUDE has a so
-
called “asymptotic optimality” property for M
-
ary

symmetric noise.



Estimation of δ

Estimated by the minimum conditional probability occurred for contexts with
“sufficient frequency”:




0
argmax ( | )
x A
u P x


c
2
0 0
( 1) (1 ) ( 1)
( | ) ( | ) 1
((1 ) 1) ((1 ) 1)
M M
P x x P x u
M M

  
  
   
   
c c
2
,( ) 10
1 max ( | )


 
 
c
c
x p
p x
0 0
( ( ) | )/( 1), 1,2,...,
P I x x M x M

   
c
This decision rule is designed for the count statistics collected on the noisy image. For a clean image, the decision rule is

Iterative algorithm to optimize both the estimation of the indexed image and its color
palette.


The distance between RGB color vector to its corresponding component in the color
palette, and its conditional probability of local context are taken into account as an
information fusion.

Definitions
:

X
:

index

image,


Y
:

corresponding

image,


CP=
(
m
1
,m
2
,

m
M
)

color

palette

where



m
i

=

(
m
i
(
r
),

m
i
(
g
),

m
i
(
b
))

,


y
x

=

(
r
x
,
g
x
,
b
x
)

the

color

intensity

of

x

in

RGB

space
.


Input
:

Y

X,

CP



Conduct

color

quantization

based

on

Y


Σ





Estimate

the

quantization

variance

based

on



X,

Y
,
CP

according

to

(
3
)

For

T

iterations

DO
:


Given

X
,

update

P(
x
|
c
)


Update

X

,

according

to

(
1
)


Update

CP

and

σ

according

to

(
2
)

and

(
3
)

End
-
For

Output
:

Y,

X,

CP
.

General Scheme for filtering Gaussian noise

(1..) 2 2
2
2
2
( ) argmin ( log ( | ) log ( | ))
~ (,), is the mean variance
|| ||
( ) exp( )
2
x M x
x
I x f P x
where N
f
 


  

 
x
x
x x
x x
y M c
M m I
y m
y | M
( ) median({ |,and ( ) })
  
x
X
i
m r r x I x i
2
1,( )
1
|| ||
3| |
M
i x I x i
X

  
 
 
x i
X
y m
(1)

(2)

(3)

Noisy image

Quantized image

Filtering after 1 iteration


Filtering after 5 iterations

δ =
0.05

Error rate (%)

AVM

PGF

CT

DUDE

ACS

Set#1

8.65

1.40

1.04

0.94

0.65

Set#2

4.19

1.26

0.99

0.99

0.78

Set#3

11.8

3.26

2.41

2.09

1.59

Set#4

6.55

1.21

1.42

1.34

0.82

Set#5

9.27

6.02

4.36

2.66

2.02

σ =25

PSNR

GSM

NLM

BM3D

ARF

ACS

Set#1

24.4

24.9

26.2

24.2

47.1

Set#2

24.0

23.5

26.5

23.3

59.2

Set#3

23.7

22.4

23.7

23.0

27.0

Set#4

24.6

24.1

25.5

23.8

33.4

Set#5

25.1

24.3

26.1

25.1

27.7

0
5
10
15
20
0
1
2
3
4
5
Impulsive Noise Level(%)
Error Rate(%)


AVM
PGF
CT
DUDE
ACS
0
10
20
30
40
50
20
25
30
35
40
45
50
Gaussian Noise(

)
PSNR


BM3D
NLM
GSM
ARF
ACS


Impulsive noise

AVM

PGF

CT

DU
DE

ACS







Gaussian noise

BLS
-
GSM

NLM

BM3D

ARF

ACS













Mixed noise

PGF

BM3D

BM3D+PGF

FPGA

ACS













Statistical filtering for raster map images


Can process images distorted by impulsive noise,
additive Gaussian noise and mixture Gaussian
-
impulsive noise


Both
color

distribution in RGB space and the
conditional probabilities of local context are
considered


Pruning?

Merging?

Reorder the context pixel
-
wise?


Our solution: An voting
-
based method to optimize the context selection
















identify
good

or
bad

context by top
-
down tracing from the root of tree.


|
2 |
( | )
( )
F( ) log ( ) k ( | )log( )
( ) ( )
X C
X C
x
E
P x
P
P x
P P x
 

c
c
c c
c
1
( ) ( )



k
E i
i
P P y
c
( ) is probability of context ,( ) is the
probability of color
i i
P P y y
c c
Original

Noisy

Original

Noisy

Noisy pixel with
bad

context

Noisy pixel with
bad

context can not filter correctly.

Can we use
bad

context for noise estimation?

Bad

contexts will have higher
score difference after the
noisy pixel is removed.

We can accumulated these score
difference for bad context to find
noisy pixel, which is the
voting
image R
:

Include noisy pixel may cause


bad

context.

/{ },1..
R( ) = R( ) + F( ) - F( )
when F( ) - F( ) 0
is the pixel position of th context ele
ment
i i
i i i
i
i
x i k
x x
x i
 

z c
z c
z c
F(z)
-

F(c)

-
0.39

2.29

5.41

-
0.38

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

Voting image

0

0

0

0

0

0

0

0

2
.29

0

0

0

5.41

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

2.29

0

0

0

5.41

0

0

0

0

0

0

0

0

0

0

0

0

+

F(z)
-

F(c)

1.39

-
1.24

-
1.33

3.58

0

0

0

0

0

0

0

0

2.29

0

0

0

5.41

0

0

0

0

0

0

0

0

0

0

0

0

Voting image

0

0

0

1.39

0

0

0

3.58

2
.29

0

0

0

5.41

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1.39

0

0

0

3.58

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

+

F(z)
-

F(c)

-
0.62

5.69

1.96

-
0.40

0

0

0

1.39

0

0

0

3.58

2
.29

0

0

0

5.41

0

0

0

0

0

0

0

0

0

0

0

0

Voting image

0

0

0

1.39

0

0

0

3.58

2
.29

0

0

0

11.0

0

0

0

1.96

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

5.69

0

0

0

1.96

0

0

0

0

0

0

0

0

+

F(z)
-

F(c)

4.15

-
2.86

-
2.32

2.24

0

0

0

1.39

0

0

0

3.58

2
.29

0

0

0

11.0

0

0

0

1.96

0

0

0

0

0

0

0

0

Voting image

0

0

0

1.39

0

0

0

7.73

2
.29

0

0

2
.24

11.0

0

0

0

1.96

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

4.15

0

0

0

2.24

0

0

0

0

0

0

0

0

0

0

0

0

0

+

-
0.65

F(z)
-

F(c)

-
2.02

3.23

-
1.40

-
1.63

0

0

0

1.39

0

0

0

7.73

2
.29

0

0

2
.24

11.0

0

0

0

1.96

0

0

0

0

0

0

0

0

Voting image

0

0

0

1.39

0

0

0

7.73

2
.29

0

0

2
.24

16.5

0

0

0

1.96

3.23

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

5.51

0

0

0

0

3.23

0

0

0

0

0

0

0

+

5.51

F(z)
-

F(c)

1.79

1.38

-
1.43

-
1.16

0

0

0

1.39

0

0

0

7.73

2
.29

0

0

2
.24

16.5

0

0

0

1.96

3.23

0

0

0

0

0

0

0

Voting image

0

0

0

1.39

0

0

0

7.73

2
.29

0

0

2
.24

18.3

2.35

0

0

1.96

3.23

1.38

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1.79

2.35

0

0

0

0

1.38

0

0

0

0

0

0

+

2.35

Noisy pixel have a high
voting value

Bad

context

include black noisy pixel

south

east

reduced
context

F(z)
-

F(c)

4.15

5.69

Voting value

7.73

Bad

context

include white noisy pixel

north

west

south
west

south

F(z)
-

F(c)

reduced
context

5.41

5.51

1.79

Voting value

18.30

3.58

voting image

Noisy

Original

voting image

noisy image

If contexts are not
good
context, pixels with low voting value are selected to
construct new
adaptive context.

Original

Noisy

Iteration 1

Iteration 2

DUDE

Proposed

Noisy pixels with contaminated contexts are filtered
correctly by optimal context selection

Adaptive context selection via a voting
-
based noise estimation
scheme



Can process raster map images distorted by impulsive noise,
additive Gaussian noise or mixture Gaussian
-
impulsive noise



Extension for optimizing the context selection for denoising
gray
-
scale image, e.g. voting
-
based method to optimize the
weighting coefficient in NLM, PLOW, K
-
SVD.



M. Chen, M.
Xu

and P.
Fränti
, "Multi
-
layer filtering approach for
map images",
IEEE Int. Conf. on Image Processing
(ICIP'09)
,

Cairo,
Egypt, 3953
-
3956, 2009.

M.

Chen, M.
Xu

and P.

Fränti
, "Statistical filtering of raster map
images",
IEEE Int. Conf. on Multimedia & Expo
(ICME'10),
Singapore, 394
-
399, 2010. (oral)

M.

Chen, M.
Xu
, P.
Fränti
, "Adaptive Context
-
tree based
Statistical Filtering of Raster Map Images Denoising",

IEEE Trans.
on Multimedia
, 16(3), 1195
-
1207,
2011.

M.

Chen, M.
Xu
, P.
Fränti
, "Adaptive Filtering of Raster Map
Images Using Optimal Context Selection",

IEEE Int. Conf. on
Image Processing
(ICIP’11), 77
-
80, Brussels, Belgium, 2011.(oral)