2 TÓM TẮT ĐỒ ÁN 3 DANH SÁCH HÌNH VẼ 6 DANH SÁCH CÁC BẢNG BIỂU 7 CHƯƠNG 1. CÁC VẤN ĐỀ TRONG XỬ LÝ ẢNH 8 1.1. Tổng quan về một hệ thống xử lý ảnh 8 1.2 Các vấn đề cơ bản trong xử lý ảnh 9 1.2.1. Một số khái niệm 9 1.2.2. Biểu diễn ảnh 10 1.2.3. Tăng cường ảnh khôi phục ảnh 10 1.2.4. Nhận dạng ảnh 11 1.3. Thu nhận ảnh 11 1.3.1. Thiết bị thu nhận ảnh 11 1.3.2. Biểu diễn màu 12 1.3.3. Hệ tọa độ màu 13 1.4. Các kỹ thuật xử lý ảnh cơ bản 13 1.4.1. Nhị phân hóa 13 1.4.2. Khử nhiễu 14 1.4.3. Làm trơn biên, lấp đầy chỗ trống 14 1.4.4. Đường thẳng Hough 15 1.4.5. Chỉnh độ nghiêng của ảnh 17 CHƯƠNG 2. NHẬN DẠNG PHIẾU TRẮC NGHIỆM 18 2.1. Mô tả bài toán 18 2.2. Các mẫu phiếu thi trắc nghiệm thường gặp 18 2.3. Kỹ thuật nhận dạng chung phiếu trắc nghiệm 24 2.3.1. Các tham số cần thiết 24 2.3.2. Nhận dạng đường thẳng dày 24 2.3.3. Chỉnh độ nghiêng 25 2.3.4. Nhận dạng gai 27 2.3.5. Tách ô 29 2.3.6. Nhận dạng ô được chọn 29 CHƯƠNG 3.. XÂY DỰNG CHƯƠNG TRÌNH 31 3.1 Tìm hiểu yêu cầu bài toán 31 3.2 Phân tích hệ thống 31 3.2.1 Biểu đồ ca sử dụng 31 3.2.2 Sơ đồ lớp lĩnh vực 32 3.2.3 Đặc tả hiện thực hóa user case 33 3.3 Thiết kế giao diện 44 3.3.1 Giao diện đăng nhập 44 3.3.2 Giao diện quét phiếu trắc nghiệm 45 3.3.3 Giao diện hiển thị phiếu thi 46 3.3.4 Giao diện đọc ghi đáp án 47 3.3.5 Giao diện cài đặt hệ thống 48 3.4 Thiết kế cơ sở dữ liệu 49 3.5 Thực nghiệm kết quả
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
_
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH: KỸ THUẬT PHẦN MỀM
Đề tài:
NHẬN DẠNG PHIẾU TRẢ LỜI TRẮC NGHIỆM
Sinh viên thực hiện: MAI NGÂN SƠN
Lớp KTPM1 K7 Giảng viên hướng dẫn: Th.S LÊ THỊ THỦY
Hà Nội, 05/2016
Trang 2LỜI NÓI ĐẦU
Xử lý ảnh là một khoa học còn tương đối mới mẻ so với nhiều ngành khoa
học khác, nhất là trên quy mô công nghiệp, song trong xử lý ảnh đã bắt đầu xuất
hiện những máy tính chuyên dụng Nhận dạng là một trong những bộ phận quan
trọng của xử lý ảnh và đã được ứng dụng rất hiệu quả trong nhiều lĩnh vực khác
nhau như y tế, quốc phòng, nghiên cứu vũ trụ
Mục đích của đồ án này là nghiên cứu và áp dụng xử lý ảnh vào việc nhận
dạng tự động phiếu trắc nghiệm Từ đó làm nền tảng cho việc xây dựng và phát
triển hệ thống tổ chức thi và chấm trắc nghiệm tự động
Trong các kỳ thi trắc nghiệm, em nhận thấy rằng: việc xử lý kết quả thi một
cách thủ công thì rất tốn công sức, khả năng nhầm lẫn cao, đặc biệt là trong các kỳ
thi quy mô lớn Nếu công việc xử lý kết thi được tự động hóa thì hiệu quả hơn rất
nhiều
Do đó em có ý tưởng xây dựng một hệ thống nhận dạng tự động phiếu thi
trắc nghiệm nhằm mục tiêu có được một hệ thống nhận dạng dễ áp dụng, dùng
chung, tốc độ nhanh, với độ chính xác cao
Mặc dù em đã hết sức cố gắng trong việc thu thập và nghiên cứu tài liệu, tìm
hiểu ngôn ngữ cài đặt nhưng thời gian không cho phép và trình độ còn hạn chế, bên
cạnh đó thì tài liệu hết sức nghèo nàn nên sẽ không tránh khỏi sai sót Vì vậy, em rất
mong nhận được sự đánh giá đóng góp, bổ sung và khuyến khích của cô giáo hướng
dẫn, các thầy cô giáo trong khoa Công Nghệ Thông Tin cùng các bạn để em có thể
hoàn thành tốt đồ án tốt nghiệp của mình
Cuối cùng em xin bày tỏ lòng biết ơn chân thành tới sự hướng dẫn và chỉ bảo
tận tình của cô giáo Lê Thị Thủy và các thầy cô trong khoa Công nghệ thông tin đã
giúp đỡ trong quá trình thực hiện đồ án tốt nghiệp này
Hà Nội, tháng 5 năm 2016
Sinh viên thực hiện:
Mai Ngân Sơn
Trang 3TÓM TẮT ĐỒ ÁN
Xử lý ảnh là một trong những lĩnh vực có nhiều ứng dụng thiết thực trong
thực tế Báo cáo 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 trả lời trong các bài thi trắc nghiệm Em nhận thấy đây là một hệ thống có
nhiều ý nghĩa thực tiễn và có khả năng ứng dụng cao
Đồ án tốt nghiệp này trình bày về hệ thống xử lý tự động phiếu thi, bao gồm
các nội dung sau:
Chương 1 Các vấn đề trong xử lý ảnh
Chương 2 Nhận dạng phiếu trắc nghiệm
Chương 3 Xây dựng chương trình
Trang 4MỤC LỤC
LỜI NÓI ĐẦU 2
TÓM TẮT ĐỒ ÁN 3
DANH SÁCH HÌNH VẼ 6
DANH SÁCH CÁC BẢNG BIỂU 7
CHƯƠNG 1 CÁC VẤN ĐỀ TRONG XỬ LÝ ẢNH 8
1.1 Tổng quan về một hệ thống xử lý ảnh 8
1.2 Các vấn đề cơ bản trong xử lý ảnh 9
1.2.1 Một số khái niệm 9
1.2.2 Biểu diễn ảnh 10
1.2.3 Tăng cường ảnh – khôi phục ảnh 10
1.2.4 Nhận dạng ảnh 11
1.3 Thu nhận ảnh 11
1.3.1 Thiết bị thu nhận ảnh 11
1.3.2 Biểu diễn màu 12
1.3.3 Hệ tọa độ màu 13
1.4 Các kỹ thuật xử lý ảnh cơ bản 13
1.4.1 Nhị phân hóa 13
1.4.2 Khử nhiễu 14
1.4.3 Làm trơn biên, lấp đầy chỗ trống 14
1.4.4 Đường thẳng Hough 15
1.4.5 Chỉnh độ nghiêng của ảnh 17
CHƯƠNG 2 NHẬN DẠNG PHIẾU TRẮC NGHIỆM 18
2.1 Mô tả bài toán 18
2.2 Các mẫu phiếu thi trắc nghiệm thường gặp 18
2.3 Kỹ thuật nhận dạng chung phiếu trắc nghiệm 24
2.3.1 Các tham số cần thiết 24
2.3.2 Nhận dạng đường thẳng dày 24
2.3.3 Chỉnh độ nghiêng 25
2.3.4 Nhận dạng gai 27
2.3.5 Tách ô 29
2.3.6 Nhận dạng ô được chọn 29
CHƯƠNG 3 XÂY DỰNG CHƯƠNG TRÌNH 31
3.1 Tìm hiểu yêu cầu bài toán 31
3.2 Phân tích hệ thống 31
3.2.1 Biểu đồ ca sử dụng 31
3.2.2 Sơ đồ lớp lĩnh vực 32
3.2.3 Đặc tả hiện thực hóa user case 33
3.3 Thiết kế giao diện 44
3.3.1 Giao diện đăng nhập 44
3.3.2 Giao diện quét phiếu trắc nghiệm 45
3.3.3 Giao diện hiển thị phiếu thi 46
3.3.4 Giao diện đọc ghi đáp án 47
3.3.5 Giao diện cài đặt hệ thống 48
3.4 Thiết kế cơ sở dữ liệu 49
3.5 Thực nghiệm kết quả 50
Trang 53.5.1 Thực nghiệm góc nghiêng 50
3.5.2 Thực nghiệm tách dòng 51
3.5.3 Thực nghiệm tách ô 51
3.5.4 Thực nghiệm ô đƣợc tích 52
3.5.5 Kết quả thực nghiệm 53
KẾT LUẬN 54
TÀI LIỆU THAM KHẢO 55
Trang 6DANH SÁCH HÌNH VẼ
Hình 1.1 Các giai đoạn trong xử lý ảnh 8
Hình 1.2 Hình với các độ phân giải khác nhau 9
Hình 1.3 Hệ tọa độ màu RGB 12
Hình 1.4 Hệ tọa độ màu RGB 13
Hình 1.5 Đường thằng Hough trên trục tọa độ 16
Hình 2.1 Phiếu trắc nghiệm 50 câu bị nghiêng khi scan 19
Hình 2.2 Phiếu trắc nghiệm 100 câu 20
Hình 2.3 Phiếu trắc nghiệm 50 câu không có khung 21
Hình 2.4 Phiếu trắc nghiệm 100 câu không có khung 22
Hình 2.5 Phiếu trắc nghiệm 80 câu không có gai 23
Hình 2.6 Phiếu trả lời được quét đúng chiều 26
Hình 2.7 Phiếu trả lời được quét ngược chiều 27
Hình 2.8 Các gai được đặt thẳng hàng với các ô trắc nghiệm 27
Hình 2.9 Hình chiếu của các dòng lên trục Oy 29
Hình 2.10 Khoanh vùng các ô 29
Hình 3.1 Biểu đồ ca sử dụng nhận dạng phiếu trắc nghiệm 31
Hình 3.2 Sơ đồ lớp lĩnh vực 32
Hình 3.3 Biểu đồ hoạt động ca sử dụng quét ảnh 34
Hình 3.4 Sơ đồ trình tự quét phiếu trắc nghiệm 35
Hình 3.5 Biểu đồ hoạt động ca sử dụng đọc ghi đáp án 37
Hình 3.6 Sơ đồ trình tự ca sử dụng đọc ghi đáp án 38
Hình 3.7 Biểu đồ hoạt động chấm điểm 40
Hình 3.8 Biểu đồ hoạt động cài đặt hệ thống 42
Hình 3.9 Sơ đồ trình tự cài đặt hệ thống 43
Hình 3.10 Giao diện đăng nhập 44
Hình 3.11 Giao diện xử lý phiếu thi 45
Hình 3.12 Giao diện hiển thị phiếu thi 46
Hình 3.13 Giao diện đọc ghi file đáp án 47
Hình 3.14 Giao diện cài đặt hệ thống 48
Hình 3.15 Phiếu có góc nghiêng 5 độ 50
Hình 3.16 Tách dòng 51
Hình 3.17 Tách ô 51
Hình 3.18 Thực nghiệm xác định ô trắc nghiệm 52
Trang 7DANH SÁCH CÁC BẢNG BIỂU
Bảng 4.1 Bảng mô tả thiết kế dữ liệu phiếu thi 49
Bảng 4.2 Bảng mô tả thiết kế dữ liệu đáp án 49
Bảng 4.3 Bảng mô tả thiết kế dữ liệu cài đặt 49
Trang 8CHƯƠNG 1 CÁC VẤN ĐỀ TRONG XỬ LÝ ẢNH
1.1 Tổng quan về một hệ thống xử lý ảnh
Để có thể hình dung cấu hình một hệ thống xử lý ảnh chuyên dụng hay một
hệ thống xử lý ảnh dùng trong nghiên cứu, đào tạo, trước hết chúng ta sẽ xem xét
các bước cần thiết trong xử lý ảnh
Hình 1.1 Các giai đoạn trong xử lý ảnh
Trước hết là quá trình thu nhận ảnh Ảnh có thể thu nhận qua camera
Thường ảnh thu nhận qua camera là tín hiệu tương tự (loại camera ống kiểu CCIR),
nhưng cũng có thể là tín hiệu số hóa (loại CCD – Charge Coupled Devide)
Ảnh cũng có thể thu nhận từ vệ tinh qua các bộ cảm ứng (sensor), hay ảnh,
tranh được quét trên scanner Chi tiết về quá trình thu nhận ảnh sẽ được mô tả trong
mục 1.3 Tiếp theo là quá trình số hóa (Digitalizer) để biến đổi tín hiệu tương tự
sang tín hiệu rời rạc (lấy mẫu) và số hóa bằng lượng hóa, trước khi chuyển sang giai
đoạn xử lý, phân tích hay lưu trữ lại
Quá trình phân tích ảnh thực chất bao gồm nhiều công đoạn nhỏ Trước hết
là công việc tăng cường ảnh để nâng cao chất lượng ảnh Do những nguyên nhân
khác nhau: có thể do chất lượng thiết bị thu nhận ảnh, do nguồn sáng hay do nhiễu,
ảnh có thể bị suy biến Do vậy cần phải tăng cường và khôi phục lại ảnh để làm nổi
bật một số đặc tính chính của ảnh, hay làm cho ảnh gần giống nhất với trạng thái
gốc – trạng thái trước khi ảnh bị biến dạng Giai đoạn tiếp theo là phát hiện các đặc
tính như biên, phân vùng ảnh, trích chọn các đặc tính, v.v…
Trang 9Cuối cùng, tùy theo mục đích của ứng dụng, sẽ là giai đoạn nhận dạng, phân
lớp hay các quyết định khác Các giai đoạn chính của các quá trình xử lý ảnh có thể
mô tả như hình trên
1.2 Các vấn đề cơ bản trong xử lý ảnh
Như đã đề cập trong phần giới thiệu, chúng ta đã thấy được một cách khái
quát các vấn đề chính trong xử lý ảnh Để hiểu chi tiết hơn, trước tiên ta xem xét hai
khái niệm (thuật ngữ) thường dùng trong xử lý ảnh, đó là Pixel (phần tử ảnh) và
Grey level (mức xám), tiếp theo là tóm tắt các vấn đề chính
1.2.1 Một số khái niệm
Pixel (Picture Element): phần tử ảnh
Ảnh trong thực tế là một ảnh liên tục về không gian và về giá trị độ sáng Để
có thể xử lý ảnh bằng máy tính cần thiết phải tiến hành số hóa ảnh Trong quá trình
số hóa, người ta biến đổi tín hiệu liên tục sang tín hiệu rời rạc thông qua quá trình
lấy mẫu (rời rạc hóa về không gian) và lượng hóa thành phần giá trị mà về nguyên
tắc bằng mắt thường không phân biệt được hai điểm kề nhau Trong quá trình này,
người ta sử dụng khái niệm Picture element mà ta quen gọi hay viết là Pixel – phần
tử ảnh Như vậy, một ảnh là một tập hợp các pixel Ở đây cũng cần phân biệt khái
niệm pixel hay đề cập đến trong các hệ thống đồ họa máy tính Để tránh nhầm lẫn ta
tạm gọi khái niệm pixel này là pixel thiết bị Khái niệm pixel thiết bị có thể xem xét
như sau: khi ta quan sát màn hình (trong chế độ đồ họa), màn hình không liên tục
mà gồm nhiều điểm nhỏ, gọi là pixel Mỗi pixel gồm một cặp tọa độ (x, y) và màu
Hình 1.2 Hình với các độ phân giải khác nhau
Trang 10Cặp tọa độ (x, y) tạo nên độ phân giải (resolution) Như màn hình máy tính
có nhiều loại với độ phân giải khác nhau: màn hình CGA có độ phân giải là 320 x
320; màn hình VGA là 640 x 350,…
Như vậy, một ảnh là một tập hợp các điểm ảnh Khi được số hóa, nó thường
được biểu diễn bởi bảng hai chiều I(n, p): n dòng và p cột Ta nói ảnh gồm n x p
pixels Người ta thường ký hiệu I(x, y) để chỉ một pixel Hình 1.2 cho ta thấy việc
biểu diễn một ảnh với độ phân giải khác nhau Một pixel có thể lưu trữ trên 1, 4, 8
hay 24 bit
Gray level: Mức xám
Mức xám là kết quả sự mã hóa tương ứng một cường độ sáng của mỗi điểm
ảnh với một giá trị số - kết quả của quá trình lượng hóa Cách mã hóa kinh điển
thường dùng 16, 32 hay 64 mức Mã hóa 256 mức là phổ dụng nhất do lý do kỹ
thuật Vì 2^8 = 256 (0, 1, …, 255), nên với 256 mức, mỗi pixel sẽ được mã hóa bởi
8 bit
1.2.2 Biểu diễn ảnh
Trong biểu diễn ảnh, người ta thường dùng các phần tử đặc trưng của ảnh là
pixel Nhìn chung có thể xem một hàm hai biến chứa các thông tin như biểu diễn
của một ảnh Các mô hình biểu diễn ảnh cho ta một mô tả logic hay định lượng các
tính chất của hàm này Trong biểu diễn ảnh cần chú ý tính trung thực của ảnh hoặc
các tiêu chuẩn “thông minh” để đo chất lượng ảnh hoặc tính hiệu quả của các kỹ
thuật xử lý
Việc xử lý ảnh số yêu cầu ảnh phải được mẫu hóa và lượng tử hóa Thí dụ
một ảnh ma trận 512 dòng gồm khoảng 512 x 512 pixel Việc lượng tử hóa ảnh là
chuyển đổi tín hiệu tương tự sang tín hiệu số (Analog Digital Convert) của một ảnh
đã lấy mẫu sang một số hữu hạn các mức xám
Một số mô hình thường được dùng trong biểu diễn ảnh: mô hình toán, mô
hình thống kê Trong mô hình toán, ảnh hai chiều được biểu diễn nhờ các hàm hai
biến trực giao gọi là các hàm cơ sở Với mô hình thống kê, một ảnh được coi như
một phần tử của một tập hợp đặc trưng bởi các đại lượng như: kỳ vọng toán học,
hiệp biến, phương sai, moment
1.2.3 Tăng cường ảnh – khôi phục ảnh
Tăng cường ảnh là bước quan trọng, tạo tiền đề cho xử lý ảnh Nó gồm một
loạt các kỹ thuật như: lọc độ tương phản, khử nhiễu, nổi màu, v.v…
Trang 111.2.4 Nhận dạng ảnh
Nhận dạng ảnh là quá trình liên quan đến các mô tả đối tượng mà người ta
muốn đặc tả nó Quá trình nhận dạng thường đi sau quá trình trích chọn các đặc tính
chủ yếu của đối tượng Có hai kiểu mô tả đối tượng:
- Mô tả tham số (nhận dạng theo tham số)
- Mô tả theo cấu trúc (nhận dạng theo cấu trúc)
Trên thực tế, người ta đã áp dụng kỹ thuật nhận dạng khá thành công với
nhiều đối tượng khác nhau như: nhận dạng ảnh vân tay, nhận dạng chữ (chữ cái,
chữ số, chữ có dấu)
Ngoài ra, hiện nay một kỹ thuật nhận dạng mới dựa vào kỹ thuật mạng nơron
đang được áp dụng và cho kết quả khả quan
1.3 Thu nhận ảnh
1.3.1 Thiết bị thu nhận ảnh
Các thiết bị thu nhận ảnh có thể cho ảnh trắng đen B/W (Black & White) với
mật độ từ 400 đến 1600 dpi (dot per inch) hoặc ảnh màu 600 dpi Với ảnh B/W mức
màu là 0 hoặc 1 Với ảnh đa cấp xám, mức xám biến thiên từ 0 đến 255 Ảnh màu,
mỗi điểm ảnh lưu trữ trong 3 bytes và do đó ta có 28 3
màu (cỡ 16,7 triệu màu)
Khi dùng scanner, một dòng photodiot sẽ quét ngang ảnh (quét theo hàng) và
cho ảnh với độ phân giải ngang khá tốt Đầu ra của scanner là ảnh ma trận số mà ta
quen gọi là bản đồ ảnh (ảnh Bitmap), bộ số hóa (digitalizer) sẽ tạo ảnh vectơ có
hướng
Trong xử lý ảnh bằng máy tính, ta không thể không nói đến thiết bị monitor
(màn hình) để hiện ảnh Monitor có nhiều loại khác nhau:
- CGA: 640 x 320 x 16 màu,
- EGA: 640 x 350 x 16 màu,
- VGA: 640 x 480 x 16 màu,
- SVGA: 1024 x 768 x 256 màu
Với ảnh màu, có nhiều cách tổ hợp màu khác nhau Theo lý thuyết màu do
Thomas đưa ra từ năm 1802, mọi màu đều có thể tổ hợp từ 3 màu cơ bản: Red (đỏ),
Green (lục) và Blue (lơ)
Thiết bị ra ảnh có thể là máy đen trắng, máy in màu hay máy vẽ (ploter)
Máy vẽ cũng có nhiều loại: loại dùng bút, loại phun mực
Trang 12Nhìn chung, các hệ thống thu nhận ảnh thực hiện hai quá trình:
- Cảm biến: biến đổi năng lượng quang học (ánh sáng) thành năng lượng điện
- Tổng hợp năng lượng điện thành ảnh
1.3.2 Biểu diễn màu
Ánh sáng màu là tổ hợp của ánh sáng đơn sắc Mắt người chỉ có thể cảm
nhận được vài chục màu, song lại có thể phân biệt được hàng ngàn màu Có 3 thuộc
tính chủ yếu trong cảm nhận màu:
- Brighness: sắc màu, còn gọi là độ chói
- Hue: sắc lượng, còn gọi là sắc thái màu
- Saturation: độ bão hòa
Với nguồn sáng đơn sắc, độ hue tương ứng với bước sóng Độ bão hòa
thay đổi nhanh nếu ta thêm lượng ánh sáng trắng Hình 2.3 mô tả mối liên quan giữa
những các đại lượng trên và 3 màu chủ yếu R, G và B
Hình 1.3 Hệ tọa độ màu RGB
Với điểm W* cố định, các ký hiệu G, R, B chỉ vị trí tương đối của các phổ
màu đỏ, lục và lơ Do sự tán sắc ánh sáng mà ta nhìn rõ màu Theo Maxwell, trong
võng mạc có 3 loại tế bào hình nón cảm thụ 3 màu cơ bản ứng với 3 phổ hấp thụ
S1(), S2() và S3();min= 380 nm; max= 780 nm
- Một màu bất kỳ sẽ là một điểm trên vòng tròn
- Nếu White và Black là như nhau thì đường tròn là lớn nhất và R là điểm bão
hòa
- S thay đổi theo bán kính
- H thay đổi theo góc
Trang 13- W* là sắc màu 1.3.3 Hệ tọa độ màu
Tổ chức y tế về chuẩn hóa màu CIE (Commision Internationalé d’Eclairage)
đưa ra một số các chuẩn để biểu diễn màu Các hệ này có các chuẩn riêng Ở đây
chỉ đề cập đến chuẩn mầu CIE-RGB (hệ tọa độ dùng 3 màu cơ bản) Như đã nêu
trên, một màu là tổ hợp của các màu cơ bản theo một tỉ lệ nào đấy Người ta dùng
hệ tọa độ ba màu R-G-B (tương ứng với hệ tọa độ x-y-z) để biểu diễn màu như sau:
Hình 1.4 Hệ tọa độ màu RGB
Trong cách biểu diễn này ta có công thức: đỏ + lục + lơ = 1 Công thức này
gọi là công thức Maxwell Ta cũng có thể chuyển từ hệ tọa độ 3 màu về hệ tọa độ
x-y-z
1.4 Các kỹ thuật xử lý ảnh cơ bản
Trên đây đã nói các khái niệm cơ bản trong xử lý ảnh, chúng ta sẽ tìm hiểu
một số kỹ thuật xử lý ảnh sẽ được dùng trong nhận dạng phiếu thi trắc nghiệm
1.4.1 Nhị phân hóa
Nhị phân hóa là thực hiện phép biến đổi ảnh từ ảnh đa cấp xám về ảnh nhị
phân (có 2 cấp xám) Do các kỹ thuật nhận dạng chỉ cẩn ảnh đầu vào là ảnh nhị
phân nên bước này cần thực hiện khi ảnh đầu vào là ảnh đa cấp xám
Phương pháp đơn giản là dùng một hàm cắt với giá trị ngưỡng
u : 0)
u
(
Trang 14Trong đó u là mức xám của một điểm ảnh
Ngưỡng có thể được chọn trước hoặc thực hiện chọn tự động bằng cách
tính toán các đại lượng thống kê trên lược đồ tần xuất histogram của ảnh, của vùng
ảnh
1.4.2 Khử nhiễu
Khử nhiễu được tiến hành bằng cách sử dụng các bộ lọc tuyến tính (lọc trung
bình) hoặc phi tuyến (lọc trung vị)
Khử nhiễu bằng các bộ lọc tuyến tính phổ biến là các bộ lọc sau:
1
1 1
1
1 1
1 1 1
1 1 1
161
2 4 8 4 2
4 816 8 4
2 4 8 4 2
1 2 4 2 1
1001
Các bộ lọc trên được kết hợp với ảnh bằng phép nhân chập (phép cuộn) và
cho ra ảnh kết quả có độ nhiễu nhỏ hơn ảnh ban đầu
1.4.3 Làm trơn biên, lấp đầy chỗ trống
Trên thực tế, sau khi khử nhiễu, đường biên chữ không được trơn tru như ban
đầu mà hình thành các đường cong có răng cưa Khi đó ta phải tiến hành lấp đầy
chỗ trống, xóa đi các điểm giả trên biên chữ Hai kỹ thuật hay được sử dụng là
Unger và Dineen
Kỹ thuật Dineen dùng một mặt nạ n x n di chuyển trên tất cả các vị trí trong
ảnh Một ảnh mới được tạo ra trên đó mỗi phần tử tại tâm cửa sổ được tính lại theo
các phần tử lân cận Nếu tổng các phần tử trong cửa sổ lớn hơn một ngưỡng nào
đó thì vị trí tương ứng trong ảnh mới sẽ là 1, ngược lại là 0 Kích thước cửa sổ
thường chọn là 3 x 3 hoặc 4 x 4
Kỹ thuật Unger dùng một tập luật để lấp đầy chỗ trống Giả sử P là điểm
đang xét, ta có các điểm lân cận của P như sau:
P3 P2 P9
P4 P P8
P5 P6 P7
Trang 15Điểm P trên ảnh mới là đen khi và chỉ khi thỏa mãn 1 trong 2 điều kiện sau:
1 P là điểm đen
2 Có ít nhất 3 trong 4 láng giềng P2, P3, P6, P8 là đen
Để loại bỏ các điểm cô lập sau khi lấp đầy chỗ trống, Unger lại dùng một tập
luật khác:
1 Có ít nhất 1 trong 3 láng giềng P2, P3, P4 là đen
2 Có ít nhất 1 trong 3 láng giềng P6, P7, P8 là đen
hay
1 Có ít nhất 1 trong 3 láng giềng P4, P5, P6 là đen
2 Có ít nhất 1 trong 3 láng giềng P2, P8, P9 là đen
1.4.4 Đường thẳng Hough
Chúng ta sẽ dùng biến đổi Hough để tìm các đường thẳng trên ảnh Kĩ thuật
tìm đường thẳng theo biến đổi Hough sẽ được ứng dụng vào tìm góc nghiêng của
phiếu trả lời
Ta có phương trình đường thẳng:
1 2 1
1 2
1
y-y
y-yxx
xx
Với y2 = 0 => x2 =
cos r
ry
0cos
r
0x
r - cos
r y sin
r
Trang 16
y sin
x cos
Hình 1.5 Đường thằng Hough trên trục tọa độ
Phương trình này được gọi là phương trình đường thẳng Hough
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 Hough được
mô tả dưới dạng giả ngôn ngữ như sau:
for r = 0 to width2 height2 do
Trang 17}
Trong đó, width và height là độ rộng và chiều cao của ảnh Biến count dùng
để đếm số điểm đen ứng với mỗi r và Nếu count lớn hơn một ngưỡng th cho
trước thì 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
nét (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 với 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 này, ta cũng có thể tính ngay được góc nghiêng của đường thẳng Từ đó dễ
dàng chuyển sang bước chỉnh độ nghiêng
1.4.5 Chỉnh độ nghiêng của ảnh
Trong trường hợp người quét ảnh không cẩn thận, ảnh đầu vào có thể bị
nghiêng đi một góc nào đó so với phương ngang Khi đó cần xác định góc nghiêng
của văn bản và quay về vị trí 0 Để xoay ảnh một góc , ta dùng biến đổi tọa độ
sin cosy)
(x,)yx( ' '
Trong đó (x'
, y') là tọa độ mới sau khi quay
Trang 18CHƯƠNG 2 NHẬN DẠNG PHIẾU TRẮC NGHIỆM
2.1 Mô tả bài toán
Bài toán bao gồm các công đoạn:
- Đọc phiếu tự động
- Nhận dạng kết quả tự động
- Thực hiện chấm điểm
- Lưu trữ thông tin
Để hệ thống có thể nhận dạng được phiếu trả lời, các phiếu này phải có một
khuôn mẫu cố định, sau đó ta áp dụng các kỹ thuật nhận dạng để đọc kết quả trả lời
từ phiếu Dưới đây sẽ trình bày chi tiết về thiết kế mẫu phiếu trả lời và các kỹ thuật
nhận dạng phiếu
2.2 Các mẫu phiếu thi trắc nghiệm thường gặp
Để 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ả lời khi đượ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 thi có độ chính xác cao và nhanh, 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 thi trắc nghiệm phải có tính thẩm mỹ cao và thuận tiện đối với
người chấm điểm Ở đây, em dùng hai mẫu trắc nghiệm, sẽ được nói chi tiết ở dưới
đây 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
Trang 19Trong phiếu thi, có thể có các câu hỏi mở, vì vậy ngoài vùng nhận dạng phải
có phần dành cho các câu hỏi mở nếu có
Ở 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 trắc nghiệm
Các mẫu phiếu trả lời dưới đây:
Hình 2.1 Phiếu trắc nghiệm 50 câu bị nghiêng khi scan
Trang 20Hình 2.2 Phiếu trắc nghiệm 100 câu
Trang 21Hình 2.3 Phiếu trắc nghiệm 50 câu không có khung
Trang 22Hình 2.4 Phiếu trắc nghiệm 100 câu không có khung
Trang 23Hình 2.5 Phiếu trắc nghiệm 80 câu không có gai
Trang 242.3 Kỹ thuật nhận dạng chung phiếu trắc nghiệm
Trong phần này, chúng ta lần lượt xem xét các thuật toán chung trong nhận
dạng phiếu trắc nghiệm
2.3.1 Các tham số cần thiết
Để có thể nhận dạng được định dạng chung của phiếu trả lời, ta cần biết một
số các tham số Các tham số này được tạo khi hệ thống sinh phiếu trả lời 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à 100 dpi hoặc 150 dpi)
- Kích cỡ ảnh (chiều rộng và chiều cao)
- Độ dài, độ dày của đường thẳng dày
- Độ rộng, cao của khung
- Khoảng cách giữa khung và đường thẳng dày
- Khoảng cách giữa các dòng (chứa các ô trả lời)
- Khoảng cách giữa các ô
- Số khung
- Số câu hỏi mỗi khung
- Số tùy chọn mỗi câu hỏi
2.3.2 Nhận dạng đường thẳng dày
Như đã nói ở trên để điều chỉnh độ nghiêng của phiếu trả lời, trên phiếu có
một đường thẳng song song với mép trên của phiếu và có một độ dày nhất định để
tránh đường thẳng bị mất nét Chúng ta sẽ nhận dạng đường thẳng này và độ
nghiêng của nó dựa trên thuật toán Hough
Một vấn đề dễ nhận thấy là thuật toán Hough chỉ tìm những đường thẳng
mảnh (có độ dày 1 điểm ảnh) Do vậy nếu áp dụng ngay thuật toán Hough thì sẽ đi
đến kết quả không như mong muốn, vì thuật toán này sẽ tìm được rất nhiều đường
thẳng trên đường thẳng dày này với các độ nghiêng không giống nhau
Để áp dụng được thuật toán Hough, chúng ta quan niệm đường thẳng dày là
tập hợp các đường thẳng mảnh song song và kề cận nhau hợp thành Thay vì nhận
dạng đường thẳng dày, chúng ta sẽ nhận dạng tập hợp các đường thẳng đó
Trang 25Trước tiên, ta có một phát biểu sau: trong vùng của đường thẳng dày, xét tất
cả tập hợp của các đường thẳng mảnh song song với nhau và có độ dài bằng độ dài
đường thẳng dày, khi đó tập hợp mà có các đường thẳng song song với đường
thẳng dày sẽ có số lượng các đường thẳng là lớn nhất
Ta có thể chứng minh phát biểu này một cách đơn giản như sau:
Giả sử đường thẳng dày có độ dày là a và độ dài là b, ta dễ dàng nhận ra một
tập hợp bao gồm a đường thẳng mảnh song song nhau có độ dài b và song song với
đường thẳng dày, tập hợp các đường thẳng này cũng tạo nên đường thẳng dày Ta sẽ
chứng minh tập hợp này có số lượng đường thẳng là lớn nhất
Giả sử có một tập hợp khác bao gồm a’ đường thẳng song song nhau có độ
dài b với a’ > a Khi đó tổng diện tích các đường thẳng trong tập hợp đó là a’.b > a.b
là diện tích của đường thẳng dày Điều này vô lý
Như vậy phát biểu đã được chứng minh
Từ đó, em đề xuất phương pháp nhận đường thẳng dày như sau:
- Tìm tất cả các đường thẳng trên ảnh phiếu có ngưỡng lớn hơn hoặc bằng
ngưỡng của đường thẳng dày
- Xác định tập hợp các đường thẳng song song (cùng nghiêng một góc giống
nhau) và kề nhau trong các đường thẳng trên
- Trong các tập hợp trên, tìm tập hợp có số lượng đường thẳng là lớn nhất
Đó chính là tập hợp tạo nên đường thẳng dày
Qua thực nghiệm, ngưỡng của đường thẳng dày nên chọn bằng 0.9 độ dài
thực tế của đường thẳng vì lý do chất lượng của ảnh Thực tế cho thấy tìm đường
thẳng dày bằng phương pháp này cho độ chính xác rất cao cả về vị trí và góc
nghiêng của đường thẳng, đạt 99%
2.3.3 Chỉnh độ nghiêng
Sau khi tìm được góc nghiêng của đường thẳng dày, ta đến bước điều chỉnh
lại ảnh Trong bước này ta chỉ thuần túy áp dụng phép quay Ta cần xét đến trường
hợp, khi đưa phiếu vào quét, giấy bị lộn ngược chiều, tức là đường thẳng dày sẽ
được tìm thấy ở gần mép dưới của ảnh Để nhận biết được trường hợp này, ta có thể
kiểm tra xem vị trí của đường thẳng dày ở nửa trên hay nửa dưới của ảnh Nếu
đường thẳng dày ở nửa trên của ảnh, ta quay ảnh với góc nghiêng của đường thẳng
dày Trong trường hợp ngược lại, ta quay ảnh một góc bằng góc nghiêng của đường
thẳng dày cộng với
Trang 26Sau khi quay ảnh, ta phải tính lại vị trí của đường thẳng dày (khoảng cách từ
mép trên của ảnh đến đường thẳng), điều này quan trọng vì nó liên quan đến bước
nhận dạng khung
a Trước khi xoay b Sau khi xoay
Hình 2.6 Phiếu trả lời được quét đúng chiều
Đối với trường hợp phiếu trả lời được quét đúng chiều, khoảng cách mới r’
được tính như sau: r’ = ( height – height.sin – width.cos ) / 2 + r
Trong đó width và height là độ rộng và chiều cao của ảnh là góc giữa véc
tơ pháp tuyến của đường thẳng dày với trục Ox r là khoảng cách của đường thẳng
dày tới gốc tọa độ khi chưa xoay
Trang 27
a Trước khi xoay b Sau khi xoay
Hình 2.7 Phiếu trả lời được quét ngược chiều
Trong trường hợp phiếu thi trắc nghiệm bị quét ngược chiều, r’ được tính
theo công thức sau: r’ = ( height + height.sin + width.cos ) / 2 – r
Sau khi xoay ảnh, các biên ảnh có thể không được trơn thu như ảnh gốc, điều
này có thể ảnh hưởng đến quá trình nhận dạng về sau Do đó cần phải được làm trơn
lại ảnh bằng kỹ thuật làm trơn biên đã được giới thiệu ở mục 2.4.3
2.3.4 Nhận dạng gai
Trong các phiếu trắc nghiệm thông dụng thường có các gai ở bên mép phải
tờ giấy Các gai này các đường thẳng nhỏ dày đặt song song cách đều nhau Mục
đích của việc nhận diện gai là để xác định được các dòng chức các ô trắc nghiệm
Hình 2.8 Các gai được đặt thẳng hàng với các ô trắc nghiệm