



















Preview text:
lOMoAR cPSD| 58933639
BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
--------------------------------- BÁO CÁO MÔN HỌC
ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH NHẬN DẠNG CHỮ SỐ VIẾT TAY
GVHD: Th.S Nguyễn Duy Thảo SVTH: Phạm Văn Dũng 19161216 Lê Ngọc Sanh 19161281 Đoàn Duy Tân 19161283
Mai Nguyễn Khánh Trình 19161308 Tạ Thanh Tuấn 19161318
Tp. Hồ Chí Minh - 11/2021
BỘ GIÁO DỤC & ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH lOMoAR cPSD| 58933639
KHOA ĐIỆN – ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH
--------------------------------- BÁO CÁO MÔN HỌC
ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH NHẬN DẠNG CHỮ SỐ VIẾT TAY
GVHD: Th.S Nguyễn Duy Thảo SVTH: Phạm Văn Dũng 19161216 Lê Ngọc Sanh 19161281 Đoàn Duy Tân 19161283
Mai Nguyễn Khánh Trình 19161308 Tạ Thanh Tuấn 19161318
Tp. Hồ Chí Minh - 11/2021
TRƯỜNG ĐH. SƯ PHẠM KỸ THUẬT TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA ĐIỆN-ĐIỆN TỬ Độc lập – Tự do – Hạnh phúc
BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH lOMoAR cPSD| 58933639
TP. Hồ Chí Minh, ngày 10 tháng 11 năm 2021.
BẢNG MÔ TẢ CÔNG VIỆC
Họ tên sinh viên 1: Phạm Văn Dũng___________________ MSSV: 19161216_______
Lớp: 19161DTCN__________________________________
Họ tên sinh viên 2: Lê Ngọc Sanh_____________________ MSSV: 19161281_______
Lớp: 19161DTCN__________________________________
Họ tên sinh viên 3: Đoàn Duy Tân_____________________ MSSV: 19161283_______
Lớp: 19161DTCN__________________________________
Họ tên sinh viên 4: Mai Nguyễn Khánh Trình____________ MSSV: 19161308_______
Lớp: 19161DTCN__________________________________
Họ tên sinh viên 5: Tạ Thanh Tuấn____________________ MSSV: 19161318_______
Lớp: 19161DTCN__________________________________
Tên đề tài: Ứng dụng xử lý ảnh trong nhận dạng chữ số viết tay
1. MÔ TẢ MỤC TIÊU CỦA ĐỀ TÀI
Mục tiêu của đề tài là hiểu biết và có kiến thức cơ bản về phương pháp PCA, và Neural Network.
Đề tài có khả năng nhận được những kiểu viết khác nhau của dữ liệu số 1 hay số 7. Đồng
thời cũng phân biệt được số 1 và số 7.
Mục tiêu đặt ra cho đề tài là viết chương trình có khả năng học, và không đặt nặng vấn đề
sai số thấp nhất có thể.
Sau khi thực hiện đề tài, có khả năng sử dụng các lệnh cơ bản của MATLAB để lập trình cơ bản về Neural Network.
2. MÔ TẢ CÔNG VIỆC THỰC HIỆN ĐỀ TÀI
Các công việc thực hiện trong đề tài: STT
NỘI DUNG CÔNG VIỆC 1
Thu thập dữ liệu chụp ảnh số 1 và số 7 viết tay, xử lí dữ liệu ảnh thu được. 2
Tìm hiểu những kiến thức cơ bản về mạng neuron, đề xuất giải pháp để lOMoAR cPSD| 58933639
tiền xử lý ảnh (resize, đổi sang ảnh xám, central shift, phân đoạn ảnh) sao cho tối ưu nhất 3
Tổng hợp ý kiến với thành viên nhóm và thử nghiệm các phương pháp xử lý ảnh 4
Viết báo cáo kết quả thử nghiệm, đưa ra nhận xét đánh giá hiệu quả hệ thống mạng neuron 5
Chuẩn bị 2 tập ảnh số 1 và số 7 cần nhận dạng và tập ảnh test. 6
Nghiên cứu các phương pháp tiền xử lý. 7
Nghiên cứu và viết chương trình tiền xử lí ảnh, và tiến hành cho huấn luyện mạng Neural nhân tạo 8
Viết báo cáo chương 1 tổng quan và chương 2 phương pháp tính toán. SINH VIÊN 1 SINH VIÊN 2 SINH VIÊN 3
(Ký ghi rõ họ tên)
(Ký ghi rõ họ tên)
(Ký ghi rõ họ tên) SINH VIÊN 4 SINH VIÊN 5
(Ký ghi rõ họ tên)
(Ký ghi rõ họ tên)
XÁC NHẬN CỦA GIẢNG VIÊN HƯỚNG DẪN
(Ký ghi rõ họ tên)
Th.S Nguyễn Duy Thảo MỤC LỤC
Chương 1. TỔNG QUAN...................................................................................................6
1.1 ĐẶT VẤN ĐỀ................................................................................................................6
1.2 MỤC TIÊU....................................................................................................................6 lOMoAR cPSD| 58933639
1.3 NỘi DUNG NGHIÊN CỨU..........................................................................................7
1.4 BỐ CỤC.........................................................................................................................7
Chương 2. PHƯƠNG PHÁP – TÍNH TOÁN..................................................................9 2.1
GIỚI THIỆU.............................................................................................................9 2.2
PHƯƠNG PHÁP-TÍNH TOÁN...............................................................................9 2.2.1
Thiết kế sơ đồ khối.............................................................................................9 2.2.2
Tính toán từng phương pháp..........................................................................10
CHƯƠNG 3. KẾT QUẢ..................................................................................................21
3.1 Cơ sở dữ liệu:...........................................................................................................21
3.2 Thông số ban đầu của mạng Neuron:....................................................................21
3.3 Kết quả thực nghiệm:..............................................................................................22
CHƯƠNG 4. KẾT LUẬN.................................................................................................28
TÀI LIỆU THAM KHẢO................................................................................................29
Chương 1. TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ
Đề tài nhận dạng chữ số viết tay thực sự cần thiết, đã và đang ứng dụng rộng rãi trong
nhiều lĩnh vực trong đời sống, cụ thể như nhận dạng các chữ số trên chi phiếu ngân hàng, mã
số trên bì thư của dịch vụ bưu chính, đặc biệt ở các trường học hiện nay, đều có một bộ phận
quản lí điểm để thực hiện các khâu tiếp nhận và nhập vào máy tính từ bảng điểm viết tay của
của giáo viên, công tác này luôn chiếm nhiều thời gian và đôi khi không đảm bảo tiến độ
hoạt động của nhà trường. Vì vậy vấn đề nhận dạng chữ viết tay nói chung và nhận dạng chữ
số viết tay nói riêng là một thách thức lớn đối với các nhà nghiên cứu.
Vấn đề lớn luôn đặt ra là sự phức tạp của việc nhận dạng chữ viết phụ thuộc nhiều vào
phong cách viết và cách thể hiện ngôn ngữ của người viết. Thông thường con người không
thể luôn viết một ký tự chính xác theo cùng một cách. Do vậy, xây dựng hệ thống nhận dạng
chữ viết có thể nhận dạng bất cứ ký tự nào một cách đáng tin cậy trong tất cả các ứng dụng
là điều không dễ dàng. Đối với bài toán nhận dạng chữ số viết tay, mạng neuron nhiều lớp
sẽ được huấn luyện dựa trên các pixel, đơn vị nhỏ nhất của hình ảnh. Vì vậy mạng neuron
nhân tạo là công cụ vô cùng thích hợp cho việc xử lý, phân tích hình ảnh và mang lại kết quả rất khả quan [1].
Vì vậy nhóm chọn đề tài “ỨNG DỤNG XỬ LÍ ẢNH NHẬN DẠNG CHỮ SỐ VIẾT
TAY” mục đích nghiên cứu các phương pháp trích đặc trưng cơ bản và huấn luyện sử dụng lOMoAR cPSD| 58933639
mô hình Neural Network nhằm tiếp cận cũng như nắm rõ những nguyên lí cơ bản về nhận
dạng sử dụng Neural Network. Đồng thời cũng áp dụng những kiến thức lí thuyết từ môn xử
lí ảnh vào việc tiền xử lí dữ liệu ảnh trước khi huấn luyện. 1.2 MỤC TIÊU
Đề tài có khả năng nhận dạng được dữ liệu số từ 0 đến 9 và phân biệt chữ số với các
kí tự khác. Với mục tiêu đặt ra cho đề tài là viết chương trình có khả năng huấn luyện mô
hình mạng Neural nhân tạo, và chưa đặt nặng vấn đề sai số trong quá trình thử nghiệm các
phương pháp. Sau khi thực hiện đề tài sinh viên có kiến thức và hiểu biết cơ bản về Neural
Network, và phương pháp PCA, cũng như các phương pháp xử lí ảnh trong quá trình thu
thập và chọn lọc dữ liệu.
1.3 NỘi DUNG NGHIÊN CỨU
Quá trình thực hiện đề tài thông qua 7 nội dung nghiên cứu sau:
• NỘI DUNG 1: Tìm hiểu và tham khảo các tài liệu, giáo trình, nghiên cứu các chủ đề,
các nội dung liên quan đến đề tài.
• NỘI DUNG 2: Thu thập và phân loại dữ liệu liệu ảnh vào các tập khác nhau, và đặt tên theo chuẩn nhất định.
• NỘI DUNG 3: Tiền xử lí dữ liệu ảnh thu được.
• NỘI DUNG 4: Nghiên cứu phương pháp tính toán, trích đặc trưng dùng PCA cùng các
phương pháp trích đặc trưng dùng dò biên
• NỘI DUNG 5: Viết chương trình huấn luyện mạng Neural nhân tạo, nhận dạng dữ liệu
chữ số 0 đến 9 viết tay.
• NỘI DUNG 6: Tiến hành huấn luyện thử nghiệm và cân chỉnh.
• NỘI DUNG 7: Viết báo cáo đề tài. 1.4 BỐ CỤC
Với đề tài nhận dạng chữ số viết tay ứng dụng mạng Neural Network thì phần báo cáo có bố cục như sau
• Chương 1: Tổng Quan
Chương này trình bày đặt vấn đề dẫn nhập lý do chọn đề tài, mục tiêu, nôi dung nghiên
cứu, các giới hạn thông số và bố cục bài báo cáo.
• Chương 2: Phương Pháp-Tính Toán lOMoAR cPSD| 58933639
Chương này trình bày sơ đồ khối, mô tả nguyên lí từng khối, lựa chọn phương pháp
cho từng khối. Trình bày ngắn những phương pháp cũng như tính toán sử dụng trong đề tài.
• Chương 3: Kết Quả Mô Phỏng
Sử dụng các phương pháp đã lựa chọn cũng như các tính toán từ chương 2 để viết
chương trình sử dụng phần mềm Matlab. Mỗi phương pháp đều đưa ra kết quả hiệu suất học
của chương trình huấn luyện sau 10 lần học.
• Chương 4: Kết Luận Đánh giá mức độ hoàn thiện đề tài. lOMoAR cPSD| 58933639
Chương 2. PHƯƠNG PHÁP – TÍNH TOÁN 2.1 GIỚI THIỆU
Đề tài nhận dạng chữ số viết tay ứng dụng xử lí ảnh, cụ thể là ứng dụng mạng Neural
Network (mạng Nơ-Ron nhân tạo). Sử dụng các phương pháp trích đặc trưng phân tích thành
phần chính (PCA), phân đoạn ảnh dùng thuật toán Otsu kiến nghị ngưỡng xám, sau đó dùng
phép hình thái học giản ảnh, để tăng độ mượt của ảnh ngõ vào.
2.2 PHƯƠNG PHÁP-TÍNH TOÁN
2.2.1 Thiết kế sơ đồ khối
Từ mục tiêu của đề tài nhóm đưa ra sơ đồ khối như sau:
Hình 2.1: Sơ đồ khối tiến trình huấn luyện ảnh Chức năng các khối:
• Khối dữ liệu ảnh: Dữ liệu ảnh bao gồm 10 tệp ảnh, tệp ảnh chứa mỗi một tệp ảnh
chứa 150 tấm ảnh chữ số từ 0 đến 9.
• Khối tiền xử lý: ảnh đi qua khối này sẽ được thực hiện một số phương pháp tiền xử
lý nhằm tăng cường ảnh, lọc ảnh để loại bỏ những thành phần không mong muốn hay
giảm kích thước nhưng vẫn giữ lại những đặc trưng cần thiết của ảnh. Tóm lại những
phương pháp tiền xử lý dữ liệu ảnh thu được, nhằm làm tăng hiệu quả của việc trích đặc trưng của ảnh.
Đối với đề tài nhận dạng chữ số viết tay, nhóm lựa chọn một số phương pháp tiền xử lí phù hợp như sau:
- Giảm kích thước ảnh ngõ vào.
- Dịch tâm ảnh trong miền tần số.
- Phân đoạn ảnh dùng thuật toán Otsu để kiến nghị ngưỡng mức xám.
- Dùng hình thái học, cụ thể là phép giãn ảnh (Dilation). lOMoAR cPSD| 58933639
• Khối trích đặc trưng: ở đề tài này khối trích đặc trưng áp dụng phương pháp trích
đặc trưng cơ bản là PCA, phân tích thành phần chính nhằm chỉ giữ lại các thành phần
đặc trưng nhất của ảnh.
• Khối Neural Network: Mạng Neural nhân tạo, có chức năng học ảnh từ dữ liệu ảnh
được đưa vào lớp ngõ vào (Input Layer), sau đó sẽ thực hiện tính toán bên trong các
lớp ẩn (Hidden Layer) dựa trên dữ liệu từ lớp ngõ vào, sau đó chuyển tiếp kết quả đến
lớp tiếp theo. Lớp ngõ ra (Output Layer) sẽ thực hiện đánh giá và đưa ra kết quả dựa
trên các thuật toán thích hợp.
2.2.2 Tính toán từng phương pháp
Sau khi phân tích đưa ra các phương pháp cho từng khối. Ta tiếp tục nghiên cứu cụ thể
từng phương pháp và cách thức tính toán, thực hiện phương pháp.
a. Khối dữ liệu ảnh.
Dữ liệu ảnh tự chụp bằng điện thoại gồm 300 ảnh, số lượng các ảnh trong các tệp phải
bằng nhau để đơn giản khi viết chương trình huấn luyện.
Chuẩn bị tập các đối tượng: Các tập số từ 0 đến 9, với mỗi tập 150 ảnh cần nhận dạng
được tập hợp và phân loại Hình 2.2.
Hình 2.2: Các tập ảnh từ s0 đến s9
Chuẩn bị tâp ảnh kiểm tra: chọn ngẫu nhiên 10 từ số 0 đến số 9 để vào file “anh test”, như Hình 2.3
Hình 2.3: Các ảnh test sau khi huấn luyện
b. Khối tiền xử lý.
Giảm kích thước ảnh ngõ vào. lOMoAR cPSD| 58933639
Trước khi đưa vào mạng Neural nhân tạo, tất cả dữ liệu ảnh cần được chuẩn hóa,
trước tiên cần xét đến tính tối ưu về bộ nhớ cũng như thời gian học của mạng. Việc
giảm kích thước ảnh đủ để mạng Neural có thể học và nhận dạng ổn định là thực sự
cần thiết. Và các ảnh huấn luyện cần chuẩn hóa theo cùng một kích thước giống nhau.
Vì thế phải dùng hàm imresize
B = imresize(A,[numrows numcols]);
để resize lại kích thước các ảnh ngõ vào. Còn kích thước rezise thế nào là hợp lí thì sẽ
trình bày kết quả mô phỏng ở chương 3.
Phương pháp dịch tâm trong miền tần số.
Như chúng ta biết thì ảnh thông thường có số lượng điểm ảnh lớn vì thế để thực
hiện một số phép toán phức tạp thì đòi hỏi dung lượng bộ nhớ lớn. Vì vậy để đơn giản
cho quá trình tính toán, thì cách đơn giản là chuyển ảnh sang miền tần số nhờ phép
biến đổi Fourier (DFT). Với ảnh f ( x , y )ta có:
M−1 N−1 −j2π ux − j2π vy F(u,v)= ∑∑ f (
x, y ) .e M .e N x=0 y=0
Trong Matlab biến đổi DFT được thực hiện bằng thuật toán biến đổi Fourier
nhanh, FFT. Biến đổi FFT của ảnh có kích thước MxN được thực hiện bởi hàm fft
trong toolbox với cú pháp như sau F = fft2(f)
Sau khi biến đổi Fourier, để nhìn ảnh và đánh giá ảnh dễ rang ta tiếp tục chuyển
tâm ảnh, phương pháp này không làm thay đổi giá trị của các điểm ảnh, chỉ thay đổi
vị trí của các giá trị điểm ảnh đó. Hàm fftshift trong toolbox được sử dụng để chuyển
gốc tọa độ của biến đổi đến trung tâm của ảnh hay nói cách khác là nó thực hiện chức
năng tương tự việc nhân (-1)x+y. −1 N−1 Fc(u,v)= x=0 y=0
Hàm fftshift trong toolbox có cú pháp như sau lOMoAR cPSD| 58933639 Fc= fftshift(F)
Sau đó để chuyển đổi ảnh về lại miền không gian thì sử dụng phép biến đổi Fourier ngược theo ux vy f MxN u=0 v=0
Hàm ifft trong toolbox hỗ trợ biến đổi FFT ngược với cú pháp như sau: f = ifft2(F)
Với F là biến đổi Fourier sau khi đã các góc phần tư về vị trí ban đầu, f là ảnh
trên miền không gian. Nếu ngõ vào tính toán F là số thực thì tương ứng ngõ ra cũng
là dạng số thực. Tuy nhiên, trong thực tế, hàm ifft2 thường có một vài thành phần ảo
rất nhỏ là kết quả của việc làm trong vốn là đặc trưng trong tính toán dấu chấm động.
Do vậy tốt nhất ta nên lấy phần thực của kết quả ảnh ra sau cùng bằng hàm real. f = real(F)
Phân đoạn ảnh dùng thuật toán Otsu.
Phương pháp kiến nghị ngưỡng Otsu liên quan đến tính toán ở tất cả các giá trị
ngưỡng có thể có của ảnh thường bắt đầu từ ngưỡng xám 0 (màu đen), Khi tính toán
tại một ngưỡng nào đó sẽ chia làm hai phần gọi lần lượt là nền (background) và vật
thể (foreground). Sau đó tính toán phương sai cho các mức xám ở mỗi bên của ngưỡng theo các bước sau.
Bước 1: Giá trị ngưỡng giả sử ban đầu là T = 0.
Bước 2: Tính các thông số của phần nền tại T đã chọn ở Bước 1. ∑ Tính trọng số W n b = k n μb = ∑ K .nk Tính giá trị trung bình ∑nk 2 = .nk Tính phương sai ∑ nk lOMoAR cPSD| 58933639
với n là tổng số pixel của ảnh. nk là số
pixel tương ứng với múc xám k 0≤k ¿ T.
Bước 3: Tính các thông số của phần vật thể tại T đã chọn ở Bước 1. ∑
Tính trọng số W = nk f n μ = ∑ f K .nk Tính giá trị trung bình ∑nk
∑(K−μ ).n Tính phương sai δ
với n là tổng số pixel của ảnh. n là số k
pixel tương ứng với múc xám k.
T ≤ k ≤ L-1. Với L là số mức xám.
Bước 4: Tính tổng phương sai của phần nền và phần vật thể:
δ2w = Wb xδ2b + W f xδ2f
Bước 5: Tăng giá trị T lên một và lặp lại từ bước 2 đến bước 4, sau đó lại tăng T lên đến khi T = L-1.
Bước 6: Sau khi đã tính toán được các thông số phương sai của từng giá trị ngưỡng T
thì so sánh các giá trị phương sai δ2 với nhau, tại ngưỡng T nào có giá trị nhỏ w δ2w
nhất thì ngưỡng T đó chính là ngưỡng T được kiến nghị.
Sau khi có được ngưỡng xám T được kiến nghị ta tiến hành phân đoạn ảnh dựa
vào ngưỡng xám T. f ( x , y )là ảnh gốc và g(x,y) là ảnh sau khi phân đoạn.
g(x,y) = {01;;ff ((xx,, yy))≥<TT
Trong Matlab ta viết chương trình phân đoạn dựa vào thuật toán Otsu như sau: lOMoAR cPSD| 58933639
n=imhist(a); % biểu diễn lược đồ
N=sum(n); % tổng các giá trị của tật cả các mức xám trong biểu
đồ max=0; % khởi tạo giá trị lớn nhất bằng 0 for i=1:256
P(i)=n(i)/N; %Tính mật độ xác suất end
for T=2:255 % step through all thresholds from 2 to 255
w0= sum(P(1:T)); % Tính trọng số lớp nền w1=
sum(U(T+1:256)); % Tính trọng số lớp vật thể u0= dot([0:T-
1],U(1:T))/w0; % Tính trung bình của lớp nền u1=
dot([T:255],U(T+1:256))/w1;% Tính trung bình lớp vật thể
sigma=w0*w1*((u1-u0)^2); % Tính phương sai tổng của cả hai lớp nền và vật thể
if sigma>max % so sánh giá trị sigma và giá trị max max=sigma; % cập nhật giá trị của sigma cho max
threshold = T-1; % Giá trị ngưỡng mong muốn tương ứng với phương sai tối đa giữa các lớp end end
%%%%%%%%%%%%%%%%%%%%%%%phân đoạn%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%
%%Tiến hành phân đoạn ảnh ngõ vào có kích thước 100x100
for r=1:100 for c=1:100
if a(r,c) >= threshold
a(r,c) = 0; else
a(r,c) = 255; end end end
Phương pháp giãn ảnh Dilation
Phép toán Dilation là thao tác giãn nở/ phình to các đối tượng ảnh đơn sắc A và B là
hai tập hợp con trong Z2, thực hiện phép toán Dilation trong A theo B, kí hiệu là A⊕B và
được xác định như sau : A⊕B = {z | ^Az ∩A ≠ϕ }.
Trong Matlab, ta có hàm Dilation như sau: imdilate. B =
[0 1 0; 1 1 1; 0 1 0]; a = imdilate(a,B);
B chính là nhân tạo hình. Trong Matlab, chương trình cũng cung cấp cho ta nhiều
nhân tạo hình khác nhau, để biết thêm chí tiết gõ help strel. Trong thực tế, người ta chọn
những nhân tạo ảnh sao cho B=B^, tức là sử dụng nhân tạo ảnh có các phần tử trong nhân
tạo ảnh đối xứng qua chính tâm của nó. Bên cạnh đó, với việc ta lê những cái tâm z của
nhân tạo ảnh B ảnh đi khắp A và tìm những điểm nào mà B∩A≠ϕ thì ta có thể hiểu như A⊕B
= Ubi.Abi với Abi là những khu vực mà A∪Bi≠ϕ.
Với đề tại nhóm chọn nhân tạo hình B = [0 1 0; 1 1 1; 0 1 0]; nhằm dãn nở để các phần
nét đứt của dữ liệu ảnh sau khi phân đoạn được trơn tru hơn.
c. Khối trích đặc trưng. lOMoAR cPSD| 58933639
Ở khối này sử dung phương pháp trích đặc trưng cơ bản là PCA (Priciple Component
Analysis) gọi là phương pháp phân tích thành phần chính. Mục đích của phương pháp này
nhằm loại bỏ đi một số thành phần trong không gian dữ liệu và chỉ dữ lại những thành phần đặc trưng nhất.
Hình 2.4 Quá trình trích đặc trưng dùng phương pháp PCA
Bước 1: Tạo một tập S gồm m ảnh kích thước RxC.
Mỗi ảnh được chuyển thành một vector (N = mxn) chiều dùng hàm reshape(M,N,1) như mô tả sau:
Hình 2.4: Biểu diễn ảnh có kích thước m hàng x n cột thành vector Nx1
Mỗi ảnh là một ma trận cột, ghép m ma trận cột tương ứng với m ảnh thành một ma
trận có kích thước nxm.
a11a12a13…a1m lOMoAR cPSD| 58933639
a21a22a23…a2m ( )
Pnxm = a31a32a33…a3m …
an1an2an3…anm
Chỉ số đầu là thành phần của vector, chỉ số sau đó là số thứ tự của ảnh.
Bước 2: Tính ảnh trung bình. 1 m ⃗M = xi
a11+a12+a13+…+a1m m1 ⃗M
Trong Matlab, dung lệnh mean (X, dim) để tính giá trị trung bình của ma trận X, với
dim là chiều lấy trung trình, nếu dim =1 lấy trung bình theo cột, nếu dim = 2 lấy trung bình
theo hàng, không có tham số dim thì mặc định dim bằng 1.
Bước 3: Tính sai biệt ảnh trung bình a11−m1 a12−m1 a1m−m1 ) ( )
⃗n1m= a31−m3 , ⃗n2m= a32−m3 , … , ( ) ⃗nMm= a3m−m3 a21−m2
a22−m2 a2m−m2 … … … lOMoAR cPSD| 58933639 an1−mn an2−mn anm−mn
Nhằm mục đích tạo ra sự giãn tương đối giá trị pixel của các ảnh.
Sau đó xây dựng ma trận từ các n⃗ℑ vừa tìm được
Đặt A = (⃗n1m ⃗n2m ⃗n3m …⃗nMm) sẽ được ma trận có kích thước nxm.
Bước 4: Tính ma trận hiệp phương sai
Nhằm thể hiện sự tương quan của từng vector đối với các vector còn lại trong không gian. C = A.AT
Vì ma trận C có kích thước quá lớn (nxn) nên để tìm eigenvector của C ta tìm
eigenvector và eigenvalue của ma trận L: L = AT .A
Trị riêng (eigenvalue λi), và vectơ riêng (eigenvector xi) của ma trận hợp phương sai
này chính là đặc trưng thành phân thiết yếu của ảnh.
Các vectơ riêng là không gian đặc trưng các tập mẫu trong cơ sở dữ liệu ảnh. Các
vectơ riêng được sắp xếp theo thứ tự từ cao đến thấp theo trị riêng tương ứng. Vectơ riêng có
trị riêng lớn nhất sẽ mang nhiều đặc trưng thiết yếu nhất của không gian các tập mẫu (tức nó
quyết định nhiều nhất sự biến đổi trong ảnh). Ngược lại, vectơ riêng có trị riêng bé nhất sẽ
mang thành phần ít đặc trưng nhất trong không gian đặc trưng các tập mẫu. Ở đây cho thấy
chỉ với m hướng đặc trưng mang trị riêng lớn nhất trong n×n không gian đặc trưng.
Dùng hàm [V,D] = eig(L) để tìm trị riêng D và vectơ riêng V của ma trận L. Hàm này
tạo ra một ma trận đường chéo D của các giá trị riêng và một ma trận V có các cột tương ứng
là các vector riêng, do đó: X * V = V * D
Bước 5: Thực hiện phép chiếu
Chiếu lần lượt các ảnh trong cơ sở dữ liệu đến không gian đặc trưng hướng này, để sinh ra
các ảnh đặc trưng trong không gian ảnh mới.
i = x1x2....xn T .n⃗ℑ i = 1, m
Với [X]T=.¿]T là ma trận đặc trưng các ảnh mẫu đã rút trích ra được gọi là các eigensignal,
n⃗ℑ là vectơ ảnh thứ i trừ ảnh trung bình
Bước 6: Nhận dạng lOMoAR cPSD| 58933639
Chuyển đổi ảnh cần nhận dạng thành vectơ 1 chiều: r1 ( r⃗= r ) 3 r2 … N
Tính sự sai số của ảnh cần nhận dạng với ảnh trung bình của các ảnh trong cơ sở dữ liệu. r1−m1
r⃗=r32n−m32 ) r −m … r −mn
Chiếu sai số lên không gian đặc trưng của các ảnh mẫu trong cơ sở dữ liệu. r =[⃗x ]T.
1⃗x2x⃗3….⃗xM r⃗m
Từ đặc trưng đã trích từ phương pháp PCA, các hệ số biểu diễn ảnh có thể dùng để làm ngõ
vào của một mạng phục vụ cho việc huấn luyện và phân loại.
d. Khối mạng Neural nhân tạo. lOMoAR cPSD| 58933639
Mạng nơ-ron nhân tạo (ANN - Artifical Neural Networks) là một trong những công cụ
rất mạnh trong vấn đề phân loại và nhận dạng đối tượng. Dựa trên cấu trúc của nơ-ron sinh
học như hình trong hệ thống thần kinh người, nhiều dạng mạng nơ ron nhân tạo đã được xây dựng và phát triển.
Hình 2.5 Cấu trúc neural sinh học: cell boby, axon, synaptic
Mạng ANN đầu tiên được xây dựng đó là Perceptron. Perceptron có cấu trúc cơ bản của
một tế bào thần kinh được trình bày như trong Hình 2.6 như hình này thì có ba ngõ vào trọng
số được tổng hợp lại và kết nối đến ngõ ra, ngõ ra này lại có thể là ngõ vào của các nơ-ron khác.
Hình 2.6 Cấu trúc cơ bản của tế bào thần kinh
Mạng Perceptron này được mô hình hóa theo dạng
Hình 2.7 Mô hình perceptron lOMoAR cPSD| 58933639
Trong đó xi, i =1, 2, 3 là các ngõ vào, wi là các trọng số với ngõ vào tương ứng,
hàm hoạt hóa và ngõ ra o = f(a), trong đó a = x1.w1 + x2.w2+ x3.w3. Hình 2.8 Hàm bước Hình 2.9 Hàm sigmoid
Hình 2.10 Hàm double sigmoid
Trong Hình 2.8 hàm hoạt hóa là hàm bước O =
Hàm sigmoid và double sigmoid được miêu tả trong Hình 2.9 và 2.10 tương ứng với công thức sau 1 O = S(a)= − a 1+e O = H(a)= 2S(a)-1
Mạng lan truyền ngược được xây dựng dựa trên cấu trúc Perceptron, trong đó có ít nhất
hai lớp, và các hàm hoạt hóa phải là hàm có thể lấy đạo hàm (ví dụ ở đây là hàm sigmoid,
double sigmoid). Hình 2.11 là mô hình. mạng lan truyền ngược ba lớp (một lớp vào, một lớp ẩn, một lớp ra).
Hình 2.11 Mạng lan truyền ngược với 3 lớp
Dựa trên giải thuật giảm gradient, mạng lan truyền ngược tìm các trọng số sao cho
trung bình bình phương sai số giữa ngõ ra hiện tại và ngõ ra mong muốn đạt kết quả tốt nhất. p
E=∑(Op−d p)2 p=1 lOMoAR cPSD| 58933639
Trong đó: P là số lượng mẫu, Op là ngõ ra của mạng, dp là ngõ ra mong muốn.