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 1Lờ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 2Mụ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 32.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 4CHƯƠ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 5Danh 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 6Danh 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 7MỞ ĐẦ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 8Thô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 9T.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 10Sở 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 11Nộ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 12Cá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 13CHƯƠ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 141.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 15Bướ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 16Bướ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 17Hiệ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 19Bả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 20Hì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: y f(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 21chú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 = 1L), với i = L thì i
j
y = o j với (j=1q)
i: Là vectơ gradient của nơron ở lớp thứ i (i = 1L)
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 24m 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 25Khi đó 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 27Vậ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 = 1L-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 28I (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=12) 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 29Bướ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 311.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 32Thô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 33theo 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 35nế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 36Hì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 37trú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 38Luậ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 39Trong 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 406 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