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 1TRƯỜ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 2LỜ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 3MỤ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 43.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 54.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 6DANH 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 7Hì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 8Hì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 9LỜ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 10NHẬ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 13ký 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 14Bướ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 15thiế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 17nhậ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 19Tạ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 21CHƯƠ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 23Erosion: đượ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à A ⊕ B 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 24Opening: 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 25nhiễ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 263.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 293.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 303.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 313.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 32luyệ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 33Hì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 34Tì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 353.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 37o 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 38o 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 39và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 40dụ 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