Chuyển xám ảnh

Một phần của tài liệu Nghiên cứu kỹ thuật định vị, tách và nhân dạng vùng tô trong phiếu trắc nghiệm (Trang 26 - 67)

Đơn vị tế bào của ảnh số là pixel. Tùy theo mỗi định dạng là ảnh màu hay ảnh xám mà từng pixel có thông số khác nhau. Đối với ảnh màu từng pixel sẽ mang thông tin của ba màu cơ bản tạo ra bản màu khả kiến là Đỏ (R), Xanh lá (G) và Xanh biển (B) [Thomas 1892]. Trong mỗi pixel của ảnh màu, ba màu cơ bản R, G và B được bố trí sát nhau và có cường độ sáng khác nhau. Thông thường, mổi màu cơ bản được biểu diễn bằng 8 bit tương ứng 256 mức độ màu khác nhau, hay nói cách khác chúng ta sẽ có màu (khoảng 16.78 triệu màu). Đối với ảnh xám, thông thường mỗi pixel mang thông tin của 256 mức xám (tương ứng với 8bit) như vậy ảnh xám hoàn toàn có thể tái hiện đầy đủ cấu trúc của một ảnh màu tương ứng thông qua tám mặt phẳng bit theo độ xám.

Trong hầu hết quá trình xử lý ảnh, chúng ta chủ yếu chỉ quan tâm đến cấu trúc của ảnh và bỏ qua ảnh hưởng của yếu tố màu sắc. Do đó bước chuyển từ ảnh màu thành ảnh xám là một công đoạn phổ biến trong các quá trình xử lý ảnh vì nó làm tăng tốc độ xử lý và mức độ phức tạp của các thuật toán áp dụng trên ảnh xám giảm hơn so với các thuật toán áp dụng trên ảnh màu.

Chúng ta có công thức chuyển các thông số giá trị màu của một pixel thành mức xám tương ứng như sau:

19

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Trong đó các giá trị CR, CG và CB lần lượt là các mức độ màu Đỏ, Xanh lá và Xanh biển của pixel màu, + +

Hình 2.1. Ảnh trước khi chuyển xám

Hình 2.2. Ảnh đã thực hiện chuyển xám 2.2.5. Phân ngưỡng ảnh

Quá trình phân ngưỡng là quá trình tìm ra ngưỡng của một ảnh để thực hiện việc phân vùng. Ngưỡng đóng vai trò quyết định quá trình nhị phân hóa ảnh số có hiệu quả hay không. Nếu chọn ngưỡng không tốt, một số đối tượng sẽ bị bỏ qua hoặc cho ra đối tượng với kích thước và vị trí không đúng hoặc làm cho các đối tượng không phân biệt được với nhau.

Có nhiều thuật toán tìm ngưỡng khác nhau cho ra các kết quả khác nhau, trong đó điển hình là tìm ngưỡng trung bình và tìm ngưỡng theo Histogram.

20

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Với thuật toán tìm ngưỡng trung bình, ngưỡng được tính theo công thức:

Trong đó, n.m là kích thước ảnh. Itb, Ing, ∆ tương ứng là mức xám trung bình, giá trị ngưỡng và số gia hiệu chỉnh.

Tìm ngưỡng theo histogram là phương pháp tìm ngưỡng dựa theo lược đồ xám.

Ngưỡng tìm được theo công thức Ing = (Imax1 + Imax2)/2. Trong đó, Imax1

Imax2 là hai mức xám tương ứng cực đại trên histogram.

Ngoài ra, còn một số kỹ thuật tìm ngưỡng khác, như thuật toán lặp, thuật toán tam giác được mô tả dưới đây:

- Thuật toán lặp (Ridler and Calvard) [4]. Sử dụng ngưỡng ban đầu

0 = 2B-1 để chia histogram thành hai phần. Ký hiệu (mf,0) là giá trị trung bình của các mức xám ở phần trước và (mb,0) là giá trị trung bình của các mức xám ở phần sau. Giá trị ngưỡng mới 1 được tính bằng trung bình cộng của (mf,0) và (mb,0). Thủ tục này được lặp cho đến khi nào ngưỡng không thay đổi, nghĩa là ở bước k nào đó k = k-1.

21

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

- Thuật toán tam giác. (Zack) [4]. Đoạn thẳng nối điểm cao nhất trên histogram bmax với điểm thấp nhất bên trái bmin = (p=0)%. Khoảng cách lớn nhất d giữa đoạn thẳng [bmax, bmin] và giá trị histogram h[b] với b thay đổi trong khoảng b = bmin đến b = bmax. Mức xám bo mà khoảng cách từ h[bo] đến đoạn thẳng [bmax, bmin] được coi là ngưỡng, nghĩa là := bo.

Hình 2.3. Chọn ngưỡng theo Zack Trong ví dụ trên b0= 152, như vậy = 152.

Giá trị cụ thể của ngưỡng phụ thuộc vào từng ảnh, vùng ảnh đầu vào đang xét và không thể lấy cố định. Ví dụ như trên hình 2.4, hình a) là ảnh ban đầu, hình b, c, d thể hiện ảnh đã được nhị phân hóa với cùng ngưỡng thấp, trung bình và ngưỡng cao. Chúng ta có thể thấy là giá trị ngưỡng trong hình 2.4c là thích hợp hơn cả.

a) ảnh gốc ban đầu b) Ngưỡng thấp (90)

22

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Hình 2.4. Phương pháp lấy ngưỡng

Người ta đã đề xuất nhiều phương pháp để xác định giá trị ngưỡng. Một phương pháp là thiết lập ngưỡng sao cho số lượng các điểm đen đạt một ngưỡng chấp nhận được theo phân phối xác suất mức xám. Ví dụ, chúng ta có thể biết rằng các ô được tô chiếm 10% diện tích của một ảnh phiếu thi thông thường. Vì thế chúng ta có thể thiết lập ngưỡng sao cho số lượng điểm đen còn lại chiếm 1/10 diện tích ảnh. Một cách tiếp cận khác là chọn ngưỡng nằm ở vị trí thấp nhất trên biểu đồ histogram giữa hai đỉnh của nó . Tuy nhiên việc xác định vị trí này thường rất khó khăn do hình dạng của histogram thường lởm chởm. Một giải pháp để giải quyết vấn đề này là xấp xỉ giá trị của histogram giữa hai đỉnh với một hàm giải tích và sử dụng vi phân để xác định điểm thấp nhất. Ví dụ, coi x và y lần lượt là hoành độ và tung độ trên histogram. Chúng ta có thể sử dụng hàm:

y=ax2+bx+c. Với a, b, c là các hằng số làm hàm xấp xỉ đơn giản cho (adsbygoogle = window.adsbygoogle || []).push({});

histogram ở vị trí giữa hai đỉnh của nó. Vị trí thấp nhất sẽ có tọa độ x = -

b/2a.

Phương pháp xấp xỉ các giá trị của histogram và tìm vị trí thấp nhất cho giá trị ngưỡng tốt hơn nhưng lại yêu cầu nhiều tài nguyên về tính toán để thực hiện cũng độ phức tạp trong việc cài đặt.

Một phương pháp rất hay được sử dụng là sử dụng thuật toán dựa vào số liệu thống kê SIS (Simple Image Statistics) cũng đạt hiệu quả khá tốt trong thực nghiệm. Thuật toán SIS được mô tả như sau:

23

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

- Với mỗi điểm ảnh I(x, y) ta tính như sau: ex = |I(x + 1, y) - I(x - 1, y)| ey = |I(x, y + 1) - I(x, y - 1)|

weight = Max (ex, ey)

- Gọi Total weight là tổng các giá trị weight được tính.

- Giá trị phân ngưỡng T sẽ là (Total/ Total weight)

Hình 2.5. Phân ngưỡng theo thuật toán SIS 2.2.6. Nhiễu ảnh và một số phương pháp lọc nhiễu

Trong xử lý ảnh các ảnh đầu vào thường được thu thập từ các nguồn khác nhau, các ảnh thu thập được thường có nhiễu và cần loại bỏ nhiễu. Ảnh thu được cũng có thể không sắc nét hay bị mờ. Khi đó, ta cần làm rõ các chi tiết trước khi đưa vào xử lý.

24

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Một số loại nhiễu ảnh thường gặp:

- Nhiễu cộng: nhiễu cộng thường phân bố khắp ảnh. Nếu ta gọi ảnh

quan sát( ảnh thu được) là X_qs, ảnh gốc la X_gốc và nhiễu là #. ảnh thu được có thể biểu diễn bởi:

X_qs = X_gốc + #.

- Nhiễu nhân: Nhiễu nhân thường phân bố khắp ảnh. Nếu ta gọi

ảnh quan sát( ảnh thu được) là X_qs, ảnh gốc la X_gốc và nhiễu là #. ảnh thu được có thể biểu diễn bởi:

X_qs = X_gốc * #.

- Nhiễu xung: Nhiễu xung thường gây đột biến ở một số điểm của

ảnh. Trong hầu hết các trường hợp thừa nhận nhiễu là tuần hoàn. 2.2.6.1. Bộ lọc Mean

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. Ví dụ mặt nạ (1/9)x

1 1 1

1 1 1

1 1 1

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 theo công thức sau:

25

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ (adsbygoogle = window.adsbygoogle || []).push({});

Hình 2.6. Ảnh thu được khi qua bộ lọc Mean

Với f[i,j] là giá trị pixel kết quả, s(k,l) là các giá trị pixel ảnh gốc được mặt nạ chập lên và S là kích thước mặt nạ. Bộ lọc Mean có vai trò làm trơn ảnh có thể xem như bộ lọc thông cao, 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.

2.2.6.2. Bộ lọc Median

Để 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í dụ như một lân cận 3x3 có các giá trị: 10, 20, 20, 20, 15, 20, 20, 25, 100. Các giá trị này được sắp xếp lại theo thứ tự từ thấp đến cao: 10, 15, 20, 20, 20, 20, 20, 25, 100. Giá trị median là 20. 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. Ví dụ về ảnh sau khi lọc nhiễu

26

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Hình 2.7. Ảnh sau khi qua bộ lọc Median 2.2.6.3. Bộ lọc Gauss

Về bản chất bộ lọc Gauss có phương thức tiến hành tương đồng với bộ lọc trung bình nhưng có thêm tác động của các trọng số. Các trọng số này được tính tỷ lệ với hàm Gauss theo khoảng cách tới điểm tính toán. Công thức tính giá trị cho từng pixel ảnh gốc theo lọc Gauss như sau:

Trong đó g(i,j) là giá trị độ xám pixel kết quả, N là kích thước cửa sổ, f(m,n) là giá trị độ xám của pixel đang tác động,G(i-m,j-n) là các trọng số. Các trọng số được tính toán tỷ lệ theo hàm Gauss bằng khoảng cách tới điểm tính toán.

Thực hiện phép nhân chập giữa mặt nạ Gauss và ảnh gốc chúng ta thu được ảnh kết quả được xử lý bằng mạch lọc Gauss. Vai trò của bộ lọc Gauss cũng làm trơn ảnh như bộ lọc trung bình, tuy nhiên bộ lọc Gauss cho chất lượng ành kết quả cao hơn vì có sự tập trung trong số vào pixel đang xét tại vị trí trung tâm.

27

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Hình 2.8. Ảnh thu được sau khi xử lý qua bộ lọc Gauss 2.2.7. Xoay ảnh

Thực ra đây là phương pháp chuyển đổi các Pixel trong ảnh. Do không làm thay đổi trị màu trong ảnh nên có thể thực hiện phương pháp này trên ảnh màu cũng như trên ảnh xám.

Một ảnh được xem như là một mảng hai chiều, chuyển đổi lại vị trí các Pixel là sắp xếp lại mảng này. Khi quay thì sự chia thang giữ nguyên chỉ có hướng trục thay đổi. Còn trục mới xuất hiện bằng cách quay trục cũ đi một góc θ ngược chiều kim đồng hồ, khi đó tọa độ mới được theo theo công thức:

x’ = cosθ + y.sinθ y’ = -x.sinθ + y.cosθ Với T là ma trận quay: cos sin sin cos T

Như vậy, ảnh có kích thước I[w*h]. Khi quay một góc θ thì kích thước mới sẽ được tính như sau:

w_moi= h_cu * |Sin(θ)| + w_cu *| Cos(θ)|; h_moi = w_cu * |Sin(θ)| + h_cu * |Cos(θ)|;

28

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ x1(0,0) x4(0,h) x3(w,h) x2(w,0) W X4 X3 X2 X1 X1 X4 X3 X2 Ảnh quay Ảnh quay sau khi tinh tiến Ảnh gốc

Hình 2.9. Hệ tọa độ khi xoay ảnh 2.2.8. Làm trơn ảnh, tách biên đối tượng

Ảnh thu được từ các thiết bị ghi nhận sau khi qua bước tiền xử lý sẽ đến quá trình phân tích ảnh. Có nhiều phương pháp phân tích ảnh trong đó tách biên đối tượng là một công cụ mạnh. Vai trò của tách biên chủ yếu là trích đặc trưng đối tượng theo đường biên ảnh và phân vùng ảnh dựa trên đường biên.

Phương pháp Canny: Là một phương pháp tách biên ảnh do Francis Canny tìm ra tại phòng thí nghiệm ảnh thuộc MIT. Quá trình tiến hành thuật toán trải qua một số bước như sau:

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.

Tính gradient của ảnh nhờ một trong các toán tử:Roberts, Sobel hay Prewitt…

29

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

Xác định ngưỡng:

Với T được chọn là các phần tử cạnh

Dựa vào hướng của 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 M (i,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 giá trị bằng 0. (adsbygoogle = window.adsbygoogle || []).push({});

Dùng ngưỡng kép t1t2 (t1< t2) tạo ra 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 phương thức sau:

Những điểm M(i,j) có giá trị gradient lớn hơn t2 thì được xem là điểm biên. Những điểm M(i,j) có 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 t1t2 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à điểm biên. Kết quả chúng ta sẽ thu được các đường biên tạo từ vô số các điểm biên liền kề liên tục.

2.2.9. Chỉnh góc nghiêng của ảnh

Thao tác xoay ảnh là cần thiết vì ảnh nhận được sau quá trình scan thường bị lệch một góc nghiêng so với phương ban đầu. Công việc này bao gồm hai thao tác cơ bản:

Thao tác xác định góc nghiêng của ảnh

Thao tác xoay ảnh theo góc nghiêng đã xác định. Trong đó, xác định góc nghiêng là thao tác quan trọng nhất trong việc căn chỉnh độ lệch trang. Để xác định góc nghiêng, người ta thường dùng 3 phương pháp : Sử dụng biến đổi Hough (Line fitting), phương pháp láng

30

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/

giềng gần nhất (nearest neighbours) và sử dụng tia quay (project profile) .

Biến đổi Hough rất hữu ích cho việc dò tìm đường thẳng trong trang văn bản vì thế rất thích hợp cho việc xác định góc nghiêng của trang văn bản gồm các thành phần là các dòng văn bản. Tuy nhiên, biến đổi Hough sử dụng rất nhiều tính toán do phải thao tác trên từng điểm ảnh riêng lẻ. Người ta đã cải tiến để tăng tốc độ thực hiện bằng cách thực hiện tính toán trên chùm điểm ảnh. Những chùm điểm ảnh này là các dải liên tục các điểm đen liên tiếp nhau theo chiều ngang hoặc chiều doc. Mỗi chùm được mã hóa bởi độ dài của và vị trí kết thúc của nó.

Với cải tiến này thì thuật toán này thích hợp với các góc nghiêng ~15o và cho độ chính xác rất cao. Tuy nhiên, cải tiến này làm tăng tốc độ thuật toán nhưng vẫn rất chậm so với các phương pháp khác. Hơn nữa, trong trường hợp văn bản là thưa thớt, thuật toán này tỏ ra không hiệu quả.

Phương pháp láng giềng gần nhất (nearest neighbours) dựa trên một nhận xét rằng trong một trang văn bản, khoảng cách giữa các kí tự trong một từ và giữa các kí tự của từ trên cùng một dòng là nhỏ hơn khoảng cách giữa hai dòng văn bản, vì thế đối với mỗi kí tự, láng giềng gần nhất của nó sẽ là các kí tự liền kề trên cùng một dòng văn bản.

Bước đầu tiên trong thuật toán này là xác định các thành phần liên thông trên ảnh. Bước tiếp theo, tìm láng giềng gần nhất của mỗi thành phần liên thông này, đó là miền liên thông có khoảng cách Euclid ngắn nhất giữa tâm của hai miền liên thông. Sau đó, thực hiên tính góc của các vector nối tâm của các thành phần láng giềng gần nhất. Tất cả các vector cùng phương được nối với nhau và tích lũy thanh biểu đồ histogram về số lượng các vector theo các phương. Khi đó, trên biểu đồ histogram xuất hiện một vị trí

Một phần của tài liệu Nghiên cứu kỹ thuật định vị, tách và nhân dạng vùng tô trong phiếu trắc nghiệm (Trang 26 - 67)