Luận văn Nghiên cứu về nhận dạng chữ in tiếng việt

Kết quả thực nghiệm trên các văn bản chữ in thu được là rất khả quan với độ chính xác tại giai đoạn tách dòng là 99,2%, tại giai đoạn tách từ là 99,4%. Thực nghiệm trên văn bản chữ viết tay bước đầu cũng đem lại kết quả khả quan. Chúng tôi tiến hành ghép nối các modun để tạo thành một hệ thống nhận dạng, quá trình thực nghiệm thu được độ chính xác của hệ thống là 90.3%.

pdf55 trang | Chia sẻ: lylyngoc | Lượt xem: 3549 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu về nhận dạng chữ in tiếng việt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
u này cũng thường có phần hiển thị histogram. Hiện nay có hai loại Histogram phổ biến là: Histogram theo chiều ngang và Histogram theo chieu doc. Hình 2.4 Minh họa biểu đồ Histogram ngang. 2.4 Thành phần liên thông Chương 2:Cơ sở lý thuyết cho phân đoạn ảnh Bùi Thế Hân 9 2.4.1 Khái niệm điểm lân cận Cho một điểm P với tọa độ (x, y), khi đó bốn điểm (x + 1, y); (x – 1, y), (x, y + 1), (x, y – 1) được gọi là lân cận bốn (hình 2.3a) của điểm P, và các điểm (x - 1, y - 1); (x – 1, y + 1); (x + 1, y - 1); (x + 1, y + 1)} Tám điểm đến được gọi là lân cận 8 (hình II.1.5b) của điểm P. Hình 2.5a: Ví dụ lân cận bốn Hình 2.5b: Ví dụ lân cận tám 2.4.2 Thành phần liên thông: Liên thông bốn và liên thông tám Hai điểm , được gọi là liên thông bốn với nhau nếu có một trong hai điều kiện:  là lận cận bốn với của (hoặc là lân cận bốn với  Tồn tại điểm mà là lân cận bốn của và là lân cận bốn của . Hình 2.6: Hai ví dụ về thành phần liên thông 4-connected. Chương 2:Cơ sở lý thuyết cho phân đoạn ảnh Bùi Thế Hân 10 Hai điểm , được gọi là liên thông tám với nhau nếu có một trong hai điều kiện:  là lận cận tám với của (hoặc là lân cận bốn với  Tồn tại điểm mà là lân cận tám của và là lân cận tám của . Hình 2.7: Hai ví dụ về thành phần liên thông 8 Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân 11 Chương 3 Phân đoạn ảnh cho nhận dạng văn bản 3.1 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. Do cách ảnh ban đầu thường có chất lượng thấp do ảnh hưởng của nhiễu, do bị nghiêng, có thể bị đứt nét nên để tăng chất lượng nhận dạ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. 3.1.1 Nhị phân hóa Đầu vào ban đầu của hệ nhận dạng là một ảnh đa mức xám. Mà phân đoạn ảnh chúng ta xử lý trên ảnh nhị phân, chính vì vậy chúng ta phải thực hiện chuyển về ảnh nhị phân. Phương pháp mà chúng tôi sử dụng để chuyển sang ảnh nhị phân là xác định dựa vào ngưỡng. Ngưỡng được xác định dựa trên phân phối mức xám của ảnh đã được trình bày ở trên. 3.1.2 Lọc nhiễu Trong nhận dạng nói chung và trong nhận dạng chữ viết nói riêng, nhiễu thường gặp và có nhiều ảnh hưởng đến kết quả nhận dạng là nhiễu đốm và nhiễu vạch. Hiện nay, chất lượng máy quét rất tốt vì thế nhiễu vạch đã giảm nhiều, tuy nhiên nhiễu đốm thì vẫn thường thấy. Hình 3.1 Ví dụ về nhiễu đốm Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân 12 Trong khóa luận này chúng tôi chỉ giới hạn ở việc xử lý các nhiễu đốm, việc loại bỏ các nhiễu đốm được thực hiện bằng cách áp dụng bộ lọc trung vị (median filter). Lọc trung vị: Cho I là ảnh, với mỗi điểm P trong ảnh ta lấy cửa sổ W(P), sau đó lấy trung vị và gán điểm P. Hình 3.2 Ảnh sau khi áp dụng lọc trung vị. 3.1.3 Xoay lại ảnh Ảnh đầu vào của chúng ta là ảnh scan lên rất dễ bị xoay. Chính vì vậy việc xoay lại ảnh hay khử độ nghiêng của ảnh là rất cần thiết, cho việc xử lý sau này. Công việc xoay văn bản gồm 2 giai đoạn chính là:  Xác định góc nghiêng.  Xoay lại ảnh theo góc nghiêng đã xác định. Hiện nay thì có ba phương pháp thường được xử dụng để xác định góc nghiêng của ảnh là: Sử dụng Histogram, phương pháp láng giềng gần nhất, phương pháp sử dụng biến đổi Hough. Phương pháp sử dụng biến đổi Hough rất hữu ích cho việc dò tìm đường thẳng trong trang văn bản vì thế rất thích hợp cho việc xác định góc nghiêng của trang văn bản gồm các thành phần là các dòng văn bản. Biến đổi Hough cần rất nhiều tính toán do phải thao tác trên từng điểm ảnh riêng lẻ. Mặc dùng hiện phương pháp này được rất nhiều người nghiên cứu và cải tiến. Tuy vậy tốc độ xử lý của phương pháp này là tương đối chậm, so với các phương pháp khác. Phương pháp láng giềng gần nhất: Phương pháp này được phát triển dựa trên nhận xét: trong một trang văn bản, khoảng cách giữa các kí tự trong một từ và giữa các kí tự của từ trên cùng một dòng là nhỏ hơn khoảng cách giữa hai dòng văn bản, vì thế đối với mỗi kí tự, láng giềng gần nhất của nó sẽ là các kí tự liền kề trên cùng một dòng văn bản. Phương pháp này có tốc độ nhanh hơn phương pháp biến đổi Hough tuy vậy thì nó vẫn châm hơn phương pháp sử dụng Histogram. Và một điểm khá quan trọng là nó khó có thể áp dụng cho tiếng Việt, vì: với những chữ có 3 Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân 13 thành phần gồm thân, mũ và dấu hỏi. Khi đó, láng giềng gần nhất của mỗi phần sẽ là một trong hai thành phần còn lại chứ không phải là kí tự liền kề với nó Phương pháp sử dụng Histogram được phát triển dựa trên nhận xét: khi văn bản không bị nghiêng thì các điểm đen tập trung chủ yếu ở các đường thuộc dòng văn bản, các tại các đường không thuộc dòng văn bản, số điểm đen là rất ít. Trong khi đó đối với văn bản nghiêng thì số điểm đen lại được phân bố khá đồng đều ở cả các đường thuộc dòng văn bản, và các đường không thuộc dòng văn bản. Hình 3.3: Histogram của một văn bản không nghiêng. Hình 3.4: Histogram của văn bản nghiêng. Thuật toán xác định Histogram để xác định góc nghiêng: Mô tả thuật toán:  h là chiều cao của ảnh (tính theo điểm ảnh).  entireBlackPoints là số điểm đen tích lũy, sau khi duyệt hết toàn bộ bức ảnh.  avgPointLine là số điểm đen trung bình tại một đường nằm ngang của ảnh  lineBlackPoint là số điểm đen tích lũy của một dòng.  Delta là phương sai của điểm đen trên một đường nằm ngang với số điểm đen trung bình. Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân 14 Ta thấy rằng góc lệch của văn bản thường chỉ nằm trong khoảng [-25, 25] độ. Chính vì vậy ta quay ảnh tại các góc trong khoảng [-25,25] với bước nhảy góc là stepAngle, và tính giá trị Delta tại mỗi lần quay, góc quay mà tại đó giá trị lớn nhất của theta, sẽ ứng với góc nghiêng của văn bản. 3.2 Tách đoạn Khi quan sát ảnh quét ta dễ nhận ra, mỗi văn bản sẽ được chia thành các đoạn khác nhau. Mỗi đoạn này có những đặc trưng khá tương đồng về cỡ chữ, font chữ. Chính sự tương đồng đó sẽ tạo điều kiện thuận lợi, giảm bớt sự phức tạp trong giai đoạn xử lý phía sau. Hình 3.5 Ví dụ minh họa cắt đoạn Để tách thành các đoạn (hay các vùng ảnh) chúng ta sử dụng 2 đặc trưng: Khoảng cách trắng giữa các đoạn sẽ lớn hơn khoảng trắng giữa các dòng, lùi đầu dòng của dòng kế tiếp. 3.3 Tách dòng 3.3.1 Tách dòng dựa vào các đường kẻ ngang Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân 15 Ta nhận thấy, với mỗi dòng văn bản chúng ta có thể chia làm 3 vùng dựa vào bốn đường cơ bản là : Top_Line, Bottom_Line, X_Line, Base_Line. Hình 3.6: Các đường đặc trưng của một dòng văn bản. Bước 1:Ý tưởng chính của phương pháp này là dựa trên nhận xét các điểm đen tập trung chủ yếu trong khoảng đường Base_line và X_Line. Các đường này thì có số điểm đên lớn hơn số điểm đên trung bình chính vì vậy chúng ta có thể xác định được hai đường Base_Line và X_Line. Bước 2:Sau khi xác định được Base_Line và X_Line chúng ta tiến hành xác định miền liên thông. Bước 3:tiếp theo là ta duyệt tất cả các miền liên thông. Nếu miền liên thông nào có diện tích về dòng nào nhiều hơn, thì thuộc về dòng đó. Nhận xét: Tuy nhiên phương pháp này sẽ gây ra lỗi nếu có xuất hiện các dòng ngắn. Khi đó vì số ký tự trong dòng này quá ít, nên trong khoảng từ base-line đến x-line, số điểm đen trên mỗi đường vẫn nhỏ hơn giá trị trung bình. Có thể khắc phục lỗi này bằng cách gọi đệ qui với các vùng chứa các dòng ngắn. Phương pháp cũng sẽ gây lỗi nếu gặp dòng toàn chữ in hoa (không tồn tại 4 đường đặc trưng như trên), và khó áp dụng đối với văn bản tiếng việt vì tiếng việt có thêm các dấu nên nhiều trường hợp giá trị x-line tìm được lại chính là top line, kết quả sẽ không chính xác nữa. Sau khi xác định được x-line, base-line cũng khó phân tách các dòng, nếu chúng khá liền nhau (hoặc dính vào nhau). 3.3.2 Tách dòng dựa vào thành phần liên thông Ý tưởng của phương pháp này là tìm tất cả các thành phần liên thông trong ảnh và sắp xếp theo thứ tự tăng dần của tung độ của điểm trên nhất. Sau đó dựa vào sự tương quan giữa tung độ của điểm trên nhất, tung độ của điểm dưới nhất của mỗi thành phần liên thông để gộp các thành phần này vào một dòng văn bản. Nhận xét: Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân 16 Ưu điểm của phương pháp này ta có thể tách được các dòng mà giữa chúng có phần giao với nhau (không dính) và đường cắt giữa 2 dòng sẽ được đi theo một đường cong, chứ không phải là một đường thẳng như những cách khác. Nhược điểm: Phương pháp này chạy tương đối chậm, do thời gian tính toán thành phần liên thông. Và phải duyệt lại thành phần liên thông nhiều lần. 3.3.3 Tách dòng dựa vào khoảng trắng giữa các dòng Trong đề tài này chúng tôi đề xuất một phương pháp tách dòng đó là tách dòng dựa vào khoảng trắng và kết hợp Histogram ngang. Ý tưởng của phương pháp này đó là dựa vào khoảng trắng giữa các dòng với nhau. Khoảng trắng giữa các dòng chính là nơi ta đặt nhát cát để tách các dòng với nhau. Phương pháp này có ưu điểm là tốc độ rất nhanh. Nhưng nhược điểm của phương pháp này là do sự xuất hiện của nhiễu. Nhiễu có thể làm mất khoảng trắng giữa các dòng, dẫn dến hiện tượng tách sai dòng (Một dòng thành hai hoặc ba dòng). Để giải quyết được nhược điểm của phương pháp này tôi đã kết hợp phương pháp này với Histogram ngang cho các trường hợp nghi ngờ tách hai dòng hay ba dòng. Histogram ngang dựa trên đặc điểm các điểm đen chỉ phân bố chủ yếu tại các đường thuộc các dòng, tại khoảng giữa các dòng thì rất ít. Ta tìm Histogram ngang của văn bản và xác định một ngưỡng threshold nào đó, đối với các đường mà trên đó số điểm đen < threshold thì sẽ được chọn làm phân cách giữa các dòng. Các bước thực hiện: Bước 1: Xác định khoảng trắng giữa các dòng và chọn làm vạch phân cách hay là vị trí cắt các dòng. Quá trình được lặp lại cho đến khi hoàn tất công việc tách dòng trong đoạn. Chiều cao của mỗi dòng phài > minHeightLine (tránh trường hợp tách các dấu thành một dòng) Bước 2: Xác định độ cao trung bình của các dòng trong một đoạn( avgHeightLine ). Thực nghiệm ta thấy ValueHistogram được tính: valueHistogram=avgHeightLine x 1,2 Bước 3: Kiểm tra độ cao của các dòng đã tách. Nếu dòng nào có độ cao > valueHistogram, thì thực hiện bước 4,5. Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân 17 Bước 4: Tìm threshold bằng cách trung bình các điểm trong một dòng. Khi thực nghiệm tôi thấy rằng nếu giá trị threshold *=0,2->03. Thì độ chính xác là cao nhất. Bước5:Đối với các đường mà trên đó số điểm đen < threshold thì sẽ được chọn làm phân cách giữa các dòng. Nhận xét: Ưu điểm: Thời gian chạy của phương pháp là nhanh hơn so với 2 phương pháp trên. Độ chính xác của phương pháp qua thực nghiệm là chấp nhận được, khoảng 99 %. Nhược điểm: Phương pháp này không có khả năng tách các dòng mà giữa chúng có phần giao nhau (không dính nhau). Nhưng trên thực tế việc các dòng giao nhau rất ít xẩy ra ở các văn bản. 3.4 Tách từ Trong để tách từ trong dòng văn bản, chúng ta dựa trên nhận xét khoảng cách giữa các kí tự trong một từ, sẽ nhỏ hơn khoảng cách giữa các từ trong một dòng. Ở đây chúng ta sẽ sử dụng một giá trị làm ngưỡng, giá trị này có tác dụng tách khoảng trắng giữa các kí tự với khoảng trắng giữa các từ. Để đạt được độ chính xác cho quá trình tách từ, do các dòng, các từ trong cùng văn bản có thể có kích cỡ khác nhau. Chính vì vậy ta phải xác định ngưỡng đối với từng dòng riêng biệt. Nếu như vậy ta phải xác định lại ngưỡng nhiều lần, để giảm điều này như trên chúng tôi đã đưa thêm vào giai đoạn tách thành các vùng văn bản. Các vùng văn bản này có cỡ chữ thường là giống nhau. Nên ta có thể tính ngưỡng chung cho một vùng của văn bản. Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân 18 Hình 3.7: Biểu đồ phân cách của ngưỡng. Thuật toán: Bước 1: Xác định tất cả các khoảng trống trong dòng văn bản. Bước 2: Sắp xếp theo thứ tự tăng dần kích thước khoảng trống, xác định ngưỡng của dòng. Bước 3: Ta lần lượt đi từ đầu đến cuối mảng các khoẩng trống, tại mỗi vị trí ta so sánh kích thước khoảng trống tai đó với kích trước trung bình các khoảng trống đã đi qua, nếu nó vượt quá một giá trị nào đó thì sẽ dừng và xác định là vị trí của nhát cắt. 3.4 Tách ký tự Thao tác được coi là phức tạp nhất của phân đoạn ảnh chính là giai đoạn tách kí tự. Do các kí tự thường bị dính vào nhau, làm cho các nhát cắt của chúng ta trở lên không chính xác. Ở đây chúng ta đưa ra hai khái niệm mới: Nhát cắt chính xác và nhát cắt nhập nhằng. Một nhát cắt được coi là chính xác nếu nhát cắt đó phân thành 2 kí tự. Một vị trí cắt được gọi là nhập nhằng nếu ta không thể chắc chắn đó là vị trí phân tách giữa hai kí tự (thực tế có thể là có). Trong ví dụ hình 3.11 ta có thể thấy có 4 nhát căt, thì 3 vị trí cắt đầu tiên là những chính xác phân tách giữa 2 ký tự tại mỗi vị trí đó. Chương 3: Phân đoạn ảnh cho nhận dạng văn bản Bùi Thế Hân 19 Hình 3.8: Các vị trí chính xác, vị trí cắt nhập nhằng. Trong khi đó nhát cắt 4 lại là một vị trí cắt nhập nhằng. Do chữ ‘ơ’ và chữ n dính vào nhau. Thuật toán tìm các vị trí cắt có thể được thực hiện trong 2 bước sau: Bước 1: Ta cắt từ thành một ký tự dựa vào khoảng trắng giữa các ký tự. Khoảng trắng được chọn làm vị trí đặt nhát cắt. Bước 2: Sau bước 1 thì các ký tự thu được (nằm giữa 2 vị trí cắt) có thể không thật sự là một ký tự (vì có thể 2 ký tự dính nhau). Do vậy đối với các ký tự thu được ta xét xem liệu nó có thể là hai từ dính lại với nhau hay không, nếu có thì sẽ thực sử dụng Histrogram theo chiều dọc với một ngưỡng threshold để xác định các vị trí cắt không chính xác. (Tại các đường dọc trong Histogram, nếu số điểm đen < threshold thì sẽ coi đó là một vị trí cắt). Để xác định xem liệu một ảnh ký tự thu được (nằm giữa hai vị trí cắt) có thể là do nhiều ký tự dính vào nhau hay không, chúng tôi đưa ra giải pháp đó là xác định thành phần liên thông lớn nhất trong ký tự này, nếu như nó có bề rộng > bề cao thì nó sẽ có khả năng là do 2 ký tự dính vào nhau. Tuy nhiên với cách này thì ký tự “m” có thể bị cắt làm đôi (vì bề rộng > bề cao) nhưng chúng ta chấp nhận điều đó. Và nó sẽ được xử lý ở trong bộ nhận dạng. Chương 4: Trích chọn đặc trưng Bùi Thế Hân 20 Chương 4 Trích chọn đặc trưng 4.1 Khái niệm cơ bản 4.1.1 Đặc trưng ảnh – Image Features Đặ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. Đặc trưng của ảnh chia làm hai loại: Đặc trưng mang tính tự nhiên và đặc trưng nhân tạo. Các đặc trưng mang tính tự nhiên: nghĩa là các đặc trưng mà con người có thể cảm nhận được một cách thông thường, qua các giác quan. Còn các đặc trưng nhân tạo theo nghĩa nó thường được tạo ra thông qua các thao tác trên ảnh. 4.1.2 Trích chọn đặc trưng – Feature Extraction Các đặc trưng chúng ta làm việc ở đây là các đặc trưng mang tính nhân tạo. Trích chọn đặc trưng là việc tìm và chọn ra các đặc trưng đặc thù của mỗi ảnh. Vector đặc trưng: Các đặc trưng được dùng để miêu tả ảnh sau quá trình trích chọn đặc trưng được gọi là vector đặc trưng của ảnh. Không gian đặc trưng: Tập hợp các khả năng có thể có của vector đặc trưng được gọi là không gian đặc trưng của ảnh. 4.2 Vai trò của trích chọn đặc trưng Trích chọn đặc trưng là bước cung cấp đầu vào trực tiếp cho hệ nhận dang. Đầu vào các chính xác thì nó giúp cho hệ nhận dạng của chúng ta làm việc chính Chương 4: Trích chọn đặc trưng Bùi Thế Hân 21 xác hơn. Như vậy ta có thể nói rằng vai trò của trích chọn đặc trưng là khá quan trọng, việc trich chọn đặc trưng phải đạt được một số yêu cầu sau đây: 1. Mục tiêu đầu tiên của trích chọn đặc trưng là chúng ta phải trích chọn được những đặc trưng tốt. Đến đây câu hỏi được đặt ra thế nào là đặc trưng tốt. “Đặc trưng tốt là những đặc trưng mà giá trị của các đặc trưng này là giống nhau với những đối tượng thuộc cùng một lớp và rất khác so đối với những đối tượng thuộc các lớp khác”. Ta thấy rằng trong một bức ảnh có rất nhiều đặc trưng, nhưng không phải là đặc trưng nào cũng là đặc trưng tốt. Nên chúng ta phải lựa chọn đặc trưng tốt mang nhiều thông tin hữu ích trong việc phân lớp. Chứ không phải chọn toàn bộ các đặc trưng như vậy sẽ làm mất thời gian, thậm chí còn ảnh hưởng đến bộ nhận dạng. 2. Trên thực tế, trong mỗi bức ảnh đầu vào thường chứa nhiễu. Nên khi trích chọn đặc trưng của ảnh chúng ta thường lấy đặc trưng của ảnh là những điểm biên. Vì các điểm biên là nơi tập trung các thông tin quan trọng nhất có trong ảnh. Như vậy yếu tố nhiễu đã được giảm bớt mặt khác các thông tin quan trọng có trong ảnh vẫn được bảo tồn. 3. Thực hiện trích chọn đặc trưng không nhất thiết phải thực hiện trên các ảnh nhị phân. Mà ta có thể thực hiện trên các ảnh đa mức xám, ta có thể trích chọn được nhiều thông tin hơn. 4.3 Một số phương pháp trích chọn đặc trưng Trong một ảnh có rất nhiều loại đặc trưng: đặc trưng về hướng, về cấu trúc và về tính lồi lõm. Vì vậy cũng có rất nhiều phương pháp trích chọn đặc trưng ảnh khác nhau như trích chọn đặc trưng theo hướng hình học, theo cấu trúc, theo tính lồi lõm,…. và một số phương pháp tổng hợp khác như GSC, Zernike moments, Karhunen Loeve Transformation, …..Tuy vậy luận văn này chúng tôi đã sử dụng mô đun nhận dạng có sẵn để kết nối thành hệ thống nhận dạng hoàn chỉnh, trong đó mô đun này sử dụng phương pháp GSC để trích chọn đặc trưng. Nên chúng tôi chỉ trình bày lý thuyết của phương pháp GSC. 4.3.1 Phương pháp trích chọn đặc trưng GSC Chương 4: Trích chọn đặc trưng Bùi Thế Hân 22 Phương pháp GSC được nêu ra bởi nhóm nghiên cứu của 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 ảnh của trường đại học tổng hợp New York, Hoa Kỳ. Phương pháp GSC là tổng hợp của 3 phương pháp trích chọn đặc trưng theo hướng, theo cấu trúc và theo tính lồi lõm. Do vậy, nó có khả năng thể hiện ảnh trên nhiều mức độ, từ mức độ thấp (theo hướng), tới mức độ cao (theo tính lồi lõm). Phương pháp này tỏ ra rất hiệu quả với loại bài toán nhận dạng khi số mẫu đầu vào là đa dạng do vậy rất phù hợp khi áp dụng vào bài toán nhận dạng chữ tiếng Việt. Dựa trên sự kết hợp giữa phương pháp trích chọn đặc trưng GSC và thuật toán nhận dạng là mạng Neural. Nhóm tác giả trên đã xây dựng thực tế hệ thống chuyên nhận dạng các địa chỉ thư ở bưu điện ở Mỹ và cho kết quả khá khả quan 97%. 4.3.1 Trích chọn đặc trưng theo hướng hình học Phương pháp trích chọn đặc trưng theo hướng hình học là phương pháp trích chọn ra các đặc trưng về hướng tại các điểm biên ảnh. Yếu tố cơ bản nhất của trích chọn đặc trưng 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. Phương pháp trích chọn đặc trưng theo hướng sử dụng véc tơ Gradient để xác định hướng của các điểm ảnh. 4.3.1.1 Khái niệm công thức tính vector gradient Vector gradient: Gradient là một vector 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. 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ì vector gradient tại điểm có tọa độ (x,y) được tính như trong công thức (1.3.1): f =       Gy Gx =                 y f x f (1.3.1) Biên độ của vector gradient tại điểm (x,y) được tính bởi công thức: r(x,y) = mag (f) = [ 22 yx GG  ] 1/2 (1.3.2) Chương 4: Trích chọn đặc trưng Bùi Thế Hân 23 Hướng của vector gradient tại điểm (x,y) được tính bởi công thức:  (x,y) = tan )(1 x y G G  (1.3.3) Khi tại vị trí (x,y) của ảnh là một điểm biên ảnh thì hướng của vector gradient tại điểm ảnh đó được coi là hướng của biên ảnh tại vị trí (x,y). 4.3.1.2 Các bước cơ bản của phương pháp trích chọn đặc theo hướng Bước 1: Tìm hình bao của ảnh đầu vào và bao ảnh bởi hình bao này. 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 4.1 Ả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 tọa độ X (nằm ngang) và tọa độ Y (thẳng đứng) được biểu diễn bởi hai ma trận trong hình 2.2: Hình 4.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. Chương 4: Trích chọn đặc trưng Bùi Thế Hân 24 Các vector thành phần SX và GY của vector 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: GX(i, j) = I (i - 1, j + 1) + 2I (i, j + 1) + I (i + 1, J + 1) - - I (i - 1, j - 1) - 2I (i, j - 1) - I (i + 1, J - 1) (1.3.4) SY(i, j) = I (i - 1, j - 1) + 2I (i - 1, j) + I (i - 1, J + 1) - - I (i + 1, j - 1) - 2I (i + 1, j) - I (i + 1, J + 1) (1.3.5) Sau khi tính được GX, GY ta tính biên độ và hướng của vector gradient tại điểm ảnh này theo công thức: Biên độ: Gradient_Manitude r(i, j) = ),(),( 22 jiGjiG YX  (1.3.6) Hướng: Gradient_Direction  (i,j) = tan-1 ),( ),( jiS jiS X Y (1.3.7) Từ đó, ta xây dựng bản đồ biên độ và bản đồ hướng của ảnh tương ứng là tập hợp biên độ và hướng của vector gradient tại tất cả các điểm ảnh. 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: Xác định các điểm biên và lượng tử hướng của chúng về 12 giá trị: 0….tương ứng với 360 độ. 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: 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. Chương 4: Trích chọn đặc trưng Bùi Thế Hân 25 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ể hiện dưới dạng bit nhị phân (0 hoặc 1). 4.3.2 Trích chọn đặc trưng theo cấu trúc Đặc trưng về cấu trúc thể hiện 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 nào đó. Sau đây là thuật toán trích chọn đặc trưng theo cấu trúc: INPUT :Ảnh đầu vào, Giá trị ngưỡng threshold OUTPUT : Vector đặc trưng của ảnh (192 bit) 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 thỏa mãn lần lượt 12 luật: luật 0…11.  Nếu ai > threshold thì ai = 1, ngược lại ai = 0 6. Xác định vector đặc trưng là tập hợp các giá trị ai (i = 0…11) trong tất cả các phần. Bảng 4.1 Các luật về đặc trưng theo cấu trúc của điểm ảnh Luật Kiểu của ảnh Điều kiện TM Luật Hình vẽ minh hoạ Chú giải Luật 1 Đường thẳng nằm ngang N0 (2,3,4) N4 (2,3,4) N0, X, N4 tạo thành đường nằm ngang Chương 4: Trích chọn đặc trưng Bùi Thế Hân 26 loại 1 Luật 2 Đường thẳng nằm ngang loại 2 N0 (8, 9, 10) N4 (8, 9, 10) N0, X, N4 tạo thành đường nằm ngang Luật 3 Đường thẳng đứng loại 1 N2 (5, 6, 7) N6 (5, 6, 7) N2, X, N6 tạo thành đường thẳng đứng 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 thẳng đứ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 Chương 4: Trích chọn đặc trưng Bùi Thế Hân 27 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 Luật 9 Góc loại 1 N2 (5, 6, 7) N0 (8, 9, 10) N2, X, N0 tạo thành góc vuông loại 1 Luật 10 Góc loại 2 N6 (5, 6, 7) N0 (2, 3, 4) N0, X, N6 tạo thành góc vuông loại 2 Luật 11 Góc loại 3 N4 (8, 9, 10) N2 (1, 0, 11) N2, X, N4 tạo thành góc vuông loại 3 Luật 12 Góc loại 4 N4 (4, 3, 2) N6 (1, 0, 11) N6, X, N4 tạo thành góc vuông loại 4 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 2.1 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. 4.3.3 Trích chọn đặc trưng theo tính lồi lõm Chương 4: Trích chọn đặc trưng Bùi Thế Hân 28 Đặc trưng theo tính lỗi lõm của ảnh là tìm ra những đặc trưng dựa trên nhiều điểm ảnh với mục tiêu tìm ra những vùng lồi lõm và những lỗ trống trong một bức ảnh đầu vào. Ả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 3. Đặc trưng thể hiện ảnh phần ảnh này là một nét lớn theo chiều ngang 4. Năm đặc trưng thể hiện tính lồi lõm hay là lỗ trống có trong phần ảnh này. 4.3.3.1Tì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 θ được chọn trước : nếu lớn hơn thì đặc trưng này có giá trị bằng 1, ngược lại có giá trị bằng 0. 4.3.3.2 Đặc trưng thể hiện phần ảnh là nét lớn Để tìm đặc trưng thể hiện phần ảnh là nét lớn theo chiều ngang hay chiều thẳng đứng ta làm như sau:  Gọi C1 là chiều dài của đoạn thẳng dài nhất theo phương ngang chứa các điểm đen liên tục (toàn bộ các điểm trong đoạn thẳng đều là điểm đen).  R1 là chiều dài của đoạn thẳng dài nhất theo phương thẳng đứng chứa các điểm ảnh liên tục (toàn bộ các điểm trogn đoạn thẳng đều là điểm đen).  Nếu C1 < R1 * 0.75 thì vùng này là nét lớn theo chiều thẳng đứng. Từ đó, thiết lập đặc trưng về nét lớn theo chiều thẳng đứng bằng 1, và đặc trưng về nét lớn theo chiều ngang bằng 0. Chương 4: Trích chọn đặc trưng Bùi Thế Hân 29  Nếu C1 > R1 * 1.5 thì vùng này là nét lớn theo chiều ngang. Từ đó, thiết lập đặc trưng về nét lớn theo chiều thẳng đứng bằng 0, và đặc trưng về nét lớn theo chiều ngang bằng 1. 4.3.3.3 Tìm đặc trưng thể hiện tính lồi lõm hay lỗ trống của ảnh: Ta quy ước như sau: U là mặt lõm quay về phía trên, D là mặt lõm xuống phía dưới, L là mặt lõm sang bên trái, R là mặt lõm quay sang bên phải, H là lỗ trống. Ý tưởng để tìm ra các đặc trưng này như sau: Với mỗi điểm ảnh (ngoại trừ các điểm đen) trong vùng, vẽ 8 tia xuất phát từ điểm ảnh đó lần lượt hợp với trục hoành các góc 0o, 45o, 90o,…, 270o, 315o. Các tia này chỉ có thể tiếp xúc với điểm đen trong ảnh hoặc sẽ chạm vào mép ảnh. Tại điểm ảnh đó, lỗ trống được phát hiện nếu cả 8 tia đều chạm vào điểm đen nằm trong ảnh. Vùng lõm hướng xuống phía dưới (D) được phát hiện nếu các tia có hướng 0o, 45o, 90o, 135o, 180o chạm vào điểm đen nằm trong ảnh còn các tia có hướng 225o, 270o, 315o chạm vào mép của ảnh. Việc phát hiện ra các vùng lồi lõm khác được thực hiện tương tự. Về thực chất, việc các tia chạm vào điểm đen nằm trong ảnh hay chạm vào tương đương với việc tổng số các điểm đen nằm trên tia đó lớn hơn hoặc bằng 0. Do việc tính toán là đơn giản nên thuật toán tính tổng số các điểm đen nằm trên mỗi tia không được miêu tả chi tiết ở đây. Với mỗi 5 đặc trưng nêu trên (U, D, L, R, H), ta tính tổng số điểm ảnh thỏa mãn có các đặc trưng đó. Giả sử thu được 5 giá trị ai với i = 1…5 và ai là tổng số điểm ảnh thỏa mãn. 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: nếu ai > θ thì ai = 1; ngược lại ai = 0. Như vậy, với phương pháp trích chọn đặc trưng ảnh theo tính lồi lõm, mỗi phần ảnh có 8 đặc trưng nên số đặc trưng của toàn bộ ảnh là 4*4*8 = 128. Chương 5: Phân lớp và mô hình học máy Bùi Thế Hân 30 Chương 5: Phân lớp và mô hình học máy Vấn đề quan trọng nhất của nhận dạng tiếng Việt: Với mỗi hình ảnh kí tự đưa vào mô hình nhận dạng của chúng ta phải trả lời được câu hỏi đây là kí tự gì. Hay nói cách khác hình ảnh kí tự này thuộc lớp nào? Để thực hiện được việc này chúng ta sử dụng véc tơ đặc trưng x = (x1, x2, …, xm) được lấy ra từ giai đoạn trích chọn đặc trưng, làm đầu vào cho mô hình nhận dạng. Có rất nhiều mô hình nhận dạng được dùng hiện nay như mạng neural, Mô hình học máy Entropy, Hidden Markov model (HMM) . Nhưng trong khuôn khổ của luận văn chúng tôi chỉ đi vào nghiên cứu và ứng dụng mô hình mạng neuron cho bài toán nhận dạng kí tự tiếng Việt của mình. 5.1 Cấu trúc hoạt động của mạng neuron 5.1.1 Cấu trúc và hoạt động của một neuron Một neuron nhân tạo là một đơn vị tính toán hay đơn vị xử lý thông tin cơ sở cho hoạt động của môt mạng neuron. Sơ đồ khối của hình 1.2 chỉ ra mô hình của một neuron nhân tạo. ở đây, chúng ta xác định ba thành phần cơ bản của một mô hình neuron: 1. Một tập hợp các synapse hay các kết nối, mà mỗi một trong chúng được đặc trưng bởi một trọng số của riêng nó. Tức là một tín hiệu xj tại đầu vào của synapse j nối với neuron k sẽ được nhân với trọng số synapse wkj. ở đó k là chỉ số của neuron tại đầu ra của synapse đang xét, còn j chỉ điểm đầu vào của synapse. Các trọng số synapse cuả một neuron nhân tạo có thể nhận cả các giá trị âm và các giá trị dương. Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 31 2. Một bộ cộng để tính tổng các tín hiệu đầu vào của neuron, đã được nhân với các trọng số synapse tương ứng; phép toán được mô tả ở đây tạo nên một bộ tổ hợp tuyến tính. 3. Một hàm kích hoạt (activation function) để giới hạn biên độ đầu ra của neuron. Hàm kích hoạt cũng được xem xét như là một hàm nén; nó nén (giới hạn) phạm vi biên độ cho phép của tín hiệu đầu ra trong một khoảng giá trị hữu hạn. Mô hình neuron trong hình 1.2 còn bao gồm một hệ số hiệu chỉnh tác động từ bên ngoài, bk. Hệ số hiệu chỉnh bk có tác dụng tăng lên hoặc giảm đi đầu vào thực của hàm kích hoạt, tuỳ theo nó dương hay âm. Hình 5.1: Mố hình phi tuyến của một neuron 5.1.2 Cấu trúc và hoạt động của mạng neuron Hình III.2.2 là một cấu trúc mạng neuron phổ biến. Mạng nơ ron này gồm 3 lớp, gọi là lớp vào, lớp khuất và lớp ra. Mỗi lớp gồm có một hay nhiều lớp, thể hiện trên biểu đồ bởi các vòng tròn nhỏ . Đường thẳng giữa các nút minh hoạ luồng thông tin từ nút này tới nút kế tiếp. Trong kiểu mạng neuron xác định này, luồng thông tin chỉ đi từ đầu vào tới đầu ra ( từ trái sang phải ). Các kiểu mạng neuron khác có nhiều kết nối phức tạp hơn , như các đường phản hồi. Các nốt của lớp vào là bị động , nghĩa là chúng không thay đổi dữ liệu. Chúng nhận các giá trị của dữ kiện vào và nhận giá trị với các bội số ra. Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 32 Hình 5-3 Cấu trúc chung của mạng neuron Các nút của lớp khuất và lớp ra là chủ động . Nghĩa là chúng có thể thay đổi dữ liệu như trên Hình III.2.1. Các biến : X11,X12…X115 giữ các giá trị để đánh giá. Lấy ví dụ, chúng có thể là các giá trị pixel từ ảnh, các mẫu từ tín hiêụ audio, giá thị trường chứng khoán .... Chúng có thể là cả các thuật toán khác giống như phân loại xác định ung thư, bán kính, độ sáng, góc cạnh... Mỗi giá trị của lớp vào được nhân đôi và được gửi cho tất cả các nút khuất. Nó được gọi là cấu trúc kết nối liền. Như hình III.2.1 giá trị đưa vào nút khuất được nhân với weight, số được định trước trong chương trình.Các giá trị vào qua weight sau đó được cộng vào để tạo ra các số đơn. Chúng được chỉ ra trên hình bởi biểu tượng ∑. Trước khi rời khỏi nút, số này được đi qua các hàm toán học phi tuyến sigmoid. Nó là đường cong hình chữ "s" giới hạn ngõ ra của nút. Đầu vào cho sigmoid là các giá trị giữa -∞ và +∞, khi các giá trị ra chỉ có thể giữa 0 và 1.Giá trị Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 33 ra từ lớp khuất được tái hiện trên biểu đồ luồng (III.2-1) bởi các biến :X21,X22,X23 và X24. Vừa như truớc đó, mỗi giá trị này được nhân đôi và đặt vào lớp kế tiếp. Các nút chủ động của lớp ra kết hợp và chỉnh sửa dữ liệu để tạo ra 2 giá trị ra trong mạng X31 và X32. Mạng neuron có thể có số lớp bất kỳ, và số nút bất kỳ trên mỗi lớp. Hầu hết ứng dụng sử dụng cấu trúc 3 lớp với tối đa vài trăm nút. Lớp khuất thường có cỡ khoảng 10% lớp vào. Trong ứng dụng xác định mục tiêu, lớp ra thường chỉ cần một nút. Ngõ ra của nút này thường có ngưỡng để đưa ra chỉ số dương hay âm chỉ sự có mặt hay vắng mặt của mục tiêu trong dữ liệu truyền vào 5.1.3 Hàm truyền Có rất nhiều hàm truyền có thể dùng trong các mạng neuron. Việc lựa chọn hàm truyền phù hợp với bài toán thường được tiến hành qua thực nghiệm. Trong bảng dưới đây, chúng ta dùng công thức y = f(x) để biểu diễn hàm truyền. Bảng 5-2. Một số hàm truyền Tên hàm truyền Đồ thị Miền giá trị Ứng dụng Symmetrical Hard limit (hardlim) y =    1 1 Sử dụng ở tầng ra của mạng neuron trong các bài toán phân loại hai lớp Linear (purelin) y = x Sử dụng trong mạng ADALINE Hàm Saturating Linear (satlin) y =      1 0 x với 0≤x≤1 Sử dụng trong mạng ADALINE với x<0 với x>1 với x<0 với x≥1 Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 34 Log-Sigmoid (sigmoid) y = ne1 1 Sử dụng trong mạng neuron nhiều tầng 5.2 Quá trình huấn luyện mạng và các thuật toán học mạng 5.2.1 Mạng neuron và bài toán phân loại mẫu Chún ta có thể nói nhiệm vụ của các hệ nhận dạng trong các bài toán nhận dạng chính là phân loại mẫu. Có nghĩa là từ một mẫu vào ban đầu, hệ nhận dạng cần chỉ ra nó thuộc về lớp phân loại nào. Bên cạnh bài toán nhận dạng chữ in tiếng Việt, nhiều bài toán nhận dạng khác cũng có thể coi là bài toán phân loại mẫu như nhận dạng dấu vân tay dùng làm mã khoá trong các hệ an ninh, nhận dạng khuôn mặt hay tiếng nói, … Câu hỏi đặt ra đối với chúng ta là sử dụng mô hình nào cho các hệ nhận dạng này để nó không chỉ phân loại được những mẫu đã học mà còn có thể tổng quát hoá để phân loại những mẫu chưa được học? 5.2.2 Đặc trưng của mạng neuron Mạng neuron có hai đặc trưng cơ bản: khả năng học hỏi và khái quát hóa. Khả năng học hỏi: là khả năng mà mạng neuron có thể phân loại chính xác những mẫu đã được huấn luyện (những mẫu trong tập training). Khái quát hóa: là khả năng mạng có thể nhận biết, phân loại được nhưng mẫu chưa được huấn luyện. Ví dụ như trong nhận dạng chữ in tiếng Việt: Khi ta đưa một mẫu chữ ‘a’, chữ này có nhiễu tức là chữ ‘a’ này chưa được huấn luyện. Mà mạng neuron vẫn có thể phân loại vào lớp chữ ‘a’. Các khả năng này có được là do việc hiệu chỉnh và cập nhật bộ tham số mạng trong suốt quá trình huấn luyện. 5.2.3 Các phương pháp huấn luyện mạng Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 35 Huấn luyện mạng: là quá trình đào tạo mạng sao cho khả năng học và tổng quát hoá mà nó đạt được là cao nhất. Bản chất của việc huấn luyện cho mạng là ta điều chỉnh các trọng số sao cho phù hợp để có được kết quả nhận dạng chính xác nhất. Trọng số này có thể điều chỉnh cập nhật trong suốt quá trình huấn luyện của mạng neuron. Học có giám sát: Trong học có giám sát ta được cho trước một tập ví dụ: gồm các cặp và mục tiêu là tìm một hàm f (trong lớp các hàm được phép) khới với các ví dụ. Nói cách khác, ta muốn tìm ánh xạ mà dữ liệu đầu vào đã hàm ý, với hàm chi phí đo độ không khớp giữa ánh xạ của ta và dữ liệu. Học không có giám sát: Trong học không có giám sát, ta được cho trước một số dữ liệu x, và hàm chi phí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu x và đầu ra của mạng, f. Hàm chi phí được quyết định bởi phát biểu của bài toán. Học tăng cường: Trong học tăng cường, dữ liệu x thường không được cho trước mà được tạo ra trong quá trình một agent tương tác với môi trường. Tại mỗi thời điểm t, agent thực hiện hành động yt và môi trường tạo một quan sát xt và một chi phí tức thời ct, theo một quy trình động nào đó (thường là không được biết). Mục tiêu là tìm một sách lược lựa chọn hành động để cực tiểu hóa một chi phí dài hạn nào đó, nghĩa là chi phí tích lũy mong đợi. Quy trình động của môi trường và chi phí dài hạn cho mỗi sách lược thường không được biết, nhưng có thể ước lượng được. Mạng neuron nhân tạo thường được dùng trong học tăng cường như là một phần của thuật toán toàn cục. Các bài toán thường được giải quyết bằng học tăng cường là các bài toán điều khiển, trò chơi, và các nhiệm vụ quyết định tuần tự (sequential decision making) khác. 5.2.4 Mạng lan truyền ngược nhiều tầng (Back-propagation Neural Network) Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 36 5.2.4.1 Kiến trúc mạng Hình 5.3 Mạng neuron hai lớp Các nơ ron lớp thứ t được nối đầy đủ với các nơ ron lớp thứ t+1. Trong nhiều ứng dụng thực tế, để đơn giản, người ta thường sử dụng mạng có một lớp ẩn, số nơ ron trong lớp ẩn được xác định dựa trên kinh nghiệm, hoặc dựa trên các kỹ thuật tìm kiếm khác nhau 5.2.4.2 Huấn luyện mạng Quá trình huấn luyện mạng được trình bày ở đây là quá trình học có giám sát với tập mẫu {(Xs, Ys)}. Thủ tục học có thể tóm lược như sau: Mỗi khi đưa một mẫu Xs = (x1 , ..., xn) vào mạng, ta thực hiện các công việc sau: - Lan truyền mẫu Xs qua mạng để có outs = Tinh (Xs, NN) - Tính sai số Errs của mạng dựa trên sai lệch outs - Ys - Hiệu chỉnh các trọng số liên kết nơ ron dẫn tới lớp ra Wij từ nơ ron j tại lớp ẩn cuối cùng tới nơ ron i tại lớp ra: wij = wij +  . aj . i, (15) ở đây:  là hệ số học, aj là đầu ra của nơ ron j, i là sai số mà nơ ron i ở lớp ra phải chịu trách nhiệm, được xác định theo công thức: Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 37 i = erri g'(Neti) (16) với erri là sai số thành phần thứ i trong Errs , Neti là tổng thông tin vào có trong số của nơ ron thứ i (Neti=wij.aj) và g'(.) là đạo hàm của hàm kích hoạt g được dùng trong các nơ ron. - Hiệu chỉnh các trọng số liên kết nơ ron Wjk dẫn tới tất cả lớp ẩn từ nơ ron thứ k sang nơ ron j (các lớp ẩn được xét từ dưới lên) : Tính tổng sai số tại nơ ron j phải chịu trách nhiệm HiÖu chØnh träng sè wjk wjk = wjk + ak j (18) (trường hợp xét liên kết từ nơ ron vào thứ k sang nơ ron j trên lớp ẩn thứ nhất, ta có ak = Ik, chính là tín hiệu vào). Chú ý : a) Trường hợp xét hàm kích hoạt tại các nơ ron ta có hệ thức g'(x)=g(x)(1-g(x)). b) Từ các công thức (15), (18) ta có thể viết lại: wij = wij + wij , wjk = wjk + wjk , víi wij =  aj i vµ wjk =  ak j Trong các ứng dụng thực tế, người ta thường hiệu chỉnh wij theo nguyên tắc có chú ý đến thao tác trước đó. Do vậy: wij(mới) =  aj i + wij(cũ), ở đây  là hệ số quán tính. Quá trình huấn luyện mạng cần chú ý tới các yếu tố sau:  Các trọng số ban đầu wij được gán các giá trị ngẫu nhiên, nhỏ  Lựa chọn các hệ số học  và hệ số quán tính  sao cho  +  1, với  không lớn hơn  quá nhiều.  i iij w)j(Netg'j  (17) xe xg   1 1 )( Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 38  Các tín hiệu vào, ra nên được định cỡ chỉ nằm trong khoảng [0,1]. Các nghiên cứu thực nghiệm chỉ ra rằng nên ở trong khoảng [0.2,0.8]. 5.2.4.3 SỬ DỤNG MẠNG Giả sử đã huấn luyện mạng như trên hình 7.23 với tập mẫu {(Xs,Ys)} để được ma trận trọng số W. Quá trình lan truyền trong mạng một vectơ tín hiệu vào X=(x1,x2,x3) được cho bởi: out = g(w64 a4 + w 65 a5) = g(w 64 g(w 41 x1 + w 42 x2 + w 43 x3) + w 65 g(w 51 x1 + w 52 x2 + w 53 x3)) = F ( X , W) Kh¶ n¨ng tÝnh to¸n cña m¹ng nhiÒu líp Víi mét líp Èn, m¹ng cã thÓ tÝnh to¸n xÊp xØ mét hµm liªn tôc bÊt kú ®èi víi c¸c biÕn t­¬ng øng lµ c¸c tÝn hiÖu ®Çu vµo. Víi hai líp Èn, m¹ng cã thÓ tÝnh to¸n xÊp xØ mét hµm bÊt kú. Tuy vËy, sè n¬ ron trong c¸c líp Èn cã thÓ t¨ng theo hµm mò ®èi víi sè ®Çu vµo vµ cho ®Õn nay vÉn ch­a cã nh÷ng c¬ së lý luËn ®Çy ®ñ ®Ó kh¶o s¸t hä c¸c hµm cã thÓ xÊp xØ nhê c¸c m¹ng nhiÒu líp. 5.3 Ứng dụng mô hình nhận dạng cho tiếng Việt 5.3.1 Khó khăn và giải pháp đề xuất cho nhận dạng kí tự Như chúng ta đã biết, chữ tiếng Việt là sự kết hợp giữa chữ cái Latinh và hệ thống dấu (sắc, huyền, hỏi, ngã, nặng). Khi chúng ta cắt các từ tiếng Việt viết thường ra thành các kí tự (chữ cái kèm theo dấu), ta sẽ thu được những nhóm kí tự sau: 18 kí tự có dấu bắt nguồn từ các chữ cái a, ă, â đó là: a, à, á, ã, ạ, ả, â, ầ, ấ, ẫ, ậ, ẩ, ă, ằ, ắ, ặ, ẳ, ẵ. (1) 12 kí tự có dấu bắt nguồn từ các chữ cái e, ê đó là: e, è, é, ẹ, ẽ, ẻ, ê, ề, ế, ệ, ể, ễ (2). 6 kí tự có dấu bắt nguồn từ chữ cái i là: i, í, ì, ị, ĩ, ỉ. (3) Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 39 6 kí tự có dấu bắt nguồn từ chữ cái y đó là: y, ỳ, ý, ỵ, ỹ, ỷ. (4) 18 kí tự có dấu bắt nguồn từ các chữ cái o, ô, ơ đó là: o, ò, ó, õ, ọ, ỏ, ô, ồ, ố, ộ, ỗ, ổ, ơ, ờ, ớ, ợ, ỡ, ở. (5) 12 kí tự có dấu bắt nguồn từ chữ các chữ cái u và ư đó là: u, ù, ú, ụ, ũ, ủ, ư, ừ, ứ, ự, ữ, ử. (6) 17 kí tự không dấu còn lại: b, c, d, đ, g, h, k, l, m, n, p, q, r, s, t, v, x. (7) Từ đặc điểm trên của chữ tiếng Việt, bên cạnh những khó khăn chung của bài toán nhận dạng chữ viết tay đã trình bày trong phần Giới thiệu, bài toán nhận dạng chữ viết tay tiếng Việt còn gặp những khó khăn sau: Số các kí tự tiếng Việt là rất lớn: 89 kí tự viết thường và 89 kí tự viết hoa chưa kể đến các chữ số và dấu câu. Nếu chỉ sử dụng hệ nhận dạng đơn thuần là nhận dạng một cấp (nhận dạng một lần) thì số các kí tự cần phân biệt là rất lớn, do vậy xác suất nhận dạng sai cũng sẽ cao. Tập hợp các kí tiếng Việt có thể chia thành bảy nhóm như ở trên, trong đó các nhóm (1), (2), (3), (4), (5) và (6) gồm các kí tự rất giống nhau, chúng chỉ khác nhau về dấu nên rất khó phân biệt. Có thể nói, bên cạnh độ lớn về số lượng kí tự, các nhóm kí tự gần giống nhau này là thách thức lớn nhất đối với các hệ nhận dạng chữ viết tay tiếng Việt. Nhận biết được những khó khăn này, chúng tôi đề xuất giải pháp như sau: Dùng hệ nhận dạng nhiều cấp (trước hết phân tập hợp kí tự thành các nhóm, mỗi nhóm gồm các kí tự gần giống nhau, sau đó nhận dạng các kí tự trong mỗi nhóm) nhằm giải quyết khó khăn về độ lớn của số lượng kí tự. Đối với mỗi kí tự ở đây chúng tôi đề xuất phương pháp chia kí tự thành 3 phần: Phần trên của kí tự (các dấu ), phần thân kí tự, phần dưới kí tự (dấu chấm). Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 40 Hình 5-4 : Hình ảnh kí tự được chia làm 3 phần. ở đây chúng ta nhận dạng 3 phần riêng biệt, sau đó sẽ ghép lại với nhau. Kết quả của các phép nhận dạng sẽ được kí tự nhận dạng hoàn chỉnh. Ví dụ “â:a:ạ”  ậ 5.3.2 Phân nhóm kí tự Trong phần thân gồm 29 kí tự trong đó có một số trường hợp có cấu tạo khá giống nhau như: d và đ; u và ư ...Ngoài ra còn có các trường hợp cấu tạo giống nhau giữa các kí tự với số, biểu tượng như ‘o’ và ‘0’; ‘1’ và ‘l’;’/’ và ‘\’,’|’. Trong mỗi nhóm chúng ta có thể trích chọn đặc trưng theo cách riêng. Trong nhóm ’/’ và ‘\’,’|’ để phân biệt được các kí tự ta phải sử dụng đến góc nghiêng của các kí tư thì mới có thể nhận biết được. Trong nhóm kí tự tương tự nhau chúng ta sẽ cắt kí tự thành nhiều phần và ta sẽ tiến hành trích chọn đặc trưng của các phần có thông tin hữu ích. Ví dụ như ‘u’ và ‘ư’ chúng ta sẽ tiến hành cắt kí tự làm đôi. Chỉ trích chọn đặc trưng của nửa kí tự có thông tin hữu ích. Hinh 5-5:ảnh gốc Chương 5:Phân lớp và mô hình học máy Bùi Thế Hân 41 Hình 5-6: Ảnh cắt Chương 6:Thực nghiệm Bùi Thế Hân 42 Chương 6 Thực nghiệm 6.1 Môi trường thực nghiệm Các chương trình được cài đặt bằng ngôn ngữ C# trên môi trường phát triển Visual Studio 2005 và được thử nghiệm trên hệ điều hành Windows XP SP2. 6.2 Thực nghiệm về phân đoạn ảnh 6.2.1 Tách dòng Điều kiện thực hiện: trong cài đặt thực nghiệm, chúng tôi xác định tham số minHeightLine = 7. Chúng tôi thực nghiệm phân tách 5 văn bản gồm 200 dòng. Các dòng tách sai trong trường hợp:  Vị trí tách dòng không đúng với vị trí thực tế của dòng đó trong văn bản.  Các dòng bị gộp với nhau tạo thành một dòng (hình 4.5). Hình 6.1: Minh họa tách dòng văn bản. Kết quả thực hiện: Tách dòng kết quả thực nghiệm chính xác 99%. Chương 6:Thực nghiệm Bùi Thế Hân 43 Số văn bản Số dòng Số dòng tách Chính xác Tính % 5 200 199 99 Bản 6.1 Kết quả thực nghiệm tách từ 6.2.3 Tách từ Điều kiện thực nghiệm: trong quá trình thực nghiệm, chúng tôi thử với các giá trị khác nhau của tham số k, và với k = 2.75 thì có cho kết quả tốt nhất, tách chính xác gần như tòan bộ văn bản. Hình 6.2: Minh họa cắt từ. Kết quả: Chúng tôi tiến hành tách từ trong 5 văn bản gồm 2200 từ. Độ chính xác cắt từ là: 99.2%. Một ví dụ về tách từ được minh họa như trong hình 4.6. Số văn bản Số từ Số từ tách chính xác 5 2200 1189 Bảng 6.2 Kết quả thực nghiệm tách từ 6.2.4 Tách ký tự Chúng tôi thực nghiệm việc tách kí tự với đầu vào là các từ đã được tách ở giai đoạn trên. Thì kết quả đạt được như sau: Chương 6:Thực nghiệm Bùi Thế Hân 44 Với những từ trong đó các kí tự tách rời nhau, thì độ chính xác của phép tách là rất cao (99.8%). Nhưng với nhưng từ các kí tự dính nhau thì không chính xác, chính vì vậy chúng tôi đã đưa ra nhiều kết quả cho các nhát cắt. 6.2.5 Thực nghiệm nhận dạng Chúng tôi thực nghiệm việc nhận dạng với đầu vào là các văn bản. Thì kết quả đạt được như sau: Số văn bản Số từ Số từ tách chính xác 5 2200 1189 Bảng 6.3 Kết quả thực nghiệm tách từ Chương 7:Kết Luận Bùi Thế Hân 45 Chương 7: Kết Luận Trong khóa luận này chúng tôi đã trình bày những lý thuyết cơ bản về phân đoạn ảnh, nghiên cứu và so sánh một số kỹ thuật phổ biến sử dụng trong phân đoạn ảnh cho nhận dạng. Đồng thời tôi cũng trình bày một cách khái quát về các phương pháp trích chọn đặc trưng và các mô hình học máy được áp dụng trong luận văn. Từ đó áp dụng vào bài toán nhận dạng chữ in tiếng Việt. Để nâng cao chất lượng trong quá trình phân đoạn ảnh nhằm tăng chất lượng tổng thể của hệ thống nhận dạng, chúng tôi đã đề xuất phương pháp văn bản thành các vùng,tách dòng dựa vào các phương pháp trực quan như đã trình bày ở trên. Kết quả thực nghiệm trên các văn bản chữ in thu được là rất khả quan với độ chính xác tại giai đoạn tách dòng là 99,2%, tại giai đoạn tách từ là 99,4%. Thực nghiệm trên văn bản chữ viết tay bước đầu cũng đem lại kết quả khả quan. Chúng tôi tiến hành ghép nối các modun để tạo thành một hệ thống nhận dạng, quá trình thực nghiệm thu được độ chính xác của hệ thống là 90.3%. Chúng tôi cũng đã xây dựng một ứng dụng nhận dạng văn bản chữ in tiếng Việt. Kết quả thu được cho thây, ứng dụng là có ích, có thể nhận dạng được các văn bản chữ in tiếng Việt với độ chính xác khá cao. Tuy nhiên vẫn tồn tại một số hạn chế chưa giải quyết được, đó là chưa giải quyết được khi các dòng các từ bị dính vào nhau ... Trong tương lai chúng tôi sẽ tiếp tục nghiên cứu và phát triển để nâng cao chất lượng hệ thống cả về độ chính xác và tốc độ. Đối với khó khăn khi cắt ký tự làm ba phần sẽ giải quyết theo hướng xác định các vị trí cắt có thể và tiến hành giống với quá trình tách ký tự. Qua đó mở rộng nghiên cứu và thực nghiệm trên các văn bản chữ viết tay tiếng Việt. Tài liệu tham khảo Bùi Thế Hân 46 Tài liệu tham khảo [1] Lương Mạnh Bá, Nguyễn Thanh Thủy, “Nhập Môn Xử Lý Ảnh Số”, Nhà xuất bản Khoa Học và Kỹ Thuật, 1999. [2] Ngô Quốc Đạt , Luận văn “Tích hợp mô hình cho nhận dạng tiếng Việt” khoa CNTT Trường đại học Công Nghệ đại học QGHN năm 2008. [3] Hoàng Kiếm, Nguyễn Hồng Sơn, Đào Minh Sơn, “Ứng dụng mạng Nơron nhân tạo trong hệ thống xử lý biểu mẫu tự động”, Kỷ yếu hội nghị kỷ niệm 25 năm thành lập Viện Công Nghệ Thông Tin, 2001. [4] [5] Lakhmi C. Jain (Editor), Beatrice Lazzerini (Editor) Detection technique for Binary Document Images based on Hough transform, International journal of information technology, Volume 3 number 3 2006, ISSN 1305-2403 Knowledge-based-intelligent-techniques-in-character-recognition [6] Pattern Recognition with Neural Networks in C++.chm. CRC Press [7] H. Bunke (Editor), P. S. P. Wang (Editor) Handbook of Character Recognition and Document Image Analysis [8] Bahram Javidi (Author) Image Recognition and Classification [9] Stephen V. Rice (Author), George Nagy (Author), Thomas A. Nartker (Author) Optical Character Recognition: An Illustrated Guide to the Frontier (The Springer International Series in Engineering and Computer Science) [10] Oliveira Luiz S., Robert Sabourin, Flavio Bortolozzi and Ching Y.Suen. Automatic Recognition of Handwritten Numerical Strings: A Recognition and Verfication Strategy. [11] Francis T. S. Yu (Editor), Suganda Jutamulia (Editor) In Stock Optical Pattern Recognition [12] ng118

Các file đính kèm theo tài liệu này:

  • pdfLUẬN VĂN- NGHIÊN CỨU VỀ NHẬN DẠNG CHỮ IN TIẾNG VIỆT.pdf