1. Trang chủ
  2. » Thể loại khác

NHẬN DẠNG CHỮ SỐ VIẾT TAY SỬ DỤNG KỸ THUẬT HỌC SÂU (DEEP LEARNING) LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

73 371 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 25,7 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nhận dạng ký tự viết tay là một lĩnh vực được quan tâm nghiên cứu và được ứng dụng rộng rãi trong nhiều lĩnh vực như: nhận dạng các chữ số trên phiếu chi ngân hàng, mã số trên bì thư của

Trang 1

Đà Nẵng – Năm 2018

Trang 2

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA

-  -

HUỲNH VĂN NHỨT

NHẬN DẠNG CHỮ SỐ VIẾT TAY SỬ DỤNG

KỸ THUẬT HỌC SÂU (DEEP LEARNING)

Chuyên ngành :Khoa học máy tính

Mã số: 60.48.01.01

LUẬN VĂN THẠC SĨ

Người hướng dẫn khoa học: TS HUỲNH HỮU HƯNG

Đà Nẵng – Năm 2018

Trang 3

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác

Tác giả

Huỳnh Văn Nhứt

Trang 4

MỞ ĐẦU 1

1 Tính cấp thiết của đề tài 1

2 Mục tiêu nghiên cứu 1

3 Đối tượng và phạm vi nghiên cứu 1

4 Phương pháp nghiên cứu 2

5 Ý nghĩa của đề tài 2

6 Bố cục luận văn 2

CHƯƠNG 1 TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ NHẬN DẠNG CHỮ SỐ VIẾT TAY 3

1.1 Tổng quan về nhận dạng chữ số viết tay 3

1.1.1 Giới thiệu chung 3

1.1.2 Những khó khăn trong việc nhận dạng chữ số viết tay 3

1.1.3 Các công trình nghiên cứu trong và ngoài nước 4

1.1.4 Các bước trong quá trình xử lý ảnh 5

1.1.5 Một số khái niệm trong xử lý ảnh 7

1.2 Các phương pháp xử lý ảnh 8

1.2.1 Lọc mịn ảnh 8

1.2.2 Nhị phân ảnh 8

1.2.3 Chỉnh nghiêng 8

1.2.4 Chuẩn kích thước 9

1.2.5 Lấp khoảng trống ảnh 9

1.2.6 Phát hiện biên và làm trơn biên 11

1.2.7 Xác định hướng của điểm biên (Freeman code) 11

1.2.8 Làm trơn đường biên 12

1.3 Các phương pháp nhận dạng chữ số viết tay 14

1.3.1 Phương pháp đối sánh mẫu 14

1.3.2 Phương pháp tiếp cận cấu trúc 14

1.3.3 Phương pháp học máy với SVM (Support vector machine) 15

CHƯƠNG 2 MÔ HÌNH MẠNG NEURAL TÍCH CHẬP 16

2.1 Mạng neural nhân tạo 16

2.1.1 Sơ lược về neural sinh học 16

2.1.2 Mạng Neural nhân tạo 17

2.1.3 Kiến trúc mạng 19

2.1.4 Mạng một tầng 19

Trang 5

2.1.6 Huấn luyện mạng neural 21

2.2 Mạng Neural tích chập (Convolutional Neural Networks – CNNs) 24

2.2.1 Convolution (tích chập) 24

2.2.2 Khái niệm CNNs 25

2.2.3 Cấu trúc mạng neural tích chập 27

2.2.4 Những phương pháp tích chập (convolution) 28

2.2.5 Một số phép tích chập thường sử dụng trong xử lý ảnh 32

CHƯƠNG 3 NHẬN DẠNG CHỮ SỐ VIẾT TAY VỚI MẠNG NƠ RON TÍCH CHẬP 35

3.1 Bài toán nhận dạng 35

3.1.1 Phát biểu bài toán 35

3.1.2 Ảnh đầu vào của bài toán 35

3.2 Mô hình tổng quan 36

3.3 Xây dựng mạng Neural nhận dạng ký tự 37

3.3.1 Xây dựng mạng neural 37

3.3.2 Xử lý dữ liệu (phân tích ảnh) 37

3.4 Xây dựng chương trình thử nghiệm 43

3.4.1 Giới thiệu Python 43

3.4.2 Giới thiệu Tensorflow và cách cài đặt 44

3.4.3 Xây dựng mô hình mạng tích chập 44

3.4.4 Đầu vào và nhãn 47

3.4.5 Lớp Convolution với hàm kích hoạt relu 48

3.4.6 Lớp Pooling 48

3.4.7 Lớp FC 49

3.4.8 Mô hình đầy đủ 50

3.4.9 Huấn luyện và kiểm chứng mô hình 51

3.5 Kết quả thử nghiệm 52

KẾT LUẬN 53

TÀI LIỆU THAM KHẢO 55 QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (bản sao)

Trang 6

NHẬN DẠNG CHỮ SỐ VIẾT TAY

SỬ DỤNG KỸ THUẬT HỌC SÂU (DEEP LEARNING)

Huỳnh Văn Nhứt, học viên cao học khóa 33 Chuyên ngành Khoa học máy tính

Mã số: 60480101 Khóa: 33 Trường Đại học Bách khoa – ĐHĐN

TÓM TẮT

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 Bài toán lớn luôn đặt ra phía trước vì 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

Nhận dạng ký tự viết tay là một lĩnh vực được quan tâm nghiên cứu và được ứng dụng rộng rãi trong nhiều lĩnh vực như: nhận dạng các chữ số trên phiếu chi ngân hàng, mã số trên

bì thư của dịch vụ bưu chính, …

Luận văn đã tập trung nghiên cứu các vấn đề như sau:

- Xử lý và phân tích được được các ký tự ảnh đầu vào

- Chuyển đổi ký tự sang ma trận điểm ảnh và ma trận Kernel

- Tiến hành nhận dạng ký tự bằng thuật toán mạng neural tích chập

Từ khóa : Nhận dạng, học sâu, chữ số viết tay, mạng nơ ron, tích chập

The thesis focuses on the following issues:

- Handling and analyzes the input image character

- Convert characters into pixel matrix and matrix Kernel

- Conduct a character recognition algorithm using neural network

convolution

Key words : recognition, deep learning, handwriting, neural network, convolution

Trang 7

Số hiệu

Trang 8

hình Tên hình Trang

2.13 Ma trận điểm ảnh (ảnh gốc) và ma trận kernel (đóng vai

3.7 Lưu đồ xác định hình chữ nhật nhỏ nhất ngoại tiếp ký số

Trang 9

MỞ ĐẦU

1 Tính cấp thiết của đề tài

Nhận dạng là lĩnh vực được các nhà khoa học rất quan tâm để giải quyết các yêu cầu trong cuộc sống hiện nay, có nhiều lĩnh vực nhận dạng như nhận dạng tín hiệu, nhận dạng tiếng nói hay nhận dạng ảnh 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 vấn đề thách thức đối với những nhà nghiên cứu

Chữ số viết tay xuất hiện ở hầu hết trong các công việc của các cơ quan, nhà máy, xí nghiệp, trường học Trong các trường phổ thông hiện nay, 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 bảng điểm viết tay của giáo viên bộ mô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

Để nhận dạng chữ số viết tay, có nhiều phương pháp và kỹ thuật khác nhau như: logic mờ, giải thuật di truyền, mô hình xác xuất thống kê, mô hình mạng nơ ron Đã có nhiều công trình nghiên cứu về nhận dạng chữ số viết tay đạt hiệu quả cao, tuy nhiên, các ứng dụng vẫn chưa đáp ứng hoàn toàn các yêu cầu của người dùng

Hiện nay với sự phát triển không ngừng của máy tính, phương pháp Deep Learning ra đời đã đáp ứng cơ bản trong việc nhận dạng và xử lý ảnh Deep Learning

là một thuật toán dựa trên một số ý tưởng từ não bộ tới việc tiếp thu nhiều tầng biểu đạt, cả cụ thể lẫn trừu tượng, qua đó làm rõ nghĩa của các loại dữ liệu Deep Learning được ứng dụng trong nhận diện hình ảnh, nhận diện giọng nói, xử lý ngôn ngữ tự nhiên Hiện nay rất nhiều các bài toán nhận dạng sử dụng Deep Learning để giải quyết

do Deep Learning có thể giải quyết các bài toán với số lượng cũng như kích thước đầu vào lớn với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống

Với những lý do trên, tôi chọn nghiên cứu đề tài :”Nhận dạng chữ số viết tay sử

dụng kỹ thuật học sâu (Deep learning)”

2 Mục tiêu nghiên cứu

Mục tiêu chính của đề tài này là sử dụng kỹ thuật Deep learning để xây dựng chương trình nhận dạng chữ số viết tay

3 Đối tƣợng và phạm vi nghiên cứu

Trang 10

- Kỹ thuật Deep Learning

3.2 Phạm vi nghiên cứu

- Nghiên cứu kỹ thuật xử lý ảnh

- Ảnh quét chữ số viết tay

- Nghiên cứu mạng Nơ ron nhận dạng chữ viết tay

- Phương pháp Deep Learning

- Các tài liệu liên quan tới lập trình

4.2 Phương pháp thực nghiệm

- Xây dựng chương trình thử nghiệm

- Kiểm thử tính hiệu quả của chương trình với các chữ số khác nhau

5 Ý nghĩa của đề tài

Về khoa học: Đề tài sẽ mang ý nghĩa cung cấp về mặt lý thuyết để làm rõ các phương pháp và kỹ thuật nhận dạng chữ số viết tay

Về thực tiễn: Góp phần hỗ trợ cho việc nhập văn bản với dữ liệu số

6 Bố cục luận văn

Nội dung của luận văn được chia thành các phần như sau:

Mở đầu

Chương 1: Tổng quan về xử lý ảnh và nhận dạng chữ số viết tay

Chương 2: Mô hình mạng Nơ ron tích chập

Chương 3: Nhận dạng chữ viết tay với mô hình mạng Nơ ron tích chập

Kết luận và hướng phát triển

Tài liệu tham khảo

Trang 11

CHƯƠNG 1 TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ NHẬN DẠNG CHỮ SỐ VIẾT TAY

1.1 Tổng quan về nhận dạng chữ số viết tay

1.1.1 Giới thiệu chung

Hiện nay, vấn đề nhận dạng chữ số viết tay rất cần thiết, có nhiều ứng dụng rộng rãi trong đời sống xã hội như nhận dạng bảng điểm, nhận dạng bảng số xe, nhận dạng phiếu hàng hóa,… 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 Mỗi người có một cách viết chữ số khác nhau, chúng ta không thể xác định cách duy nhất để nhận dạng chữ

số Do vậy, xây dựng hệ thống nhận dạng chữ số viết tay một cách đáng tin cậy để có

có thể nhận dạng bất cứ ký tự số nào là điều không dễ dàng

Các hệ thống nhận dạng trước đây như (LeCun et al., 1998), (Simard et al., 2003), (Kégl & BusaFekete, 2009) đều sử dụng các đặc trưng cơ bản từ ảnh ký tự như đường biên, cạnh, độ dày, giá trị mức xám, haar-like, với các xử lý đặc thù như lấy mẫu, dao động các điểm ảnh, biến đổi ảnh, thêm dữ liệu ảo Sau đó hệ thống nhận dạng huấn luyện các mô hình học tự động như k láng giềng (kNN), mạng nơ-ron, máy véc tơ hỗ trợ (SVM), boosting Các hệ thống này cơ bản đáp ứng yêu cầu của người sử dụng, tuy nhiên vẫn chưa thỏa mãn một cách triệt để yêu cầu đề ra Với mong muốn tìm ra giải pháp để nhận dạng chữ số viết tay hiệu quả, chúng tôi nghiên cứu kỹ thuật học sâu (Deep learning), đây là phương pháp có thể giải quyết các bài toán với số lượng lớn, kích thước đầu vào lớn với hiệu năng cũng như độ chính xác vượt trội so với các phương pháp phân lớp truyền thống

1.1.2 Những khó khăn trong việc nhận dạng chữ số viết tay

Chữ viết tay được viết bởi những người khác nhau, ở những trạng thái khác nhau nên đôi khi một số chữ viết bị nhòe hoặc mờ, bề mặt ký tự có thể bị mờ hoặc che khuất bởi một đối tượng khác, dẫn đến đọc ký tự sai

Hình 1.1 Minh họa ảnh ký tự bị nhòe

Trang 12

Trong một số trường hợp, người viết có thể viết các chữ số dính liền nhau dẫn đến việc phân tích ký tự chưa được chính xác, dẫn đến đọc ký tự sai

Hình 1.2 Minh họa số viết sát, dính liền nhau

Một số chữ viết nằm giao nhau, cắt nhau hoặc chữ số này chứa trong chữ số kia gây khó khăn trong việc nhận dạng, dẫn đến đọc ký tự sai

Hình 1.3 Ảnh minh họa ký tự số nằm giao nhau hoặc cắt nhau

- Giới hạn về cơ sở dữ liệu ảnh : Trong phạm vi của đề tài này, chúng tôi chỉ giới

hạn nhận dạng mười ký tự số viết tay từ không đến chín

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

1.1.3 Các công trình nghiên cứu trong và ngoài nước

1.1.3.1 Công trình trong nước

Nhận dạng văn bản viết tay nói chung và nhận dạng chữ số viết tay nói riêng là một trong những lĩnh vực khó đối với các nhà khoa học, đã có nhiều công trình nghiên cứu về nhận dạng chữ số viết tay, các công trình này chưa thật sự mang lại kết quả cao, ở Việt Nam trong những năm gần đây có rất nhiều những nhóm nghiên cứu về nhận dạng chữ viết tay sử dụng các mô hình phổ biến như: SVM (Support Vector Machine), HMM (Hidden Markov Model), đường cong tham số B-SPLINE, mạng Neuron,… Nhưng nhìn chung chất lượng nhận dạng của các mô hình này chưa đạt kết quả như mong muốn vì chữ viết tay còn nhiều các yếu tố tác động đến như: độ cao, độ nghiêng, các nét liền,… đều ảnh hưởng rất nhiều đến quá trình nhận dạng Hiện tại, chúng ta mới chỉ có được những sản phẩm thử nghiệm như hệ thống nhận dạng chữ số

và chữ cái viết tay rời rạc trên các phiếu xuất nhập cảnh của nhóm nghiên cứu ở Đại học quốc gia thành phố Hồ Chí Minh; Ngoài ra, có một số công trình của các tác giả như công trình “Nhận dạng bảng điểm viết tay với đặc trưng GIS” của tác giả Lê Thanh Trúc; công trình “Áp dụng một số chiến lược SVM đa lớp cho bài toàn nhận dạng chữ viết tay hạn chế” của tác giả Phạm Anh Phương

Trang 13

1.1.3.2 Công trình nước ngoài

Ngày nay, với sự phát triển của các thiết bị cầm tay, đặc biệt là các dòng điện thoại thông minh nên việc nhận dạng chữ số viết tay đã nhận được sự quan tâm đáng

kể Nhận dạng chữ số viết tay được thực hiện qua hai hình thức là nhận dạng online và nhận dạng offline Với nhận dạng online, máy tính sẽ nhận dạng các chữ số được viết lên màn hình ngay sau khi nó được viết Đối với những hệ nhận dạng này, máy tính sẽ lưu lại các thông tin về nét chữ số như thứ tự nét viết, hướng và tốc độ của nét viết trong khi nó đang được viết ra Đây chính là cơ sở để máy tính nhận dạng được chữ số,

do đó việc nhận dạng không gặp quá nhiều khó khăn Hệ thống nhận dạng chữ số viết tay trực tuyến trên một trạm làm việc của IBM do nhóm nghiên cứu gồm H.S.M.Beigi, C.C.Tapert, M.Ukeison và C.G.Wolf ở phòng thực hành Watson IBM cài đặt là một trong những sản phẩm nhận dạng chữ số viết tay online tiêu biểu Tuy nhiên, do chưa

có nhiều ứng dụng thực tế nên nhận dạng chữ số viết tay trực tuyến chưa được biết đến nhiều và khi nhắc đến nhận dạng chữ số viết tay chúng ta thường hiểu hình thức nhận dạng ở đây là offline Các kết quả nhận dạng chữ số viết tay offline hiện này còn rất hạn chế

Khi giải quyết bài toán nhận dạng chữ số viết tay đều buộc phải giới hạn trong một phạm vi nào đó với những tiêu chuẩn cụ thể cho mẫu chữ nhận dạng Chính vì vậy, các kết quả thu được cũng chỉ được áp dụng một cách hạn chế ở lĩnh vực hẹp trong một bài toán cụ thể nào đó như công trình nhận dạng chữ viết Tiếng Hoa của tác giả Jun Tan, Jian Huang Lai, Wei-Shi Zheng; công trình nhận dạng chữ ký số của tác giả Yip, W.K., Goh, A., Ngo, D.C.L., Teoh, A.B.J

1.1.4 Các bước trong quá trình xử lý ảnh

Hình 1.4 Sơ đồ tổng quát các giai đoạn xử lý ảnh cơ bản

Đối

tượng

Thu nhận ảnh

Tiền

xử

-Cải thiện ảnh -Phục hồi ảnh -Xử lý hình thái

Tách đối tượng

Mô tả/

Biểu diễn

Đánh giá

-Phân đoạn ảnh

Trích chọn đặc trưng

-Nhận dạng -Ra quyết định -Phân cụm

Trang 14

1.1.4.1 Thu nhận ảnh

Các thiết bị thu nhận ảnh có hai loại chính ứng với hai loại ảnh thông dụng Raster, Vector và có thể cho ảnh đen trắng hoặc ảnh màu Các thiết bị thu nhận ảnh Raster thông thường là camera, scanner Còn các thiết bị thu nhận ảnh Vector thông thường là sensor hoặc bàn số hoá digitalizer hoặc được chuyển đổi từ ảnh Raster

1.1.4.2 Tiền xử lý

Sau bộ thu nhận, ảnh chữ số viết tay có thể nhiễu, độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn Gồm các bước chính sau: Tăng cường ảnh (hay còn gọi là cải thiện ảnh): là quá trình biến đổi 1 ảnh để có kết quả phù hợp với mục tiêu xác định Mục tiêu này có ảnh hưởng lớn đến việc lựa chọn cách thức thực hiện các bước xử lý Đây là một nhánh nghiên cứu lớn với nhiều ứng dụng trong lĩnh vực xử lý ảnh, thông thường chia làm hai dạng là: xử lý trên miền không gian và miền tần số

Phục hồi ảnh: là cả thiện ảnh theo một hướng xác định nhằm đưa ảnh về nguyên trạng ban đầu Mặc dù cải thiện ảnh và phục hồi ảnh có nét tương đồng nhưng trong phần lớn trường hợp, cải thiện ảnh mang tính chủ quan nhiều hơn, trong khi phục hồi ảnh lại là quá trình mang tính khách quan Quá trình phục hồi ảnh cố gắn tái tạo ảnh đã

bị giảm chất lượng dựa trên việc xem xét cách thức suy biến ảnh Do đó các kỹ thuật phục hồi ảnh hướng đến mục tiêu mô hình hóa sự suy biến và áp dụng quá trình ngược lại để khôi phục ảnh ban đầu Điều này thường dẫn đến việc xây dựng tiêu chí về chất lượng để đánh giá mức độ tối ưu của kết quả thu được

Xử lý hình thái: là thao tác toán học dùng để trích xuất các thành phần ảnh nhằm biểu diễn và mô tả hình dạng các vùng bên trong ảnh, chẳng hạn như biên, khung xương hay đường bao lồi Bên cạnh đó kỹ thuật xử lý hình thái học cũng được sử dụng trong quá trình tiền xử lý và hậu xử lý như lọc, xén hay làm mảnh đối tượng

Sau khi ảnh ký tự đã qua các bước tiền xử lý sẽ cho ảnh như sau:

Hình 1.5 Minh họa ảnh sau tiền xử lý

Ảnh ban đầu Ảnh đã qua tiền xử lý

Trang 15

1.1.4.3 Tách đối tượng

Tách đối tượng (hay phân vùng ảnh) là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh

1.1.4.4 Mô tả/ biểu diễn

Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng cộng với mã liên kết với các vùng lận cận Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho

xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được

Ảnh sau khi số hoá sẽ được lưu vào bộ nhớ, hoặc chuyển sang các khâu tiếp theo

để phân tích Nếu lưu trữ ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớ cực lớn và không hiệu quả theo quan điểm ứng dụng và công nghệ Thông thường, các ảnh thô đó được biểu diễn lại theo các đặc điểm của ảnh được gọi là các đặc trưng ảnh

1.1.5 Một số khái niệm trong xử lý ảnh

1.1.5.1 Điểm ảnh

Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (x, y) với độ xám hoặc

màu nhất định Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật Mỗi phần tử trong ma trận được gọi là một phần tử ảnh

1.1.5.2 Độ phân giải ảnh

Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh

số được hiển thị Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh Việc lựa chọn khoảng cách thích hợp

tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y

trong không gian hai chiều

Trang 16

1.1.5.3 Mức xám của ảnh

Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh và độ

xám của nó Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thường dùng trong xử lý ảnh

Định nghĩa: Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá

trị số tại điểm đó

Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức

phổ dụng Lý do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mức xám dùng 1 byte biểu diễn: 28=256 mức, tức là từ 0 đến 255)

1.2 Các phương pháp xử lý ảnh

1.2.1 Lọc mịn ảnh

Lọc mịn ảnh là một dạng lọc thông thấp, là giá trị của một điểm ảnh, là trung bình trọng số của các điểm ảnh lân cận, hay giá trị điểm ảnh là kết quả của các điểm ảnh lân cận với một nhân Nhân có kích thước tuỳ ý 3x3, 5x5, kích thước nhân càng

lớn thì càng nhiều điểm lân cận ảnh hưởng vào điểm ảnh kết quả

Lọc mịn ảnh có tác dụng hạn chế ảnh bị nhiểu

1.2.2 Nhị phân ảnh

Là quá trình biến đổi một ảnh xám thành ảnh nhị phân ảnh nhị ảnh là ảnh mà giá trị của các điểm ảnh chỉ được biểu diễn bằng một trong hai giá trị là 0 (Đen) và 255 (Trắng) (tương ứng với 0 và 1)

Vì giá trị của điểm ảnh được biểu diễn bởi 2 giá trị là 0 hoặc 1, nên một điểm ảnh được biểu diễn bằng 1 bit nên ảnh có kích thước rất nhỏ

Gọi giá trị cường độ sáng tại một điểm ảnh là I(x,y)

INP(x,y) là cường độ sáng của điểm ảnh trên ảnh nhị phân

(Với 0 < x < image.width) và (0 < y < image.height)

Để biến đổi ảnh xám thành ảnh nhị phân Ta so sánh giá trị cường độ sáng của điểm ảnh với một ngưỡng nhị phân T

Nếu I(x,y) > T thì INP(x, y) = 0 (0)

Nếu I(x,y) > T thì INP(x, y) = 255 (1)

1.2.3 Chỉnh nghiêng

Chỉnh nghiêng ảnh là một phép biến đổi tuyến tính của toạ độ điểm ảnh Trước hết ta phải xác định góc nghiêng tổng thể của đối tượng và ta dịch chuyển điểm ảnh đối tượng theo phương ngang tuỳ theo giá trị góc nghiêng tổng thể này và giá trị y của điểm này

Trang 17

Hình 1.6 Xác định độ nghiêng của ảnh

Chuyển gốc toạ độ về trọng tâm ảnh như hình b

Góc nghiêng của kí tự được qui ước tính là góc từ trục tung, hướng về bên trái có giá trị dương, hướng về bên phải có giá trị âm

Góc nghiêng tổng thể kí tự là hướng trung bình của các điểm ảnh đối tượng có giá trị góc khoảng –450

đến 450 theo quy ước tính góc trên Các điểm ảnh đối tượng có hướng ngồi khoảng –450

Với (x, y) là toạ độ điểm ảnh sau khi phóng và sx ,sy là tỷ lệ phóng theo trục x và

y tương ứng, fx(x,y) là giá trị điểm ảnh kết quả ứng với giá trị toạ độ (x, y)

Chú ý: Sau khi phóng ảnh, ảnh có thể bị rời rạc, răng cưa biên Để khắc phục tình trạng này, ta thực hiện một số xử lý bằng phép đóng morphology

Trang 18

ta sử dụng 2 thành phần cấu trúc không đối xứng và thực hiện phép đóng 2 lần trên 2 thành phần cấu trúc này, vì khi thực hiện phép giãn thì chỉ cần giãn về 1 phía:

Trang 19

1.2.6 Phát hiện biên và làm trơn biên

Ta có giải thuật dò tìm biên như sau:

Bước 1: Quét ảnh đến khi gặp điểm ảnh đen Gọi nó là pixel 1

Bước 2: Lặp

- Nếu ”điểm ảnh hiện thời là đen“ thì “dò ngược”

- Ngược lại “sang phải” đến khi “gặp pixel 1”

Hình 1.10 Minh họa dò biên

1.2.7 Xác định hướng của điểm biên (Freeman code)

Các hướng được quy ước như sau:

Hình 1.11 Hướng quy ước mã hóa

0 1 0

1 1 1

0 1 0

Trang 20

Với hướng quy ước trên, đường biên được mã hóa như sau:

Hình 1.12 Đường biên đã được mã hóa

1.2.8 Làm trơn đường biên

Làm trơn đường biên là duyệt theo đường biên, nếu hai điểm liên tiếp trên đường biên có hiệu số hướng lớn hơn 1 thì có thể hiệu chỉnh để có đường biên mà hai điểm liên tiếp có hiệu số hướng bằng 1

Theo mã hướng Freeman, hiệu số hướng của 2 điểm liên tiếp nhau trên đường biên được định nghĩa :

Gọi ci là mã hướng tại điểm biên đang xét pi , ci+1 là mã hướng của điểm kế tiếp trên đường biên pi+1

Đặt d=ci+1-ci và Dabs=|d| nếu |d|4 và dabs=8-|d| nếu |d|>4

Ta có các trường hợp sau:

- dabs1 : Điểm biên trơn

- dabs=2 và ci chẵn, ci+1 chẵn : bỏ pi+1 và thay hướng pi như sau:

Trang 21

- dabs=2 và ci lẻ , ci+1 lẻ : Bỏ pi+1 và thay hướng pi như hình sau:

- dabs=3, ci lẻ, ci+1 chẵn

Hình 1.16 Dabs=3, ci lẻ, ci+1 chẵn

Trang 22

1.3 Các phương pháp nhận dạng chữ số viết tay

Có nhiều phương pháp trong các hệ thống nhận dạng chữ số viết tay, có thể kể

đến như : đối sánh mẫu, thống kê, cấu trúc, mạng nơ-ron, SVM,…

1.3.1 Phương pháp đối sánh mẫu

Đây là phương pháp tương đối đơn giản dựa trên việc so sánh các nguyên mẫu với nhau để nhận dạng chữ số Toán tử đối sánh xác định mức độ giống nhau giữa hai véc tơ (nhóm các điểm, hình dạng, độ cong…) các kỹ thuật đối sánh có thể tiếp cận

theo ba hướng:

Đối sánh trực triếp: Ảnh chứa chữ số đầu ở dạng xám hoặc nhị phân được so

sánh trực tiếp mới tập mẫu chuẩn dựa trên một số đặc trưng tương đồng nào đó

Các mẫu biến dạng và đối sánh mềm: Ý tưởng cơ bản là đối sánh một cách tối ưu mẫu chưa biết với tất cả các mẫu có thể mà các mẫu này có thể kéo giãn ra hoặc co lại Chỉ một không gian đặc trưng được thành lập, các véc tơ chưa biết được đối sánh bằng

cách sử dụng quy hoạch động và một hàm biến dạng

Đối sánh giảm nhẹ: Kỹ thuật này sử dụng hình dáng đặc trưng cơ bản của ảnh chứa chữ số, trên cơ sở một số vùng đối sánh đã được đánh giá tốt, các phần tử của

ảnh được so sánh với các vùng đối sánh này

Kỹ thuật đối sánh mẫu chỉ áp dụng tốt đối với nhận dạng chữ số in, còn đối với

chữ số viết tay thì các kỹ thuật này tỏ ra kém hiệu quả

1.3.2 Phương pháp tiếp cận cấu trúc

Phương pháp này dựa vào việc mô tả đối tượng nhờ một số khái niệm biểu diễn đối tượng cơ sở trong ngôn ngữ tự nhiên Đặc trưng của phương pháp phân tích cấu trúc là nhìn nhận mỗi mẫu chữ như được cấu thành từ những đối tượng hình học, quan tâm tới các nét, hướng và đặc tả những đối tượng cũng như quan hệ giữa chúng Các phương pháp cấu trúc áp dụng cho các bài toán nhận dạng chữ số được phát triển theo

hai hướng sau:

Phương pháp ngữ pháp : Vào khoảng giữa thập niên 1960, các nhà khoa học bắt đầu nghiên cứu các luật của ngôn ngữ học để phân tích tiếng nói và chữ viết Sau đó các luật đa dạng của chính tả, từ vựng và ngôn ngữ học đã được áp dụng cho các chiến

lượt nhận dạng

Phương pháp đồ thị : Các đơn vị chữ số viết tay được mô tả bởi các cây hoặc đồ thị Các dạng nguyên thủy của ký tự (các nét) được lựa chọn bởi một hướng tiếp cận cấu trúc Đối với mỗi lớp, một đồ thị hoặc cây được thành lập trong giai đoạn huấn luyện để mô tả các nét, các ký tự hoặc các từ Giai đoạn nhận dạng gán một đồ thị chưa viết vào một trong các lớp bằng cách sử dụng một độ đo để so sánh các đặc điểm

giống nhau giữa các đồ thị

Trang 23

1.3.3 Phương pháp học máy với SVM (Support vector machine)

1.3.3.2 Ý tưởng

Cho trước một tập huấn luyện, được biểu diễn trong không gian vector, trong đó mỗi tài liệu là một điểm, phương pháp này tìm ra một lớp siêu phẳng f quyết định tốt nhất có thể chia các điểm trên không gian này thành ra hai lớp riêng biệt bởi khoảng cách của điểm dữ liệu gần nhất

Ý tưởng của phương pháp SVM là ánh xạ (tuyến tính hoặc phi tuyến) dữ liệu vào không gian các vector đặc trưng (space of feature vectors) mà ở đó một siêu phẳng tối

ưu được tìm ra để tách dữ liệu thuộc hai lớp khác nhau

Mục đích của phương pháp SVM là tìm được khoảng cách biên lớn nhất

Trang 24

CHƯƠNG 2

MÔ HÌNH MẠNG NEURAL TÍCH CHẬP

Một trong những mô hình Deep Learning tiên tiến giúp chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao đó là Convolutional Neural Network (CNNs – Mạng nơ-ron tích chập) Trong chương này, chúng tôi sẽ trình bày về Convolution (tích chập) cũng như ý tưởng của mô hình CNNs trong nhận dạng chữ số viết tay

2.1 Mạng neural nhân tạo

2.1.1 Sơ lược về neural sinh học

Qua quá trình nghiên cứu về bộ não, người ta thấy rằng: Bộ não con người bao gồm khoảng 1011 neuron tham gia vào khoảng 1015 kết nối trên các đường truyền Mỗi đường truyền này dài khoảng hơn một mét Các neuron có nhiều đặc điểm chung với các tế bào khác trong cơ thể, ngoài ra chúng còn có những khả năng mà các tế bào khác không có được, đó là khả năng nhận, xử lý và truyền các tín hiệu điện hóa trên các đường mòn neuron, các con đường này tạo nên hệ thống giao tiếp của bộ não Những thành phần chính trong cấu trúc của một neural trong bộ não con người

Hình 2.1 Mô hình neural sinh học

Trong đó :

-Các Soma là thân của neural

-Các dendrites là các dây mảnh, dài, gắn liền với soma, chúng truyền dữ liệu (dưới dạng xung điện thế) đến cho soma xử lý Bên trong soma các dữ liệu đó được tổng hợp lại Có thể xem gần đúng sự tổng hợp ấy như là một phép lấy tổng tất cả các

dữ liệu mà neural nhận được

Trang 25

Input Xi Tổng  So sánh với ngưỡng

Weight Wi

Output

-Một loại dây dẫn tín hiệu khác cũng gắn với soma là các axon Khác với dendrites, axons có khả năng phát các xung điện thế, chúng là các dây dẫn tín hiệu từ Neural đi các nơi khác Chỉ khi nào điện thế trong soma vượt quá một giá trị ngưỡng nào đó (threshold) thì axon mới phát một xung điện thế, còn nếu không thì nó ở trạng thái nghỉ

-Axon nối với các dendrites của các neural khác thông qua những mối nối đặc biệt gọi là synapse Khi điện thế của synapse tăng lên do các xung phát ra từ axon thì synapse sẽ nhả ra một số chất hoá học (neurotransmitters); các chất này mở "cửa" trên dendrites để cho các ions truyền qua Chính dòng ions này làm thay đổi điện thế trên dendrites, tạo ra các xung dữ liệu lan truyền tới các Neural khác

Có thể tóm tắt hoạt động của một Neural như sau: Neural lấy tổng tất cả các điện thế vào mà nó nhận được và phát ra một xung điện thế nếu tổng ấy lớn hơn một ngưỡng nào đó Các Neural nối với nhau ở các synapses Synapse được gọi là mạnh khi nó cho phép truyền dẫn dễ dàng tín hiệu qua các Neural khác Ngược lại, một synapse yếu sẽ truyền dẫn tín hiệu rất khó khăn

Các synapses đóng vai trò rất quan trọng trong sự học tập Khi chúng ta học tập thì hoạt động của các synapses được tăng cường, tạo nên nhiều liên kết mạnh giữa các Neural Có thể nói rằng người nào học càng giỏi thì càng có nhiều synapses và các synapses ấy càng mạnh mẽ, hay nói cách khác, thì liên kết giữa các Neural càng nhiều, càng nhạy bén

2.1.2 Mạng Neural nhân tạo

Mạng Nơron nhân tạo được thiết kế để mô hình một số tính chất của mạng nơron sinh học Để mô phỏng các tế bào thần kinh và các khớp nối thần kinh của bộ não con người, trong mạng nơron nhân tạo cũng có các thành phần có vai trò tương tự các thành phần trong nơron thần kinh Hai thành phần chính cấu tạo nên mạng nơron nhân tạo là các nơron và các synapse (mô phỏng các khớp nối thần kinh)

Neural nhân tạo là một đơn vị tính toán có nhiều đầu vào và một đầu ra

Hình 2.2 Mô hình Neural nhân tạo ở mức đơn giản

Trang 26

Hoạt động của Neural:

Giả sử có N inputs, Neural sẽ có N Weights (trọng số) tương ứng với N đường truyền inputs Neural sẽ lấy tổng có trọng số của tất cả các inputs Nói như thế có nghĩa là Neural sẽ lấy input thứ nhất, nhân với weight trên đường input thứ nhất, lấy input thứ hai nhân với weight của đường input thứ hai v.v , rồi lấy tổng của tất cả các kết quả thu được Đường truyền nào có weight càng lớn thì tín hiệu truyền qua đó càng lớn, như vậy có thể xem weight là đại lượng tương đương với synapse trong Neural sinh học Có thể viết kết quả lấy tổng của Neural như sau:

Kết quả này sẽ được so sánh với threshold t của Neural, nếu nó lớn hơn t thì Neural cho output là 1, còn nếu nhỏ hơn thì output là 0 Ngoài ra ta cũng có thể trừ tổng nói trên cho t, rồi so sánh kết quả thu được với 0, nếu kết quả là dương thì Neural cho ouput bằng 1, nếu kết quả âm thì output là 0 Dưới dạng toán học ta có thể viết output của Neural như sau:

Trong đó f là hàm Heaviside:

Hình 2.3 Hàm Heaviside

f được gọi là threshold function hay transfer function của Neural, còn giá trị (-t) còn được gọi là bias hay offset của Neural

Nếu chúng ta đưa thêm một input nữa vào, input thứ 0, có giá trị luôn luôn bằng

1 và weight luôn luôn bằng bias (-t) thì output của Neural còn có thể viết dưới dạng:

Trang 27

2.1.3 Kiến trúc mạng

Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn gọi là Neural) tựa như Neural thần kinh của não người, hoạt động song song và được nối với nhau bởi các liên kết Neural Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt hoặc ức chế giữa các Neural

Có thể xem các trọng số là phương tiện để lưu trữ thông tin dài hạn trong mạng Neural và nhiệm vụ của quá trình huấn luyện của mạng là cập nhật các trọng số khi có thêm thông tin về mẫu học Hay nói một cách khác, các trọng số đều được điều chỉnh sao cho dáng điệu vào ra của mạng sẽ mô phỏng hoàn toàn phù hợp với môi trường đang xem xét

2.1.4 Mạng một tầng

Mạng một tầng với S Neural được minh họa trong hình 2.4 Chú ý rằng với mỗi một đầu vào trong số R đầu vào sẽ được nối với từng Neural và ma trận trọng số bây giờ sẽ có S hàng

Một tầng bao gồm ma trận trọng số, các bộ cộng, vector ngưỡng b, hàm chuyển

và vector đầu ra a

Mỗi phần tử của vector đầu vào p được nối với từng Neural thông qua ma trận trọng số W Mỗi Neural có một ngưỡng b i, một bộ cộng, một hàm chuyển f và một đầu

ra a i cùng với nhau, các đầu ra tạo thành một vector đầu ra a Thông thường thì số

lượng đầu vào của tầng khác với số lượng Neural.(R#S)

Các Neural trong cùng một tầng có hàm chuyển là không giống nhau, ta có thể định nghĩa các Neural trong một tầng có hàm chuyển khác nhau bằng cách kết hợp song song hai mạng Neural giống ở trên Cả hai sẽ có đầu vào giống nhau và mỗi mạng sản xuất ra vài đầu ra

Trang 28

Ma trận trọng số cho các phần tử trong vector đầu vào W:

Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp, ta gọi là tổng trọng số và chuyển kết quả cho các nút trong lớp ẩn Gọi là “ẩn” vì các nút trong lớp này chỉ liên

Trang 29

lạc với các nút trong lớp nhập và lớp xuất

Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp ẩn Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc

để học các trọng số Có 3 kiểu học chính, mỗi kiểu học tương ứng với một nhiệm vụ học trừu tượng Đó là học có giám sát (có mẫu), học không giám sát và học tăng cường Thông thường loại kiến trúc mạng nào cũng có thể dùng được cho các nhiệm

vụ

2.1.6.2 Học có giám sát

Một thành phần không thể thiếu của phương pháp này là sự có mặt của một

“người thầy” (ở bên ngoài hệ thống) “Người thầy” này có kiến thức về môi trường thể hiện qua một tập hợp các cặp đầu vào - đầu ra đã được biết trước Hệ thống học (ở đây

là mạng Neural) sẽ phải tìm cách thay đổi các tham số bên trong của mình (các trọng

số và các ngưỡng) để tạo nên một ánh xạ có khả năng ánh xạ các đầu vào thành các

Trang 30

đầu ra mong muốn Sự thay đổi này được tiến hành nhờ việc so sánh giữa đầu ra thực

sự và đầu ra mong muốn

2.1.6.3 Học không giám sát

Trong học không có giám sát, ta được cho trước một số dữ liệu x và hàm chi phí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu x và đầu ra của mạng, f – hàm chi phí được quyết định bởi phát biểu của bài toán Phần lớn các ứng dụng nằm trong vùng của các bài toán ước lượng như mô hình hóa thống kê, nén, lọc, phân cụm

2.1.6.4 Học tăng cường

Dữ liệu x thường không được tạo trước mà được tạo ra trong quá trình một agent tương tác với môi trường Tại mỗi thời điểm t, agent thực hiện hành động yt và môi trường tạo một quan sát xt với một chi phí tức thời Ct, theo một quy trình động nào đó (thường là không được biết) Mục tiêu là một sách lược lựa chọn hành động để cực tiểu hóa một chi phí dài hạn nào đó, nghĩa là chi phí tích lũy mong đợi Quy trình hoạt động của môi trường và chi phí dài hạn cho mỗi sách lược thường không được biết, nhưng có thể ước lượng được Mạng Neural nhân tạo thường được dùng trong học tăng cường như một phần của thuật toán toàn cục Các bài toán thường được giải quyết bằng học tăng cường là các bài toán điều khiển, trò chơi và các nhiệm vụ quyết định tuần tự (sequential decision making) khác

Hãy bắt đầu bằng cách cho các weights những giá trị ngẫu nhiên, lúc này Neural chưa biết gì hết Bây giờ hãy input chữ A Neural sẽ lấy tổng có trọng số của các inputs và so sánh kết quả với 0 Nếu kết quả dương thì output là 1, âm thì output là 0 Khả năng Neural đoán đúng là 50%, vì các weights đang có giá trị hoàn toàn ngẫu nhiên Nếu Neural đoán đúng thì chúng ta không cần làm gì cả, nhưng khi Neural đoán sai (output bằng 0), thì chúng ta phải tăng các weights của các inputs đang hoạt động (các inputs khác không) lên, sao cho lần tới tổng có trọng số sẽ vượt quá threshold và tạo nên output là 1

Ngược lại, khi đưa chữ B vào và Neural đoán sai (output bằng 1), thì ta phải giảm các weights của các inputs đang hoạt động xuống, sao cho lần tới tổng có trọng

số sẽ nhỏ hơn threshold và buộc Neural phải cho output bằng 0

Như vậy, khi dạy chữ B thành công rồi thì Neural vẫn còn lưu giữ những gì đã học với chữ A trước đó, vì khi input là các chữ khác nhau thì nhóm các đường inputs đang hoạt động cũng khác nhau hoặc là không hoàn toàn trùng nhau Chúng ta chỉ biến đổi weights của các inputs đang hoạt động thôi, chúng ta chỉ việc lập đi lập lại quá

trình dạy như trên cho tới khi Neural “học thuộc bài” mới thôi

Trang 31

2.1.6.5 Thuật toán huấn luyện mạng

Thuật Toán Lan Truyền Ngược Back Propagation

Đây là phương pháp thông dụng nhất để huấn luyện cho các mạng Neural truyền thẳng nhiều lớp

Tiêu chuẩn huấn luyện: Làm cho sai số đầu ra càng nhỏ càng tốt

Triết lý của phương pháp: Dựa trên đầu ra để điều chỉnh trọng số của lớp ra, sau

đó dựa trên tính toán của lớp ra để điều chỉnh trọng số của lớp ẩn

Huấn luyện mạng Neural nhiều lớp sử dụng thuật toán Lan truyền ngược gồm hai quá trình:

1 Quá trình truyền tuyến tính:

- Dữ liệu từ lớp nhập qua lớp ẩn và đến lớp xuất để Thay đổi giá trị của trọng số liên kết W của các Neural trong mạng biểu diễn được dữ liệu học

- Tìm ra sự khác nhau giữa giá trị thật hàm mẫu mà mạng tính được và kết quả dự đoán của mạng gọi là lỗi (học có giám sát)

2 Quá trình truyền ngược: Giá trị lỗi sẽ được truyền ngược lại sao cho quá trình huyến luyện (học) sẽ tìm ra trọng số Wi để lỗi nhỏ nhất

Những hạn chế của phương pháp lan truyền ngược:

Ngoài những thành công của giải thuật học lan truyền ngược, vẫn còn có một số khía cạnh làm cho giải thuật trở nên chưa được bảo đảm là mọi lúc đều tốt Khó khăn chủ yếu là ở quá trình huấn luyện lâu Có thể do nhịp độ học và động lực không tối ưu

Sự sai sót trong việc huấn luyện nói chung xuất hiện từ hai nguồn: mạng liệt và những cực tiểu địa phương

Mạng liệt: Xảy ra khi những trọng số được điều chỉnh tới những giá trị rất lớn Tổng đầu vào của một đơn vị ẩn hoặc đơn vị đầu ra có thể bởi vậy mà đạt giá trị rất cao (hoặc dương hoặc âm), và qua hàm kích hoạt sigmoid, đơn vị sẽ có một giá trị kích hoạt rất gần 0 hoặc rất gần 1 Giá trị hiệu chỉnh trọng số gần 0, và quá trình huấn luyện

có thể đi đến một trạng thái dừng ảo

Cực tiểu địa phương: Bề mặt sai số của mạng rất phức tạp đầy những ngọn đồi và những thung lũng Bởi vì sự hạ độ dốc, mạng có thể bị mắc bẫy tại một cực tiểu địa phương khi có nhiều cực tiểu thấp hơn gần bên cạnh Những phương pháp thống kê có thể giúp để tránh cái bẫy này, nhưng chúng làm chậm Một phương án khác là tăng thêm số lượng đơn vị ẩn Như vậy sẽ làm việc trong không gian sai số nhiều chiều, nên

cơ hội gặp bẫy nhỏ hơn Tuy nhiên việc tăng cũng có giới hạn trên, khi vượt qua giới hạn này, cơ hội mắc bẫy lại tăng lên

Trang 32

2.2 Mạng Neural tích chập (Convolutional Neural Networks – CNNs)

2.2.1 Convolution (tích chập)

Tích chập được sử dụng đầu tiên trong xử lý tín hiệu số (Signal processing) Nhờ vào nguyên lý biến đổi thông tin, các nhà khoa học đã áp dụng kĩ thuật này vào xử lý ảnh và video số Để dễ hình dung, ta có thể xem tích chập như một cửa sổ trượt (sliding window) áp đặt lên một ma trận Ta có thể theo dõi cơ chế của tích chập qua hình minh họa bên duới

Hình 2.6 Minh họa tích chập

Ma trận bên trái là một bức ảnh đen trắng Mỗi giá trị của ma trận tương đương với một điểm ảnh (pixel), 0 là màu đen, 1 là màu trắng (nếu là ảnh grayscale thì giá trị biến thiên từ 0 đến 255)

Sliding window còn có tên gọi là kernel, filter hay feature detector Ở đây, ta dùng một ma trận filter 3×3 nhân từng thành phần tương ứng (element-wise) với ma trận ảnh bên trái Giá trị đầu ra do tích của các thành phần này cộng lại Kết quả của tích chập là một ma trận (convoled feature) sinh ra từ việc trượt ma trận filter và thực hiện tích chập cùng lúc lên toàn bộ ma trận ảnh bên trái Dưới đây là một vài ví dụ của phép toán tích chập

Ta có thể làm mờ bức ảnh ban đầu bằng cách lấy giá trị trung bình của các điểm ảnh xung quanh cho vị trí điểm ảnh trung tâm

Trang 34

- Trong mô hình Feedforward Neural Network (mạng Neural truyền thống), các layer kết nối trực tiếp với nhau thông qua một trọng số w (weighted vector) Các layer này còn được gọi là có kết nối đầy đủ (fully connected layer) hay affine layer

- Trong mô hình CNNs thì ngược lại Các layer liên kết được với nhau thông qua

cơ chế convolution Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ vậy

mà ta có được các kết nối cục bộ Nghĩa là mỗi Neural ở layer tiếp theo sinh ra từ filter

áp đặt lên một vùng ảnh cục bộ của Neural layer trước đó

- Mỗi layer như vậy được áp đặt các filter khác nhau, thông thường có vài trăm đến vài nghìn filter như vậy Một số layer khác như pooling/subsampling layer dùng

để chắt lọc lại các thông tin hữu ích hơn (loại bỏ các thông tin nhiễu) Tuy nhiên, ta sẽ không đi sâu vào khái niệm của các layer này

Trong suốt quá trình huấn luyện, CNNs sẽ tự động học được các thông số cho các filter Ví dụ trong tác vụ phân lớp ảnh, CNNs sẽ cố gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel > edges > shapes > facial > high-level features Layer cuối cùng được dùng để phân lớp ảnh

Hình 2.9 Mô hình mạng nơ ron truyền thống

Hình 2.10 Image Classification with CNN

Trang 35

CNNs có tính bất biến và tính kết hợp cục bộ (Location Invariance and Compositionality) Với cùng một đối tượng, nếu đối tượng này được chiếu theo các góc độ khác nhau (translation, rotation, scaling) thì độ chính xác của thuật toán sẽ bị ảnh hưởng đáng kể Pooling layer sẽ cho ta tính bất biến đối với phép dịch chuyển (translation), phép quay (rotation) và phép co giãn (scaling)

- Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter Đó là lý do tại sao CNNs cho ra mô hình với độ chính xác rất cao Cũng giống như cách con người nhận biết các vật thể trong tự nhiên Ta phân biệt được một con chó với một con mèo nhờ vào các đặc trưng từ mức độ thấp (có 4 chân, có đuôi) đến mức độ cao (dáng đi, hình thể, màu lông)

2.2.3 Cấu trúc mạng neural tích chập

Mạng neural tích chập là một dạng của mạng neural đa tầng, mỗi tầng thuộc một trong 3 dạng: tích chập (convolution), lấy mẫu con (subsampling), kết nối đầy đủ (full connection) như hình sau

Hình 2.11 Minh họa mô hình CNNs

CNNs xem ảnh đầu vào là tầng input, mỗi pixel là một neural, ảnh đầu vào này còn gọi là feature map Feature map có thể coi như là một ảnh thông thường, trong đó mỗi pixel được gọi là một neural

Tầng tích chập (C - convolution): Hoạt động như bộ trích chọn đặc trưng, nghĩa

là một hay nhiều kết xuất của tầng trước được tích chập với một hay nhiều kernel để sinh ra một hay nhiều kết xuất (feature map)

Trang 36

Tầng lấy mẫu con (S - subsampling): Lấy mẫu con của mạng neural tích chập

giúp mạng chịu được những biến dạng của dữ liệu như tịnh tiến, quay, nghiêng Toán

tử lấy mẫu con như trong hình sau:

Tầng kết nối đầy đủ (F – Full connection): thực hiện công việc phân lớp như

trong mạng neural đa lớp thông thường, … Các tầng sau, mỗi tầng có một số feature map, mỗi feature map có một số kernel duy nhất, số lượng kernel bằng số lượng feature map ở tầng trước Các kernel trong cùng một feature map có kích thước bằng nhau, kích thước kernel là một tham số của bài toán thiết kế mạng Các giá trị điểm ảnh trong một feature map được tính toán bằng tổng các tích chập của các kernel tương ứng với các feature map trong tầng trước Số lượng feature map trong tầng cuối cùng (tầng output) bằng số lượng kết xuất đầu ra của bài toán

Ví dụ: Trong bài toán nhận dạng các số từ 0 đến 9, thì sẽ có 10 feature map trong tầng output và feature map nào có giá trị cao nhất sẽ được dùng làm kết quả của bài toán

2.2.4 Những phương pháp tích chập (convolution)

Convolution là một khái niệm quen thuộc trong xử lý tín hiệu số Trong lĩnh vực

xử lý ảnh thao tác convolution được dùng để biến đổi ảnh thành một dạng mong muốn nào đó như: làm nổi cạnh (detect edge), làm mượt ảnh (smoothing), làm sắc nét (sharpening),

Ngày đăng: 28/03/2021, 22:51

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w