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

30 0 0
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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TỔNG QUAN1.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

Trang 1

BỘ GIÁO DỤC & ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINHKHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

Trang 2

BỘ GIÁO DỤC & ĐÀO TẠO

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINHKHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

Trang 3

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úcBỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH

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 _

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:

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 để tiền xử lý ảnh (resize, đổi sang ảnh xám, central shift, phân đoạn ảnh) sao

Trang 4

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.

(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

Trang 6

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 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.

Trang 7

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

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.

7

Trang 8

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

Trang 9

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).

9

Trang 10

Khối trích đặc trưng: ở đề tài này khối trích đặc trưng áp dụng phương pháptrí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.

Trang 11

b Khối tiền xử lý.

Giảm kích thước ảnh ngõ vào.

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 ta có:

F(u,v)=

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

Fc(u,v)=

11

Trang 12

Hàm fftshift trong toolbox có cú pháp như sau 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

)=

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.

Trang 13

là số pixel tương ứng với múc xám k

với n là tổng số pixel của ảnh là số pixel tương ứng với múc xám k.

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 với nhau, tại ngưỡng T nào có giá trị nhỏ 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 là ảnh gốc và g(x,y) là ảnh sau khi phân đoạn.

g(x,y) =

Trong Matlab ta viết chương trình phân đoạn dựa vào thuật toán Otsu như sau:

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=;% khởi tạo giá trị lớn nhất bằng 0

Trang 14

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

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 Z , thực hiện phép toán Dilation trong A theo B, kí hiệu là và được 2

xác định như sau : = {z | }.

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 , 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à thì ta có thể hiểu như = Ubi.Abi với Abi là những khu vực mà .

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.

Ở 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.

Trang 15

Hình 2.4 Quá trình trích đặc trưng dùng phương pháp PCABướ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.

=

Chỉ số đầu là thành phần của vector, chỉ số sau đó là số thứ tự của ảnh.

15

Trang 16

Bước 2: Tính ảnh trung bình.

= = =

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

= , = , … , =

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 vừa tìm được

Đặt A = ( …) 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 λ ), và vectơ riêng (eigenvector x ) của ma trận hợp phương saiii

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

Trang 17

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.

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.

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 =[] T

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.

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.

17

Ngày đăng: 20/04/2024, 09:34

Tài liệu cùng người dùng

Tài liệu liên quan