View
144
Download
0
Category
Preview:
Citation preview
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
NGUYỄN QUỐC BẢO - NGUYỄN PHÚ CƯỜNG
PHẦN MỀM THIẾT KẾ VÀ CHẤM ĐIỂM TỰ ĐỘNG BIỂU MẪU THI TRẮC NGHIỆM
KHÓA LUẬN CỬ NHÂN TIN HỌC
TP. HCM, 2005
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
NGUYỄN QUỐC BẢO - 0112172 NGUYỄN PHÚ CƯỜNG - 0112177
PHẦN MỀM THIẾT KẾ VÀ CHẤM ĐIỂM TỰ ĐỘNG BIỂU MẪU THI TRẮC NGHIỆM
KHÓA LUẬN CỬ NHÂN TIN HỌC
GIÁO VIÊN HƯỚNG DẪN
Th.s TRẦN ĐỨC DUẨN
NIÊN KHÓA 2001 - 2005
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... .......................................................................................................................................
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... ....................................................................................................................................... .......................................................................................................................................
LỜI CẢM ƠN
Chúng em xin cảm ơn Khoa Công Nghệ Thông Tin, trường Đại Học Khoa
Học Tự Nhiên TPHCM đã tạo rất nhiều điều kiện thuận lợi cho chúng em thực hiện
đề tài này.
Chúng em cũng xin được gửi lời cảm ơn chân thành nhất đến thầy Trần Đức
Duẩn, người đã luôn tận tình chỉ bảo và hướng dẫn nhóm chúng em trong suốt thời
gian nghiên cứu vừa qua.
Bên cạnh đó, chúng em cũng rất cảm ơn các Thầy Cô trong Khoa đã tận tình
giảng dạy và trang bị cho chúng em thật nhiều kiến thức bổ ích trong các năm học
vừa qua, góp phần rất lớn vào việc nghiên cứu thành công luận văn này.
Ngoài ra cũng xin được gửi lời cảm ơn đến hai bạn Phạm Thị Minh Chung
(0112054) và Nguyễn Ngọc Duy Quang (0112194) trong việc đã hỗ trợ các trang
thiết bị cần thiết cho quá trình thực hiện đề tài.
Cuối cùng, chúng em xin gửi lòng biết ơn sâu sắc đến cha mẹ chúng em, các
bậc sinh thành đã có công nuôi dưỡng và dạy dỗ cho chúng em đến ngày hôm nay,
những người đã luôn hết lòng tận tụy chăm sóc, ủng hộ và động viên chúng em
trong lúc khó khăn cũng như trong suốt thời gian học tập và nghiên cứu.
Dù đã cố gắng hoàn thành thật tốt luận văn trong phạm vi yêu cầu, nhưng
chúng em biết có những thiếu sót chắc chắn không thể tránh khỏi. Chúng em mong
sẽ nhận được sự thông cảm và tận tình chỉ bảo của quý Thầy Cô và các bạn.
TP.Hồ Chí Minh, tháng 7 năm 2005
Nhóm sinh viên thực hiện:
Nguyễn Phú Cường - Nguyễn Quốc Bảo
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 1 -
MỤC LỤC
MỤC LỤC..................................................................................................................1
DANH MỤC CÁC HÌNH .........................................................................................5
DANH MỤC CÁC BẢNG ........................................................................................7
LỜI MỞ ĐẦU............................................................................................................9
Chương 1: TỔNG QUAN.......................................................................................11
1.1 Yêu cầu thực tế và lý do thực hiện đề tài: .......................................................11 1.2 Mục tiêu của đề tài:.........................................................................................12 1.3 Giải pháp hiện có: ...........................................................................................12 1.4 Hướng tiếp cận của luận văn ..........................................................................13 1.5 Nội dung thực hiện của đề tài: ........................................................................14
Chương 2: CƠ SỞ LÝ THUYẾT...........................................................................16
2.1 Lý thuyết cho phần thiết kế biễu mẫu thi trắc nghiệm: ...................................17 2.1.1 Phân tích các thành phần trên biểu mẫu trắc nghiệm: ..............................17 2.1.2 Tổ chức dữ liệu để biểu diễn và lưu trữ biểu mẫu....................................22
2.2 Lý thuyết cho phần chấm điểm tự động: .........................................................24 2.2.1 Tóm tắt quá trình thực hiện của phần chấm điểm tự động .......................24 2.2.2 Sơ Lược Các Lý Thuyết Về Xử Lý Ảnh Và Nhận Dạng .........................27
2.2.2.1 Xử lý ảnh:...........................................................................................27 2.2.2.1.1 Các thao tác xử lý ảnh cơ bản: ...................................................27 2.2.2.1.2 Tô màu bằng thuật toán dựa theo dòng quét cải tiến ................28
2.2.2.2 Nhận dạng: .........................................................................................32 2.2.2.2.1 Nhận dạng bốn góc của bài thi bằng thuật toán Hough Transform..................................................................................................32 2.2.2.2.2 Kiểm tra vùng tô ........................................................................39 2.2.2.2.3 Mạng nơ ron và ứng dụng vào nhận dạng chữ viết tay in..........42
Chương 3: THIẾT KẾ CHƯƠNG TRÌNH...........................................................45
3.1 PHÂN TÍCH: ...................................................................................................45 3.2 XÁC ĐỊNH YÊU CẦU:....................................................................................46 3.3 XÂY DỰNG MÔ HÌNH USE-CASE:...............................................................47
3.3.1 Xác định Actor và Use-Case: ...................................................................47 3.3.2 Mô hình Use-case: ....................................................................................47 3.3.3 Đặc tả Use-case: .......................................................................................48
3.3.3.1 THIETKEBIEUMAU:.......................................................................48 3.3.3.1.1 TAOMOI:...................................................................................49 3.3.3.1.2 SUABIEUMAU:........................................................................49 3.3.3.1.3 CHONDOITUONG: ..................................................................50
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 2 -
3.3.3.1.4 THEMDOITUONGCOBAN: ....................................................50 3.3.3.1.4 THEMDOITUONGDOHOA:....................................................50 3.3.3.1.5 XOADOITUONG:.....................................................................51 3.3.3.1.6 CAPNHATDOITUONG:...........................................................51
3.3.3.2 SOANDAPAN:..................................................................................52 3.3.3.2.1 THEMDAPAN: .........................................................................53 3.3.3.2.2 CAPNHATDAPAN:..................................................................53 3.3.3.2.3 XOADAPAN: ............................................................................54
3.3.3.3 CHAMDIEM: ....................................................................................54 3.3.3.4 QUANLYKYTHI: .............................................................................55
3.3.3.4.1 THEMKYTHI:...........................................................................56 3.3.3.4.2 CAPNHATKYTHI: ...................................................................56 3.3.3.4.3 XOAKYTHI: .............................................................................57
3.3.3.5 QUANLYTHISINH:..........................................................................57 3.3.3.5.1 THEMTHISINH: .......................................................................58 3.3.3.5.2 CAPNHATTHISINH:................................................................58 3.3.3.5.3 XOATHISINH:..........................................................................59
3.3.3.6 QUANLYMONHOC:........................................................................60 3.3.3.6.1 THEMMONHOC: .....................................................................60 3.3.3.6.2 CAPNHATMONHOC:..............................................................61 3.3.3.6.3 XOAMONHOC: ........................................................................61
3.3.3.7 QUANLYBAILAM:..........................................................................62 3.3.3.6.1 THEMMONHOC: .....................................................................63 3.3.3.6.2 CAPNHATMONHOC:..............................................................63 3.3.3.6.3 XOAMONHOC: ........................................................................63
3.4 SƠ ĐỒ LỚP:....................................................................................................64 3.4.1 Sơ đồ: ........................................................................................................64 3.4.2 Mô tả một số lớp chính:............................................................................67
3.4.2.1 Lớp Entity: .........................................................................................67 3.4.2.2 Lớp Text:............................................................................................68 3.4.2.3 Lớp TextCell: .....................................................................................69 3.4.2.4 Lớp TextField: ...................................................................................70 3.4.2.5 Lớp ChoiceElement: ..........................................................................71 3.4.2.6 Lớp Choice:........................................................................................72 3.4.2.7 Lớp AnswerCell: ................................................................................72 3.4.2.8 Lớp AnswerSheet:..............................................................................74 3.4.2.9 Lớp Line:............................................................................................75 3.4.2.10 Lớp Rect:..........................................................................................76 3.4.2.11 Lớp Ellipse: ......................................................................................77 3.4.2.12 Lớp ImageObj: .................................................................................78 3.4.2.13 Lớp Page: .........................................................................................78 3.4.2.14 Lớp Key: ..........................................................................................79 3.4.2.15 Lớp AnswerKey:..............................................................................80
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 3 -
3.4.2.16 Lớp Rate:..........................................................................................81 3.4.2.17 Lớp Estimation:................................................................................81 3.4.2.18 Lớp Sentence:...................................................................................82 3.4.2.19 Lớp Answer:.....................................................................................83 3.4.2.20 Lớp Recognition: .............................................................................83
3.5 Thiết kế cơ sở dữ liệu: .....................................................................................84 3.5.1 Sơ đồ: ........................................................................................................84 3.5.2 Mô tả các bảng:.........................................................................................85
3.5.2.1 MauThi:..............................................................................................85 3.5.2.2 KyThi: ................................................................................................89 3.5.2.3 MonThi: .............................................................................................89 3.5.2.4 DeThi: ................................................................................................90 3.5.2.5 BaiLam:..............................................................................................91 3.5.2.6 ThiSinh:..............................................................................................92
3.6 Thiết kế giao diện một số màn hình chính: .....................................................92 3.6.1 Màn hình thiết kế biểu mẫu: .....................................................................92 3.6.2 Màn hình chấm điểm: ...............................................................................93
3.7 Cài đặt: ............................................................................................................94
Chương 4: THỰC NGHIỆM, ĐÁNH GIÁ VÀ TỔNG KẾT..............................95
4.1 Thực nghiệm:...................................................................................................95 4.2 Kết quả.............................................................................................................95
4.2.1 Phần thiết kế các biểu mẫu: ......................................................................95 4.2.2 Phần chấm điểm tự động: .......................................................................100
4.3 Đánh giá ........................................................................................................101 4.4 Kết luận .........................................................................................................102 4.5 Hướng phát triển:..........................................................................................102
PHỤ LỤC...............................................................................................................104
PL.1 Các thao tác xử lý ảnh cơ bản:...................................................................104 PL.1.1 Làm xám ảnh:......................................................................................104 PL.1.2 Chuyển sang ảnh nhị phân ...................................................................106 PL.1.3 Xoay ảnh. .............................................................................................108 PL.1.4 Biến đổi tỉ lệ ảnh (Scale)......................................................................110
PL.2 Lý thuyết về mạng nơron ............................................................................111 PL.2.1 Đặt vấn đề ............................................................................................111 PL.2.2 Định nghĩa............................................................................................111 PL.2.3 Sơ lược cấu tạo của mạng nơron..........................................................111 PL.2.4 Quá trình ánh xạ và quá trình học của mạng nơ ron ............................112
PL.2.4.1 Quá trình ánh xạ ............................................................................112 PL.2.4.2 Quá trình học .................................................................................113 PL.2.4.3 Lan truyền ngược sai số ................................................................114
PL.2.5 Hàm truyền...........................................................................................115 PL.2.6 Khởi tạo trọng ......................................................................................116
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 4 -
PL.2.7 Vấn đề quá khớp ..................................................................................116
TÀI LIỆU THAM KHẢO ....................................................................................118
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 5 -
DANH MỤC CÁC HÌNH Hình 2-1: Mô hình chung cho toàn bộ phần mềm ...............................................16
Hình 2-2 : Mẫu bài thi TOEFL..............................................................................18
Hình 2-3: Mẫu thi của kỳ thi sát hạch Nhật Bản .................................................19
Hình 2-4: Phần văn bản trong đề thi mẫu ............................................................20
Hình 2-5: Phần ghi tên thí sinh trong đề thi mẫu ................................................21
Hình 2-6: Phần ghi mã số thí sinh trong đề thi mẫu............................................21
Hình 2-7: Phần lựa chọn giới tính trong đề thi mẫu............................................21
Hình 2-8: Phần trả lời câu hỏi của thí sinh trong đề thi mẫu .............................22
Hình 2-9: Sơ đồ tóm tắt quá trình chấm thi .........................................................27
Hình 2-10: quá trình thực hiện của thuật toán tô màu dựa theo đường biên ...29
Hình 2-11..................................................................................................................30
Hình 2-12..................................................................................................................31
Hình 2-13..................................................................................................................31
Hình 2-14..................................................................................................................32
Hình 2-15..................................................................................................................35
Hình 2-16..................................................................................................................36
Hình 2-17..................................................................................................................37
Hình 2-18..................................................................................................................37
Hình 2-19: khi chưa được tô ..................................................................................39
Hình 2-20: các dạng sau khi đã tô .........................................................................39
Hình 2-21: ảnh cần kiểm tra tô được phân thành 3 vùng ...................................40
Hình 2-22: cấu tạo của mạng nơ ron được áp dụng cho đề tài ...........................43
Hình 3-1: Mô hình Use-Case ..................................................................................48
Hình 3-2: Sơ đồ lớp xử lý chính .............................................................................65
Hình 3-3: Sơ đồ lớp truy cập cơ sở dữ liệu:..........................................................65
Hinh 3-4: CellStyle: Char.......................................................................................69
Hinh 3-5: CellStyle: Number..................................................................................69
Hinh 3-6: CellStyle: All...........................................................................................69
Hinh 3-7: AnswerStyles - Vertical .........................................................................73
Hinh 3-8: AnswerStyle - Vertical...........................................................................73
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 6 -
Hình 3-9: Mô hình cơ sở dữ liệu ............................................................................85
Hình 3-10: Màn hình thiết kế biểu mẫu................................................................93
Hình 3-11 : Màn hình chấm điểm tự động............................................................94
Hình 4.1: mẫu thi Institutional TOEFL thực tế ...................................................96
Hình 4-2: mẫu TOEFL được thiết kết bởi chương trình ....................................97
Hình 4-3: Mẫu của kỳ thi sát hạch chuẩn kỹ sư Nhật Bản. ................................98
Hình 4-4: Mẫu đề thi Mạng không dây và an ninh mạng ...................................99
Hình PL-1: ảnh trước khi được làm xám ...........................................................105
Hình PL-2: ảnh sau khi được làm xám ...............................................................105
Hình PL-3: ảnh xám trước khi được chuyển thành ảnh nhị phân...................107
Hình PL-4: ảnh sau khi chuyển thành ảnh nhị phân với ngưỡng là 128.........107
Hình PL-5: Bài thi trong file ảnh bị lệch. ...........................................................108
Hình PL-6: Bài thi sau khi xoay sẽ không còn bị lệch. ......................................109
Hình PL-7: ảnh trước khi biến đổi tỉ lệ...............................................................110
Hình PL-8: ảnh sau khi biến đổi tỉ lệ còn 60% so với ảnh ban đầu .................110
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 7 -
DANH MỤC CÁC BẢNG Bảng 3-1: Danh sách các lớp trong sơ đồ lớp .......................................................67
Bảng 3-2: Danh sách thuộc tính lớp Entity...........................................................67
Bảng 3-3: Danh sách phương thức lớp Entity ......................................................68
Bảng 3-4: Danh sách thuộc tính lớp Text .............................................................68
Bảng 3-5: Danh sách phương thức lớp Text.........................................................69
Bảng 3-6: Danh sách thuộc tính lớp TextCell.......................................................69
Bảng 3-7: Danh sách phương thức lớp TextCell ..................................................70
Bảng 3-8: Danh sách thuộc tính lớp TextField.....................................................70
Bảng 3-9: Danh sách phương thức lớp TextField ................................................71
Bảng 3-10: Danh sách thuộc tính lớp ChoiceElement .........................................71
Bảng 3-11: Danh sách phương thức lớp ChoiceElement.....................................72
Bảng 3-12: Danh sách thuộc tính lớp Choice .......................................................72
Bảng 3-13: Danh sách phương thức lớp Choice...................................................72
Bảng 3-14: Danh sách thuộc tính lớp AnswerCell ...............................................73
Bảng 3-15: Danh sách phương thức lớp AnswerCell...........................................74
Bảng 3-16: Danh sách thuộc tính lớp AnswerSheet.............................................74
Bảng 3-17: Danh sách phương thức lớp AnswerSheet ........................................75
Bảng 3-18: Danh sách thuộc tính lớp Line ...........................................................75
Bảng 3-19: Danh sách phương thức lớp Line.......................................................76
Bảng 3-20: Danh sách thuộc tính lớp Rect ...........................................................76
Bảng 3-21: Danh sách phương thức lớp Rect.......................................................77
Bảng 3-22: Danh sách thuộc tính lớp Ellipse........................................................77
Bảng 3-23: Danh sách phương thức lớp Ellipse ...................................................78
Bảng 3-24: Danh sách thuộc tính lớp ImageObj..................................................78
Bảng 3-25: Danh sách phương thức lớp ImageObj .............................................78
Bảng 3-26: Danh sách thuộc tính lớp Page ...........................................................79
Bảng 3-27: Danh sách phương thức lớp Page ......................................................79
Bảng 3-28: Danh sách thuộc tính lớp Key ............................................................79
Bảng 3-29: Danh sách phương thức lớp Key........................................................80
Bảng 3-30: Danh sách thuộc tính lớp AnswerKey ...............................................80
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 8 -
Bảng 3-31: Danh sách phương thức lớp AnswerKey...........................................80
Bảng 3-32: Danh sách thuộc tính lớp Rate ...........................................................81
Bảng 3-33: Danh sách phương thức lớp Rate.......................................................81
Bảng 3-34: Danh sách thuộc tính lớp Estimation.................................................82
Bảng 3-35: Danh sách phương thức lớp Estimation............................................82
Bảng 3-36: Danh sách thuộc tính lớp Sentence ....................................................82
Bảng 3-37: Danh sách phương thức lớp Sentence................................................83
Bảng 3-38: Danh sách thuộc tính lớp Answer ......................................................83
Bảng 3-39: Danh sách phương thức lớp Answer..................................................83
Bảng 3-40: Danh sách thuộc tính lớp Recognition...............................................84
Bảng 3-41: Danh sách phương thức lớp Recognition ..........................................84
Bảng 3-42: Danh sách các trường trong bảng MauThi.......................................85
Bảng 3-43: Danh sách các trường trong bảng KyThi..........................................89
Bảng 3-44: Danh sách các trường trong bảng MonThi.......................................90
Bảng 3-45: Danh sách các trường trong bảng DeThi ..........................................90
Bảng 3-46: Danh sách các trường trong bảng BaiLam .......................................91
Bảng 3-47: Danh sách các trường trong bảng ThiSinh .......................................92
Bảng 4-1 : So sánh chấm bằng tay và chấm bằng máy......................................101
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 9 -
LỜI MỞ ĐẦU
Hiện nay thi trắc nghiệm là một hình thức thi rất phổ biến tại các nước trên
thế giới. Nhờ vào đặc điểm luôn có sự rõ ràng của đáp án mà những tranh cãi nhọc
nhằn trong việc tính điểm được giảm đi rất nhiều. Điều này dẫn đến việc nâng cao
tính chính xác, khách quan trong việc đưa ra kết quả bài thi. Bên cạnh đó thời gian
để chấm từng bài thi trắc nghiệm là tương đối nhanh, cho nên sẽ làm tăng tính hiệu
quả trong việc tổ chức thi cử. Hình thức thi trắc nghiệm thường được áp dụng cho
các môn học thuộc lĩnh vực khoa học tự nhiên, các môn ngoại ngữ, tức những dạng
kiến thức không đòi hỏi ở khả năng tự luận.
Do đó, nền giáo dục của nước ta hiện nay đã ý định chuyển những môn thi
có thể sang hình thức trắc nghiệm vào năm 2007, 2008. Đối với Khoa Công Nghệ
Thông Tin cùng những Khoa khác của trường Đại Học Khoa Học Tự Nhiên TP.
HCM cũng vậy, việc chuyển đổi những môn thi thích hợp sang thi trắc nghiệm là
một quy luật tất yếu, nhằm có thể đánh giá chính xác hơn kiến thức của sinh viên
(tuy rằng đã có một số môn được áp dụng sang thi trắc nghiệm - chẳng hạn như
tiếng Anh, Hợp Ngữ...).
Mặc dù đã được ghi nhận nhiều về những ích lợi như vậy, thế nhưng, hình
thức thi này đến nay vẫn chưa thể được áp dụng rộng rãi tại Việt Nam. Các giải
pháp – bao gồm bộ thiết bị chuyên dụng và phần mềm đi kèm – thường có giá thành
khá cao, chỉ thích hợp cho các kỳ thi lớn và quan trọng. Ngoài ra, còn phải kể đến
sự cứng nhắc trong định dạng của các mẫu bài thi. Điều này có nghĩa rằng mẫu thi
phải cố định, đối với mỗi thiết bị chấm chỉ dùng được cho các mẫu có sẵn của riêng
thiết bị đó mà thôi.
Từ những bất cập như trên, giải pháp được luận văn lựa chọn là tận dụng các
thiết bị thường thấy trong điều kiện Việt Nam để áp dụng vào việc thi trắc nghiệm.
Đó chính là những chiếc máy tính cá nhân, máy scan đang được sử dụng rộng rãi
hàng ngày trong từng công sở, trường học, thậm chí ngay cả các hộ gia đình. Chúng
sẽ đóng vai trò như những thiết bị đầu vào và xử lý cho quá trình chấm thi. Khi sử
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 10 -
dụng các thiết bị này, hình thức thi trắc nghiệm sẽ giảm được giá thành, cũng như
tăng thêm tính khả dụng, khi có thể áp dụng tại hầu hết mọi nơi tại Việt Nam.
Luận văn này gồm 4 chương có nội dung như sau:
o Chương 1. Tổng quan: giới thiệu bối cảnh, lý do thực hiện đề tài cũng
như các giải pháp hiện thời có liên quan, từ đó rút ra hướng tiếp cận của
luận văn để thực hiện đề tài.
o Chương 2. Cơ sở lý thuyết: trình bày sơ lược về các lý thuyết của xử lý
ảnh, của mạng nơron, cũng như ứng dụng của chúng trong đề tài.
o Chương 3. Thiết kế phần mềm: tài liệu phân tích và thiết kế chương
trình.
o Chương 4. Thực nghiệm, đánh giá và tổng kết: nêu đánh giá về toàn bộ
đề tài, trình bày những kết quả đã đạt được cũng như các hạn chế của đề
tài, từ đó đề xuất những hướng nghiên cứu trong tương lai.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 11 -
Chương 1: TỔNG QUAN
1.1 Yêu cầu thực tế và lý do thực hiện đề tài:
Trong những năm gần đây, việc thi cử luôn là một chủ đề thời sự rất được
quan tâm. Chuyện gian lận quay cóp trong các kỳ thi, kết quả điểm thi không chính
xác, thường theo ý kiến chủ quan của người chấm thi dẫn đến việc khiếu kiện, đáp
án kỳ thi tuyển sinh không nhất quán, rõ ràng, v.v..., hầu như năm nào cũng xảy ra,
gây nhiều bức xúc. Do đó, nhu cầu cần có một phương pháp thi – chủ yếu áp dụng
với các môn khoa học tự nhiên - cho kết quả chính xác hơn được đặt ra.
Trong bối cảnh đó, thi trắc nghiệm - dạng thi mà mỗi bài thi có một đáp án rõ
ràng kèm theo – là một giải pháp được nhắc đến. Đối với một kỳ thi trắc nghiệm
được tổ chức và quản lý tốt, minh bạch, kết quả thi của thí sinh sẽ khách quan,
không còn phụ thuộc nhiều vào người chấm bài nữa. Ngoài ra, việc chấm thi sẽ mau
lẹ.
Tuy nhiên, câu hỏi lại được đặt ra rằng: khi phương pháp thi trắc nghiệm có
những ưu điểm như vậy nhưng tại sao vẫn chưa được phổ biến ở Việt Nam. Bộ
Giáo Dục Việt Nam đã từng có ý định chuyển các môn thi thích hợp trong kỳ thi
tuyển sinh đại học sang hình thức thi trắc nghiệm, thế rồi đã phải dời lại cho đến tận
năm 2008, cột mốc mà đến giờ hiện vẫn còn chưa chắc chắn. Ngay như Khoa Công
Nghệ Thông Tin của trường Khoa Học Tự Nhiên của chúng ta, tuy đã áp dụng ở
một số môn như Tiếng Anh, Hợp Ngữ..., thi trắc nghiệm vẫn còn tương đối xa lạ.
Sau khi phân tích đi tìm các nguyên nhân, ta nhận thấy rằng dù đã từng áp
dụng thi trắc nghiệm ở một số môn tại nhiều nơi, thế nhưng nước ta vẫn còn thực
hiện cách thức chấm bài thủ công, nguyên nhân chính là do ở kinh phí. Và vì chấm
như vậy, cho nên kết quả được đưa ra rất chậm và đôi lúc còn chưa khách quan (do
người chấm nhầm lẫn trong lúc chấm ...), không đảm bảo được tính chính xác như
bản chất của hình thức thi trắc nghiệm. Trong khi đó, để có thể chấm tự động, đòi
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 12 -
hỏi phải có thiết bị chuyên dụng với giá thành tương đối cao (vì thường có giải pháp
phần mềm riêng đi kèm). Muốn vậy, kỳ thi phải lớn và thu lệ phí đầu vào cao. Điều
này là không khả thi trong điều kiện của Việt Nam. Tiếp nữa, các mẫu bài thi có sẵn
cho các thiết bị chuyên dụng đó thường cố định, không khả chuyển, việc tạo ra các
mẫu mới là có nhưng khá khó khăn, phức tạp và tốn kém. Do vậy, đòi hỏi cần có
một giải pháp giải quyết toàn diện các bất cập đó là một đòi hỏi chính đáng.
1.2 Mục tiêu của đề tài:
Mục tiêu của đề tài là nhằm đưa ra một giải pháp cho phép tổ chức thi trắc
nghiệm, sao cho giá thành rẻ, có thể áp dụng ngay vào các trường học, chẳng hạn
như Khoa Công Nghệ Thông Tin của chúng ta. Ngoài ra, giải pháp còn phải cho
phép khả năng tạo lập, chỉnh sửa các biểu mẫu thi để phù hợp với nhu cầu trong
từng môn thi của mỗi kỳ thi.
1.3 Giải pháp hiện có:
Tại Việt Nam cũng như trên thế giới, các dụng cụ chuyên dụng dùng cho việc
thi trắc nghiệm đã có từ khá lâu, mà phổ biến nhất là máy chấm carbon dùng cho
các kỳ thi TOEFL hay IELTS. Đây là một thiết bị cho phép chấm bài hàng loạt
nhưng yêu cầu bài thi phải theo mẫu cố định ứng với máy chấm bài và đòi hỏi phải
có thiết bị in ấn chuyên biệt đi kèm. Bài thi sau khi được in ấn và xử lý bởi thiết bị
in ấn chuyên dụng sẽ có hình dạng nhất định theo quy định sẵn của máy chấm, có
các đánh dấu carbon trên nhiều vị trí của bài thi. Máy chấm carbon nhờ vào những
thành phần chuyên dụng đo nồng độ carbon, sẽ xác định đựơc các vị trí đánh dấu.
Từ đó tính toán ra được các vị trí để lấy thông tin thí sinh cũng như xác định kết quả
bài thi. Tuy nhiên, để cho kết quả được chính xác, thí sinh khi làm bài trên các mẫu
thi này, cần phải dùng bút chì carbon.
Như ta đã thấy, các thiết bị này còn có khuyết điểm lớn là giá thành cao, do
phải đi kèm với nhiều thiết bị chuyên biệt khác, và độ khả chuyển kém. Ứng với
mỗi bài thi sẽ là một cặp máy chấm và máy in riêng biệt. Điều này không phù hợp
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 13 -
với thực tế của Việt Nam ta khi mà thu nhập bình quân so với các nước khác còn
kém rất xa.
Ưu điểm và khuyết điểm của giải pháp dùng máy chấm carbon:
Ưu điểm: chấm rất nhanh và rất chính xác, thích hợp cho các kỳ thi lớn và
rất lớn.
Khuyết điểm: chỉ dùng cho một mẫu bài thi cụ thể đối với từng thiết bị chấm
và in chuyên biệt. Do thiết bị không phổ biến nên giá thành cao.
1.4 Hướng tiếp cận của luận văn
Giải pháp được đưa ra là sử dụng các thiết bị phổ biến sẵn có trong điều kiện
Việt Nam hiện nay như máy tính cá nhân, máy in và máy scan để giảm giá thành.
Trong giải pháp này, máy tính cá nhân sẽ đóng vai trò trung tâm, thực hiện việc
thiết kế các biểu mẫu, sau đó dùng máy in để in chúng ra. Máy tính cũng đồng thời
đóng vai trò thực hiện việc chấm điểm các bài thi thông qua thiết bị scan. Thiết bị
scan này có thể là máy scan thường thấy. Tuy nhiên trong thực tế, do số lượng bài
thi nhiều, cần được chấm điểm toàn bộ, nên thiết bị scan được khuyến khích là các
máy scan có chức năng cho phép scan hàng loạt. Ngoài ra, vì không dùng thiết bị in
ấn chuyên biệt, nên việc in màu cho bài thi là không khả thi. Giải pháp đưa ra sẽ là
dùng máy in đen trắng in hàng loạt, hoặc tiết kiệm chi phí hơn bằng cách in bản
mẫu và dùng máy photocopy để sao chép ra.
Vì dùng máy scan, nên việc bắt buộc bài thi đầu vào để chấm điểm phải đặt
chính xác vị trí quy định là điều không khả thi. Bài thi sẽ được chấm chính xác khi
scan lệch không quá 5 độ. Từ các vị trí đánh dấu góc của bài thi được nhận dạng,
máy tính sẽ tính ra được các vị trí khác cần thiết trong bài nhờ vào các thông tin
trong bản mẫu thiết kế - hay còn gọi là mẫu chấm bài.
Tuy nhiên, do giải pháp này không dùng các thiết bị chuyên dụng để chấm bài,
nên các bài thi đầu vào cho máy tính sẽ không được chuẩn, từ đó việc chấm bài sẽ
tốn khá nhiều thời gian cho việc chuẩn hoá lại bài thi (thông qua nhận dạng) cũng
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 14 -
như kết quả chấm sẽ có lúc không được chính xác hoàn toàn như khi thực hiện bằng
thiết bị chuyên dụng.
Các ưu điểm và khuyết điểm của giải pháp mà luận văn đã chọn:
Ưu điểm: giá thành cho thiết bị sẽ rẻ hơn, do đã có sẵn. Các mẫu bài thi
cũng khả chuyển hơn, được thiết kế tuỳ theo nhu cầu của người dùng, có
khả năng ứng dụng tại bất kỳ nơi nào miễn có các thiết bị thông thường
như máy in, máy scan và máy tính cá nhân.
Khuyết điểm: chấm điểm chậm hơn các máy chuyên dụng, và không được
chính xác bằng. Không khả thi với các kỳ thi quá lớn vì chi phí cho việc
quét tất cả các bài thi là rất cao.
Phần mềm cần thực hiện 2 nhiệm vụ chính: thiết kế các biểu mẫu và chấm
điểm tự động bài thi.
Dựa vào các mẫu đề thi trắc nghiệm có sẵn (TOEFL, TOEIC, IELTS...), ta
nhận thấy những công việc chính yếu trong việc thiết kế một bài thi trắc nghiệm bao
gồm: chỉnh sửa trình bày bài thi; lưu và đọc lại các mẫu đã tạo; soạn đáp án; thực
hiện in mẫu. Giải pháp dùng công nghệ XML được cân nhắc chọn lựa.
Trong khi đó, đối với công việc chấm thi, ta cần thực hiện: chỉnh sửa ảnh bài
thi đầu vào theo một chuẩn quy định; thực hiện các xử lý trên từng vùng của ảnh để
phân tích thông tin như kiểm tra tô, nhận dạng chữ viết tay; so với đáp án có sẵn để
cho ra kết quả; lưu kết quả vào database.
1.5 Nội dung thực hiện của đề tài:
Các công việc chính của đề tài bao gồm:
Thu thập và tìm hiểu về các mẫu bài thi trắc nghiệm thông dụng như
TOEFL, IELTS... từ đó đưa ra các phần thường được dùng đi dùng lại trong
bài thi.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 15 -
Phân tích, thiết kế và thực thi viết mã lệnh cho các thành phần của chương
trình tạo biễu mẫu bài thi trắc nghiệm.
Phân tích, xây dựng và tổ chức cơ sở dữ liệu để lưu trữ thông tin của mẫu bài
thi cũng như các đáp án đi kèm với mẫu bài thi đó.
Tìm hiểu các lý thuyết về xử lý ảnh, về nhận dạng giúp chuẩn hoá và đưa ra
kết quả cho các bài thi.
Tìm hiểu và ứng dụng mạng nơron trong việc nhận dạng chữ viết tay in từ
các bài thi.
Chương tiếp theo sẽ bàn về các lý thuyết được ứng dụng trong việc xây dựng
chương trình.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 16 -
Chương 2: CƠ SỞ LÝ THUYẾT
Với hướng tiếp cận cho luận văn như đã được trình bày ở chương trước, ta
nhận thấy phần mềm cần được chia ra làm 2 phần: phần thiết kế, tạo lập các biểu
mẫu thi trắc nghiệm và phần chấm điểm tự động các bài thi trắc nghiệm.
Hình 2-1: Mô hình chung cho toàn bộ phần mềm
Sau đây, ta sẽ đi sâu vào nghiên cứu các lý thuyết ứng dụng cho từng phần.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 17 -
2.1 Lý thuyết cho phần thiết kế biễu mẫu thi trắc nghiệm:
2.1.1 Phân tích các thành phần trên biểu mẫu trắc nghiệm:
Sau đây là một số mẫu thi trắc nghiệm mà chúng em đã thu thập được:
- Mẫu bài thi của kỳ thi TOEFL:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 18 -
Hình 2-2 : Mẫu bài thi TOEFL
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 19 -
- Mẫu thi của kỳ thi sát hạch kỹ sư chất lượng Nhật Bản:
Hình 2-3: Mẫu thi của kỳ thi sát hạch Nhật Bản
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 20 -
Sau khi quan sát các biểu mẫu thi trắc nghiệm của một số kỳ thi chúng em có
nhận xét rằng một biểu mẫu thường gồm có những thành phần sau:
a) Phần thông tin thí sinh:
Phần này dành cho thí sinh ghi thông của mình, nó bao gồm các đối
tượng sau:
i) Text: dùng để viết tiêu đề hay văn bản
Hình 2-4: Phần văn bản trong đề thi mẫu
ii) TextField: dùng để ghi tên, ngày sinh hay mã số thí sinh…
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 21 -
Hình 2-5: Phần ghi tên thí sinh trong đề thi mẫu
Hình 2-6: Phần ghi mã số thí
sinh trong đề thi mẫu
iii) Choice: phần lựa chọn
Hình 2-7: Phần lựa chọn giới tính trong đề thi mẫu
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 22 -
b) Phần trả lời câu hỏi:
Đây là nơi thí sinh đánh dấu câu trả lời của mình. Nó có dạng như hình
sau:
Hình 2-8: Phần trả lời câu hỏi của thí sinh trong đề thi mẫu
c) Các phần khác:
Qua hình minh họa trên ta nhận thấy trên các biểu mẫu có thêm đường
viền đen. Các đối tượng này đóng vai trò là lề của biểu mẫu, điều này giúp ích
rất nhiều cho quá trình chấm điểm được chính xác hơn.
Ngoài những thành phần nêu trên chúng ta còn thấy trên đề còn có một số đối
tượng đồ hoạ như: đường thẳng, hình chữ nhật, hình tròn…
2.1.2 Tổ chức dữ liệu để biểu diễn và lưu trữ biểu mẫu.
Thiết kế biểu mẫu là một phần của hệ thống, nó không chỉ có nhiệm vụ tạo ra
những mẫu bài thi trắc nghiệm mà còn có nhiệm vụ cung cấp thông tin về mẫu bài
thi đó cho quá trình nhận dạng sau này. Do đó việc tổ chức lưu trữ như thế nào cũng
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 23 -
là vấn đề hết sức quan trọng. Ngày nay công nghệ XML đang phát triển rất mạnh và
đang được áp dụng rất rộng rãi. Ngoài việc giúp cho định nghĩa một đối tượng có
cấu trúc được rõ ràng, nó còn có khả năng chuyển đổi sang các hệ thống khác một
cách dễ dàng. Và đó cũng là lý do mà chương trình chọn cách lưu trữ có sử dụng
XML. [5]
Mỗi biểu mẫu được xem là một “Document” gồm nhiều trang “Page”. Mỗi
trang lại gồm các đối tượng khác. Dựa theo phân tích các đối tượng như trên thì ta
có thể lưu trữ biểu mẫu theo cấu trúc như sau (chi tiết sẽ được đề cập sau).
<Document>
<Page>
<Text/>
<Text/>
<TextField/>
<AnswerSheet/>
<AnswerSheet/>
<Line/>
<Rect/>
<Ellipse/>
…
</Page>
<Page>
</Page>
…
</Document>
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 24 -
2.2 Lý thuyết cho phần chấm điểm tự động:
2.2.1 Tóm tắt quá trình thực hiện của phần chấm điểm tự động
Chương trình khi chấm điểm sẽ thực hiện một quá trình được tóm tắt như sau:
Đầu tiên, bài thi sau khi được làm xong, sẽ được quét đưa vào máy tính
xử lý. Ảnh lúc này là ảnh màu chiếm nhiều thông tin không cần thiết
cho việc chấm điểm, do đó trước khi chấm cần được làm xám và
chuyển thành ảnh nhị phân (tức ảnh trắng đen) để loại bỏ bớt các
thông tin dư thừa. Vì các máy scan hầu hết đều không có vị trí canh
chuẩn, nên ảnh bài thi đầu vào cho việc chấm điểm có thể sẽ bị lệch,
nghĩa là các vị trí cần chấm trong ảnh không chính xác so với mẫu
chấm bài, dẫn đến bài chấm sẽ bị sai.
Dựa vào các đánh dấu có sẵn ở 4 góc của bài thi được xác định bằng
thuật toán Hough Transform, máy sẽ tính được góc lệch của bài thi.
(Tuy nhiên, do ban đầu việc scan bị lệch nên phần rìa của bài thi sẽ bị
vùng đen. Nên để nhận dạng 4 góc đựơc chính xác, trước đó chương
trình cần chuyển vùng rìa đen sang trắng, tức loại bỏ vùng đen đó bằng
thuật toán tô màu. Để cải tiến tốc độ, thuật toán tô màu dựa theo
dòng quét cải tiến được sử dụng).
Sau khi tính được góc lệch của ảnh bài thi so với mẫu chấm bài,
chương trình sẽ áp dụng phép xoay ảnh, một trong các lý thuyết xử lý
ảnh, để chuyển bài thi về trạng thái đúng, tức ảnh bài thi không bị lệch
nữa. Lúc này, các vị trí đánh dấu của bài thi đã thay đổi, đều bị xoay
một góc như ảnh bài thi, chương trình sẽ thực hiện các phép tính xoay
để xác định lại vị trí hiện tại của các đánh dấu ở 4 góc. Tiếp đó, chương
trình sẽ thực hiện cắt bỏ các phần thừa ngoài vùng đánh dấu của bài thi,
chỉ lấy toàn bộ phần bên trong vùng đánh dấu. Kết quả ta đã có đựơc
một ảnh bài thi hoàn chỉnh có các vị trí chấm được xác định theo mẫu
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 25 -
chấm bài chuẩn. Các bước trên là các giai đoạn làm chuẩn ảnh đầu vào
để việc chấm thi được chính xác.
Công việc tiếp theo là chấm điểm ảnh bài thi đã được chuẩn hoá theo
mẫu chấm tương ứng. Dựa vào các thông tin về các vị trí cần thiết (cho
việc rút trích thông tin thí sinh cũng như chấm điểm cho bài thi) từ bản
mẫu bài thi trong phần thiết kế, ta sẽ lấy ra các vùng ảnh cần được xử
lý (crop).
Tuỳ theo thông tin từ mẫu chấm, ta sẽ biết được vùng ảnh lấy ra cần
thực hiện hoặc việc xem xét có tô hay không, hoặc phức tạp hơn là
nhận dạng chữ viết tay in có trong vùng ảnh đó. Đối với trường hợp xét
một vùng ảnh là có được tô hay không thì công việc chỉ đơn giản là
xét xem mật độ điểm đen trong vùng ảnh đó có lớn hay nhỏ hơn một
ngưỡng nào đó do ta quy định sẵn từ trước. Tuy nhiên, đối với trường
hợp vùng ảnh chứa chữ viết tay in, công việc tương đối phức tạp hơn,
đòi hỏi phải áp dụng lý thuyết về mạng nơron để nhận dạng ký tự
được chứa trong vùng ảnh đang xét. Do mạng nơron có số đầu vào xác
định cụ thể, nên vùng ảnh cần nhận dạng phải được biến đổi tỉ lệ
(scale) lại cho phù hợp với đầu vào của mạng. Chi tiết về việc ứng
dụng mạng nơ ron sẽ được bàn rõ ở phần “Mạng nơ ron và ứng dụng
vào nhận dạng chữ viết tay in”.
Sau khi chấm xong, thông tin của bài làm vừa có sẽ được so với đáp án
để cho ra kết quả, đưa vào danh sách các bài thi đã chấm. Người dùng
có thể lưu lại danh sách kết quả này vào cơ sở dữ liệu để tiện việc xem
xét lại về sau.
Sau đây là sơ đồ mô tả tóm tắt quá trình chấm thi:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 26 -
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 27 -
Hình 2-9: Sơ đồ tóm tắt quá trình chấm thi
2.2.2 Sơ Lược Các Lý Thuyết Về Xử Lý Ảnh Và Nhận Dạng
2.2.2.1 Xử lý ảnh:
2.2.2.1.1 Các thao tác xử lý ảnh cơ bản:
Trong phần chấm điểm tự động này, các thao tác xử lý ảnh được ứng dụng
bao gồm: làm xám ảnh (greyscale), chuyển ảnh sang ảnh nhị phân (threshold), xoay
ảnh, biển đổi tỉ lệ ảnh.
Ta nhận thấy, đối với đề tài nhận dạng bài thi trắc nghiệm cụ thể như yêu
cầu, màu sắc trong ảnh của bài thi là không cần thiết. Do đó, thực hiện việc chuyển
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 28 -
đổi từ ảnh màu sang ảnh xám rồi sang ảnh nhị phân là nhằm đơn giản hoá, loại bỏ
các thông tin dư thừa và chuẩn hoá đầu vào của chương trình, giúp quá trình xử lý
của chương trình được gọn nhẹ và nhanh hơn.
Tiếp đến, do bài thi của thí sinh khi được quét vào máy để chấm sẽ xảy ra
trường hợp bài thi bị đặt nghiêng trong máy scan, dẫn đến bài thi trong ảnh đầu vào
không được vuông góc như trong bản thiết kế mà sẽ bị nghiêng một góc bất kỳ.
Việc ứng dụng xoay ảnh ở đây nhằm xoay bài thi lại cho vuông góc như trong mẫu
thiết kế.
Cuối cùng, vì chương trình cho phép các file ảnh đầu vào có kích thước bất
kỳ, nên việc biến đổi tỉ lệ ảnh là cần thiết nhằm giúp chuyển các vùng cần nhận
dạng hay xử lý về một chuẩn chung, cụ thể là về một kích thước chung (chẳng hạn
vùng viết chữ tay cần nhận dạng sẽ được scale lại thành ảnh có kích thước 16x16 để
phù hợp với đầu vào của mạng nơrôn ứng dụng cho việc nhận dạng chữ viết tay -
xem ở phần nhận dạng chữ viết tay).
Chi tiết về các thao tác này được bàn rõ ở phần phụ lục.
2.2.2.1.2 Tô màu bằng thuật toán dựa theo dòng quét cải tiến
Các định nghĩa:
Một vùng tô bao gồm đường biên và vùng bên trong. Đường biên là
một đường khép kín, ví dụ như đa giác.
Tô màu là thao tác tìm các điểm sáng “nằm bên trong” một vùng tô.
Tô dựa theo dòng quét (scan line) là tô màu theo dòng điểm sáng trên
màn hình.
Cách thực hiện:
Thuật toán tô màu dựa theo đường biên: [2]
Đường biên trong thuật toán này được mô tả bằng một giá trị duy nhất
là màu của tất cả các điểm thuộc về đường biên.
Bắt đầu từ điểm nằm bên trong vùng tô, ta sẽ kiểm tra các điểm lân cận của
nó đã được tô màu hay có phải là điểm biên hay không, nếu không phải là
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 29 -
điểm đã tô và không phải là điểm biên, ta sẽ tô màu nó. Quá trình này được
lặp đi lặp lại cho đến khi nào không còn tô được điểm nào nữa thì dừng.
Bằng cách này, toàn bộ các điểm thuộc vùng tô được kiểm tra và sẽ được tô
hết.
Hình 2-10: quá trình thực hiện của thuật toán tô màu dựa theo đường biên
Tuy nhiên, do thuật toán này khi cài đặt có tính đệ quy, thường dẫn
đến tràn bộ nhớ đối với vùng tô khá lớn. Cho nên, để cải tiến, ta sẽ tiến hành
loang dần và lần lượt tô từng đoạn giao theo dòng quét ngang thay vì tô theo
các điểm lân cận (chẳng hạn 4 điểm lân cận). Đó chính là thuật toán tô màu
dựa theo dòng quét cải tiến được trình bày ngay sau đây.
Thuật toán tô màu theo dòng quét cải tiến:
Giới thiệu ý tưởng:
Lưu lại thông tin của điểm bắt đầu mỗi đoạn giao nhau của dòng quét
ngang thay vì phải lưu hết tất cả các điểm lân cận chưa được tô xung quanh
điểm hiện hành. Việc tô màu được thực hiện loang theo các dòng quét từ
điểm bắt đầu hướng lên biên trên, sau khi tô xong, lại theo hướng xuống biên
dưới. Ứng với mỗi dòng quét ngang, ta sẽ loang và tìm pixel trái nhất để lưu
lại.
Chi tiết thuật toán:
Từ một điểm bất kỳ nằm trong vùng cần tô:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 30 -
B1: ta tìm điểm bên trái nhất trong vùng cần tô của dòng kề trên và dòng kề
dưới điểm đang xét tính từ vị trí của điểm đang xét (miễn các dòng kề trên và
dòng kề dưới này vẫn nằm trong vùng cần tô). Các điểm trái nhất đó, ta đưa
vào một danh sách chờ theo thứ tự định sẵn (chẳng hạn điểm nằm trên trước
rồi điểm nằm dưới sau) miễn các điểm đó không trùng với các điểm đã có
trong danh sách chờ.
B2: Ta lại tiếp tục xét cho điểm kề bên phải của điểm đang xét. Nếu đã đến
đường biên thì nhảy sang B3, còn ko thì quay lại B1.
B3: Ta lấy phần tử được đưa vào sau cùng của danh sách chờ rồi lại quay trở
về B1 làm tương tự như trên. Nếu danh sách chờ hết phần tử thì đã tô xong
vùng cần tô, thuật toán kết thúc.
Ví dụ minh hoạ:
Trong hình 2.10 sau, đoạn giao đầu tiên chứa điểm bắt đầu (tô màu
trắng) sẽ được tô trước). Sau đó các vị trí 1, 2 ứng với các đoạn giao của các
dòng quét kế tiếp sẽ được lưu lại.
Hình 2-11
Bước tiếp theo (hình 2.11), điểm ứng với vị trí 2 sẽ được lấy ra và tiến
hành tô màu bằng cách loang từ điểm này ra theo chiều ngang, sau đó pixel
ứng vị trí 3 của dòng quét kế tiếp sẽ được lưu lại.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 31 -
Hình 2-12
Sau khi dòng quét ứng với điểm 3 đã được xử lý tương tự như trên
xong, stack lưu các vị trí của các điểm “hạt giống” cho các dòng quét kế tiếp
như trong hình 2.12.
Hình 2-13
Hình 2.13 minh hoạ khi thuật toán đã tô được toàn bộ một phần vùng
phía trên bên phải của vùng tô. Khi pixel ứng với vị trí 5 được xử lý xong, ta
có phần còn lại phía trên bên trái sẽ được tô. Sau đó pixel ứng với vị trí 4 sẽ
được xử lý, các dòng quét phía dưới sẽ được tô tiếp theo.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 32 -
Hình 2-14
Ý nghĩa:
Thuật toán tô màu dựa theo dòng quét cải tiến được dùng để tô màu 4 góc
của ảnh bài thi khi mới vừa được đưa vào chấm. Vì ảnh của bài thi ban đầu có phần
rìa xung quanh mày đen, mà nếu cứ để như vậy rồi nhận dạng các ký hiệu định sẵn
ở bốn góc sẽ dẫn đến nhận dạng sai vị trí các ký hiệu đó.
Vì vậy, ta phải dùng thuật toán tô màu để tô trắng các vùng đen ở bốn góc
giúp việc nhận dạng đựơc chính xác. Để giúp giảm bớt thời gian thực hiện của
chương trình, trong tình huống cụ thể này, ta đã áp dụng thuật toán tô màu quét
dòng cải tiến giúp việc tô màu được nhanh hơn, không tốn nhiều tài nguyên.
2.2.2.2 Nhận dạng:
2.2.2.2.1 Nhận dạng bốn góc của bài thi bằng thuật toán Hough
Transform
Thuật toán Hough Transform cơ bản [3] :
Dẫn nhập:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 33 -
Xét trường hợp cần nhận dạng các đường thẳng bất kỳ trong một ảnh nhị phân
(với các hình ảnh trên hình được quy định có màu đen):
- Ta biết rằng với mỗi điểm đen bất kỳ trong không gian ảnh sẽ có vô số các
đường thẳng đi qua điểm đó.
- Ta lại biết rằng mọi đường thẳng đều có thể biểu diễn được bằng phương
trình sau:
y = mx + b
với m và b là 2 số thực bất kỳ, trong đó m xác định góc của đường thẳng so
với trục hoành và b xác định vị trí đường thẳng cắt với trục tung.
Do đó, với một cặp điểm đen (x1,y1) xác định bất kỳ, ta sẽ có thể tìm ra được
vô số cặp (m,b) ứng với các đường thẳng có thể đi qua điểm (x1,y1) đó, sao cho m
và b thoả điều kiện sau:
b = y1 – mx1
Thuật toán Hough Transform cơ bản được thực hiện dựa trên ý tưởng
như sau:
Mỗi cặp điểm (x,y) trong ảnh sẽ xác định trong không gian (m,b) một đường
thẳng duy nhất tương ứng với cặp điểm (x,y) đó. Đường thẳng này giúp xác định
các cặp điểm (m,b) mà giá trị của chúng giúp tạo nên các đường thẳng trong ảnh mà
đi qua được cặp điểm (x,y). Với nhiều cặp điểm (x,y) sẽ xác định nhiều đường
thẳng tương ứng trong không gian (m,b). Như vậy, trong không gian (m,b), nếu tại
điểm (m,b) nào mà có số đường thẳng đi qua vị trí đó trong không gian (m,b) lớn
hơn một giá trị cụ thể (tuỳ theo quy định chiều dài của đường thẳng lớn hơn bao
nhiêu thì là được cho là đường thẳng), thì cặp giá trị (m,b) của điểm đó chính là 2
giá trị xác định nên một trong những đường thẳng cần được tìm thấy trong ảnh.
Các bước thực hiện:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 34 -
Cho mảng 2 chiều (m,b). Giá trị tại một vị trí trong mảng cho biết số lần
đường thẳng được tạo bởi cặp giá trị (m,b) tương ứng với vị trí đó xuất hiện trong
ảnh.
B1: quét qua tất cả các điểm cần xét trong ảnh.
B2: với mỗi điểm được xét, ta sẽ tính các cặp giá trị (m,b) thoả các đừơng
thẳng đi qua điểm đó. Từ đó, ta tăng giá trị tại các vị trí (m,b) tương ứng trong
mảng 2 chiều mô tả không gian (m,b) đó lên 1 đơn vị.
B3: sau đó xét tất cả các phần tử trong mảng 2 chiều mô tả không gian (m,b)
đó, nếu tại phần tử nào mà có giá trị lớn hơn chiều dài quy định cần thiết để tạo nên
một đường thẳng thì ta sẽ nhận dạng được một đường thẳng y = mx + b trong đó
m,b xác định nhờ vào vị trí của phần tử đó.
Cải tiến cho thuật toán Hough Transform cơ bản áp dụng cho việc nhận
dạng các đường thẳng:
Trong phần trên, ta thấy m, b trong công thức b = y – mx không bị giới hạn.
Điều này có nghĩa rằng, khi m đến lên vô cực thì b cũng tương ứng đến vô cực. Do
đó, việc sử dụng mảng 2 chiều (là có giới hạn) để mô tả không gian (m,b) (không có
giới hạn), điều này là không tưởng trong việc lập trình. Ngoài ra, theo quy định, chỉ
số của mảng không được âm.
Do đó, ta cần một công thức thay thế cho công thức biễu diễn đường thẳng:
y = mx + b
sao cho việc xác định các tham số (như m và b chẳng hạn) nằm trong một
khoảng giới hạn xác định.
Và công thức đó là:
x*cosA + y*sinA = B
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 35 -
Hình 2-15
trong đó:
- A là số độ của góc đuợc tạo bởi đường thẳng và trục hoành, giá trị kiểu số
thực.
- B là khoảng cách từ đường thẳng đó đến gốc toạ độ (áp dụng trong đề tài
là góc trên trái của ảnh), kiểu số thực.
Công thức này cũng có thể biễu diễn mọi đường thẳng bất kỳ trong không
gian 2 chiều như công thức y = mx + b nhưng 2 tham số A và B của nó có giới hạn
trong ảnh 2 chiều:
- A nằm trong khoảng từ -89 độ -> 90 độ.
- Vì thuật toán được áp dụng cho ảnh 2 chiều, nên B được giới hạn từ 0 ->
chiều dài đường chéo của ảnh.
Để dùng mảng 2 chiều mô tả không gian (A,B) tương tự như không gian
(m,b), bắt buộc A và B phải đựơc làm tròn đến một đơn vị nào đó, dẫn đến sai số
trong việc xác định chính xác đường thẳng. Tuỳ theo độ chính xác đựơc yêu cầu mà
A sẽ đựơc tính làm tròn tới 1 đơn vị hay nữa đơn vị, thậm chí thấp hơn nữa.
Ví dụ, đối với đường thẳng mà tham số A chỉ cần chính xác ở 1 đơn vị, thì
mảng 2 chiều ta cần tạo sẽ có chiều dài chiều A là 180. Nhưng nếu tham số A cần
chính xác đến nữa đơn vị (0,5) thì mảng 2 chiều cần tạo sẽ phải có chiều dài là
180/0,5=360. Tương tự, với độ chính xác n thì chiều dài chiều A sẽ là 180/n.
Ngoài ra, do mảng có chỉ số không được âm, nên thay vì A có giá trị từ -89
đến 90 độ, ta chuyển sang giá trị tương ứng từ 0 -> 179 (với 0 thực chất tương ứng
cho -89, 90 tương ứng cho 179...)
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 36 -
Như vậy, ta sẽ áp dụng thuật toán Hough Transform để nhận dạng đường
thẳng tương tự như phần đã trình bày ở trên, chỉ thay công thức:
y = mx + b
bằng
x*cosA + y*sinA = B
cũng như thay các tham số m, b bằng A và B.
Ví dụ minh họa:
Hình 2-16
Ta có 5 điểm 1, 2, 3, 4, 5 với vị trí trong không gian x, y như trên.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 37 -
Hình 2-17
Trong không gian (A,B), tập hợp các đường thẳng đi qua mỗi điểm sẽ
hình thành nên một đường hình sin tương ứng.
Hình 2-18
Ta thấy, giao điểm có tên là dòng 1 chính là giao điểm của 3 đường sin của 3
điểm 1, 3, 5. Cho nên, giao điểm dòng 1 chính là nơi mang giá trị cặp (A,B) hình
thành nên đường thẳng đi qua 3 điểm 1, 3 và 5 trong không gian (x,y).
Tương tự, giao điểm tên dòng 2 chính là nơi mang cặp giá trị (A,B) tạo nên
đường thẳng đi qua 3 điểm 2, 3, 4 trong không gian (x,y).
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 38 -
Áp dụng cho đề tài, ý nghĩa:
Thuật toán Hough Transform trong đề tài được áp dụng cho các vùng ảnh
trích ra từ bốn góc của bài thi (bốn vùng ảnh này được lấy ra bằng thuật toán cắt ảnh
- crop). Thuật toán giúp nhận dạng 4 vị trí đánh dấu ở 4 góc của bài thi, từ đó xác
định vùng chấm thi phù hợp với mẫu chấm thi.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 39 -
2.2.2.2.2 Kiểm tra vùng tô
Định nghĩa:
Vùng tô là phần được giới hạn trong một ô tròn (các ô tròn này có rất nhiều
trên bài làm của thí sinh). Tùy theo cách làm bài của từng thí sinh mà mỗi ô tròn có
được tô hay không. Công việc kiểm tra vùng tô là xét xem trong một ô tròn nào đó
có được tô đen hay không. Tùy theo quy định của người lập trình mà số phần trăm
được tô đen trong vùng tô là bao nhiêu thì ô tròn được xem là đã tô.
Hình 2-19: khi chưa được tô
Hình 2-20: các dạng sau khi đã tô
Cách thực hiện:
Do vùng tô cần xét chỉ là một vòng tròn nhỏ trong ảnh bitmap, và khi xem
xét một ảnh bitmap thì ảnh đó luôn là hình chữ nhật. Cho nên đầu vào của vùng tô
cần kiểm tra là một hình vuông (được lấy ra từ ảnh bài thi) có đường tròn nội tiếp
chính là ô tròn đang xét.
Khi đó, ta có 2 cách để kiểm tra vùng tô xem có được tô hay chưa:
Cách thứ nhất:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 40 -
Ta sẽ quét tòan bộ vùng ảnh vuông đầu vào từ trái qua phải và từ trên
xuống dưới, xét xem số pixel đen chiếm bao nhiêu phần trăm trong tổng số
pixel của vùng ảnh đầu vào. Theo quy định như trong đề tài này, nếu số pixel
đen này chiếm hơn 60%, thì vùng tô đó đã đựơc tô đen, còn ngược lại là
chưa được tô.
Cách kiểm tra này độ chính xác không cao, vì xét cả những phần nằm
ngoài vùng tô. Tuy nhiên, do cài đặt dễ dàng và xử lý ít phức tạp (chỉ quét
một lần và theo thứ tự), tốc độ thực hiện nhanh hơn nên được áp dụng trong
đề tài.
Cách thứ hai:
Ta sẽ quét từ tâm hình vuông (còn là tâm của vòng tròn) dần lan ra
đến cạnh của hình vuông theo các đường tròn đồng tâm là tâm hình vuông.
Ta sẽ phân các vòng tròn thành 3 loại:
các vòng tròn nhỏ bên trong (ta quy định là các vòng tròn có
đường kính bằng nữa cạnh hình vuông trở xuống) gọi là T1.
các vòng tròn lớn bên trong (ta quy định là các vòng tròn có đuờng
kính lớn hơn nữa cạnh hình vuông đến bằng cạnh hình vuông) gọi là T2.
các vòng tròn bên ngòai (có đường kính lớn hơn cả cạnh hình
vuông) gọi là T3.
Hình 2-21: ảnh cần kiểm tra tô được phân thành 3 vùng
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 41 -
Trong một điều kiện tối ưu, vùng ảnh vuông đầu vào sẽ có vòng tròn
cần xét tô nội tiếp với ảnh vuông đó. Nhưng trong thực tế thì vòng tròn tô
trong vùng ảnh vuông đầu vào sẽ bị lệch, do đó các vòng tròn nhỏ T1 sẽ có
khả năng nằm trong vùng cần tô nhiều hơn là T2, và các vòng tròn T2 lại có
khả năng nhiều hơn T3. Do đó, pixel thuộc vòng tròn T1 sẽ góp phần nhiều
hơn so với các pixel thuộc T2 vào việc quyết định xem vùng tô có được tô
hay không. Điều này cũng tương tự cho các pixel thuộc vòng tròn T2 so với
T3. Vì vậy, độ ưu tiên của các pixel thuộc các vòng tròn sẽ được quy định
theo thứ tự lần lượt như sau: T1, T2, T3.
Ta có công thức sau:
Giá trị của vùng tô = ( Tổng số pixel T1 đen * độ ưu tiên
của T1 ) + ( Tổng số pixel T2 đen * độ ưu tiên của T2 ) + ( Tổng số
pixel T3 đen * độ ưu tiên T3 ) (1)
Như vậy, khi vùng tô được tô hoàn toàn trong điều kiện tối ưu (tức
ảnh đầu vào hình vuông chứa ô tròn cần tô nội tiếp ảnh), ta có:
Giá trị cho thấy vùng tô được tô hoàn toàn = ( Tổng số pixel
T1 * độ ưu tiên của T1 ) + ( Tổng số pixel T2 * độ ưu tiên của T2)
Do đó, chỉ gần đúng, ta đưa ra được thuật toán cho phép quyết định
xem vùng tô có được tô hay không bằng cách:
• Tính giá trị vùng tô áp dụng công thức (1).
• Nếu giá trị vùng tô > (60% * Giá trị vùng tô được tô hoàn toàn)
thì
o ô tròn đã được tô đen
• ngược lại
o ô tròn chưa đựơc tô.
Phương pháp này có độ chính xác cao hơn trong các trường hợp ảnh
vuông đầu vào có vùng tô bị lệch, tuy nhiên do cài đặt phức tạp, xử lý tính
toán nhiều hơn (phải tính từ tâm của hình tròn rồi lan dần sang xung quanh)
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 42 -
có thể làm ảnh hưởng đến tốc độ chung của chương trình nên không được áp
dụng cho đề tài.
2.2.2.2.3 Mạng nơ ron và ứng dụng vào nhận dạng chữ viết tay in
Giới thiệu về mạng nơ ron:
Mạng nơron là công cụ dùng để tìm gần đúng nhất bài giải của một vấn đề
bất kỳ mà không cần quan tâm đến nội dung chi tiết bên trong của bài toán. Để làm
được điều này, mạng nơron cần phải trải qua một quá trình, gọi là quá trình học
được thực hiện lặp đi lặp lại trên tập mẫu có sẵn. Sau khi được học xong, mạng
nơron có thể giải quyết các vấn đề liên quan đến bài toán đã cho cũng như các bài
toán cùng loại tương tự với độ chính xác chấp nhận được.
Mạng nơron được ứng dụng trong các bài toán nhận dạng, phân lớp như nhận
dạng mặt người, nhận dạng ký tự...
Lý thuyết về mạng nơron được bàn đến trong phần Phụ Lục.
Áp dụng:
Đối với đề tài luận văn này, việc áp dụng mạng nơron [1] để nhận dạng ký tự
được thực hiện như sau:
Thông thường, mạng nơron dùng để nhận dạng ký tự sẽ cho biết ký tự đang
xét là ký tự gì. Tuy nhiên, do ở đây, ký tự được xác định song song bằng nhận dạng
đi kèm với việc kiểm tra vị trí tô của ký tự tương ứng trong bài làm của thí sinh.
Cho nên, để đơn giản vấn đề, ta sẽ: xác định ký tự được chọn bằng cách dựa vào vị
trí tô của ký tự trong bài thi trước; rồi từ đó xác định xem ký tự viết tay có đúng là
ký tự đó hay không.
Như vậy, giờ đây vấn đề đã đơn giản hơn. Ta sẽ tạo ra tổng cộng là 36 mạng
nơron, mỗi mạng được áp dụng riêng cho từng chữ cái hoặc chữ số. Với mỗi mạng
nơron này, chỉ cần một nút xuất duy nhất để cho biết đúng ký tự đó hay không.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 43 -
Cấu tạo của dạng mạng nơ ron:
Như đã phân tích ở trên, các mạng nơ ron này được sử dụng để xét xem một
ký tự có phải là ký tự cần tìm hay không.
Do đó, các mạng nơ ron này sẽ có cấu tạo tương tự nhau. Mỗi mạng sẽ gồm
3 lớp: lớp nút nhập, lớp nút ẩn và lớp nút xuất. Mạng sẽ không có đường nối trực
tiếp từ lớp nhập đến lớp xuất. Đầu vào của mạng sẽ là vùng ảnh chứa ký tự đã được
biến đổi theo tỉ lệ chuẩn 16x16, đầu ra duy nhất cho biết giá trị là đúng hay sai
(đúng khi lớn hơn 0,5, sai khi ngược lại). Vì vậy, mạng có 256 nút nhập, 1 nút xuất.
Số nút ẩn được chọn là 3.
Sơ đồ cấu tạo của mạng như sau:
Hình 2-22: cấu tạo của mạng nơ ron được áp dụng cho đề tài
Thực nghiệm:
Mỗi mạng nơ ron được học trên 4644 mẫu (bao gồm tất cả các ký tự), trong
đó số mẫu đúng (chứa ký tự áp dụng cho từng mạng) là 129, còn lại là các mẫu sai.
Mỗi mạng được học trong khoảng thời gian hơn 4 tiếng.
Kết quả:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 44 -
Một số mạng có tỉ lệ nhận dạng đúng là 80%.
Tuy nhiên, đa số chỉ đạt được 70%.
Đánh giá:
Mạng cần phải được học trên nhiều mẫu hơn nữa để có thể áp dụng thực tế.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 45 -
Chương 3: THIẾT KẾ CHƯƠNG TRÌNH
3.1 PHÂN TÍCH:
Ta đã phân tích các thành phần của một biểu mẫu thi ở trên nên ở đây chỉ nói
đến phần chấm điểm tự động. Đây là phần chính yếu của đề tài. Chương trình sẽ
nhận vào một bản scan của một bài thì sau đó sẽ đọc ra thông tin của thí sinh cùng
với kết quả bài làm của thí sinh đó. Sau đó tùy vào cách tính điểm mà sẽ cho điểm
thí sinh đó.
Đối với từng loại đối tượng mà ta sẽ có cách đọc thông tin khác nhau:
TextField: đối với đối tượng này ta có 2 việc cần làm là xác định
thí sinh đã viết ký tự gì, và đã tô ký tự gì. Sau đó sẽ kiểm tra xem
chúng có khớp với nhau hay không.
Choice: ta xác định xem thí sinh đã tô phần lựa chọn nào.
AnswerSheet: ta cũng xác định thí sinh đã tô những câu trả lời
nào.
Tóm lại ta sẽ có các công việc chính là:
Xác định vị trí chính xác của từng đối tượng.
Kiểm tra xem một vùng có được tô hay không.
Nhận dạng một ký tự viết tay.
Hiện nay có 2 cách tính điểm phổ biến như sau:
Tính điểm theo câu: theo cách này thì mỗi câu đúng sẽ được số
điểm nào đó và kết quả điểm của bài làm chính là tổng số điểm
của tất cả các câu chọn đúng.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 46 -
Tính điểm theo khoảng: theo cách tính này thì người ta sẽ đếm số
câu trả lời đúng của thí sinh sau đó dựa vào bảng điểm đã quy
định trước mà cho điểm thích hợp cho thí sinh.
Ví dụ: số câu đúng từ 35 – 40: 10 điểm; từ 30 – 34: 9 điểm…
3.2 XÁC ĐỊNH YÊU CẦU:
Xây dựng hệ thống “Thiết kế và chấm điểm tự động bài thi trắc nghiệm” phải
hộ trợ các tính năng sau:
Thiết kế biểu mẫu:
Có đầy đủ các đối tượng cơ bản để tạo thành một đề thi: text,
textfield, choice, answersheet (bảng trả lời).
Có các đối tượng đồ hoạ.
In ấn.
Kết xuất thành file.
Soạn đáp án:
Soạn đáp án cho từng câu trả lời.
Soạn cách thức chấm điểm.
Chấm điểm biểu mẫu:
Điều khiển máy scan, và nhận bài làm từ máy scan.
Đọc thông tin thí sinh.
Kiểm tra và chấm điểm bài làm của thí sinh.
Quản lý các kỳ thi:
Quản lý thông tin kỳ thi, môn thi
Quản lý thí sinh.
Quản lý bài làm thí sinh
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 47 -
3.3 XÂY DỰNG MÔ HÌNH USE-CASE:
[7] 3.3.1 Xác định Actor và Use-Case:
• Actor:
o NGUOIDUNG: (người dùng) thiết kế biểu mẫu và soạn đáp án.
• Use-case:
o THIETKEBIEUMAU: thiết kế biểu mẫu.
o SOANDAPAN: soạn đáp án
o CHAMDIEM: chấm điểm cho bài thi.
o QUANLYKYTHI: quản lý thông tin kỳ thi
o QUANLYMONHOC: quản lý thông tin môn học
o QUANLYTHISINH: quản lý thông tin thí sinh.
o QUANLYBAILAM: quản lý bài làm của thí sinh.
3.3.2 Mô hình Use-case:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 48 -
Hình 3-1: Mô hình Use-Case
3.3.3 Đặc tả Use-case:
3.3.3.1 THIETKEBIEUMAU:
• Tóm tắt:
Use case này mô tả cách thức người dùng thiết kế một biểu mẫu thi
trắc nghiệm.
• Luồng sự kiện:
o Luồng sự kiện chính:
Use case này bắt đầu khi người dùng tạo một biểu mẫu mới hay sữa
lại một biểu mẫu sẵn có.
1. Người dùng chọn tính năng soạn thảo biểu mẫu mới hay mở một
biễu mẫu cũ để sữa lại.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 49 -
A1: Có biểu mẫu chưa lưu.
- Nếu người dùng chọn tạo mới biều mẫu thì luồng sự kiện phụ
TAOMOI được thực hiện.
- Nếu người dùng chọn sữa lại biểu mẫu cũ thì luồng sự kiện phụ
SUABIEUMAU được thực hiện.
2. Người dùng chọn tính năng chọn đối tượng, thêm các đối tượng cơ
bản, các đối tượng đồ họa, xóa đối tượng, cập nhật đối tượng.
- Nếu người dùng chọn tính năng chọn đối tượng thì luồng sự
kiện phụ CHONDOITUONG được thực hiện.
- Nếu người dùng chọn tính năng thêm đối tượng cơ bản thì
luồng sự kiện phụ THEMDOITUONGCOBAN được thực hiện.
- Nếu người dùng chọn tính năng thêm đối tượng đồ họa thì
luồng sự kiện phụ THEMDOITUONGDOHOA được thực hiện.
- Nếu người dùng chọn tính năng xóa đối tượng thì luồng sự kiện
phụ XOADOITUONG được thực hiện.
- Nếu người dùng chọn tính năng cập nhật đối tuợng thì luồng sự
kiện phụ CAPNHATDOITUONG được thực hiện.
o Các luồng sự kiện phụ:
3.3.3.1.1 TAOMOI:
1. Hệ thống sẽ mở ra một trang hoàn toàn mới để người dùng bắt
đầu soạn thảo.
2. Trở về luồng chính, bước 2.
3.3.3.1.2 SUABIEUMAU:
1. Hệ thống sẽ hiện lên một danh sách các biểu mẫu cho người
dùng chọn.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 50 -
2. Người dùng chọn biểu mẫu cần sữa và xác nhận nó.
3. Trở về luồng chính, bước 2.
3.3.3.1.3 CHONDOITUONG:
1. Người dùng cung cấp một giá trị tọa độ.
2. Hệ thống sẽ kiểm tra xem tại vị trí đó có đối tượng nào hay
không.
- Nếu không có đối tượng nào thì đối tượng được chọn sẽ
là bản thiết kế (Page).
- Nếu có đối tượng tại vị trí đó: hệ thống sẽ kiểm tra xem
nút Ctrl có nhấn hay không?
+ Nếu không: tất cả các đối tượng hiện đang được
chọn sẽ bị bỏ chọn và đối tượng đó sẽ được chọn.
+ Nếu có: qua bước 3.
3. Nếu lúc đó chỉ có duy nhất một đối tượng được chọn thì các
thuộc tính của đối tượng đó sẽ được hiển thị lên màn hình.
4. Trở về luồng chính, bước 2.
3.3.3.1.4 THEMDOITUONGCOBAN:
1. Người dùng chọn đối tượng cần thêm bao gồm: Text, TextField,
Choice, AnswerSheet.
2. Người dùng cung cấp tọa độ của đối tượng.
3. Hệ thống sẽ thêm đối tượng mà người dùng đã chọn ở trên vào
vị trí đó trong bản thiết kế.
4. Những thuộc tính của đối tượng đó sẽ được hiển thị lên màn
hình.
3.3.3.1.4 THEMDOITUONGDOHOA:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 51 -
1. Người dùng chọn đối tượng cần thêm bao gồm: Line,
Rectangle, Ellipse.
2. Người dùng cung cấp tọa độ 2 điểm.
3. Hệ thống sẽ tạo ra đối tượng tương ứng mà người dùng đã chọn
trên dựa theo tọa độ 2 điểm đó và vẽ lên bản thiết kế.
4. Những thuộc tính của đối tượng đó sẽ được hiển thị lên màn
hình.
3.3.3.1.5 XOADOITUONG:
1. Người dùng chọn các đối tượng cần xóa (kích hoạt luồng
CHONDOITUONG).
2. Nếu không có đối tượng nào được chọn thì kết thúc luồng này.
3. Người dùng chọn tính năng xóa đối tượng.
4. Hệ thống sẽ xóa các đối tượng mà người dùng đã chọn trên ra
khỏi bản thiết kế.
3.3.3.1.6 CAPNHATDOITUONG:
1. Người dùng chọn đối tượng cần cập nhật (kích hoạt luồng
CHONDOITUONG).
2. Nếu không có đối tượng nào được chọn, hoặc có nhiều hơn một
đối tượng được chọn thì luồng này sẽ kết thúc.
3. Người dùng thay đổi thông tin thuộc tính của đối tượng đó (đã
được hiển thị lên màn hình nhờ luồng sự kiện chọn đối tượng).
Các thông tin này tùy thuộc vào từng loại đối tượng được chọn.
4. Thông tin về đối tượng sẽ được cập nhật.
5. Bản thiết kế sẽ được vẽ lại.
o Các luồng sự kiện khác:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 52 -
A1: Có biểu mẫu chưa lưu.
1. Hệ thống hỏi xem người dùng có muốn lưu lại biểu mẫu đang
thiết kế hay không?
Nếu người dùng trả lời “có” thì luồng sự kiện LUUBIEUMAU
được thực hiện.
2. Trở về luồng chính.
• Các yêu cầu đặc biệt:
Không có.
• Điều kiện tiên quyết:
Không có.
• Post-Conditions:
Nếu use case này thành công thì thông tin về biều mẫu trong hệ thống
sẽ thay đổi.
• Điểm mở rộng:
Không có.
3.3.3.2 SOANDAPAN:
• Tóm tắt:
Use case này cho phép người dùng soạn đáp án của một biểu mẫu nào
đó.
• Luồng sự kiện:
o Luồng sự kiện chính:
Use case này bắt đầu khi người dùng muốn tạo mới một đáp án, thay
đổi thông tin của đáp án cũ hay xóa một đáp án nào đó ra khỏi hệ thống.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 53 -
1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện
(thêm, xóa hay cập nhật thông tin đáp án).
2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các
luồng sau được thực hiện.
- Nếu người dùng chọn chức năng thêm thì luồng phụ
THEMDAPAN được thực hiện.
- Nếu người dùng chọn chức năng cập nhật thì luồng phụ
CAPNHATDAPAN được thực hiện.
- Nếu người dùng chọn chức năng xóa thì luồng phụ
XOADAPAN được thực hiện.
o Các luồng sự kiện phụ:
3.3.3.2.1 THEMDAPAN:
1. Hệ thống yêu cầu người dùng nhập vào thông tin đáp án như:
kỳ thi, môn thi, ngày thi, mẫu được sử dụng, đáp án đúng của
từng câu trả lời, thông tin về các tính điểm trong bài thi.
2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì đáp án
này được thêm vào hệ thống.
3.3.3.2.2 CAPNHATDAPAN:
1. Hệ thống hiển thị danh sách các đáp án hiện có trong hệ thống
cho người dùng và yêu cầu người dùng chọn đáp án cần sửa.
2. Người dùng chọn đáp án. Hệ thống sẽ hiển thị thông tin của đáp
án lên màn hình.
3. Người dùng dùng thay đổi các thông tin của đáp án.
4. Sau khi người dùng thay đổi thông tin xong thì hệ thống sẽ cập
nhật thông tin của đáp án này vào hệ thống.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 54 -
3.3.3.2.3 XOADAPAN:
1. Hệ thống hiển thị danh sách các đáp án hiện có trong hệ thống
cho người dùng và yêu cầu người dùng chọn đáp án cần xóa.
2. Hệ thống nhắc người dùng xác nhận thao tác xóa môn học.
3. Người dùng xác nhận xóa.
4. Hệ thống sẽ xóa thông tin của đáp án này ra khỏi hệ thống.
o Các luồng sự kiện khác:
Thao tác xóa bị hủy: nếu trong luồng phụ XOADAPAN người
dùng quyết định không xóa đáp án này nữa, thao tác xóa bị hủy
và dòng sự kiện chính được bắt đầu lại từ đầu.
• Các yêu cầu đặc biệt:
Không có.
• Điều kiện tiên quyết:
Không có.
• Post-Conditions:
Nếu use case thành công, thông tin môn học sẻ được thêm, cập nhật
hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.
• Điểm mở rộng:
Không có.
3.3.3.3 CHAMDIEM:
• Tóm tắt:
Use case này cho phép người dùng chấm điểm một bài làm của thí
sinh. (Bài làm này là ảnh được scan vào máy).
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 55 -
• Luồng sự kiện:
o Luồng sự kiện chính:
1. Người dùng cho biết ảnh có chứa bài làm của thí sinh.
2. Người dùng chọn mẫu đã được sử dụng trong bài làm và đáp án của
bài làm đó.
3. Người dùng chọn chức năng chấm điểm.
4. Kết quả và thông tin về bài làm của thí sinh sẽ được hiển thị lên
màn hình.
o Các luồng sự kiện phụ:
Không
• Các yêu cầu đặc biệt:
Không có.
• Điều kiện tiên quyết:
Ảnh chứa bài làm của thí sinh phải được đọc vào và người dùng phải
chọn mẫu và đáp án của bài làm đó.
• Post-Conditions:
Không có.
• Điểm mở rộng:
Không có.
3.3.3.4 QUANLYKYTHI:
• Tóm tắt:
Use case này cho phép người dùng duy trì thông tin của kỳ thi trong
hệ thống. Bao gồm các tính năng thêm, hiệu chỉnh và xóa kỳ thi ra khỏi hệ
thống.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 56 -
• Luồng sự kiện:
o Luồng sự kiện chính:
Use case này bắt đầu khi người dùng muốn thêm, thay đổi hay xóa
thông tin của kỳ thi ra khỏi hệ thống.
1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện
(thêm, xóa hay cập nhật thông tin kỳ thi).
2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các
luồng sau được thực hiện.
- Nếu người dùng chọn chức năng thêm thì luồng phụ
THEMKYTHI được thực hiện.
- Nếu người dùng chọn chức năng cập nhật thì luồng phụ
CAPNHATKYTHI được thực hiện.
- Nếu người dùng chọn chức năng xóa thì luồng phụ
XOAKYTHI được thực hiện.
o Các luồng sự kiện phụ:
3.3.3.4.1 THEMKYTHI:
1. Hệ thống yêu cầu người dùng nhập vào thông tin kỳ thi bao
gồm: tên kỳ thi, thời gian thi.
2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì kỳ thi
này được thêm vào hệ thống.
3.3.3.4.2 CAPNHATKYTHI:
1. Hệ thống hiển thị danh sách các kỳ thi có sẵn trong hệ thống lên
màn hình và yêu cầu người dùng chọn kỳ thi cần sửa.
2. Người dùng chọn kỳ thi. Hệ thống sẽ hiển thị thông tin của kỳ
thi lên màn hình.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 57 -
3. Người dùng thay đổi các thông tin của kỳ thi.
4. Sau khi người dùng sửa thông tin xong thì hệ thống sẽ cập nhật
thông tin của kỳ thi này vào hệ thống.
3.3.3.4.3 XOAKYTHI:
1. Hệ thống hiển thị danh sách các kỳ thi có sẵn trong hệ thống lên
màn hình và yêu cầu người dùng chọn kỳ thi cần xóa.
2. Hệ thống nhắc người dùng xác nhận thao tác xóa kỳ thi.
3. Người dùng xác nhận xóa.
4. Hệ thống sẽ xóa thông tin của kỳ thi này ra khỏi hệ thống.
o Các luồng sự kiện khác:
Thao tác xóa bị hủy: nếu trong luồng phụ XOAKYTHI người
dùng quyết định không xóa kỳ thi này nữa, thao tác xóa bị hủy
và dòng sự kiện chính được bắt đầu lại từ đầu.
• Các yêu cầu đặc biệt:
Không có.
• Điều kiện tiên quyết:
Không có.
• Post-Conditions:
Nếu use case thành công, thông tin kỳ thi sẽ được thêm, cập nhật
hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.
• Điểm mở rộng:
Không có.
3.3.3.5 QUANLYTHISINH:
• Tóm tắt:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 58 -
Use case này cho phép người dùng duy trì thông tin của thí sinh trong
hệ thống. Bao gồm các tính năng thêm, hiệu chỉnh và xóa thí sinh ra khỏi
hệ thống.
• Luồng sự kiện:
o Luồng sự kiện chính:
Use case này bắt đầu khi người dùng muốn thêm, thay đổi hay xóa
thông tin của thí sinh ra khỏi hệ thống.
1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện
(thêm, xóa hay cập nhật thông tin thí sinh).
2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các
luồng sau được thực hiện.
- Nếu người dùng chọn chức năng thêm thì luồng phụ
THEMTHISINH được thực hiện.
- Nếu người dùng chọn chức năng cập nhật thì luồng phụ
CAPNHATTHISINH được thực hiện.
- Nếu người dùng chọn chức năng xóa thì luồng phụ
XOATHISINH được thực hiện.
o Các luồng sự kiện phụ:
3.3.3.5.1 THEMTHISINH:
1. Hệ thống yêu cầu người dùng nhập vào thông tin thí sinh bao
gồm: mã thí sinh, họ tên, ngày sinh, giới tính, các thông tin
khác của thí sinh (ghi chú).
2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì thí
sinh này được thêm vào hệ thống.
3.3.3.5.2 CAPNHATTHISINH:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 59 -
1. Hệ thống hiển thị danh sách các thí sinh có sẵn trong hệ thống
lên màn hình và yêu cầu người dùng chọn kỳ thi cần sửa.
2. Người dùng chọn thí sinh. Hệ thống sẽ hiển thị thông tin của thí
sinh lên màn hình.
3. Người dùng thay đổi các thông tin của thí sinh.
4. Sau khi người dùng sửa thông tin xong thì hệ thống sẽ cập nhật
thông tin của thí sinh này vào hệ thống.
3.3.3.5.3 XOATHISINH:
1. Hệ thống hiển thị danh sách các thí sinh có sẵn trong hệ thống
lên màn hình và yêu cầu người dùng chọn kỳ thi cần xóa.
2. Hệ thống nhắc người dùng xác nhận thao tác xóa thí sinh.
3. Người dùng xác nhận xóa.
4. Hệ thống sẽ xóa thông tin của kỳ thi này ra khỏi hệ thống.
o Các luồng sự kiện khác:
Thao tác xóa bị hủy: nếu trong luồng phụ XOATHISINH
người dùng quyết định không xóa thí sinh này nữa, thao tác xóa
bị hủy và dòng sự kiện chính được bắt đầu lại từ đầu.
• Các yêu cầu đặc biệt:
Không có.
• Điều kiện tiên quyết:
Không có.
• Post-Conditions:
Nếu use case thành công, thông tin thí sinh sẽ được thêm, cập nhật
hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 60 -
• Điểm mở rộng:
Không có.
3.3.3.6 QUANLYMONHOC:
• Tóm tắt:
Use case này cho phép người dùng duy trì thông tin của môn học
trong hệ thống. Bao gồm các tính năng thêm, hiệu chỉnh và xóa môn học ra
khỏi hệ thống.
• Luồng sự kiện:
o Luồng sự kiện chính:
Use case này bắt đầu khi người dùng muốn thêm, thay đổi hay xóa
thông tin của môn học ra khỏi hệ thống.
1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện
(thêm, xóa hay cập nhật thông tin môn học).
2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các
luồng sau được thực hiện.
- Nếu người dùng chọn chức năng thêm thì luồng phụ
THEMMONHOC được thực hiện.
- Nếu người dùng chọn chức năng cập nhật thì luồng phụ
CAPNHATMONHOC được thực hiện.
- Nếu người dùng chọn chức năng xóa thì luồng phụ
XOAMONHOC được thực hiện.
o Các luồng sự kiện phụ:
3.3.3.6.1 THEMMONHOC:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 61 -
1. Hệ thống yêu cầu người dùng nhập vào thông tin môn học như:
tên môn học.
2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì môn
học này được thêm vào hệ thống.
3.3.3.6.2 CAPNHATMONHOC:
1. Hệ thống hiển thị danh sách các môn học có sẵn trong hệ thống
lên màn hình và yêu cầu người dùng chọn kỳ thi cần sửa.
2. Người dùng chọn môn học. Hệ thống sẽ hiển thị thông tin của
môn học lên màn hình.
3. Người dùng dùng thay đổi các thông tin của môn học.
4. Sau khi người dùng thay đổi thông tin xong thì hệ thống sẽ cập
nhật thông tin của môn học này vào hệ thống.
3.3.3.6.3 XOAMONHOC:
1. Hệ thống hiển thị danh sách các môn học có sẵn trong hệ thống
lên màn hình và yêu cầu người dùng chọn kỳ thi cần xóa.
2. Hệ thống nhắc người dùng xác nhận thao tác xóa môn học.
3. Người dùng xác nhận xóa.
4. Hệ thống sẽ xóa thông tin của môn học này ra khỏi hệ thống.
o Các luồng sự kiện khác:
Thao tác xóa bị hủy: nếu trong luồng phụ XOAMONHOC
người dùng quyết định không xóa kỳ thi này nữa, thao tác xóa
bị hủy và dòng sự kiện chính được bắt đầu lại từ đầu.
• Các yêu cầu đặc biệt:
Không có.
• Điều kiện tiên quyết:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 62 -
Không có.
• Post-Conditions:
Nếu use case thành công, thông tin môn học sẻ được thêm, cập nhật
hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.
• Điểm mở rộng:
Không có.
3.3.3.7 QUANLYBAILAM:
• Tóm tắt:
Use case này cho phép người dùng duy trì thông tin của môn học
trong hệ thống. Bao gồm các tính năng thêm, hiệu chỉnh và xóa môn học ra
khỏi hệ thống.
• Luồng sự kiện:
o Luồng sự kiện chính:
Use case này bắt đầu khi người dùng muốn thêm, thay đổi hay xóa
thông tin của môn học ra khỏi hệ thống.
1. Hệ thống yêu cầu người dùng chọn chức năng muốn thực hiện
(thêm, xóa hay cập nhật thông tin môn học).
2. Sau khi người dùng cung cấp thông tin yêu cầu thì một trong các
luồng sau được thực hiện.
- Nếu người dùng chọn chức năng thêm thì luồng phụ
THEMMONHOC được thực hiện.
- Nếu người dùng chọn chức năng cập nhật thì luồng phụ
CAPNHATMONHOC được thực hiện.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 63 -
- Nếu người dùng chọn chức năng xóa thì luồng phụ
XOAMONHOC được thực hiện.
o Các luồng sự kiện phụ:
3.3.3.6.1 THEMMONHOC:
1. Hệ thống yêu cầu người dùng nhập vào thông tin môn học như:
tên môn học.
2. Sau khi người dùng cung cấp thông tin được yêu cầu, thì môn
học này được thêm vào hệ thống.
3.3.3.6.2 CAPNHATMONHOC:
1. Hệ thống hiển thị danh sách các môn học có sẵn trong hệ thống
lên màn hình và yêu cầu người dùng chọn kỳ thi cần sửa.
2. Người dùng chọn môn học. Hệ thống sẽ hiển thị thông tin của
môn học lên màn hình.
3. Người dùng dùng thay đổi các thông tin của môn học.
4. Sau khi người dùng thay đổi thông tin xong thì hệ thống sẽ cập
nhật thông tin của môn học này vào hệ thống.
3.3.3.6.3 XOAMONHOC:
1. Hệ thống hiển thị danh sách các môn học có sẵn trong hệ thống
lên màn hình và yêu cầu người dùng chọn kỳ thi cần xóa.
2. Hệ thống nhắc người dùng xác nhận thao tác xóa môn học.
3. Người dùng xác nhận xóa.
4. Hệ thống sẽ xóa thông tin của môn học này ra khỏi hệ thống.
o Các luồng sự kiện khác:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 64 -
Thao tác xóa bị hủy: nếu trong luồng phụ XOAMONHOC
người dùng quyết định không xóa kỳ thi này nữa, thao tác xóa
bị hủy và dòng sự kiện chính được bắt đầu lại từ đầu.
• Các yêu cầu đặc biệt:
Không có.
• Điều kiện tiên quyết:
Không có.
• Post-Conditions:
Nếu use case thành công, thông tin môn học sẻ được thêm, cập nhật
hoặc xóa khỏi hệ thống. Ngược lại, trạng thái của hệ thống không thay đổi.
• Điểm mở rộng:
Không có.
3.4 SƠ ĐỒ LỚP:
3.4.1 Sơ đồ:
Sơ đồ các lớp xử lý chính:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 65 -
Hình 3-2: Sơ đồ lớp xử lý chính
Sơ đồ các lớp truy cập cơ sở dữ liệu:
Hình 3-3: Sơ đồ lớp truy cập cơ sở dữ liệu:
Danh sách các lớp trong sơ đồ:
STT Tên Ý nghĩa Ghi chú – Minh họa1 Entity Lớp chung để vẽ các đối tượng
2 Text Văn bản.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 66 -
3 TextCell
Phần tử thông tin, gồm một hình chữ nhật trống để điền ký tự (chữ hoặc số) và một danh sách các ký tự để tô (như hình bên).
4 TextField Phần thông tin, gồm nhiều TextCell
5 ChoiceElement Phần từ lựa chọn, gồm một hình tròn và một phần văn bản kèm theo.
6 Choice Phần lựa chọn, gồm nhiều ChoiceElement.
7 AnswerCell Câu trả lời.
8 AnswerSheet Bảng trả lời, gồm nhiều AnswerCell
9 Line Đường thẳng
10 Rect Hình chữ nhật
11 Ellipse Hình ellipse
12 ImageObj Hình ảnh
13 Page Trang
14 Key Đáp án của một câu
15 AnswerKey Đáp án của một phần, gồm nhiều câu
16 Rate Khoảng tính điểm
17 Estimation Cách tính điểm.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 67 -
18 Sentence Một câu trong bài làm của thí sinh.
19 Answer Bài làm của thí sinh (gồm nhiều câu)
20 Recognition Nhận dạng
21 Candidate Thí sinh
22 Template Biểu mẫu
23 Examination Kỳ thi
24 Subject Môn học
25 QuestionSheet Đề thi
26 ExaminationPaper Bài làm của thí sinh Bảng 3-1: Danh sách các lớp trong sơ đồ lớp
3.4.2 Mô tả một số lớp chính:
3.4.2.1 Lớp Entity:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _location PointF Vị trí của đối tượng
2 _selected Bool Đối tượng có đang được chọn hay không
3 _size SizeF Kích thước của đối tượng
4 _rotate int Góc xoay của đối tượng Chỉ có 4 giá tri: 0, 90, 180, 270
5 _strValue string Tên của đối tượng Bảng 3-2: Danh sách thuộc tính lớp Entity
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có Entity Tạo bản sao của đối tượng
2 Draw Graphics Không Vẽ đối tượng lên Graphics
3 WriteToToXML XmlTextWriter, int,
Không Ghi nội dung đối
virtual
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 68 -
int tượng ra XML
4 ReadFromXML XmlTextReader, int, int
Không
Đọc thông tin thuộc tính của đối tượng từ nội dung XML
5 TestSelect PointF bool
Kiểm tra xem một điểm có thuộc đối tượng hay không.
Bảng 3-3: Danh sách phương thức lớp Entity
3.4.2.2 Lớp Text:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _text string Nội dung văn bản
2 _font Font Font chữ sử dụng cho văn bản
Bảng 3-4: Danh sách thuộc tính lớp Text
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có Entity Override. Tạo bản sao của đối tượng
2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics
3 WriteToToXML XmlTextWriter, int, int
Không Override. Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader, int, int
Text
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 69 -
Bảng 3-5: Danh sách phương thức lớp Text
3.4.2.3 Lớp TextCell:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _eKind CellStyle Loại của TextCell. (1)
2 _startChar char Chữ cái bắt đầu trong dãy chuỗi tô.
3 _endChar char Chữ cái kết thúc trong chuỗi tô.
4 _startNum char Số bắt đầu trong chuỗi tô.
5 _endNum char Số kết thúc trong chuỗi tô.
6 _fWidth float Chiều rộng của ô.
7 _fSpace float Khoảng cách từ ô viết đếm ký tự tô đầu tiên
8 _font Font Font chữ được sử dụng để vẽ dãy ký tự tô.
Bảng 3-6: Danh sách thuộc tính lớp TextCell
Ghi chú: (1): CellStyle là kiểu liệt kê (enum) tự tạo có các giá trị như sau:
• Number: các ký tự tô là số từ _startNum đến _endNum.
• Char: các ký tự tô là chữ cái từ _startChar đến _endChar.
• All: các ký tự tô bao gồm số từ _startNum đến _endNum và từ _startChar đến _endChar.
Minh họa:
Hinh 3-4: CellStyle: Char
Hinh 3-5: CellStyle: Number
Hinh 3-6: CellStyle: All
Danh sách các hàm thành phần:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 70 -
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có TextCell Tạo bản sao của đối tượng
2 Draw Graphics, float, float
Không Override. Vẽ đối tượng lên Graphics
3 WriteToToXML XmlTextWriter Không Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader TextCell
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
5 MeasureLength Graphics float Tính chiều cao của đối tượng.
Bảng 3-7: Danh sách phương thức lớp TextCell
3.4.2.4 Lớp TextField:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _lsCell ArrayList Danh sách cách TextCell
2 _fSpaceSquare float Khoảng cách giữa các TextCell
3 _fWidth float Chiều rộng của một TextCell
4 _strField string Tên trường trong cơ sở dữ liệu mà TextField này liên kết đến.
Bảng 3-8: Danh sách thuộc tính lớp TextField
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có Entity Override. Tạo bản sao của đối tượng
2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 71 -
3 WriteToToXML XmlTextWriter, int, int
Không Override. Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader, int, int
TextField
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
Bảng 3-9: Danh sách phương thức lớp TextField
3.4.2.5 Lớp ChoiceElement:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _fWidth float Đường kính đường tròn
2 _fSpace float Khoảng cách giữa đường tròn và văn bản
3 _strContent string Nội dung
4 _font Font Font chữ dùng để vẽ văn bản
5 _size SizeF Kích thước của đối tượng
6 _visible bool Cho biết có vẽ văn bản hay không
True: Vẽ. False: không.
Bảng 3-10: Danh sách thuộc tính lớp ChoiceElement
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có TextCell Tạo bản sao của đối tượng
2 Draw Graphics, float, float,
Không
Override. Vẽ đối tượng lên Graphics tại vị trí nào đó.
3 WriteToToXML XmlTextWriter Không Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader ChoiceElement
Static. Đọc thông tin thuộc tính của đối tượng từ nội
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 72 -
dung XML
5 MeasureLength Graphics SizeF Tính kích thước của đối tượng
Bảng 3-11: Danh sách phương thức lớp ChoiceElement
3.4.2.6 Lớp Choice:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _lsCell ArrayList Danh sách cách TextCell
2 _fSpaceSquare float Khoảng cách giữa các TextCell
3 _fWidth float Chiều rộng của một TextCell
4 _strField string Tên trường trong cơ sở dữ liệu mà TextField này liên kết đến.
Bảng 3-12: Danh sách thuộc tính lớp Choice
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có Entity Override. Tạo bản sao của đối tượng
2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics
3 WriteToToXML XmlTextWriter, int, int
Không Override. Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader, int, int
Choice
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
Bảng 3-13: Danh sách phương thức lớp Choice
3.4.2.7 Lớp AnswerCell:
Danh sách các biến thành phần:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 73 -
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú
1 _fWidth float Kích thước của ký tự (tính theo milimet)
2 _fSpace float Khoảng cách giữa số thứ tực câu và câu trả lời thứ nhất.
3 _iNum int Số thứ tự của câu
4 _iCount int Số câu trả lời
5 _fontNum Font Font được sử dụng để viết số
6 _font Font Font được sử dụng để viết các câu trả lời
7 _size SizeF Kích thước của đối tượng
8 _eAnswerStyle AnswerStyle Kiểu của đối tượng (1) Bảng 3-14: Danh sách thuộc tính lớp AnswerCell
Ghi chú: (1): AnswerStyle là kiểu liệt kê (enum) tự tạo có các giá trị như sau:
• Horizontal: các câu được viết theo dạng nằm ngang.
Hinh 3-7: AnswerStyles - Vertical
• Vertical: các câu được viết theo dạng thẳng đứng.
Hinh 3-8: AnswerStyle - Vertical
Danh sách các hàm thành phần:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 74 -
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có AnswerCell Tạo bản sao của đối tượng
2 Draw Graphics, float, float,
Không
Override. Vẽ đối tượng lên Graphics tại vị trí nào đó.
3 WriteToToXML XmlTextWriter Không Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader AnswerCell
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
5 MeasureLength Graphics, int SizeF Tính kích thước của đối tượng
Bảng 3-15: Danh sách phương thức lớp AnswerCell
3.4.2.8 Lớp AnswerSheet:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú
1 _eStyle AnswerStyle Kiểu của bảng trả lời (như đã giải thích trên).
2 _lsCell ArrayList Danh sách các AnswerCell
3 _fSpaceSquare float Khoảng các giữa các câu trả lời
4 _fWidth float Kích thước của ký tự (tính theo milimet)
Bảng 3-16: Danh sách thuộc tính lớp AnswerSheet
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có Entity Override. Tạo bản sao của đối tượng
2 Draw Graphics Không Override. Vẽ đối tượng lên
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 75 -
Graphics
3 WriteToToXML XmlTextWriter, int, int
Không Override. Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader, int, int
AnswerSheet
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
Bảng 3-17: Danh sách phương thức lớp AnswerSheet
3.4.2.9 Lớp Line:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú
1 _direction bool Chiều của đường thẳng True: dốc xuống. False: dốc lên
2 _width float Chiều rộng của nét vẽ đường thẳng.
Bảng 3-18: Danh sách thuộc tính lớp Line
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có Entity Override. Tạo bản sao của đối tượng
2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics
3 WriteToToXML XmlTextWriter, int, int
Không Override. Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader, int, int
Line
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
5 TestSelect PointF bool Override. Kiểm
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 76 -
tra một điểm có thuộc đường thẳng hay không.
6 TestCorner PointF byte
Kiểm tra xem điểm đó thuộc góc nào của đường thẳng
0: không 1: trái 2: phải
Bảng 3-19: Danh sách phương thức lớp Line
3.4.2.10 Lớp Rect:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú
1 _bFill bool Hình chữ nhật có tô hay không.
True: tô False: không
2 _width float Chiều rộng của nét vẽ hình chữ nhật.
Bảng 3-20: Danh sách thuộc tính lớp Rect
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có Entity Override. Tạo bản sao của đối tượng
2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics
3 WriteToToXML XmlTextWriter, int, int
Không Override. Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader, int, int
Rect
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
5 TestCorner PointF byte
Kiểm tra xem điểm đó thuộc góc nào của đường thẳng
0: không 1: trên, trái 2: trên,
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 77 -
phải 3: dưới, trái 4: dưới, phải
Bảng 3-21: Danh sách phương thức lớp Rect
3.4.2.11 Lớp Ellipse:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú
1 _bFill bool Ellipse có tô hay không. True: tô False: không
2 _width float Chiều rộng của nét vẽ ellipse.
Bảng 3-22: Danh sách thuộc tính lớp Ellipse
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có Entity Override. Tạo bản sao của đối tượng
2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics
3 WriteToToXML XmlTextWriter, int, int
Không Override. Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader, int, int
Ellipse
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
5 TestCorner PointF byte
Kiểm tra xem điểm đó thuộc góc nào của đường thẳng
0: không 1: trên, trái 2: trên, phải 3: dưới,
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 78 -
trái 4: dưới, phải
Bảng 3-23: Danh sách phương thức lớp Ellipse
3.4.2.12 Lớp ImageObj:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _img Image Ảnh của đối tượng
Bảng 3-24: Danh sách thuộc tính lớp ImageObj
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Clone Không có Entity Override. Tạo bản sao của đối tượng
2 Draw Graphics Không Override. Vẽ đối tượng lên Graphics
3 WriteToToXML XmlTextWriter, int, int
Không Override. Ghi nội dung đối tượng ra XML
4 ReadXML XmlTextReader, int, int
ImageObj
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
Bảng 3-25: Danh sách phương thức lớp ImageObj
3.4.2.13 Lớp Page:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _nLeftMargin int Lề trái của trang
2 _nRightMargin int Lề phải của trang
3 _nTopMargin int Lề trên của trang
4 _nBottomMargin int Lề dưới của trang
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 79 -
5 _nWidth int Chiều rộng của trang
6 _nHeight int Chiều dài của trang
7 _nNumPage byte Số thứ tự của trang
8 _ePageStyle PageStyle Kiểu trang (1)
9 _lsObject ArrayList Danh sách các đối tượng của trang
Bảng 3-26: Danh sách thuộc tính lớp Page
Ghi chú: (1): PageStyle là kiểu liệt kê (enum) gồm những giá trị mô tả khổ giấy như sau:
A4: khổ giấy A4 Booklet: khổ giấy ½ A4 Custom: tùy chọn
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Draw Graphics, bool
Không Các đối tượng lên Graphics.
2 DrawCorner Graphics
Bảng 3-27: Danh sách phương thức lớp Page
3.4.2.14 Lớp Key:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _iNum int Số thứ tự của câu
2 _fMark float Điểm của câu
3 _keys bool[] Mảng lưu đán án.
Vị trí câu đúng lưu giá trị True, ngược lại là False.
Bảng 3-28: Danh sách thuộc tính lớp Key
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 80 -
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML
2 ReadXML XmlTextReader Key
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
3 FromAnswerCell AnswerCell Key Tạo ra đối tượng Key từ AnswerCell
Bảng 3-29: Danh sách phương thức lớp Key
3.4.2.15 Lớp AnswerKey:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú
1 _strField string Tên của AnswerSheet có đáp án này.
2 _lsAnswer ArrayList Danh sách các Key Bảng 3-30: Danh sách thuộc tính lớp AnswerKey
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML
2 ReadXML XmlTextReader Key
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
3 FromAnswerSheet AnswerSheet AnswerKey
Tạo ra đối tượng AnswerKey từ AnswerSheet
Bảng 3-31: Danh sách phương thức lớp AnswerKey
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 81 -
3.4.2.16 Lớp Rate:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _iFrom int Mức dưới của số câu đúng
2 _iTo int Mức trên của số câu đúng
3 _fMark float Điểm số của câu Bảng 3-32: Danh sách thuộc tính lớp Rate
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML
2 ReadXML XmlTextReader Key
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
3 Clone Không Rate Tạo bản sao của đối tượng
Bảng 3-33: Danh sách phương thức lớp Rate
3.4.2.17 Lớp Estimation:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú
1 _bType bool Kiểu đánh giá
- True: đánh giá theo cách tính điểm là tổng số điểm của các câu đúng. - False: tính điểm dựa theo khoảng câu đúng đã định. VD: 35-40: 10đ 30-34: 9đ
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 82 -
2 _lsRate ArrayList Danh sách các định mức Bảng 3-34: Danh sách thuộc tính lớp Estimation
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML
2 ReadXML XmlTextReader Estimation
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
3 GetMark int float Lấy điểm dựa vào số câu đúng
Bảng 3-35: Danh sách phương thức lớp Estimation
3.4.2.18 Lớp Sentence:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú 1 _iNum int Số thứ tự câu
2 _fMark float Điểm của câu
3 _keys bool[] Danh sách các trả lời của thí sinh.
Ứng với vị trí thí sinh chọn là True, ngược lại là False.
4 _bResult bool Kết quả của câu trả lời của thí sinh
True: đúng False: sai.
Bảng 3-36: Danh sách thuộc tính lớp Sentence
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML
2 ReadXML XmlTextReader Sentence Static. Đọc thông tin thuộc tính của đối
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 83 -
tượng từ nội dung XML
Bảng 3-37: Danh sách phương thức lớp Sentence
3.4.2.19 Lớp Answer:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú
1 _strField string Tên của AnswerKey có câu trả lời này.
2 _lsAnswer ArrayList Danh sách các Sentence Bảng 3-38: Danh sách thuộc tính lớp Answer
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 WriteToToXML XmlTextWriter Không Override. Ghi nội dung đối tượng ra XML
2 ReadXML XmlTextReader Key
Static. Đọc thông tin thuộc tính của đối tượng từ nội dung XML
3 FromAnswerKey AnswerKey Answer Tạo ra đối tượng Answer từ AnswerKey
Bảng 3-39: Danh sách phương thức lớp Answer
3.4.2.20 Lớp Recognition:
Danh sách các biến thành phần:
STT Tên Kiểu/Lớp Ý nghĩa Ghi chú
1 _bmpSrc Bitmap Ảnh chứa bài làm của thí sinh.
2 _dtInfo DataTable Bảng chứa thông tin của thí sinh và bài làm của thí sinh sau khi được chấm.
3 _estimation Estimation Cách tính điểm của bài thi.
4 _hashAnsKey Hashtable Danh sách đáp án của bài
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 84 -
thi đó. Bảng 3-40: Danh sách thuộc tính lớp Recognition
Danh sách các hàm thành phần:
STT Tên Tham số Trả về Xử lý Ghi chú
1 Start Không Không Khởi động quá trình chấm điểm
2 PreProcessing Không Không
Tô màu viền đen và biến đổi ảnh thành ảnh nhị phân
3 CornerDetection Không Không Tìm độ lệch của ảnh, xoay ảnh, và xén ảnh
4 RecogTextField
Bitmap, TextField, ref string, ref string
Không
Lấy câu người dùng viết và câu người dùng tô trong TextField.
5 RecogChoice Bitmap, Choice
string
Lấy những lựa chọn của người dùng trong phần Choice
6 RecogAnswerSheet Bitmap, AnswerSheet, ref float
Answer
Nhận bài làm của thí sinh trong bảng AnswerSheet và tính điểm cho thí sinh đó.
7 IsFill Bitmap bool Kiểm tra xem ảnh có được tô hay không
8 ExtractBitmap Entity Bitmap Lấy ra phần ảnh của đối tượng đó.
Bảng 3-41: Danh sách phương thức lớp Recognition
3.5 Thiết kế cơ sở dữ liệu:
3.5.1 Sơ đồ:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 85 -
Hình 3-9: Mô hình cơ sở dữ liệu
3.5.2 Mô tả các bảng:
3.5.2.1 MauThi:
STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaMau Autonumber Mã mẫu
2 TenMau Text (50) Tên mẫu
3 NoiDung Memo Nội dung của mẫu. Là chuỗi XML mô tả thông tin của mẫu.
(1)
Bảng 3-42: Danh sách các trường trong bảng MauThi
Ghi chú:
(1): Mỗi biểu mẫu được xem là một “Document” gồm nhiều trang “Page”.
Mỗi trang lại gồm các đối tượng khác. Sau đây là cách thức lưu trữ một số đối
tượng như đã phân tích trên.
a) Text:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 86 -
<Text left="10.92917" top="6.166666" rotate="0" size-
width="11.68376" size-height="6.210938" caption="Text" font-
name="Arial" font-size="5" font-style="Regular" />
b) TextField:
<TextField left="10.13542" top="20.18958" rotate="0" size-
width="20" size-height="125.0898" width="4" space="0"
value="TextField1" field="">
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
</TextField>
c) AnswerSheet:
<AnswerSheet left="52.46875" top="15.95625" rotate="0" size-
width="25.03646" size-height="25.84375" style="Horizontal"
space="2" width="4" start="1" value="AnswerSheet1">
<AnswerCell space="1" count="4" />
<AnswerCell space="1" count="4" />
<AnswerCell space="1" count="4" />
<AnswerCell space="1" count="4" />
</AnswerSheet>
d) Choice:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 87 -
<Choice left="55.11459" top="63.58125" rotate="0" size-
width="23.69694" size-height="22" hspace="2" vspace="2" width="4"
font-name="Arial" font-size="5" font-style="Regular"
value="Choice1" visible="True">
<ChoiceElement space="2" content="Choice" />
<ChoiceElement space="2" content="Choice" />
<ChoiceElement space="2" content="Choice" />
<ChoiceElement space="2" content="Choice" />
</Choice>
e) Line:
<Line left="92.68542" top="14.10417" rotate="0" size-
width="16.13958" size-height="27.25208" direction="True"
width="0.1" />
f) Rect:
<Rect left="92.68542" top="55.64375" rotate="0" size-
width="26.72291" size-height="14.81667" width="0.1" fill="False"
/>
g) Ellipse:
<Ellipse left="94.80208" top="83.16042" rotate="0" size-
width="26.9875" size-height="14.55209" width="0.1" fill="False" />
h) Page:
<Page num="1" style="A4" width="210" height="297" left="15"
right="15" top="15" bottom="15">
<Text left="10.92917" top="6.166666" rotate="0" size-
width="11.68376" size-height="6.210938" caption="Text" font-
name="Arial" font-size="5" font-style="Regular" />
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 88 -
<TextField left="10.13542" top="20.18958" rotate="0" size-
width="20" size-height="125.0898" width="4" space="0"
value="TextField1" field="">
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
<TextCell style="Char" startchar="A" endchar="Z"
startnum="0" endnum="9" symbol=" " />
</TextField>
<AnswerSheet left="52.46875" top="15.95625" rotate="0"
size-width="25.03646" size-height="25.84375" style="Horizontal"
space="2" width="4" start="1" value="AnswerSheet1">
<AnswerCell space="1" count="4" />
<AnswerCell space="1" count="4" />
<AnswerCell space="1" count="4" />
<AnswerCell space="1" count="4" />
</AnswerSheet>
<Choice left="55.11459" top="63.58125" rotate="0" size-
width="23.69694" size-height="22" hspace="2" vspace="2" width="4"
font-name="Arial" font-size="5" font-style="Regular"
value="Choice1" visible="True">
<ChoiceElement space="2" content="Choice" />
<ChoiceElement space="2" content="Choice" />
<ChoiceElement space="2" content="Choice" />
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 89 -
<ChoiceElement space="2" content="Choice" />
</Choice>
<Line left="92.68542" top="14.10417" rotate="0" size-
width="16.13958" size-height="27.25208" direction="True"
width="0.1" />
<Rect left="92.68542" top="55.64375" rotate="0" size-
width="26.72291" size-height="14.81667" width="0.1" fill="False"
/>
<Ellipse left="94.80208" top="83.16042" rotate="0" size-
width="26.9875" size-height="14.55209" width="0.1" fill="False" />
</Page>
i) Cấu trúc lưu trữ biểu mẫu:
<Document use-hidden-color="False" hidden-color="Red">
<Page num="1" style="A4" width="210" height="297" left="15"
right="15" top="15" bottom="15">
…
</Page>
…
</Document>
3.5.2.2 KyThi:
STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaKT Autonumber Mã kỳ thi
2 TenKT Text (50) Tên kỳ thi
3 Thang Number Tháng diễn ra kỳ thi 0< Thang <13
4 Nam Number Năm diễn ra kỳ thi Bảng 3-43: Danh sách các trường trong bảng KyThi
3.5.2.3 MonThi:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 90 -
STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaMT Autonumber Mã môn thi
2 MaMon Text (20) Mã môn thi (do người dùng ấn định)
3 TenMT Text (50) Tên môn Bảng 3-44: Danh sách các trường trong bảng MonThi
3.5.2.4 DeThi:
STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaDe AutoNumber Mã đề thi
2 MaMau Number Mã mẫu thi
3 MaKT Number Mã kỳ thi
4 MaMT Number Mã môn thi
5 NgayThi Date Ngày thi
6 GhiChu Text (50) Thông tin ghi chú của đề thi.
7 NoiDungDA Memo Cấu trúc XML mô tả nội dung của đáp án. (1)
Bảng 3-45: Danh sách các trường trong bảng DeThi
Ghi chú:
(1): Cấu trúc lưu trữ đáp án gồm có: cách tính điểm và các đáp án của các câu.
<AnswerKeys>
<Estimation type="0">
<Rate from="1" to="10" mark="5" />
<Rate from="11" to="20" mark="10" />
…
</Estimation>
<AnswerKey name="AnswerSheet3">
<Key num="61" mark="1" count="4" value="0000" />
<Key num="62" mark="1" count="4" value="0000" />
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 91 -
<Key num="63" mark="1" count="4" value="0000" />
<…>
</AnswerKey>
…
</AnswerKeys>
3.5.2.5 BaiLam:
STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaBL Autonumber Mã bài làm
2 MaDT Long Mã đề thi
3 MaTS Text (20) Mã thí sinh Được đọc ra từ bài làm của thí sinh.
4 HoTen Text(30) Họ tên thí sinh. Được đọc ra từ bài làm của thí sinh
5 ChiTietBaiLam Memo Thông tin về bài làm của thí sinh được lưu dưới dạng XML
(1)
6 GhiChu Memo Các thông tin thêm về bài làm của thí sinh.
Bảng 3-46: Danh sách các trường trong bảng BaiLam
Ghi chú:
(1): cấu trúc bài làm gồm các trả lời trong từng câu của thí sinh và kết quả
đúng sai của từng câu.
<ExaminationPaper>
<Answer name="AnswerSheet3">
<Sentence num="61" mark="1" count="4" value="0000"
result=”true” />
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 92 -
<Sentence num="62" mark="1" count="4" value="0000"
result=”false” />
<Sentence num="63" mark="1" count="4" value="0000"
result=”true” />
<…>
</Answer>
…
</ExaminationPaper>
3.5.2.6 ThiSinh:
STT Thuộc tính Kiểu Diễn giải Ghi chú 1 MaTS Text (20) Mã thí sinh
2 HoTen Text (50) Họ tên thí sinh
3 NgaySinh Date Ngày sinh
4 GioiTinh Yes/No Giới tính Yes: Nam No: Nữ
5 GhiChu Memo Thông tin thêm của thí sinh.
Bảng 3-47: Danh sách các trường trong bảng ThiSinh
3.6 Thiết kế giao diện một số màn hình chính:
3.6.1 Màn hình thiết kế biểu mẫu:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 93 -
Hình 3-10: Màn hình thiết kế biểu mẫu
3.6.2 Màn hình chấm điểm:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 94 -
Hình 3-11 : Màn hình chấm điểm tự động
3.7 Cài đặt:
Phần mềm “Thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm” được
phát triển sử dụng các công cụ và môi trường sau:
• Công cụ phân tích và thiết kế:
o Rational Rose 2002
o Microsoft Visio 2003
• Môi trường lập trình:
o Visual Studio .Net 2003
• Cơ sở dữ liệu:
o Microsoft Access XP
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 95 -
Chương 4: THỰC NGHIỆM, ĐÁNH GIÁ VÀ TỔNG KẾT
4.1 Thực nghiệm:
Chương trình đã được ứng dụng để thiết kế thử các biểu mẫu quen thuộc, cụ
thể là 3 mẫu của kỳ thi TOEFL, kỳ thi sát hạch chuẩn kỹ sư Nhật Bản, cũng như đề
thi trắc nghiệm của một số môn học trong Khoa...
Đồng thời, nhóm cũng đã thực hiện việc thiết kế mẫu cho kỳ thi kiểm tra
giữa kỳ môn Mạng không dây và an ninh mạng được tổ chức vào ngày 21/07/2005.
4.2 Kết quả
4.2.1 Phần thiết kế các biểu mẫu:
Chương trình có khả năng thực hiện thiết kế được tương tự hầu hết các biểu
mẫu thông dụng với thời gian tương đối nhanh, và dễ dùng.
Sau đây là mẫu thi Institutional TOEFL thực tế và mẫu được thiết kế từ
chương trình.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 96 -
Hình 4.1: mẫu thi Institutional TOEFL thực tế
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 97 -
Hình 4-2: mẫu TOEFL được thiết kết bởi chương trình
Thời gian để thực hiện thiết kế mẫu thi TOEFL đo được là 1,5 tiếng. Mẫu đề
của kỳ thi sát hạch chuẩn kỹ sư Nhật Bản được soạn trong thời gian ngắn hơn, chỉ
40 phút.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 98 -
Hình 4-3: Mẫu của kỳ thi sát hạch chuẩn kỹ sư Nhật Bản.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 99 -
Và sau đây là mẫu đề thi được sử dụng trong kỳ thi Mạng không dây và an
ninh mạng tổ chức ngày 21/07/2005.
Hình 4-4: Mẫu đề thi Mạng không dây và an ninh mạng
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 100 -
4.2.2 Phần chấm điểm tự động:
Chúng em đã thực hiện việc chấm bài thi qua 2 cách thức:
Chấm bằng tay bằng cách sử dụng bảng đục lỗ.
Chấm bằng chương trình chấm điểm tự động.
Với mỗi cách chấm được thực hiện bởi 2 người và thu được kết quả như sau:
- Về mặt thời gian:
Chấm thủ công: thời gian tổng cộng là 4 giờ 30 phút. Tuy nhiên đây
chỉ là khoảng thời gian để chấm bài chứ chưa kể đến việc ghi lại
thông tin thí sinh và tạo bảng điểm.
Chấm bằng chương trình chấm điểm tự động: Thời gian tổng cộng là
2 giờ 26 phút. Trong đó thời gian để scan vào là 2 giờ 15 phút và thời
gian để nhận dạng là 278 bài là 10 phút 51 giây. Ta thấy rằng việc
chấm điểm bằng phầm mềm sở dĩ thời gian lâu là do thời gian scan (2
giờ 15 phút chiếm 92.56% thời gian).
- Về kết quả:
Chấm thủ công: số bài chấm sai là 24/278 bài chiếm tỉ lệ 8.63%.
Nguyên nhân của việc chấm sai này là do người chấm nhầm lẫn.
Trong đó số câu chấm sai là 33/(70*278) câu (mỗi đề thi có 70 câu)
chiếm tỉ lệ 0.17%. Vậy tỉ lệ chấm chính xác của phương pháp này là
99.83%.
Chấm bằng chương trình chấm điểm tự động: số bài chấm sai 11/278
bài chiếm tỉ lệ 3.96%. Tỉ lệ chấm chính xác của cách này là 96.04%.
Trong đó số câu bị chấm sai là 17/(70*278) câu chiếm tỉ lệ 0.09%.
Vậy tỉ lệ chấm chính xác của phương pháp này là 99.1%. Tuy nhiên
việc chấm sai này chủ yếu tập trung vào 3 nguyên nhân:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 101 -
Thí sinh dùng bút chì tô quá nhạt làm chương trình không thể nhận
ra được vị trí tô.
Thí sinh đã xóa không kỹ những câu chọn sai và chương trình đã
hiểu nhầm nơi đó vẫn có tô.
Thí sinh tô không trọn vùng tô hoặc tô lem ra ngoài vùng tô.
Như vậy ta có thể thấy nguyên nhân sai không phải là do lỗi
chương trình mà do thí sinh tô không đúng qui cách. Nếu các bài làm
được tô đúng qui cách thì tỉ lệ này sẽ còn cao hơn nhiều.
Chấm bằng máy Chấm bằng tay
- Thời gian: 2 giờ 26 phút
(scan: 2 giờ 15 phút, chấm điểm: 10 phút
51 giây).
- Thời gian: 4 giờ 30 phút
(chưa kể thời gian lấy thông tin của thí
sinh và lập bảng điểm).
- Số bài sai: 11/278. Chiếm tỉ lệ 3.96%.
Nguyên nhân: do bài làm tô không đủ
đậm hay bài thi bị dơ do tẩy xóa không
kỹ.
- Số bài sai: 24/278. Chiếm tỉ lệ 8.6%.
Nguyên nhân: do người chấm nhầm lẫn.
- Số câu sai: 17/(70*278). Chiếm tỉ lệ
0.09%.
- Số câu sai: 33/(70*278). Chiếm tỉ lệ
0.17%. Bảng 4-1 : So sánh chấm bằng tay và chấm bằng máy
4.3 Đánh giá
Kết quả thực hiện của cả 2 chương trình thiết kế và chấm điểm tự động là rất
khả quan, tốc độ và kết quả chấp nhận được.
Tuy nhiên, trong phần chấm điểm tự động, khuyến nghị người dùng nên quét
bài thi có góc lệch không quá 5 độ, độ phân giải từ 200 DPI đến 300 DPI`
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 102 -
Ngoài ra, do chương trình chấm điểm chuyển các cảnh báo về các dạng
không hợp lệ trong bài thi ra phần thông tin tham khảo, cho nên kết quả chấm điểm
của bài thi vẫn không bị ảnh hưởng. Cụ thể như phần so sánh giữa chữ viết tay với
vị trí tô: Nếu không khớp, chúng vẫn không làm ảnh hưởng đến kết quả làm bài,
thay vào đó sẽ có những thông tin tham khảo thêm về vị trí sai giữa chữ viết tay và
vùng tô, đồng thời bài làm được đánh dấu cần xem lại.
4.4 Kết luận
Luận văn đã đạt được một số mục tiêu đề ra ban đầu. Đầu tiên, phần mềm
này là một giải pháp thi trắc nghiệm có thể áp dụng ngay, cụ thể là Khoa Công
Nghệ Thông Tin chúng ta với giá thành khá rẻ. Tiếp đến, phần mềm cho phép linh
động tạo các mẫu đề thi theo nhu cầu.
Tuy nhiên, phần mềm thực hiện vẫn còn một số hạn chế cần được khắc phục.
Do nhận dạng chữ viết tay in hiện chỉ cho kết quả đúng từ 70% đến 80%, nên kết
quả nhận dạng này chưa có giá trị sử dụng trong việc kiểm tra tính hợp lệ của bài thi
mà chỉ được xem là thông tin tham khảo. Ngoài ra, phần mềm chỉ có thể nhận dạng
đúng đối với các bài thi còn nguyên vẹn (đặc biệt là các đánh dấu ở 4 góc) và không
được quét vào mà có góc lệch quá 5 độ.
4.5 Hướng phát triển:
Trong tương lai, phần mềm cần được kết hợp với các ngân hàng câu hỏi trắc
nghiệm. Khi thực hiện được điều này, biểu mẫu sẽ có thêm phần nội dung các câu
hỏi, và đáp án được tự động tạo ra theo dữ liệu có sẵn trong ngân hàng câu hỏi. Do
đó, tăng thêm tính hiệu quả của chương trình, hỗ trợ tối đa người dùng trong việc
thiết kế một đề thi trắc nghiệm hoàn chỉnh, bao gồm phần trả lời và phần đề thi.
Tiếp đến, chương trình cần được cải tiến các thuật toán nhận dạng góc, nhằm
tăng tốc độ thực hiện chấm bài và cho phép bài thi quét vào có dạng tổng quát hơn
(tức được phép lệch nhiều hơn).
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 103 -
Thêm các thông tin cảnh báo về bài làm nếu có gì nghi ngờ nhằm giúp người
dùng có thể kiểm tra thông tin được dễ dàng. Cuối cùng, phần nhận dạng chữ viết
tay in cần được xem xét lại cách thực hiện để nâng cao hiệu suất nhận dạng hơn,
góp phần vào việc kiểm tra tính hợp lệ cũng như cung cấp các thông tin kèm theo
cho bài làm.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 104 -
PHỤ LỤC
PL.1 Các thao tác xử lý ảnh cơ bản:
PL.1.1 Làm xám ảnh:
Cách thực hiện:
Mỗi ảnh bitmap bao gồm nhiều pixel. Mỗi pixel của ảnh lại bao gồm 3 giá trị
Red, Green và Blue hợp lại tạo nên màu sắc thể hiện của pixel đó. Cho nên, mỗi
pixel gồm 3 byte, với mỗi byte lưu các giá trị riêng biệt cho từng sắc Red, Green và
Blue riêng biệt mà ta lần lượt đặt tên là byte RED, byte GREEN và byte BLUE.
Quá trình làm xám ảnh chuyển giá trị mỗi pixel của ảnh gốc từ 3 byte về thành một
byte, trong đó giá trị của byte kết quả được tính bằng các công thức tuỳ theo cách
làm xám ảnh được dùng.
Ví dụ, đối với cách làm xám ảnh BT709 (được áp dụng cho đề tài), ta có
công thức tính pixel kết quả như sau:
pixel kết quả = (0.2125 * byte RED + 0.7154 * byte GREEN + 0.0721 * byte BLUE)
Trong khi đó, cách làm xám ảnh RMY lại có công thức tính pixel kết quả là:
pixel kết quả = (0.5 * byte RED + 0.419 * byte GREEN + 0.081 * byte BLUE)
Do đó ảnh sau khi thực hiện xám ảnh sẽ có mỗi pixel chỉ gồm một byte là giá
trị tính từ 3 byte của pixel tương ứng trong ảnh ban đầu.
.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 105 -
Hình PL-1: ảnh trước khi được làm xám
Hình PL-2: ảnh sau khi được làm xám
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 106 -
PL.1.2 Chuyển sang ảnh nhị phân
Cách thực hiện:
Quét qua toàn bộ pixel của ảnh, nếu giá trị pixel nằm trong khoảng quy định
thì chuyển màu tại pixel đó thành trắng, ngược lại thì chuyển thành đen.
Thuật toán:
Đầu tiên kiểm tra xem ảnh cần chuyển sang nhị phân có được làm
xám ảnh chưa?
Nếu chưa thì thực hiện việc làm xám ảnh trước.
Sau đó, quét tất cả các pixel của ảnh:
nếu màu của pixel nằm trong khoảng quy định (mặc định giá trị
max của khoảng quy định là 255 và giá trị min là 128) thì
chuyển sang trắng (tức giá trị của pixel là 255)
còn ngược lại thì chuyển thành đen (giá trị là 0).
Ý nghĩa:
Chuyển ảnh từ dạng ảnh xám sang thành dạng ảnh trắng đen bằng cách nếu
tại một pixel, màu lợt (hơn giá trị cụ thể do ta quy định) thì trở thành màu trắng, còn
không thì chuyển sang đen.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 107 -
Hình PL-3: ảnh xám trước khi được chuyển thành ảnh nhị phân
Hình PL-4: ảnh sau khi chuyển thành ảnh nhị phân với ngưỡng là 128
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 108 -
PL.1.3 Xoay ảnh.
Hình PL-5: Bài thi trong file ảnh bị lệch.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 109 -
Hình PL-6: Bài thi sau khi xoay sẽ không còn bị lệch.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 110 -
PL.1.4 Biến đổi tỉ lệ ảnh (Scale)
Phép biến đổi tỉ lệ làm thay đổi kích thước của ảnh.
Hình PL-7: ảnh trước khi biến đổi tỉ lệ
Hình PL-8: ảnh sau khi biến đổi tỉ lệ còn 60% so với ảnh ban đầu
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 111 -
PL.2 Lý thuyết về mạng nơron
PL.2.1 Đặt vấn đề
Với một yêu cầu cụ thể và tập mẫu cho sẵn trong đó tập mẫu là các dữ liệu
được thu thập từ thực tế, có đầy đủ điều kiện đầu vào cho yêu cầu (được gọi là biến
độc lập) cũng như kết quả đầu ra (được gọi là biến phụ thuộc). Nhiệm vụ của chúng
ta là tìm ra bài giải cho bài toán trên.
PL.2.2 Định nghĩa
Mạng nơron là công cụ dùng để tìm gần đúng nhất bài giải của một vấn đề
bất kỳ mà không cần quan tâm đến nội dung chi tiết bên trong của bài toán. Để làm
được điều này, mạng nơron cần phải trải qua một quá trình, gọi là quá trình học
được thực hiện lặp đi lặp lại trên tập mẫu có sẵn. Sau khi được học xong, mạng
nơron có thể giải quyết các vấn đề liên quan đến bài toán đã cho cũng như các bài
toán cùng loại tương tự với độ chính xác chấp nhận được.
Mạng nơron được ứng dụng trong các bài toán nhận dạng, phân lớp như nhận
dạng mặt người, nhận dạng ký tự...
PL.2.3 Sơ lược cấu tạo của mạng nơron
Một mạng nơron tổng quát là một mạng có n (n>2) lớp: lớp thứ nhất gọi là
lớp nhập, lớp thứ n gọi là lớp xuất, và (n-2) lớp ẩn. Tuy nhiên với đề tài này, để đơn
giản, mạng nơrơn bao gồm nhiều nút được phân trong 3 lớp: lớp nhập, lớp ẩn và lớp
xuất. Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập và chuyển vào mạng.
Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp mà ta gọi là tổng trọng hoá,
và chuyển kết quả cho các nút trong lớp ẩn. Gọi là ẩn vì các nút trong lớp này chỉ
liên lạc với các nút trong các lớp nhập và lớp xuất, và chỉ người thiết kế mạng biết
lớp này (người sử dụng mạng sẽ không biết lớp này). Tương tự, các nút trong lớp
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 112 -
xuất cũng nhận các tín hiệu tổng trọng hoá từ các nút ẩn. Mỗi nút trong lớp xuất
tương ứng với một đầu ra (tức là một biến phụ thuộc).
Số nút của lớp nhập và lớp xuất là do bài toán quy định, còn số nút của lớp
ẩn do người thiết kế mạng quy định.
Tuỳ theo bài toán cần giải quyết mà quyết định số nút ở lớp xuất (tức số đầu
ra). Chẳng hạn với bài toán nhận dạng các chữ số thì ta xây mạng nơron với 10 nút
xuất, hoặc nhận dạng chữ thì mạng cần 24 nút xuất.
Trong mạng nơron, mỗi nút của lớp thứ i (0<i<n) liên kết với mọi nút ở lớp
thứ (i+1) thông qua các cung, và các nút trong cùng lớp không liên kết với nhau.
Mỗi cung trong mạng được gắn với một trọng số w.
PL.2.4 Quá trình ánh xạ và quá trình học của mạng nơ ron
Một mạng nơron chỉ có thể ở một trong hai trạng thái: trạng thái ánh xạ và
trạng thái học.
PL.2.4.1 Quá trình ánh xạ
Trong trạng thái ánh xạ, thông tin lan truyền từ lớp nhập đến lớp xuất và
mạng thực hiện tính toán để tính giá trị các biến phụ thuộc (đầu ra) dựa vào các biến
độc lập được cho (đầu vào): Y=NN(X). Mạng xử lý mỗi lần một mẫu để tính
Y=NN(X).
Đầu tiên, giá trị của các biến độc lập được chuyển cho lớp nhập của mạng.
Các nút nhập không tính toán gì cả. Mỗi nút nhập chuyển giá trị của nó cho tất cả
các nút ẩn. Mỗi nút ẩn tính tổng trọng hoá của tất cả dữ liệu nhập bằng cách cộng
dồn tất cả các tích giữa giá trị nút nhập với trọng số của cung liên kết giữa nút nhập
đó và nút ẩn.
Kế tiếp, một hàm truyền được áp dụng trên tổng trọng hoá này cùng với một
ngưỡng của nút ẩn đó để cho ra giá trị thực của nút ẩn. Hàm truyền chỉ đơn giản nén
giá trị vào một miền giới hạn nào đó.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 113 -
Sau khi nén tổng trọng hoá thành giá trị cụ thể, đến lượt mình, mỗi nút ẩn sẽ
gửi kết quả đến tất cả các nút xuất.
Và mỗi nút xuất thực hiện các thao tác tương tự như đã thực hiện trong nút
ẩn để cho giá trị kết xuất của nút xuất. Giá trị của các nút xuất chính là giá trị thực,
nghĩa là giá trị của các biến phụ thuộc cần xác định.
Như vậy, bản chất của quá trình ánh xạ là xác định các đầu ra từ các đầu vào
tuỳ thuộc vào giá trị của các trọng số trong mạng.
PL.2.4.2 Quá trình học
Trong trạng thái học (còn đựơc gọi là luyện mạng), thông tin được lan truyền
theo 2 chiều nhiều lần để học các trọng số.
Cụ thể:
Quá trình luyện mạng đựơc bắt đầu bằng mạng với các trọng số tuỳ ý và tiến
hành lặp đi lặp lại 2 việc: ánh xạ và lan truyền ngược sai số. Mỗi lần lặp được gọi là
một thế hệ. Trong mỗi thế hệ, mang hiệu chỉnh các trọng số sao cho sai số giảm dần
(sai số là độ lệch giữa các kết xuất thực và các kết xuất đích đã có sẵn trong tập
mẫu). Tiến trình điều chỉnh nhiều lần giúp cho trọng dần dần đạt được tập hợp các
giá trị tối ưu. Thường mạng cần thực hiện nhiều thế hệ trước khi việc luyện mạng
hoàn tất.
Để cập nhật trọng trong mỗi thế hệ, mạng phải xử lý tất cả các mẫu trong tập
mẫu. Đối với từng mẫu, mạng thực hiện như sau:
Trước tiên, mạng thực hiện quá trình lan truyền tiến, nghĩa là mạng ánh xạ
các biến nhập của mẫu hiện hành thành các giá trị xuất bằng cách sử dụng các trọng
hiện hành. Ở những thế hệ đầu, các kết xuất thường chưa chính xác vì trọng ban đầu
do ta chọn ngẫu nhiên, chưa có gì là đúng.
Kế tiếp, sai số được tính dựa trên giá trị của kết xuất và giá trị đích lấy từ tập
mẫu. Trên cơ sở sai số tính đuợc, mạng sẽ cập nhật lại các trọng số theo nguyên tắc
lan truyền ngược sai số (gọi là giai đoạn lan truyền ngược, chi tiết sẽ được nói rõ ở
phần sau).
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 114 -
Như vậy, để học mỗi mẫu, mạng thi hành 2 bước: lan truyền tiến – thực hiện
ánh xạ và lan truyền ngược sai số - cập nhật các trọng.
Quá trình học được diễn tả qua đoạn mã giả như sau:
Lặp
{
Duyêt qua toàn bộ tập mẫu, với một mẫu:
{
Lan truyền tiến
Tính sai số và lan truyền ngược sai số
}
Cập nhật lại trọng số của mạng nơron
}
Ta thấy ở đây chương trình có một vòng lặp vô tận. Do đó trong thực tế ta
phải thêm vào điều kiện dừng. Giải thích về đoạn mã giả trên như sau:
Tại mỗi bước lặp, chương trình duyệt qua tất cả các mẫu. Với mỗi mẫu, ta
thực hiện giai đoạn lan truyền tiến, nghĩa là xác định giá trị xuất dựa trên các trọng
số hiện có của mạng. Sau đó thực hiện tính sai số để từ đó xác định luợng thay đổi
trong mỗi trọng dựa trên mẫu này và tích luỹ toàn bộ thay đổi cần thiết của mạng.
Sau khi xử lý qua tất cả các mẫu, ta cập nhật lại trọng số dựa trên các thay đổi đã
tích luỹ được. Một lần lặp mới lại được bắt đầu.
Trong quá trình học, ta cũng có thể cho cập nhật các trọng khi xử lý từng
mẫu thay vì cập nhật trọng số sau khi đã xử lý tất cả các mẫu.
PL.2.4.3 Lan truyền ngược sai số
Để thực hiện việc học, ta phải tìm các trọng số của mạng sao cho lời giải của
mạng khớp nhất với bộ dữ liệu chứa các mẫu sẵn có. Ban đầu, các trọng số này
thường cho lời giải rất sai khác so với kết quả trong bộ dữ liệu mẫu. Nhưng từ sai số
này, các trọng số sẽ được cập nhật lại, để càng về sau, sai số sẽ càng nhỏ đi.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 115 -
Quá trình xác định lượng cần thay đổi cho các trọng số từ các sai số là một
quá trình khá phức tạp (do đó ở đây, chúng tôi chỉ tóm tắt lại sơ khởi qui tắc thực
hiện). Qui tắc này sử dụng các thông tin đạo hàm hàm lỗi để cập nhật lại trọng số
sao cho lỗi giảm theo hướng dốc nhất. Đây là một trong những quy tắc nguyên thuỷ
nhất của lan truyền ngược. Cụ thể, khi hoàn thành một bước lặp qua toàn bộ tập
mẫu, tất cả các trọng số của mạng sẽ được cập nhật lại dựa vào các thông tin đạo
hàm riêng theo từng trọng số tích luỹ được. Các trọng số sẽ được cập nhật theo
hướng mà hàm lỗi dốc xuống nhất.
Để dễ hiểu hơn, ta hãy tưởng tượng hàm lỗi như một mặt lồi lõm trong
không gian (gọi tắt là mặt lỗi) dựa trên các trọng số. Tại vị trí thấp nhất trong mặt
lỗi, thì giá trị của các trọng số là tốt nhất. Do đó, dựa vào độ dốc tại một điểm trên
mặt lỗi, ta sẽ xác định được hướng điều chỉnh các trọng số để lỗi là nhỏ nhất. Độ
dốc này khi phân tích ra theo từng trọng số thì chính là đạo hàm của hàm lỗi theo
trọng số đó. Vậy nên, ta có thể xác định được khoảng thay đổi cần thiết để hàm lỗi
là nhỏ nhất ứng với từng mẫu.
Chi tiết về việc tính đạo hàm có thể được tham khảo thêm trong các tài liệu
về mạng Nơron, cụ thể là quyển Mạng Nơron – Phương pháp & Ứng dụng của Tiến
sĩ Nguyễn Đình Thúc).
PL.2.5 Hàm truyền
Trong phần trước, chúng ta đã bàn về hàm truyền. Vậy hàm truyền là gì?
Một hàm s(u) được gọi là hàm truyền dạng S nếu nó thoả:
- s(u) là hàm bị chặn: nghĩa là các giá trị của s(u) không bao giờ đuợc vượt
quá chặn trên cũng như thấp hơn chăn dưới, bất chấp giá trị của u.
- s(u) là hàm đơn điệu tăng: giá trị của s(u) luôn tăng khi giá trị của u tăng,
nghĩa là nó phải tăng đều đặn. Do tính chất thứ nhất, s(u) bị chặn, ta thấy
khi u tăng, s(u) cũng lớn dần nhưng không bao giờ vượt quá cận trên, vì
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 116 -
thế mà nó tiệm cận giới hạn là chặn trên. Và khi u nhỏ dần, s(u) tiệm cận
giới hạn là chặn dưới của hàm.
- s(u) là hàm liên tục và trơn: vì hàm s(u) liên tục nên nó không có khe và
góc cạnh, nghĩa là hàm có đạo hàm và độ dốc rõ ràng tại từng điểm phân
biệt.
Tuy nhiên trong thực tế mạng nơron, hàm logistic g(u) là hàm truyền thường
được sử dụng. Hàm logistic là hàm truyền có chặn trên là 1, chặn dưới là 0. Khi u =
0 thì hàm có giá trị là 0,5.
PL.2.6 Khởi tạo trọng
Luyện mạng là một tiến trình lặp qua nhiều bước học. Trong mỗi bước, mạng
thi hành ánh xạ với các mẫu trong tập mẫu, tính toán sai số và cập nhật lại các trọng
số dựa vào sai số vừa tính. Như vậy, trọng số sẽ được cập nhật sao cho mạng thi
hành ngày một tốt hơn. Vấn đề đặt ra là ban đầu, để mạng có thể thi hành ánh xạ ở
bước học đầu tiên thì các trọng số cần được khởi tạo như thế nào.
Do ta không biết kết xuất, nên để kết xuất ở giá trị giữa là hợp lý nhất, tức
giá trị 0,5. Chọn giá trị ở giữa sẽ cực tiểu hóa hàm sai số, bất kỳ giá trị nào khác
cũng sẽ sinh ra sai số lớn hơn.
Muốn vậy, ta khởi tạo:
Các trọng số nút ẩn giá trị ngẫu nhiên, nhỏ, phân bố đều quanh 0.
Phân nửa trọng số của các nút xuất giá trị 1 và nửa kia với giá trị -1.
PL.2.7 Vấn đề quá khớp
Khi sử dụng mạng, ta muốn mạng dự đoán càng chính xác càng tốt. Tuy
nhiên, khi ta cho mạng luyện quá nhiều, thì mạng sẽ chỉ trả lời chính xác những gì
nó được học, còn những gì không được học nó sẽ không quan tâm. Nghĩa là mạng
không có khả năng tổng quát hóa. Vấn đề này được gọi là quá khớp.
Để giải quyết vấn đề này, ta có 2 cách tiếp cận:
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 117 -
Cách 1: tăng kích thước mẫu luyện cang lớn càng tốt, miễn máy tính vẫn còn
khả năng quản lý được.
Cách 2: giới hạn số bước luyện.
Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm
- 118 -
TÀI LIỆU THAM KHẢO
[1]. Nguyễn Đình Thúc, Mạng Nơron – Phương Pháp & Ứng Dụng, Nhà
Xuất Bản Giáo Dục, TP. Hồ Chí Minh
[2]. Hoàng Kiếm (chủ biên) – Dương Anh Đức – Lê Đình Duy – Vũ Hải
Quân, Cơ Sở Đồ Họa Máy Tính, tái bản lần thứ 3, Nhà Xuất Bản Giáo
Dục, TP. Hồ Chí Minh
[3]. Bryan S. Morse, Lecture 15: Segmentation (Edge Based, Hough
Transform), Brigham Young University, 1998–2000
[4]. Charles Petzold, Programming Windows With C#, Microsoft Press,
Redmond, Washington
[5]. Nguyễn Phương Lan (chủ biên) – Hoàng Đức Hải, XML – Nền Tảng &
Ứng Dụng, Nhà Xuất Bản Giáo Dục, TP. Hồ Chí Minh
[6]. Phương Lan, Lập Trình Windows Với C#.NET, in lần thứ nhất, Nhà
Xuất Bản Lao Động – Xã Hội, TP. Hồ Chí Minh
[7]. Nguyễn Tiến – Ngô Quốc Việt – Lê Tiến Sơn – Đăng Xuân Hường, Kỹ
Thuật & Ứng Dụng UML Với Rational Rose 2002, Nhà Xuất Bản
Thống Kê
[8]. The Source Forge, www.sourceforge.net
[9]. The Code Project, www.codeproject.com
[10]. The Expert Exchange, www.expert-exchange.com
HẾT
Recommended