Tải bản đầy đủ (.pdf) (19 trang)

xử lý ảnh, nhận dạng màu biển báo giao thông

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (587.12 KB, 19 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ

O C O MÔN HỌC XỬ
Đề tài:

Nhận

ng

u i n

o Gi o Th ng

GVHD:
SVTH:

Thành Phố Hồ Chí Minh, tháng 12 năm 2015

NH


CHƯƠNG 1: GIỚI THIỆU
1.1. Xử lý ảnh là gì?
Là 1 công nghệ r đời từ những năm 1960, tuy nhiên thì v o thời đi m đó cấu
hình củ m y tính chư đủ m nh đ hỗ trợ công nghệ xử lý ảnh đòi hỏi tốc độ phải
cao và tốn nhiều bộ nhớ lưu trữ. Vào thời đi m đó thì đã có nhiều trường đ i học
lớn và các viện nghiên cứu trên thế giới như

IT đã tr ng bị những chiếc máy tính



khổng lồ đ nghiên cứu về công nghệ này. Từ những năm 1970 trở đi, cấu hình
m y tính đã m nh mẽ hơn, c c ứng dụng như cải thiện và nâng cao chất lượng ảnh,
lưu trữ và truyền ảnh bắt đầu được phổ biến hơn. Còn ng y n y thì Xử lý ảnh đ ng
là 1 công nghệ l m th y đổi cuộc sống giúp máy móc thay thế cho thị giác của con
người.
Xử lý ảnh có th được chi r l m 3 lĩnh vực:
 Cải thiện chất lượng ảnh (Improvement of pictorial information): ví dụ việc
làm cho chất lượng một hình ảnh đã cũ trở lên rõ, nét như khi nó được chụp
c ch đây nhiều năm.


ưu trữ và Truyền ảnh (Efficient Stor ge nd tr nsmission) C c định d ng
ảnh r đời nhằm làm giảm dung lượng lưu trữ v tăng tốc độ truyền nhận
hình ảnh khi băng th ng có giới h n. Các nhà nghiên cứu đã cho r đời các
định d ng ảnh như .jpg, .png, .bmp ... đã dần làm giảm đ ng k dung lượng
của ảnh nhưng vẫn đảm bảo chất lượng của hình ảnh.

 Nhận diện ảnh (Im ge processing for utonomous m chine) đây l ứng
dụng h y được sử dụng trong các dây truyền gi m s t, đ nh gi và ki m tra
chất lượng sản phẩm trong công nghiệp... Ví dụ như nhận diện bi n số xe
trong các bãi giữ xe, ki m tr nhãn ch i đã được d n đúng tiêu chuẩn hay
2


chư , ki m tra các linh kiện điện tử đã được gắn đúng vị trí trên các bo m ch
h y chư , giúp robot phát hiện và chữa cháy kịp thời hay trong quân sự thì
sử dụng công nghệ xử lý ảnh đ giúp cho robot có th theo dõi v b m đuổi
mục tiêu


1.2. Mục tiêu đề tài:
 Tìm hi u c ch sử dụng bộ t ch biên Sobel, Rewitt, C nny, Robert
 Sử dụng phương ph p nhận d ng m u đ x c định m u cho đèn gi o th ng
(Rgb, Cmy, Cmyk, Hsv)


ấy hình ảnh từ camera chụp l i đ x c định chính x c m u đèn gi o th ng

3


CHƯƠNG 2:

GIỚI THIỆU VỀ CÁC BỘ TÁCH BIÊN

2.1. Cơ sở của việc tách biên

Biên là tập hợp những pixel (nằm trên đường biên giới giữa 2 vùng) liên
kết với nhau. Một biên lý tưởng có các thuộc tính của mô hình ở hình 1.1.

Hình 1.1: Mô hình biên lý tưởng
Tuy nhiên trong thực tế các yếu tố như l chất lượng của hệ thống thu nhận
hình ảnh, tốc độ lấy mẫu, điều kiện chiếu sáng của mỗi bức ảnh,… ảnh hưởng đến
chất lượng của hình ảnh. Vì vậy kết quả là biên giống với một đo n dốc được th
hiện trong hình 1.2.

4


Hình 1.2: Mô hình biên trong thực tế

Vì vậy chúng ta không bao giờ có một đường biên mảnh (có độ dày một
pixel). Th y v o đó, một đi m biên bây giờ là một đi m bất kì chứ trong đo n dốc
và biên là tập hợp những đi m liên th ng. Độ dày củ đường biên được x c định
bởi chiều dài củ đo n dốc, khi biên biến đổi từ đầu đến cuối mức xám.

độ dày của biên

Hình 1.3: Mô hình miêu tả độ dày của biên

5


2.2. Bộ tách biên Sobel
Bộ tách biên Sobel sử dụng mặt l Sobel đ tính c c đ o hàm bậc nhất Gx
và Gy , nói c ch kh c đ o hàm t i đi m tâm trong một lân cận được tính theo bộ
tách Sobel



g  Gx2  G y2



1/ 2

 {[( z 7  2 z8  z9 )  ( z1  2 z 2  z3 )]2  [( z3  2 z 6  z9 )  ( z1  2 z 4  z 7 )]2 }1 / 2

Khi đó vị trí (x,y) là pixel biên nếu g  T, trong đó T l một ngưỡng được
chỉ định.
Cú pháp của bộ tách biên Sobel

[g, t] = edge (f, „sobel‟, T, dir)
Trong đó f là ảnh đầu vào.
g là ảnh logic chứa giá trị 1 t i những nơi biên được tách và
chứa giá trị 0 t i những nơi biên kh ng được tách.
T =t l ngưỡng được chỉ định (T=10, 20,….).
dir l hướng cần t ch biên „ng ng‟, „dọc‟ hoặc „chéo‟.
Ví dụ:

nh chúng ta cần tách biên là một ma trận có d ng:

T tính được: |Gx1| = |3 – 4| = 1; |Gy1| = |3 – 2| = 1
Mặt l Sobel: |Gx2| = 2; |Gy2| = 12
Khi đó Gx = Max (Gx1, Gx2)

6


Gy = Max (Gy1, Gy2)
=> g = (22 + 122)1/2 = (148) 1/2

2.3. Bộ tách biên Canny
Bộ t ch biên C nny có c c đặc tính cơ bản: tìm biên bằng cách tìm các cực
đ i đị phương củ gr dient f(x,y). Gr dient được tính to n dùng đ o hàm của bộ
lọc G uss. Phương ph p dùng h i ngưỡng đ tách biên m nh và yếu, gộp các biên
yếu ở ngõ ra chỉ khi chúng được kết nối với các biên m nh. o đó phương ph p
này thích hợp đ tách các biên yếu thực sự.

Có th tóm tắt phương ph p t ch biên bằng bộ t ch biên C nny như s u
 nh được l m trơn bằng cách sử dụng một bộ lọc Gauss với độ lệch
chuẩn  đ làm giảm nhiễu.

Xét hàm Gauss:

h ( r )  e



r2
2 2

7


Trong đó r 2  x 2  y 2
 l độ lệch chuẩn
H m l m trơn n y khi chập với một ảnh sẽ làm mờ ảnh, độ mờ được xác
định bởi .
 T ch biên l phương ph p gi n đo n các giá trị cường độ. Sự gián
đo n được tính bằng cách sử dụng đ o hàm bậc nhất. Đ o hàm bậc nhất lựa chọn
trong xử lý ảnh l gr dient (độ dốc). Gradient của hàm 2- f(x,y) được định nghĩ
dưới d ng vector
 f 
G x   x 
f      f 
G y   
 y 

iên độ của vector này:




f  mag (f )  G x2  G y2



1/ 2



 f / x 2  f / y 2



1/ 2

Đặc tính cơ bản củ vector gr dient l c c đi m của nó là những hướng có
tỷ lệ th y đổi hàm f t i to độ (x,y) lớn nhất. Góc xảy ra tỷ lệ th y đổi lớn nhất là:
 Gy 

 ( x, y )  tan 1 

G
 x
 Đi m biên được x c định tăng lên đến c c đỉnh trong gr dient biên độ
ảnh. Sau thuật to n tìm đỉnh củ c c đỉnh n y v đặt giá trị 0 vào tất cả các pixel
không nằm trên đỉnh. C c pixel đỉnh được đặt bằng h i ngưỡng T1 và T2. Các
pixel đỉnh lớn hơn T2 được gọi l c c pixel biên “m nh”. C c pixel đỉnh nằm giữa
T1 v T2 được gọi l c c pixel biên “yếu”.
 Cuối cùng thuật toán thực hiện biên kết nối bằng cách kết hợp các
pixel “yếu” với các pixel m nh.
Cú pháp của bộ tách biên Canny là:

[g, t] = edge (f, „c nny‟, T, sigm )

8


2.4. Bộ tách biên Prewitt
n Pr ewi t t

Bộ tách biên Prewitt sử dụng mặt n Prewitt như hình bên dưới xấp xỉ
phương ph p số theo đ o hàm bậc nhất Gx, Gy.

z1

z2

z3

z4

z5

z6

z7

z8

z9
Image neighborhood


-1

-1

-1

-1

0

1

0

0

0

-1

0

1

1

1

1


-1

0

1

Prewitt

Gx  ( z7  z8  z9 )  ( z1  z2  z3 )

G y  ( z3  z6  z9 )  ( z1  z4  z7 )
Cú pháp gọi hàm:
[g, t] = edge (f, „prewitt‟, T, dir)
Tham số n y đồng nhất với tham số Sobel. Bộ t ch Prewitt đơn giản hơn
so với bộ t ch biên Sobel nhưng nó dễ sinh ra nhiễu hơn so với bộ tách biên Sobel.
Việc tính toán các giá trị hoàn toàn giống với bộ tách biên Sobel.

9


2.5. Bộ tách biên Roberts
Bộ tách biên Roberts sử dụng mặt n Roberts như hình bên dưới xấp xỉ
phương ph p số theo đ o hàm bậc nhất Gx, Gy.
-1

0

0

-1


0

1

1

0

Roberts

Cú pháp gọi hàm:
[g, t] = edge (f, „roberts‟, T, dir)
Tham số n y đồng nhất với tham số Sobel. Bộ tách Roberts là một trong
những bộ t ch biên xư nhất trong xử lý ảnh số v cũng l bộ t ch biên đơn giản
nhất.

10


CHƯƠNG 3. PHƯƠNG PHÁP NHẬN DẠNG MÀU
3.1. Giới thiệu về phương ph p nhận d ng m u
phương ph p diễn giải c c đặc tính v t c động của màu trong ngữ cảnh
nhất định. Kh ng có m hình m u n o l đầy đủ cho mọi khía c nh củ m u, người
ta sử dụng c c m hình m u kh c nh u đ mô tả các tính chất được nhận biết khác
nhau của màu.
Thí dụ:
+ Mô hình màu RGB: ánh sáng Red, Green và Blue ứng dụng cho màn
hình, TV.
+ Mô hình HSV: Nhận thức củ con người.

+ Mô hình CYK: Máy in.

3.2. Mô hình màu RGB
- Mọi m u được bi u diễn bởi kh ng gi n m u RG đều là sự pha trộn của
3 thành phần m u cơ bản (Red, Green, Blue).
-

hình m u RG được bi u diễn bởi khối lập phương với các trục R,

G,B

Nhận xét


hình n y kh ng th bi u diễn mọi màu trong phổ nhìn thấy

• Đủ cho các ứng dụng máy tính


n hình m y tính v TV sử dụng mô hình này

• Được sử dụng rộng rãi nhất
11


• Đơn giản
Xám hóa ảnh màu RGB:
Màu = R + G + B
Th ng thường người ta sử dụng công thức
màu = 0.299R + 0.587G + 0.114B


3.3. Mô hình màu CMY
- Gồm 3 thành phần m u cơ bản cyan, magenta, yellow. Là bù màu của
không gian GRB.
Mối quan hệ giữ 2 kh ng gi n m u b n đầu + màu bổ túc => trắng
R + C => W
Y + B => W
M + B => W
Phương ph p ph trộn màu trong cuộc sống

3.4. Mô hình màu CMYK
Là sự mở rộng mô hình màu CMK bằng cách thêm vào thành phần màu
Black (K). Bởi vì với thành phần màu Black tinh khiết sẽ cho t độ tương phản cao
hơn.
12


Mối quan hệ CMY và CMYK
K = min(C, M, Y)
C=C-K
M=M-K
Y=Y-K

3.5. Mô hình màu HSV
• Th y vì chọn các phần tử RG đ có màu mong muốn, người ta chọn các
tham số màu: Hue, Saturation và Value (HSV).

hình HSV suy diễn từ mô hình RGB: hãy quan sát hình hộp RGB
theo đường chéo từ White đến Black (gốc) -> ta có hình lục giác, sử dụng làm
đỉnh hình nón HSV.


• Hue ước sóng gốc củ
bằng góc từ 00 đến 3600

nh s ng. Trong m hình Hue được bi u diễn

• V lue Cường độ h y độ chói ánh sáng. Value có giá trị [0, 1], V=0 ->
m u đen. Đỉnh lục gi c có cường độ màu cực đ i.
• S tur tion Thước đo độ tinh khiết ánh sáng gốc. S trong khoảng [0, 1].
Bi u diễn tỷ lệ độ tinh khiết của màu sẽ chọn với độ tinh khiết cực đ i.
Nhận xét
Mô hình HSV trực gi c hơn m hình RG . ắt đầu từ Hue (H cho trước và
V=1, S=1). th y đổi S: Bổ sung hay bớt trắng, th y đổi V: Bổ sung hay bớt đen cho
đến khi có màu mong muốn.

13


3.6. Kỹ thuật phân ngưỡng (Thresholding)
Kỹ thuật n y đặt ngưỡng đ hi n thị các tông màu liên tục. Giá trị của
ngưỡng sẽ quyết định đi m có được hi n thị hay không, và hi n thị như thế nào.
Tái hiện 2 màu: dùng cho ảnh 256 mức xám, bản chất củ phương ph p
n y l ngưỡng dự v o lược đồ x m. Ngưỡng chọn ở đây l 127.
Cho ảnh số S( ,N), khi đó

Tái hiện 4 màu: Với qui định cách hiện 4 m u như s u

14



CHƯƠNG 4 : GI I H Ậ CHƯƠNG

NH

4.1. ưu đồ

4.2. Cơ chế ho t động
nh được đư v o đ xử lý là ảnh màu củ đèn gi o th ng
Matlab sẽ phân tích và xử lý bằng các hàm củ chương trình n y. Kết quả
sau khi xử lý sẽ tách lấy biên hình tròn và nhận d ng được màu sắc củ đèn gi o
th ng đó l m u gì (x nh h y đỏ)

4.3. Code chương trình
%% xu ly video giao tiep qua webcam
% vid=videoinput('winvideo',1);
% hinh=getsnapshot(vid);
15


% imwrite(hinh,'d.jpg');
% delete(vid);
% a=imread('d.jpg');
%% chuyen anh mau dang rgb sang anh xam
a=imread('japan-flag.jpg');
subplot(3,2,1);
imshow(a);
b=rgb2gray(a); %chuyen thanh anh muc xam
c=medfilt2(b);%loc nhieu bang bo loc trung binh
d=imadjust(c);%hieu chinh do tuong phan
subplot(3,2,2);

imshow(d);
%% tach bien va loai bo thanh phan nhieu
bw=edge(d,'prewitt');%tach bien
subplot(3,2,3);
imshow(bw);
bw=bwareaopen(bw,30);%tach bien theo thong so dat truoc
%% lam phang nhi phan
se=strel('disk',2);
bw=imclose(bw,se);
bw=imfill(bw,'holes');
subplot(3,2,4);
imshow(bw);
%% xac dinh trong tam,bien,tinh khoang cach
L =bwlabel(bw);

16


s =regionprops(L,'centroid');
dt =regionprops(L,'area');
cv =regionprops(L,'perimeter');
dim = size(s);
BW_filled = imfill(bw,'holes');
boundaries = bwboundaries(BW_filled);
for k = 1:dim(1)
b = boundaries{k};
dim = size (b);
for i = 1:dim(1)
khoangcach{k}(1,i) = sqrt((b(i,2)-s(k).Centroid(1))^2+(b(i,1)s(k).Centroid(2))^2);
end

b=min(khoangcach{k});
a=max(khoangcach{k});
end
%% xac dinh mau den giao thong
dolech = a-b;
if dolech < 255;
e=imread('japan-flag.jpg');
d=imresize(e,[8 8]);%thay doi kich thuoc anh theo don vi pixel
d1=d(:,:,1);
d1=reshape(d1',8*8,1);%giam kich thuoc anh de xu ly
d11=sum(d1);
d2=d(:,:,2);
d2=reshape(d2',8*8,1);
17


d22=sum(d2);
d3=d(:,:,3);%ma tran mau xanh la cay
d3=reshape(d3',8*8,1);%giam kich thuoc anh de xu ly
d33=sum(d3);
if d11>d22&&d11>d33
disp('mau do');
z=1;
else
if d11<d22&&d22>d33
disp('mau xanh');
z=2;
else
end
end

end
4.3 Một số ảnh đ x c định

18


19



×