intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

PHẦN MỀM THIẾT KẾ VÀ CHẤM ĐIỂM TỰ ĐỘNG BIỂU MẪU THI TRẮC NGHIỆM - 3

Chia sẻ: Cao Tt | Ngày: | Loại File: PDF | Số trang:13

334
lượt xem
67
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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...

Chủ đề:
Lưu

Nội dung Text: PHẦN MỀM THIẾT KẾ VÀ CHẤM ĐIỂM TỰ ĐỘNG BIỂU MẪU THI TRẮC NGHIỆM - 3

  1. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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 - 22 -
  2. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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). … … - 23 -
  3. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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 - 24 -
  4. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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: - 25 -
  5. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm - 26 -
  6. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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 - 27 -
  7. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm đổ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à - 28 -
  8. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm đ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ô: - 29 -
  9. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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. - 30 -
  10. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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. - 31 -
  11. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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: - 32 -
  12. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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: - 33 -
  13. Phần mềm thiết kế và chấm điểm tự động biểu mẫu thi trắc nghiệm 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 - 34 -
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2