Đăng ký Đăng nhập
Trang chủ Xây dựng ứng dụng tự động đọc bảng điểm....

Tài liệu Xây dựng ứng dụng tự động đọc bảng điểm.

.PDF
51
134
104

Mô tả:

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 -

Tài liệu liên quan

Tài liệu xem nhiều nhất