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

Phương pháp nhận dạng chữ viết tay tiếng việt dựa trên mô hình mạng nơron

99 117 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 99
Dung lượng 2,2 MB

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

Nội dung

MỞ ĐẦU Nhận dạng chữ là một trong những hệ thống nhận dạng nhằm mục đích tự động hoá quá trình thu nhận các thông tin dạng chữ, nhiệm vụ của hệ thống là từ dạng thông tin thu nhận được c

Trang 1

Lời cám ơn

Đầu tiên, tôi xin gửi lời cám ơn sâu sắc tới cán bộ hướng dẫn khoa học, thầy giáo PGS.TS Đinh Mạnh Tường, người đã chỉ bảo tận tình, truyền thụ cho tôi kiến thức để có thể hoàn thành luận văn tốt nghiệp này

Tôi xin bày tỏ lời cám ơn tới các thầy cô giáo đã giảng dạy tôi trong suốt thời gian học cao học tại trường đại học Công nghệ - ĐHQG Hà Nội Những tri thức do các thầy cô truyền đạt thực sự đã giúp tôi rất nhiều trong việc nghiên cứu khoa học

và trong công tác

Tôi cũng xin chân thành cám ơn những tình cảm, những sự giúp đỡ về chuyên môn của các thầy giáo, các bạn đồng nghiệp trong Khoa Công nghệ thông tin, Trường ĐH Thuỷ Lợi

Cuối cùng tôi xin gửi lời cám ơn sâu sắc tới tất cả những người thân trong gia đình và bạn bè tôi Họ thực sự là nguồn động viên vô tận đối với tôi trong công việc cũng như trong cuộc sống

Học viên thực hiện luận văn

Trần Thị Minh Hoàn

Trang 2

Mục lục

Lời cám ơn 1

Mục lục 2

Danh mục các bảng 5

Danh mục các hình vẽ, đồ thị 6

MỞ ĐẦU 7

CHƯƠNG 1 TỔNG QUAN 13

1.1 Quy trình chung của một hệ nhận dạng chữ 13

1.1.1 Phân lớp mẫu 13

1.1.2 Cấu trúc của hệ thống nhận dạng văn bản 14

1.2 Mạng nơron nhiều lớp MLP và thuật toán lan truyền ngược 17

1.2.1 Cấu trúc của một nơron 17

1.2.2 Cấu trúc một Perceptron 19

1.2.3 Kiến trúc mạng nhiều lớp truyền thẳng (MLP) 20

1.2.4 Quá trình huấn luyện mạng MLP 22

1.2.5 Ưu, nhược điểm của mạng MLP 29

1.3 Trích chọn đặc trưng ảnh 31

1.3.1 Phương pháp trích chọn đặc trưng ảnh theo hướng hình học (Gradient) 32

1.3.2 Phương pháp trích chọn đặc trưng ảnh theo cấu trúc (structural) 36

1.3.3 Phương pháp trích chọn đặc trưng ảnh theo tính lồi lõm (Concavity) 40

1.4 Kết luận 44

CHƯƠNG 2 NHẬN DẠNG TỪ DỰA TRÊN MÔ HÌNH ĐA MẠNG KẾT HỢP VỚI THỐNG KÊ NGỮ CẢNH 46

2.1 Áp dụng trích chọn đặc trưng ảnh trong nhận dạng chữ viết tay tiếng Việt 49

2.2 Mô hình đa mạng nơron áp dụng trong nhận dạng chữ viết tay tiếng Việt 50

2.2.1 Khó khăn và giải pháp đề xuất 50

Trang 3

2.2.2 Phân nhóm kí tự 53

2.2.3 Xây dựng hệ thống đa mạng 53

2.2.4 Ðánh giá ưu, nhược điểm của mô hình đa mạng 60

2.3 Bộ thống kê ngữ cảnh 61

2.3.1 Các khái niệm sử dụng trong bộ thống kê 61

2.3.2 Thuật toán kiểm tra mức độ hợp lý của một ký tự trong một xâu 63

2.3.3 Thuật toán lựa chọn một từ trong danh sách các từ ứng cử viên 64

2.4 Quá trình nhận dạng từ 65

2.4.1 Phương pháp nhận dạng 65

2.4.2 Cấu trúc dữ liệu sử dụng trong quá trình nhận dạng 66

2.4.3 Quá trình xác định các vị trí cắt khác nhau trên ảnh đầu vào 68

2.4.4 Thuật toán nhận dạng từ 70

2.5 Ðánh giá khả năng nhận dạng của mô hình 76

2.6 Kết luận 76

CHƯƠNG 3 CÀI ĐẶT HỆ THỐNG NHẬN DẠNG CHỮ VIẾT TAY HẠN CHẾ 78

3.1 Quy trình hoạt động của hệ thống 78

3.2 Quá trình tiền xử lý 80

3.2.1 Tiền xử lý trước khi phân tích ảnh văn bản cần nhận dạng 80

3.2.2 Căn chỉnh độ lệch trang văn bản 80

3.2.3 Lọc nhiễu 85

3.2.4 Phân ngưỡng 86

3.2.5 Tiền xử lý trước khi nhận dạng kí tự 86

3.3 Quá trình phân vùng ảnh 87

3.3.1 Tách dòng văn bản 88

3.3.2 Tách từ 89

3.4 Quá trình nhận dạng 91

3.5 Quá trình hậu xử lý 91

3.6 Kết luận 91

Trang 4

CHƯƠNG 4 THỬ NGHIỆM HỆ THỐNG NHẬN DẠNG CHỮ VIẾT TAY

HẠN CHẾ 92

4.1 Môi trường thử nghiệm 92

4.2 Dữ liệu và kết quả thử nghiệm 92

4.2.1 Thử nghiệm nhận dạng chữ cái viết tay 92

KẾT LUẬN 95

I TÓM TẮT CÁC KẾT QUẢ ĐẠT ĐƯỢC CỦA LUẬN VĂN 95

II NHỮNG VẤN ĐỀ CHƯA ĐẠT ĐƯỢC 96

III HƯỚNG PHÁT TRIỂN 96

TÀI LIỆU THAM KHẢO 97

Trang 5

Danh mục các bảng

Bảng 1.1: Một số hàm kích hoạt thường dùng trong các mô hình mạng nơron 19

Bảng 1.2: Mặt nạ Sobel theo hai hướng X và Y 33

Bảng 1.3: Kết quả thu được khi tìm đặc trưng về hướng cho phần thứ 8 của ảnh 36

Bảng 1.4: Vị trí tương đối của điểm ảnh X và tám điểm ảnh lân cận 37

Bảng 1.5: Các luật về đặc trưng theo cấu trúc của điểm ảnh 38

Bảng 2.1: Phân nhóm ký tự tiếng Việt dựa trên đặc trưng ảnh 52

Bảng 4.1: Kết quả thực nghiệm 94

Trang 6

Danh mục các hình vẽ, đồ thị

Hình 1.1: Qui trình chung của một hệ thống nhận dạng chữ 14

Hình 1.2: Cấu trúc của một nơron 17

Hình 1.3: Cấu trúc một Perceptron 20

Hình 1.4: Mô hình mạng MLP 2 lớp 21

Hình 1.5: Ảnh ban đầu và ảnh sau khi được bao 33

Hình 1.6: Ảnh được chia ra làm 4*4 phần 36

Hình 1.7: Hướng được lượng tử thành 12 giá trị 37

Hình 1.8: Số điểm đen trong một vùng 41

Hình 1.9: Số điểm đen liên tục theo chiều thẳng đứng, ngang 42

Hình 1.10: Ví dụ về điểm lồi lõm và lỗ trống có trong ảnh 44

Hình 2.1: Sơ đồ hoạt động tổng quát của mô hình nhận dạng 48

Hình 2.2: Cấu trúc hệ thống đa mạng 54

Hình 2.3: Cấu trúc mạng nơron hai lớp truyền thẳng 55

Hình 2.4: Quá trình lưu trữ các kết quả nhận dạng 67

Hình 2.5: Kết quả thực hiện của thuật toán xác định các vị trí cắt trên ảnh đầu vào 70 Hình 2.6: Kết quả của toán nhận dạng ở lần thực hiện đầu tiên 74

Hình 2.7: Cây kết quả cuối cùng được tạo ra bởi thuật toán nhận dạng 75

Hình 3.1: Qui trình nhận dạng của hệ thống 79

Hình 3.2: Ảnh đầu vào và đầu ra của thuật toán căn chỉnh độ lệch trang văn bản 85

Hình 3.3: Kiểu nhiễu đốm và nhiễu vạch thường gặp trong nhận dạng 85

Hình 3.4: Kết quả của việc hiệu chỉnh kích thước ảnh 87

Hình 3.5: Sơ đồ thuật toán tách dòng văn bản 88

Hình 3.6: Sơ đồ thuật toán tách từ trên một dòng văn bản 90

Trang 7

MỞ ĐẦU

Nhận dạng chữ là một trong những hệ thống nhận dạng nhằm mục đích tự động hoá quá trình thu nhận các thông tin dạng chữ, nhiệm vụ của hệ thống là từ dạng thông tin thu nhận được (các ảnh chữ qua máy scan, chữ viết trực tiếp trên màn hình ) hệ thống sẽ phân tích, sắp xếp, gạn lọc, phân loại chúng, dùng các kỹ thuật riêng biệt để xử lý nhằm phục vụ cho ứng dụng cụ thể con người Ðây là một vấn đề gặp nhiều khó khăn bởi chữ viết rất đa dạng Ngoài yếu tố công nghệ, chữ viết của mỗi dân tộc có đặc thù riêng do đó cần phải quan tâm nghiên cứu, tìm ra giải pháp nhằm nhận dạng chữ viết hiệu quả nhất

Ngày nay nhận dạng chữ trở thành một ứng dụng quan trọng trong đời sống xã hội của con người Nhận dạng chữ viết được ứng dụng để tự động hoá một số công việc văn phòng như lưu trữ văn bản, phân loại thư tín, nhận dạng mã sản phẩm bằng

hệ thống tự động và trong rất nhiều các ứng dụng khác của xã hội.v.v nhằm giảm bớt các công việc nhàm chán nhưng đòi hỏi nhiều thời gian và công sức của con người

Nhận dạng chữ được chia ra thành hai khía cạnh chính là nhận dạng chữ in và nhận dạng chữ viết tay Nhận dạng chữ in để phục vụ cho công tác đọc tự động văn bản, đẩy nhanh việc nhập thông tin vào máy Hiện nay, bài toán nhận dạng chữ in

đã giải quyết được gần như trọn vẹn trên thế giới cũng như đã có những sản phẩm

có giá trị thực tế cao, hệ nhận dạng chữ in dựa trên mô hình mạng nơron bốn lớp của hai tác giả J Wang và J.S.N Jean được giới thiệu trong [12] một hệ thống nhận dạng ký tự sử dụng mạng nơron không những tăng tốc độ lên 20 lần so với đơn mạng mà còn nhận dạng chính xác ký tự từ 99.8% đến 99.9%, đây là một tỷ lệ gần như tối đa và hệ nhận dạng này đã nhanh chóng được áp dụng vào rất nhiều ứng dụng, sản phẩm FineReader của hãng ABBYY có thể nhận dạng chính xác một cách tối đa, chúng chuyển đổi những file dạng pdf, ảnh từ máy quét và máy kỹ thuật

số thành văn bản có thể soạn thảo và sửa đổi [5], sản phẩm OmniPage của hãng ScanSoft nhận dạng chữ tiếng Anh, sản phẩm VnDOCR của Viện Công nghệ

Trang 8

Thông tin nhận dạng chữ Việt in với độ chính xác tới 99%, Song, với bài toán nhận dạng chữ viết tay thì vấn đề trở nên phức tạp hơn do lối viết tự do của mỗi người là khác nhau, đặc biệt là chữ viết tay, sự khác nhau do những nguyên nhân sau:

 Các kí tự trong một văn bản, chữ viết tay thường có kích thước khác nhau Thậm chí, cùng một ký tự trong một văn bản do một người viết nhiều khi cũng có độ rộng, hẹp, cao, thấp khác nhau,

 Với nhiều người viết khác nhau chữ viết có độ nghiêng khác nhau (chữ nghiêng nhiều, ít, chữ nghiêng trái, phải)

 Các ký tự của một từ trên văn bản chữ viết tay đối với hầu hết người viết thường bị dính nhau vì vậy rất khó xác định được phân cách giữa chúng

 Các văn bản chữ viết tay còn có thể có trường hợp dính dòng (dòng dưới bị dính hoặc chồng lên dòng trên)

 Đặc biệt trong bộ chữ tiếng Việt có dấu, các ký tự chỉ khác nhau về dấu còn

về phần thân là giống nhau, chính vì thế việc nhận dạng sẽ dễ nhầm lẫn giữa các ký tự với nhau

 Số lượng các ký tự trong tiếng Việt nhiều hơn so với số lượng ký tự tiếng Anh, do một ký tự chỉ cần khác nhau về dấu là đã khác nhau, vì vậy việc nhận dạng sẽ phải làm việc nhiều hơn và nhớ nhiều đặc điểm hơn

Với những khó khăn trên, có thể nói cho đến thời điểm này vẫn chưa có được một giải pháp nào đủ tốt để giải quyết được trọn vẹn bài toán nhận dạng chữ viết tay Hiện nay trên thế giới cũng như ở Việt Nam có một số nhóm nghiên cứu đã đầu

tư nhiều thời gian cho nhận dạng chữ viết tay và hiện đã thu được một số kết quả Song, những kết quả này mới chỉ được áp dụng một cách hạn chế ở những lĩnh vực hẹp, một số nhóm điển hình có thể kể đến như nhóm nghiên cứu D‟Amato, E Kuebert, A Lawson với nhận dạng địa chỉ chữ viết tay của bưu điện [3] Nhóm nghiên cứu N Gorski, V Anisimov, E Augustin, O Baret, D Price, J Simon với việc kiểm tra tài khoản trong hệ thống ngân hàng [4] nhóm nghiên cứu của J.Hull,

Trang 9

T.k.Ho, J.Favata, V.Govindaraju và S.N.Srihari ở trung tâm nghiên cứu về nhận dạng và phân tích văn bản của trường Đại học Tổng hợp New York đã cài đặt hệ thống chuyên nhận dạng các địa chỉ thư ở bưu điện [17], hệ thống nhận dạng chữ viết tay trực tuyến hạn chế của Giovanni Seniy, Nasser Nasrabadiz, Rohini Srihariy, trung tâm nghiên cứu phân tích và nhận dạng tài liệu, khoa kỹ thuật máy tính và điện tử, đại học New York [19]

Như vậy, việc tìm ra một lời giải khả thi cho bài toán nhận dạng chữ viết tay là một vấn đề cấp thiết và rất phức tạp, hiện tại vẫn cần đầu tư nhiều thời gian và công sức của con người Trong luận văn này tôi cũng không kỳ vọng là giải quyết được trọn vẹn bài toán nhận dạng chữ viết tay tiếng Việt mà chỉ hy vọng đóng góp thêm được một phương pháp khả thi để giải quyết một lớp bài toán con trong lĩnh vực nhận dạng chữ viết tay

Bài toán đặt ra trong luận văn là “Phương pháp nhận dạng chữ viết tay tiếng Việt dựa trên mô hình mạng nơron ” Trong phần này tôi tập trung vào vấn đề

trích chọn đặc trưng và nhận dạng chữ sau khi đã tách ra khỏi từ, đây là giai đoạn quan trọng nhất và cũng là mục đích của các hệ nhận dạng chữ viết, tiếp theo là giải quyết vấn đề dính chữ trong một từ, với bài viết luận văn này, tôi mong muốn đóng góp thêm được một giải pháp khả thi để giải quyết một lớp bài toán con của bài toán nhận dạng chữ viết tay tiếng Việt từ đó tạo cơ sở để xây dựng và phát triển một sản phẩm nhận dạng văn bản viết tay tiếng Việt hoàn chỉnh với một số ràng buộc nhất định Để có thể giải quyết được bài toán này chúng tôi đặt ra những ràng buộc sau đối với đoạn văn bản viết tay là đầu vào của hệ nhận dạng (đây được coi là phạm vi của bài toán):

 Dấu và các mũ của ký tự viết tiếng Việt phải thẳng đứng so với nguyên âm trong từ, không được cách quá xa so với ký tự

 Chữ viết tay được xem xét là các chữ số và chữ cái tiếng Anh, tiếng Việt

 Các ký tự trên văn bản cần nhận dạng không được quá nghiêng

Trang 10

Sở dĩ, chúng tôi lựa chọn mạng nơron làm công cụ để thực hiện các thuật toán nhận dạng bởi lẽ mô hình mạng nơron được xây dựng theo nguyên tắc mô phỏng hoạt động bộ não của con người nên nó rất thích hợp với bài toán nhận dạng và so với các công cụ khác mạng nơron có những ưu điểm vượt trội sau:

 Có thể nhận dạng đúng ngay cả khi ảnh bị nhiễu, mạng nơron được coi như một bộ xấp xỉ vạn năng

 Khi cung cấp một tập mẫu của ký tự huấn luyện, mạng có khả năng học và thích nghi với các mẫu mới

 Mạng có khả năng nhận dạng cả ký tự của nhiều người khác nhau, tức chúng

có khả năng đưa ra những kết quả mang tính tổng quát hoá

 Có khả năng xử lý vectơ vào có một phần bị hỏng tức là có khả năng dung thứ lỗi

 Quá trình học của mạng tương đối dài nhưng quá trình nhận dạng lại rất nhanh

Trên cơ sở đó, nội dung của luận văn tập trung chủ yếu vào một số vấn đề sau:

 Khảo sát cách tiếp cận nhận dạng dựa trên mô hình mạng nơron

 Đánh giá khả năng nhận dạng cũng như các ưu nhược điểm của mạng nhiều lớp truyền thẳng MLP (Multilayer Perceptrons)

 Áp dụng phương pháp trích chọn đặc trưng phù hợp đối với ký tự trước khi đưa vào mô hình mạng nơron để xử lý

 Đề xuất mô hình đa mạng nơron thích hợp cho nhận dạng các ký tự viết tay tiếng Việt

 Đề xuất một mô hình nhận dạng từ dựa trên sự kết hợp giữa bộ nhận dạng ký

tự với một bộ thống kê ngữ cảnh

 Xây dựng hệ thống nhận dạng ký tự chữ viết tay

Với các nội dung trên, cấu trúc của luận văn sẽ gồm những phần chính sau đây Chương 1: Tổng quan về nhận dạng chữ dựa trên mô hình mạng nơron

Trang 11

Nội dung của chương này sẽ tập trung khảo sát cách tiếp cận nhận dạng dựa trên

mô hình mạng nơron thông qua mô hình mạng nhiều lớp truyền thẳng MLP (Multilayer Perceptrons) Từ đó đánh giá được các ưu, nhược điểm của mạng MLP, đây cũng chính là tiền đề cho quá trình xây dựng xây dựng mô hình nhận dạng ở chương sau

Chương 2: Nhận dạng từ dựa trên mô hình đa mạng nơron cải tiến kết hợp với thống kê ngữ cảnh

Chương này tập trung vào việc xây dựng mô hình hiệu quả để nhận dạng chữ viết tay hạn chế với những nội dung chính sau đây:

 Sử dụng phương pháp trích chọn đặc trưng phù hợp cho ký tự

 Sơ đồ tổng quan của mô hình nhận dạng từ được đề xuất bởi luận văn

 Quá trình xây dựng mô hình đa mạng nơron thích hợp cho nhận dạng chữ viết tay tiếng Việt

 Quá trình xây dựng bộ thống kê ngữ cảnh

 Đánh giá khả năng nhận dạng của mô hình

Chương 3: Cài đặt hệ thống nhận dạng chữ viết tay hạn chế

Chương này sẽ mô tả một cách cụ thể hơn về quy trình nhận dạng ký tự viết tay Đồng thời sẽ cụ thể hoá đến mức chi tiết nhất việc ứng dụng mô hình nhận dạng đã được đề xuất chương 3 để nhận dạng ký tự viết tay

Chương 4: Thí nghiệm hệ thống nhận dạng chữ viết tay hạn chế

Chương này sẽ mô tả chi tiết quá trình thí nghiệm cũng như các kết quả thí nghiệm của hệ thống với các tập dữ liệu khác nhau

Phần kết luận

Phần này sẽ nêu lên các vấn đề đã giải quyết được, chưa giải quyết được và hướng phát triển trong tương lai của luận văn

Các phần phụ lục A, B, C

Trang 12

Các phần phụ lục sẽ cung cấp các thông tin tham khảo có giá trị về các kết quả thực nghiệm của chương trình, các ký hiệu, từ khoá được sử dụng trong luận văn, các tài liệu tham khảo,

Trang 13

CHƯƠNG 1 TỔNG QUAN

1.1 Quy trình chung của một hệ nhận dạng chữ

Quy trình chung của một hệ thống nhận dạng chữ thường gồm hai giai đoạn là phân lớp mẫu và nhận dạng văn bản

Phân lớp (sắp lớp) mẫu là giai đoạn quyết định trong quá trình nhận dạng Hai kiểu phân lớp điển hình thường được sử dụng là: phân lớp có thầy (học có thầy) và phân lớp không có thầy (học không có thầy ) Các vấn đề thường được đặt ra trong bước phân lớp là:

• Độ chính xác: Độ tin tưởng của một luật phân lớp được thể hiện bởi tỷ lệ phân

lớp đúng Nhìn chung, độ chính xác được đo bởi tập dữ liệu học và độ chính xác được đo bởi tập dữ liệu thí nghiệm là khác nhau Đây không phải là một điều bất thường, đặc biệt trong các ứng dụng học máy, đối với tập dữ liệu học thì có thể đúng hoàn toàn, nhưng trên tập dữ liệu thử nghiệm có khi kết quả lại rất tồi tệ Khi nói đến độ chính xác của một thuật toán phân lớp thì thường là nói đến độ chính xác trên tập dữ liệu thử nghiệm Kinh nghiệm thực tế cho thấy, độ chính xác của một thuật toán phân lớp phụ thuộc khá nhiều vào tập dữ liệu học (cả về mặt số lượng lẫn chất lượng) nói một cách khác là việc trích chọn đặc trưng của các mẫu có ảnh hưởng lớn tới độ chính xác của quá trình phân lớp

• Tốc độ phân lớp: Đây là yếu tố đặc biệt quan trọng đối với các hệ thống có

tính thời gian thực, chẳng hạn như nhận dạng chữ viết tay trực tuyến (online),

• Tính dễ hiểu: Thuật toán phân lớp đơn giản, dễ cài đặt và hiệu quả

• Thời gian học: Nhất là trong một môi trường thường xuyên thay đổi, cần phải

học một luật phân lớp một cách nhanh chóng hoặc hiệu chỉnh một luật đã có trong thời gian thực Để học nhanh, nhiều khi ta chỉ cần sử dụng một số lượng nhỏ các mẫu huấn luyện để thiết lập các luật phân lớp

Trang 14

1.1.2 Cấu trúc của hệ thống nhận dạng văn bản

Cấu trúc cơ bản của hệ thống nhận dạng được chỉ ra trong hình 1.1 Một số công việc thực hiện trong xử lý nhận dạng là độc lập với hướng nghiên cứu một số khác thì liên quan và có thể được sử dụng để phân biệt giữa các hệ thống khác nhau Các bước cần thực hiện trong giai đoạn này bao gồm:

đặc trưng

Nhận dạng bằng mạng nơronChuẩn hoá

Hình 1.1: Qui trình chung của một hệ thống nhận dạng chữ

Bước 1 Thu nhận và lưu trữ ảnh: Đây là công đoạn đầu tiên trong một quá trình

nhận dạng ảnh Trong một hệ thống nhận dạng, ảnh thường được thu nhận qua máy quét, sau đó được lưu trữ dưới các định dạng file (*.pcx, *.bmp, *.jpg, *.tif, *.gif,

*.png ) Nhìn chung việc lựa chọn định dạng file lưu trữ sẽ tuỳ thuộc vào các văn bản đầu vào cần nhận dạng và các yêu cầu cụ thể của từng hệ thống

Trang 15

Bước 2 Chuẩn hoá: độ nghiêng nằm ngang và thẳng đứng của ảnh dữ liệu thường

lớn hơn 0 do quá trình thu nhận ảnh và nét chữ tự do của người viết, khi đưa vào trong ảnh và độ nghiêng của chúng sẽ không thay đổi, do đó ta sẽ phải chuẩn hoá để ảnh của từ được thẳng đứng, trong công đoạn này ta sử dụng mật độ histogram lớn nhất để xác định dòng theo chiều ngang và theo chiều đứng của văn bản Quá trình này sẽ nâng cao chất lượng ảnh đầu vào Nói chung chất lượng của ảnh đầu vào sẽ ảnh hưởng nhiều đến chất lượng nhận dạng, ngoài việc căn chỉnh độ nghiêng của văn bản còn có một số thao tác chuẩn hoá khác như khử nhiễu ảnh đầu vào

Bước 3 Phân đoạn ảnh: Đây là một trong những công đoạn quan trọng của quá

trình nhận dạng và có ảnh hưởng lớn đến kết quả nhận dạng Hai cách tiếp cận phổ biến được đề xuất trong quá trình phân đoạn ảnh là:

• Cách tiếp cận trên xuống (top-down): Toàn bộ ảnh văn bản phân đoạn được coi

là một khối lớn, sau đó khối này được phân thành các khối nhỏ hơn, các khối nhỏ hơn này lại tiếp tục được phân thành các khối nhỏ hơn nữa cho đến khi thu được các ký tự hoặc không thể phân nhỏ hơn được nữa Nhìn chung, với cách tiếp cận này, phương pháp thường dùng để phân đoạn ảnh là sử dụng các biểu

đồ tần suất ngang và dọc Tuy nhiên, do biểu đồ tần suất bị ảnh hưởng nhiều bởi

độ nghiêng trang văn bản nên trước khi xử lý phân đoạn, ta thường phải căn chỉnh độ lệch của trang văn bản

• Cách tiếp cận dưới lên (bottom-up): Quá trình phân đoạn bắt đầu bằng việc xác định những thành phần nhỏ nhất, sau đó gộp chúng lại thành những thành phần lớn hơn, cho đến khi thu được tất cả các khối trong trang văn bản

Bước 4 Nhận dạng: Bao gồm hai công đoạn, thứ nhất là trích chọn đặc trưng để

giảm kích cỡ đầu vào và tìm được những nét cơ bản nhất của ký tự Tiếp theo là sử dụng đa mạng nơron để nhận dạng ký tự, đây chính là thao tác gán nhãn cho đối tượng dựa trên những tri thức đã học được, nói cách khác đây là thao tác tìm kiếm một lớp mẫu phù hợp nhất với đối tượng đầu vào

Trang 16

Bước 5 Hậu xử lý: Đây là một trong những công đoạn cuối cùng của quá trình

nhận dạng Trong nhận dạng chữ, có thể hiểu hậu xử lý là bước ghép nối các ký tự

đã nhận dạng được thành các từ, các câu, các đoạn văn nhằm tái hiện lại văn bản đồng thời phát hiện ra các lỗi nhận dạng bằng cách kiểm tra chính tả dựa trên cấu trúc và ngữ nghĩa của câu, đoạn văn Việc phát hiện ra các lỗi, các sai sót trong nhận dạng ở bước này đã góp phần đáng kể vào việc nâng cao kết quả nhận dạng Đặc biệt đối với các ảnh văn bản đầu vào không tốt (chẳng hạn: Bản in bị mờ, bị đứt nét do photo nhiều lần, ) hoặc các văn bản in chứa nhiều thông tin hỗn hợp (chẳng hạn trong văn bản có cả số lẫn chữ và các ký hiệu), điều này rất dễ gây nhầm lẫn trong nhận dạng Thậm chí có những trường hợp nhập nhằng chỉ có thể giải quyết được bằng ngữ cảnh bằng cách phân tích ngữ cảnh của câu, chẳng hạn như trường hợp nhập nhằng giữa từ “IO” với số “10”

Bước 6 Lưu văn bản: Sau khi văn bản cần nhận dạng đã được tái tạo về dạng

nguyên bản sẽ được lưu lại ở các định dạng file được hệ thống hỗ trợ, chẳng hạn như file dạng (.doc, rtf, xls, )

Một trong những thủ tục quan trọng và tiêu tốn nhiều thời gian của các phương pháp nhận dạng truyền thống là làm mảnh ký tự Thủ tục này làm giảm độ rộng các nét ký tự xuống còn một điểm nhằm phát hiện bộ khung xương của ký tự Thủ tục này tạo điều kiện cho việc tìm kiếm các dấu hiệu đặc trưng của ký tự, song nó cũng làm cho một số ký tự trở nên giống nhau hơn Do đó gây khó khăn cho các thủ tục

ra quyết định sau này Thủ tục này sẽ không làm việc tốt khi chất lượng quét của máy quét tồi hoặc bản thân ký tự lấy từ văn bản mờ hoặc có nét đứt Do đó cần được các thủ tục tiền xử lý như làm trơn đường biên, khử nhiễu trợ giúp

Các phương pháp ra quyết định trong phương pháp nhận dạng truyền thống được cài đặt tĩnh trong chương trình Các phương pháp này dựa vào việc nghiên cứu đặc trưng của các ký tự như số giao điểm hoặc cấu trúc các ký tự như số điểm kết thúc, số chu trình, số thành phần liên thông, Nhìn chung các phương pháp truyền thống đều gặp khó khăn khi chất lượng ảnh sau khi số hoá tương đối kém

Trang 17

Hiện nay, cách tiếp cận nhận dạng dựa trên mô hình mạng nơron đang trở thành một trong những hướng nghiên cứu chính và nó đã được ứng dụng rộng rãi không chỉ trong lĩnh vực nhận dạng chữ mà cả những lĩnh vực khác, chẳng hạn như: Điều khiển thông tin, dự tính, dự báo, Mạng nơron có khả năng học từ kinh nghiệm hay từ một tập mẫu do vậy nó rất phù hợp với các bài toán đối sánh, phân loại mẫu, xấp xỉ hàm, tối ưu hoá, lượng tử hoá vectơ và phân hoạch không gian dữ liệu

Trong số các mô hình mạng có thể ứng dụng trong nhận dạng thì mô hình mạng nhiều lớp truyền thẳng MLP (Multilayer Perceptrons) với thuật toán huấn luyện lan truyền ngược sai số là mô hình mạng phổ biến nhất và được ứng dụng nhiều nhất Phần sau đây, luận văn sẽ tập trung khảo sát khả năng nhận dạng của mô hình mạng này một cách cụ thể và chi tiết hơn

1.2 Mạng nơron nhiều lớp MLP và thuật toán lan truyền ngược

Một nơron là một đơn vị xử lý thông tin và là thành phần cơ bản của một mạng nơron Cấu trúc của một nơron được mô tả trên hình 1.2

Hình 1.2: Cấu trúc của một nơron

Trong đó:

• (x1, x2, , xp ): Là các tín hiệu đầu vào (input signals) của một nơron, các tín

hiệu này thường được đưa vào dưới dạng một vectơ p chiều

Trang 18

• (wk1, wk2, , wkp): Là tập các trọng số liên kết của nơron k với p đầu vào, trọng

số liên kết giữa tín hiệu vào thứ j với nơron k thường được kí hiệu là w kj Thông thường, các trọng số liên kết của mỗi nơron được khởi tạo một cách ngẫu nhiên

ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng

•  :Là hàm tổng trên một nơron, dùng để tính tổng giá trị kích hoạt lên nơron

đó (thường tính bằng tổng của tích các đầu vào với trọng số liên kết của nó)

• u k: Là tổng giá trị kích hoạt lên nơron thứ k (giá trị này là đầu ra của hàm tổng)

• b k: Là độ lệch của nơron thứ k, giá trị này được dùng như một thành phần phân ngưỡng trên hàm kích hoạt

• f(): Là một hàm kích hoạt (Activation function), hàm này được dùng để giới hạn phạm vi đầu ra của mỗi nơron Giá trị của hàm này thường được xác định dựa trên hàm tổng và độ lệch đã cho Thông thường, phạm vi đầu ra của mỗi nơron được giới hạn trong đoạn [0,1] hoặc [-1, 1] Các hàm kích hoạt có thể là các hàm tuyến tính hoặc phi tuyến Việc lựa chọn hàm kích hoạt nào là tuỳ thuộc vào từng bài toán Một số hàm kích hoạt thường sử dụng trong các mô hình mạng nơron được thực hiện trên bảng 1-1

• y k: Là tín hiệu đầu ra của một nơron, mỗi nơron sẽ có tối đa một đầu ra

Với thuật ngữ toán học, cấu trúc của một nơron k, được mô tả bằng cặp biểu thức sau:

Trang 19

Bảng 1.1: Một số hàm kích hoạt thường dùng trong các mô hình mạng nơron

Perceptron là một cấu trúc mạng nơron đơn giản nhất chỉ gồm một nơron với các liên kết có khả năng thay đổi trọng số và một hàm kích hoạt như đã mô tả trên hình 1.3

Trang 20

Hình 1.3: Cấu trúc một Perceptron

Trong đó:

[x 1 , x 2 , , x p]: là vectơ đầu vào của mạng

w1, w2, , w p : là các trọng số liên kết của đầu vào

b: là độ lệch của nơron trên lớp Perceptron.

y: là đầu ra của mạng được xác định bởi: yf(u)  {-1,  1} với u p x w i b



1

Hàm kích hoạt f thường dùng ở đây là hàm tuyến tính (hardlims - Bảng 1-1),

với giá trị hàm được xác định theo công thức:

y = hardlim(x) = -1 nếu x<0 và bằng 1 trong trường hợp ngược lại

Do cấu trúc đơn giản nên mỗi Perceptron chỉ có khả năng phân lớp được trên tập mẫu khả tách tuyến tính (các mẫu nằm trên hai mặt đối diện nhau của một siêu phẳng)

Mạng MLP là mô hình mạng phổ biến thường được sử dụng trong nhận dạng [9], [19], [22], [21] Cấu trúc mạng MLP là sự kết hợp của nhiều lớp nơron (ít nhất

là hai lớp), trong đó mỗi lớp nơron được tạo thành từ nhiều Perceptron và sự liên kết giữa các lớp nơron là liên kết đầy đủ

Về lý thuyết, người ta đã chứng minh được rằng chỉ cần sử dụng mạng nơron hai lớp truyền thẳng (gồm một lớp ẩn và một lớp ra) là đủ để giải quyết các bài toán phân lớp trên tập dữ liệu đầu vào không khả tách tuyến tính bằng cách huấn luyện

Trang 21

chúng theo cách có giám sát (có thầy) với một thuật toán học khá phổ biến là thuật toán lan truyền ngược sai số

Thật ra mạng Perceptron không thể học được bài toán XOR, hạn chế ấy là do chính cấu trúc của mạng Vì thế năm 1986 Rumelhart và McClelland đã cải tiến Perceptron thành mạng Perceptron nhiều lớp (MultiLayer Perceptron, MLP), hay còn gọi là mạng Feedforward, mạng truyền thẳng

Hình 1.4 thể hiện mô hình mạng hai lớp với một lớp ẩn Các liên kết trong mạng

là liên kết đầy đủ tức là một nơron trong một lớp bất kỳ của mạng được liên kết với tất cả các nơron ở lớp liền trước của nó Trong đó, các tín hiệu lan truyền trên mạng gồm hai loại:

 Các tín hiệu đầu ra của mỗi nơron, các tín hiệu này thường được truyền thẳng (theo từng nơron) trong mạng

 Sai số trên các lớp của mạng Mỗi tín hiệu sai số thường xuất phát ở một nơron đầu ra của mạng, và được lan truyền ngược (theo từng lớp) ở trên mạng

Lớp đầu vào Lớp ẩn

Trang 22

 Tính sai số trên các lớp mạng Các sai số này sẽ được lan truyền ngược từ lớp cuối cùng đến lớp đầu tiên của mạng

Như đã được đề cập ở phần trên, để huấn luyện mạng Perceptron nhiều lớp người ta sử dụng thuật toán lan truyền ngược sai số Đây là một thuật học rất phổ biến trong các phương pháp học có thầy (supervised learning) [19], [22] Tiêu chuẩn đánh giá của thuật toán này là sai số bình phương trung bình (mean square error)

Việc huấn luyện mạng MLP bởi thuật toán lan truyền ngược sai số bao gồm hai quá trình: quá trình truyền thẳng và quá trình truyền ngược Trong quá trình truyền thẳng, các vectơ đầu vào sẽ được cung cấp cho các nơron của mạng và tín hiệu sẽ được lan truyền lần lượt trên từng lớp mạng Cuối cùng ta sẽ tính được một tập các đầu ra thực sự của mạng Trong suốt quá trình truyền thẳng, tất cả các trọng số liên kết của mạng đều cố định Ngược lại, trong quá trình truyền ngược, tất cả các trọng

số liên kết sẽ được hiệu chỉnh theo các luật hiệu chỉnh trọng số Sai số của mạng sẽ được đo bằng độ sai lệch giữa đầu ra thu được với các giá trị mục tiêu tương ứng Các sai số này sau đó sẽ được lan truyền ngược lần lượt trên các lớp mạng (từ lớp cuối cùng đến lớp đầu tiên) Các trọng số liên kết sẽ được hiệu chỉnh sao cho các đầu ra thực sự của mạng càng gần với các giá trị mục tiêu càng tốt

Quá trình huấn luyện một mạng nơron hai lớp với thuật toán lan truyền ngược sai số được mô tả một cách chi tiết trên hình 1.5 Phần phía trên của mô hình thể hiện quá trình lan truyền thẳng các giá trị đầu ra của các lớp, còn phần phía dưới thể hiện quá trình lan truyền ngược sai số từ lớp cuối cùng về lớp đầu tiên của mạng Đây là mô hình mạng thực tế có thể sử dụng trong các chương trình nhận dạng Những ký hiệu sử dụng trên mô hình được quy định như sau:

 H, O: Lần lượt là ký hiệu của lớp ẩn và lớp đầu ra

 p, q: Lần lượt là số đầu vào và số đầu ra của mạng

Trang 23

 L: Là số lớp của mạng ( đây L = 2)

 (x 1 , x 2 , , x p ): Là p đầu vào của mạng

 (o 1 , o 2 , ,o q ): Là q đầu ra của mạng

 (t 1 , t 2 , , t q ): Là q giá trị mục tiêu tương ứng của vectơ đầu vào

v : Là tổng giá trị kích hoạt lên nơron thứ j của lớp i

 y i: Là đầu ra của các nơron trên lớp thứ i (i = 1L), với i = L thì i

j

y = o j với (j=1q)

 i: Là vectơ gradient của nơron ở lớp thứ i (i = 1L)

 e: Là vectơ sai số của mạng được thể hiện bởi các phần tử e 1, e2, , eq

Các mẫu huấn luyện thường được cung cấp cho thuật toán dưới dạng cặp vectơ: {(x = x1, , xp) , (t = t1, ,tq)}, trong đó x là vectơ đặc trưng p chiều của mẫu cần nhận dạng, các phần tử x 1 , , x p thường có giá trị  [-1,1] hoặc  [0,1] và t là giá trị

mục tiêu tương ứng của mẫu đó

Với mỗi mẫu đầu vào, thuật toán sẽ tiến hành hiệu chỉnh các tham số mạng để

cực tiểu hoá sai số bình phương trung bình: F(x) = E( e 2 ) = E(t –o)2, trong đó x là

vectơ tạo bởi các trọng số liên kết và độ lệch của mạng (x =

Nếu mạng có nhiều đầu ra thì :

F( x ) = E( e 2 ) = E(t –o) T (t-o)

Ta sẽ xấp xỉ sai số bình phương trung bình bởi

)

(

ˆ x

F ([t(k) – o(k)] T [t(k) – o(k)] = e T (k).e(k), trong đó giá trị hiện thời của sai

số bình phương trung bình sẽ được thay thế bằng sai số bình phương trung bình ở lần lặp thứ k

Thuật toán xuống dốc nhanh nhất để xấp xỉ sai số bình phương là

Trang 24

m j

m m

j

W

F k

W k

, ,

m

j

i,

ˆ)

()

m m

b k

Đối với mạng nhiều lớp, sai số là hàm gián tiếp của các trọng số trong các lớp

ẩn Do vậy để tính được các đạo hàm chúng ra phải sử dụng cách tính đạo hàm thành phần như sau: giả sử chúng ra có một hàm f là hàm trực tiếp duy nhất của

biến a Chúng ta muốn tính đạo hàm của f theo biến thứ ba w Khi đó ta tính:

dw

w da da

a df dw

w

a

) ( ))

m i m i

m

v v

F w

F

, ,

.ˆˆ

m i m i

m

v v

(1.5)

Ta dễ dàng tính được vế thứ hai của các biểu thức trên do mạng đưa vào lớp thứ

m là hàm trực tiếp của các trọng số và độ lệch trong lớp đó

m i

m j n

j

m j

Do vậy

1 ,

m i

Trang 25

Khi đó ta có:

1 ,

m j

m

w ( 1) ( ) ( 1)

, ,

w (  1 )  ( )   (  1 )

m m m

m

m

m n v F

v F v F

v

F

.2

v v

Trang 26

.

.

1 2 2

1 2 1

1 2

1 1 2

1 1 1

1 1

1

1 1

1

m n

m n m

m n m

m n

m n

m m

m m

m

m n

m m

m m

m

m m

v

v v

v v

v

v

v v

v v

v

v

v v

v v

,

1 ,

1 ,

1 1

, 1

m j m m j m

j

m j

m m j m j

m j m j m

j

m i

m l

m j m

y w v

b y w v

j

m

v

v f v

f ( )  ( )

Do vậy ta viết được ma trận Jacobian dưới dạng:

)(1

1

m m m

m

m

v F

00

0)

(0

0

0)(

)

(

2 1

m n m

m m

m m

m

m

m v f

v f

v f

v

Với hàm kích hoạt là hàm Log-Sigmoid, ta sẽ có:

) exp(

1

1 )

m i m

i

m i

m i

m i m

i

v v

v

v v

)exp(

1

1)(

)exp(

1

11

())exp(

1

(

)exp(

Trang 27

Vậy:

1 1

1 1

1

))(

(

ˆ)(ˆ

T m

m m

v

F v

F v

F v

v v

Với nhiều lớp lan truyền ngược lỗi, các lỗi sẽ được truyền ngược trên mạng từ lớp cuối cùng đến lớp đầu tiên Với mạng có L lớp thì các lỗi sẽ được lan truyền theo chiều mũi tên như sau:L  L-1  2  1 (1.23)

Từ công thức (18) và (19), ta thấy để tính được i (i = 1L-1), ta phải tính được

i+1 Như vậy, trước hết chúng ta phải tính được sai số lớp cuối cùng (L)

Như trên ta đã có:

L i

i i i L

i

n

j

j j L

i

T L

o t v

o t o t v

)()(

i

L L

i

L i L L

i

L i L

i

v

v f v

INPUT: Tập mẫu học được cung cấp dưới dạng {(x = x1, , xp) , (t = t1, ,tq)} OUTPUT: Các ma trận trọng số w1, w2, w3

PROCESS:

Bước 1: Khởi tạo:

- Khởi tạo các tham số mạng: err_max (sai số tối đa cho phép của mạng), bi, i ,

Trang 28

I (số lần lặp tối đa cho phép)

- Khởi tạo các giá trị một cách ngẫu nhiên cho các ma trận trọng số w2 , w 3

Bước 2: Đưa mẫu huấn luyện vào mạng (thiết lập các đầu vào và các giá trị mục

tiêu cho mạng), các mẫu huấn luyện có thể được đưa vào mạng một cách tuần tự hoặc ngẫu nhiên

Bước 3: Tính lần lượt giá trị đầu ra của các nơron trên các lớp H và O theo

các cộng thức (1.6), (1.7) và (1.20)

Bước 4: Tính sai số của các lớp mạng:

4.1) Tính sai số của lớp O theo công thức (1.27), (1.19) và (1.21), với m =2 4.2) Nếu sai số tính được > sai số hiện thời của mạng thì cập nhật lại sai số hiện thời của mạng

4.3) Áp dụng phương pháp lan truyền ngược sai số để tính lần lượt sai số của Htheo các công thức (1.22) và (1.19), với m =1

Bước 5: Cập nhật lại giá trị của các ma trận trọng số w i và độ lệch b i

(i=12) của các lớp H và O theo công thức (1.12)

Bước 6: Lặp lại các bước 3, 4, 5 đối với các mẫu huấn luyện mới cho đến khi

các tham số tự do của mạng ổn định và sai số mạng  err_max hoặc số lần lặp > I

Bước 7: return kết quả, nếu quá trình huấn luyện thành công thì trả về các ma trận

trọng số wi (i=1,2), trường hợp ngược lại thì trả về thông báo lỗi

Thuật toán 1-1: Thuật toán lan truyền ngược sai số huấn luyện mạng hai lớp

Sau khi mạng được huấn luyện thành công, các tri thức tích luỹ được trong quá trình huấn luyện mạng (các ma trận trọng số, các tham số tự do, ) sẽ được cập nhật vào cơ sở tri thức để sử dụng trong quá trình nhận dạng Thuật toán nhận dạng bởi mạng được mô tả như sau:

INPUT:

- Các hệ số học và các hệ số độ lệch trên mỗi lớp: αi, bi(i = 1,2)

Trang 29

Bước 2: Tính k = giá trị đầu ra lớn nhất của mạng (o k = max { o i | i=1 q} )

Bước 3: return ký tự mẫu tương ứng với đầu ra thứ k

Thuật toán 1-2: Thuật toán nhận dạng chữ dựa trên mô hình mạng nơron hai lớp

 Có thể điều chỉnh cấu trúc mạng để cho kết quả tốt hơn

 Việc nhận dạng có thể được thực hiện với các bộ xử lý song song

 Mạng có khả năng hội tụ cao

Nhược điểm

 Chỉ xử lí được các dữ liệu số Cần tích hợp thêm nhiều thành phần khác (ví dụ: các hệ mờ, các bộ số hoá ) để có thể xử lí những dữ liệu phi số

Trang 30

 Hiệu năng của mạng phụ thuộc bộ dữ liệu huấn luyện Để đảm bảo hiệu năng, mạng cần được huấn luyện với lượng dữ liệu lớn Quá trình huấn luyện

do đó rất dài Mặt khác nếu bộ dữ liệu được chuẩn bị không tốt thì mạng có khả năng tổng quát hoá thấp

 Mạng nơron gần như là một “hộp đen” đối với các phân tích Rất khó xác định được sự phân bố thông tin và xử lí trên các phần tử của mạng

 Không có một phương pháp chung nào để xác định cấu trúc mạng phù hợp từng bài toán Nhà nghiên cứu phải tiến hành thử nghiệm hoặc dựa vào kinh nghiệm để xác định

 Các thuật toán huấn luyện hiện chưa đảm bảo tránh quá trình huấn luyện rơi vào một cực trị địa phương Hơn nữa sai số huấn luyện giảm không đồng nghĩa với tăng hiệu năng hoạt động của mạng

 Mạng cấu trúc lớn cài đặt bằng phần mềm trên máy tính hoạt động rất chậm Việc xây dựng mạng nơron bằng phần cứng vẫn còn đang được nghiên cứu

 Do đặc trưng của sự liên kết giữa các lớp trong mạng là đầy đủ nên số lượng các liên kết và các tham số tự do trong mạng thường là rất lớn Điều này dẫn đến tốc độ tính toán cũng như tốc độ hội tụ của mạng là chậm

 Cũng do các liên kết giữa các lớp trong mạng là liên kết đầy đủ không có sự chọn lọc (ưu tiên) nên quá trình huấn luyện mạng có thể hội tụ đến một cực tiểu địa phương

 Kết quả nhận dạng của mạng sẽ bị ảnh hưởng nhiều khi ảnh bị di chuyển nghiêng, phóng to, thu nhỏ

 Mạng có thể học quá nhiều trên các vectơ đặc trưng đã được thể hiện điều này có thể dẫn tới hiện tượng quá khớp với tập mẫu học làm cho mạng không có khả năng nhận dạng chính xác các mẫu mới

Trang 31

1.3 Trích chọn đặc trưng ảnh

Đặc trưng ảnh được định nghĩa như sau:” Đặc trưng ảnh là tập hợp các thuộc tính, các đặc điểm nổi bật có trong một ảnh”, vậy trích chọn đặc trưng ảnh sẽ được hiểu là việc tìm và chọn ra các đặc trưng đặc thù của mỗi ảnh

Trong một ảnh không phải bất cứ đặc trưng ảnh nào cũng là cần thiết giúp cho phân biệt các ảnh đầu vào với nhau Nếu tất cả các đặc trưng có trong ảnh đều được

sử dụng thì sẽ dẫn tới việc xuất hiện nhiều thông tin không liên quan, làm cho quá trình nhận dạng khó phân biệt các đầu vào và tốn nhiều thời gian tính toán Do đó cần phải tìm được đặc trưng tốt, có nghĩa là tìm ra những đặc trưng mà giá trị của các đặc trưng này giống nhau với những đối tượng thuộc cùng một lớp nhưng rất

khác so với đối tượng thuộc lớp khác [7] Jussi Tohka, “Introduction to Pattern Recognition”, Tampere University of Technology

Trong một hệ nhận dạng với thuật toán nhận dạng cố định, tỷ lệ nhận dạng đúng

và thời gian nhận dạng sẽ khác nhau khi ta sử dụng các phương pháp trích chọn đặc trưng khác nhau cho ảnh đầu vào Do đó, bên cạnh việc phải xem xét, lựa chọn thuật toán nhận dạng phù hợp, việc tìm ra phương pháp trích chọn đặc trưng phù hợp sẽ nâng cao độ chính xác cũng như giảm thời gian nhận dạng của toàn bộ hệ thống Đây là 2 yếu tố rất quan trọng đối với một hệ thống nhận dạng khi được áp dụng trong thực tế

Đối với bài toán nhận dạng chữ viết tay thì việc trích chọn đặc trưng của ảnh đầu vào càng tỏ ra cần thiết vì số mẫu cho cùng một ký tự là rất lớn (chúng khác nhau cả về kích thước lẫn độ nghiêng) Do vậy việc tìm ra những đặc trưng đặc thù, không phụ thuộc vào các yếu tố trên là rất quan trọng

Như chúng ta đã biết, hệ thống dấu tiếng Việt là nguyên nhân chính hình thành nên các nhóm kí tự rất giống nhau và khó phân biệt Chỉ khi nắm bắt được đặc trưng của vùng khác nhau giữa các kí tự này thì việc phân biệt chúng mới trở nên dễ dàng hơn Trích chọn đặc trưng ảnh giúp hệ nhận dạng nhìn nhận được những đặc trưng đó để không nhầm lẫn các kí tự này với nhau

Trang 32

Thông thường, một ảnh có rất nhiều loại đặc trưng, trong đó cơ bản nhất là đặc trưng về hướng hình học, đặc trưng về cấu trúc và đặc trưng về tính lồi lõm Một cách tương ứng, chúng ta cũng có rất nhiều phương pháp trích chọn đặc trưng ảnh như ba phương pháp lấy đặc trưng cơ bản dưới đây [6] và một số phương pháp tổng hợp khác (GSC, Zernike moments, Karhunen Loeve Transformation, …)

1.3.1 Phương pháp trích chọn đặc trưng ảnh theo hướng hình học (Gradient)

Tìm ra đặc trưng về hướng của các điểm biên trong ảnh Với phương pháp này

ta có thể tìm các điểm biên của ảnh một cách dễ dàng cũng như xác định xem chúng thuộc vào miền ảnh nào

Vectơ gradient: Gradient là một vectơ có các thành phần biểu thị tốc độ thay

đổi giá trị điểm ảnh theo hai hướng x và y (trích dẫn trong [1] trang 109) Với ảnh

có giá trị mức xám của các điểm ảnh được biểu diễn bởi hàm f(x,y) thì vectơ

gradient tại điểm có toạ độ (x,y) được tính như trong công thức (2.3.1):

Trang 33

theo hướng hình học là tìm tần suất xuất hiện theo hướng của điểm biên ảnh trong một vùng nhất định Tư tưởng cơ bản của phương pháp này được miêu tả như sau:

Bước 1: Tìm hình bao của ảnh đầu vào và bao ảnh bởi hình bao này Việc làm

này được thực hiện bằng cách: ban đầu lấy hình bao là đường bao toàn bộ ảnh.Co dần đường bao này về phía tâm của ảnh cho tới khi nó tiếp xúc với một đường biên nào đó Kết quả của quá trình này được thể hiện như hình 1.5:

Tác dụng của việc bao ảnh là loại bỏ khoảng trống xung quanh phần ảnh mang thông tin thực sự nhằm loại bỏ các thông tin không cần thiết, đồng thời giảm thời gian tính toán của chương trình

Hình 1.5: Ảnh ban đầu và ảnh sau khi được bao

Bước 2: tính bản đồ Gradient và biên độ và hướng tại mỗi điểm ảnh theo toán tử

Sobel Cách tính bản đồ này như sau:

• Ảnh đầu vào được cho dưới dạng ma trân mức xám I(x,y) với kích thước D1*D2 Mặt nạ của toán tử Sobel theo toạ độ X (nằm ngang) và tọa độ Y (thẳng đứng) được biểu diễn bởi hai ma trận trong bảng 1.2:

-1 0 1 -2 0 2 -1 0 1

-1 -2 -1

Bảng 1.2: Mặt nạ Sobel theo hai hướng X và Y

• Với điểm ảnh có toạ độ (i, j), ta quan tâm đến giá trị mức xám tới điểm ảnh này và

8 điểm lân cận nó, các giá trị này được cho bởi ma trận I

Trang 34

• Các vectơ thành phần GX và GY của vectơ gradient tại điểm ảnh có tọa độ (i, j) khi

đó sẽ được tính dựa trên mặt nạ của toán tử Sobel theo hướng X và hướng Y như sau:

o Biên độ: Gradient_Manitude r(i, j) = G x2(i,j)G2y(i,j) (2.3.6)

o Hướng: Gradient_Direction (i,j) = tan-1 ( , )

Bước 3: Từ bản đồ biên độ, ta tìm các điểm biên của ảnh bằng cách chọn một

ngưỡng θ, và xét r(i, j) Nếu r(i, j) > θ thì điểm ảnh tại (i, j) là điểm biên

Bước 4: Đối với hướng của mỗi điểm biên: (i,j) có giá trị trong khoảng từ 0o

đến 360onên nếu ta lượng tử hoá các giá trị ( 0o– 30o; 30o– 60o; … 330o– 360o) bởi các giá trị tương ứng (0, 1, …, 11) thì bản đồ hướng của ảnh sẽ nhận các giá trị trong khoảng 0 11

Bước 5: sau khi tính được bản đồ biên độ và bản đồ hướng của ảnh, chia ảnh

thành 4*4 phần bằng nhau Với mỗi phần ảnh k (k = 0…15) ta làm như sau:

• Dựa vào bản đồ biên độ và bản đồ hướng để tính tổng số điểm biên có giá trị hướng lần lượt là 0, …, 11 Giả sử thu được bộ 12 giá trị ai với i = 0…11 và ai là tổng số điểm biên có giá trị hướng bằng i Với ngưỡng η được chọn trước (áp dụng cho tất cả các phần của ảnh) ta xác định lại giá trị ai như sau:

Trang 35

nếu ai > η thì ai = 1; ngược lại ai = 0;

• Kết quả.: phần ảnh k sẽ có 12 bit đặc trưng có giá trị 0 hoặc 1 (tương ứng với các

giá trị ai) thể hiện các đặc trưng về hướng của các điểm biên trong phần ảnh này Như vậy, sẽ đặc trưng theo hướng của toàn bộ ảnh sẽ là: 4*4*12 = 192 và được thực hiện dưới dạng bit nhị phân (0 hoặc 1)

Thuật toán miêu tả chi tiết phương pháp trích chọn đặc trưng theo hướng như sau: INPUT : ảnh đầu vào, giá trị ngưỡng threshold

OUTPUT : Vectơ đặc trưng của ảnh (192 bít)

PROCESS :

1 Xác định hình bao ảnh

2 Tính bản đồ Gradient về biên độ và hướng tới mỗi điểm ảnh

3 Xác định các điểm biên và lượng tử hướng của chúng về 12 giá trị: 0…11

4 Chia ảnh làm 4*4 phần bằng nhau

5 Trong mỗi phần:

• Tính 12 giá trị ai tương ứng là tổng số điểm biên có giá trị 0…11

• Nếu ai > threshold thì ai = 1, ngược lại ai = 0

6 Xác định vectơ đặc trưng là tập hợp các giá trị ai (i = 0…11) trong tất cả các phần

Thuật toán 1-3: Thuật toán trích chọn đặc trưng theo hướng

Ví dụ: với η = 5, bảng 1.3 minh hoạ cho các kết quả thu được khi ta tìm 12 đặc

trưng về hướng của các điểm biên cho phần ảnh thứ 8 trong hình 1.6

Trang 36

Hình 1.6: Ảnh được chia

ra làm 4*4 phần

Bảng 1.3: Kết quả thu được khi tìm đặc trưng về hướng

cho phần thứ 8 của ảnh

Nhận xét: Phương pháp trích chọn đặc trưng ảnh theo hướng hình học sẽ giúp ta

tìm được đặc trưng về hướng của các điểm biên trong ảnh Kết quả ta thu được 192 bít thể hiện giá trị đặc trưng cho toàn bộ ảnh Tuy nhiên, phương pháp này chỉ tìm đặc trưng của các điểm ảnh rời rạc chứ chưa có sự liên kết với các điểm lân cận nên những đặc trưng được tìm ra không phải lúc nào cũng thể hiện được hết đặc điểm của toàn bộ ảnh Vì vậy ta nên áp dụng phương pháp này khi muốn giảm số kích thước đầu vào để tăng tốc độ học cho hệ nhận dạng và tăng độ giống nhau của dữ liệu vào đối với những ảnh của một loại chữ cái Còn nếu muốn tăng thêm nữa độ chính xác của hệ nhận dạng, ta nên sử dụng kết hợp phương pháp trích chọn đặc trưng này với các phương pháp khác

1.3.2 Phương pháp trích chọn đặc trưng ảnh theo cấu trúc (structural)

Phương pháp này chọn ra những đặc trưng về cấu trúc của ảnh Phương pháp này xem xét các điểm ảnh liền nhau để xác định xem vùng ảnh đó là một đường thẳng (ngang, thẳng đứng, chéo lên, chéo xuống) hay là một góc vuông (hoặc gần vuông)

Đặc trưng ảnh theo cấu trúc là những đặc trưng được tìm ra dựa trên một vài điểm ảnh lân cận nhau Các đặc trưng này giúp chúng ta trả lời câu hỏi vùng ảnh đó

có dạng một đường thẳng theo phương ngang, đứng, đường chéo đi lên hoặc đi xuống, hay là một góc (vuông hoặc gần vuông) hay không? Từ đó cho phép chúng

ta xác định được các nét nhỏ, cục bộ có trong ảnh Để tìm ra các đặc trưng theo cấu

Trang 37

trúc, trước hết ta bao ảnh bởi một hình bao như trong bước 1 mục 2.3.1 rồi thực hiện các bước theo tư tưởng sau:

Bước 1: Với mỗi điểm biên ảnh X, xét và tính giá trị hướng của điểm ảnh cho

8 điểm ảnh lân cận X theo các công thức trong bước 2 của thuật toán nêu trong mục 1.4.1 Gọi các điểm ảnh đó là N0, N1, N2, …, N7, vị trí tương đối của các điểm ảnh này với X được thể hiện trong bảng 1.4 Hướng của các điểm ảnh được lượng tử hoá thành các giá trị từ 0…11 như trong hình 1.7

Bước 2: Thiết lập 12 luật trên mỗi điểm biên ảnh để xác định xem điểm biên

ảnh đó có xu hướng nằm trên các đường thẳng hay các góc Luật được thoả mãn có nghĩa là điểm ảnh đang xét nằm trên đường thẳng hay góc do luật đó quy định Chi tiết các luật này được thể hiện trong bảng 1.5:

Luật Kiểu của ảnh Điều kiện TM

luật Hình vẽ minh hoạ Chú giải

N2, X, N6 tạo thành đường

nằm đứng

Trang 38

Luật 4 Đường thẳng

đứng loại 2

N2 (1, 0, 11) N6 (1, 0, 11)

N2, X, N6 tạo thành đường

nằm đứng

Luật 5 Đường chéo đi

lên loại 1

N5 (4, 5, 6) N1 (4, 5, 6)

N1, X, N5 tạo thành đường

chéo đi lên

Luật 6 Đường chéo đi

lên loại 2 N5 (0, 11, 10) N1 (0, 11, 10) N1, X, N5 tạo thành đường

chéo đi lên Luật 7 Đường chéo đi

xuống loại 1

N3 (3, 2, 1) N7 (3, 2, 1)

N3, X, N7 tạo thành đường

chéo đi xuống

Luật 8 Đường chéo đi

xuống loại 2 N3 (7, 8, 9) N7 (7, 8, 9) N3, X, N7 tạo thành đường

chéo đi xuống

Bảng 1.5: Các luật về đặc trƣng theo cấu trúc của điểm ảnh

Lưu ý: Các luật trên chỉ được thoả mãn khi điểm X và các điểm lân cận X thỏa

mãn luật đó là các điểm biên ảnh

Trang 39

Trong bảng trên, luật 1 được diễn tả như sau: Nếu luật được thoả mãn thì điểm ảnh X có xu hướng nằm trên đường thẳng ngang loại 1 Luật 1 được thoả mãn khi giá trị đặc trưng về hướng của điểm ảnh N0 là 2, 3, hoặc 4 và của N4 cũng là 2, 3, hoặc 4 Các luật còn lại cũng được diễn tả tương tự như luật thứ nhất

Bước 3: Chia ảnh thành 4*4 phần Đối với mỗi phần ảnh ta làm như sau:

• Xét lần lượt từng luật (từ luật 1 đến luật 12) và tính tổng số điểm ảnh thoả mãn luật này Giả sử thu được bộ 12 giá trị ai với i = 1…12 và ai là tổng số điểm ảnh thoả mãn luật thứ i Với ngưỡng θ được chọn trước (áp dụng cho tất cả các phần của ảnh) ta xác định giá trị ai như sau: nếu ai > θ thì ai = 1; ngược lại ai = 0

• Kết quả: mỗi phần ảnh sẽ được đặc trưng bởi 12 bit có giá trị 0 hoặc 1 thể hiện

cấu trúc của phần ảnh này có bao nhiêu xu hướng là những đường thẳng hay góc được liệt kê trong bảng 1.5 Như vậy, sau khi thực hiện với 4*4 phần của ảnh đầu vào ta sẽ thu được 4*4*12 tức bằng 192 bit đặc trưng về cấu trúc cho toàn bộ ảnh Thuật toán miêu tả chi tiết phương pháp trích chọn đặc trưng theo cấu trúc được thể hiện như sau:

INPUT :Ảnh đầu vào, giá trị ngưỡng threshold

OUTPUT : Vectơ đặc trưng của ảnh (192 bit)

PROCESS :

1 Xác định hình bao ảnh

2 Tính ban đầu Gradient về biên độ và hướng tới mỗi điểm ảnh

3 Xác định các điểm biên và lượng tử hướng của chúng về 12 giá trị: 0…11

Trang 40

6 Xác định vectơ đặc trưng là tập hợp các giá trị ai (i = 0…11) trong tất cả các phần.

Thuật toán 1-4: Thuật toán trích chọn đặc trƣng theo cấu trúc

Nhận xét: Với phương pháp trích chọn đặc trưng theo cấu trúc ta chọn ra được

những đặc trưng cho cấu trúc của ảnh Trên quan điểm của nhận dạng chữ viết, phương pháp này giúp cho việc nhận dạng nhóm ký tự giống nhau trở nên hiệu quả

vì nó làm nổi bật được sự khác nhau về cấu trúc giữa các ký tự này Đặc biệt khi kết hợp với phương pháp trích chọn đặc trưng theo hướng, bộ trích chọn đặc trưng đã giúp cải thiện được rất nhiều kết quả nhận dạng đúng của bộ nhận dạng ký tự

(Concavity)

Phương pháp này giúp ta nhận biết được vùng ảnh mà ta đang xét là một vùng lõm (về phía trên, dưới, trái hoặc phải) hay là một lỗ trống (hole) Đối với nhận dạng chữ viết, đặc biệt là chữ viết tay tiếng Việt, phương pháp này giúp cho hệ nhận dạng kí tự làm việc hiệu quả với nhóm kí tự có nhiều điểm uốn, điểm cực đại hay cực tiểu trong một vùng nào đó

Đặc trưng theo tính lồi lõm của ảnh là những đặc trưng ở mức cao hơn so với đặc trưng về hướng và về cấu trúc Những đặc trưng này được tính toán và chọn ra dựa trên rất nhiều điểm ảnh (có thể trải ra trên toàn ảnh) với mục tiêu tìm ra những vùng lồi lõm và những lỗ trống (hole) trong ảnh Ý tưởng thực hiện phương pháp này là ảnh ban đầu được chia thành 4*4 phần bằng nhau, với ứng với mỗi phần ta

sẽ tìm ra 8 đặc trưng đặc thù của nó 8 đặc trưng này bao gồm: 1 đặc trưng về mật độ điểm đen, 2 đặc trưng thể hiện ảnh phần ảnh này là một nét lần theo chiều thẳng đứng hay chiều ngang và 5 đặc trưng thể hiện tính lồi lõm hay là lỗ trống có trong phần ảnh này Cách tìm các đặc trưng này được trình bày ở dưới đây

• Tìm đặc trưng về mật độ điểm đen: Để tính đặc trưng này trước hết ta tìm tổng

số điểm đen có trong mỗi phần ảnh So sánh tổng số điểm đen này với một ngưỡng

Ngày đăng: 07/03/2020, 18:26

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