Tài liệu Đồ án tốt nghiệp cử nhân cntt nhận dạng ký tự viết tay

  • Số trang: 71 |
  • Loại file: PDF |
  • Lượt xem: 948 |
  • Lượt tải: 0
tranphuong

Tham gia: 04/08/2015

Mô tả:

Lời Mở Đầu Nhận dạng là bài toán xuất hiện cách đây khá lâu và vẫn luôn thu hút được nhiều sự quan tâm, nghiên cứu. Đặc biệt là trong vài thập niên gần đây, do sự thúc đẩy của quá trình tin học hoá trong mọi lĩnh vực, bài toán nhận dạng không còn dừng lại ở mức độ nghiên cứu nữa mà nó trở thành một lĩnh vực để áp dụng vào thực tế. Các bài toán nhận dạng đang được ứng dụng trong thực tế hiện nay tập trung vào nhận dạng mẫu, nhận dạng tiếng nói và nhận dạng chữ. Trong số này, nhận dạng chữ là bài toán được quan tâm rất nhiều và cũng đã đạt được nhiều thành tựu rực rỡ. Các ứng dụng có ý nghĩa thực tế lớn có thể kể đến như: nhận dạng chữ in dùng trong quá trình sao lưu sách báo trong thư viện, nhận dạng chữ viết tay dùng trong việc phân loại thư ở bưu điện, thanh toán tiền trong nhà băng và lập thư viện sách cho người mù (ứng dụng này có nghĩa: scan sách bình thường, sau đó cho máy tính nhận dạng và trả về dạng tài liệu mà người mù có thể đọc được). Xuất phát từ yêu cầu thực tế, đang rất cần có nhưng nghiên cứu về vấn đề này. Chính vì vậy tôi đã chọn đề tài nhận dạng ký tự viết tay làm đồ án tốt nghiệp với mong muốn phần nào áp dụng vào bài toán thực tế. Bài toán đã đặt ra phải giải quyết được những yêu cầu sau:  Nhận dạng được các ký tự từ ảnh đầu vào  Trích chọn được các đặc trưng của ảnh  Tiến hành nhận dạng với thuật toán Markov ẩn Với nhưng yêu cầu đã đặt ra ở trên, cấu trúc của khóa luận sẽ bao gồm những nội dung sau đây:  Chương 1: Giới thiệu đề tài Giới thiệu về bài toán nhận dạng chữ viết tay, tình hình nghiên cứu trong và ngoài nước, quy trình chung để giải quyết bài toán và các phương pháp điển hình trong việc huấn luyện nhận dạng, phạm vi của đề tài.  Chương 2: Cơ sở lý thuyết về tiền xử lý ảnh ký tự và trích chọn đặc trưng 50 Trình bày lý thuyết về lọc nhiễu, nhị phân hóa, chuẩn hóa kích thước, trích chọn đặc trưng ảnh ký tự.  Chương 3: CƠ SỞ LÝ THUYẾT VỀ MARKOV ẨN Trình bày các khái niệm cơ bản, thuật toán của mô hình Markov  Chương 4: ỨNG DỤNG MÔ HÌNH MARKOV ẨN TRONG NHẬN DẠNG CHỮ VIẾT TAY Giới thiệu về thuật toán nhận dạng. Các bước cài đặt thuật toán. Những khó khăn và giải pháp khắc phục.  Chương 5: CÀI ĐẶT CHƯƠNG TRÌNH VÀ ĐÁNH GIÁ KẾT QUẢ Trình bày môi trường cài đặt, giao diện chương trình, một số class chính của chương trình. Đánh giá kết quả và đưa ra hướng phát triển trong tương lại.  Phụ lục: Danh mục hình vẽ, bảng biểu và tài liệu tham khảo. Đồ án này không tránh khỏi sự thiếu sót do hạn chế về thời gian cũng như kiến thức. Em rất mong nhận được sự đóng góp ý kiến của thầy hướng dẫn và các bạn để đạt kết quả tốt hơn. 51 CHƯƠNG I : GIỚI THIỆU ĐỀ TÀI I.1 Giới thiệu về nhận dạng chữ viết tay Nhận dạng chữ in: đã được giải quyết gần như trọn vẹn (sản phẩm FineReader 9.0 của hãng ABBYY có thể nhận dạng chữ in theo 192 ngôn ngữ khác nhau, phần mềm nhận dạng chữ Việt in VnDOCR 4.0 của Viện Công nghệ Thông tin Hà Nội có thể nhận dạng được các tài liệu chứa hình ảnh, bảng và văn bản với độ chính xác trên 98%). Nhận dạng chữ viết tay: vẫn còn là vấn đề thách thức lớn đối với các nhà nghiên cứu. Bài toàn này chưa thể giải quyết trọn vẹn được vì nó hoàn toàn phụ thuộc vào người viết và sự biến đổi quá đa dạng trong cách viết và trạng thái sức khỏe, tinh thần của từng người viết. I.1.1 Các giai đoạn phát triển  Giai đoạn 1: (1900 – 1980) - Nhận dạng chữ được biết đến từ năm 1900, khi nhà khoa học người Nga Tyuring phát triển một phương tiện trợ giúp cho những người mù. - Các sản phẩm nhận dạng chữ thương mại có từ những năm1950, khi máy tính lần đầu tiên được giới thiệu tính năng mới về nhập và lưu trữ dữ liệu hai chiều bằng cây bút viết trên một tấm bảng cảm ứng .Công nghệ mới này cho phép các nhà nghiên cứu làm việc trên các bài toán nhận dạng chữ viết tay on-line. - Mô hình nhận dạng chữ viết được đề xuất từ năm 1951 do phát minh của M. Sheppard được gọi là GISMO, một robot đọc-viết. - Năm 1954, máy nhận dạng chữ đầu tiên đã được phát triển bởi J. Rainbow dùng để đọc chữ in hoa nhưng rất chậm. - Năm 1967 ,Công ty IBM đã thương mại hóa hệ thống nhận dạng chữ.  Giai đoạn 2: (1980 – 1990) - Với sự phát triển của các thiết bị phần cứng máy tính và các thiết bị thu thu nhận dữ liệu, các phương pháp luận nhận dạng đã được phát triển trong giai đoạn trước đã có được môi trường lý tưởng để triển khai các 52 ứng dụng nhận dạng chữ. - Các hướng tiếp cận theo cấu trúc và đối sánh được áp dụng trong nhiều hệ thống nhận dạng chữ. - Trong giai đoạn này, các hướng nghiên cứu chỉ tập trung vào các kỹ thuật nhận dạng hình dáng chứ chưa áp dụng cho thông tin ngữ nghĩa. Điều này dẫn đến sự hạn chế về hiệu suất nhận dạng, không hiệu quả trong nhiều ứng dụng thực tế.  Giai đoạn 3: (Từ 1990 đến nay) - Các hệ thống nhận dạng thời gian thực được chú trọng trong giai đoạn này. - Các kỹ thuật nhận dạng kết hợp với các phương pháp luận trong lĩnh vực học máy (Machine Learning) được áp dụng rất hiệu quả. - Một số công cụ học máy hiệu quả như mạng nơ ron, mô hình Markov ẩn, SVM (Support Vector Machines) và xử lý ngôn ngữ tự nhiên... I.1.2 Tình hình nghiên cứu trong nước: Nhận dạng chữ viết tay được chia thành hai lớp bài toán lớn là nhận dạng chữ viết tay trực tuyến (online) và nhận dạng chữ viết tay ngoại tuyến (offline). Trong nhận dạng chữ viết tay ngoại tuyến, dữ liệu đầu vào được cho dưới dạng các ảnh được quét từ các giấy tờ, văn bản. Ngược lại nhận dạng chữ viết tay trực tuyến là nhận dạng các chữ trên màn hình ngay khi nó được viết. Trong hệ nhận dạng này máy tính sẽ lưu lại các thông tin về nét chữ như thứ tự nét viết, hướng và tốc độ của nét… Tại Việt Nam, năm 2010, nhóm nghiên cứu Huỳnh Hữu Lộc, Lưu Quốc Hải, Đinh Đức Anh Vũ (Khoa Khoa học và Kỹ thuật máy tính, Trường Đại học Bách khoa TP Hồ 53 Chí Minh) đã đạt được những bước tiến đáng kể trong nhận dạng ký tự viết tay. Hướng tiếp cận của nhóm nghiên cứu là nhận dạng dựa trên thông tin tĩnh. Dựa trên nền tảng giải thuật rút trích thông tin theo chiều, nhóm tác giả đã cải tiến đa số các bước để đạt được độ chính xác cao hơn trong việc nhận dạng ký tự (khoảng 95%) và có những bước tiến đáng kể trong nhận dạng cả từ. Tuy nhiên sản phẩm vẫn chưa nhận dạng được chữ viết tay tiếng Việt. Như vậy có thể thấy nhận dạng chữ viết tay, đặc biệt chữ viết tay tiếng Việt hiện đang là một hướng nghiên cứu rất được quan tâm hiện nay và đang còn nhiều vấn đề cần phải hoàn thiện. I.1.3 Tình hình nghiên cứu ở nước ngoài: Nhận dạng chữ viết đã được nghiên cứu hơn 40 năm qua. Ngày nay nhận dạng chữ viết đã nhận được sự quan tâm đáng kể do sự phát triển của các máy tính cầm tay và điện thoại cầm tay dựa trên các bàn phím, chuột và nhiều dạng thiết bị định vị khác. Các phương pháp này tỏ ra không hữu hiệu hoặc xử lý chậm. Do đó người ta cần nghiên cứu phương pháp nghiên cứu phương pháp nhận dạng chữ viết tay trên các máy Palm Pilot hay các máy TABLET PC. I.2 Cách tiếp cận giải quyết bài toán Nhận dạng chữ viết tay thường bao gồm năm giai đoạn: tiền xử lý 54 (preprocessing), tách chữ (segmentation), trích chọn đặc trưng(representation), huấn luyện và nhận dạng (training and recognition), hậu xử lý (postprocessing). - Tiền xử lý: giảm nhiễu cho các lỗi trong quá trình quét ảnh, hoạt động viết của con người, chuẩn hóa dữ liệu và nén dữ liệu. - Tách chữ: chia nhỏ văn bản thành những thành phần nhỏ hơn ,tách các từ trong câu hay các kí tự trong từ. - Biểu diễn, rút trích đặc điểm: giai đoạn đóng vai trò quan trọng nhất trong nhận dạng chữ viết tay. Để tránh những phức tạp của chữ viết tay cũng như tăng cường độ chính xác, ta cần phải biểu diễn thông tin chữ viết dưới những dạng đặc biệt hơn và cô đọng hơn, rút trích các đặc điểm riêng nhằm phân biệt các ký tự khác nhau. - Huấn luyện và nhận dạng: phương pháp điển hình so trùng mẫu, dùng thống kê, mạng nơ-ron ,mô hình markov ẩn ,trí tuệ nhân tạo hay dùng phương pháp kết hợp các phương pháp trên. - Hậu xử lý: sử dụng các thông tin về ngữ cảnh để giúp tăng cường độ chính xác, dùng từ điển dữ liệu. - Mô tả quá trình trong hệ thống nhận dạng .Sơ đồ gồm hai phần chính: đường màu đỏ mô tả các bước để huấn luyện cho máy học, đường màu xanh mô tả các bước trong quá trình nhận dạng: Ban đầu các hình ảnh này đi qua giai đoạn chuyển ảnh về dạng ảnh nhị phân (giai đoạn tiền xử lý). Ảnh sẽ được lưu trữ dưới dạng ma trận điểm, vị trí pixel có nét vẽ sẽ mang giá trị 1, ngược lại có giá trị 0. Sau đó, ảnh được cắt xén để ký tự nằm trọn trong một khung chữ nhật, các vùng không gian không có nét vẽ được loại bỏ đi. Giải thuật cắt xén hiện thực đơn giản dựa trên ảnh nhị phân và thu giảm ảnh đã được cắt xén về một ảnh có kích thước chung đã được quy định trước. Tiếp theo, ảnh đã được cắt xén và thu nhỏ được làm mỏng. Quá trình làm mỏng này giúp ta chỉ lấy những thông tin cần thiết về hình dạng của ký tự và loại bỏ các pixel dư thừa. Các chấm nhỏ trên hình biểu thị các pixel có giá trị 1 ban đầu. Sau khi làm mỏng, chỉ những pixel có ý nghĩa được giữ lại, và chúng 55 được biểu diễn bằng các chấm to trong hình. Ảnh sau quá trình làm mỏng chứa hầu hết các thông tin về hình dạng của ký tự. Những thông tin này sẽ được phân tích để rút trích ra các đặc điểm giúp việc phân loại các ký tự với nhau. Phương thức này dựa trên thông tin về hình dạng của ký tự như sự chuyển vị trí và sự chuyển chiều. Kết quả quá trình này là các véc-tơ đặc điểm chứa thông tin về ký tự. Các thông tin này giúp máy lấy được các đặc điểm của từng ký tự, phân loại chúng và tạo ra các thông tin cần thiết để nhận dạng các ký tự có chung ý nghĩa. Do chữ viết mỗi người mỗi khác nên ta không thể thu thập tất cả các nét chữ của từng người để máy học có thể nhận diện mà chỉ có thể dựa trên một số mẫu nào đó để nhận ra các nét chữ của những người viết khác nhau. Mô hình markov ẩn (Hidden Markov Model) có thể giải quyết vấn đề này. I.3 Tổng quan về các phương pháp huấn luyện I.3.1 Mô hình Markov ẩn Mô hình Markov ẩn (Hiden Markov Model - HMM) được giới thiệu vào cuối những năm 1960. Cho đến hiện nay nó có một ứng dụng khá rộng như trong nhận dạng giọng nói, tính toán sinh học (Computational Biology), và xử lý ngôn ngữ tự nhiên…HMM là mô hình máy hữu hạn trạng thái với các tham số biểu diễn xác suất chuyển trạng thái và xác suất sinh dữ liệu quan sát tại mỗi trạng thái. Mô hình Markov ẩn là mô hình thống kê trong đó hệ thống được mô hình hóa được cho là một quá trình Markov với các tham số không biết trước, nhiệm vụ là xác định các tham số ẩn từ các tham số quan sát được. Các tham số của mô hình được rút ra sau đó có thể sử dụng để thực hiện các phân tích kế tiếp. Trong một mô hình Markov điển hình, trạng thái được quan sát trực tiếp bởi người quan sát, và vì vậy các xác suất chuyển tiếp trạng thái là các tham số duy nhất. 56 Hình 1.4 Mô hình Markov ẩn xi: Các trạng thái trong mô hình Markov aij: Các xác suất chuyển tiếp bij: Các xác suất đầu ra yi: Các dữ liệu quan sát Mô hình Markov ẩn thêm vào các đầu ra: mỗi trạng thái có xác suất phân bố trên các biểu hiện đầu ra có thể. Vì vậy, nhìn vào dãy của các biểu hiện được sinh ra bởi HMM không trực tiếp chỉ ra dãy các trạng thái. Ta có tìm ra được chuỗi các trạng thái mô tả tốt nhất cho chuỗi dữ liệu quan sát được bằng cách tính. P(Y | X )  P(Y | X ) / P( X ) Y1 Y2 … … … Yn X1 X2 … … … Xn Hình 1.5 Đồ thị vô hướng HMM Ở đó Yn là trạng thái tại thời điểm thứ t=n trong chuỗi trạng thái Y, Xn là dữ liệu quan sát được tại thời điểm thứ t=n trong chuỗi X. Do trạng thái hiện tại chỉ phụ thuộc vào trạng thái ngay trước đó với giả thiết rằng dữ liệu quan sát được tại thời điểm t chỉ phụ thuộc và trạng thái t. Ta có thể tính: n P (Y , X )  P (Y1 ) P ( X 1 | Y1 ) P (Yt | Yt 1 ) * P ( X t | Yt ) t 2 57 Một số hạn chế của mô hình Markov để tính được xác suất P(Y,X) thông thường ta phải liệt kê hết các trường hợp có thể của chuỗi Y và chuỗi X. Thực tế thì chuỗi Y là hữu hạn có thể liệt kê được, còn X (các dữ liệu quan sát) là rất phong phú. Để giải quyết các vấn đề này HMM đưa ra giả thiết về sự độc lập giữa các dữ liệu quan sát: Dữ liệu quan sát được tại thời điểm t chỉ phụ thuộc vào trạng thái tại thời điểm đó. Hạn chế thứ hai gặp phải là việc sử dụng xác suất đồng thời P(Y, X) đôi khi không chính xác vì với một số bài toán thì việc sử dụng xác suất điều kiện P(Y | X) cho kết quả tốt hơn rất nhiều. I.3.2 Máy vector hỗ trợ Có thể mô tả 1 cách đơn giản về bộ phân lớp SVM như sau: Cho trước 2 tập dữ liệu học, mỗi tập thuộc về 1 lớp cho trước, bộ phân lớp SVM sẽ xây dựng mô hình phân lớp dựa trên 2 tập dữ liệu này. Khi có một mẫu mới được đưa vào, bộ phân lớp sẽ đưa ra dự đoán xem mẫu này thuộc lớp nào trong 2 lớp đã định. Phương pháp này được Vapnik và cộng sự đề xuất năm 1992, lấy nền tảng từ lý thuyết học thống kê của Vapnik & Chervonenkis vào năm 1960. Đặc trưng cơ bản quyết định khả năng phân loại của một bộ phân loại là hiệu suất tổng quát hóa, hay là khả năng phân loại những dữ liệu mới dựa vào những tri thức đã tích lũy được trong quá trình huấn luyện. Thuật toán huấn luyện được đánh giá là tốt nếu sau quá trình huấn luyện, hiệu suất tổng quát hóa của bộ phân loại nhận được cao. Hiệu suất tổng quát hóa phụ thuộc vào hai tham số là sai số huấn luyện và năng lực của máy học. Trong đó sai số huấn luyện là tỷ lệ lỗi phân loại trên tập dữ liệu huấn luyện. Còn năng lực của máy học được xác định bằng kích thước Vapnik Chervonenkis (kích thước VC). Kích thước VC là một khái niệm quan trọng đối với một họ hàm phân tách (hay là bộ phân loại). Đại lượng này được xác định bằng số điểm cực đại mà họ hàm có thể phân tách hoàn toàn trong không gian đối tượng, Một bộ phân loại tốt là bộ phân loại đơn giản nhất và đảm bảo sai số huấn luyện nhỏ. Phương pháp SVM được xây dựng dựa trên ý tưởng này. Công thức SVM 58 Công thức SVM đơn giản nhất là trường hợp tuyến tính khi mà một siêu phẳng quyết định nằm giữa hai tập dữ liệu.Trong trường hợp này, không gian giả định là một tập các điểm có phương trình là: f(x) =w.x+b. SVM đi tìm một siêu phẳng tối ưu như một phương án để phân chia hai tập hợp dữ liệu và đồng thời có thể sử dụng cho những dữ liệu mới. Có hai phương pháp để tìm siêu phẳng tối ưu. Thứ nhất là tìm siêu phẳng nằm giữa 2 tập đóng. Thứ hai là cực đại hoá khoảng cách giữa hai mặt phẳng hỗ trợ (cực đại hoá lề). Cả hai phương pháp đều tìm ra một mặt phẳng quyết định và tập hợp những điểm hỗ trợ cho quyết định. Chúng được gọi là các vector hỗ trợ. Siêu phẳng phân chia Hình 1.8 Siêu phẳng phân chia tuyến tính Siêu phẳng có biên độ cực đại Hình 1.9 Biên độ và siêu phẳng có biên độ cực đại 59 Vector hỗ trợ Hình 1.10 Vector hỗ trợ Hình 1.11 Ánh xạ phi tuyến và hàm hạt nhân Việc huấn luyện SVM là việc giải bài toán quy hoạch toàn phương với các ràng buộc bằng và không bằng. Việc xử lý sau cùng là xử lý các tham số dương α và rút ra một tập con của tập huấn luyện tương ứng với các tham số. Việc huấn luyện một tập dữ liệu nhỏ (nhỏ hơn 1000 mẫu) có thể được xử lý một cách nhanh chóng trên một máy tính có cấu hình thích hợp. Đối với những tập dữ liệu lớn hơn, việc giải bài toán quy hoạch toàn phương đòi hỏi một máy tính có năng lực lớn và bộ nhớ lớn để lưu trữ ma trận hạt nhân trong suốt quá trình tính toán. Bộ nhớ yêu cầu lên đến bình phương kích thước của tập huấn luyện. 60 Có nhiều phương pháp huấn luyện SVM được phát triển để tận dụng bộ nhớ, cải thiện tốc độ huấn luyện và tìm một mô hình tốt nhất bằng cách dùng một nhân và các siêu tham số thích hợp (Burges, 1988). Lưu ý rằng, SVM cơ bản dùng cho hai lớp. Để có thể dùng cho nhiều lớp thì ta phải kết hợp nhiều bộ phân loại hai lớp hoặc xây dựng SVM cho nhiều lớp. Hình 1.12 Mô hình nhận dạng ký tự dùng SVM SVM thường thực hiện tốt trên các tập dữ liệu khả tách tuyến tính vì có thể thực hiện việc xác định siêu mặt phẳng phân tích dữ liệu tối ưu, trong trường hợp này SVM chỉ việc tập trung vào việc cực đại hóa lề. 61 I.3.3 Mạng Neural Là phương pháp được sử dụng trong đồ án. Quá trình huấn luyện là quá trình học các tập mẫu để điều chỉnh trọng số liên kết. Giải thuật huấn luyện thường được dùng nhất là giải thuật lan truyền ngược sai số Back Progration. Nội dung này sẽ được trình bày chi tiết trong chương 3 và chương 4. Đồ án sử mạng neural gồm 60 đầu vào được lấy bằng các ký tự đã được tách biên thành chuỗi Fourier gồm 6 thành phần liên thông và 10 giá trị đối với mỗi thành phần, sử dụng hàm Sigmoid làm hàm ngưỡng. Hình 1.13 Sơ đồ một mạng neural nhận dạng ký tự So với hai phương pháp còn lại, phương pháp sử dụng mạng Neural được lựa chọn là do những ưu điểm sau đây:  Tính phi tuyến.  Mô hình tổng quát cho ánh xạ từ tập vào đến tập ra.  Có thể yêu cầu sự tiến hóa nhanh của hàm mục tiêu.  Chấp nhận lỗi ở các ví dụ học.  Thích ứng với nhiễu dữ liệu. I.4 Phạm vi đề tài  Đồ án “Nghiên cứu phương pháp nhận dạng chữ viết tay và cài đặt chương trình thử nghiệm” được thực hiện với mục đích giải quyết một lớp con các bài toàn nhận dạng chữ viết tay, tập trung vào bước nhận dạng ký tự tiếng Việt đơn lẻ do đây là bước mà mọi hệ nhận dạng chữ viết tiếng Việt cần phải có. 62  Từ đó tạo cơ sở để tiếp theo có thể xây dựng và phát triển một sản phẩm nhận dạng chữ viết tay hoàn chỉnh trên các thiết bị di động, áp dụng vào việc hỗ trợ việc học tập và sinh hoạt của người khiếm thị.  Đồ án sẽ tập trung vào phân tích 3 thành phần chính của một hệ nhận dạng: Tiền xử lý, trích chọn đặc trưng và huấn luyện bằng mô hình markov ẩn. Từ đó cài đặt chương trình mô phỏng trên PC bằng ngôn ngữ C# CHƯƠNG II CƠ SỞ LÝ THUYẾT VỀ TIỀN XỬ LÝ ẢNH VÀ TRÍCH CHỌN ĐẶC TRƯNG II.1 Tổng quan về tiền xử lý ảnh Đầu vào của quá trình xử lý ảnh là các ảnh gốc ban đầu, thu được qua scanner. ảnh ban đầu thường có chất lượng thấp do ảnh hưởng của nhiễu, bị nghiêng, bị đứt nét nên chúng ta cần phải có một quá trình tiền xử lý ảnh để nâng cao chất lượng ảnh đầu vào trước khi đưa vào nhận dạng. Quá trình này bao gồm công đoạn khôi phục ảnh và tăng cường ảnh . Khôi phục ảnh nhằm mục đích loại bỏ hay làm giảm tối thiểu các ảnh hưởng của môi trường bên ngoài lên ảnh thu nhận được. Công đoạn khôi phục ảnh bao gồm các bước như lọc ảnh, khử nhiễu, quay ảnh, qua đó giảm bớt các biến dạng do quá trình quét ảnh gây ra và đưa ảnh về trang thái gần như ban đầu. Tăng cường ảnh là một công đoạn quan trọng, tạo tiền đề cho xử lý ảnh. Tăng cường ảnh không phải làm tăng lượng thông tin trong ảnh mà là làm nổi bật những đặc trưng của ảnh giúp cho công việc xử lý phía sau được hiệu quả hơn. Công đoạn này bao gồm các công việc như lọc độ tương phản, làm trơn ảnh, nhị phân hóa. Các công đoạn của tiền xử lý ảnh sẽ được trình bày cụ thể trong các phần tiềp theo. II.2 Các công đoạn tiền xử lý Giai đoạn tiền xử lý văn bản là giai đoạn quan trọng, có ảnh hưởng trực tiếp đến độ chính xác của quá trình nhận dạng, tuy nhiên nó cũng làm tăng thời 63 gian chung của cả hệ thống. Vì vậy, tùy theo chất lượng ảnh thu nhận được của từng trường hợp cụ thể, mà chúng ta chọn sử dụng một hoặc một số thủ tục tiền xử lý. Thậm chí, trong trường hợp văn bản đầu vào có chất lượng tốt và cần ưu tiên tốc độ xử lý, chúng ta có thể bỏ qua giai đoạn tiền xử lý này. Thông thường, chúng ta vẫn phải thực hiện một số thủ tục quan trọng nhất. Các thủ tục này bao gồm :  Chuyển xám  Phân ngưỡng,  Lọc nhiễu,  Căn chỉnh độ lệch trang,  Làm trơn ảnh. II.2.1 Chuyển xám ảnh. Đơn vị tế bào của ảnh số là pixel. Tùy theo mỗi định dạng là ảnh màu hay ảnh xám mà từng pixel có thông số khác nhau. Đối với ảnh màu từng pixel sẽ mang thông tin của ba màu cơ bản tạo ra bản màu khả kiến là Đỏ (R), Xanh lá (G) và Xanh biển (B) [Thomas 1892]. Trong mỗi pixel của ảnh màu, ba màu cơ bản R, G và B được bố trí sát nhau và có cường độ sáng khác nhau. Thông thường, mổi màu cơ bản được biểu diễn bằng tám bit tương ứng 256 mức độ màu khác nhau. Như vậy mỗi pixel chúng ta sẽ có màu (khoảng 16.78 triệu màu). Đối với ảnh xám, thông thường mỗi pixel mang thông tin của 256 mức xám (tương ứng với tám bit) như vậy ảnh xám hoàn toàn có thể tái hiện đầy đủ cấu trúc của một ảnh màu tương ứng thông qua tám mặt phẳng bit theo độ xám. Trong hầu hết quá trình xử lý ảnh, chúng ta chủ yếu chỉ quan tâm đến cấu trúc của ảnh và bỏ qua ảnh hưởng của yếu tố màu sắc. Do đó bước chuyển từ ảnh màu thành ảnh xám là một công đoạn phổ biến trong các quá trình xử lý ảnh vì nó làm tăng tốc độ xử lý là giảm mức độ phức tạp của các thuật toán trên ảnh. Chúng ta có công thức chuyển các thông số giá trị màu của một pixel thành mức xám tương ứng như sau: 64 G = ỏ.CR + õ.CG + ọ.CB Trong đó các giá trị CR, CG và CB lần lượt là các mức độ màu Đỏ, Xanh lá và Xanh biển của pixel màu. II.2.2 Phân ngưỡng ảnh (Nhị phân ảnh) Phân ngưỡng hay còn gọi là nhị phân hóa. Mục đích của nó là chuyển từ ảnh mầu, ảnh đa cấp xám sang ảnh nhị phân (ảnh 2 cấp xám, ảnh đen trắng). Thuật toán phân ngưỡng cài đặt ở đây sử dụng hàm phân ngưỡng : 1 if Source(x,y) >= T Dest(x,y)= 0 if Source(x,y) < T Trong đó, Source(x,y) là giá trị điểm ảnh ở vị trí (x,y) của ảnh nguồn, Dest(x,y) là giá trị điểm ảnh tương ứng ở vị trí (x,y) của ảnh đích. T là giá trị ngưỡng. Giá trị cụ thể của ngưỡng phụ thuộc vào từng ảnh, vùng ảnh đầu vào đang xét và không thể lấy cố định. Ví dụ như trên hình 3.2.2, hình a) là ảnh ban đầu, hình e) thể hiện biểu đồ histogram (biểu đồ tần suất), hình b,c,d thể hiện ảnh đã được nhị phân hóa với cùng ngưỡng thấp, trung bình và ngưỡng cao. Chúng ta có thể thấy là giá trị ngưỡng trong hình 3.2.2d là thích hợp hơn cả. a) ảnh gốc ban đầu b) Ngưỡng thấp (90) c ) Ngưỡng trung bình (128) d ) Ngưỡng cao (225) Hình 3.2.2 - Phương pháp lấy ngưỡng Người ta đã đề xuất nhiều phương pháp để xác định giá trị 65 ngưỡng. Một phương pháp là thiết lập ngưỡng sao cho số lượng các điểm đen đạt một ngưỡng chấp nhận được theo phân phối xác suất mức xám. Ví dụ, chúng ta có thể biết rằng các kí tự chiếm 25% diện tích của một trang văn bản thông thường. Vì thế chúng ta có thể thiết lập ngưỡng sao cho số lượng điểm đen còn lại chiếm 1/4 trang văn bản. Một cách tiếp cận khác là chọn ngưỡng nằm ở vị trí thấp nhất trên biểu đồ histogram giữa hai đỉnh của nó . Tuy nhiên việc xác định vị trí này thường rất khó khăn do hình dạng của histogram thường lởm chởm. Một giải pháp để giải quyết vấn đề này là xấp xỉ giá trị của histogram giữa hai đỉnh với một hàm giải tích và sử dụng vi phân để xác định điểm thấp nhất. Ví dụ, coi x và y lần lượt là hoành độ và tung độ trên histogram. Chúng ta có thể sử dụng hàm : y = ax 2 + bx + c. Với a,b,c là các hằng số làm hàm xấp xỉ đơn giản cho histogram ở vị trí giữa hai đỉnh của nó. Vị trí thấp nhất sẽ có tọa độ x = -b/2a. Phương pháp xấp xỉ các giá trị của histogram và tìm vị trí thấp nhất cho giá trị ngưỡng tốt hơn nhưng lại yêu cầu nhiều tài nguyên về tính toán để thực hiện cũng độ phức tạp trong việc cài đặt nên trong phạm vi khóa luận này chúng tôi chọn giải pháp tìm ngưỡng theo phân phối xác suất. Phương pháp này đơn giản hơn và kết quả của nó tương đối đáp ứng được các yêu cầu cho việc nhận dạng. II.2.3 Nhiễu ảnh Trong xử lý ảnh các ảnh đầu vào thường được thu thập từ các nguồn ảnh khác nhau và các ảnh thu thập đươc thường có nhiễu và cần loại bỏ nhiễu hay ảnh thu được không sắc nét, bị mờ cần làm rõ các chi tiết trước khi đưa vào xử lý. Một số loại nhiễu ảnh thường gặp:  Nhiễu cộng : nhiễu cộng thường phân bố khắp ảnh. Nếu ta gọi ảnh quan sát( ảnh thu được) là X_qs, ảnh gốc la X_gốc và nhiễu là #. ảnh thu được có thể biểu diễn bởi: X_qs = X_gốc + #. 66  Nhiễu nhân : Nhiễu nhân thường phân bố khắp ảnh. Nếu ta gọi ảnh quan sát( ảnh thu được) là X_qs, ảnh gốc la X_gốc và nhiễu là #. ảnh thu được có thể biểu diễn bởi: X_qs = X_gốc # #.  Nhiễu xung : Nhiễu xung thường gây đột biến ở một số điểm của ảnh. Trong hầu hết các trường hợp thừa nhận nhiễu là tuần hoàn. Các phương pháp lọc đề cập trong báo cáo xét với các trường hợp ảnh chỉ có sự xuất hiện của nhiễu. II.2.4 Một số phương pháp lọc nhiễu II.2.4.1 Bộ lọc Mean Mạch lọc là một mặt nạ có kích thước NxN, trong đó tất cả các hệ số đều bằng 1. Đáp ứng là tổng các mức xám của NxN pixels chia cho NxN. Ví dụ mặt nạ 3x3 thì đáp ứng là tổng mức xám của 9 pixels chia cho 9. Ví dụ mặt nạ 1/9x 1 1 1 1 1 1 1 1 1 Nhân chập mặt nạ với tất cả các pixel của ảnh gốc chúng ta sẽ thu được ảnh kết quả qua bộ lọc Mean theo công thức sau: Hình 3.2.4.1 ảnh thu được khi qua bộ lọc Mean Với f[i,j] là giá trị pixel kết quả, s(k,l) là các giá trị pixel ảnh gốc được mặt nạ chập lên và S là kích thước mặt nạ. Bộ lọc Mean có vai trò làm trơn ảnh có thể xem như bộ lọc thông cao, nhưng lại làm mờ đường biên của các đối tượng bên trong ảnh, làm mất tín hiệu cận nhiễu và không lọc được nhiễu xung. II.2.4.2 Bộ lọc Median Để thực hiện lọc Median trong lân cận của một pixel chúng ta sắp xếp các 67 giá trị của pixel và các lân cận, xác định trung vị Median và định giá trị pixel. Ví dụ như một lân cận 3x3 có các giá trị: 10, 20, 20, 20, 15, 20, 20, 25, 100. Các giá trị này được sắp xếp lại theo thứ tự từ thấp đến cao: 10, 15, 20, 20, 20, 20, 20, 25, 100. Giá trị median là 20. Do đó về nguyên lý thì mạch median có thể tách được các điểm có cường độ sáng lớn như nhiễu xung và lọc các điểm có cường độ sáng tức thì (xung) hay còn gọi là các nhiễu muối tiêu. Ví dụ về ảnh sau khi lọc nhiễu Hình 3.2.4.2 ảnh sau khi qua bộ lọc Median II.2.4.3 Bộ lọc Gauss Về bản chất bộ lọc Gauss có phương thức tiến hành tương đồng với bộ lọc trung bình nhưng có thêm tác động của các trọng số. Các trọng số này được tính tỷ lệ với hàm Gauss theo khoảng cách tới điểm tính toán. Công thức tính giá trị cho từng pixel ảnh gốc theo lọc Gauss như sau: Trong đó g(i,j) là giá trị độ xám pixel kết quả, N là kích thước cửa sổ, f(m,n) là giá trị độ xám của pixel đang tác động,G(i-m,j-n) là các trọng số. Các trọng số được tính toán tỷ lệ theo hàm Gauss bằng khoảng cách tới điểm tính toán. Thực hiện phép nhân chập giữa mặt nạ Gauss và ảnh gốc chúng ta thu được ảnh kết quả được xử lý bằng mạch lọc Gauss. Vai trò của bộ lọc Gauss cũng làm trơn ảnh như bộ lọc trung bình, tuy nhiên bộ lọc Gauss cho chất lượng ành kết quả cao hơn vì có sự tập trung trong số vào pixel đang xét tại vị trí trung tâm. Hình 3.2.4.3 ảnh thu được sau khi xử lý qua bộ lọc Gauss 68 II.2.5 Làm trơn ảnh, tách biên đối tượng Sau quá trình lọc nhiễu, các từ, kí tự trên ảnh thu được thường bị đứt nét do ảnh hưởng của bộ lọc nhiễu. Vì thế cần có một bước để nối lại các nét bị đứt này.  Phương pháp Canny Là một phương pháp tách biên ảnh do Francis Canny tìm ra tại phòng thí nghiệm ảnh thuộc MIT. Quá trình tiến hành thuật toán trải qua một số bước như sau:  Làm trơn ảnh bằng bộ lọc Gauss nhằm giảm thiểu ảnh hưởng của nhiễu và các chi tiết không mong nuôn trong cấu trúc ảnh.  Tính gradient của ảnh nhờ một trong các toán tử:Roberts, Sobel hay Prewitt… và Xác định ngưỡng: Với T được chọn là các phần tử cạnh Dựa vào hướng của dradient để loại bỏ những điểm không thực sự là biên. Chúng ta kiểm tra các điểm MT(i,j) nếu có giá trị lớn hơn hai điểm lân cận dọc theo phương gradient  (i,j) thì giữ nguyên và ngược lại thì gán giá trị bằng 0. Dùng ngưỡng kép ụ1 và ụ2 (ụ1< ụ2) tạo ra các điểm trung gian nhằm nối liến các điểm biên đã xác định được từ trước theo phương thức sau: Những điểm M(i,j) có giá trị gradient lớn hơn ụ2 thì được xem là điểm biên. Những điểm M(i,j) có giá trị gradient nhỏ hơn ụ1 thì loại bỏ. Với những điểm có giá trị gradient nằm trong khoảng ụ1 và ụ2 thì kiểm tra thêm nếu nó liền kề với một điểm có gradient lớn hơn ụ1 thì điểm này được xem là điểm biên. Kết quả chúng ta sẽ thu được các đường biên tạo từ vô số các điểm biên liền kề liên tục. 69
- Xem thêm -