Đồ án Xây dựng chương trình nhận dạng phiếu kết quả thi trắc nghiệm

MỤC LỤC

MỞ ĐẦU 3

1.1 Phát biểu bài toán 4

1.2 Thiết kế mẫu phiếu thi trắc nghiệm 5

1.3 Xử lý phiếu kết quả thi trước khi nhận dạng 7

1.3.1 Làm nổi biên 7

1.3.2 Xác định góc nghiêng, xoay ảnh : 7

1.4 Nhận dạng phiếu kết quả thi trắc nghiệm 9

1.4.1 Các tham số cần thiết 9

1.4.2 Nhận dạng khung 9

1.4.3 Tách dòng. 11

1.4.4 Tách ô. 12

1.4.5 Nhận dạng ô được chọn 13

1.5 Cập nhật điểm 13

2.1 Các yêu cầu của mẫu phiếu kết quả thi trắc nghiệm 16

2.2 Thực nghiệm tạo mẫu 16

2.2.1 Tạo đường thẳng chuẩn 16

2.2.2 Tạo khung, các chữ cái, chữ số trong khung 16

2.3 Thực nghiệm xác định ngưỡng trắng 19

2.4 Thực nghiệm xoay ảnh 20

2.5 Thực nghiệm xác định các ngưỡng nhận dạng khung 21

2.6 Thực nghiệm xác định các ngưỡng nhận dạng trên mẫu phiếu kết quả thi trắc nghiệm. 21

2.6.1 Các ngưỡng nhận dạng dòng 21

2.6.2 Các ngưỡng nhận dạng ô 22

2.6.3 Các ngưỡng nhận dạng ô được chọn 23

2.7 Kết quả thưc nghiệm nhận dạng mẫu phiếu kết quả thi trắc nghiệm 24

2.8 Chương trình chạy : 25

KẾT LUẬN 27

TÀI LIỆU THAM KHẢO 28

 

 

doc27 trang | Chia sẻ: lynhelie | Lượt xem: 3429 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng chương trình nhận dạng phiếu kết quả thi trắc nghiệm, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g Đại học. Từ trước đến nay việc chấm điểm bằng tay là công việc rất mất thời gian và tốn nhiều công sức và khả năng nhầm lẫn là không thể tránh khỏi. Đặc biệt là khi chúng ta chấm đến hàng nghìn bài thi. Nếu công việc được làm tự động hoá thì nó tốn ít thời gian, đỡ mất công sức và lại mang lại hiệu quả cao hơn. Khóa luận này trình bày một ứng dụng của xử lý ảnh vào tự động nhận dạng phiếu kết quả thi trắc nghiệm trong một trường đại học. Cấu trúc của khoá luận như sau: Chương 1: Chương trình nhận dạng phiếu thi trước thi nhận dạng. Chương 2: Kết quả thực nghiệm. NHẬN DẠNG PHIẾU KẾT QUẢ THI TRẮC NGHIỆM Phát biểu bài toán Đối với việc tổ chức thi và chấm điểm thi trắc nghiệm trong các trường đại học chúng ta vẫn hay làm thì trình tự các bước như sau: Phòng đào tạo sẽ sắp xếp và lên danh sách thi cho những thí sinh đạt tiêu chuẩn để thi hết môn, là những thí sinh tham gia đủ đơn vị học trình quy định và đạt tiêu chuẩn về “tư cách ” môn học đó. Các thí sinh không đạt tiêu chuẩn thì sẽ không được thi môn học đó. Phòng đào tạo sẽ đưa danh sách các thí sinh tham gia thi môn học cho cán bộ coi thi giám sát phòng thi, thông thường có hai cán bộ làm nhiệm vụ này. Cán bộ coi thi sẽ giám sát việc thí sinh xác nhận những thông tin về thí sinh trong việc tham gia thi môn đó và ký chứng nhận vào bài thi khi thu bài thi của thí sính. Các thí sinh vào phòng thi sẽ được phát một tờ đề thi trắc nghiệm, gồm những câu hỏi trắc nghiệm mà thì sinh sẽ phải trả lời, số câu hỏi phụ thuộc vào đề thi và một tờ phiếu kết quả thi trắc nghiệm gồm số câu trả lời tương ứng với số câu hỏi trong đề thi. Mỗi câu hỏi sẽ có nhiều đáp án thí sinh chọn đáp án đúng cho câu hỏi và tích chọn ô kết quả đó theo hướng dẫn của tờ phiếu. Sau khi hết thời gian làm bài cán bộ coi thi thu bài thi và ký nhận vào bài thi. Bài thi sẽ được cán bộ coi thi giao nộp cho phòng đào tạo. Tại phòng đào tạo bài thi sẽ được lưu trữ, sau đó các bài thi đều được rọc phách và đưa cho giáo viên chấm thi sau đó không lâu. Mỗi bài thi có một số phách nhất định không giống nhau. Cán bộ chấm thi sẽ chấm thi các bài thi trắc nghiệm của thí sinh theo kết quả có sẵn của các đề thi và cho điểm theo từng câu hỏi và tính điểm tổng cho bài thi. Sau khi chấm thi xong giáo viên chấm thi lại giao lại bài thi cho cán bộ phòng đào tạo để ghép phách và vào điểm. Qua cách thi trắc nghiệm và chấm điểm thủ công ta thấy việc chấm điểm và vào điểm của giáo viên là rất mất thời gian và độ chính xác cũng không được cao. Với một đợt thi như vậy số bài thi có thể lên tới hàng ngàn bài thi và chấm từng bài thi với nhiều đề thi khác nhau sẽ không tránh khỏi nhầm lẫn. Nếu việc chấm điểm thi mà được làm tự động thì sẽ khắc phục được những hạn chế trên và mang lại hiệu quả cao hơn. Công nghệ thông tin ngày nay đã và đang phát triển không ngừng, chúng ta có thể áp dụng nó vào công việc chấm thi trắc một cách nhanh chóng và hiệu quả của nó mang lại cao hơn cách chấm thủ công và cũng giảm đi nhiều công sức cho giáo viên chấm thi. Trên cơ sở đó đề tài đã nghiên cứu và áp dụng xử lý ảnh vào việc chấm thi trắc nghiệm một cách tự động. Thiết kế mẫu phiếu thi trắc nghiệm + Các đặc điểm của phiếu Để hệ thống có thể nhận dạng được các phiếu thi trắc nghiệm, các phiếu này đều phải tuân theo một mẫu chuẩn. Mẫu này được thiết kế sao cho quá trình nhận dạng được thực hiện một cách nhanh chóng và chính xác. Khi nhận dạng, phiếu thi trắc nghiệm được quét bởi scanner, do vậy không thể tránh khỏi tờ phiếu bị xoay nghiêng. Việc điều chỉnh lại tờ phiếu là rất quan trọng, vì nó có ảnh hưởng đến quá trình nhận dạng về sau. Để có thể nhận biết độ nghiêng của phiếu, chúng ta sẽ thiết kế một đường thẳng nằm ngang song song với mép trên của phiếu. Ảnh của phiếu trắc nghiệm được quét qua scanner sẽ có nhiễu và có thể mất nét vì nhiều lý do (tờ phiếu bị nhàu nát, hoặc đã được phô tô lại,) nên đường thẳng này phải được để độ dày một cách phù hợp. Để nhận dạng phiếu kết quả thi trắc nghiệm, ta cần biết vị trí tương đối của các ô trắc nghiệm. Ở đây chúng ta dùng các khung để khoanh vùng các ô trắc nghiệm. Phần dành cho trắc nghiệm phải được thiết kế đậm để có thể nhận dạng chính xác. Ngoài ra mẫu phiếu thi trắc nghiệm phải có tính thẩm mỹ cao và thuận tiện. Vùng nhận dạng cần nằm gọn trong tờ giấy, không được gần mép giấy quá để tránh khi đưa vào máy scanner, vùng nhận dạng không được quét hết. Ở cuối tờ phiếu, nên có những hướng dẫn cần thiết về quy cách trắc nghiệm để tránh những lỗi không hợp lệ gây ra bởi người thi trắc nghiệm. Từ đó chúng tôi đưa ra mẫu phiếu thi trắc nghiệm sau: Hình 1.1 .Mẫu phiếu thi trắc nghiệm Xử lý phiếu kết quả thi trước khi nhận dạng Sau khi thực hiện Scanner phiếu thi thành ảnh sẽ không tránh khỏi một số vấn đề như làm nổi biên, nghiêng Để nâng cao chất lượng ảnh trên đề tài nghiên cứu và sử dụng một số kỹ thuật sau : Làm nổi biên Phương pháp canny : Phương pháp Canny dựa trên cặp đạo hàm riêng bậc nhất với việc làm sạch nhiễu. Mục này được để riêng vì đây là phương pháp tách đường biên khá phổ biến được dùng theo toán tử đạo hàm. Như đã nói, phương pháp đạo hàm chịu ảnh hưởng lớn của nhiễu. Phương pháp đạt hiệu quả cao khi xấp xỉ đạo hàm bậc nhất của Gauss. f= (G ⊗ I ) =fx+fy Với fx, fy là đạo hàm riêng theo x và y của f. do vậy: f= (G ⊗ I )x + (G ⊗ I )y = (Gx ⊗ I ) + (Gy ⊗ I ) Lấy đạo hàm riêng theo x và y của G ta được : Do bộ lọc Gauss là tách được, ta có thể thực hiện riêng biệt các tích chập theo x và y: G x(x,y)= G x(x) ⊗ G(y) và G y(x,y)= G (x) ⊗ Gy(y) Từ đó ta có : fx(x,y) = G x(x) ⊗ G(y) ⊗ I và fy(x,y) = G y(y) ⊗ G(x) ⊗ I Biên độ và hướng tính theo công thức trên. Xác định góc nghiêng, xoay ảnh : Xác định góc nghiêng : Tư tưởng của nhận dạng đường thẳng Hough là: với mỗi giá trị của các tham số r và, ta tính số tọa độ (x, y) thỏa mãn phương trình đường thẳng Hough và là điểm đen. Nếu số này lớn hơn một ngưỡng th thì tập hợp các điểm đó có thể tạo nên một đường thẳng. Thuật toán tìm đường thẳng dựa trên phương trình đường thẳng dựa trên phương trình đường thẳng Hough được mô tả dưới dạng ngôn ngữ giả như sau: for r = 0 to do for = 0 to 360o do { count = 0 ; for x = 0 to width do { Tính y; if (x, y) là điểm đen then count = count + 1 } if count >th then thông báo có một đường thẳng ; } Trong đó, width và height là độ rộng và chiều cao của ảnh. Biến count dùng đếm số điểm đen tương ứng với mỗi r và . Nếu count lớn hơn một ngưỡng th cho trước có một đường thẳng. Ưu điểm của thuật toán náy là có thể tìm được các đường thẳng không liền nhau(các điểm trên đường thẳng rời rạc nhau) với độ chính xác cao. Điều này phù hợp thực tế rằng, một ảnh khi quét vào có thể bị nhiễu hoặc đứt nét. Với thuật toán cũng có thể tính được góc nghiêng của đường thẳng. Từ đó dễ dàng để chuyển sang bước sang giai đoạn chỉnh độ nghiêng. Xoay ảnh : Sau khi xác định được góc nghiêng cho toàn văn bản. Để chỉnh sửa góc nghiêng cho văn bản ta quay lại ảnh với độ lệch đó. Quay ảnh là một trong những kỹ thuật phổ biến trong các hệ thống xử lý ảnh. Thuật toán quay ảnh đơn giản là chuyển một điểm ảnh (x,y) từ ảnh ban đầu thành điểm ảnh mới có toạ độ (x1, y1) trong ảnh kết quả với x1,y1 được xác định theo công thức: x1 = x.cosj + y.sinj y1 = y.sinj - x.cosj Nhận dạng phiếu kết quả thi trắc nghiệm Các tham số cần thiết Để nhận dạng được phiếu kết quả thi trắc nghiệm, chúng ta cần một số tham số. Các tham số này được tạo ra khi hệ thống sinh phiếu thi trắc nghiệm dưới dạng Word. Dưới đây là các tham số cần thiết: Độ phân giải của ảnh (thường là 150 dpi hoặc 300dpi). Kích cỡ ảnh (Chiều rộng và chiều cao) Độ rộng độ cao của khung Khoảng cách giữa các khung . Khoảng cách giữa các dòng (chứa các ô đánh dấu) Khoảng cách giữa các ô. Số khung Số câu hỏi trong mỗi khung Số tuỳ chọn trong mỗi câu hỏi. Nhận dạng khung Nhận dạng khung là bước tiếp sau khi xoay ảnh, việc nhận dạng khung nhằm mục đích khoanh vùng các ô trả lời. Điều này cần thiết vì sau khi quét ta không biết được chính xác vị trí của các ô nằm ở đâu. Sau khi đã khoanh vùng được, ta lần lượt nhận dạng các ô trả lời trong từng vùng đó. Nhận dạng khung thực chất là việc xác định tọa độ của góc trên bên trái, độ rộng và độ cao của khung. Các khung có thể được nhận dạng lần lượt, nhưng ta có nhận xét rằng, các cạnh trên và cạnh dưới của các khung cùng nằm trên một đường thẳng. Do đó để nhận dạng các cạnh trên và dưới của các khung, ta sẽ tìm các đường thẳng nằm ngang nằm phía dưới đường thẳng dày và đi qua các cạnh của khung. Khung Do phiếu đã được điều chỉnh độ nghiêng, nên đường thẳng này có thể được coi như nằm ngang hay nói cách khác góc nghiêng của đường thẳng nhỏ hơn 1 độ. Vì vậy các điểm thuộc đường thẳng này chỉ nằm trên một số ít dòng liền nhau, trên thực tế thường là 1 đến 3 dòng. Nên ta có thể tìm trong ảnh các dòng kề nhau đó và thỏa mãn số cột có điểm đen lớn hơn một ngưỡng th = số khung * độ rộng khung * 0.9. Hình 1.2. Các khung của phiếu Ta không nên sử dụng thuật toán Hough để tìm đường thẳng này vì thuật toán Hough tìm đường thẳng khi biết chính xác góc nghiêng là bao nhiêu và tìm các đường thẳng tuyệt đối, do vậy không thích hợp với việc tìm các đường thẳng có nét mỏng trong ảnh có nhiễu Bước tiếp theo, ta tìm các cạnh bên của các khung, các đường thẳng này cũng được tìm bằng phương pháp giống như với tìm các đường thẳng nằm ngang. Nếu có n khung thì ta phải tìm 2 * n đường thẳng dọc. Khi đó các cạnh thứ 2 * i và 2 * i + 1 (0in) là hai cạnh bên của một khung. Tiếp tục đi vào nhận dạng chi tiết hơn dó là nhận dạng các dòng trong khung, các dòng lạ được tách thành nhiều ô trên 1 dòng. Kỹ thuật tách dòng và tách ô Tách dòng. Sau khi nhận dạng được từng khung, ta tiếp tục đi nhận dạng các dòng trong từng khung. Trước tiên ta nhận xét rằng, khi chiếu các dòng trong khung lên trục Oy sẽ tạo ra các đoạn thẳng cách nhau bởi các khoảng trống. Các đoạn thẳng này có độ dài bằng đường kính của ô trả lời. Hình 1.3. Hình chiếu của các dòng lên trục oy Ta có phương pháp nhận dạng như sau: - Bước 1: Bắt đầu quét từng hàng từ dưới cạnh trên của khung. - Bước 2: Quét đến khi nào gặp hàng chứa số điểm đen lớn hơn ngưỡng th1 thì chuyển sang bước 3. - Bước 3: Lại tiếp tục quét đến khi nào gặp hàng không chứa điểm đen hoặc số điểm đen ít hơn ngưỡng th1. Nếu số hàng quét được trong bước 3 xấp xỉ bằng đường kính của ô trả lời thì đó là một dòng, còn nếu lớn hơn hoặc nhỏ hơn nhiều đường kính của ô trả lời thì không phải là một dòng, đó có thể là nhiễu. Trong trường hợp là dòng, ta ghi lại tọa độ của dòng.Ta chuyển sang bước 4. - Bước 4: Nếu số dòng tìm được nhỏ hơn số dòng trong khung thì quay lại bước 2 để tiếp tục tìm dòng, ngược lại nếu bằng số dòng trong khung thì kết thúc.Ngưỡng th1 được đưa ra nhằm mục đích loại bỏ các nhiễu trong ảnh. Tách ô. Phương pháp tách ô cũng tương tự như tách dòng, ta sẽ tách các ô trên từng dòng. Hình 1.4. Hình chiếu của các ô lên trục ox Ta có phương pháp tách như sau: - Bước 1: Bắt đầu quét từng cột từ đầu dòng - Bước 2: Quét đến khi nào gặp cột chứa số điểm đen lớn hơn ngưỡng th2 thì chuyển sang bước 3. - Bước 3: Lại tiếp tục quét đến khi nào gặp cột không chứa điểm đen hoặc số điểm đen ít hơn ngưỡng th2. Nếu số cột quét được trong bước 3 xấp xỉ bằng đường kính của ô trả lời thì đó là một ô, còn nếu lớn hơn hoặc nhỏ hơn nhiều đường kính của ô trả lời thì không phải là một ô, đó có thể là nhiễu. Ta chuyển sang bước 4. - Bước 4: Nếu số ô tìm được nhỏ hơn số ô trong hàng đó thì quay lại bước 2 để tiếp tục tìm ô, ngược lại nếu bằng số ô trong khung thì kết thúc. Ngưỡng th2 được đưa ra nhằm mục đích loại bỏ các nhiễu trong ảnh. Và cuối cùng ta đi nhận dạng ô đã được chọn khi đã khoanh vùng được từng ô. Ô được chọn trên một dòng chính là ô có số điểm đen trong vùng được chọn lớn hơn hẳn so với các vùng khác của dòng đó. Nhận dạng ô được chọn Hình 1.5. Hình khoanh vùng các ô Ô được chọn là ô có mật độ điểm đen nhiều nhất. - Bước 1: Tìm số điểm đen trong từng vùng của dòng - Bước 2: Chọn ra hai vùng có số điểm đen cao nhất và thấp nhất và tìm độ chênh lệch số điểm đen của hai vùng đó. - Bước 3: Nếu độ chênh lệch này lớn hơn một ngưỡng th cho phép thì vùng có số điểm đen cao nhất đã được đánh dấu, ngược lại dòng đó không có ô nào được đánh dấu. Tuy nhiên ta nhận thấy rằng, khi chưa có ô nào được đánh dấu, số lượng điểm đen trong các vùng vẫn chênh lệch nhau đáng kể do số điểm đen của các chữ cái không giống nhau, do đó ta phải tính thêm độ chênh lệch tương đối của các chữ cái bằng thực nghiệm để có thể nhận dạng được chính xác hơn. Ngưỡng th được xác định dựa trên thực nghiệm. Cập nhật điểm Để cập nhật được điểm thì chúng ta phải xây dưng một cơ sở dữ liệu gồm các thông tin sinh viên như: họ tên, lớp học, mã sinh viên,và thông tin về đề thi như: mã đề, câu hỏi, đáp án trả lời của các đề thi. Các thông tin đã đọc được trong phần nhận dạng như là mã sinh viên, mã đề thi, đó là cơ sở để chương trình tìm trong cơ sở dữ liệu để so sánh với nhung thông tin trong cơ sở dữ liệu. Các đáp án đọc trong phiếu kết quả trắc nghiệm sẽ được đem so sánh với kết quả lưu trong cơ sở dữ liệu. Phương án nào đúng thì được cộng điểm, nếu phương án trả lời nào sai hoặc không được ghi nhận thì không được cộng điểm ở phương án đó. Sau khi so sánh đến hương án cuối cùng thi chương trình nhận dạng sẽ tính được điểm của bài thi đó. Sau khi chấm điểm cho bài thi chương trình sẽ so sánh với thông tin sinh viên trong phiếu thi và lưu điểm của bài thi đó vào cơ sở dữ liệu. Biểu đồ ngữ cảnh của hệ thống tổ chức thi trắc nghiệm Người tổ chức thi trắc nghiệm 0 Hệ thống tổ chức thi trắc nghiệm Sinh viên dự thi trắc nghiệm Nội dung phiếu thi trắc nghiệm Phiếu thi , đề thi trắc nghiệm Bài thi trắc nghiệm đã tích và được quét bằng scanner Phân tích kết quả thi trắc nghiệm Hình 1.6. Biểu đồ ngữ cảnh của hệ thống tổ chức thi trắc nghiệm Các chức năng chính của hệ thống Tạo phiếu thi trắc nghiệm Đọc phiếu kết quả thi trắc nghiệm Phân tích kết quả thi trắc nghiệm 1 Tạo phiếu thi trắc nghiệm Thực hiện thi trắc nghiệm 2 Đọc phiếu kết quả thi trắc nghiệm 3 Phân tích kết quả thi trắc nghiệm Hình 1.7. Trình tự thực hiện các chức năng chính của hệ thống Biểu đồ luồng dữ liệu mức 0 Người tổ chức thi 1 Tạo đề thi trắc nghiệm 3 Phân tích kết quả thi trắc nghiệm 2 Đoc phiếu thi trắc nghiệm Các tham số của phiếu thi trắc nghiệm Ảnh phiếu thi trắc nghiệm Đề thi trắc nghiệm Phiếu thi trắc nghiệm Nội dung fiếu đề thi trắc nghiệm Sinh viên dự thi Yêu cầu phân tích Kết quả phân tích Hình 1.8. Biểu đồ luồng dữ liệu mức 0 KẾT QUẢ THỰC NGHIỆM Các yêu cầu của mẫu phiếu kết quả thi trắc nghiệm Mẫu phiếu thi trắc nghiệm được tạo ra phải thoã mãn một số yêu cầu sau: Thuận lợi cho việc nhận dạng ở đây được xét theo hai khía cạnh : Độ chính xác của kết quả nhận dạng phiếu kết quả thi trắc nghiệm Thời gian để nhận dạng phiếu kết quả thi trắc nghiệm Thuận lợi cho sinh viên trong việc chọn và tích vào ô kết quả Thẫm mĩ: Mẫu phiếu thi trắc nghiệm phải đơn giản, thoáng, dễ nhìn, không gây khó chịu cho người xem. Để đáp ứng yêu cầu đề ra thì chúng tôi đã làm một số thực nghiệm, ở mỗi thực nghiệm test trên 30 bài thi và cho kết quả như sau: Thực nghiệm tạo mẫu Mẫu phiếu thi phải được xây dựng trên khổ giấy A4 Những chi tiết trên phiếu thi phải nằm gọn trong tờ giấy A4, không bị tràn ra ngoài vùng giấy. Tạo đường thẳng chuẩn Đây là đường thẳng đậm, nằm ngang, được đặt ở đầu phiếu kết quả thi trắc nghiệm. Định dạng cuả phiếu kết quả thi trắc nghiệm sẽ được xác định thông qua việc xác định đường thẳng chuẩn. Tạo khung, các chữ cái, chữ số trong khung Độ dày của đường bao khung Độ dày của khung này phải hợp lý để nhận dạng được chính xác và phải làm cho phiếu thi hài hoà dễ nhìn. Chiều dày không nên ở mức dày quá thì sẽ làm cho phiếu thi không được đẹp, hoặc nếu độ dày ở mức nhỏ thì phiếu sau khi in ấn phô tô, quét, hay chịu những tác động bên ngoài nó cũng làm mờ đi các đường dẫn đến quá trình nhận dạng khó khăn hoặc không chính xác. Quá trình thực nghiệm đã cho thấy nếu để độ dày các cạnh của khung ở mức nhỏ dẫn đến sau này khi phiếu được quét lên lên dưới dạng ảnh thì các cạnh này rất dễ mờ mất nét do một số nguyên nhân như: in ấn, phô tô, chất lượng scanChất lượng nhận dạng khung theo đó cũng giảm đi. Do đó độ dài này cũng được chọn sao cho đảm bảo chất lượng nhận dạng. Theo kết quả nghiên cứu trong tài liệu [1] về mối quan hệ giữa độ dày của đường bao khung với độ chính xác trong nhận dạng, trong khoá luận này đã lựa chọn kết quả nghiên cứu đó, cụ thể như sau: Độ dày(pt) 0.75 1.0 1.25 1.5 Độ chính xác(%) 60 69 87 99 Theo kết quả thực nghiệm này ta có thể chọ độ dày của các đường bao khung là 1.5 pt. Kích thước ô trong khung Trong khung mã số sinh viên phù hợp với số lượng sinh viên tham gia trong một trường đại học dự thi, khoá luận đã thiết kế để cho làm sao cho mọi học sinh trong trường đều có thể tích đúng vào khung này. Như vậy số ô trong khung này là 5 ô trên một dòng và có tất cả là 10 dòng, ứng với 10 con số từ 0 đến 9. Trong khung mã số đề thì lượng ô trên một dòng được thiết kế nhỏ hơn khung mã số sinh viên vì trong một môn thi trắc nghiệm thì số lượng đề thi lên đến con số lớn nhất được tích trong khung là phù hợp. Số lượng ô trong một dòng là 3, số dòng là 10 dòng. Đối với khung trả lời câu hỏi để thuận tiện chho việc thực nghiệm trong khoá luận này chúng tôi đã thiết kế mẫu phiếu với khung trả lời gồm 45 câu hỏi, mỗi câu hỏi có 4 phương án trả lời là A, B, C, D. Với số khung là 3 khung thì tương ứng mỗi khung sẽ có 15 câu hỏi. Muốn phiếu được đẹp và dễ nhìn và dễ nhận dạng thì khoảng cách của các dòng và các ô cũng phải phù hợp, hài hoà. Theo kết quả nghiên cứu trong tài liệu [5] kích thước trong ô qua những kết quả thực nghiệm trong khoá luận này chúng tôi đã chọn các thông số như bảng sau Khung số dòng Số ô Khoảng cách dòng Khoảng cách ô Mã sinh viên 10 50 10 pt 20 pt Số đề thi 10 30 10 pt 20 pt Trả lời 15 60 20 pt 15pt Cỡ chữ, font chữ Chúng ta có thể lựa chọn cỡ chữ phù hợp nên theo môt chuẩn sau: Dễ dàng sử dụng cho thí sinh Nét chữ cỡ chữ phải đủ rõ để đảm bảo không mất nét nhiều trong các trường hợp như là: phô tô, quét, in ấn, hay những tác động bên ngoài. Chữ số hay chữ cái nằm trong vòng tròn của khung phải phù hợp với chiều rộng và chiều cao của vòng tròn. Khoá luận đã thử nghiệm và chọn kiểu chữ font chữ cho chữ cái chữ số trong các khung theo các thông số cụ thể ở bảng sau: Khung Cỡ chữ Font Mã sinh viên 10 Time New Roman Số đề thi 10 Time New Roman Trả lời 8 Time New Roman Từ kết quả đã nghiên cứu các thông số cho tính chất khung chọn trong khoá luận này được tổng họp trong bảng sau: Khung Độ dày đường bao khung Kiểu chữ Cỡ chữ Khoảng cách giữa các dòng Khoảng cách giữa các ô Mã sinh viên 1.5pt Time New Roman 10 10 pt 20 pt Số đề thi 1.5pt Time New Roman 10 10 pt 20 pt Trả lời 1.5pt Time New Roman 8 20 15 pt Thực nghiệm xác định ngưỡng trắng Ngưỡng trắng là ngưỡng để xác định xem một điểm ảnh có phải là điểm đen hay điểm trắng. Nếu mức xám của điểm ảnh mà nhỏ hơn ngưỡng trắng thì điểm ảnh đó là điểm đen và ngược lại. Việc xác định giá trị ngưỡng trắng có vai trò quan trọng trong việc loại bỏ nhiễu do lỗi máy quét gây ra. Nếu ngưỡng trắng nhỏ thì sẽ bị mất một số điểm ảnh cần thiết. Còn nếu ngưỡng trắng lớn thì sẽ có nhiều nhiễu, dẫn đến sẽ nhận dạng không chính xác kết quả phiếu kết quả thi. Khoá luận này chúng tôi đã làm thực nghiệm đối với 30 ảnh và đã đưa ra được ngưỡng thực nghiệm phân ngưỡng đã chạy thử chúng tôi chọn ngưỡng trắng trong khoảng 190. Thực nghiệm xoay ảnh Khi quét ảnh vào ảnh có thể nghiêng nên chúng ta phải thực hiện quay ảnh để được ảnh chuẩn phục vụ tốt cho việc nhận dạng. Chương trình có thể quay ảnh phiếu thi nghiêng ≤ 20 độ thì chương trình có thể xoay ảnh và nhận dạng khá chính xác. Hình 2.1. Ảnh trước và sau khi xoay Thực nghiệm xác định các ngưỡng nhận dạng khung Có hai ngưỡng cần quan tâm khi nhận dạng khung: Ngưỡng xác định cạnh ngang trên, ngưỡng xác định các cạnh dọc. Ngưỡng xác định các cạnh là tỷ lệ độ dài nhỏ nhất cho phép xác định một tập hợp điểm đen có phải cạnh của khung không. Theo kết quả nghiên cứu trong tài liệu [1] ta có: Tỉ lệ độ dài với đường thẳng cần nhận dạng 0.4 0.6 0.7 0.8 0.9 1 Độ chính xác(%) 0 22 43 85 99 0 Thực nghiệm xác định các ngưỡng nhận dạng trên mẫu phiếu kết quả thi trắc nghiệm. Các ngưỡng nhận dạng dòng Khi nhận dạng dòng chúng ta cần quan tâm đến 3 ngưỡng là: Ngưỡng xác định bắt đầu một dòng, ngưỡng chiều cao tối thiểu, ngưỡng chiều cao tối đa của dòng. Ngưỡng xác định bắt đầu một dòng Khi quét một khung từ trên xuống dưới, từ trái qua phải, để xác định khi nào một tập hợp điểm đen là bắt đầu của một dòng, chúng ta đưa ra “ ngưỡng xác định bắt đầu một dòng”. Ngưỡng 2 4 6 8 10 Độ chính xác(%) 50 80 94 97 50 Nhận xét: Nếu ngưỡng này nhỏ, nhận dạng sẽ gặp nhiều sai số do nhận nhầm tập hợp các điểm đen nhiễu. Nếu ngưỡng này lớn thì không nhận dạng được. Từ bảng trên, ta có thể chọn giá trị của ngưỡng này là 8 pixel. Ngưỡng chiều cao tối thiểu của dòng Vì nhiều lý do khác nhau, một dòng có thể bị mờ mất một phần chiều cao hoặc trong phiếu kết quả thi trắc nghiệm có thể làm nhầm vị trí của dòng. Do đó, ngưỡng chiều cao tối thiểu của dòng được sử dụng để khác phục các vấn đề này. Chiều cao của dòng khi quét lớn hơn hoặc bằng ngưỡng này là một dòng, nếu nhỏ hơn thì không tính. Từ thực nghiệm, chúng tôi chọn ngưỡng này bằng 25 pixel đối với khung trả lời, 30 pixel đối với khung số đề thi và mã sinh viên. Ngưỡng chiều cao tối đa của dòng Vì nhiều lý do khác nhau, một dòng có thể bị mờ một phần chiều cao hoặc trong phiếu kết quả thi trắc nghiệm một số nhiễu có thể làm nhận nhầm vị trí của dòng. Do đó, ngưỡng chiều cao tối thiểu của dòng được sử dụng để loại các nhiễu lớn có thể gặp phải khi nhận dạng. Các nhiễu lớn có thể là các vết gạch bút do vô ý trên phiếu kết quả thi. Trong khi quét từ trên xuống dưới, nếu thấy chiều cao cuả dòng vượt quá ngưỡng chiều cao tối đa thì không tiếp tục quét nữa và vị trí của dòng đó đuợc xác định. Từ thực nghiệm chúng tôi chọn ngưỡng này là 50 pixel đối với khung trả lời, 35 pixel đối với khung mã sinh viên và số đề thi. Các ngưỡng nhận dạng ô Ngưỡng để xác định bắt đầu một ô: Ngưỡng này là số điểm đen nhỏ nhất để có thể xác định vị trị nào là bắt đầu của một ô. Do mỗi ô tích kết quả đều là hình tròn nên chúng ta có thể chọn ngưỡng này là 3 pixel. Bởi vì chúng ta để 1 pixel hay 2 pixel thì dẫn đến nhận dạng nhầm khi gặp nhiễu. Ngưỡng độ rộng tối thiểu và độ rộng tối đa để xác định vị trí một ô. Ý nghĩa của hai ngưỡng này cũng như ý nghĩa của hai đường chiều cao thiểu và chiều cao tối đa khi xác định một dòng. Từ thực nghiệm chúng tôi xác định ngưỡng độ rộng tối thiểu là 25 pixel và độ rộng tối đa là 40 pixel đối với khung trả lời, độ rộng tối thiểu 20 và độ rộng tối đa 30 đối với khung mã sinh viên và số đề thi khi định vị các ô. Các ngưỡng nhận dạng ô được chọn Nhận xét: Khi thực nghiệm chạy thử, chúng tôi thấy rằng, số điểm đen của mỗi chữ cái hay chữ số là khác nhau. Sự chênh lệch này ảnh hưởng đến kết quả việc xác định ô nào là ô được đánh dấu. Cụ thể sự chênh lệch như sau: Với ô trong khung mã sinh viên, số đề thi: Các chữ số trong khung Giá trị Min tổng số điểm ảnh của chữ số và vòng tròn ngoài Giá trị Max tổng số điểm ảnh của chữ số và vòng tròn ngoài 0 225 270 1 212 255 2 217 280 3 213 286 4 215 300 5 216 295 6 228 309 7 234 273 8 233 311 9 256 306 Với khung trả lời: Các chữ cái trong khung Giá trị Min tổng số điểm ảnh của chữ cái và vòng tròn ngoài Giá trị Max tổng số điểm ảnh của chữ cái và vòng tròn ngoài A 222 320 B 224 339 C 217 320 D 215 330 Từ thực nghiệm trên chúng tôi thấy giá trị max của các ô khi chưa được tích là 339 đối với khung trả lời, bằng 311 đối với ô mã sinh viên và ô số đề thi . Do đó trong khoá luận này chúng tôi đã chọn ngưỡng cho ô được tích là 390 đối với khung trả lời, 320 đối với khung mã sinh viên và khung số đề thi. Kết quả thưc nghiệm nhận dạng mẫu phiếu kết quả thi trắc nghiệm Ở các phần trên chúng ta đã thực nghiệm để tạo mẫu phiếu thi trắc nghiệm. Dưới đây chúng tôi sẽ trình bày cụ thể quá trình thực nghiệm trên mẫu phiếu đã tạo trên. Chạy thử trên toàn trên 30 phiếu ta có kết quả như sau: Môi trường thực nghiệm: CPU 2.8 Ghz, RAM 256 Mb Thời gian nhận dạng trung bình: 1.5 giây Độ chính xác 100% Chương trình chạy : Hình 2.2. Chương trình minh họa Hình 2.3. Cập nhật điểm Hình 2.4. Cập nhật điểm vào cơ sở dữ liệu KẾT LUẬN Các công việc thực hiện được trong khoá luận : Nghiên cứu và áp dụng các kỹ thuật xử lý ảnh cơ bản trong nhận dạng phiếu thi trắc nghiệm . Khóa luận này “Xây dựng chương trình nhận dạng phiếu kết quả thi trắc nghiệm”. Chương trình có tham khảo khóa luận “Nhận dạng phiếu kết quả thi trắc nghiệm ” của Nguyễn Thị Thanh Huyền Đồ án tốt nghiệp Đại học

Các file đính kèm theo tài liệu này:

  • docbao cao tom tat.doc
  • pptBao cao.ppt