Tải bản đầy đủ (.docx) (16 trang)

XỬ lý ẢNH NHẬN DIỆN BIỂN báo cấm (có code)

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 (388 KB, 16 trang )

XỬ LÝ ẢNH NHẬN DIỆN BIỂN BÁO
CẤM


MỤC LỤC

DANH MỤC CÁC HÌNH VẼ


Trang 3/14

CHƯƠNG 1: TỔNG QUAN
1.1 GIỚI THIỆU
- Xử lí ảnh nhận diện biển báo cấm là ứng dụng tự động phát hiện khu vực có
hình ảnh biển báo cấm và xuất hình ảnh cùng thông tin mà ứng dụng nhận
diện.
1.2 MỤC TIÊU
- Ngày nay, khi tham gia giao thông mỗi người cần phải nắm được và hiểu
toàn bộ thông tin biển báo, việc đó trở nên khó khăn khi số lượng biển báo
quá nhiều, không những thế còn có những yếu tố ngoại cảnh tác dộng làm
mờ hay hư hỏng biển. Vì những lí do trên, cần xây dựng một ứng dụng để
nhận biết được biển báo phòng trường hợp người đi đường không nhớ và cần
tra thông tin.
1.3 NHIỆM VỤ
- Tìm hiểu các kĩ thuật xử lý ảnh trong nhận diện hình học.
-

Xây dựng hệ thống nhận diện các dạng biển báo cấm khác nhau.

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM



Trang 4/14

CHƯƠNG 2: GIỚI THIỆU
2.1 XỬ LÍ ẢNH
- Xử lí ảnh là một phân ngành trong DSP với tín hiệu xử lí là ảnh số, là ngàh
mới phát triển gần đây và gồm 4 lĩh vực :
• Xử lí để nâng cao chất lượg hình ảnh.
• Nhận dạg ảnh
• Nén ảnh
• Truy vấn ảh
-

Xử lí ảnh gồm nhiểu côg đoạn: thu nhận ảnh, tăng cườg ảnh, khôi phục ảnh,
biến đổi ảnh, phân tíh ảnh. Mỗi quá trìh đều xử dụg các thuật toán khác nhau.

2.2 MATLAB
- MATLAB là môi trường tính toán và lập trình cho phép tính toán số với ma
trận, thực hiện thuật toán… tạo giao diện cho user, liên kết với nhiều chường
trìh để viết trên nhiều ngôn ngữ khác nhau.
-

MATLAB được sử dụng trong nhiều lĩnh vực như xử lý ảnh, DSP, thiết kệ
điều khiển tự động…

2.3 ẢNH SỐ

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM



Trang 5/14

-

Ảnh số là tập hợp hữu hạn các điểm ảnh. Ảh có thể được biểu diễn dưới dạg
một ma trận 2 chiều, mỗi phần tử của ma trận tương ứng với một điểm ảnh
(pixel).

-

Ảnh có thể định ngĩa là một hàm 2 chiều f(x,y), trong đó x và y là các toạ độ
trong khôg gian hoặc mặt phẳng.

HÌNH 2-1: ẢNH SỐ [2]

2.3.1 ĐIỂM ẢNH (PIXEL)
Điểm ảh thể hiện cường độ sag hay mức xám trog ảnh. PIXEL là phần tử nhỏ
nhất của ảh, được biểu diễn f(v,y). Ảnh gồm x*y điểm, cặp toạ độ x,y tạo nên
độ phận giải của ảnh.
2.3.2 Ảnh RGB
Ảnh RGB được biểu diễn bằng ma trận 3 chiều m*n*3 với m*n là kích thước
ảnh theo p ixel, ma trận này định nghia các thàh phần mà red, green, blue cho
mỗi pixel.
-

Nếu mỗi kê nh màu được mã hó a bằg 1 byte, và giá trị nằm trog đoạn [0,
255], thì ta có ảnh 24 bit màu, và mã hóa được tất cả 255 x 255 x 255 =
16.581.375 màu, hay thường gọi là 16 triệu màu.

2.4 CÁC BƯỚC XỬ LÝ ẢNH SỐ

2.4.1 Thu nhận ảnh

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 6/14

-

Ảnh được thu từ n hiều nguồn khác nhau như máy ảnh, máy qay fim…biến
đổi thôg tin hìh ảnh về các cấu trúc được lưu trữ trog máy tính .

2.4.2 Tiền xử lý ảnh
Là quá trìh sử dụg các kĩ thuật xử lý ảh để làm ảh tốt lên theo mục đíh sử
dụng.
2.4.3 Phân đoạn ảnh
Là quá trìh phân chia nội dug các đối tượg cần ra khỏi ảnh.
-

Phân tích các đối tượng riêng biệt thàh các đối tượg con.

2.4.4 Nhận dạng
Nhận dạg là quá trình xác địh ảnh bằng cách so sáh với mẫu chuẩn đã được
training từ trước.
2.5 CÁC KĨ THUẬT XỬ LÝ ẢNH SỐ
2.5.1 KĨ THUẬT NÂNG CAO CHẤT LƯỢNG ẢNH
Là làm nổi bật c ác đặc tính của ảnh như tăng độ tương phản, lọc nhiễu, nổi
biên… để làm tăng ch ất lượng quan sát của ảnh.
-


Khôi phục ảh bao gồm quá trình lọc ảnh, khử nhiễu do tác độg của môi trườg
nhằm giảm bớt biến dạng để khôi phục lại ảh giống như ban đầu.

2.5.2 KĨ THUẬT BIẾN ĐỔI ẢNH
Kĩ thuật biến đổi ảnh làm giảm thứ nguyên của ảnh để xử lý ảh hiệu quả hơn.
Các biến đổi thường được dùng là Fureaious, Sines, Cossin…
2.5.3 KĨ THUẬT PHÂN TÍCH ẢNH
Phân tíh ảnh liên quan đến việc xác địh kích thước, tính chất của ảnh sau đó
đưa ra mô tả đầy đủ về ảnh đó, nhằm xác địh biên của ảnh, kĩ thuật phân
vùng ảnh. Từ ảnh thu được tiến hàh tách hay hợp dựa theo tiêu chuẩn đáh giá
như màu sắc, cường độ…
2.5.4 KĨ THUẬT NHẬN DẠNG ẢNH

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 7/14

-

Nhận dạng ảh là quá trìh mô tả đối tượg mà muốn đặc tả. Quá trìh nhận dạng
thườg theo sau quá trìh trích chọn đối tượg.

2.6 THUẬT TOÁN DÙNG TRONG PROJECT
- Vision.CadeObjectDetetor là hệ thống sử dụng thuật toán để dò tìm phát hiện
khuôn mặt, mắt,.. trên cở thể người. Tuy nhiên, các clasifier không phải lúc
nào cũng đủ cho một ứng dụg cụ thể nào, vì vậy ta cần sử dụng chức năng
trainCadeObjectDetetor để huấn luyện một classifier tuỳ chỉnh.

HÌNH 2-4: THUẬT TOÁN [1]


-

Tạo một Cade classifier sử dụng trainCadeObjectDetetor: Để tạo một Ccade
clasifier cần phải có một tập hợp mẫu đúng và một tập hợp mẫu sai, và cần
phải cung cấp một tập hợp các hình ảnh đúng với các khu vực quan tâm để
sử dụng làm tập hợp mẫu đúng.

HÌNH 2-5: CREATE CASCADE CLASSIFIER [1]

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 8/14

-

Các loại hình trainning: trainCadeObjectDetetor hỗ trợ 3 loại tính năng:
Haar, local biary paterns (LBP), histgrams of oriented graients (H0G).

HÌNH 2-6: H0G [1]

CHƯƠNG 3: THIẾT KẾ
3.1 SƠ ĐỒ GIẢI THUẬT

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 9/14


3.2 NGUYÊN LÍ LÀM VIỆC

CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG
4.1 GIAO DIỆN GUIDE

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 10/14

HÌNH 4-1: THEMES

4.2 KHI TÌM VÀ PHÁT HIỆN ẢNH

HÌNH 4-2: DETECTED

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 11/14

4.3 KHI NHẬN DIỆN ẢNH

HÌNH 4-3: RECOGNIZE

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 12/14


CHƯƠNG 5: KẾT LUẬN
5.1 ƯU ĐIỂM
- Ứng dụng được viết đơn giản,nhận biết được hầu hết các loại biển cấm.
-

Giao diện guide dễ sử dụng.

5.2 KHUYẾT ĐIỂM
- Thời gian nhận diện chưa được nhanh.
-

Chỉ nhân diện được các biển báo có hình ảnh rõ nét, không bị tác dộng của
môi trường nhiều.

5.3 HƯỚNG PHÁT TRIỂN
- Có thể sử dụng thuật toán khác để tối ưu hoá hệ thống.
-

Kết hợp thêm camera để quay và nhận diện…

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 13/14

TÀI LIỆU THAM KHẢO

[1] www.mathworks.com
[2] www.matlabthayhai.info
[3] text.123doc.org


XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 14/14

PHỤ LỤC
function TRAINING_Callback(hObect, evetdata, handles)
load('stopSins.mat');
imDirection = fulfile(pwd,'stopSinmages');
addpath(imDiretions);
thumucsai= fulfile(pwd,'non SopSignImge Large');
trainCaceadeObjctDetector('stopSinDetor.xml',...
data, neogtiveFlder,'FeatureType','H0G',...
'FalseAlarmRate', 0.2, 'NumCascadeStages', 10);
fuction chose_Calback(hObect, evetdata, hadles)
axe(hadles.axe3)
axe(hadles.axs4)
set(handles.ket qua1,'Sting','')
set(hadles.ket qua2,'Sting','')
set(hadles. Image name, 'Sting','')
globals anh
[finame, paname] = uigetfile('*','LOAD AN IMAGES');
anh=iread(fulfile(paname, finame));
axe(hadles.axes3)
imsow(anh)
set(hadles.imageame,'Sting',finame)
fuctions timkiemphathien_Calback(hObect, evetda, hadles)
gobal anh
gobal anhphathien

gobal bophathien
gobal fileXML
for k=1:5
bophathien=k
swich bophathien
case 1
bophathien=vison.CoadeObctDetetor('cam1.xml');
box = step(bophathien, anh);
anhphathien=inertOjectAnnotation(anh,'recangle', box, 'bien bao phat hien');
sosah=isequal(anhphathien,anh)
case 2
bophathien=vision.CacdeObjctDeteoctor('cam2.xml');
box = step(bophathien, anh);
anhphathien=insertObjctAnnottion(anh,'recangle', box, 'bien bao phat hien');

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 15/14

sosah=isequal(anhphathien,anh)
case 3
bothien=viaion.CasadeObjctDeector('cam3.xml');
box = step(bophathien, anh)
anhphathien=insetObjectAnoation(anh,'rectngle', box, 'bien bao phat hien');
sosan=isequal(anhphathien,anh)
case 4
bopathien=vision.CadeObectDetor('cam4.xml');
box = step(bophathien, anh);
anhphathien=insertObjectAnotation(anh,'rectgle', box, 'bien bao phat hien');

sosan=isequal(anhphathien,anh)
case 5
bophahien=vion.CacadeObjctDector('cam5.xml');
bbx = step(bophathien, anh);
anhphathien=inserObjctAnotation(anh,'rectngle', box, 'bien bao phat hien');
sosnh=isequal(anhphathien,anh)
end
if sosan==0
S=imcop(anh,box);
set(hadles.kq3,'Sting','Detected')
fileXML=bophathien.ClasifitonModel
end
end
axe(hanles.axes4)
imshow(S)
fuction nhandienbienbao_Calback(hObject, eventdata, hanles)
globael fileeXML
switches fileXML
case 'cam1.xml'
set(hadles.ketqua2,'Sting','Stop')
case ' cam2.xml'
set(hadles.ketqua2,'Sting','rectangle sign')
case ' cam3.xml'
set(hanles.ketqua2,'Sring','No entry')
case 'cam4.xml'
set(hanles.ketqua2,'Sting','No parking')
case 'cam5.xml'
set(handes.ketqua2,'Sting',No turn')
end


XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM


Trang 16/14

XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM



×