Trong đó hh[y] là phép chiếu histogram theo phương nằm ngang. Tham số
s
biểu diễn giá trị trung bình số điểm đen của cả dòng văn bản. Giá trị thứ ba ds
là khoảng cách trung bình giữa các thành phần.
Ngưỡng để tách các từ khỏi dòng văn bản được tính theo công thức[8]: Tseg = s s l d
Trong đó là một hằng số được xác định bằng thực nghiệm. Giá trị thay đổi trong khoảng từ [0.8,1.5]. Với giá trị =1.1 thì kết quả phân tách các từ là tốt nhất.
Kết quả sai khi phân từ
Phân quá Phân thiếu Tổng số
0.8 6.95% 1.07% 8.02% 0.9 4.35% 1.09% 5.38% 1.0 3.62% 1.46% 5.08% 1.1 2.36% 2.08% 4.44% 1.2 2.23% 2.77% 5.03% 1.5 1.39% 6.44% 7.83%
Khi khoảng cách S giữa hai thành phần lớn hơn Tseg thì hai thành phần này thuộc hai từ khác nhau.
3.1.2Cải tiến các thuật toán cắt từ
Các phương pháp cắt từ đã đề cập ở trên đều dựa trên nguyên tắc tìm ngưỡng cắt, sau đó kiểm tra xem nếu khoảng trắng giữa hai thành phần lớn hơn ngưỡng cắt thì tiến hành cắt từ, tuy nhiên trong quá trình cắt vẫn cắt nhầm hai từ thành một từ. Sau đây là thuật toán để nâng cao độ chính xác khi tiến hành cắt từ:
Bước đầu tiên, ta xác định ngưỡng cắt bằng một trong các thuật toán nêu trên. Sau đó ta cắt dòng văn bản thành các đoạn. Như vậy mỗi đoạn có thể gồm nhiều từ và khoảng trắng trong các đoạn bị cắt đều nhỏ hơn ngưỡng cắt.
Gọi Silà một đoạn, khoảng trắng của các từ trong Si đều nhỏ hơn khoảng cách giữa Si với Si1 và Si1. Trong Si ta tính khoảng trắng lớn nhất maxgap và tính khoảng trắng bên trái và bên phải Sigọi là leftgap và rightgap. Nếu các giá trị maxgap, leftgap và rightgap thỏa mãn điều kiện[9]:
* maxgap ≥ min{leftgap, rightgap}
thì Sisẽ bị chia thành 2 đoạn tại nơi có độ rộng khoảng trắng là maxgap. Thuật toán kết thúc khi biểu thức (1) không còn được thỏa mãn.
Gọi WER(Word extraction rate) là tỉ lệ phân tách từ được tính theo công thức:
GA(Gap accurate rate) là tỉ lệ phân loại khoảng trắng chính xác được tính theo công thức:
Bảng thực nghiệm sau đây sẽ đánh giá kết quả thực hiện thuật toán[9].
Độ đo Ngưỡng tách Giá trị
WER Cố định
Xác định bằng thuật toán ước lượng
86.42 86.58
GA Cố định
Xác định bằng thuật toán ước lượng
87.50 87.73
3.1.3Biểu diễn các cụm ký tự và dấu
Trong tiếng Việt, mỗi từ có thể có nhiều dấu đi kèm, các dấu này sẽ được sử dụng để tăng độ chính xác trong quá trình cắt ký tự khỏi từ. Các dấu sẽ được xác định bằng các cách như đếm số điểm, so sánh vị trí của nó với đường baseline giữa và đường baseline dưới.
Sau khi đã tách các từ khỏi dòng văn bản, ta sẽ xác định xem các dấu của ký tự sẽ nằm ở cụm ký tự nào. Để thực hiện được, ta sẽ xác định hình chữ nhật nhỏ nhất bao quanh cụm ký tự và các dấu của từ. Sau đó kiểm tra xem dấu thuộc cụm ký tự nào theo các quy tắc:
Nếu hai giá trị xd1,xd2 của hình chữ nhật chứa dấu nằm trong xh11,xh21 của hình chữ nhật chứa cụm ký tự thì dấu đang xét được gán cho cụm ký tự đó.
Nếu hai giá trị xd1,xd2 của hình chữ nhật chứa dấu giao với xh11,xh12
và xh21,xh22 của hai cụm ký tự liên tiếp thì dấu đó được gán cho cụm ký tự có khoảng cách giữa xd1 tới xhi1 gần nhất(i=1,2).
Trong đó (xd1,yd1),(xd2,yd2) là hai điểm biểu diễn hình chữ nhất nhỏ nhất chứa đấu. (xh11,yh11),( xh12,yh12) là hai điểm biểu diễn hình chữ nhật chứa cụm ký tự.
3.2.Cắt các ký tự khỏi từ
3.2.1Ƣớc lƣợng chiều rộng và cao của ký tự
Trong các thuật toán cắt từ, chiều rộng và chiều cao ước lượng của ký tự được sử dụng để kiểm tra xem một điểm p có khả năng là điểm cắt hay không bằng cách so sánh khoảng cách từ điểm p tới điểm cắt gần nhất với chiều rộng trung bình của một ký tự.
Chiều cao trung bình của một ký tự được xác định bằng cách tính khoảng cách giữa đường baseline dưới và đường baseline trên. Chiều rộng trung bình của một ký tự được xác định bằng lấy chiều cao trung bình của ký tự nhân với
Hình 3.4. Hình chữ nhật nhỏ nhất chứa dấu và cụm ký tự
hằng số ( được xác định bằng thực nghiệm). Một cách khác để xác định chiều rộng trung bình của một ký tự là xác định các ký tự được viết riêng lẻ trung cả một câu và tính trung bình chiều rộng của chúng.
3.2.2Cắt bằng thuật toán mẹo
Trong nhận dạng chữ viết tay trực tuyến, chúng ta có thể phát hiện được cụm các ký tự tạo nên từ. Đối với nhận dạng chữ viết tay offline, khi các cụm từ này đè lên nhau, sẽ không phát hiện được từ được viết gồm nhiều cụm từ tạo nên. Ví dụ khi ta viết từ “chúng”
Như vậy đối với chữ viết tay, kết quả phân tách từ sẽ cho độ chính xác cao hơn so việc phân tách từ trong chữ viết tay offline. Ta đã có các điểm cắt tiềm năng lầ kết thúc của các nét bút Như ví dụ trên chúng ta đã có các điểm cắt kết thúc của 3 cụm “Chu”, “un” và “g”.
Thuật toán mẹo được thực hiện bằng cách duyệt qua các cụm từ để tìm các cung hoặc các điểm chiếu theo phương thẳng đứng có số điểm đen là ít nhất. Trong nhiều trường hợp các cung sẽ là nơi quyết định điểm cắt, tuy nhiên trong một số trường hợp các cung sẽ không có điểm cắt tại đó ví dụ như như tại các ký tự “a”, “u” và “o”. Để tránh trường hợp cắt nhầm trong các trường hợp này ta phải kết hợp với thủ tục tìm đường cong. Khi tìm thấy một cung, ta kiểm tra
xem việc cắt có phân ký tự thành hai phần hay không. Nếu đường cong của ký tự được tìm thấy thì không tiến hành cắt.
Mỗi khi tìm được điểm cắt ta cũng kiểm tra xem điểm cắt có gần với điểm cắt trước đó hay không. Nếu như quá gần điểm cắt trước đó thì điểm cắt cũng bị hủy bỏ.
Thuật toán mẹo để cắt các ký tự được miêu tả như sau[22]:
Bước 1. Ước lượng kích thước trung bình của các ký tự trong một từ. Việc này được thực hiện bằng cách dùng kích thước của các ký tự đơn lẻ.
Bước 2. Đi theo từng cột của ma trận điểm ảnh lần lượt từ trái qua phải. Nếu tồn tại ít nhất một một điểm đen(Có giá trị là 1) trên cột đó. Chuyển tới bước tiếp theo. Ngược lại, chuyển sang bước 8.
Bước 3. Kiểm tra hai bên của điểm dang xét để xem nó có nằm ở chỗ trũng hay không. Nếu có chuyển sang bước 4, ngược lại quay lại bước 2.
Bước 4. Tính xem có bao nhiêu cột kể từ điểm cắt trước đó.
Bước 5. Nếu số lượng cột tính từ điểm cắt gần nhất lớn hơn kích thước trung bình của một ký tự. Chuyển sang bước 6. Ngược lại, quay lại bước 2.
Bước 6. Kiểm tra xem điểm đang xét có là một phần của cung cong hoàn toàn hoặc một phần hay không.
Bước 7. Nếu bước 6 cho kết quả là sai, điểm cắt được xác định, ngược lại quay lại bước 2.
3.2.3Cắt bằng tập các quy tắc
Các bước cắt của phương pháp này được minh họa trong hình sau:
Bước 1: Tìm đường baseline
Trong thuật toán này ta sẽ tìm 5 đường thẳng được dùng cho thuật toán, các đường thẳng đó gồm đường baseline trên, đường baseline dưới, đường baseline giữa, đường thẳng trên và đường thẳng dưới(Minh họa trong hình 3.8).
Đường baseline trên là đường thẳng đi qua đỉnh của các ký tự thấp( ví dụ như các ký tự a, n, o, e v.v..)
Đường baseline dưới là đường thẳng đi qua đáy của các ký tự thấp.
Đường baseline giữa là đường thẳng viết các từ trên đó.
Đường thẳng trên: Là đường thẳng đi qua điểm trên cùng của từ
Đường thẳng dưới: Là đường thẳng đi qua điểm dưới cùng của từ Chữ viết tay trực tuyến Chuyển thành dạng offline Tìm đường baseline Ước lượng các điểm cắt Áp dụng các quy tắc Áp dụng các quy tắc Từ được cắt
Bước 2: Ước lượng điểm cắt
Bước này sẽ gán các điểm cắt ứng cử viên. Thuật toán xác định các điểm cắt ứng viên được sử dụng là thuật toán mẹo. Thuật toán mẹo sẽ xác định các điểm tại đó có sự thay đổi đột ngột histogram theo chiều thẳng đứng.
Bước 3: Dùng các quy tắc để kiểm chứng các điểm ứng cử viên
Các quy tắc sau đây đựa trên đặc trưng của các ký tự để kiểm chứng các điểm cắt ứng viên.
Quy tắc 1: Xác định thòng lòng và xóa các điểm cắt ứng viên nằm trong thòng lọng, và đánh dấu một điểm cắt ứng viên tại cuối thòng lọng.
Hình 3.9. Các điểm cắt ứng viên thay đổi khi áp dụng quy tắc 1 Hình 3.8. Minh họa các đường baseline Hình 3.8. Minh họa các đường baseline
Quy tắc 2: Xác định các hình mũ và xóa các điểm cắt nằm trong các đường viền hình mũ và thêm điểm cắt ứng viên vào điểm cuối của của hình mũ. Các hình mũ có dạng , . ( Xem hình 3.10)
Quy tắc 3: Đối với từng điểm cắt, nếu khoảng cách trung bình giữa điểm trước điểm cắt đang xét và điểm trước và sau nó, nếu nhỏ hơn khoảng cách trung bình của một ký tự thì loại bỏ điểm cắt đó thông qua hỗ trợ của mạng neural.
Quy tắc 4: Thêm vào các điểm cắt bị thiếu, các điểm cắt bị thiếu được xác định bằng cách đo khoảng cách giữa hai điểm cắt. Nếu khoảng cách giữa hai điểm cắt lớn hơn khoảng cách trung bình của hai điểm cắt liền nhau thì tìm có thể giữa hai điểm cắt đó còn thiếu một điểm cắt.
3.2.4Sử dụng thông tin phụ để tăng độ chính xác
Trong nhận dạng chữ viết tay trực tuyến, ta thu được nhiều thông tin về ký tự hơn so với nhận dạng chữ viết tay offline như hướng viết, v.v... Riêng đối với tiếng việt, ta sẽ sử dụng các dấu trong tiếng việt để kiểm chứng và quyết định điểm cắt tại vị trí nào.
Trong tiếng việt, có tất cả 5 dấu “dấu nặng”, “dấu sắc”, “dấu huyền”, “dấu hỏi”, “dấu ngã”. Các dấu này đi kèm với một số ký tự nhất định. Bảng sau đây liệt các ký tự đi với 5 dấu trên.
Dấu Các ký tự có
đấu này
Đặc điểm
Dấu hỏi(?) a,e,i,y,o,u Ở trên ký tự chứa nó Dấu sắc “´” a,e,i,y,o,u Ở trên ký tự chứa nó Dấu nặng “.” a,e,i,y,o,u Ở dưới ký tự chứa nó Dấu huyền “`” a,e,i,y,o,u Ở trên ký tự chứa nó Dấu ngã “~” a,e,i,y,o,u Ở trên ký tự chứa nó
Ngoài các dấu kể trên, có một số ký tự muốn viết được phải dùng hai nét bút, nét bút thứ 2 có các đặc trưng dễ phát hiện như có ít điểm ( Ví dụ là dấu “.”) hoặc là một nét bút thằng (Ví dụ như dấu gạch ngang khi viết chữ “t”). Bảng sau đây liệt kê đặc trưng của các ký tự đặc biệt.
Ký tự Đặc trưng
i Được tạo thành bởi nét bút thứ hai là dấu “.” t Được tạo thành bởi nét bút thứ hai là một nét
gạch ngang.
3.2.5Kết hợp cắt từ và nhận dạng
Để tăng kết quả nhận dạng, ta sẽ tiến hành cắt từ và tìm ra các điểm cắt ứng cử viên sau đó cắt từ theo các điểm cắt ứng cử viên đó và đem nhận dạng, trong tất cả các trường hợp cắt(mỗi trường hợp cắt được coi như là có sự thay đổi của các điểm cắt ứng viên so với các trường hợp cắt khác) nêu trường hợp nào có tỉ lệ lỗi nhỏ nhất khi nhận dạng thì đó chính là kết quả nhận dạng.
Nếu kết hợp với từ điển, sau mỗi trường hợp cắt, ta nhận dạng và đánh giá tỉ lệ lỗi, ngoài ra còn kiểm tra từ nhận dạng được có nằm trong từ điển hay không. Sau đây là mô hình kết hợp các phương pháp cắt từ và nhận dạng[13].
Với mỗi từ N i=1 i<=N Y Sử dụng thuật toán tách từ thứ i để chia từ thành các khối mới Nhận dạng và đánh giá tỉ lệ lỗi cho cả từ i=i+1 Nhận kết quả nhận dạng tốt nhất từ các thuật toán cắt N Hình 3.12. Sơ đồ kết hợp giữa tách từ và nhận dạng
3.3.Trích chọn đặc trƣng
3.3.1Hƣớng viết
Hướng viết cục bộ tại một điểm (x(t),y(t)) được tính bằng cách sử dụng hàm cosin và sin: _�_ Cos (t) = ) ( ) ( t s t x Và Cos (t) = ) ( ) ( t s t x Trong đó: ) ( ) ( ) (t x2 t y2 t s ) 1 ( ) 1 ( ) ( x t x t x t ) 1 ( ) 1 ( ) ( y t y t y t Hình 3.13. Xác định hướng viết
3.3.2Xác định độ cong
Độ cong tại điểm (x(t),y(t)) được tính bởi hàm cosine và hàm sine sử dụng các điểm (x(t-2),y(t-2)), (x(t),y(t)), (x(t+2),y(t+2)). Hàm sine và cosine được tính như sau:
Cos (t) = cos (t-1) * cons (t+1) + sin (t-1) * sin (t+1) Và
Cos (t) = cos (t-1) * sin (t+1) – sin (t-1) * cos (t+1)
3.4.Pen-up/pen-down
Đặc trưng Pen-up/Pen-down chỉ ra khi nào bút viết tiếp xúc với bàn viết hoặc không. Hai đặc trưng này cho biết thông tin bắt đầu và kết thúc của một nét bút. Hai đặc trưng này sẽ được thu nhận nhờ hỗ trợ của ngôn ngữ lập trình.
3.5.Lƣợng tử hóa độ nghiêng
Đặc trưng này liên quan đến hướng viết của người viết. Để lượng tử hoá độ nghiêng, trước tiên ta tính góc nghiêng giữa hai điểm pi và pi+1 theo công thức:[4]
) ( tan 1 1 1 i i i i i x x y y
Góc nghiêng sau khi được tính sẽ được lượng tử thành 8 mức. Gọi Q là tập các góc nghiêng đã được lượng tử thành các mức tương ứng với mỗi điểm pi
Q = {qi} trong đó I = 1..N và qi = {0,..,7}
3.6.Xác định các điểm trội
Các điểm trội của một ký tự P là các điểm mà giá trị độ nghiêng đã được lượng tử hóa thay đổi một cách đáng kể. Điểm pi của P được gọi là điểm trội nếu thỏa mãn hai điều kiện sau:
(qi+1 – qi + 8 ) % 8 FI và (qi – qi-1 + 8 ) % 8 FI
Trong đó FI là giá trị ngưỡng cố định có giá trị từ 0 đến 4. % là phép toán lấy phần dư. Hai điểm đầu và điểm cuối của P được mặc định là hai điểm trội.
Khi giá trị của FI tăng lên thì cấu trúc của P cũng trở nên thô hơn và ngược lại. Hình sau đây minh họa cấu trúc của một ký tự khi giá trị FI thay đổi:
Hình 3.15. Các điểm trội của ký tự khi các giá trị FI thay đổi. (a) FI =0, (b) FI = 1, (c)FI = 2 (c)FI = 2
CHƢƠNG 4. MỘT SỐ PHƢƠNG PHÁP NHẬN DẠNG
4.1.Đối sánh nhị phân
Phương pháp này sử dụng các đặt trưng của ký tự để đối sánh như số nét bút tạo thành ký tự, ký tự có nét bút trễ hay không hoặc chuyển ký tự về dạng biểu diễn như ảnh nhị phân để so sánh.
Một số ký tự chỉ có một nét bút là “C,e,L,v.v..” trong khi đó một số ký tự khác có thể gồm 2 nét bút như “X,Tv.v..”, các ký tự có thể gồm 3 nét bút là “H,K”.
Tọa độ các điểm (x,y) thu được từ thiết bị số hóa
Chuẩn hóa kích thước và căn giữa Chuyển thành ma trận nhị phân Phân vùng và trích chọn đặc trưng Đối sánh mẫu
Chuẩn hóa kích thước và căn giữa đảm bảo ký tự có cùng kích thước giống nhau. Tất cả các ký tự đều đưa về kích thước n x n.