



















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.