6.1. Giới thiệu
Có nhiều cách để giải quyết bài toán phân đoạn các kí tự trong một từ nhưng chủ yếu xoay quanh phương pháp quy hoạch động hoặc sử dụng mô hình Markov ẩn. Với cách sử dụng mô hình Markov ẩn, các mô hình Markov sau khi được huấn luyện để nhận dạng từng kí tự riêng biệt sẽ được ghép lại với nhau theo một từ điển cho trước, sau đó sẽ sử dụng thuật toán Virtebi để tìm dãy trạng thái tối ưu nhất (bài toán giải mã của mô hình Markov ẩn)[21]. Với cách sử dụng qui hoạch động [16], chúng ta sẽ chia các nét bút của từ viết tay cần phân đoạn theo các vị trí thích hợp nào đó, và tiến hành tối ưu xác suất nhận dạng các kí tự theo các mốc ấy.
Vì thói quen của khi viết của con người là viết từ trái sang phải nên ở đây tôi chọn phương pháp quy hoạch động theo các mốc là tọa độ x. Điểm tối ưu của phương pháp này là việc xử lí các nét trễ sẽ trở nên đơn giản hơn rất nhiếu so với phương pháp sử dụng mô hình Markov ẩn. Nhưng ngược lại, nếu trong lời giải tối ưu không tồn tại phép chia thành dãy kí tự là các đường thẳng đứng thì bài toán sẽ không sẽ không tìm được.
6.2. Phân đoạn
Lời giải của bài toán phân đoạn có ba bước chính: bước một là xác định các mốc quy hoạch động, bước hai là xác định các trọng số của chúng, bước cuối là thực hiện quá trình tìm kiếm cách phân chia tối ưu.
6.2.1. Khởi tạo các mốc quy hoạch động
Vì con người có thói quen viết từ phải sang trái nên các mốc quy hoạch động sẽ được lấy theo tọa độ x. Trong trường hợp đơn giản nhất chúng ta có thể chọn dãy các điểm được sử dụng trong quy hoạch động là tập tất cả các tọa độ x có được từ các điểm thuộc mẫu đang xét. Nhưng việc lấy quá nhiều điểm dẫn tới sự không hiệu quả về mặt thời gian. Ngược lại nếu lấy quá ít thì xảy ra khả năng bỏ sót lời giải tối ưu.
Với mẫu A sau khi tiền xử lí, chúng ta sẽ dựa vào các thông tin có được từ mỗi nét bút trong A để chọn những vị trí để cắt thích hợp nhất. Cụ thể, các điểm được chọn là:
_ vị trí ứng với điểm bắt đầu và điểm kết thúc của nét bút _ vị trí ứng với điểm phải nhất và trái nhất của nét bút
_ vị trí của các điểm mà ở đấy xuất hiện sự thay đổi lớn về góc của tiếp tuyến.
Vì nét bút đã được rời rạc hóa theo các đoạn thẳng nối với nhau nên khó có thể xác định được tiếp tuyến thực sự của nét bút. Cho nên với mỗi điểm mẫu i của nét bút, chúng ta sẽ tính gần đúng góc là chênh lệch góc tạo bởi hai đường thẳng nối điểm i và i+1, i và i-1. Nếu góc chênh lệch này lớn hơn một góc hằng số cho trước, tọa độ x của của điểm i sẽ được thêm vào dãy các mốc dùng trong quá trình quy hoạch động tiếp theo.
Ngoài ra trong trường hợp vị trí của hai điểm liên tiếp vượt qua một ngưỡng nào đó, một số điểm ngẫu nhiêu sẽ được thêm vào giữa để đảm bảo bước khởi tạo dãy điểm cho quy hoạch động sẽ không bỏ qua lời giải tối ưu.Sau khi kết thúc bước khởi tạo này, chúng ta sẽ thu được dãy các điểm , , ..., .
Hình 6-15: Các điểm mốc được sử dụng trong quá trình quy hoạch động
6.2.2. Xác định trọng số của các điểm mốc
Với mỗi điểm đã được xác định ở bước một, chúng ta cố gắng gán cho nó một trọng số thể hiện khả năng tồn tại một nét cắt đi qua nó trong lời giải tối ưu. Trọng số của một vị trí sẽ được xác định qua số các điểm mà đường cắt thẳng đứng ứng với nó cắt các nét bút và vị trí của các điểm cắt đấy.
Trọng số theo số lượng điểm cắt: số lượng các điểm thuộc nét bút mà đường cắt thẳng đứng tại vị trí càng lớn, thì khả năng đường cắt này được sử dụng là càng ít. Nếu gọi c là số lần cắt, thì chúng ta sẽ gán trọng số ứng với điểm là:
với α là hằng số nhỏ hơn 1.
Trọng số theo vị trí các điểm cắt: trọng số này thể hiện sự ưu tiên về vị trí theo trục y của điểm cắt. Điểm cắt ứng với có tọa độ y càng gần đường cơ bản (đường y = 0 sau khi tiền xử lí) thì khả năng nó xuất hiện trong lời giải tối ưu càng cao. Gọi là vị trí của điểm cắt có giá trị tuyệt đối thấp nhất ứng với (nếu có tồn tại) thì trọng số theo vị trí của được tính là:
,
với 0 < β < 1, trong trường hợp không tồn tại thì
Trọng số cuối cùng của điểm mốc được lấy là tích của hai trọng số trên:
*
Hai tham số α, β được lựa chọn để phù hợp với xác suất nhận được bộ phân lớp kí tự được sử dụng.
6.2.3. Tìm kiếm cách phân chia tối ưu
Để thực hiện quy hoạch động, với mỗi , chúng ta sẽ sử dụng tham số có ý nghĩa là xác suất tốt nhất đạt được ở điểm mốc .
Khởi tạo: ban đầu các = 0 với 1 <= i <= K, = 1.
Tìm kiếm tối ưu: Ở bước thứ i (1 <= i <= K), chúng ta sẽ xét tất cả các mốc j từ 0 đến i-1. Gọi là kí tự mới, bao gồm những phần của các nét bút thuộc mẫu A, và những phần này nằm giữa và .Gọi C là một bộ phân lớp kí tự có khả năng đưa ra xác suất P(, l) là xác suất để là biểu diễn của kí tự l nào đó trong tập tất cả các kí tự L có thể. Bằng cách tìm ra giá trị mà xác suất P(, ) lớn nhất, thì xác suất mới sẽ là tích giữa , xác suất P(, ) và trọng số tại vị trí :
= max(, * P(, ) * )
Truy vết: Để tìm ra các phân chia tối ưu thì song song với tính giá trị của , chúng ta sử dụng tham số lưu lại mốc tối ưu trên đường đi tốt nhất đến mốc .
Có hai vấn đề quan trọng trong bước tính toán giá trị của , đó là cách xác định và bộ phân lớp C. Về lí thuyết, được lấy ra từ mẫu A ban đầu bằng tập hợp các phần của những nét bút thuộc đoạn giữa và , tuy nhiên không phải lúc nào các nét cắt thẳng đứng cũng cho kết quả tốt nhất. Ở vấn đề thứ hai, bộ phân lớp C có vai trò quan trọng trong việc xây dựng nên lời giải tối ưu cuối cùng. Xác suất được C đưa ra phải mô tả chính xác xác suất của thuộc về một lớp kí tự nào đó. Vì việc xác định xác suất này là rất khó khăn và phụ thuộc nhiều dữ liệu huấn luyện nên sau khi tìm được các phân chia tối ưu, kết quả cuối cùng sẽ được kết hợp với một mô hình nhận dạng nào đó có khả năng phân lớp tốt để đưa ra kết quả. Ở đây, mô hình Markov ẩn được sử dụng với vai trò là một tham số để loại đi các nét cắt không phù hợp với dữ liệu huấn luyện.
Hình 6-16: Ví dụ về trường hợp kí tự "a" có thể bị cắt và nhận dạng nhầm thành hai kí tự "c" và "i"
6.3. Kết luận
Thuật toán phân đoạn được giới thiệu ở đây chỉ có khả năng giải quyết một số trường hợp phổ biến trong bài toán nhận dạng từ viết tay trực tuyến. Trong trường hợp không tồn tại các đường cắt thẳng đứng để phân chia các kí tự trong một từ thì phương pháp này không giải quyết được. Việc lựa chọn bộ phân lớp để thích hợp sử dụng trong quá trình cũng gặp nhiều khó khăn. Trong khóa luận này, mô hình Markov ẩn được lựa chọn nhằm đưa ra các xác suất đóng vai trò tham số để tìm kiếm lời giải tối ưu. Ngoài ra, nếu có thêm các dữ liệu ở mức ngữ pháp như từ điển gồm có các từ hay xuất hiện hoặc là quy tắc kết hợp giữa các kí tự thì thuật toán hoàn toàn có thể phát triển để đạt hiệu quả cao hơn.