• Nguồn sáng phải đặt ở vị trí thích hợp. Vì các vùng thí sinh tô bằng chì rất dễ bị phản xạ ánh sáng, nếu ánh sáng đến các vùng này phản xạ vào camera thì ảnh thu được tại các điểm này sẽ có màu trắng, việc nhận dạng sẽ không còn chính xác nữa.
Với hệ thống tời giấy đơn giản, ánh sáng phân bố trên ảnh thường không đồng đều, do đó nếu lấy ngưỡng tự động thì sẽ gây ra sai lệch thông tin, dẫn đến việc nhận dạng các vùng chứa thông tin không chính xác, các vùng tối do thiếu ánh sáng có thể bị hiểu nhầm là vùng thí sinh tô đen.
Vì vậy việc áp dụng thuật toán cân bằng độ sáng của phiếu thi có vai trò rất quan trọng để thực hiện các bước tiếp theo. Thuật toán này được thực hiện bằng cách:
• Chia ảnh gốc cho ảnh của phép đóng (closing operator) của ảnh đó. Kết quả của phép chia này là một ảnh với giá trị các điểm ảnh có giá trị thực.
• Chuẩn hóa (normalize) ma trận ảnh thực trên.Để hiển thị và xử lý ảnh ở các bước tiếp theo, ta cần phải lượng tử hóa giá trị của các điểm ảnh về mức 0 – 255 (mức 0 tương ứng với giá trị nhỏ nhất, 255 ứng với giá trị lớn nhất).
(3) Lấy ngưỡng tự động: lấy ngưỡng tự động bằng thuật toán Otsu từ ảnh thu được từ bước xử lý trên.
68 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 3530 | Lượt tải: 3
Bạn đang xem trước 20 trang tài liệu Luận văn Xây dựng hệ thống chấm điểm trắc nghiệm sử dụng camera, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
g((N −1)Δx) }
Chú ý 1: Khoảng lấy mẫu (Sampling Interval) Δx là một tham số cần phải được chọn đủ nhỏ, thích hợp, nếu không tín hiệu thật không thể khôi phục lại được từ tín hiệu lấy mẫu.
Chú ý 2: Từ lý thuyết về xử lý tín hiệu số [1], (2-6) là tích chập trong miền không gian x.Mặt khác, phương trình trên tương đương với tích chập trong miền tần số ω tức là biến đổi Fourier của gs(x) là
Gsωx=1∆xk=-∞∞G(ωx-k∆x)
Trong đó ωx là giá trị tần số ứng với giá trị x trong miền không gian.
Điều kiện khôi phục ảnh lấy mẫu về ảnh thật được phát biểu từ định lý lẫy mẫu của Shannon.
Định lý lấy mẫu của Shannon[2]
Giả sử g(x) là một hàm giới hạn dải (Band Limited Function) và biến đổi Fourier của nó là G(ωx) = 0 đối với các giá trị ωx>Wx. Khi đó g(x) có thể được khôi phục lại từ các mẫu được tạo tại các khoảng Δx đều đặn. Tức là:
∆x ≤12ωx
Định lý lẫy mẫu của Shannon có thể mở rộng cho không gian hai chiều. Hàm răng lược hai chiều khi đó được xác định:
Combx,y=n=-∞∞m=-∞∞δx-n∆xy-m∆y
Hàm lấy mẫu hai chiều thu được:
gsx,y=gx,yCombx,y=g(x,y)n=-∞∞m=-∞∞(x-n∆x,y-m∆y)
và Δx, Δy được chọn thoả mãn các điều kiện tương ứng theo định lý lấy mẫu của Shannon khi đó:
∆x ≤12ωx
∆y ≤12ωy
Tương tự như không gian một chiều, một tín hiệu ảnh hai chiều g(x,y) có thể xấp xỉ trong khoảng [N, M] có thể được ước lượng như sau :
g(x,y)≈g(n∆x,m∆y)
={g(0,0),g(0,1),…,g(0,M-1),g(1,0),g(1,1),…,g(1,M-1,),g(N-1,M-1)}
Các dạng lấy mẫu (Tesselation)
Dạng lẫy mẫu (Tesselation) điểm ảnh là cách bài trí các điểm mẫu trong không gian hai chiều. Một số dạng mẫu điểm ảnh được cho là dạng chữ nhật, tam giác, lục giác. Mỗi một mẫu, ngoài việc thể hiện hình dáng còn cho biết đặc điểm liên thông của chúng. Ví dụ, mẫu chữ nhật có liên thông 4 hoặc 8 (nói về các mẫu liền kề); mẫu lục giác có liên thông 6; mẫu tam giác có liên thông 3 hoặc 6.
Hình 1.1 Các dạng mẫu điểm ảnh
Lượng tử hóa
Lượng tử hoá (quantization) là một quá trình lượng hoá tín hiệu thật dùng chung cho các loại xử lý tín hiệu trên cơ sở máy tính. Vấn đề này đã được nghiên cứu kỹ lưỡng và có nhiều lời giải lý thuyết dưới nhiều giả định của các nhà nghiên cứu như Panter và Dite (1951), Max (1960), Panter (1965).
Các giá trị lấy mẫu Z là một tập các số thực từ giá trị Zminđến lớn nhất Zmax. Mỗi một số trong các giá trị mẫu Z cần phải biến đổi thành một tập hữu hạn số bit để máy tính lưu trữ hoặc xử lý.
Hình 1.2 Quá trình lượng tử hóa
Định nghĩa: Lượng tử hoá là ánh xạ từ các số thực mô tả giá trị lấy mẫu thành một giải hữu hạn các số thực. Nói cách khác, đó là quá trình số hoá biên độ.
Hình 1.3 Khuông lượng tử theo L mức xám
Giả sử Z là một giá trị lấy mẫu (số thực) tại vị trí nào đó của mặt phẳng ảnh, và Zmin<=Z’<=Zmaxvà giả sử chúng ta muốn lượng hoá giá trị đó thành một trong các mức rời rạc: l1, l2,…ln tương ứng với Zmin đến Zmax (hình 1.3). Khi đó, quá trình lượng hoá có thể thực hiện bằng cách chia toàn bộ miền vào (Zmax - Zmin) thành L khoảng, mỗi khoảng là Δl và khoảng thứ i được đặt tại điểm giữa các khoảng liền kề li. họ các giá trị z được thực hiện và mô tả bằng li theo quá trình trên đây, khi đó sai số của quá trình lấy mẫu có thể được xác định theo:
eq=li – Z
Hình 1.4 Lấy mẫu và lượng tử hóa
Xứ lý và nâng cao chất lượng ảnh
Nâng cao chất lượng ảnh là một bước quan trọng, tạo tiền đề cho xử lý ảnh. Mục đích chính là nhằm làm nổi bật một số đặc tính của ảnh như thay đổi độ tương phản, lọc nhiễu, nổi biên, làm trơn biên ảnh, khuếch đại ảnh… Tăng cường ảnh và khôi phục ảnh là hai quá trình khác nhau về mục đích. Tăng cường ảnh bao gồm một loạt các phương pháp nhằm hoàn thiện trạng thái quan sát của một ảnh. Tập hợp các kỹ thuật này tạo nên giai đoạn tiền xử lý ảnh. Trong khi đó, khôi phục ảnh nhằm khôi phục ảnh gần với ảnh thực nhất trước khi nó bị biến dạng do nhiều nguyên nhân khác nhau. Sau đây ta tìm hiểu một số kỹ thuật tăng cường ảnh.
Tăng độ tương phản
Trước tiên cần làm rõ khái niệm độ tương phản; ảnh số là tập hợp các điểm, mà mỗi điểm có giá trị độ sáng khác nhau. Ở đây, độ sáng để mắt người dễ cảm nhận ảnh song không phải là quyết định. Thực tế chỉ ra rằng hai đối tượng có cùng độ sáng nhưng đặt trên hai nền khác nhau sẽ cho cảm nhận khác nhau. Như vậy, độ tương phản biểu diễn sự thay đổi độ sáng của đối tượng so với nền. Với định nghĩa này, nếu ảnh của ta có độ tương phản kém, ta có thể thay đổi tuỳ ý theo ý muốn.
Ảnh với độ tương phản thấp có thể do điều kiện sáng không đủ hay không đều, hoặc do tính không tuyến tính hay biến động nhỏ của bộ cảm nhận ảnh. Để điều chỉnh lại độ tương phản của ảnh, ta điều chỉnh lại biên độ trên toàn dải hay trên dải có giới hạn bằng cách biến đổi tuyến tính biên độ đầu vào (dùng hàm biến đổi là hàm tuyến tính) hay phi tuyến (hàm mũ hay hàm lôgarít).
Hình 1.5 Kéo dãn độ tương phản
Hàm mũ thường được dùng để dãn độ tương phản. Hàm có dạng:
fx=X[m,n]p
Với p là bậc thay đổi, thường chọn bằng 2.
Tách nhiễu và phân ngưỡng
Tách nhiễu là trường hợp đặc biệt của dãn độ tương phản khi có hệ số góc α = γ = 0. Tách nhiễu được ứng dụng có hiệu quả để giảm nhiễu khi biết tín hiệu vào trên khoảng [a,b].
Phân ngưỡng là trường hợp đặc biệt của tách nhiễu khi a = b = const. Trong trường hợp này ảnh đầu vào là ảnh nhị phân.
Hình 1.6 Tách nhiễu và phân ngưỡng
Trừ ảnh
Trừ ảnh được dùng để tách nhiễu khỏi nền. Người ta quan sát ở hai thời điểm khác nhau, so sánh chúng để tìm ra sự khác nhau. Người ta dóng thẳng hai ảnh rồi trừ đi và thu được ảnh mới. Ảnh mới này chính là sự khác nhau. Kỹ thuật này hay được dùng trong dự báo thời tiết và trong y học.
Lấy ngưỡng
Lấy ngưỡng là một kỹ thuật xử lý ảnh cơ bản dùng đển chuyển từ ảnh mức xám hoặc ảnh màu sang ảnh nhị phân khi so sánh cường độ điểm ảnh với giá trị ngưỡng cho trước. Lẫy ngưỡng thực sự là một công cụ mạnh để giữ lại những phần có nghĩa của bức ảnh mà bỏ đi những phần ít có ý nghĩa hoặc nhiễu. Hình 2.1 thể hiện quá trình biến đổi ảnh mức xám sang ảnh nhị phân bằng cách lấy mẫu qua biểu đồ cường độ mức xám.
Hình 1.7 Lấy ngưỡng
Có rất nhiều phương pháp lấy ngưỡng được áp dụng giúp việc lấy ngưỡng hiệu quả.Trong đó, thuật toán Otsu được sử dụng rộng rãi nhất do sự chính xác, hiệu quả do thuật toán tính ngưỡng T một cách tự động (adaptive) dựa vào giá trị điểm ảnh của ảnh đầu vào, nhằm thay thế cho việc sử dụng ngưỡng cố định:
Chọn một ngưỡng ước đoán ban đầu T
Phân đoạn ảnh sử dụng T. Quá trình này tạo ra 2 nhóm pixel:
N1bao gồm tất cả pixel có giá trị độ xám nhỏ hơn T.
N2 bao gồm tất cả pixel có giá trị độ xám lớn hơn T.
Tổng xác suất xuất hiện của mỗi giá trị độ xám (xác suất tích lũy) trong mỗi nhóm điểm ảnh được tính toán bởi công thức:
qN1T=i=1T Pi
qN1T=i=T+1 NGPi
Tính toán giá trị mức xám trung bình µ1,vàµ2 cho những pixel trong vùng N1 và N2.
μ1T=i=1 Ti PiqN1T
μ2T=i=T+1 NGi P(i)qN2(T)
trong đó:
T là mức ngưỡng của giá trị độ xám
P(i) là xác suất xuất hiện của giá trị độ xám i
NG độ xám giới hạn của ảnh
Từ giá trị trung bình và xác suất tích lũy trong mỗi nhóm, thuật toán tính toán giá trị phương sai riêng của từng nhóm:
σN12(T) = i=1T [i-μ1(T)]2 P(i)qN1(T)
σN22(T) = i=T+1 NG[i-μ2(T)]2 P(i)qN2(T)
The weighted within-class variance (tạm dịch: phương sai có trọng số trong nhóm điểm ảnh) được xác định bởi tổng của các tích số xác suất tích lũy với phương sai riêng của từng nhóm điểm ảnh:
σw2(T) = [ qN1(T) * σN12(T) ] + [ qN2(T) * σN22(T) ]
The between-class variance (tạm dịch: phương sai giữa các nhóm điểm ảnh) dễ dàng được tính bởi công thức:
σb2(T) = σ2 - σw2(T)
σb2(T) = qN1(T) * [ μ1(T) - μ ]2 + qN2(T) * [ μ2(T) - μ ]2
σb2(T) = qN1(T) * qN1(T) * [ μ1(T) - μ2(T) ]2
Thuật toán sẽ chạy trên toàn dải của giá trị ngưỡng [1-NG], mức ngưỡng tối ưu nhất là mức ngưỡng cho giá trị The weighted within-class variance σw2(T) nhỏ nhất, hay giá trị The between-class variance σb2(T) lớn nhất.
Những bộ lọc không gian
Cải thiện ảnh là làm cho ảnh có chất lượng tốt hơn theo ý đồ sử dụng. Thường là ảnh thu nhận có nhiễu cần phải loại bỏ nhiễu hay ảnh không sắc nét bị mờ hoặc cần làm tõ các chi tiết như đường biên ảnh. Để làm trơn nhiễu hay tách nhiễu, người ta sử dụng các bộ lọc tuyến tính (lọc trung bình, thông thấp) hay lọc phi tuyến (trung vị, giả trung vị, lọc đồng hình). Từ bản chất của nhiễu (thường tương ứng với tần số cao) và từ cơ sở lý thuyết lọc là: bộ lọc chỉ cho tín hiệu có tần số nào đó thông qua do đó, để lọc nhiễu người ta thường dùng lọc thông thấp (theo quan điểm tần số không gian), lọc thông thấp làm suy giảm hoặc loại trừ các thành phần tần số cao trong miền Fourier và cho các tần số thấp đi qua. Các thành phần tần số cao đặc trưng cho các biên, các chi tiết làm nét trong ảnh, do đó hiệu quả của bộ lọc thông thấp là làm nhòe ảnh. Hoặc lấy tổ hợp tuyến tính để san bằng (lọc trung bình). Trong khi đó, bộ lọc thông cao làm suy giảm các thành phần tần số thấp. Các thành phần này thể hiện qua các đặc trưng thay đổi chậm của ảnh như độ tương phản và cường độ sánh trung bình. Hiệu quả chung của các bộ lọc thông cao là làm rõ các biên và chi tiết.
Lọc tuyến tính: lọc trung bình, lọc thông thấp
Do có nhiều loại nhiễu can thiệp vào quá trình xử lý ảnh nên cần có nhiều bộ lọc thích hợp. Với nhiễu cộng và nhiễu nhân ta dùng các bộ lọc thông thấp (Low Pass Filter), bộ lọc trung bình (Mean Filter).
a. Lọc trung bình (Mean Filter)
Với lọc trung bình, mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận và được định nghĩa như sau:
v(m,n) = k,lWa(k,l)y(m-k,n-l)
Nếu trong kỹ thuật lọc trên, chúng ta dùng các trọng số như nhau, phương trình trên sẽ trở thành:
v(m,n) = 1Nk,lWy(m-k,n-l)
Trong đó:
y(m,n) là ảnh đầu vào
v(m,n) là ảnh đầu ra
a(k,l) là cửa sổ lọc với a(k,l)=1NW
NW là số điểm ảnh trong cửa sổ lọc W.
Lọc trung bình có trọng số chính là thực hiện việc nhân tích chập ảnh đầu vào với hàm truyền đạt H có dạng:
H = 1N11…⋮⋮⋱11…1⋮1
Mạch lọc là một mặt nạ có kích thước NxN, trong đó tất cả các hệ số đều bằng 1. Đáp ứng là tổng các mức xám của NxN pixels chia cho NxN. Ví dụ mặt nạ 3x3 thì đáp ứng là tổng mức xám của 9 pixels chia cho 9. Nhân chập mặt nạ với tất cả các pixel của ảnh gốc chúng ta sẽ thu được ảnh kết quả qua bộ lọc Mean. Bộ lọc Mean có vai trò làm trơn ảnh, nhưng lại làm mờ đường biên của các đối tượng bên trong ảnh, làm mất tín hiệu cận nhiễu và không lọc được nhiễu xung.
Vì thế trong lọc trung bình, thường người ta phải ưu tiên cho các hướng để bảo vệ biên của ảnh khỏi bị mờ khi làm trơn ảnh. Các kiểu mặt nạ được sử dụng tùy theo các trường hợp khác nhau. Bộ lọc trên có thể hiểu là bộ lọc tuyến tính theo nghĩa là điểm ảnh ở tâm cửa số sẽ được thay bởi tổ hợp các điểm lân cận chập với mặt nạ. Một bộ lọc trung bình không gian khác cũng hay được sử dụng. Phương trình của bộ lọc đó có dạng:
Ym,n=12Xm,n+14Xm-1,n+Xm,n+Xm+1,n+ + Xm,n-1+Xm,n+1
Ở đây, nhân chập H có kích thuớc 2x2 và mỗi điểm ảnh kết quả có giá trị bằng trung bình cộng của nó với trung bình cộng của 4 lân cận gần nhất. Lọc trung bình trọng số là một trường hợp riêng của lọc thông thấp.
b. Lọc thông thấp (Low Pass Filter)
Lọc thông thấp thường được sử dụng để làm trơn nhiễu.Về nguyên lý của bộ lọc thông thấp tương tự như đã trình bày ở bộ lọc Mean. Trong kỹ thuật này người ta hay dùng một số nhân chập có dạng sau:
Hb = 1b+221b1bb2b1b1
Dễ dàng nhận thấy khi b=1, Hb chính là hàm truyền đạt của mạch lọc trung bình. Để hiểu rõ hơn bản chất khử nhiễu cộng của các bộ lọc này, ta viết lại phương trình thu nhận ảnh dưới dạng:
Xqsm,n=Xgm,n+ηm,n
Trong đó
Xqs là ảnh quan sát được
Xg là ảnh gốc
η là nhiễu cộng có phương sai σ2n
Như vậy theo cách tính của lọc trung bình ta có
Y(m,n) =1Nwk,lWXqsm-k,n-l+ηm,n
Hay ta có:
Ym,n=1Nwk,l∈WXqsm-k,n-k+σn2Nw
Như vậy nhiễu cộng trong ảnh đã giảm đi Nw lần.
Lọc phi tuyến: lọc trung vị và lọc ngoài
Các bộ lọc phi tuyến cũng hay được dùng trong kỹ thuật tăng cường ảnh. Trong kỹ thuật này, người ta dùng bộ lọc trung vị (Median Filter) và bộ lọc ngoài (Outlier) đối với trường hợp nhiễu xung.
a. Lọc trung vị (Median Filter)
Để thực hiện lọc Median trong lân cận của một pixel chúng ta sắp xếp các giá trị của pixel và các lân cận, xác định trung vị Median và định giá trị pixel. Với dãy x1, x2,…,xn đơn điệu tăng (giảm), trung vị được xác định theo công thức sau:
med =xn2 +1nếu x lẻxn2 nếu x chẵn
Đó là trung vị của một dãy. Ta có công thức lọc của phương pháp như sau:
vm,n= medym-k,n-l vớik,l ∈ W
Kỹ thuật này đòi hỏi giá trị các điểm ảnh trong cửa sổ phải xếp theo thứ tự tăng hay giảm dần so với giá trị trung vị. Kích thước cửa sổ thường được chọn sao cho số điểm ảnh trong cửa sổ là lẻ. Các cửa sổ hay dùng là cửa sổ kích thước 3x3, 5x5 hay 7x7.
Hình 1.8 Ảnh trước và sau bộ lọc Median
Do đó về nguyên lý thì mạch Median có thể tách được các điểm có cường độ sáng lớn như nhiễu xung và lọc các điểm có cường độ sáng tức thì (xung) hay còn gọi là các nhiễu muối tiêu. Lọc trung vị có lợi cho việc loại bỏ các điểm ảnh hay các hàng mà vẫn bảo toàn độ phân giải. Hiệu quả giảm khi số điểm trong cửa sổ lớn hay bằng một nửa số điểm trong cửa sổ. Điều này dễ giải thích vì trung vị là (Nw+1)/2 giá trị lớn nhất nếu Nw-số điểm ảnh trong cửa sổ lọc W là lẻ. Lọc trung vị cho trường hợp 2 chiều coi như lọc trung vị tách được theo từng chiều.
b. Lọc ngoài (Outlier Filter)
Giả thiết có ngưỡng nào đó cho các mức nhiễu (có thể dựa vào lược đồ xám). Tiến hành so sánh giá trị độ xám của một điểm ảnh với trung bình số học 8 lân cận của nó. Nếu sai lệch lớn hơn ngưỡng, điểm ảnh này được coi như nhiễu. Trong trường hợp đó, thay thế giá trị của điểm ảnh bằng giá trị trung bình 8 lân cận vừa tính được. Bộ lọc ngoài có thể diễn tả bằng công thức sau:
Ym,n=αw khi& Ym,n-αw>δum,n khi& Ym,n-αw≤δ
trong đó:
α(w) là trung bình cộng các điểm trong lân cận W
δ là ngưỡng ngoài
Các cửa sổ tính toán thường chọn là 3x3. Tuy nhiên, cửa sổ có thể mở rộng đến 5x5 hay 7x7 để đảm bảo tính tương quan giữa các điểm ảnh. Vấn đề quan trọng là xác định ngưỡng để loại nhiễu mà vẫn không làm mất thông tin của ảnh.
Kỹ thuật xử lý ảnh nhị phân
Với ảnh nhị phân, mức xám chỉ có hai giá trị là 0 và 1. Do vậy, ta xét một phần tử ảnh như một phần tử logic và có thể áp dụng các phép toán hình học (Morphology Operators) dựa trên khái niệm biến đổi hình học của một ảnh bởi một phần tử cấu trúc (Structural Element). Phép toán này được định nghĩa như sau: Giả thiết ta có đối tượng X và phần tử cấu trúc B trong không gian Euclide hai chiều. Kí hiệu Bx là dịch chuyển của B tới vị trí x.
Hai kỹ thuật cơ bản của phép toán hình học là: Điền đầy (Dilation) và ăn mòn (Erosion).
Điền đầy
Nhằm loại bỏ điểm đen bị vây bởi các điểm trắng. Phép điền đầy của X theo B là hợp của tất cả các Bx với x thuộc X:
X ⨁ B = x ∈XBx
Hình 1.9 Phép điền đầy
Ăn mòn
Là thao tác ngược lại của dãn ảnh, nhằm loại bỏ điểm trắng bị vây bởi các điểm đen. Phép ăn mòn của X theo B là tập hợp tất cả các điểm x sao cho Bx nằm trong X:
X⊝B={x: Bx ⊆X}
Hình 1.10 Phép ăn mòn
Phép mở (opening)
Được thực hiện bằng cách thực hiện phép điền đầy sau khi thực hiện phép ăn mòn. Phép toán này dùng để loại bỏ các điểm trắng trên nền đen
Hình 1.11 Phép mở
Hình 1.11 cho thấy các vùng trắng giữa các góc của ký tự sẽ biến mất sau khi thực hiện phép mở
Phép đóng (closing)
Được thực hiện bằng cách thực hiện phép ăn mòn sau khi thực hiện phép điền đầy. Phép toán này dùng để loại bỏ các điểm đen trên nền trắng.
Hình 1.12 Phép đóng
Biên và các kỹ thuật tìm biên
Biên là vấn đề quan trọng trong trích chọn đặc điểm trên ảnh, có thể hiểu biên là sự thay đổi đột ngột về cấp xám của các điểm ảnh. Đối với ảnh nhị phân, một điểm được gọi là điểm biên nếu nó là điểm đen có ít nhất một điểm trắng bên cạnh. Tập hợp các điểm biên tạo nên biên hay đường bao của đối tượng.
Phương pháp phát hiện biên cục bộ Gradient
Gradient [3] là một vector (x,y) có các thành phần biểu thị tốc độ thay đổi độ xám của điểm ảnh (theo khuôn khổ xử lý ảnh hai chiều, chúng ta chỉ xét theo hai hướng x,y) có nghĩa là:
∂f(x,y)∂x=f'x≈fx+dx, y-f(x, y)dx
∂f(x,y)∂y=f'y≈fx, y+dy-f(x, y)dy
Trong đó dx, dy là khoảng cách giữa 2 điểm kế cận theo hướng x, y tương ứng (thực tế chọn dx=dy=1). Đây là phương pháp dựa theo đạo hàm riêng bậc nhất theo hướng x,y. Gradient trong tọa độ góc (r,θ) với r là vector, θ là góc
df(r,θ)dr=∂f∂xdxdr+∂f∂ydydr=f'x cosθ+ f'ysinθ
f(r,θ) đạt giá trị cực đại khi dfr,θdr=0
Khi đó: f 'x cos θ + f 'y cos θ = 0
tanθ= sinθcosθ= f'xf'yθr= tan-1f'xf'yvà fmax= f'x2+f'y2
Theo định nghĩa về Gradient, nếu áp dụng nó vào xử lý ảnh, việc tính toán sẽ rất phức tạp. Để đơn giản mà không mất tính chất của phương pháp Gradient, người ta sử dụng kỹ thuật Gradient dùng cặp mặt nạ H1, H2 trực giao (theo 2 hướng vuông góc). Nếu địnhnghĩa g1, g2 là Gradient theo hai hướng x, y tướng ứng thì biên độ g(m,n) tại điểm (m,n) được tính:
gm,n=g12m,n+g22m,n=A0
θrm,n=tan-1(g2(m,n))
Để giảm độ phức tạp tính toán, A0 được tính gần đúng như sau:
A0 = |g1(m,n)| + |g2(m,n)|
Xét một số toán tử Gradient tiêu biểu như toán tử Robert, Sobel, Prewitt, đẳng hướng (Isometric), 4-lân cận như dưới đây.
a. Toán tử Robert (1965).
Robert áp dụng công thức tính Gradient tại điểm (x, y) như hình dưới:
Với mỗi điểm ảnh I(x,y) đạo hàm theo x, y được ký hiệu tương ứng:
gx=Ix+1,y-Ix,y gy=Ix,y+1-Ix,y
Các công thức kể trên được cụ thể hóa bằng các mặt nạ theo chiều x và y tương ứng nhưsau:
Hướng ngang (x) Hướng dọc (y)
A1=g1m,n+g2(m,n)
A2=Maxg1(m,n),g2(m,n)
b. Toán tử (mặt nạ) Sobel.
Toán tử Sobel được Duda và Hart đặt ra năm 1973 với các mặt nạ tương tự như củaRobert nhưng cấu hình khác như sau:
Hướng ngang (x) Hướng dọc (y)
c. Mặt nạ Prewitt
Toán tử được Prewitt đưa ra vào năm 1970 có dạng:
Hướng ngang (x) Hướng dọc (y)
d. Mặt nạ đẳng hướng:
Một mặt nạn khác cũng được nêu như dưới đây gọi là mặt nạ đẳng hướng (Isometric):
Hướng ngang (x) Hướng dọc (y)
e. Toán tử 4-lân cận (4-Neighbour Operator).
Toán tử 4-lân cận được Chaudhuri và Chandor (1984) nêu ra, trong đó mặt nạ có kíchthước 3x3 được thay cho mạt nạ 2x2 của toán tử Robert. Các mặt nạy này được cho:
Hình 1.13 Mặt nạ 8 hướng theo
Thuật toán tìm biên Canny:
Bộ tách sườn ảnh theo Canny (1986) [4] 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. Đâ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.
Quá trình tiến hành phương pháp trải qua một số bước như sau:
1. Làm trơn ảnh bằng bộ lọc Gauss nhằm giảm thiểu ảnh hưởng của nhiễu và các chi tiết không mong muốn trong cấu trúc ảnh.
2. Sau đó tính gradient của ảnh nhờ một trong các toán tử Roberts, Sobel hay Prewitt:
M(i,j)=gi2i,j+gj2i,j
θi,j=tan-1gii,j.gji,j
Xác định ngưỡng:
MTi,j= Mi,j nếu Mi,j>T0
Với T được chọn là phần tử biên
Dựa vào hướng Gradient để loại bỏ những điểm không thực sự là biên. Chúng ta kiểm tra các điểm MTi,j nếu có giá trị lớn hơn hai điểm lân cận dọc theo phương gradient θi,j thì giữ nguyên và ngược lại thì gán bằng 0.
Dùng ngưỡng kép T1 và T2 (T1<T2 ) tạo ra các các điểm trung gian nhằm nối liền các điểm biên đã xác định được từ trước theo cách sau:Những điểm MTi,jcó giá trị gradient lớn hơn T2 được xem là điểm biên. Những điểm MTi,jcó giá trị gradient nhỏ hơn T1 thì loại bỏ. Với những điểm có giá trị gradient nằm trong khoảng T1 và T2 thì kiểm tra thêm nếu nó liền kề với một điểm có gradient lớn hơn T1 thì điểm này được xem là biên.
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG CHẤM THI TRẮC NGHIỆM BẰNG CAMERA
Mô tả hệ thống
Yêu cầu đặt ra
Hệ thống đơn giản, giá cả hợp lý mà vẫn đảm bảo được độ ổn định, tính chính xác và tốc độ cao trong quá trình hoạt động. Hệ thống phải thỏa mãn những yêu cầu cơ bản sau:
Yêu cầu về giá thành và độ phức tạp:
Có giá thành cũng như chi phí vận hành rẻ hơn so với hệ thống máy OMR.
Bảo hành bảo trì dễ dàng, sử dụng các thiết bị sẵn có trong văn phòng.
Phần mềm OMR đơn giản và dễ dàng sử dụng
Yêu cầu về chức năng:
Hệ thống có thể chấm thi tự động với khay đựng được nhiều giấy.
Hệ thống nhận dạng và chấm được điểm thi trắc nghiệm ở nhiều hình thức khác nhau.
Hệ thống phải hoạt động ổn định, chính xác ở tốc độ cao.
Hệ thống chấm thi trắc nghiệm đề xuất:gồm 3 thành phần cơ bản: khay tời giấy, camera độ phân giải cao và hệ thống máy tính.
Ý tưởng thực hiện khay tời giấy là một khay có thể tự động tời giấy theo thời gian được lập trình. Tời định kỳ theo khoảng thời gian mà camera có thể chụp.
Camera là thiết bị ghi hình nên yêu cầu có độ phân giải cao và tốc độ chụp nhanh.
Hệ thống máy tính có thể là máy để bàn hoặc máy tính xách tay có cài hệ điều hành Windows
Sơ đồ khối hệ thống
Phần mềm
Phần cứng
Hệ thống tời giấy tích hợp camera
Nhận dạng phiếu thi
Tìm vùng chứa thông tin trên phiếu thi
Nhận dạng thông tin
File hoặc CSDL
Ảnh
Hình 2.1 Sơ đồ khối hệ thống chấm thi trắc nghiệm
Sơ đồ khối hệ thống chấm thi trắc nghiệm đề xuất nhưhình2.1, trong đó có những khối chức năng cơ bản sau:
Phần cứng
Hệ thống tời giấy tích hợp camera, là một hệ thống cơ khí tự động đưa PTLTN từ khay đựng phiếu tới vị trí xác định để camera thu nhận hình ảnh. Camera sẽ được kết nối với máy vi tính có cài đặt phần mềm OMR. Phần cứng sẽ được điều khiển bởi driver được cài đặt trên máy tính.
Phần mềm:
Nhận dạng vùng chứa phiếu thi trong ảnh, vùng chứa thông tin trên phiếu thi (mã đề, số báo danh, phần trả lời) và xử lý thông tin để cho ra kết quả. Kết quả sẽ được lưu vào file hoặc CSDL để in ấn, thống kê.
Mẫu phiếu trả lời trắc nghiệm
Cơ chế làm việc
Cơ chế làm việc của hệ thống được chia thành 3 quá trình
Quá trình thu nhận ảnh:
Tập PTLTN được đưa vào khay tời giấy. Thông qua hệ thống tời giấy, PTLTN được đưa đến vị trí xác định để camera thu nhận ảnh. Khi PTLTN tới vị trí chụp, tín hiệu chỉ thị chụp được gửi tới camera để thu nhận ảnh. Kết thúc quá trình thu nhận ảnh, tín hiệu chỉ thị tời được gửi tới hệ thống tời giấy. Hệ thống tời giấy sẽ đưa PTLTN từ vị trí chụp ra ngoài, đồng thời đưa PTLTN mới vào vị trí chụp.
Quá trình đọc thông tin trên ảnh:
Bốn góc của PTLTN trong ảnh thu nhận từ quá trình 1 được xác định thông qua các đặc trưng riêng, từ đó thực hiện biến đổi phối cảnh (perspective transformation) để tách vùng chứa phiếu thi ra khỏi ảnh nền và chuẩn hóa về một kích thước xác định. Từ ảnh chuẩn hóa, sẽ áp dụng các thuật toán xử lý ảnh để nâng cao chất lượng ảnh phiếu thi. Các vùng chứa thông tin: vùng số báo danh, vùng mã đề, vùng trả lời sẽ được nhận dạng và tách riêng ra. Công việc còn lại là sử dụng thuật toán nhận dạng dấu tích trên từng vùng để đưa ra kết quả.
Quá trình so sánh kết quả và lưu dữ liệu chấm thi:
Thông tin bài thi từ quá trình 2 sẽ được xem xét, đánh giá. Với mỗi mã đề của một môn thi trong một kỳ thi xác định sẽ có một đáp án tương ứng được lưu trong phần mềm. Tiến hành so sánh thông tin bài thi với đáp án tương ứng, ta sẽ đưa ra được kết quả bài thi. Kết quả có thể lưu vào file hoặc vào cơ sở dữ liệu phục vụ in ấn, thống kê.
Phần mềm chấm thi trắc nghiệm
Nhằm dễ dàng tạo giao diện, tích hợp thư viện xử lý ảnh, phần mềm sẽ được phát triển từ công cụ Visual Studio 2008, ngôn ngữ C++. Chương trình sẽ chạy trong môi trường Windows, sử dụng thư viện .NET framework để tạo giao diện và OpenCV để xử lý ảnh.
Theo yêu cầu và phạm vi đề ra ở phần mở đầu, phần mềm phải có các module sau:
Quản lý kỳ thi: cho phép tạo, sửa, xóa kỳ thi, môn thi, đề thi và soạn đáp án. Các dữ liệu về kỳ thi sau khi tạo xong sẽ được lưu lại để làm cơ sở cho việc chấm điểm.
Chấm điểm trực tiếp từ camera: nhằm thực hiện việc mô phỏng khả năng giao tiếp giữa camera và máy tính, thu nhận hình ảnh từ camera và thực hiện chấm điểm.
Chấm điểm từ file: các file ảnh sẽ được chụp và lưu lại từ trước. Phần mềm đọc các file ảnh này và cho ra kết quả. Mục đích của module này là đo thời gian thực hiện của chương trình, đánh giá độ chính xác của thuật toán chấm điểm trắc nghiệm.
Đề tài này tập trung vào việc xây dựng thuật toán chấm thi trắc nghiệm nên kết quả chấm điểm sẽ được lưu ra file excel chứ không tạo và lưu vào CSDL để đơn giản hóa chương trình, trong khi đó vẫn đảm bảo in ấn, thống kê được.
Giới thiệu về thư viện mã nguồn mở OpenCV
OpenCV (Open Computer Vision library) do Intel phát triển, được giới thiệu năm 1999 và hoàn thiện phiên bản 1.0 năm 2006. Thư viện OpenCV gồm hơn 500 hàm, được viết bằng ngôn ngữ lập trình C và tương thích với các hệ điều hành Windows, Linux, Mas OS, … đóng vai trò xác lập chuẩn giao tiếp, dữ liệu thuật toán cho lĩnh vực thị giác máy tính (Computer Vision) và tạo điều kiện cho mọi người tham gia nghiên cứu, phát triển ứng dụng.
Hình 2.2 Tổ chức thư viện OpenCV
Trước OpenCV không có một công cụ chuẩn nào cho lĩnh vực xử lý ảnh. Các đoạn code đơn lẻ do các nhà nghiên cứu tự viết thường không thống nhất và không ổn định. Các bộ công cụ thương mại như Matlab, Simulink, Halcon, … lại có giá cao chỉ thích hợp với các công ty phát triển ứng dụng lớn. Ngoài ra, các bộ công cụ này thường kèm theo phần cứng và phần lớn là mã đóng và được thiết kế riêng cho từng thiết bị, rất khó khăn cho việc mở rông ứng dụng.
OpenCV là công cụ hữu ích cho người mới làm quen với xử lý ảnh số vì các ưu điểm sau:
Được Intel phát triển theo hướng tối ưu hóa cho các ứng dụng xử lý và phân tích ảnh, với cấu trúc dữ liệu hợp lý, thư viện tạo giao diện, truy xuất thiết bị phần cứng được tích hợp sẵn, thích hợp để phát triển nhanh ứng dụng.
Là thư viện mã nguồn mở, miễn phí (với BSD license). Việc xây dựng trên mã nguồn mở giúp OpenCV trở thành công cụ thích hợp cho nghiên cứu và phát triển, với khả năng thay đổi, mở rộng và phát triển các mô hình, thuật toán.
Được sử dụng rộng rãi. Từ năm 1999 đến nay, OpenCV đã thu hút một lượng lớn người dùng, trong đó có các công ty lớn như Microsoft, IBM, Sony, Siemens, Google và các nhóm nghiên cứu ở Standford, MIT, CMU, Cambridge… Nhiều forum hỗ trợ và cộng động người sử dụng được thành lập, tạo nên kênh thông tin rộng lớn, hữu ích cho việc tham khảo, tra cứu.
Các chức năng của OpenCV tập trung vào thu thập ảnh, xử lý ảnh và các thuật toán phân tích dữ liệu ảnh, bao gồm:
Truy xuất ảnh và phim: đọc ảnh số từ camera, từ file ảnh và phim.
Cấu trúc dữ liệu ảnh số và các dữ liệu cần thiết: ma trận, vector, chuỗi, xâu và cây.
Xử lý ảnh căn bản: các bộ lọc, các chi tiết cạnh, góc, chỉnh đổi màu, phóng to thu nhỏ, hiệu chỉnh mức xám đồ.
Xử lý cấu trúc: tìm biên, nhận dạng chuyển động thay đổi trong không gian 3D, đối chiếu bản mẫu, tìm các đơn vị hình học cơ sở: mặt phẳng, đa giác, eclipse, đường thẳng.
Phân tích dữ liệu ảnh: nhận dạng thực thể, theo dõi các chi tiết và phân tích chuyển động.
Tạo giao diện đơn giản: hiển thị ảnh, thao tác bàn phím, chuột, thanh trượt để chỉnh thông số.
Chức năng vẽ và chú thích lên ảnh.
Thuật toán nhận dạng và chấm điểm trắc nghiệm bằng camera
Như sơ đồ hình 2.1 đã đề xuất ở trên, thuật toán nhận dạng sẽ thực hiện lần lượt qua các bước cụ thể như sau:
Nhận dạng phiếu thi
Tìm
phiếu thi
Biến đổi phối cảnh
Ảnh phiếu thi
Kết thúc
Bắt đầu
Ảnh
Lấy ngưỡng tự động
(1)
(2)
(3)
Hình 2.3 Lưu đồ thuật toán tìm phiếu thi
(1) Lấy ngưỡng tự động: chuyển từ ảnh màu thu nhận từ camera sang ảnh xám và lấy ngưỡng tự động bằng thuật toán Otsu.
(2) Tìm 4 góc phiếu thi: phiếu thi có hình chữ nhật, nếu camera bị lệch so với mặt phẳng phiếu thi thì ảnh phiếu thi có thể sẽ có dạng hình bình hành hoặc hình thang. Như vậy dù thế nào thì ảnh chụp của phiếu thi cũng sẽ là hình tứ giác.
Dựa vào đặc điểm này, ta tìm 4 góc của phiếu thì bằng cách tìm biên của ảnh nhị phân có được từ bước (1). Sau đó tìm đường bao của phiếu thi. Từ đường bao có thể xác định tọa độ 4 góc của phiếu thi.
4 góc của phiếu thi phải được sắp xếp theo đúng thứ tự trên trái, dưới trái, dưới phải, trên phải để thực hiện chính xác phép biến đổi phối cảnh tiếp theo. Thuật toán sắp xếp điểm này như sau:
Xác định tọa độ trọng tâm của 4 góc (tọa độ trọng tâm là trung bình cộng tọa độ của 4 điểm trên)
Xác định 2 điểm trên và dưới: 2 điểm trên là điểm có tọa độ y nhỏ hơn tọa độ trọng tâm, 2 điểm còn lại là điểm dưới.
Xác định được các điểm trên trái, dưới trái, dưới phải, trên phải bằng cách so sánh tọa độ x của 2 điểm trên và 2 điểm dưới, điểm nằm bên trái sẽ có x nhỏ hơn.
(3) Biến đổi phối cảnh:
Xác định ma trận biến đổi phối cảnh (perspective transform matrix) với các điểm nguồn (source point) là 4 điểm của phiếu thi tìm được ở trên, 4 điểm đích (destination point) tương ứng lần lượt sẽ là (0,0), (0,1188),(840,1188), (840,0).
Thực hiện phép biến đổi phối cảnh để chuẩn hóa phiếu thi về kích thước 840x1188.
Hình 2.4 Thực hiện phép biến đổi phối cảnh để chuẩn hóa phiếu thi
Tìm vùng chứa thông tin trên phiếu thi
Cân bằng độ sáng của ảnh
Lấy ngưỡng tự động
Ảnh các vùng phiếu thi
Kết thúc
Bắt đầu
Ảnh phiếu thi
Tiền xử lý
Tìm các vùng chứa thông tin
Biến đổi phối cảnh
(1)
(2)
(3)
(4)
(5)
Hình 2.5 Lưu đồ thuật toán tìm các vùng thông tin trên phiếu thi
(1) Tiền xử lý: chuyển ảnh phiếu thi đã xử lý từ bước tìm phiếu thi sang ảnh xám. Để nâng cao chất lượng ảnh, ta tiếp tục thực hiện lọc trung vị, lọc nhiễu Guassian cho ảnh xám.
(2) Cân bằng độ sáng của ảnh: việc bố trí nguồn sáng trong hệ thống tời giấy tích hợp camera có vai trò rất quan trọng trong việc lấy mẫu. Để có thể nhận dạng phiếu thi, các vùng chứa thông tin trên phiếu thi thì mẫu cần phải đảm bảo:
Phiếu thi và nền phải có độ tương phản cao
Nguồn sáng phải đặt ở vị trí thích hợp. Vì các vùng thí sinh tô bằng chì rất dễ bị phản xạ ánh sáng, nếu ánh sáng đến các vùng này phản xạ vào camera thì ảnh thu được tại các điểm này sẽ có màu trắng, việc nhận dạng sẽ không còn chính xác nữa.
Với hệ thống tời giấy đơn giản, ánh sáng phân bố trên ảnh thường không đồng đều, do đó nếu lấy ngưỡng tự động thì sẽ gây ra sai lệch thông tin, dẫn đến việc nhận dạng các vùng chứa thông tin không chính xác, các vùng tối do thiếu ánh sáng có thể bị hiểu nhầm là vùng thí sinh tô đen.
Vì vậy việc áp dụng thuật toán cân bằng độ sáng của phiếu thi có vai trò rất quan trọng để thực hiện các bước tiếp theo. Thuật toán này được thực hiện bằng cách:
Chia ảnh gốc cho ảnh của phép đóng (closing operator) của ảnh đó. Kết quả của phép chia này là một ảnh với giá trị các điểm ảnh có giá trị thực.
Chuẩn hóa (normalize) ma trận ảnh thực trên.Để hiển thị và xử lý ảnh ở các bước tiếp theo, ta cần phải lượng tử hóa giá trị của các điểm ảnh về mức 0 – 255 (mức 0 tương ứng với giá trị nhỏ nhất, 255 ứng với giá trị lớn nhất).
(3) Lấy ngưỡng tự động: lấy ngưỡng tự động bằng thuật toán Otsu từ ảnh thu được từ bước xử lý trên.
(4) Tìm các vùng chứa thông tin trên phiếu thi: các vùng chứa thông tin trên phiếu thi là mã đề, số báo danh, trả lời có đặc điểm chung là nằm trong các khung hình chữ nhật. Với kích thước phiếu thi chuẩn hóa ở độ phân giải 840x1188, các vùng này phải cách biên trên của phiếu thi ít nhất là 150 pixel và diện tích các vùng này phải lớn hơn 6000. Từ đó, ta sẽ áp dụng các bước xử lý tiếp theo:
Áp dụng thuật toán tìm biên Canny, sau đó tìm 4 góc của các hình chữ nhật trong phiếu thi. Sắp xếp 4 góc này theo đúng thứ tự: trên trái, dưới trái, dưới phải, trên phải như thuật toán trình bày ở bước 2, phần 2.2.1.
Vùng chứa thông tin sẽ là vùng có tọa độ y của góc trên trái >150. Lần lượt nhận dạng cụ thể các vùng mã đề, số báo danh, trả lời 1 (từ câu 1 - 25), trả lời 2 (câu 26 - 50), trả lời 3 (câu 51 - 75), trả lời 4 (câu 76 - 100) dựa vào tọa độ của góc trên trái:
Vùng số báo danh: x<680, y<240
Vùng mã đề: x>680, y<240
Vùng trả lời 1: x240
Vùng trả lời 2: 200240
Vùng trả lời 3: 330240
Vùng trả lời 4: x>530, y>240
Hình 2.6 Đặc điểm của các vùng chứa thông tin trên phiếu thi
(5) Biến đổi phối cảnh: nội dung trên phiếu thi rất dễ bị lệch so với các cạnh của phiếu thi do in ấn bằng các loại máy in thông dụng hoặc phiếu thi bị nhàu, cong. Để hiệu chỉnh việc nghiêng, lệch của các vùng chứa thông tin trên phiếu thi, thuật toán biến đổi phối cảnh sẽ được thực hiện để chuẩn hóa các vùng phiếu thi, tạo tiền đề cho bước xử lý tiếp theo được chính xác. Kích thước chuẩn hóa của các vùng cụ thể như sau:
Vùng số báo danh: 180x270
Vùng mã đề: 90x270
Các vùng trả lời: 180x625
Ảnh đầu ra của bước xử lý này là ảnh nhị phân của các vùng phiếu thi với kích thước chuẩn.
Nhận dạng thông tin
Tìm tọa độ vùng tô đen
Xác định nội dung
Kết quả
Kết thúc
Bắt đầu
Ảnh nhị phân
Tìm biên
(1)
(2)
(3)
Hình 2.7 Lưu đồ thuật toán nhận dạng thông tin
(1) Tìm biên: áp dụng thuật toán tìm biên Canny để tìm các vùng thí sinh tô đen (có dạng hình tròn). Tuy đã có bước lọc nhiễu ở bước tiền xử lý, tuy nhiên với các nhiễu lớnCác vùng này phải có diện tích lớn hơn 55(để phân biệt với nhiễu).
(2) Tìm tọa độ vùng tô đen: có thể xem tâm của hình chữ nhật bao quanh các vùng tô đen là tọa độ của vùng tô đen (hay nói chính xác hơn là trọng tâm của vùng tô). Xác định được biên của các vùng khoanh tròn, ta sẽ xác định được hình chữ nhật bao quanh các vùng này. Vậy tọa độ vùng tô đen chính là tọa độ tâm của hình chữ nhật bao quanh vùng tô.
(3) Xác định nội dung trong từng vùng:
Vùng số báo danh và mã đề: Tọa độ x của vùng tô đen cho biết vị trí của chữ số, tọa độ y cho biết chữ số này là gì.
a) Số báo danh b) Mã đề
Hình 2.8 Xác định nội dung thông tin vùng số báo danh và mã đề
Vùng trả lời : Tọa độ y của vùng tô đen cho biết thứ tự câu trả lời của thí sinh, tọa độ x cho biết đáp án mà thí sinh lựa chọn.
Hình 2.9 Xác định nội dung thông tin vùng trả lời
Thực hiện phép chia lấy nguyên của x và y độ dài đơn vị của mỗi ô thông tin, ta sẽ có được thông tin số báo danh và mã đề trên từng vùng tương ứng của phiếu thi.
Kết quả của bước xử lý này sẽ là chuỗi chứa thông tin về số báo danh, mã đề, đáp án của thí sinh.
Thuật toán xử lý và nhận dạng thông tin trên phiếu thi trắc nghiệm kết thúc ở bước này. Từ kết quả có được, ta sẽ thực hiện các bước so sánh để có thông tin cụ thể của thí sinh, điểm số của thí sinh.
ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN
Xây dựng phần mềm chấm thi trắc nghiệm
Giao diện của phần mềm
Hình 3.1 Giao diện chính của chương trình
Phần mềm gồm có 3 module chính:
Quản lý kỳ thi
Chấm điểm từ file
Chấm điểm từ camera
Quản lý kỳ thi
Hình 3.2 Giao diện module quản lý kỳ thi
Module này cho phép người dùng quản lý kỳ thi, môn thi, đề thi và đáp án bằng giao diện trực quan, gồm các chức năng:
Thêm, sửa, xóa kỳ thi.
Hình 3.3 Các chức năng thêm, sửa, xóa kỳ thi
Thêm, sửa, xóa môn thi theo kỳ thi
Hình 3.4 Các chức năng thêm, sửa, xóa môn thi
Thêm, sửa, xóa đề thi theo môn thi, kỳ thi - tạo và sửa đáp án
Hình 3.5 Chức năng thêm đề thi
Hình 3.6 Chức năng sửa đề thi - đáp án
Các tham số của kỳ thi được lưu vào file kythi.xml. File XML này có cấu trúc như sau:
A,D,A,C,A,D,C,B,B,B,B,D,B,D,B,B,A,D,A,A,C,B,C,B,D,D,D,A,A,D,D,A,A,C,D,B,A,D,D,A,B,C,B,D,C,C,B,C,B,C,C,A,B,D,C,B,A,C,C,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Hình 3.7 Cấu trúc file kythi.xml
Như vậy, việc tạo các tham số của kỳ thi có thể thực hiện không chỉ bằng giao diện mà phần mềm cung cấp mà còn có thể tạo, thay đổi bằng cách chỉnh sửa trực tiếp trên file kythi.xml.
Chấm điểm từ file
Hình 3.8 Giao diện module “Chấm điểm từ file”
Module này cho phép chọn thư mục chứa ảnh phiếu thi và các tham số kỳ thi, môn thi tương ứng. Sau đó tiến hành chấm điểm thi trắc nghiệm dựa trên thuật toán đã đề xuất và xây dựng. Kết quả số báo danh, mã đề, kết quả trả lời của thí sinh, điểm và đường dẫn của bài thi sẽ được hiển thị theo dạng bảng ở danh sách “Bài thi”. Đối với các bài thi không nhận dạng được, phần mềm sẽ thông báo ở danh sách “Bài thi lỗi” kèm theo tên file để người dùng có thể lấy mẫu lại hoặc thực hiện chấm thi bằng tay.
Hình 3.9 Giao diện hiển thị các bài thi không nhận dạng được
Kết quả chấm điểm có thể được lưu ra file excel theo mẫu đã chuẩn bị trước để in ấn, thống kê.
Hình 3.10 Cấu trúc file excel
Chấm điểm từ camera
Module này cho phép hiển thị hình ảnh từ camera IP lên màn hình của phần mềm. Sau đó chấm thi và hiển thị kết quả lên màn hình.
Yêu cầu để module này hoạt động là:
Camera sử dụng là camera từ điện thoại chạy hệ điều hành Android, kết nối wifi cài đặt ứng dụng IP WebCam. Ứng dụng này sẽ phát luồng dữ liệu video thu được từ camera qua địa chỉ IP của điện thoại.
Hình 3.11 Ứng dụng IP WebCam
Cấu hình địa chỉ IP để nhận luồng dữ liệu tại tag của file config.xml.
60
Hình 3.12 Cấu trúc file config.xml
Kết quả khi chạy module này:
Hình 3.13 Giao diện module chấm điểm trực tiếp từ camera
Kết quả của thuật toán
Dữ liệu ảnh đầu vào
Dữ liệu bài thi trắc nghiệm được lấy từ môn Hóa học, kỳ thi Đại học năm 2012, mỗi đề thi gồm có 60 câu hỏi. Mỗi đề thi sẽ có 6 mẫu phiếu trắc nghiệm, trong đó có 1 mẫu sẽ đúng hoàn toàn với đáp án, các mẫu khác có câu trả lời sai lệch với đáp án theo bảng 3.1.
Phiếu thi
SBD
Mã đề
Trả lời
Điểm
1
041340
273
A,D,A,C,A,D,C,B,B,B,B,D,B,D,B,B,A,D,A,A,C,B,C,B,D,D,D,A,A,D,D,A,A,C,D,B,A,D,D,A,B,C,B,D,C,C,B,C,B,C,C,A,B,D,C,B,A,C,C,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
60
2
041341
273
A,D,A,C,A,B,A,B,B,C,B,D,B,D,B,B,A,D,A,D,C,B,C,B,D,A,D,A,A,D,D,A,B,C,D,B,A,D,D,A,B,C,A,D,C,D,B,C,B,C,C,A,B,D,C,B,A,C,C,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
52
3
041342
273
B,C,A,C,A,A,C,B,B,C,A,D,B,D,D,C,A,A,B,A,C,A,C,C,D,C,D,D,A,D,D,A,A,A,D,B,A,D,A,B,B,C,B,D,C,C,B,C,A,C,C,A,D,D,C,B,A,D,C,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
41
4
041343
273
A,B,A,D,A,C,A,B,A,C,A,A,B,A,B,A,B,A,C,A,C,A,A,C,C,C,D,B,A,B,D,A,B,C,D,A,A,D,B,A,D,C,C,D,A,C,C,C,D,C,D,C,A,D,A,D,A,D,C,D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
25
5
041344
273
A,D,B,C,A,A,C,A,B,D,C,D,D,A,B,C,A,A,C,A,C,B,C,B,D,A,D,C,D,A,D,C,A,C,B,B,B,D,A,A,B,B,B,D,C,B,B,C,B,C,C,A,B,D,C,B,B,C,C,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
38
6
041345
318
D,A,D,A,D,C,B,B,C,C,C,C,B,C,D,A,A,D,C,B,C,D,B,C,D,D,C,B,C,B,D,D,B,A,D,A,C,A,D,A,B,A,B,A,D,D,B,A,A,D,A,B,C,B,C,B,A,C,A,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
60
7
041346
318
D,A,D,B,D,C,B,B,C,C,A,C,B,C,D,A,B,D,C,B,C,D,C,C,D,D,C,B,D,B,D,D,B,A,A,B,C,A,D,A,B,A,B,A,D,D,B,C,A,D,D,B,C,B,C,B,A,C,A,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
51
8
041347
318
D,A,B,A,D,C,B,A,C,C,C,C,D,C,A,A,A,A,B,B,C,D,B,D,A,D,C,C,A,B,D,B,C,A,D,A,C,A,D,A,B,A,B,A,D,D,C,A,A,D,A,B,C,B,C,B,A,C,A,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
47
9
041348
318
A,B,D,A,C,C,B,D,C,A,C,A,B,C,B,A,B,D,C,B,D,D,B,A,D,A,A,C,C,B,B,D,B,B,A,A,B,D,B,C,A,D,B,A,D,D,B,A,A,D,A,C,C,B,C,B,A,C,C,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
36
10
041349
318
D,B,D,C,A,C,C,B,D,D,C,C,B,A,D,C,D,D,B,C,D,B,B,C,A,D,B,B,A,B,B,C,B,A,A,A,C,C,D,A,B,A,D,A,C,A,B,A,C,D,A,C,C,B,B,B,A,B,A,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
33
11
041350
482
D,A,A,A,B,C,B,B,C,D,D,D,D,D,A,C,C,A,D,B,C,B,B,B,C,D,D,B,C,A,C,A,A,C,B,C,A,B,C,C,A,C,B,A,A,D,D,B,D,A,A,A,D,C,D,C,B,D,B,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
60
12
041351
482
A,B,A,A,B,D,B,B,C,D,D,D,D,A,A,C,B,A,D,B,C,A,B,B,C,A,D,B,C,A,C,A,A,C,B,C,A,D,C,C,A,C,B,C,A,D,B,B,D,C,A,A,D,D,D,C,B,D,B,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
48
13
041352
482
D,B,C,D,D,C,A,C,C,A,B,D,C,A,C,D,C,D,A,A,B,C,A,B,C,C,D,C,B,A,C,B,A,D,C,D,B,A,B,C,A,A,D,C,B,D,A,C,C,C,A,A,B,C,D,A,C,D,B,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
20
14
041353
482
A,A,D,B,B,C,C,A,C,B,D,D,B,C,A,C,A,A,D,B,D,D,B,B,D,D,B,B,C,D,C,B,A,C,A,C,A,B,D,C,B,C,B,A,B,D,D,B,A,B,A,A,C,C,D,C,C,D,A,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
35
15
041354
482
D,B,C,D,B,C,A,B,C,A,B,D,D,A,A,D,C,A,A,B,B,B,A,B,C,C,D,B,B,A,C,B,A,C,B,C,B,B,B,C,A,A,D,C,A,D,D,B,D,A,A,A,B,C,D,C,C,D,B,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
39
16
041355
641
A,A,A,D,B,D,A,B,B,B,C,A,D,B,C,B,B,A,D,D,C,A,C,B,A,C,A,A,C,C,C,D,B,D,C,D,B,B,A,B,C,D,B,C,D,C,D,D,B,B,C,D,A,A,D,A,A,C,C,D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
60
17
041356
641
A,B,A,D,B,D,A,A,C,D,C,B,D,B,D,B,A,A,B,D,C,C,D,B,A,C,A,A,C,B,D,A,B,D,C,D,B,B,A,B,C,D,C,D,D,B,D,A,B,A,C,D,B,C,D,B,D,A,A,D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
36
18
041357
641
A,A,C,D,B,D,A,A,B,B,D,A,D,B,D,B,B,A,D,D,A,A,C,B,C,C,C,A,C,C,C,D,B,D,C,D,D,C,A,B,C,D,B,C,A,C,D,B,C,B,C,D,A,A,D,C,D,C,C,D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
46
19
041358
641
A,A,A,D,D,D,A,A,B,A,C,A,D,B,C,B,C,A,C,B,C,A,C,C,A,C,B,B,C,C,D,D,B,D,C,D,B,B,A,B,C,D,B,C,D,C,D,D,B,B,C,D,A,A,D,A,A,C,C,D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
50
20
041359
641
D,A,C,D,B,D,A,A,B,B,D,A,D,B,D,B,B,A,D,D,A,A,C,B,C,C,C,A,C,C,C,D,B,D,C,D,D,C,A,B,C,D,B,C,A,C,D,B,C,B,C,D,A,A,D,C,D,C,C,D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
45
21
041360
758
D,D,B,C,D,D,D,A,B,C,C,B,C,C,B,D,B,C,B,D,A,A,C,C,C,B,A,A,D,B,B,C,D,B,A,B,D,B,A,D,B,A,A,C,B,D,C,D,A,B,A,D,D,C,A,A,A,C,A,C,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
60
22
041361
758
B,C,B,C,D,B,B,A,B,C,D,A,A,C,B,D,C,C,B,B,A,B,D,A,C,B,A,D,D,D,A,C,D,C,A,B,A,B,A,D,C,A,A,D,B,A,C,D,A,B,A,D,C,C,A,A,B,C,A,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
37
23
041362
758
A,D,B,A,D,D,D,A,B,D,C,B,C,C,B,D,B,D,C,D,A,A,D,C,D,A,A,A,D,B,C,C,D,B,D,B,D,B,A,D,A,A,A,C,B,C,D,D,A,D,A,D,D,C,B,B,C,C,A,C,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
43
24
041363
758
B,C,B,C,D,B,B,A,C,C,D,A,A,B,C,D,C,C,B,B,A,B,D,A,C,A,A,D,D,D,A,C,D,C,A,B,A,B,B,D,C,A,A,D,B,A,C,C,C,B,A,A,C,C,A,A,B,C,A,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
29
25
041364
758
A,D,B,A,D,D,B,A,B,D,A,B,A,C,B,D,C,D,C,C,A,A,D,C,D,A,A,A,D,B,C,C,D,B,D,B,A,C,A,D,A,A,D,C,B,C,D,D,A,D,D,D,D,C,B,B,C,C,A,B,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
33
26
041365
925
C,C,B,D,D,D,A,C,C,D,C,C,C,A,B,B,A,B,A,A,B,C,A,A,C,D,B,D,C,A,A,C,C,B,B,D,B,B,D,C,D,B,A,D,C,D,B,C,B,A,D,D,C,A,A,D,C,A,D,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
60
27
041366
925
C,C,B,D,D,D,A,C,C,D,C,C,C,A,B,B,A,B,A,A,B,C,A,A,C,A,B,D,C,A,A,C,C,B,B,D,B,B,D,C,D,B,A,D,C,D,B,C,B,A,D,D,C,A,A,D,C,A,D,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
59
28
041367
925
C,C,B,D,D,D,A,C,D,D,C,C,C,C,B,B,A,C,A,A,B,A,A,A,C,D,B,D,B,B,A,C,C,B,C,D,D,B,D,A,D,B,A,D,C,D,B,C,D,C,C,D,C,A,B,D,C,A,D,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
47
29
041368
925
D,A,B,D,D,A,D,C,D,D,C,C,C,B,B,B,A,D,A,A,B,A,C,A,D,D,B,C,B,B,A,C,C,B,C,D,D,B,D,A,D,B,B,D,C,D,B,C,D,C,C,D,C,A,B,D,C,A,D,A,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
39
30
041369
925
D,A,B,D,D,A,D,C,D,C,D,C,C,B,C,B,A,D,A,A,B,A,C,A,D,D,B,C,B,B,A,D,C,B,C,D,D,B,D,A,D,B,B,B,D,D,B,C,D,C,C,D,C,A,B,D,C,A,D,D,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
32
Bảng 3.1 Dữ liệu bài thi
Các phiếu thi sẽ được in màu trên loại giấy thông dụng và được tô theo dữ liệu đã chuẩn bị trước này. Sau đó lấy mẫu các phiếu thi bằng máy ảnh Sony Cyber-shot DCS-90. Ảnh có độ phân giải 1944x2592.
Song song với việc lấy mẫu, đề thi và phần trả lời tương ứng sẽ được tạo ra bằng module “Quản lý kỳ thi” trên phần mềm đã xây dựng. Phần mềm được xây dựng trên phiếu thi cho phép có 100 câu hỏi - đáp án. Vì vậy, để chương trình tính điểm đúng thì cần phải cấu hình số câu hỏi tại tag trong file config.xml như hình 3.10.
Kết quả xây dựng thuật toán
Tìm phiếu thi
Yêu cầu ảnh đầu vào ở bước này là phiếu thi và nền phải có độ tương phản cao, tốt nhất là nền màu đen hoặc xanh đậm và đồng nhất. Đây là yêu cầu tiên quyết và quan trọng để thực hiện các bước nhận dạng tiếp theo, nếu biên của phiếu thi bị nhiễu thì sẽ không nhận dạng được phiếu thi.
Hình 3.14 Mẫu không nhận dạng được vùng phiếu thi
Với điều kiện lấy mẫu ở tập CSDL ảnh ở mục 3.2.1, ta sẽ thấy ảnh nhị phân sau khi thực hiện thuật toán lấy ngưỡng tự động Otsu phân biệt rõ ràng giữa vùng phiếu thi (trắng) và nền (đen):
Hình 3.15 Ảnh gốc và ảnh nhị phân
Kết quả sau khi thực hiện thuật toán tìm biên, xác định và sắp xếp 4 góc của phiếu thi:
Hình 3.16 Biên và 4 góc của phiếu thi
Ảnh đầu ra của thuật toán tìm phiếu thi:
Hình 3.17 Ảnh đầu ra của thuật tìm phiếu thi
Tìm vùng chứa thông tin trên phiếu thi
Ảnh phiếu thi sau khi chuyển sang ảnh xám và lọc nhiễu:
Hình 3.18 Ảnh phiếu thi sau khi chuyển mức xám và lọc nhiễu
Ảnh phiếu thi sau khi tăng độ sáng và thực hiện phép mở (opening):
Hình 3.19 Ảnh phiếu thi sau khi tăng độ sáng
Hình 3.20 Ảnh phiếu thi sau khi thực hiện phép mở
Kết quả tìm các vùng trên phiếu thi:
Hình 3.21 Các vùng chứa thông tin trên phiếu thi
Ảnh đầu ra của thuật toán tìm vùng chứa thông tin trên phiếu thi
Hình 3.22 Vùng số báo danh và vùng mã đề
Hình 3.23 Các vùng trả lời
Nhận dạng thông tin trên từng vùng
Áp dụng thuật toán đã đề xuất ở mục 2.3.3 ta có kết quả nhận dạng cho từng vùng:
Hình 3.24 Kết quả nhận dạng thông tin vùng số báo danh
Hình 3.25 Kết quả nhận dạng thông tin vùng mã đề
Đối với vùng trả lời, nội dung thông tin 1, 2, 3, 4 sẽ lần lượt tương ứng với các lựa chọn A, B, C, D
Hình 3.26 Kết quả nhận dạng thông tin vùng trả lời
Kết quả của thuật toán chấm thi trắc nghiệm đã đề xuất
Đưa tập ảnh đầu vào đã chuẩn bị ở mục 3.2.1 (gồm 30 mẫu) vào chương trình và chấm thi. Kết quả hoàn toàn trùng khớp với dữ liệu bài thi đã chuẩn bị (bảng 3.1), độ chính xác đạt 100%.
Hình 3.27 Kết quả chấm thi trên các mẫu đã chuẩn bị
Thời gian xử lý là một yếu tố quan trọng ảnh hưởng đến tốc độ hoạt động của hệ thống. Thực nghiệm chấm thi trên máy tính DELL Optiplex 380, bộ vi xử lý Intel Core 2 Duo E7500 tốc độ 2,93Ghz, RAM 4Gb tại các thời điểm khác nhau với 30 mẫu trên, tốc độ chấm thi nằm trong khoảng 13 - 16s. Như vậy tốc độ nhận dạng khoảng 433 - 533ms/bài thi.
Đánh giá kết quả
Sau khi hoàn thiện thuật toán nhận dạng thông tin trên phiếu thi, qua thực nghiệm trên phần mềm chấm thi trắc nghiệm với các module: quản lý kỳ thi, chấm điểm từ file, chấm điểm trực tiếp từ camera, tôi có nhận xét:
Với quy mô của luận văn này, module quản lý kỳ thi đạt được yêu cầu đề ra là quản lý các tham số của một kỳ thi, giúp người dùng tạo, sửa, xóa: kỳ thi, môn thi, đề thi, đáp áp bằng giao diện trực quan. Tuy nhiên, để phát triển thành một ứng dụng thực sự, module này cần phải phát triển thêm một số chức năng khác để có thể quản lý tham số như:
Quản lý ngân hàng đề thi, trộn và tạo đề thi.
Thông tin chi tiết của thí sinh, lưu trữ bài thi của thí sinh để thực hiện việc lưu trữ và phúc khảo lại bài thi.
Hội đồng thi, phòng thi.
Quản lý điểm, điểm ưu tiên, điểm khu vực.
Tìm kiếm, tạo và xuất các loại báo cáo.
Tạo CSDL để lưu trữ, thuận tiện trong việc chia sẻ, sử dụng ứng dụng từ xa, đảm bảo tính bảo mật dữ liệu.
Module chấm điểm từ file đã cho thấy độ chính xác, độ tin cậy và tốc độ hoạt động của chương trình với các mẫu đầu vào được in trên giấy thông thường, các mẫu có chất lượng không quá cao. Đây là module cơ bản và quan trọng nhất của phần mềm OMR.
Module chấm điểm bằng camera: mô phỏng khả năng giao tiếp giữa máy tính và camera, tạo tiền đề cho việc phát triển giao tiếp giữa máy tính với hệ thống tời giấy, điều khiển tốc độ của hệ thống tời giấy, phối hợp đồng bộ với camera để việc thu nhận ảnh, lấy mẫu đạt kết quả tốt nhất.
Như vậy khả năng ứng dụng vào thực tế của hệ thống chấm thi trắc nghiệm bằng camera đề xuất là rất khả quan. Hướng phát triển trong tương lai chủ yếu đó là hoàn thiện và tối ưu hóa bộ phận cơ khí, bao gồm cơ cấu tời giấy và chụp ảnh. Mục tiêu hướng đến là phát triển thêm các tính năng mà luận văn này chưa hoàn thiện được và tích hợp toàn bộ hệ thống thành một khối thống nhất, ổn định, linh động, đảm bảo tính tự động, tốc độ chấm thi càng nhanh càng tốt, đồng thời giảm thiểu chi phí đầu tư, chi phí vận hành, bảo trì. Có như vậy thì hệ thống mới có tính khả dụng cũng như tính cạnh tranh của hệ thống trong thực tế.
KẾT LUẬN VÀ KIẾN NGHỊ
Trên đây, tôi đã trình bày toàn bộ nội dung luận văn tốt nghiệp “Xây dựng hệ thống chấm điểm trắc nghiệm sử dụng camera”. Luận văn đã đề cập tới một số kỹ thuật xử lý ảnh cơ bản và nâng cao nhằm nâng cao chất lượng, xử lý và nhận dạng các đặc trưng ảnh ứng dụng trong việc chấm thi trắc nghiệm. Thuật toán đề xuất và phần mềm chấm điểm chính xác trên các mẫu khác nhau về kích thước, góc nghiêng và sự ảnh hưởng bởi nhiễu. Từ kết quả thực nghiệm có thể thấy rằng, hệ thống sẽ đạt độ chính xác 100% với điều kiện lấy mẫu tốt.
Tuy nhiên, trong điều kiện thời gian hạn chế với khối lượng công việc lớn, nên hệ thống vẫn còn nhiều tính năng chưa phát triển được.
Mẫu phiếu thi sử dụng trong thuật toán đề xuất là mẫu phiếu thi đại học, cao đẳng đang được áp dụng hiện nay. Các các mẫu khác có những đặc điểm tương tự như mẫu này thì vẫn có thể áp dụng được thuật toán đã đề xuất để chấm điểm. Tuy nhiên, với các mẫu khác, chẳng hạn như mẫu phiếu thi TOELF, TOEIC,... thì không thể nhận dạng bằng thuật toán trên được. Hiện nay, có một số phần mềm OMR cho phép tạo mẫu chấm thi bất kỳ bằng cách định nghĩa các vùng thông tin trên phiếu thi trước, sau đó sẽ áp dụng với hàng loạt các phiếu thi khác. Tuy nhiên, cách này chỉ hoạt động đúng với điều kiện:
Độ chính xác khi in ấn gần như là tuyệt đối.
Lấy mẫu phiếu thi ở điều kiện tốt, độ phân giải cao, ít nhiễu.
Với điều kiện như vậy thì giá thành ở khâu in ấn, hệ thống tời giấy sẽ rất cao. Vì vậy, phương pháp tốt nhất vẫn là phải phát triển thuật toán nhận dạng dựa trên các đặc trưng riêng của từng mẫu.
Một cách làm khác đơn giản hơn là tạo ra mẫu phiếu thi có các đặc trưng tương tự với mẫu phiếu thi trắc nghiệm Đại học:
Có các vùng chứa thông tin nằm trong các khung hình chữ nhật
Các vùng tô có kích thước bằng nhau, phân bố đều trong các vùng đó.
Với cách này thì ta chỉ việc thay đổi khoảng cách tương quan giữa các vùng chứa thông tin trên phiếu thi (bước 4 trong thuật toán tìm vùng chứa thông tin trên phiếu thi, mục 2.3.2). Như vậy vẫn sử dụng được hệ thống đã đề xuất để chấm điểm.
TÀI LIỆU THAM KHẢO
[1] Markus Kuhn, “Digital Signal processing”, University of Cambridge, September 09, 2009
[2] Abdul J.Jerri, “The Shannon Sampling Theorem - Its Various Extensions anh Applications: A Tutorial review”, November 11, 1977
[3] TS. Nguyễn Văn Ngọ, “Giáo trình Xử Lý Ảnh”, NXB Đại học Quốc gia, 2001
[4] PGS.TS. Nguyễn Quang Hoan, “Giáo Trình Xử Lý Ảnh”, HV Bưu Chính Viễn Thông, 12/2006
[5] truy cập lần cuối ngày 29/05/2013
[6] truy cập lần cuối ngày 29/05/2013
[7] truy cập lần cuối ngày 29/05/2013
[8] truy cập lần cuối ngày 29/05/2013
[9] truy cập lần cuối ngày 29/05/2013
[10] truy cập lần cuối ngày 29/05/2013
Các file đính kèm theo tài liệu này:
- lv_chamthitracnghiem_minhtoan_6_6_2013_1098.docx