TỒNG QUAN VỀ XỬ LÝ ẢNH


Summary: CHƯƠNG 1

CHƯƠNG 1: TỒNG QUAN VỀ XỬ LÝ ẢNH

Xử lý ảnh là một trong những mảng quan trọng nhất trong kỹ thuật thị giác máy tính, là tiền đề cho nhiều nghiên cứu thuộc lĩnh vực này. Hai nhiệm vụ cơ bản của quá trình xử lý ảnh là nâng cao chất lượng thông tin hình ảnh và xử lý số liệu cung cấp cho các quá trình khác trong đó có việc ứng dụng thị giác vào điều khiển.

Đã có rất nhiều công trình nghiên cứu tại nhiều quốc gia từ năm 1920 đến nay về xử lý ảnh đã góp phần thúc đẩy tiến bộ trong lĩnh vực này lớn mạnh không ngừng [GS. TS. Nguyễn Kim Sách].

Quá trình bắt đầu từ việc thu nhận ảnh nguồn (từ các thiết bị thu nhận ảnh dạng số hoặc tương tự) gửi đến máy tính. Dữ liệu ảnh được lưu trữ ở định dạng phù hợp với quá trình xử lý. Người lập trình sẽ tác động các thuật toán tương ứng lên dữ liệu ảnh nhằm thay đổi cấu trúc ảnh phù hơp với các ứng dụng khác nhau.

1.1 Chuyển ảnh màu thành ảnh xám

Đơn vị tế bào của ảnh số là pixel. Tùy theo mỗi định dạng là ảnh màu hay ảnh xám mà từng pixel có thông số khác nhau. Đối với ảnh màu từng pixel sẽ mang thông tin của ba màu cơ bản tạo ra bản màu khả kiến là Đỏ (R), Xanh lá (G) và Xanh biển (B) [Thomas 1892]. Trong mỗi pixel của ảnh màu, ba màu cơ bản R, G và B được bố trí sát nhau và có cường độ sáng khác nhau. Thông thường, mổi màu cơ bản được biểu diễn bằng tám bit tương ứng 256 mức độ màu khác nhau. Như vậy mỗi pixel chúng ta sẽ có
28×3=22428×3=224 size 12{2 rSup { size 8{8×3} } =2 rSup { size 8{“24”} } } {} màu (khoảng 16.78 triệu màu). Đối với ảnh xám, thông thường mỗi pixel mang thông tin của 256 mức xám (tương ứng với tám bit) như vậy ảnh xám hoàn toàn có thể tái hiện đầy đủ cấu trúc của một ảnh màu tương ứng thông qua tám mặt phẳng bit theo độ xám.

Trong hầu hết quá trình xử lý ảnh, chúng ta chủ yếu chỉ quan tâm đến cấu trúc của ảnh và bỏ qua ảnh hưởng của yếu tố màu sắc. Do đó bước chuyển từ ảnh màu thành ảnh xám là một công đoạn phổ biến trong các quá trình xử lý ảnh vì nó làm tăng tốc độ xử lý là giảm mức độ phức tạp của các thuật toán trên ảnh.

Chúng ta có công thức chuyển các thông số giá trị màu của một pixel thành mức xám tương ứng như sau:

G=α.CR+β.CG+δ.CBG=α.CR+β.CG+δ.CB size 12{G=α “.” C rSub { size 8{R} } +β “.” C rSub { size 8{G} } +δ “.” C rSub { size 8{B} } } {}(1.1)

Trong đó các giá trị
CR,CGvàCBCR,CGvàCB size 12{C rSub { size 8{R} } ,C rSub { size 8{G}  }  ital “và”C rSub { size 8{B} } } {} lần lượt là các mức độ màu Đỏ, Xanh lá và Xanh biển của pixel màu. Các hệ số
α,β,vàδα,β,vàδ size 12{α,β, ital “và”δ} {}là các giá trị thay đổi tùy thuộc hệ màu. Trong luận văn sử dụng hai card thu nhận tín hiệu video hệ NTSC từ hai camera nên các hệ số sẽ là:
α=0.29890,β=0.58662,vàδ=0.11448α=0.29890,β=0.58662,vàδ=0.11448 size 12{α=0 “.” “29890”,β=0 “.” “58662”, ital “và”δ=0 “.” “11448”} {}. Do đó công thức (1.1) trở thành:

G
=
0

.
29890
.

C

R

+
0

.
58662
.

C

G

+
0

.
11448
.

C

B

G
=
0

.
29890
.

C

R

+
0

.
58662
.

C

G

+
0

.
11448
.

C

B

size 12{G=0 “.” “29890” “.” C rSub { size 8{R} } +0 “.” “58662” “.” C rSub { size 8{G} } +0 “.” “11448” “.” C rSub { size 8{B} } } {}

Chúng ta xem ảnh nguồn như một mảng hai chiều, duyệt qua từng pixel phần tử của mảng bằng công thức 1.1 chúng ta sẽ có được ảng xám kết quả như hình 1.2 sau:

Figure 1

Figure 2

Hình 1.2 Chuyển ảnh màu thành ảnh xám

1.2 Lược đồ xám của ảnh (Histogram)

Lược đồ xám của một ảnh số có các mức xám trong khoảng
[0,L−1][0,L−1] size 12{ \[ 0,L – 1 \] } {} là một hàm rời rạc
p(rk)=nk/np(rk)=nk/n size 12{p \( r rSub { size 8{k} }  \) =n rSub { size 8{k} } /n} {}. Trong đó
nknk size 12{n rSub { size 8{k} } } {} là số pixel có mức xám thứ
rkrk size 12{r rSub { size 8{k} } } {}, n là tổng số pixel trong ảnh và
k=0,1,2….L−1k=0,1,2….L−1 size 12{k=0,1,2 “.”  “.”  “.”  “.” L – 1} {}. Do đó
P(rk)P(rk) size 12{P \( r rSub { size 8{k} }  \) } {}cho một xấp xỉ xác suất xảy ra mức xám
rkrk size 12{r rSub { size 8{k} } } {}. Vẽ hàm này với tất cả các gia trị của
kk size 12{k} {} sẽ biểu diễn khái quát sự xuất hiện các mức xám của một ảnh. Chúng ta cũng có thể thề hiện lược đồ mức xám của ảnh thông qua tần suất xuất hiện mỗi mức xám qua hệ tọa độ vuông góc Oxy. Trong đó, trục hoành biểu diễn số mức xám từ 0 đến N (số bit của ảnh xám). Trục tung biểu diễn số pixel của mỗi mức xám.

Figure 3

Hình 1.3: Lược đồ xám của ảnh hình 1.2

1.3 Các bộ lọc không gian

Trong quá trình xử lý ảnh chúng ta có thể sử dụng các mặt nạ không gian nhằm làm thay đổi cấu trúc ảnh gọi là các bộ lọc không gian. Có hai loại lọc không gian là lọc không gian tuyến tính và lọc không gian phi tuyến.

1.3.1. Lọc tuyến tính

Lọc tuyến tính có các hàm dịch, hàm xung hoặc hàm phân tán điểm là các biến đổi Fourier ngược. Lọc thông thấp làm say giảm hoặc loại trừ các thành phần tần số cao trong miền Fourier và cho các tần số thấp đi qua. Các thành phần tần số cao đặc trưng cho các biên, các chi tiết làm nét trong ảnh, do đó hiệu quả của bộ lọc thông thấp là làm nhòe ảnh. Ngược lại với bộ lọc thông thấp, bộ lọc thông cao làm suy giảm các thành phần tần số thấp. Các thành phần này thể hiện qua các đặc trưng thay đổi chậm của ảnh như độ tương phản và cường độ sánh trung bình. Hiệu quả chung của các bộ lọc thông cao là làm rõ các biên và chi tiết. Ngoài ra còn có bộ lọc thông dãi nhằm giữ lại vùng tần số giữa thấp và cao. Nhiệm vụ chính của các bộ lọc này nhằm khôi phục ảnh, Một mặt nạ lọc tuyến tính 3×3 có đáp ứng như sau:

R
=

w

1

z

1

+

w

2

z

2

+
.

.
.

.
+

w

9

z

9

R
=

w

1

z

1

+

w

2

z

2

+
.

.
.

.
+

w

9

z

9

size 12{R=w rSub { size 8{1} } z rSub { size 8{1} } +w rSub { size 8{2} } z rSub { size 8{2} } + “.”  “.”  “.”  “.” +w rSub { size 8{9} } z rSub { size 8{9} } } {}

Figure 4
Trong đó
wiwi size 12{w rSub { size 8{i} } } {} là phần tử thứ
ii size 12{i} {}của mặt nạ và
zizi size 12{z rSub { size 8{i} } } {} là giá trị độ xám của một pixel được ô thứ
ii size 12{i} {}của mặt nạ chập lên.

Hình 1.4: Các vùng cơ bản của mạch lọc tuyến tính

1.3.2. Lọc phi tuyến

a. Bộ lọc Mean

Mạch lọc là một mặt nạ có kích thước
nxnnxn size 12{nxn} {}, trong đó tất cả các hệ số đều bằng 1. Đáp ứng là tổng các mức xám của
nxnnxn size 12{nxn} {}pixels chia cho
nxnnxn size 12{nxn} {}. Ví dụ mặt nạ 3×3 thì đáp ứng là tổng mức xám của 9 pixels chia cho 9.

1
1
1

1
1
1

1
1
1

1
9

×

1
9

×

size 12{ {  {1}  over  {9} }  times } {}

Nhân chập mặt nạ với tất cả các pixel của ảnh gốc chúng ta sẽ thu được ảnh kết quả qua bộ lọc Mean theo công thức sau:

f
[
i
,
j

]
=

1
S

k
,
l
:
N

s
(
k
,
l
)

f
[
i
,
j

]
=

1
S

k
,
l
:
N

s
(
k
,
l
)

size 12{f \[ i,j \] = {  {1}  over  {S} }  Sum cSub { size 8{k,l:N} }  {s \( k,l \) } } {}

Figure 5
Figure 6
Với
f[i,j]f[i,j] size 12{f \[ i,j \] } {} là giá trị pixel kết quả,
s(k,l)s(k,l) size 12{s \( k,l \) } {}là các giá trị pixel ảnh gốc được mặt nạ chập lên và S là kích thước mặt nạ.

Hình 1.5: Ảnh gốc và ảnh qua bộ lọc Mean

Bộ lọc Mean có vai trò làm trơn ảnh có thể xem như bộ lọc thông cao, nhưng lại làm mờ đường biên của các đối tượng bên trong ảnh, làm mất tín hiệu cận nhiễu và không lọc được nhiễu xung.

b. Bộ lọc Median

Để thực hiện lọc Median trong lân cận của một pixel chúng ta sắp xếp các giá trị của pixel và các lân cận, xác định trung vị Median và định giá trị pixel. Ví dụ như một lân cận 3×3 có các giá trị: 10, 20, 20, 20, 15, 20, 20, 25, 100. Các giá trị này được sắp xếp lại theo thứ tự từ thấp đến cao: 10, 15, 20, 20, 20, 20, 20, 25, 100. Giá trị median là 20. Do đó về nguyên lý thì mạch median có thể tách được các điểm có cường độ sáng lớn như nhiễu xung và lọc các điểm có cường độ sáng tức thì (xung) hay còn gọi là các nhiễu muối tiêu.

Figure 7

Figure 8

Hình 1.6: Ảnh gốc bị nhiễu muối tiêu và ảnh sau khi lọc Median

c. Bộ lọc Gauss

Về bản chất bộ lọc Gauss có phương thức tiến hành tương đồng với bộ lọc trung bình nhưng có thêm tác động của các trọng số. Các trọng số này được tính tỷ lệ với hàm Gauss theo khoảng cách tới điểm tính toán. Công thức tính giá trị cho từng pixel ảnh gốc theo lọc Gauss như sau:

g
(
i
,
j

)
=

1
N

m
,
n
:
K

G
(

i

m

,

j

n

)
×
f

(
m
,
n
)

g
(
i
,
j

)
=

1
N

m
,
n
:
K

G
(

i

m

,

j

n

)
×
f

(
m
,
n
)

size 12{g \( i,j \) = {  {1}  over  {N} }  Sum cSub { size 8{m,n:K} }  {G \( i – m,j – n \)  times f \( m,n \) } } {}

Trong đó
g(i,j)g(i,j) size 12{g \( i,j \) } {}là giá trị độ xám pixel kết quả, N là kích thước cửa sổ,
f(m,n)f(m,n) size 12{f \( m,n \) } {} là giá trị độ xám của pixel đang tác động,
G(i−m,j−n)G(i−m,j−n) size 12{G \( i – m,j – n \) } {} là các trọng số. Các trọng số được tính toán tỷ lệ theo hàm Gauss bằng khoảng cách tới điểm tính toán.

G
(
x
,
y

)
=

1

2

πσ

2

e

x

2

+

y

2

2

G
(
x
,
y

)
=

1

2

πσ

2

e

x

2

+

y

2

2

size 12{G \( x,y \) = {  {1}  over  {2 ital “πσ” rSup { size 8{2} } } } e rSup { size 8{ –  {  {x rSup { size 6{2} } +y rSup { size 6{2} } }  over  {2σ rSup { size 6{2} } } } } } } {}

2    7    12    7    2
7    31    52    31    7
15    52    127    52    15
7    31    52    31    7
2    7    12    7    2
14231423 size 12{ {  {1}  over  {“423″} } } {}x

Thực hiện phép nhân chập giữa mặt nạ Gauss và ảnh gốc chúng ta thu được ảnh kết quả được xử lý bằng mạch lọc Gauss. Vai trò của bộ lọc Gauss cũng làm trơn ảnh như bộ lọc trung bình, tuy nhiên bộ lọc Gauss cho chất lượng ành kết quả cao hơn vì có sự tập trung trong số vào pixel đang xét tại vị trí trung tâm.

Figure 9

Figure 10

Hình 1.7: Ảnh gốc và ảnh xử lý bằng bộ lọc Gauss.

1.4. Tách biên đối tượng

Ảnh thu được từ các thiết bị ghi nhận sau khi qua bước tiền xừ lý sẽ đến quá trình phân tích ảnh. Có nhiều phương pháp phân tích ảnh trong đó tách biên đối tượng là một công cụ mạnh. Vai trò của tách biên chủ yếu là trích đặc trưng đối tượng theo đường biên ảnh và phân vùng ảnh dựa trên đường biên.

1.4.1 Phương pháp Canny

Là một phương pháp tách biên ảnh do Francis Canny tìm ra tại phòng thí nghiệm ảnh thuộc MIT. Quá trình tiến hành thuật toán trải qua một số bước như sau:

1. Làm trơn ảnh bằng bộ lọc Gauss nhằm giảm thiểu ảnh hưởng của nhiễu và các chi tiết không mong nuôn trong cấu trúc ảnh.
2. Tính gradient của ảnh nhờ một trong các toán tử:Roberts, Sobel hay Prewitt…

M
(
j
,
j

)
=

g

i

2

(
i
,
j

)
+

g

j

2

(
i
,
j
)

M
(
j
,
j

)
=

g

i

2

(
i
,
j

)
+

g

j

2

(
i
,
j
)

size 12{M \( j,j \) = sqrt {g rSub { size 8{i} }  rSup { size 8{2} }  \( i,j \) +g rSub { size 8{j} }  rSup { size 8{2} }  \( i,j \) } } {}


θ(i,j)=tan−1[gj(i,j).gi(i,j)]θ(i,j)=tan−1[gj(i,j).gi(i,j)] size 12{θ \( i,j \) =”tan” rSup { size 8{ – 1} }  \[ g rSub { size 8{j} }  \( i,j \)  “.” g rSub { size 8{i} }  \( i,j \)  \] } {}

1. Xác định ngưỡng

M

T

(
i
,
j

)
=

{

M
(
i
,
j
)

Nêu

M
(
i
,
j

)
>
T

0

Khác

M

T

(
i
,
j

)
=

{

M
(
i
,
j
)

Nêu

M
(
i
,
j

)
>
T

0

Khác

size 12{M rSub { size 8{T} }  \( i,j \) = left lbrace  matrix {
M \( i,j \)  ital “Nêu”M \( i,j \) >T {} ##
0 ital “Khác”
}  right none } {}

Với T được chọn là các phần tử cạnh.

1. Dựa vào hướng của dradient để loại bỏ những điểm không thực sự là biên. Chúng ta kiểm tra các điểm
MT(i,j)MT(i,j) size 12{M rSub { size 8{T} }  \( i,j \) } {}nếu có giá trị lớn hơn hai điểm lân cận dọc theo phương gradient
θ(i,j)θ(i,j) size 12{θ \( i,j \) } {} thì giữ nguyên và ngược lại thì gán giá trị bằng 0.
2. Dùng ngưỡng kép
τ1τ1 size 12{τ rSub { size 8{1} } } {} và
τ2τ2 size 12{τ rSub { size 8{2} } } {} (
τ1τ1 size 12{τ rSub { size 8{1} } } {} <
τ2τ2 size 12{τ rSub { size 8{2} } } {}) tạo ra các điểm trung gian nhằm nối liến các điểm biên đã xác định được từ trước theo phương thức sau:

Những điểm
M(i,j)M(i,j) size 12{M \( i,j \) } {} có giá trị gradient lớn hơn
τ2τ2 size 12{τ rSub { size 8{2} } } {} thì được xem là điểm biên. Những điểm
M(i,j)M(i,j) size 12{M \( i,j \) } {} có giá trị gradient nhỏ hơn
τ1τ1 size 12{τ rSub { size 8{1} } } {} thì loại bỏ. vối những điểm có giá trị gradient nằm trong khoảng
τ1τ1 size 12{τ rSub { size 8{1} } } {} và
τ2τ2 size 12{τ rSub { size 8{2} } } {} thì kiểm tra thêm nếu nó liền kề với một điểm có gradient lớn hơn
τ1τ1 size 12{τ rSub { size 8{1} } } {} thì điểm này được xem là điểm biên. Kết quả chúng ta sẽ thu được các đường biên tạo từ vô số các điểm biên liền kề liên tục.

Figure 11

(a)

Figure 12

(b)

Figure 13

(c)

Hình 1.8: (a) Ảnh gốc; (b) Lọc Canny với ngưỡng 0 – 150; (c) Lọc Canny với ngưỡng 200 – 255.

Theo vocw.edu.vn

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s