xử lý ảnh, nhận dạng màu biển báo giao thông 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.
Trang 1BỘ 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Ử NH
Đề 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
Trang 2CHƯƠ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
Trang 3chư , 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
Trang 4CHƯƠ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
Trang 5Hì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
Trang 62.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
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)
7 4 1 9 6 3 2 3 2 1 9 8 7 2
/ 1 2 2
} )]
2 ( ) 2
[(
)]
2 ( ) 2
G
G
Trang 7Gy = 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:
2 2
2
)
r
e r
h
Trang 8Trong đó 2 2 2
y x
r 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
y f x f G
G f
y x
iên độ của vector này:
/ /
)
mag
f x y
Đặ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à:
x
y
G
G y
(
Đ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 )
Trang 92.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
z4
z7
z6
z9
z8
z5
Image neighborhood
1 1
1
1 0
-1
-1
Prewitt
) (
) (z7 z8 z9 z1 z2 z3
G x
) (
) (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
Trang 102.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
0 0
-1
1
0 0 1
-1
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
Trang 11CHƯƠ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
Trang 12• Đơ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
Trang 13Mố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ủ nh s ng Trong m hình Hue được bi u diễn bằng góc từ 00 đến 3600
• 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
Trang 143.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
Trang 15CHƯƠ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);
Trang 16% 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);
Trang 17s =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);
Trang 18d22=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