1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Tìm hiểu kỹ thuật nhận dạng ký tự quang học và xây dựng ứng dụng giải toán

84 304 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 84
Dung lượng 2,34 MB

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

Nội dung

Các bài toán nhận dạng đang được ứng dụng trong thực tế hiện nay tập trung vào nhận dạng mẫu, nhận dạng tiếng nói và nhận dạng chữ.. Những năm gần đây, cùng với sự phát triển của lý thuy

Trang 1

TRƯỜNG ĐẠI HỌC NHA TRANG KHOA CÔNG NGHỆ THÔNG TIN

Nguyễn Thị Kim Xuân

TÌM HIỂU KỸ THUẬT NHẬN DẠNG KÝ TỰ QUANG HỌC

VÀ XÂY DỰNG ỨNG DỤNG GIẢI TOÁN

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC (Ngành Công nghệ Thông tin)

CÁN BỘ HƯỚNG DẪN:

Ths Lê Hoàng Thanh

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi và được sự hướng dẫn khoa học của Ths Lê Hoàng Thanh Các nội dung nghiên cứu, kết quả trong đề tài này là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo Ngoài

ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc Nếu phát hiện có bất kỳ sự gian lận nào tôi xin hoàn toàn chịu trách nhiệm về nội dung đồ án của mình Trường Đại học Nha Trang không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện (nếu có)

Nha Trang, tháng 6 năm 2017

Sinh viên Nguyễn Thị Kim Xuân

Trang 3

MỤC LỤC

LỜI CAM ĐOAN 2

MỤC LỤC 3

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 6

DANH MỤC CÁC BẢNG 6

DANH MỤC CÁC HÌNH 6

LỜI MỞ ĐẦU 9

CHƯƠNG 1: GIỚI THIỆU 12

1.1 Mục đích, lý do chọn đề tài 12

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

1.3 Ý nghĩa khoa học và thực tiễn 14

CHƯƠNG 2: TỔNG QUAN VỀ NHẬN DẠNG KÝ TỰ QUANG HỌC 16

2.1 Các giai đoạn phát triển 17

2.2 Tình hình nghiên cứu trong nước 18

2.3 Tình hình nghiên cứu ở nước ngoài 19

CHƯƠNG 3: CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP NGHIÊN CỨU 21

3.1 Cơ sở lý thuyết xử lý ảnh 21

3.1.1 Tổng quan về ảnh số 21

3.1.2 Nhị phân hóa ảnh 21

3.1.3 Các phép biến đổi hình thái học (Morphology) cơ bản 22

3.1.4 Các phương pháp nâng cao chất lượng ảnh 24

3.2 Các phương pháp tách ký tự 26

3.2.1 Tách chữ dùng lượt đồ ánh sáng 26

3.2.2 Tách chữ 27

3.3 Các phương pháp rút trích đặc trưng ký tự 27

3.3.1 Các phương pháp về chia vùng 27

3.3.2 Biểu đồ chiếu Histogram 29

3.3.3 Contour Profile 29

3.3.4 Wavelet Haar 29

Trang 4

3.3.5 Crossing và Distance 30

3.3.6 Binary 30

3.4 Các phương pháp nhận dạng ký tự 31

3.4.1 K Nearest Neighbors (KNN) 31

3.4.2 Support Vector Machine (SVM) 32

3.4.3 Mạng Neural 35

3.5 Ký pháp nghịch đảo Ba Lan 48

3.5.1 Lịch sử 48

3.5.2 Tên gọi và ý nghĩa 48

3.5.3 Ứng dụng Ký pháp nghịch đảo Ba Lan 49

3.6 Cấu trúc hệ nhận dạng chữ viết sử dụng trong đồ án 52

3.7 Tiền xử lý 53

3.8 Tách chữ 53

3.8.1 Tách dòng ký tự 53

3.8.2 Tách từng ký tự 54

3.9 Rút trích đặc trưng 56

3.10 Huấn luyện và Nhận dạng 57

3.11 Hậu xử lý 60

3.11.1 Kiểm tra đầu vào bài toán 61

3.11.2 Kiểm tra dạng bài toán 62

3.11.3 Tính giá trị biểu thức 66

3.11.4 Giải phương trình bậc nhất 66

3.11.5 Giải phương trình bậc hai 67

3.11.6 Giải hệ phương trình bậc nhất hai ẩn 70

CHƯƠNG 4: KẾT QUẢ NGHIÊN CỨU VÀ CÀI ĐẶT THỬ NGHIỆM ỨNG DỤNG GIẢI TOÁN 71

4.1 Xây dựng bộ Dataset 71

4.2 Kết quả thử nghiệm tách ký tự 72

4.3 Thực nghiệm xây dựng mạng Neural 73

4.3.1 Thực nghiệm chọn số nút ẩn 73

Trang 5

4.3.2 Thực nghiệm xác định tốc độ học 74

4.3.3 Kết quả nhận dạng ký tự 75

4.4 Cài đặt thử nghiệm ứng dụng giải toán 76

4.4.1 Giao diện chương trình 76

4.4.2 Một số hàm trong chương trình 78

KẾT LUẬN VÀ KIẾN NGHỊ 82

DANH MỤC TÀI LIỆU THAM KHẢO 84

Trang 6

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

ANN Artificial Neural Network (Mạng Neural nhân tạo)

ASCII American Standard Code for Information Interchange (Chuẩn mã trao

đổi thông tin Hoa Kỳ)

CMYK C=Cyan: xanh lơ, M=Magenta: hồng sẫm, và Y=Yellow: vàng

GDI+ Graphics Device Interface (Thư viện đồ họa)

HSV H = Hue: màu sắc, S = Saturation: độ đậm đặc, sự bảo hòa, V = value:

giá trị cường độ sáng

KNN K Nearest neighbors (thuật toán K láng giềng)

MLP MultiLayer Perceptron (Mạng Perceptron nhiều tầng)

RGB Hệ màu Red-Green-Blue

SVM Support Vector Machines

Bảng 3.1: Một số hàm truyền thông dụng 37

Bảng 3.2: Quá trình tính toán giải biểu thức hậu tố 50

Bảng 3.3: Quá trình chuyển biểu thức trung tố thành biểu thức hậu tố 51

Bảng 4.1: Tỉ lệ tách ký tự 72

Bảng 4.2: Mức lỗi theo số nút ẩn 73

Bảng 4.3: Mức lỗi theo tốc độ học 74

Bảng 4.4: Tỉ lệ nhận dạng 75

DANH MỤC CÁC HÌNH Hình 1.1: Mô hình nhận dạng chữ viết 13

Hình 1.2: Giao diện phần mềm Math Input Panel 15

Hình 3.1: Ngưỡng ảnh 22

Hình 3.2: Erosion 23

Hình 3.3: Dilation 23

Hình 3.4: Closing 23

Hình 3.5: Opening 24

Hình 3.6: Bộ lọc Gaussian Blur 25

Hình 3.7: Lọc trung bình 25

Hình 3.8: Lọc song phương 26

Trang 7

Hình 3.9: Tách dòng dựa trên histogram theo chiều ngang của khối chữ 26

Hình 3.10: Xác định khoảng cách giữa hai kí tự và giữa hai từ dựa trên histogram theo chiều thẳng đứng của dòng chữ 27

Hình 3.11: Chia vùng (Zone) 27

Hình 3.12: Diagonal 28

Hình 3.13: Biểu đồ chiếu Histogram 29

Hình 3.14: Contour profile 29

Hình 3.15: Wavelet Haar 29

Hình 3.16: Crossing và Distance 30

Hình 3.17: Binary 30

Hình 3.18: Phân lớp bằng SVM 33

Hình 3.19: Mô hình của một neural nhân tạo 35

Hình 3.20: Chia hàm truyền thành 2 khâu 36

Hình 3.21: Mạng tự kết hợp 37

Hình 3.22: Mạng kết hợp khác kiểu 38

Hình 3.23: Mạng truyền thẳng 38

Hình 3.24: Mạng phản hồi 39

Hình 3.25: Mạng Neural lan truyền ngược MLP 39

Hình 3.26: Ảnh hưởng của kích thước mẫu 47

Hình 3.27: Mô hình nhận dạng chữ viết tay sử dụng trong đồ án 52

Hình 3.28: Quá trình tách dòng 54

Hình 3.29: Kết quả tách ký tự 56

Hình 3.30: Mô hình mạng Neural 57

Hình 3.31: Sơ đồ thuật toán huấn luyện mạng 59

Hình 3.32: Sơ đồ thuật toán nhận dạng ký tự 60

Hình 3.33: Ví dụ thuật toán tách số hạng 64

Hình 4.1: Một số ảnh trong tập huấn luyện Chars 74K 71

Hình 4.2: Một số ảnh trong tập dữ liệu mẫu tự xây dựng 72

Hình 4.3: Một số ảnh ký tự tách sai 72

Trang 8

Hình 4.4: Đồ thị biến thiên mức lỗi theo số nút ẩn 73

Hình 4.5: Đồ thị biến thiên mức mỗi theo tốc độ học 74

Hình 4.6: Một số ký tự dễ nhầm trong bộ dữ liệu huấn luyện 76

Hình 4.7: Giao diện chương trình 77

Trang 9

LỜI MỞ ĐẦU

Nhận dạng là bài toán xuất hiện cách đây khá lâu và vẫn luôn thu hút được nhiều sự quan tâm, nghiên cứu Đặc biệt là trong vài thập niên gần đây, do sự thúc đẩy của quá trình tin học hóa trong mọi lĩnh vực, bài toán nhận dạng không còn dừng lại ở mức độ nghiên cứu nữa mà nó trở thành một lĩnh vực để áp dụng vào thực tế Các bài toán nhận dạng đang được ứng dụng trong thực tế hiện nay tập trung vào nhận dạng mẫu, nhận dạng tiếng nói và nhận dạng chữ Trong số này, nhận dạng ký

tự quang học là bài toán được quan tâm rất nhiều và cũng đạt được nhiều thành tựu rực rỡ [1] Về mặt lý thuyết, chưa có phương pháp nào hoàn chỉnh cho bài toán này

do tính phức tạp, sự biến dạng của dữ liệu đầu vào Những năm gần đây, cùng với sự phát triển của lý thuyết nhận dạng, công nghệ xử lý ảnh, đã có nhiều nghiên cứu mang lại một số kết quả cho bài toán nhận dạng ký tự quang học, từ đó mở ra hàng loạt ứng dụng thực tế

Đồ án “Tìm hiểu kỹ thuật nhận dạng ký tự quang học và xây dựng ứng dụng

giải toán” nhằm giới thiệu một cách tiếp cận bài toán nhận dạng chữ viết tay với một

số ràng buộc để vào ứng dụng thực tiễn

Được sự đồng ý và hướng dẫn tận tình của ThS Lê Hoàng Thanh, người đã tận tình giúp đỡ và truyền đạt nhiều kinh nghiệm để đề tài có thể được thực hiện và hoàn thành Mặc dù hết sức cố gắng, song do thời gian có hạn, vốn kiến thức còn hạn chế

và những hạn chế của bản thân là chưa có nhiều kinh nghiệm trong nghiên cứu và lập trình nên đồ án không thể tránh khỏi những thiếu sót, em rất mong nhận được sự

thông cảm và góp ý của quý Thầy, Cô để đồ án được hoàn thiện hơn

Em xin chân thành cảm ơn!

Nha Trang, tháng 6 năm 2017

Sinh viên Nguyễn Thị Kim Xuân

Trang 10

NHẬN XÉT

(Của giảng viên hướng dẫn)

Trang 11

NHẬN XÉT

(Của giảng viên phản biện)

Trang 12

CHƯƠNG 1: GIỚI THIỆU

1.1 Mục đích, lý do chọn đề tài

Từ khi ra đời, máy tính đã nhanh chóng phát triển và đóng một vai trò rất quan trọng trong nghiên cứu khoa học kỹ thuật cũng như trong đời sống Nhưng máy tính chỉ có thể làm việc theo một chương trình đã được hoạch định sẵn bởi lập trình viên

Nó vẫn không có khả năng liên tưởng, kết nối sự việc này với sự việc khác và quan trọng hơn hết là khả năng sáng tạo như con người Bên cạnh đó khoa học công nghệ không ngừng phát triển để đáp ứng ngày càng cao những nhu cầu của con người nhưng không phải nhu cầu nào cũng có thể dễ dàng giải quyết và đáp ứng được Nhận dạng chữ viết hiện nay vẫn đang là vấn đề thách thức lớn đối với các nhà nghiên cứu

vì bài toán chưa thể giải quyết trọn vẹn được do phụ thuộc nhiều vào người viết

Bài toán đặt ra ở đây là xây dựng mô hình chữ viết tay và ứng dụng nó vào việc giải toán Thực tế hiện nay phương pháp giải toán bằng hình ảnh không phải là một khái niệm mới Có rất nhiều phần mềm nhận dạng chữ viết tay để giải toán giúp cho học sinh có thể kiểm tra lại kết quả làm bài của mình đúng hay sai mà không cần nhờ thầy cô, hoặc để bố mẹ kiểm tra lại kết quả bài tập của con mình nhanh chóng và chính xác dưới sự trợ giúp của các thiết bị thông minh

Mục đích của đề tài nghiên cứu này là vận dụng các kiến thức được học và tìm hiểu xây dựng một ứng dụng giúp nhận diện các nét vẽ để chuyển thành ký tự cho phép người dùng giải các bài toán được nhận dạng thông qua các nét vẽ trên máy tính

và tìm hiểu trong lĩnh vực nhận dạng ký tự, từ đó có cái nhìn tổng quan về phương thức thực hiện hay các vấn đề gặp phải trong bài toán nhận dạng ký tự, nhằm phát triển được nhiều ứng dụng thực tiễn liên quan tới nhận dạng các ký tự toán học hơn

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

Đồ án “Tìm hiểu kỹ thuật nhận dạng ký tự quang học và xây dựng ứng dụng giải toán” được thực hiện với mục đích giải quyết một lớp con các bài toán nhận dạng chữ viết tay, tập trung vào bước nhận dạng ký tự do đây là bước mà mọi hệ nhận dạng

Trang 13

ký tự quang học cần phải có Từ đó tạo cơ sở tiếp theo có thể xây dựng và phát triển một ứng dụng nhận dạng giải toán Từ phân tích trên cho thấy bài toán đã đặt ra phải giải quyết được những yêu cầu sau:

 Xác định và rút trích đặc trưng từ ảnh đầu vào

tự, rút trích đặc trưng và tiến hành nhận dạng các ký tự đơn, giải các bài toán từ các

ký tự đã nhận dạng được sau đó hiển thị lên màn hình kết quả nhận dạng và đáp án bài toán Sử dụng ngôn ngữ C# kết hợp các thư viện của EmguCV Có thể tóm tắt phương pháp thực hiện như sau:

Kết quả nhận dạng

Nhận dạng

Huấn luyện

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

xử lý

Trang 14

Bước 1: Thiết kế giao diện tương tự MS Paint với các thao tác sử dụng gồm có một phần màn hình dùng để vẽ hình, sử dụng chuột để viết chữ lên phần màn hình đó Bước 2: Tiền xử lý bằng các thuật toán xử lý ảnh

Bước 3: Tách ký tự

Bước 4: Xử lý các ký tự cắt được, rút trích đặc trưng, xây dựng mạng Neural

Bước 5: Xây dựng mạng Neural để nhận dạng các ký tự trên ảnh đầu vào

Bước 6: Xử lý và hiển thị kết quả nhận dạng lên giao diện chương trình

Bước 7: Xác định và giải nếu nhận ra được ảnh ký tự vẽ vào thuộc 1 trong các dạng toán sau: Biểu thức, phương trình bậc nhất, phương trình bậc hai, hệ phương trình Chương 3 sẽ trình bày kĩ hơn về cơ sở lý thuyết và các bước thực hiện

1.3 Ý nghĩa khoa học và thực tiễn

Nhận dạng chữ viết tay là một đề tài rất quan trọng trong nhiều ứng dụng khác nhau, quan trọng nhất là trong lĩnh vực máy học nó hỗ trợ máy tính có thể đọc, nhận biết để nhập dữ liệu từ nguồn dữ liệu bên ngoài đưa vào Có thể thấy vấn đề xử lý nhận dạng ký tự quang học nói chung hay chữ viết tay nói riêng được giải quyết Nhưng, đề tài này còn chưa được nghiên cứu rộng khắp, chưa thực sự quan tâm chưa được sử dụng và ứng dụng rộng rãi tại Việt Nam cũng như trong các nghiên cứu công nghệ tại trường Đại học Nha Trang

Chính vì vậy, việc nghiên cứu các kỹ thuật nhận dạng ký tự quang học nói chung và ký tự viết tay nói riêng là một việc cần thiết để làm rõ cơ sở lý thuyết các

kỹ thuật xử lý ảnh, rút trích đặc trưng, phân lớp dữ liệu phục vụ nhu cầu phát triển trong những lĩnh vực có vô vàn ứng dụng thực tiễn trong đời sống Đặc biệt là lĩnh vực xây dựng áp dụng các kỹ thuật nhận dạng để giải toán nhằm giải quyết nhanh các yêu cầu của người dùng Kết quả nghiên cứu có thể giúp người dùng chủ động học tập mọi nơi và có kết quả các bài toán nhanh, chính xác Các nghiên cứu nhận dạng chữ viết tay đã được phát triển từ hơn nữa thập kỷ qua và đạt được nhiều thành quả

Trang 15

thiết thực Cho đến nay, bài toán nhận dạng chữ viết tay đạt được một số nghiên cứu khả quan như:

Nhận dạng chữ in đã được giải quyết gần như trọn vẹn sản phẩm FineReader 9.0 của hãng ABBYY có thể nhận dạng chữ in theo 192 ngôn ngữ khác nhau Phần mềm nhận dạng chữ VnDOCR 4.0 của Viện Công nghệ Thông tin Hà Nội có thể nhận dạng được các tài liệu chứa hình ảnh và văn bản với độ chính xác trên 98% [1]

Phần mềm nhận dạng công thức toán học cũng phát triển khá nhiều như: phần mềm Mathpixcó thể nhận diện và giải được các phương trình toán viết ra giấy bằng chữ viết tay Phần mềm Math Input Panel giúp tạo các công thức toán họcbằng cách

sử dụng chuột để vẽ công thức, chương trình sẽ tự nhận diện và hiển thị công thức lên cho người sử dụng (hình 1.2)

Hình 1.2: Giao diện phần mềm Math Input Panel

Trang 16

CHƯƠNG 2: TỔNG QUAN VỀ NHẬN DẠNG KÝ TỰ QUANG HỌC

Nhận dạng ký tự quang học (Optical Character Recognition - OCR), là loại phần mềm máy tính được tạo ra để chuyển các hình ảnh của chữ viết tay hoặc chữ đánh máy (thường được quét bằng máy scanner) thành các văn bản tài liệu OCR được hình thành từ một lĩnh vực nghiên cứu về nhận dạng mẫu, trí tuệ nhận tạo Mặc

dù công việc nghiên cứu học thuật vẫn tiếp tục, một phần công việc của OCR đã chuyển sang ứng dụng trong thực tế với các kỹ thuật đã được chứng minh Nhận dạng

ký tự quang học (dùng các kỹ thuật quang học chẳng hạn như gương và ống kính) và nhận dạng ký tự số (sử dụng máy quét và các thuật toán máy tính) lúc đầu được xem xét như hai lĩnh vực khác nhau Bởi vì chỉ có rất ít các ứng dụng tồn tại với các kỹ thuật quang học thực sự, bởi vậy thuật ngữ “Nhận dạng ký tự quang học” được mở rộng và bao gồm luôn ý nghĩa nhận dạng ký tự số [1]

Nhận dạng ký tự quang học đã được nghiên cứu hơn 40 năm qua Đặc biệt nhận dạng chữ viết tay đã nhận được sự quan tâm đáng kể do sự phát triển của các máy tính cầm tay, điện thoại cầm tay dựa trên các bàn phím, chuột và nhiều thiết bị định vị khác Nhận dạng chữ viết tay được chia thành hai lớp bài toán lớn là nhận dạng chữ viết tay trực tuyến (online) và nhận dạng chữ viết tay ngoại tuyến (offline) [7] Trong nhận dạng chữ viết tay ngoại tuyến, dữ liệu đầu vào được đưa vào dưới dạng các ảnh được quét từ các giấy tờ, văn bản Ngược lại nhận dạng chữ viết tay trực tuyến là nhận dạng các chữ trên màn hình ngay khi nó được viết Trong 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ữ như thứ tự nét viết, hướng và tốc độ của nét

Đầu tiên hệ thống nhận dạng yêu cầu phải được huấn luyện với các mẫu của các ký tự cụ thể Các hệ thống với độ chính xác nhận dạng cao đối với hầu hết các phông chữ hiện nay đã trở nên phổ biến Một số hệ thống còn có khả năng tái tạo lại các định dạng của tài liệu gần giống với bản gốc bao gồm: hình ảnh, các cột, bảng biểu, các thành phần không phải là văn bản Hiện nay một số phần mềm đã cho phép

Trang 17

nhận dạng được các chữ viết tay theo kiểu chữ in hoa hoặc các con số điền trên các

tờ séc hoặc các phiếu thanh toán…

2.1 Các giai đoạn phát triển

 Mô hình nhận dạng chữ viết được đề xuất từ năm 1951 do phát minh của M Sheppard được gọi là GISMO [6], một robot đọc – viết

 Năm 1954, máy nhận dạng chữ đầu tiên đã được phát triển bởi J Rainbow dùng để đọc chữ in hoa nhưng rất chậm

 Năm 1967, công ty IBM đã thương mại hóa hệ thống nhận dạng chữ

 Giai đoạn 2: (1980 – 1990)

 Với sự phát triển của các thiết bị phần cứng máy tính và các thiết bị thu nhận

dữ liệu, các phương pháp luận nhận dạng đã được phát triển trong các giai đoạn trước đã có được môi trường lý tưởng để triển khai các ứng dụng nhận dạng chữ

 Các hướng tiếp cận theo cấu trúc và đối sánh được áp dụng trong nhiều hệ thống nhận dạng chữ [1]

 Trong giai đoạn này, các hướng nghiên cứu chỉ tập trung vào các kỹ thuật nhận dạng hình dáng chứ chưa áp dụng cho thông tin ngữ nghĩa Điều này dẫn đến

sự hạn chế về hiệu suất nhận dạng, không đạt hiệu quả trong nhiều ứng dụng thực tế

 Giai đoạn 3: (từ 1990 đến nay)

Các hệ thống nhận dạng thời gian thực được chú trọng trong giai đoạn này

Trang 18

 Các kỹ thuật nhận dạng kết hợp với các phương pháp luận trong lĩnh vực máy

học (Machine Learning) được áp dụng rất hiệu quả

 Một số công cụ máy học hiệu quả như mạng Neural, SVM (Support Vector Machines), mô hình Markov, KNN (K Nearest neighbors) và xử lý ngôn ngữ

tự nhiên [4]

2.2 Tình hình nghiên cứu trong nước

Nghiên cứu về nhận dạng và ứng dụng đã được tiến hành ở nước ta từ khá sớm Các chương trình trọng điểm quốc gia về tin học, CNTT từ năm 1981 đến nay đều có nội dung nghiên cứu về nhận dạng Đặc biệt các sản phẩn nhận dạng Tiếng Việt bắt đầu được chú ý phát triển từ đầu những năm 90 và đạt được những kết quả đánh khích lệ ban đầu, điển hình là các sản phẩm DOCR của FPT (1990-1993), CadPro, ImageScan 1.0 của Tecarpro (1998) Tuy nhiên, những sản phẩm kể trên không đi đến đích cuối cùng là phát triển thành sản phẩm thương mại hoàn chỉnh trên phạm vi sử dụng hạn chế

Có thể nói, trong các sản phẩn nhận dạng tiếng Việt thời gian gần đây thì phần mềm VnDOCR của Phòng Nhận dạng – Viện Công nghệ Thông tin do TS Lương Chi Mai chủ trì xây dựng là thành công hơn cả Đây là sản phẩm thương mại khá hoàn chính và có lượng người sử dụng tương đối nhiều Kết quả nhận dạng của phần mềm này với các trang in tiếng Việt với kiểu chữ quy định rất tốt, tuy nhiên đối với các trang in phức tạp hơn như trang hộ chiếu hay các tờ khai đề nghị cấp hộ chiếu thì chất lượng không đáp ứng mong đợi Điều này cũng có thể dự báo trước vì VnDOCR được xây dụng với mục đích nhận dạng các văn bản phổ dụng như các trang sách, các bản fax, công văn và các loại giấy tờ tài liệu văn phòng,… chứ không phải nhắm vào việc xử lý các loại biểu mẫu viết tay (dù là viết kiểu chữ in hoa) với nền trang trí hoa văn, họa tiết phức tạp

Về dòng sản phẩm phần mềm xử lý biểu mẫu, qua các kết quả được công bố tại các Hội thảo quốc gia về tin học ứng dụng những năm qua, các tác giả Ngô Quốc

Trang 19

Tạo và Đỗ Năng Toàn của Viện Công nghệ Thông tin cho thấy đã có những thành tựu bước đầu trong việc nghiên cứu xử lý “đọc” tự độc các biểu mẫu dạng đánh dấu

Ngoài ra tại Việt Nam cũng có một số hệ như WORC của công ty 3C,

VIET-IN của công ty SEATIC, Image Scon của Trung Tâm Tự Động Hóa Thiết Kế, hệ WINGIS của công ty DolfSoft

Hiện nay với phần mềm VietOCR được phát triển dựa trên nền tảng mã nguồn

mở Tesseract, với công nghệ Java/.NET, hỗ trợ nhận dạng cho các dạng ảnh PDF, TIFF, JPEG, GIF, PNG, và BMP Khả năng nhận dạng của VietOCR có thể đạt tới 95% đối với file ảnh có chất lượng tốt

Nhìn chung, các sản phẩm phần mềm nhận dạng của nước ta đã thu được kết quả khả quan, đặc biệt phần mềm VNDOCR đã được sử dụng rộng rãi trong các cơ quan nhà nước Riêng phần nhận dạng ký tự viết tay vẫn đang được nghiên cứu và phát triển nhằm phục vụ cho các yêu cầu khác nhau

2.3 Tình hình nghiên cứu ở nước ngoài

Về lĩnh vực nhận dạng chữ, các phần mềm thương phẩm nhận dạng chữ in cho các ngôn ngữ hệ Latinh và Slavơ đã đạt được chất lượng nhận dạng rất cao, ví dụ như OMNIPAGE 11.0 của Caere (Mỹ), Fine Reader 7.0 của ABBYY (Nga), Yonde OCR của Aisoft và KanjiScan (Nhật) Để đạt tới các phiên bản với chất lượng cao như vậy,

từ hơn 10 năm nay, các hãng phần mềm này vẫn phải liên tục cho phát triển hoàn thiện các chức năng nhận dạng cũng như tiền và hậu xử lý

Hiện nay, trên thị trường thế giới có rất nhiều sản phẩm phần mềm về OCR Những sản phẩm này chủ yếu nhận dạng ký tự tiếng Anh, Mỹ và một số ngôn ngữ thông dụng khác như Pháp, Đức, Ý,… Một số sản phẩn tiêu biểu như BUSY, AEG Reco, RecoLine, OmmiPage,… của các hãng nỗi tiếng như CGK Computer, HP,… được giưới thiệu với những tính năng nỗi bật sau:

 Tự động nhận dạng chữ in máy, chữ viết tay (cả chữ hoa và chữ thường), trên một hoặc nhiều dòng Có thể xử lý cả bản in màu và in trắng đen

Trang 20

 Cho phép nhận dạng nhiều kiểu chữ trong cùng một văn bản Tốc độ nhận dạng lên tới vài trăm ký tự mỗi giây

 Các bộ phân lớp hướng quốc gia mang lại độ chính xác nhận dạng cao nhất với từng loại ngôn ngữ Kết quả nhận dạng cũng có thể được hiển thị ở nhiều dạng mã khác nhau như ASCII, IBM437, UNICODE,…

 Hỗ trợ tất cả các bước liên quan trong việc xử lý văn bản: mô tả văn bản, quét/nhập, nhận dạng ký tự, kiểm tra/hậu xử lý, soạn dữ liệu/kết xuất dữ liệu, lưu trữ hồ sơ

 Hỗ trợ nhận dạng tin cậy tất cả các mã vạch thông dụng Nhận dạng và kiểm tra các ký tự và các trường không đọc được bằng mắt thường

 Cho phép sử dụng hỗ trợ văn bản của Microsoft bằng cách truyền dữ liệu tới Exel hoặc Access

Nhưng đối với chữ viết tay trực tuyến hoặc gián tiếp, chất lượng nhận dạng thấp hơn nhiều và các phương pháp hiện nay mới chỉ nhận dạng được chữ viết tay có hạn chế Các chủ đề này vẫn còn đang được đề cập đến nhiều với các cách tiếp cận khác nhau, đề cập tới các phương pháp cải tiến để tăng chất lượng nhận dạng, tách và cắt chữ, và kết hợp với ngữ nghĩa của từng ngôn ngữ cụ thể Vì chữ viết tay hoàn toàn phụ thuộc vào người viết và sự biến đổi quá đa dạng trong cách viết và trạng thái sức khỏe, tinh thần của từng người viết Nhận dạng ký tự viết tay vẫn đang được nghiên cứu và phát triển nhằm phục vụ cho các yêu cầu khác nhau Có thể thấy nhận dạng

ký tự quang học đang là một hướng nghiên cứu rất được quan tâm hiện nay và đang còn nhiều vấn đề cần phải hoàn thiện

Trang 21

CHƯƠNG 3: CƠ SỞ LÝ THUYẾT VÀ PHƯƠNG PHÁP NGHIÊN CỨU

3.1 Cơ sở lý thuyết xử lý ảnh

3.1.1 Tổng quan về ảnh số

Ảnh nhị phân chỉ chứa hai giá trị 0 hoặc 1 (hoặc 0 và 255 tùy theo quy định của cấu trúc ảnh) Theo đó, giá trị 0 sẽ là giá trị ứng với những điểm đen trên ảnh và giá trị 1 (hoặc 255) sẽ là giá trị ứng với những điểm trắng

Ảnh xám: Sử dụng 8 bit để biểu diễn mức xám, giá trị của mỗi pixel nhận giá trị nguyên từ 0 - 255 Với mức 0 biểu diễn cho mức cường độ tối nhất và 255 biểu diễn cho mức cường độ sáng nhất

Ảnh màu: Cách biểu diễn cũng tương tự như với ảnh xám, chỉ khác là mỗi pixel được tổ hợp bởi các màu riêng biệt Ví dụ hệ màu Red-Green-Blue (RGB), mỗi pixel được tổng hợp từ 3 màu Red, Green và Blue Mỗi màu được biểu diễn bởi 8 bit

và có dải từ 0 - 255 Các kênh màu thường được sử dụng: RGB, CMYK, HSV [2]

Trong đó, Source(x,y) là giá trị điểm ảnh ở vị trí (x,y) của ảnh nguồn, Dest(x,y)

là giá trị điểm ảnh tương ứng ở vị trí (x,y) của ảnh đích T là giá trị ngưỡng Vấn để ở đây là với ngưỡng T như thế nào thì cho ta được tấm ảnh nhị phân như ý muốn, nghĩa

là ảnh làm nổi các vùng đối tượng và nền Việc xác định giá trị T là rất khó vì chúng

phụ thuộc vào từng điều kiện chiếu sáng khác nhau của môi trường Với môi trường

này T nhận một giá trị, môi trường khác lại một giá trị khác Hình 3.1 thể hiện ảnh đã

Trang 22

được nhị phân hóa với cùng ngưỡng thấp, trung bình và ngưỡng cao Người ta đề xuất nhiều phương pháp để xác định giá trị ngưỡng Một phương pháp là thiết lập ngưỡng sao cho số lượng các điểm đen đạt một ngưỡng chấp nhận được theo phân phối xác suất mức xám [2] Trong đồ án sử dụng ngưỡng là 128

a) Ảnh gốc ban đầu b) Ngưỡng thấp (90)

c) Ngưỡng trung bình (128) d) Ngưỡng cao (255)

Hình 3.3: Ngưỡng ảnh

3.1.3 Các phép biến đổi hình thái học (Morphology) cơ bản

Mục đích chính của các phép biến đổi hình thái học nhưng làm giảm bớt các chi tiết thừa trong ảnh để làm nổi rõ những mảng chính, hoặc làm trơn các cạnh biên, lấp các hố, các lỗ trống, khử lồi lõm trên đường biên… Một số phương pháp biến đổi hình thái học cơ bản là: Erosion, Dilation, Opening và Closing

Trang 23

Erosion: được sử dụng trên ảnh nhị phân để làm xói mòn hay loại bỏ bớt phần

dính liền tại ranh giới giữa các vùng Ký hiệu A ϴ B Pixel dưới điểm neo được thay thế bằng giá trị pixel nhỏ nhất bị chồng lên bởi mặt nạ cấu trúc

Hình 3.4: Erosion Dialation: được sử dụng để mở rộng vùng hoặc lấp đầy khoảng trống giữa

ranh giới 2 vùng Ký hiệu của phép này là AB Pixel dưới điểm neo được thay thế bằng giá trị pixel lớn nhất bị chồng lên bởi mặt nạ cấu trúc

Hình 3.5: Dilation Closing: là việc thực hiện liên tiếp phép Dilation và sau đó là Erode

Hình 3.6: Closing

Trang 24

Opening: là việc thực hiện liên tiếp phép Erode và Dilation, có tác dụng làm

mịn đường biên của một đối tượng, loại bỏ những chỗ lồi lõm

Hình 3.7: Opening

3.1.4 Các phương pháp nâng cao chất lượng ảnh

Trong xử lý ảnh các ảnh đầu vào trong trường hợp là ảnh scan thì ảnh thường được thu thập từ nhiều nguồn khác nhau và các ảnh thu thập được thường có nhiễu

do nhiều nguyên nhân bao gồm: sự thoái hóa theo thời gian, quá trình sao chép Một

số kỹ thuật xử lý ảnh sẽ được áp dụng để loại bỏ nhiễu Sau khi được xám hóa, ảnh

sẽ được lọc để giảm nhiễu

Trên thực thế tồn tại nhiều loại nhiễu, tuy nhiên người ta thường xem xét 3 loại chính:

Gaussian Blur là cách làm mờ một ảnh bằng hàm Gaussian Nó cũng là công

cụ phổ biến để thực hiện quá trình tiền xử lý (preprocessing), nó có thể giúp làm giảm

Trang 25

nhiễu (Noise) và mức độ chi tiết (không mong muốn) của hình ảnh Một cách trực quan, đây được xem như là phương pháp làm mờ mịn cũng giống như hiệu ứng hình ảnh được đặt dưới một lớp màn trong suốt bị mờ Trong toán học, việc ứng dụng Gaussian Blur cho một hình cũng chính là tính tích chập (Convolution) hình đó với hàm Gaussian

Hình 3.8: Bộ lọc Gaussian Blur

3.1.4.2 Lọc trung bình

Lọc trung bình là kĩ thuật lọc tuyến tính, hoạt động như một bộ lọc thông thấp Trong lọc bình, ta sử dụng một cửa sổ lọc quét qua lần lượt từng điểm ảnh của ảnh đầu vào input Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng 3×3 của ảnh gốc “lấp” vào ma trận lọc Giá trị điểm ảnh của ảnh đầu ra là giá trị trung bình của tất cả các điểm ảnh trong cửa sổ lọc

Hình 3.9: Lọc trung bình

Trang 26

3.1.4.3 Lọc song phương (Bilateral)

Hầu hết các bộ lọc có mục tiêu chính là làm mịn hình ảnh đầu vào Tuy nhiên các bộ lọc không chỉ giảm nhiễu mà còn làm mờ các cạnh Để tránh điếu này chúng

3.2.1 Tách chữ dùng lượt đồ ánh sáng

Hình 3.11: Tách dòng dựa trên histogram theo chiều ngang của khối chữ

Trang 27

Đối với chữ viết tay thì việc tìm đường phân cách giữa các dòng và các ký tự trong văn bản thường rất khó khăn Trong trường hợp này, không thể tìm đường phân cách theo nghĩa thông thường mà phải hiểu là đường phân cách với số điểm cắt hai dòng là ít nhất Khi đó phải xây dựng lược đồ ánh sáng của các dòng chữ, từ đó các đoạn thấp nhất trên lượt đồ chính là đường phân cách cần tìm (hình 3.9 và hình 3.10)

Hình 3.12: Xác định khoảng cách giữa hai kí tự và giữa hai từ dựa trên histogram

theo chiều thẳng đứng của dòng chữ

Nhược điểm lớn nhất của phương pháp này là phụ thuộc nhiều vào độ nghiêng của ảnh đầu vào, khi ảnh không nằm phương ngang, việc xác định ngưỡng vô cùng

Trang 28

Ảnh ký tự được chia thành N×N vùng (zones) Tổng số điểm đen của mỗi vùng

sẽ được chọn để tạo thành vector đặc trưng hoặc lấy tỉ lệ số pixel đen (trắng) trên tổng

số pixel mỗi vùng

3.3.1.2 Diagonal

 Chuẩn hóa kích thước về 60×90 pixel

 Chuyển ảnh về ma trận nhị phân các giá trị 0, 1

 Chia ma trận thành 54 vùng, ngang 6 vùng, cao 9 vùng, kích thước mỗi vùng 10×10 pixel

 Với mỗi vùng, giá trị đặc trưng được tính như sau:

o Mỗi vùng 10×10 sẽ có 19 đường chéo Tính tổng giá trị pixel đen theo đường chéo được 19 đặc trưng con

o Giá trị đặc trưng đại diện cho vùng được tính bằng trung bình của 19 đặc trưng trên Kết quả sẽ có 54 giá trị đại diện cho 54 vùng

Ngoài ra, có thể lấy thêm 15 đặc trưng nữa, là trung bình đặc trưng của 9 hàng

và 6 cột để tạo thành 69 vector đặc trưng

Hình 3.14: Diagonal

Trang 29

3.3.2 Biểu đồ chiếu Histogram

Ý tưởng cơ bản của phương

pháp trích chọn đặc trưng này là

chiếu các điểm đen trên ảnh 2 chiều

theo các hướng ngang, dọc và hai

đường chéo thành một dãy các tín

hiệu 1 chiều Ưu điểm của các đặc

trưng này là không phụ thuộc nhiều

vào nhiễu, tuy nhiên nó vẫn phụ

thuộc vào độ nghiêng của chữ

Hình 3.15: Biểu đồ chiếu Histogram

3.3.3 Contour Profile

Chuẩn hóa ảnh đầu vào về 1 kích thước cố

định Quét theo hàng và theo cột, trên mỗi hàng và

mỗi cột, tính khoảng cách từ khung ảnh đến điểm

đen đầu tiên của chữ trên 1 dòng quét

Hình 3.16: Contour profile

3.3.4 Wavelet Haar

Chuyển ảnh ký tự thành ma trận

nhị phân Chia thành N = 4 vùng 1, 2, 3,

4 (S i: tổng điểm đen của vùng i) Tính đặc

trưng thứ nhất F 1 = Tổng điểm đen trên

toàn bộ ma trận [4]

Hình 3.17: Wavelet Haar

Các đặc trưng tiếp theo được tính như sau: F 2 : S 1 +S 2 , F 3 : S 2 + S 3 , F 4 : S 4

Sau đó trên từng vùng con, chia tiếp thành 4 vùng nhỏ và tính các Fi tiếp theo Trong

thực nghiệm, chọn N = 4: 1 + 3 + 4×3 + 4×4×3 + 4×4×4×3 = 256 đặc trưng

Trang 30

3.3.5 Crossing và Distance

Với Crossing, đặc trưng được tính trên tất cả các hàng và cột Với mỗi dòng

quét, đếm số lần thay đổi giá trị pixel giữa phần nền và phần chữ Như vậy ảnh kích thước N×N sẽ có 2N đặc trưng theo cột và hàng

Còn Distance sẽ đếm khoảng cách từ biên cho đến pixel đầu tiên của phần chữ

theo các hướng trái, phải, trên và dưới

Hình 3.18: Crossing và Distance

3.3.6 Binary

Chuyển ảnh thành ma trận nhị phân, với mỗi điểm đen sẽ đại diện bằng giá trị

1, điểm trắng đại diện là giá trị 0 (hoặc ngược lại) Kết quả thu được là 1 ma trận chứa các giá trị 0 và 1

Hình 3.19: Binary

Trang 31

3.4 Các phương pháp nhận dạng ký tự

3.4.1 K Nearest Neighbors (KNN)

K-Nearest Neighbors algorithm (KNN) được sử dụng rất phổ biến trong lĩnh vực Data Mining K-NN là phương pháp để phân lớp các đối tượng dựa vào khoảng cách gần nhất giữa đối tượng cần xếp lớp (Query point) và tất cả các đối tượng trong Training Data [8]

Một đối tượng được phân lớp dựa vào K láng giềng của nó K là số nguyên dương được xác định trước khi thực hiện thuật toán Người ta thường dùng khoảng cách Euclidean để tính khoảng cách giữa các đối tượng

 Thuật toán KNN được mô tả như sau:

Xác định giá trị tham số K (K láng giềng gần nhất)

 Tính khoảng cách của đối tượng cần phân lớp đến tất cả các đối tượng khác trong tranning data Các hàm khoảng cách thường dùng:

o Khoảng cách Euclide

o Khoảng cách Mahattan

 Đánh giá trị khoảng cách cho các đối tượng và sắp xếp các khoảng cách theo thứ tự tăng dần

 Lấy ra K láng giềng (có khoảng cách nhỏ nhất) trong các tập các đối tượng

 Đối tượng nào có số mẫu lớn nhất trong K láng giềng lấy ra thì đối tượng sẽ thuộc về tập đó (trường hợp số mẫu bằng nhau, tính thêm bước trung bình khoảng cách các đối tượng thuộc cùng 1 mẫu để chọn ra mẫu có trung bình nhỏ nhất)

Ưu điểm: Độ phức tạp tính toán của quá trình training là bằng không, việc dự

đoán kết quả dữ liệu mới rất đơn giản, dễ sử dụng và cài đặt, xử lý tốt dữ liệu nhiễu (do dựa trên khoảng cách để quyết định phân lớp)

Nhược điểm: Cần lưu tất cả các mẫu để dự đoán, cần nhiều thời gian để xác

định lớp cho một mẫu mới (cần tính và so sánh khoảng cách đến tất cả các mẫu huấn

Trang 32

luyện) Phụ thuộc giá trị K do người dùng lựa chọn Nếu K quá nhỏ, nhạy cảm với nhiễu Nếu K quá lớn vùng lân cận có thể chứa các điểm của lớp khác

3.4.2 Support Vector Machine (SVM)

Support Vector Machine (SVM) là một khái niệm trong thống kê và khoa học máy tính cho một tập hợp các phương pháp học có giám sát liên quan đến nhau

để phân loại và phân tích hồi quy SVM là một thuật toán phân loại nhị phân, SVM nhận dữ liệu vào và phân loại chúng vào hai lớp khác nhau

Có thể mô tả một cách đơn giản về bộ phân lớp SVM như sau: Cho trước hai tập dữ liệu học, mỗi tập thuộc về một lớp cho trước, bộ phân lớp SVM sẽ xây dựng

mô hình phân lớp dựa trên hai tập dữ liệu này Khi có một mẫu mới được đưa vào,

bộ phân lớp sẽ đưa ra dự đoán xem mẫu này thuộc lớp nào trong hai lớp đã định Phương pháp này được Vapnik và cộng sự đề xuất năm 1992, lấy nền tảng từ lý thuyết học thống kê của Vapik & Chervonenkis vào năm 1960 [10]

Đặc trưng cơ bản quyết định khả năng phân loại của một bộ phận loại là hiệu suất tổng quát hóa, hay là khả năng phân loại những dữ liệu mới dựa vào những tri thức đã tích lũy được trong quá trình huấn luyện Thuật toán huấn luyện được đánh giá là tốt nếu sau quá trình huấn luyện, hiệu suất tổng quát hóa của bộ phân loại nhận được cao Hiệu suất tổng quát hóa phụ thuộc vào hai tham số là sai số huấn luyện và năng lực của máy học Trong đó sai số huấn luyện là tỷ lệ lỗi phân loại trên tập dữ liệu huấn luyện Một bộ phận tốt là bộ phận loại đơn giản nhất và đảm bảo sai số huấn luyện nhỏ Phương pháp SVM được xây dựng dựa trên ý tưởng này

Xét bài toán phân lớp đơn giản nhất – phân lớp hai lớp với tập dữ liệu mẫu: Trong đó mẫu là các vector đối tượng được phân lớp thành các mẫu dương và mẫu

âm như trong hình 3.18

Các mẫu dương là các mẫu xi thuộc lĩnh vực quan tâm và được gán nhãn y i = 1 Các

mẫu âm là các mẫu xi không thuộc lĩnh vực quan tâm và được gán y i = - 1

Trang 33

Hình 3.20: Phân lớp bằng SVM

Thực chất phương pháp này là một bài toán tối ưu, mục tiêu là tìm ra một không gian H và siêu mặt phẳng quyết định h trên H sao cho sai số phân lớp là thấp nhất Trong trường hợp này, tập phân lớp SVM là mặt siêu phẳng phân tách các mẫu dương khỏi các mẫu âm với độ chênh lệch cực đại, trong đó độ chênh lệch – còn gọi

là lề (margin) xác định bằng khoảng cách giữa các mẫu dương và các mẫu âm gần mặt siêu phẳng nhất Mặt siêu phẳng này được gọi là mặt siêu phẳng lề tối ưu Các mặt siêu phẳng trong không gian đối tượng có phương trình là:

C + w 1 x 1 + w 2 x 2 + … + w n x n = 0

Tương đương với công thức: C + ∑w i x i = 0 với i=1, …, n

Với w = w 1 , w 2 , …, w n là bộ hệ số siêu phẳng hay là vector trọng số, C là độ

dịch, khi thay đổi w và C thì hướng và khoảng cách từ gốc toạ độ đến mặt siêu phẳng

thay đổi Máy học SVM là một học các siêu phẳng phụ thuộc vào tham số vector

trọng số w và độ dịch C Mục tiêu của phương pháp SVM là ước lượng w và C để

cực đại hoá lề giữa các lớp dữ liệu dương và âm

Ta giải phương trình sau:

Trang 34

Tìm ra được vector trọng số w và sai số của mỗi điểm trong tập huấn luyện là

η i, từ đó ta có phương trình tổng quát của siêu phẳng tìm ra được bởi thuật toán là:

f(x 1 , x 2 ,…, x n ) = C +∑w i x i Với i = 1,…, n ( n là số dữ liệu huấn luyện)

Sau khi đã tìm được phương trình của siêu phẳng bằng thuật toán SVM, áp dụng công thức (1) để tìm ra nhãn lớp cho các dữ liệu mới

để lưu trữ ma trận hạt nhân trong suốt quá trình tính toán Bộ nhớ yêu cầu lên đến bình phương kích thước của tập huấn luyện Có nhiều phương pháp huấn luyện SVM được phát triển để tận dụng bộ nhớ, cải thiện tốc độ huấn luyện và tìm một mô hình tốt nhất bằng cách dùng một nhân và các siêu tham số thích hợp Lưu ý rằng, SVM

cơ bản dùng cho hai lớp Để có thể dùng cho nhiều lớp thì ta phải kết hợp nhiều bộ phân loại hai lớp hoặc xây dựng SVM cho nhiều lớp

SVM có nhiều đặc tính trong cả lý thuyết và thực thi so với các phương pháp khác trong lĩnh vực phân lớp hình ảnh Một trong những đặc tính là dễ thực hiện, dễ hiểu và thực thi ổn định Điều này rất quan trọng khi giải quyết các tập dữ liệu rất lớn Ưu điểm chính của SVM là cách giải quyết vấn đề mang tính tổng quát trong khi các phương pháp khác có thể mang tính cục bộ Xử lý trên không gian số chiều cao, tiết kiệm bộ nhớ, tính linh hoạt - phân lớp thường là phi tuyến tính từ đó khiến cho hiệu suất phân loại lớn hơn

Trang 35

3.4.3 Mạng Neural

3.4.5.1 Giới thiệu về mạng Neural

Định nghĩa: Mạng Neural nhân tạo, Artificial Neural Network (ANN) là một

mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ Neural sinh học Nó được tạo nên từ một số lượng lớn các phần tử (Neural) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó Một mạng Neural nhân tạo được cấu hình cho một ứng dụng cụ thể (nhận dạng mẫu, phân loại dữ liệu ) thông qua một quá trình học từ tập các mẫu huấn luyện Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa các Neural [5]

Các thành phần cơ bản của một Neural nhân tạo bao gồm:

 Tập các đầu vào: Là các tín hiệu vào (input signals) của Neural, các tín hiệu

này thường được đưa vào dưới dạng một vector N chiều

 Trọng ngưỡng: là mức kích hoạt cho mỗi đơn vị

 Tập trọng số: đặc trưng cho các liên kết với các đơn vị khác

Bộ cộng (Sum): tính “tổng trọng hóa” các dữ liệu đầu vào

Hàm truyền (Transfer function): cho giá trị đầu ra của đơn vị

 Đầu ra: Là tín hiệu đầu ra của một Neural, với mỗi Neural sẽ có tối đa là một đầu ra

Hình 3.21: Mô hình của một neural nhân tạo

i

i ji

 1

) ( j

Trang 36

g(a j): là hàm truyền và zj là tín hiệu đầu ra của Neural

Như vậy Neural nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền),

và cho một tín hiệu đầu ra (là kết quả của hàm truyền) Hiện có khoảng 15 mô hình neural được dùng phổ biến Để dễ dàng trong việc phân biệt các mô hình, ta “chia” Hàm truyền thành 2 khâu:

Khâu tiền đáp ứng (khâu c)

Khâu đáp ứng đầu ra (khâu )

Hình 3.22: Chia hàm truyền thành 2 khâu

Trang 37

o Tự kết hợp (autoassociative): là mạng có các

Neural đầu vào cũng là các Neural đầu ra

Mạng Hopfield là một kiểu mạng tự kết hợp

Hình 3.23: Mạng tự kết hợp

Trang 38

o Kết hợp khác kiểu (heteroassociative): là mạng có tập Neural đầu vào và đầu

ra riêng biệt Perceptron, các mạng Perceptron nhiều tầng (MLP: MultiLayer Perceptron), mạng Kohonen, …thuộc loại này

Hình 3.24: Mạng kết hợp khác kiểu

Ngoài ra tùy thuộc vào mạng có các kết nối ngược (feedback connections) từ các Neural đầu ra tới các Neural đầu vào hay không, người ta chia ra làm 2 loại kiến trúc mạng

o Kiến trúc truyền thẳng: là kiểu kiến trúc mạng không có các kết nối ngược trở lại từ các Neural đầu ra về các Neural đầu vào; mạng không lưu lại các giá trị output trước và các trạng thái kích hoạt của Neural Các mạng Neural truyền thẳng cho phép tín hiệu di chuyển theo một đường duy nhất; từ đầu vào tới đầu ra, đầu ra của một tầng bất kì sẽ không ảnh hưởng tới tầng đó Các mạng kiểu Perceptron là mạng truyền thẳng

Hình 3.25: Mạng truyền thẳng

o Kiến trúc phản hồi (Feedback architecture): là kiểu kiến trúc mạng có các kết nối từ Neural đầu ra tới Neural đầu vào Mạng lưu lại các trạng thái trước đó, và trạng thái tiếp theo không chỉ phụ thuộc vào các tín hiệu đầu

Trang 39

vào mà còn phụ thuộc vào các trạng thái trước đó của mạng Mạng Hopfield thuộc loại này

Hình 3.26: Mạng phản hồi

3.4.5.3 Cấu trúc mạng Neural lan truyền ngược MLP

Mô hình mạng Neural được sử dụng rộng rãi nhất là mô hình mạng nhiều tầng truyền thẳng (MLP: Multi Layer Perceptron) Một mạng MLP tổng quát là mạng có

n (n≥2) tầng (thông thường tầng đầu vào không được tính đến): trong đó gồm một

tầng đầu ra (tầng thứ n) và (n-1) tầng ẩn [6]

Hình 3.27: Mạng Neural lan truyền ngược MLP

Kiến trúc của một mạng MLP tổng quát có thể mô tả như sau:

Đầu vào là các vector (x 1 , x 2 , , x p ) trong không gian p chiều, đầu ra là các

vector (y 1 , y 2 , , y q ) trong không gian q chiều Đối với các bài toán phân loại,

p chính là kích thước của mẫu đầu vào, q chính là số lớp cần phân loại Xét ví

Tầng vào

Tầng ẩn (n-1) Tầng ra Tầng ẩn 1

Trang 40

dụ trong bài toán nhận dạng chữ số: Với mỗi mẫu ta lưu tọa độ (x, y) của 8

điểm trên chữ số đó, và nhiệm vụ của mạng là phân loại các mẫu này vào một

trong 10 lớp tương ứng với 10 chữ số 0, 1, …, 9 Khi đó p là kích thước mẫu

và bằng 8×2 = 16; q là số lớp và bằng 10

 Mỗi Neural thuộc tầng sau liên kết với tất cả các Neural thuộc tầng liền trước

 Đầu ra của Neural tầng trước là đầu vào của Neural thuộc tầng liền sau nó

 Hoạt động của mạng MLP như sau: Tại tầng đầu vào các Neural nhận tín hiệu vào xử lý (tính tổng trọng số, gửi tới hàm truyền) rồi cho ra kết quả (là kết quả của hàm truyền); kết quả này sẽ được truyền tới các Neural thuộc tầng ẩn thứ nhất; các Neural tại đây tiếp nhận như là tín hiệu đầu vào, xử lý và gửi kết quả đến tầng ẩn thứ 2… Quá trình tiếp tục cho đến khi các Neural thuộc tầng ra cho kết quả

3.4.5.4 Các phương pháp học trong mạng Neural lan truyền ngược MLP

Khái niệm: Học là quá trình tìm các trọng số của mạng sao cho hàm ánh xạ từ

các dữ liệu nhập vào miền giá trị của các kết xuất khớp nhất với bộ dữ liệu chứa các mẫu của hàm đích (tập huấn luyện) Một mạng Neural được huyấn luyện sao cho với

một tập các vector đầu vào X, mạng có khả năng tạo ra tập các vector đầu ra mong muốn Y của nó Tập X được sử dụng cho huấn luyện mạng được gọi là tập huấn luyện (training set) Các phần tử x thuộc X được gọi là các mẫu huấn luyện (training

example) Quá trình huấn luyện bản chất là sự thay đổi các trọng số liên kết của mạng Trong quá trình này, các trọng số của mạng sẽ hội tụ dần tới các giá trị sao cho với

mỗi vector đầu vào x từ tập huấn luyện, mạng sẽ cho ra vector đầu ra y như mong

muốn [7]

Có ba phương pháp học phổ biến là học có giám sát (supervised learning), học

không giám sát (unsupervised learning) và học tăng cường (reinforcement learning):

Học có giám sát: Là quá trình học có sự tham gia giám sát của một “thầy giáo”

Cũng giống như việc ta dạy một em nhỏ các chữ cái Ta đưa ra một chữ “a” và bảo với em đó rằng đây là chữ “a” Việc này được thực hiện trên tất cả các mẫu chữ cái

Ngày đăng: 08/08/2017, 23:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1]. Bùi Quang Chiến (2007), Ứng dụng mạng Neural trong nhận dạng ký tự, Đồ án tốt nghiệp, Trường đại học dân lập Hải phòng Sách, tạp chí
Tiêu đề: Ứng dụng mạng Neural trong nhận dạng ký tự
Tác giả: Bùi Quang Chiến
Năm: 2007
[2]. Nguyễn Quan Hoan (2006), Xử lý ảnh, Giáo trình xử lý ảnh, Học viện Bưu chính viễn thông Sách, tạp chí
Tiêu đề: Xử lý ảnh
Tác giả: Nguyễn Quan Hoan
Năm: 2006
[3]. Phạm Huy Hoạt (2011), Ký pháp nghịch đảo Ba Lan, Thư viện bài giảng điện tử Sách, tạp chí
Tiêu đề: Ký pháp nghịch đảo Ba Lan
Tác giả: Phạm Huy Hoạt
Năm: 2011
[4]. Nguyễn Trọng Khiêm (2013), Nhận dạng biển số xe, Đồ án tốt nghiệp, Trường Đại học Nha Trang, Khánh Hòa Sách, tạp chí
Tiêu đề: Nhận dạng biển số xe
Tác giả: Nguyễn Trọng Khiêm
Năm: 2013
[5]. Lê Hoàng Thanh (2016), Mạng neural nhân tạo, Bài giảng Machine learning, Trường Đại học Nha Trang, Khánh Hòa Sách, tạp chí
Tiêu đề: Mạng neural nhân tạo
Tác giả: Lê Hoàng Thanh
Năm: 2016
[6]. Nguyễn Đình Thúc (2000), Mạng Nơ ron phương pháp và ứng dụng, Giáo trình trí tuệ nhân tạo, Nhà xuất bản giáo dục Sách, tạp chí
Tiêu đề: Mạng Nơ ron phương pháp và ứng dụng
Tác giả: Nguyễn Đình Thúc
Nhà XB: Nhà xuất bản giáo dục
Năm: 2000
[8]. PETERSON, Leif E (2009), K-nearest neighbor, Scholarpedia Sách, tạp chí
Tiêu đề: K-nearest neighbor
Tác giả: PETERSON, Leif E
Năm: 2009
[9]. Các tài liệu về thư viện EmguCV http://www.emgu.com/wiki/index.php/Main_Page [10]. Tài liệu về SVM Link

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