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%.
55 trang |
Chia sẻ: lylyngoc | Lượt xem: 3673 | Lượt tải: 1
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 = ne1
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
cha 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:
- LUẬN VĂN- NGHIÊN CỨU VỀ NHẬN DẠNG CHỮ IN TIẾNG VIỆT.pdf