XỬ lý ẢNH NHẬN DIỆN BIỂN báo cấm (có code) .................................. XỬ lý ẢNH NHẬN DIỆN BIỂN báo cấm (có code) .................................. XỬ lý ẢNH NHẬN DIỆN BIỂN báo cấm (có code) .................................. XỬ lý ẢNH NHẬN DIỆN BIỂN báo cấm (có code) .................................. XỬ lý ẢNH NHẬN DIỆN BIỂN báo cấm (có code) ..................................
Trang 1XỬ LÝ ẢNH NHẬN DIỆN BIỂN BÁO
CẤM
Trang 2MỤC LỤC
DANH MỤC CÁC HÌNH VẼ V DANH MỤC CÁC TỪ VIẾT TẮT VIII
CHƯƠNG 1: TỔNG QUAN 1
1.1 GIỚI THIỆU 1
1.2 MỤC TIÊU 1
1.3 NHIỆM VỤ 1
CHƯƠNG 2: GIỚI THIỆU 2
2.1 XỬ LÍ ẢNH 2
2.2 MATLAB 2
2.3 ẢNH SỐ 3
2.3.1 ĐIỂM ẢNH (PIXEL) 3
2.3.2 Ảnh RGB 3
2.4 CÁC BƯỚC XỬ LÝ ẢNH SỐ 4
2.4.1 Thu nhận ảnh 4
2.4.2 Tiền xử lý ảnh 4
2.4.3 Phân đoạn ảnh 4
2.4.4 Nhận dạng 4
2.5 CÁC KĨ THUẬT XỬ LÝ ẢNH SỐ 4
2.5.1 KĨ THUẬT NÂNG CAO CHẤT LƯỢNG ẢNH 4
2.5.2 KĨ THUẬT BIẾN ĐỔI ẢNH 4
2.5.3 KĨ THUẬT PHÂN TÍCH ẢNH 5
2.5.4 KĨ THUẬT NHẬN DẠNG ẢNH 5
2.6 THUẬT TOÁN DÙNG TRONG PROJECT 5
CHƯƠNG 3: THIẾT KẾ 7
3.1 SƠ ĐỒ GIẢI THUẬT 7
3.2 NGUYÊN LÍ LÀM VIỆC 7
Trang 3CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG 8
4.1 GIAO DIỆN GUIDE 8
4.2 KHI TÌM VÀ PHÁT HIỆN ẢNH 8
4.3 KHI NHẬN DIỆN ẢNH 9
CHƯƠNG 5: KẾT LUẬN 10
5.1 ƯU ĐIỂM 10
5.2 KHUYẾT ĐIỂM 10
5.3 HƯỚNG PHÁT TRIỂN 10
TÀI LIỆU THAM KHẢO 11
Trang 4DANH MỤC CÁC HÌNH VẼ
HÌNH 2-1: ẢNH SỐ 2
HÌNH 2-2: ẢNH GRAY 2
HÌNH 2-3: ĐEN TRẮNG 3
HÌNH 2-4: THUẬT TOÁN 3
HÌNH 2-5: CREATE CASCADE CLASSIFIER 3
HÌNH 2-6: H0G 4
HÌNH 4-1:THEMES 5
HÌNH 4-2: DETECTED 6
HÌNH 4-3: RECOGNIZE 6
Trang 5DANH MỤC CÁC TỪ VIẾT TẮT
Trang 7Trang 1/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 8Trang 2/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…
XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM
Trang 9Trang 3/14
2.3 ẢNH SỐ
- Ả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
XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM
Trang 10Trang 4/14
2.4 CÁC BƯỚC XỬ LÝ ẢNH SỐ
2.4.1 Thu nhận ảnh
- Ả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…
XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM
Trang 11Trang 5/14
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
- 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
XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM
Trang 12Trang 6/14
HÌNH 2-5: CREATE CASCADE CLASSIFIER [1]
- 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]
XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM
Trang 13Trang 7/14
CHƯƠNG 3: THIẾT KẾ
3.1 SƠ ĐỒ GIẢI THUẬT
3.2 NGUYÊN LÍ LÀM VIỆC
XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM
Trang 14Trang 8/14
CHƯƠNG 4: KẾT QUẢ MÔ PHỎNG
4.1 GIAO DIỆN GUIDE
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 15Trang 9/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 16Trang 10/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 17Trang 11/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 18Trang 12/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',
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
XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM
Trang 19Trang 13/14
bophathien=vision.CacdeObjctDeteoctor('cam2.xml');
box = step(bophathien, anh);
anhphathien=insertObjctAnnottion(anh,'recangle', box, 'bien bao phat hien'); 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
set(hadles.ketqua2,'Sting','Stop')
set(hadles.ketqua2,'Sting','rectangle sign')
set(hanles.ketqua2,'Sring','No entry')
set(hanles.ketqua2,'Sting','No parking')
XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM
Trang 20Trang 14/14
set(handes.ketqua2,'Sting',No turn')
end
XỬ LÍ ẢNH NHẬN DIỆN BIỂN BÁO CẤM