BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
----------------***----------------
NGUYỄN THỊ HUYỀN
XÂY DỰNG ỨNG DỤNG TỰ ĐỘNG ĐỌC BẢNG ĐIỂM
Chuyên ngành: Công nghệ thông tin
LUẬN VĂN THẠC SĨ KỸ THUẬT
Công nghệ thông tin
NGƢỜI HƢỚNG DẪN KHOA HỌC:
TS. Nguyễn Thị Oanh
Hà Nội – Năm 2015
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi.Các dữ liệu sử
dụng trong luận văn có nguồn gốc rõ ràng, kết quả nêu trong luận văn là do tôi tự
tìm hiểu, phân tíchmột cách trung thực, khách quan và các kết quả này chưa từng được
công bố trong bất kỳ nghiên cứu nào khác.
Hà Nội, ngày 22 tháng 9 năm 2015
Tác giả
Nguyễn Thị Huyền
1
MỤC LỤC
BẢNG CÁC TỪ VIẾT TẮT .......................................................... 4
DANH MỤC CÁC HÌNH .............................................................. 5
DANH MỤC CÁC BẢNG ............................................................. 6
MỞ ĐẦU .......................................................................................... 7
CHƢƠNG 1: TỔNG QUAN .......................................................... 9
1.1 Giới thiệu bài toán ..................................................................................9
1.2 Phương pháp nghiên cứu ........................................................................9
1.3 Cấu trúc luận văn ..................................................................................10
CHƢƠNG 2: KIẾN THỨC CƠ BẢN ......................................... 11
2.1 Một số kỹ thuật xử lý ảnh số ................................................................11
2.1.1 Khử nhiễu ...................................................................................11
2.1.2 Chuyển đổi ảnh màu sang ảnh xám ............................................12
2.1.3 Phân ngưỡng ...............................................................................13
2.1.4 Phép toán hình thái ......................................................................13
2.1.5 Phép biến đổi affine ....................................................................15
2.2 Một số phương pháp đã được thực hiện với bài toán nhận dạng
bảng điểm và nhận dạng ký tự ............................................................................16
2.2.1 Phương pháp đã được áp dụng cho bài toán nhận dạng bảng
điểm ..............................................................................................................16
2.2.2 Một số phương pháp nhận dạng ký tự ..........................................17
2.3 Giới thiệu về phần mềm nguồn mở Tesseract OCR............................18
2.3.1 Một số thư viện phần mềm nguồn mở về nhận dạng ký tự ..........18
2
2.3.2 Phần mềm nguồn mở Tesseract OCR .........................................20
CHƢƠNG 3: HỆ THỐNG CÀI ĐẶT THỬ NGHIỆM ............ 23
3.1 Giải pháp cho hệ thống .........................................................................23
3.1.1 Phân tích hệ thống ........................................................................23
3.1.2 Cấu trúc hệ thống ..........................................................................25
3.1.3 Tiền xử lý ảnh ...............................................................................25
3.1.4 Xác định các khu vực quan tâm ..................................................26
3.1.4.1 Xác định phần bảng điểm và hiệu chỉnh góc nghiêng ...........26
3.1.4.2 Xác định vùng mã sinh viên và vùng điểm ............................29
3.1.4.3 Xác định khu vực chứa mã môn học ......................................33
3.1.5 Nhận dạng .....................................................................................34
3.1.5.1 Huấn luyện dữ liệu với Tesseract OCR cho chữ số viết tay ..34
3.1.5.2 Nhận dạng ký tự với Tesseract OCR ......................................38
3.2 Cài đặt ...................................................................................................39
CHƢƠNG 4: KẾT QUẢ THỰC NGHIỆM ............................... 41
4.1 Kết quả nhận diện chữ số viết tay ........................................................41
4.2 Kết quả thử nghiệm trên dữ liệu bảng điểm thực .................................41
CHƢƠNG 5: KẾT LUẬN............................................................ 48
5.1 Các kết quả đã đạt được .......................................................................48
5.2 Các mặt còn hạn chế .............................................................................48
5.3 Định hướng phát triển ..........................................................................49
TÀI LIỆU THAM KHẢO ........................................................... 50
3
BẢNG CÁC TỪ VIẾT TẮT
Viết đầy đủ
Từ viết tắt
OCR
Optical Character Recognition
UNLV
University of Nevada-Las Vegas
ISO
International Organization for Standardization
SVM
Support Vector Machine
OpenCV
Open Computer Vision
MFC
Microsoft Foundation Class
4
DANH MỤC CÁC HÌNH
Hình 1: Quá trình lọc trung vị [3] ...........................................................................12
Hình 2: Phép giãn nở trên ảnh nhị phân ..................................................................14
Hình 3: Phép co ảnh ................................................................................................15
Hình 4: Phép biến đổi affine trên ảnh .....................................................................16
Hình 5: Kiến trúc tổng thể của Tesseract OCR .......................................................21
Hình 6: Vị trí của mã môn học trong bảng điểm ....................................................24
Hình 7: Cấu trúc hệ thống .......................................................................................25
Hình 8: Các bước tiền xử lý ảnh bảng điểm ...........................................................25
Hình 9: Các trục không gian của một ảnh [3] .........................................................26
Hình 10: Hình ảnh bảng điểm với phần bảng được đánh dấu.................................27
Hình 11: Quá trình hiệu chỉnh góc nghiêng ảnh bảng điểm ..................................29
Hình 12: Khu vực chứa cột mã sinh viên và cột điểm trong bảng điểm .................30
Hình 13: Các đường ngang được phát hiện cho vùng mã sinh viên của một bảng
điểm. ........................................................................................................................31
Hình 14: Mã sinh viên và điểm tương ứng cho một sinh viên ................................31
Hình 15: Hình chữ nhật tối thiếu chứa mã sinh viên ..............................................32
Hình 16: Các chữ số trong vùng điểm được tách riêng ..........................................33
Hình 17: Khu vực chứa mã môn học ......................................................................34
Hình 18: Quá trình huấn luyện chữ số viết tay với Tesseract .................................35
Hình 19: Bảng lấy mẫu số viết tay ..........................................................................36
Hình 20: Sửa tập tin .box với công cụ bbTesseract ................................................37
Hình 21: Giao diện chính của chương trình ............................................................40
Hình 22: Form thay đổi số thứ tự của các cột mã sinh viên và điểm ......................40
Hình 23: Hình ảnh một số bảng điểm .....................................................................41
Hình 24: Phát hiện khu vực bảng và xoay ảnh........................................................42
Hình 25: Trường hợp không phát hiện được khu vực bảng ....................................43
Hình 26: Trường hợp chỉ xác định được bằng phương pháp 2 ...............................43
5
DANH MỤC CÁC BẢNG
Bảng 1: Độ chính xác của Tesseract trên một số ngôn ngữ ....................................19
Bảng 2: So sánh giữa một phần mềm OCR thương mại và Tesseract. ...................21
Bảng 3: Một số trường hợp nhận dạng số viết tay bị sai ........................................41
Bảng 4: Kết quả nhận dạng mã môn học ................................................................44
Bảng 5: Ví dụ nhận dạng sai mã môn học ..............................................................44
Bảng 6: Kết quả nhận dạng mã sinh viên ................................................................45
Bảng 7: Ví dụ nhận dạng sai mã sinh viên ..............................................................45
Bảng 8: Kết quả nhận dạng điểm ............................................................................46
Bảng 9: Điểm bị sai do nhận dạng số viết tay sai ...................................................46
Bảng 10: Điểm bị sai do loại mất số trong điểm .....................................................47
Bảng 11: Điểm bị sai do số chữ số nhận dạng được lớn hơn thực tế......................47
6
MỞ ĐẦU
Ở trường Đại học Nông nghiệp Hà Nội nay là Học viện Nông nghiệp Việt
Nam hiện nay, mỗi sinh viên một học kỳ trung bình học 7 môn. Kết quả của mỗi
môn học được dựa trên đánh giá của giáo viên, mỗi môn học sẽ có hai lần đánh giá:
đánh giá bằng điểm giữa kỳ và đánh giá bằng điểm cuối kỳ. Trước mỗi kỳ thi bảng
điểm sẽ được in ra, trong bảng điểm bao gồm các thông tin như: mã môn học, tên
môn học, mã sinh viên, tên sinh viên, điểm thi … Sinh viên phải ký xác nhận vào
danh sách và điểm của sinh viên sẽ được giáo viên nhập vào danh sách này với
điểm dao động từ 0 đến 10. Sau đó điểm của sinh viên sẽ được nhập vào cơ sở dữ
liệu. Như vậy, với khoảng hơn 5000 sinh viên mới nhập học hằng năm thì việc nhập
điểm cho sinh viên từ bảng điểm vào cơ sở dữ liệu là một khâu tốn nhiều công sức,
nhàm chán và dễ gây nhầm lẫn.Vì vậy, Học viện rất chú trọng đến khâu này và đã
thực hiện qua một số phương pháp như:
Nhập thủ công trực tiếp: Với việc nhập điểm thủ công trực tiếp, giáo viên
được phát các bảng điểm để điền điểm, sau đó ký xác nhận và gửi lên ban Đào tạo.
Ban Đào tạo mở form nhập liệu dưới dạng bảng để gõ điểm trực tiếp. Sau khi nhập
điểm phải có một người soát lại để đảm bảo không nhầm. Đôi khi phải áp dụng cách
cho hai người nhập hai lần để so sánh. Việc này rất mất công, nhàm chán và hiệu
quả không cao.
Nhập điểm từ file: Với phương pháp này các giáo viên được yêu cầu nhập
điểm vào bảng tính Excel sau đó gửi bảng điểm này (file Excel) cho ban Đào tạo.
Cán cán bộ ban Đào tạo sử dụng một công cụ để nhập (import) dữ liệu vào cơ sở dữ
liệu. Cách này khá nhanh, tiện lợi tuy nhiên có một hiểm hoạ là nếu do nhầm lẫn
hoặc vô tình làm thay đổi trên định dạng trên bảng tính excel thì hệ thống không
nhập được và khi đó rất khó phát hiện.
Nhập trực tuyến (nhập điểm online): Giáo viên đăng nhập vào hệ thống để
hiển thị form bảng điểm, sau đó nhập điểm qua mạng. Phương pháp này giảm tải
cho ban Đào tạo, đồng thời số liệu chắc chắn chính xác hơn do chính giáo viên tự
nhập mà không qua một khâu trung gian nào. Tuy nhiên với cách này sau khi điểm
7
được nhập đủ, ban Đào tạo phải đối chiếu lại điểm của sinh viên trong bảng điểm và
điểm mà giáo viên đã nhập. Ngoài ra nhập điểm online đòi hỏi phải kết nối vào
mạng của Học viện trong thời gian nhập điểm.
Xuất phát từ những vấn đề trên cho thấy sự cần thiết của một hệ thống có thể
đọc điểm bằng cách nhận dạng ảnh bảng điểm, hệ thống này có thể hỗ trợ giáo viên
trong việc nhập điểm và hỗ trợ cán bộ ban Đào tạo trong việc đối chiếu, kiểm tra
điểm của sinh viên giữa bảng điểm và điểm do giáo viên nhập trong cơ sở dữ liệu.
Đây chính là lý do tôi chọn đề tài này để thực hiện trong luận văn.
8
CHƢƠNG 1: TỔNG QUAN
1.1 Giới thiệu bài toán
Trong thời gian thực hiện luận văn, tôi cố gắng tìm hiểu các kỹ thuật để có thể
xây dựng được một hệ thống có thể đáp ứng được mục tiêu đề ra là: có thể đọc được
điểm của sinh viên từ ảnh bảng điểm. Đầu vào của hệ thống là ảnh scan của bảng
điểm và đầu ra của hệ thống là mã môn học, mã sinh viên và điểm số tương ứng của
sinh viên được ghi trên bảng điểm.
Để thực hiện được như vậy, tôi cần giải quyết các vấn đề sau:
- Phát hiện các khu vực cần quan tâm trong ảnh: trong một ảnh bảng điểm có
các khu vực cần quan tâm đó là khu vực chứa mã môn học, khu vực chứa mã sinh
viên và khu vực chứa điểm của sinh viên.
- Nhận diện ký tự in: mã môn học bao gồm cả mã nhóm và mã tổ từ giờ gọi
chung là mã môn học được biểu diễn bằng một chuỗi gồm các chữ cái in hoa, các số
và dấu gạch chéo (/), mã sinh viên được biểu diễn bằng các chữ số, do đó cần nhận
diện được các ký tự in để cho ra mã môn học và mã sinh viên.
- Nhận diện chữ số viết tay: điểm của sinh viên được giáo viên ghi bằng tay,
do đó cần nhận dạng được các các chữ số viết tay để cho ra điểm của sinh viên. Tuy
nhiên do mỗi người có một cách viết khác nhau và vị trí viết điểm trong ô điểm của
bảng điểm cũng khác nhau nên việc nhận diện chính xác chữ số viết tay là rất khó
khăn.
Đối tượng và phạm vi nghiên cứu: Trong luận văn này tôi thực hiện với mẫu
bảng điểm được sử dụng thực tế tại Học viện Nông nghiệp Việt Nam trong đó phần
điểm số được giáo viên ghi bằng tay.
1.2 Phƣơng pháp nghiên cứu
Với bài toán được đặt ra như trên tôi đã thực hiện theo phương pháp như sau:
- Tìm hiểu một số kỹ thuật xử lý ảnh số để xử lý ảnh bảng điểm.
- Tìm hiểu một số phương pháp đã được thực hiện với bài toán nhận dạng
bảng điểm và nhận dạng ký tự để đưa ra hướng giải quyết cụ thể cho bài toán này.
9
- Tìm hiểu phần mềm nguồn mở Tesseract OCR, ứng dụng phần mềm nguồn
mở này cho việc nhận dạng ký tự in và chữ số viết tay.
- Tìm hiểu công cụ lập trình.
- Cài đặt một ứng dụng minh họa cho giải pháp đưa ra.
- Đánh giá kết quả của hệ thống.
1.3 Cấu trúc luận văn
Luận văn được chia thành 5 chương:
Chƣơng 1: Tổng quan.
Giới thiệu bài toán và phương pháp thực hiện trong luận văn.
Chƣơng 2: Cơ sở lý thuyết.
Giới thiệu các kỹ thuật sử dụng để xử lý ảnh bảng điểm, tìm hiểu phương pháp
đã được thực hiện trước đó với bài toán nhận dạng bảng điểm, nhận dạng ký tự và
giới thiệu phần mềm nguồn mở Tesseract OCR.
Chƣơng 3: Hệ thống cài đặt thử nghiệm.
Đưa ra giải pháp thực hiện và cài đặt hệ thốngthử nghiệm.
Chƣơng 4: Kết quả thực nghiệm
Thử nghiệm hệ thống xây dựng được và đánh giá kết quả.
Chƣơng 5: Kết luận
Trình bày các kết quả đã đạt được, các mặt còn hạn chế và đưa ra định hướng
phát triển trong tương lai.
10
CHƢƠNG 2: KIẾN THỨC CƠ BẢN
2.1 Một số kỹ thuật xử lý ảnh số
Ảnh thu được có thể bị biến dạng do nhiều yếu tố như ảnh hưởng của môi
trường bên ngoài, hay các hệ thống thu nhận, phát hiện và lưu trữ ảnh. Do vậy xử lý
nâng cao chất lượng ảnh là một bước quan trọng, tạo tiền đề cho xử lý ảnh. Mục
đích chính của việc xử lý là làm nổi bật một số đặc tính của ảnh, làm giảm các biến
dạng để có thể khôi phục lại ảnh gần giống ảnh gốc nhất. Để thực hiện điều đó một
số kỹ thuật sau đây có thể được sử dụng:
2.1.1 Khử nhiễu
Nhiễu trong ảnh được định nghĩa là những thông tin không có trong ảnh gốc,
nhưng trong quá trình sử dụng các thiết bị để đọc ảnh vào trong máy tính (ví dụ
scan ảnh) xuất hiện thêm những thông tin không mong muốn. Nhiễu có thể làm ảnh
bị mờ đi, không sắc nét, làm giảm hoặc nhiều khi làm mất khả năng biểu lộ thông
tin của đối tượng chính trong ảnh. Do đó trước khi tiến hành phân tích và xử lý ảnh
cần tiến hành công việc khử nhiễu, đây là bước hết sức quan trọng.
Việc khử nhiễu được tiến hành bằng cách sử dụng các bộ lọc. Cơ sở lý thuyết
của kỹ thuật lọc là dựa trên tính dư thừa thông tin không gian: các điểm ảnh lân cận
có thể có cùng hoặc gần cùng một số đặc tính. Hơn nữa, nhiễu có thể coi như sự đột
biến của một điểm ảnh so với các điểm lân cận. Trong kỹ thuật lọc, người ta sử
dụng một mặt nạ và di chuyển khắp ảnh gốc. Tuỳ theo cách tổ hợp điểm đang xét
với các điểm lân cận mà ta có kỹ thuật lọc tuyến tính hay phi tuyến. Điểm ảnh chịu
tác động của biến đổi là điểm ở tâm mặt nạ.
Lọc tuyến tính: mỗi điểm ảnh thu được sẽ là tổng trọng số hay là trung bình
trọng số của các điểm lân cận với nhân cuộn hay mặt nạ. Một số mặt nạ thường
được dùng với lọc tuyến tính là:
[
]
[
]
Lọc phi tuyến: coi một điểm ảnh kết quả không phải là tổ hợp tuyến tính của
các điểm lân cận. Bộ lọc phi tuyến thường dùng là lọc trung vị.
11
Hình 1: Quá trình lọc trung vị[3]
2.1.2 Chuyển đổi ảnh màu sang ảnh xám
Trong thực tế, ảnh mà chúng ta thu nhận được ban đầu để xử lý là ảnh màu.
Tuy nhiên không phải với ứng dụng nào việc sử dụng ảnh màu cũng là tối ưu do
việc lưu trữ ảnh màu tốn không gian bộ nhớ hơn và việc xử lý cũng chậm hơn. Vì
vậy để có thể thực hiện được quá trình phân tích và nhận dạng, chúng ta cần phải
chuyển chúng thành ảnh nhị phân. Đầu tiên, ảnh màu ban đầu sẽ được chuyển thành
ảnh xám với các mức xám có giá trị từ 0 đến 255 dựa trên ba giá trị RED, GREEN,
BLUE của ảnh đầu vào. Từ ảnh xám này, chúng ta sẽ so sánh mức xám của từng
điểm với một ngưỡng cho trước để quyết định điểm đó sẽ là 0 hoặc 1, giá trị 0 biểu
diễn cho màu đen và 1 biểu diễn cho màu trắng.
Để thực hiện chuyển đổi từ ảnh màu 24 bits RGB sang ảnh xám 8 bits, ta có
thể sử dụng công thức sau đây áp dụng cho từng điểm ảnh tại vị trí (x,y) trên ảnh
đầu vào :
f(x, y) = 0.299 * Red(x, y) + 0.587 * Green(x, y) + 0.114 * Blue(x, y)
(2.1)
Giá trị mức xám tại mỗi điểm ảnh f(x,y) trong ảnh xám tính được là tổng trọng
số khác nhau của mỗi thành phần màu trong hệ màu RGB. Một trong những lý do
của việc này là nếu chúng ta sử dụng cùng trọng số, ví dụ (R + G + B) 3 thì màu đỏ
(Red), màu lục (Green) hay màu lam (Blue) sẽ có cùng mức xám sau khi chuyển
đổi. Mặt khác theo khoa học đã chứng minh thì mắt người nhạy cảm với thành phần
màu lục và màu đỏ hơn so với màu lam [18].
12
2.1.3 Phân ngƣỡng
Giả sử ảnh I có kích thước m×n, hai số Min, Max và ngưỡng θ. Khi đó kỹ
thuật phân ngưỡng được thực hiện bằng việc định nghĩa lại giá trị cho mỗi điểm ảnh
f(x,y) của ảnh I như sau:
Nếu Max = 1 và Min = 0 khi đó kết quả tách ngưỡng sẽ cho ta ảnh nhị phân.
Để thực hiện nhị phân hóa một ảnh cần chọn ra một ngưỡng thích hợp để phân
tách ảnh ra làm 2 phần: thông tin ảnh và thông tin nền. Tuỳ thuộc vào từng ứng
dụng cụ thể mà việc sử dụng ngưỡng toàn cục (một ngưỡng được sử dụng cho toàn
bộ ảnh)hay ngưỡng cục bộ (các vùng ảnh khác nhau có thể có ngưỡng khác nhau) sẽ
cho kết quả tốt hơn.
2.1.4 Phép toán hình thái
Phép toán hình thái là một tập các phép xử lý ảnh dựa trên một phần tử cấu
trúc (hạt nhân) được định nghĩa trước.Theo đó, giá trị của mỗi điểm ảnh trên ảnh
đầu ra được xác định dựa trên sự so sánh của điểm ảnh tương ứng trên ảnh đầu vào
và các láng giềng của nó.
Phần tử cấu trúc (structural element) là một ma trận chỉ bao gồm các giá trị 0
và 1 với hình dạng và cấu trúc bất kỳ được dùng làm cửa sổ dịch chuyển. Thông
thường, phần tử cấu trúc có kích thước nhỏ hơn nhiều so với ảnh cần xử lý, điểm
ảnh tại tâm của phần tử cấu trúc gọi là gốc sẽ xác định điểm ảnh đang được xử lý,
các điểm ảnh với giá trị bằng 1 biểu diễn những điểm láng giềng.
Hai phép toán hình thái cơ bản là phép giãn nở (dilation) và phép xói mòn
(erosion):
Phép giãn nở
Giãn ảnh nhằm loại bỏ điểm đen bị vây bởi các điểm trắng. Trong kỹ thuật
này, giá trị của điểm ảnh đầu ra là giá trị lớn nhất của các điểm ảnh nằm trong hình
dạng và kích thước của phần tử cấu trúc[1],[13].
13
(
)
(
)
(
)
(
)
Trong đó:
dst: ảnh đầu ra
src: ảnh đầu vào
(x’,y’): là điểm ảnh của phần tử cấu trúc với giá trị bằng 1, chính là
các điểm láng giềng của (x,y).
Hình 2 dưới đây là một ví dụ về phép giãn nỡ trên ảnh nhị phân [13].
Hình 2: Phép giãn nở trên ảnh nhị phân
Phép xói mòn (phép co)
Co ảnh nhằm loại bỏ điểm trắng bị vây bởi các điểm đen. Trong kỹ thuật này
giá trị của điểm ảnh đầu ra là giá trị nhỏ nhất của các điểm ảnh nằm trong hình dạng
và kích thước của phần tử cấu trúc[1],[13].
(
)
(
)
(
)
(
)
Trong đó:
dst: ảnh đầu ra
src: ảnh đầu vào
(x’,y’): là điểm ảnh của phần tử cấu trúc với giá trị bằng 1, chính là
các điểm láng giềng của (x,y).
Hình 3 dưới đây là một ví dụ về phép co trên ảnh nhị phân [13].
14
Hình 3: Phép co ảnh
2.1.5 Phép biến đổi affine
Bao gồm các phép biến đổi biểu diễn quan hệ giữa hai hình ảnh:
-
Phép quay.
-
Phép tịnh tiến.
-
Phép tỉ lệ.
Trong đó phép quay và phép tỉ lệ được biểu diễn bằng phép nhân ma trận,
phép tịnh tiến biểu diễn bằng phép cộng ma trận.
Giả sử ta muốn thực hiện các phép biến đổi trên cho một vector 2D
[ ]
khi đó các phép toán trên ma trận sẽ được thực hiện:
Trong đó:
Để đơn giản quá trình tính toán, thay vì việc phải thực hiện vừa phép cộng và
phép nhân trên ma trận ta sẽ thay thế A và B bằng một ma trận M duy nhất có dạng:
15
Khi đó X sẽ được biểu diễn dưới đạng
[ ] và các phép biến đổi trên sẽ
được biểu diễn bằng một phép nhân ma trận duy nhất:
T
=M.X
ha
y
Biến đổi affine biểu diễn quan hệ giữa hai ảnh, mối quan hệ này có thể được
xem xét trong hai trường hợp [13]:
-
Chúng ta biết cả X (ảnh ban đầu) và T (ảnh sau khi áp dụng các phép
biến đổi), nhiệm vụ đặt ra là tìm ma trận biến đổi M.
-
Chúng ta biết M và X, để tìm T ta chỉ cần áp dụng T=M.X. Trong đó M
có thể được cho một các tường minh hoặc có thể được biểu diễn dưới
dạng quan hệ hình học của các điểm. Ví dụ M là ma trận biến đổi được
sử dụng để biến đổi Image1 thành Image2 (hình 4), khi đó M có thể
được xác định dựa trên quan hệ giữa ba cặp điểm 1, 2 và 3 tương ứng
từ hai ảnh.
Hình 4: Phép biến đổi affine trên ảnh
2.2 Một số phƣơng pháp đã đƣợc thực hiện với bài toán nhận dạng bảng điểm
và nhận dạng ký tự
2.2.1 Phƣơng pháp đã đƣợc áp dụng cho bài toán nhận dạng bảng điểm
Cho bài toán nhận dạng bảng điểm, trước đó đã có một số phương pháp được
thực hiện, điểm hình là tác giả trong [3] đã đưa ra hướng giải quyết cho bài toán này
là phát hiện các vùng quan tâm sau tiến hành phân đoạn, trích chọn đặc trưng và
16
nhận dạng nhờ kỹ thuật SVM. Kết quả nhận dạng bảng điểm với độ chính xác khá
cao, tuy nhiên hệ thống còn nhiều hạn chế:
-
Các khu vực quan tâm được xác định cố định, ví dụ mã sinh viên ở cột
thứ 2, điểm ở cột thứ 6...Như vậy, nếu cấu trúc của bảng điểm bị thay
đổi, vị trí của các khu vực quan tâm sẽ không còn chính xác và hệ
thống không thực hiện được.
-
Việc không phân đoạn các chữ số trong khu vực điểm có ưu điểm là kết
quả sẽ chính xác hơn cho những trường hợp các chữ số bị viết dính vào
nhau tuy nhiên như vậy sẽ làm cho số lượng lớp cần nhận dạng lớn.
Với hệ thống tác giả đã xây dựng, điểm chỉ được ghi với phần lẻ là 0.5
(lẻ nửa điểm) thì số lượng lớp còn tương đối ít, nhưng với cách cho
điểm của nhiều trường hiện nay thì điểm được cho lẻ đến 0.1 điểm, như
vậy số lượng lớp cần phân lớp là rất lớn (khoảng 110 lớp) dẫn đến việc
lấy mẫu sẽ rất khó khăn và sai số trong quá trình nhận dạng lớn.
2.2.2 Một số phƣơng pháp nhận dạng ký tự
Để thực hiện việc nhận dạng ký tự đã có một số phương pháp được sử dụng
như:
Nghiên cứu và tự xây dựng một ộ nhận dạng ký tự: với phương pháp
này ta cần nghiên cứu các kỹ thuật và sau đó xây dựng một bộ nhận dạng
ký tự. Phương pháp này có ưu điểm là ta hoàn toàn làm chủ được hệ
thống, tuy nhiên để thực hiện phương pháp này sẽ mất rất nhiều thời gian
và công sức, bên cạnh đó hiện nay trên thế giới đã có nhiều hướng nghiên
cứu về lĩnh vực này và cho ra đời nhiều phương pháp nhận dạng ký tự với
độ chính xác cao. Hơn nữa bản thân việc nghiên cứu các kỹ thuật nhận
dạng ký tự đã là một đề tài lớn nên trong phạm vi luận văn nay tôi không
lựa chọn phương pháp này để thực hiện việc nhận dạng ký tự.
Sử dụng các bộ nhận dạng ký tự trực tiếp trên web thông qua môi
trƣờng mạng: với phương pháp này hình ảnh chứa ký tự cần nhận dạng
sẽ được gửi lên máy chủ web để máy chủ trực tiếp xử lý áp dụng các thuật
17
toán nhận dạng ký tự được cài đặt sẵn, sau đó kết quả nhận dạng sẽ được
gửi trả cho máy khách. Cách này có ưu điểm là dễ thực hiện và độ chính
xác có thể cao tuy nhiên khi sử dụng chương trình đòi hỏi máy tính phải
được kết nối mạng internet để có thể truyền và nhận dữ liệu từ máy chủ
trên web. Chưa kể đến việc xử lý và chờ kết quả từ máy chủ trên mạng sẽ
khá lâu gây bất tiện cho người sử dụng chương trình. Do đó phương pháp
này cũng không được lựa chọn trong luận văn.
Sử dụng các bộ thƣ viện/phần mềm nguồn mở về nhận dạng ký: So
với 2 cách được nêu ra ở trên thì cách này có ưu điểm là thực hiện không
quá khó khăn, chỉ cần cài đặt và biên dịch để chạy chương trình trên máy
tính. Ngoài ra với phương pháp này có thể khắc phục được nhược điểm là
ứng dụng không phụ thuộc vào môi trường mạng, có thể chạy độc lập, tiết
kiệm nhiều thời gian vì việc xử lý trên khối nhận dạng được thực hiện
hoàn toàn trực tiếp trên máy tính cá nhân.
2.3 Giới thiệu về phần mềm nguồn mở Tesseract OCR
2.3.1 Một số thƣ viện/phần mềm nguồn mở về nhận dạng ký tự
Hiện nay trên thế giới đã có khá nhiều bộ thư viện và phần mềm nguồn mở về
nhận dạng ký tự với độ chính xác khá cao. Sử dụng một trong các thư viện/phần
mềm nguồn mở đó sẽ giúp chúng ta tiết kiệm khá nhiều công sức. Sau đây là một số
bộ thư viện và phần mềm nhận dạng ký tự quang học miễn phí được sử dụng rộng
rãi hiện nay [2]:
Tesseract OCR[11]: là bộ nhận dạng ký tự quang học thương mại ban đầu
được phát triển tại công ty HP (Hewlett-Packard) trong khoảng 1985 – 1994 và
được giải thưởng top 3 phần mềm nhận dạng ký tự quang học chính xác nhất trong
hội nghị thường niên của UNLV. Sau đó bộ nhận dạng này được chuyển thành mã
nguồn mở trên Google và tiếp tục được phát triển cho đến ngày nay với sự đóng
góp của nhiều lập trình viên chuyên nghiệp. Trưởng bộ phận của dự án hiện nay là
Ray Smith.
18
GOCR[12]: Là một chương trình nhận dạng ký tự được phát triển dưới dạng
giấy phép công cộng GNU (GNU Public License) và được bắt đầu bởi Joerg
Schulenberg vào năm 2000.
FreeOCR[17]: Được xem là một trong các phần mềm nhận dạng ký tự quang
học chính xác nhất vì sử dụng bộ engine Tesseract của HP. Ngoài ra, FreeOCR còn
cung cấp dịch vụ nhận dạng ký tự quang học trực tuyến trên web.
JavaOCR[14]: Là phần mềm nhận dạng ký tự được viết hoàn toàn toàn bằng
thư viện Java cho việc xử lý ảnh và nhận dạng ký tự. Ưu điểm của chương trình này
là chiếm ít tài nguyên bộ nhớ, dễ thực hiện trên các môi trường di động hạn chế về
bộ nhớ và chỉ sử dụng được ngôn ngữ Java.
Trong số các thư viện/phần mềm nhận dạng ký tự nêu trên thì Tesseract OCR
nổi trội hơn với các ưu điểm sau:
- Tesseract OCR có thể làm việc trên Linux, Windows (với VC++ Express
hoặc CygWin) và Mac OSX.
- Có lịch sử phát triển lâu dài và có độ chính xác cao ngay từ khi mới ra đời.
Bảng sau cho ta thấy độ chính xác của Tesseract trên một số ngôn ngữ[9]:
Ngôn ngữ
Tổng số ký tự
Tổng số từ
Lỗi ký tự
Lỗi từ
(triệu)
(triệu)
(%)
(%)
Tiếng Anh
39
4
0.5
3.72
Tiếng Nga
38
5
1.35
5.48
Tiếng Hoa giản thể
0.25
NA
3.77
NA
Tiếng Hindi
1.4
0.33
15.41
69.44
Bảng 1: Độ chính xác của Tesseract trên một số ngôn ngữ
- Khả năng mở rộng và tùy biến cao đồng thời được Google tài trợ và đông
đảo các nhà phát triển tham gia đóng góp cho Tesseract.
- Phiên bản được cập nhật thường xuyên, hỗ trợ ngày càng nhiều ngôn ngữ,
có khả năng huấn luyện trên các ngôn ngữ mới và nhiều loại font chữ khác
nhau.
- Đã có nhiều nghiên cứu và bài báo được công bố về việc ứng dụng của
Tesseract OCR trong việc nhận dạng ký tự [5],[6],[9].
19
- Xem thêm -