- 46 - NHẬN DẠNG PHIẾU ĐĂNGKÝTHI Trần Minh Quân Mã số SV: 0220266 Cán bộ hướng dẫn: TS. Nguyễn Việt Hà 1. Giới thiệu Hàng năm có khoảng 1,5 triệu lượt thí sinh đăng kýthi đại học. Để nhập toàn bộ số phiếuđăngkýthi của thí sinh vào máy tính cần rất nhiều thời gian và công sức. Mặt khác việc đăngký trực tuyến chưa thể áp dụng do những khó khăn về máy móc thiết bị ở một số địa phương. Việc xử lý tự động các phiếuđăngkýthi sẽ rút ngắn đáng kể thờ i gian và công sức nhập dữ liệu. Bài toán này vừa có những khó khăn của việc bóc tách dữ liệu từ một ảnh quét có nhiều thành phần: chữ cái in, chữ cái viết tay, chữ số, các ký hiệu, hình vẽ; vừa có những khó khăn của việc nhận dạng chữ viết tay: sự đa dạng về nét chữ, hệ thống dấu trong tiếng Việt. Để khắc phục những khó khă n này, phần điền thông tin trên phiếuđăngkýthi bao gồm các ô chữ nhật, mỗi ô dành cho một chữ cái hoặc chữ số. Để nhận dạngphiếu cần thực hiện hai bước chính là bóc tách và nhận dạng ảnh ký tự. 2. Phân tích phiếuđăngkýthi Mục đích cuối cùng của việc phân tích phiếu đăngkýthi là bóc tách ảnh ký tự trong các ô điền thông tin để đưa vào bộ nhận dạng. Trước tiên phiếu cần được tiền xử lý để khôi phục và nâng cao chất lượng ảnh quét. Ba thủ tục tiền xử lý được áp dụng là phân ngưỡng ảnh, lọc nhiễu [3] và căn chỉnh độ nghiêng. Thủ tục căn chỉnh độ nghiêng rất quan trọng vì nó ảnh h ưởng trực tiếp đến việc định vị các ô chữ nhật trên phiếu và ảnh hưởng đến kết quả nhận dạngký tự. Các phương pháp căn chỉnh độ nghiêng phổ biến có hiệu quả không cao khi áp dụng vào những văn bản thưa và nhiều ký hiệu như phiếu đăngký thi. Để căn giải quyết vấn đề này, chúng tôi đưa ba hình tròn vào ba góc phiếu rồi dùng những hình tròn này để xác định và căn chỉnh độ nghiêng. Sau khi tiền xử lý ảnh quét của phiếu, việc cần làm tiếp theo là xác định vị trí của các ô điền thông tin. Do các ô điền thông tin của phiếu là hình chữ nhật nên một cách tiếp cận để xác định vị trí các ô này là nhận dạng các hình chữ nhật có trong phiếu. Để có thể xử lý phiếu trong gian ngắn, chúng tôi đưa ra thuật toán nhận dạng các ô điền thông tin bằng cách đánh giá hình dáng của đường bao quanh ô. Tuy phương pháp này không tổng quát bằng phương pháp sử dụng biến đổi Hough [4] nhưng lại có tốc độ cao và hiệu quả trong việc nhận dạng các ô điền thông tin. Trong trường hợp thí sinh viết sai qui định, đè lên đường biên của ô, hoặc vì một lý do nào đó, đường biên của ô bị đứt đoạn thì đường bao tìm được sẽ không còn là hình chữ nhật nữa. Khi đó ta cần ph ải dựa vào template của phiếuđăngký dự thi và những ô đã tìm được để xác định vị trí của những ô còn lại. Ý tưởng chính của thuật toán xác định vị trí là xây dựng ma trận mô tả vị trí tương đối giữa các ô tìm được, sau đó so sánh với ma trận template để xác định vị trí vị trí tuyệt đối và các ô còn thiếu (ứng với những vị trí khuyết trên ma trận template). Sau khi đã xác định đượ c vị trí các ô điền thông tin, công việc cuối cùng của quá trình phân tích phiếu là bóc tách ảnh ký tự bên trong những ô này. Để phân biệt ký tự nằm trong ô với đường biên của ô, chúng tôi sử dụng biểu đồ phân phối điểm ảnh đen. Tương ứng với những miền trên biểu đồ mà số lượng điểm điểm ảnh đen giảm xuống đột ngột chính là vùng “đệm” giữ a đường biên và ký tự bên trong ô. Để bóc tách ảnh ký tự, ta chỉ cần lấy phần ảnh nằm giữa những vùng đệm. Như vậy sau quá trình phân tích phiếu, ảnh của từng ký tự được bóc tách, công việc tiếp theo là nhận dạng những ký tự này. 3. Nhận dạng chữ số và chữ cái viết tay tiếng Việt sử dụng mạng neuron Mạng neuron nhân tạo là một mạng các đơn vị xử lý đơn giản (các neuron) liên kết với nhau bằng cách truyền tín hiệu cho nhau trên các kết nối có trọng số. Trọng số của các kết nối được hiệu chỉnh thông qua quá trình huấn luyện mạng. Mô hình mạng neuron được chúng tôi sử dụng để nhận dạng chữ số và chữ cái viết tay tiếng Việt vì tính linh hoạt, khả năng học và khả năng tổng quát hóa của nó. Mạng neuron nhiều lớp truyền thẳng (Multi- layer Preceptrons) là mô hình mạng neuron - 47 - thường gặp nhất trong họ các mạng neuron truyền xuôi. Mô hình mạng này cũng được sử dụng nhiều để giải quyết bài toán nhận dạng chữ số và chữ cái viết tay. Nhiều nghiên cứu và thực nghiệm đã chỉ ra rằng huấn luyện mạng MLP với phương pháp học có giám sát sử dụng thuật toán Lan truyền ngược sai số có hiệu quả đối với bài toán phân loại mẫ u nói chung và bài toán nhận dạng chữ số, chữ cái viết tay nói riêng [2]. Chữ cái tiếng Việt được xây dựng trên cơ sở các chữ cái La-tinh và các dấu. Khi cắt từ tiếng Việt ra thành các chữ cái riêng lẻ để nhận dạng, ta thu được 89 chữ cái viết thường, 89 chữ cái viết hoa, ngoài ra còn có 10 chữ số. Như vậy số lượng chữ cái trong tiếng Việt là rất lớn, nhiều chữ cái rất giống nhau, chỉ khác nhau về dấu. Thay vì chỉ dùng một mạng neuron duy nhất, sử dụng một hệ thống các mạng neuron liên kết với nhau sẽ đem lại hiệu quả nhận dạng cao hơn [1]. Nhiệm vụ của mỗi mạng neuron trong mô hình đa mạng là phân chia một nhóm các ký tự thành các nhóm con. Mỗi nhóm con sau đó lại được mạng neuron ở lớp kế tiếp phân nhóm. Cứ tiếp tục như vậy cho đến khi mỗ i nhóm con chỉ còn một ký tự. Như vậy mỗi mạng neuron chỉ phải phân nhóm ký tự đầu vào của nó vào một số lượng nhỏ các nhóm, gánh nặng “nhớ” đặc điểm của các ký tự được chia sẻ cho các mạng. 4. Thực nghiệm Tiến hành thực nghiệm phân tích 20 phiếuđăngký dự thi. Thời gian trung bình để xử lý một phiếu là 10 giây. Như vậy trong mỗi giờ đồng hồ chương trình xử lý được trung bình là 360 phiếu. Trong số 2.000 ô điền thông tin trên các phiếu, bóc tách trọn vẹn được ký tự trong 1.980 ô, 16 ô bị điền sai qui tắc chỉ bóc tách được phần ký tự nằm trọn vẹn trong ô, còn lại 4 ô bị nhiễu do chất lượng ảnh kém. Để huấ n luyện mạng neuron nhận dạng chữ số viết tay chúng tôi sử dụng cơ sở dữ liệu MNIST với 60.000 mẫu. Do đặc trưng dùng để phân loại là toàn bộ 28x28 điểm ảnh nên chất lượng nhận dạng chưa cao. Các chữ số bị nhận dạng nhầm do có hình dạng tương tự nhau, hoặc do cách viết làm thay đổi hình dạng chữ số. Để tăng chất lượ ng nhận dạng chữ số cần phải sử dụng thêm các đặc trưng theo hướng hình học, theo cấu cấu trúc, theo tính lồi lõm, đồng thời thực hiện các nghiên cứu về chuẩn hóa cách viết. 5. Kết luận Qua quá trình nghiên cứu và thực hiện đề tài, chúng tôi đã xây dựng được module phân tích phiếu đăngkýthi với độ tin cậy cao, Xây dựng được module nhận dạng chữ số viết tay với kết quả nhận dạng tương đối tốt. Trong tương lai chúng tôi sẽ cải thiện chất lượng của những phần đã làm được, xây dựng thêm module nhận dạng chữ viết tay tiếng Việt và lắp ghép các module thành m ột ứng dụng hoàn chỉnh có khả năng nhập dữ liệu tự động thay cho cán bộ nhập hồ sơ dự thi . Tài liệu tham khảo [1] Nguyễn Thị Minh Ánh, Nghiên cứu và ứng dụng mạng neuron trong nhận dạng chữ viết tay tiếng Việt, Khóa luận tốt nghiệp đại học 2005. [2] Duda, R. O., Hart, P. E., Stork, D. G., Pattern Classification, Wiley. [3] Gonzalez, R. C., Woods, R. E., Digital Image Processing, Prentice Hall, 2002. [4] Jung, C. R., Schramm, R. ,“Rectangle detection based on a windowed Hough transform”, 2004. . tách và nhận dạng ảnh ký tự. 2. Phân tích phiếu đăng ký thi Mục đích cuối cùng của việc phân tích phiếu đăng ký thi là bóc tách ảnh ký tự trong các ô điền. phiếu đăng ký thi bao gồm các ô chữ nhật, mỗi ô dành cho một chữ cái hoặc chữ số. Để nhận dạng phiếu cần thực hiện hai bước chính là bóc tách và nhận dạng