Đối với các form nhập liệu thì các vùng đánh dấu là rất phổ biến do sự đơn giản cũng như khả năng nhận dạng chính xác cao. Các vùng đánh dấu trong form thường xuất hiện dưới dạng câu hỏi đa lựa chọn hoặc đơn lựa chọn, nhiệm vụ của nhận dạng là phát hiện các ô đã được tô trên ảnh.
Một cách tổng quát mỗi vùng đánh dấu được coi là có n hàng và m cột. Thông thường m lớn hơn hoặc bằng 2 và nhỏ hơn hoặc bằng 5, tuy nhiên biên độ biến đổi của n lớn hơn rất nhiều, ví dụ như trong trường hợp bài thi trắc nghiệm
Hình 2-25: Vùng đánh dấu trả lời câu hỏi trong bài thi trắc nghiệm 2.2.1.1 Tách ô đánh dấu
Phần tách vùng chỉ cho ta một vùng tìm kiếm của vùng đánh dấu, để nhận biết một ô có bị tô đen hay không ta cần tách ra từng ô riêng biệt để so sánh các ô này với nhau, xem ô nào đã bị tô. Thêm vào đó vùng tìm kiếm cần được mở rộng một khoảng
margin để tránh tình trạng bị mất do xác định vùng có sai số.
Nhận xét thấy rằng trong những vùng đánh dấu, các ô cách đều nhau theo một khoảng cách nhất định theo chiều dọc và theo chiều ngang. Vùng giữa các ô thường để trống, nếu có các ký tự như chú thích thì cũng cách các ô một khoảng và không bao giờ dính liền với các ô. Dựa vào đặc điểm này, để xác định các ô, một phép chiếu theo cả chiều dọc và chiều ngang được thực hiện, những đoạn có ô đánh dấu là những đoạn có biên độ cao đột ngột.
Do có chữ chú thích trong vùng ô đánh dấu nên có thể ảnh hưởng đến kết quả của phép chiếu. Nếu như trong một ảnh tổng quát khi mà ta không biết gì về thông tin
phân bố của ảnh, việc tách riêng từng ô theo phương pháp đề xuất sẽ khó mang lại kết quả mong muốn, thay vào đó ta phải dùng những phương pháp khác ví dụ như phát hiện đường tròn trong vùng. Giải pháp này khá phức tạp do ta không biết trước kích thước của đường tròn cũng như làm tăng khối lượng tính toán lên rất nhiều.
Tuy nhiên như bài toán đã xác định, việc nhận dạng được thực hiện trên ảnh đã biết trước một số thông tin cung cấp bởi mẫu. Do đó ta hoàn toàn có thể áp dụng phép chiếu, một phương pháp đơn giản nhưng lại hiệu quả hơn rất nhiều.
Các bước thực hiện như sau :
Bƣớc 1 : Thực hiện phép chiếu theo chiều ngang
Hình 2-26: Kết quả phép chiếu theo chiều ngang
Vùng ảnh đánh dấu có độ cao là h, phép chiếu tạo ra một mảng tích lũy Project[h] với kích thước h và mỗi phần tử đại diện cho tổng số điểm đen trên từng hàng trong ảnh.
Bƣớc 2 : Lọc từ mảng các phân đoạn tiềm năng Giá trị trung bình các phần tử trong mảng tích lũy
0 Project( ) h i i p h Công thức 2-13
Từ mảng tích lũy, lọc ra các phân đoạn mà mỗi phần tử trong đó có giá trị lớn hơn p.
Hình 2-27: Các phân đoạn tiềm năng
Bƣớc 3 : Tìm các phân đoạn đúng trong các phân đoạn tìm được ở bước 2 Với các tham số đã biết : kích thước ô R, khoảng cách giữa các ô D, vị trí ô đầu margin, tỉ lệ co giãn scale. Tìm vị trí đúng của ô đầu tiên dựa vào các phân đoạn, hợp các phân đoạn nếu cần thiết, sau đó và lọc ra các phân đoạn cách nhau khoảng cách xấp xỉ D và kích thước R nối tiếp từ phân đoạn đầu.
Hình 2-28: Các phân đoạn đúng tìm đƣợc
Bƣớc 4 : ta đã tìm được vị trí các ô theo chiều ngang, ghép các phân đoạn lại và tiếp tục chiếu theo chiều thẳng đứng theo cách tương tự.
(a)
(b)
(c)
Hình 2-29: (a) Kết quả phép chiếu theo chiều dọc, (b) các phân đoạn tiềm năng, (c) các phân đoạn đúng tìm đƣợc
2.2.1.2 Nhận biết ô đánh dấu bị tô
Các ô đánh dấu có thể được nhóm theo hàng ngang, hàng dọc hoặc chỉ có một nhóm duy nhất. Để nhận dạng vùng ô đánh dấu, ta nhóm các ô đã tách vào từng nhóm tương ứng.
Xét một nhóm các ô đánh dấu Cc c1, 2,...,cn. Kết quả nhận dạng C phụ thuộc vào kết quả nhận dạng từng ô thành phần c ci( iC).
Một cách đơn giản nhất để biết một ô có bị tô hay không là qua tổng diện tích của các điểm đen, thông thường ô ci có thể kết luận là đã bị tô nếu số điểm đen D c( )i
chia cho tổng số điểm ảnh S c( )i ( diện tích ô) lớn hơn β với β là ngưỡng đen của ô, thường đặt là 0.7.
Tuy nhiên trong đa số các trường hợp, vùng đánh dấu bao gồm nhiều hơn một ô. So sánh tương đối giữa các ô với nhau sẽ cho kết quả với độ chính xác cao hơn. Theo đó ta có một cách khác để nhận biết một ô bị tô là khi ô có số lượng điểm đen nhiều hơn hai lần một ô khác trong nhóm.
Việc nhận dạng các ô đánh dấu chia làm hai trường hợp chính
a) Trƣờng hợp đơn lựa chọn : Thường xảy ra trong các bài thi trắc nghiệm, giải pháp sử dụng đa ngưỡng xám được sử dụng để giúp nhận dạng ngay cả khi một số ô bị tẩy xóa.
Thực hiện : chọn ngưỡng nhị phân ban đầu làT1, bước tăng ngưỡng là t, ngưỡng cuối là T2.
Với ngưỡng nhị phân đã chọn :
Sắp xếp các ô theo tổng số điểm đen. Không mất tính tổng quát, giả sử
1 2
( ) ( ) ... ( )n
D c D c D c
Nếu D c( )1 D c( ) 22 thì kết luận ô thứ nhất được tô.
Nếu ô c1có số điểm đen khác biệt không đáng kể với ô c2 thì kiểm tra tiếp giữa ô thứ 2 và ô thứ 3. Nếu tồn tại một ô ci sao cho D c( )i D c( i1) 2 thì kết luận tất cả các ô từ c1 đến ciđều được tô.
Nếu tất cả các ô đều không có sự khác biệt đáng kể. Nếu ô có số điểm đen nhỏ nhất cn thỏa mãn điều kiện ô đen(D c( )n S c( )n ) thì kết luận tất cả các ô đều được tô. Nếu không tăng ngưỡng nhị phân lên t và thực hiện lại từ đầu.
Khi ngưỡng nhị phân bằng T2 mà vẫn không có sự khác biệt đáng kể về số điểm đen giữa các ô thì kết luận không ô nào được tô.
b) Trƣờng hợp đa lựa chọn : các ô không bị tô có số điểm đen xấp xỉ nhau, trong khi đó các ô bị tô bao giờ cũng có số điểm đen nhiều hơn.Mức độ nhiều hơn còn tùy thuộc vào việc tô đậm hay nhạt, diện tích tô, … Tuy nhiên sự khác biệt là đáng kể.
Thực hiện :
( ) i i c C avg S c S C
Tính số điểm đen trung bình của các ô
( ) i i c C avg D c D C
Tính số điểm đen của ô không bị tô
Gọi tập các ô có số điểm đen nhỏ hơn số điểm đen trung bình Davg là
1 k ( )k avg
C c C D c D
Tính số điểm đen trung bình của các ô thuộc tập C1.
1 1 ( ) k k c C low D c D C
Nếu Dlow /Savglớn hơn β thì kết luận tất cả các ô đều bị tô Nếu không đây chính là số điểm đen của một ô không bị tô. Đánh giá các ô của vùng
i
c coi như là được tô nếu D c( )i Dlow2( Số điểm đen của ô cilớn hơn 2 lần số điểm đen của một ô không bị tô)
Hai trường hợp trên khác nhau ở chỗ, nếu với cùng một vùng đánh dấu, áp dụng thuật toán 1 sẽ cho số ô bị đánh dấu ít hơn hoặc bằng áp dụng thuật toán 2. Lý do là thuật toán 1 lấy ngưỡng nhị phân ban đầu thấp để loại một số ô di bị tẩy xóa mà tăng số điểm đen. Thuật toán 2 chỉ sử dụng một ngưỡng nhị phân duy nhất tìm được từ giải thuật nhị phân hóa ở chương trước.