1. Trang chủ
  2. » Luận Văn - Báo Cáo

Chương 5 Xử lý ảnh số và OpenCv.docx

16 6,7K 130
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 16
Dung lượng 841,47 KB

Nội dung

Xử lý ảnh số và OpenCv

Trang 1

Chương 5

XỬ LÝ ẢNH VÀ OPENCV

5.1 CƠ BẢN VỀ XỬ LÝ ẢNH SỐ :

5.1.1 Giới thiệu về hệ thống xử lý ảnh :

Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ Nó là một ngành khoa học mới mẻ so với các ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu ứng dụng, đặc biệt là máy tính chuyên dụng cho nó

Xét các bước trong hệ thống xử lý ảnh số Đầu tiên ảnh từ thế giới bên ngoài được thu nhận qua các thiết bị thu ảnh như camera, máy chụp ảnh Trước đây ảnh thu được qua camera là ảnh tương tự nhưng gần đây với sự phát triển của công nghệ, ảnh màu hay ảnh đen trắng lấy được từ camera sau đó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho

xử lý tiếp theo Mặt khác ảnh có thể thu được từ vệ tinh hoặc máy quét ảnh Hình dưới đây

mô tả các bước quan trọng trong xử lý ảnh :

Hình 5.1 Các bước cơ bản trong xử lý ảnh

Sơ đồ này bao gồm các phần sau :

a) Phần thu nhận ảnh ( Image Acquisition)

Ảnh có thể được nhận qua camera màu hay đen trắng Thường ảnh nhận được qua camera là ảnh tương tự ( loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dòng) hay camera đã số hóa ( như lọai CCD, Change Couple Device) là loại photodiode tạo cường độ sáng tại mỗi điểm ảnh

Camera thường là loại quét dòng; ảnh tạo ra là ảnh hai chiều Chất lượng của ảnh phụ thuộc vào chất lượng thiết bị thu và môi trường

b) Tiền xử lý (Image Pre-processing)

Sau bộ thu nhận ảnh có thể bị nhiễu hoặc có độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng Chức năng của bộ tiền xử lý là lọc nhiễu, nâng cao độ tương phản,…

c) Phân đoạn (Segmentation) hay phân vùng ảnh

Trang 2

Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh, ví dụ như khoanh vùng khuôn mặt để nhận dạng, khoanh vùng mã vạch để đọc code Đây là phần phức tạp và khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi làm mất độ chính xác của ảnh

d) Biểu diễn ảnh :

Đầu ra ảnh sau khi phân đoạn chứa các điểm ảnh ( ảnh đã phân đoạn ) cộng với mã liên kết các vùng lân cận Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho các xử lý tiếp theo bằng máy tính Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với lớp đối tượng khác trong phạm vi ảnnh nhận được Ví dụ trong nhận dạng chữ viết trên bì thư, ta phân biệt đặc trưng của kí tự này so với kí tự khác

e) Nhận dạng và giải thích ảnh ( Image Recognition and Interpretation)

Nhận dạng ảnh là quá trình xác định ảnh Quá trình được thực hiện nhờ so sánh với mẫu chuẩn đã được học hoặc lưu từ trước Giải thích là phán đoán theo ý nghĩa trên cơ sở nhận dạng Ví dụ một loạt chữ số và nét gạch ngang trên bì thư có thể phán đoán là mã điện thoại Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân loại theo hai loại nhận dạng ảnh cơ bản:

 Nhận dạng theo tham số

 Nhận dạng theo cấu trúc

Một số đối tượng nhận dạng ảnh khá phổ biến hiện nay là nhận dạng kí tự ( chữ in, chữ viết tay, chữ kí điện tử), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người

f) Cơ sở tri thức

Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu Trong nhiều khâu xử lý

và phân tích ảnh, ngòai việc đơn giản hóa các phương pháp toán học đảm bảo cho việc xử

lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người Vì vậy ở đây các cơ sở tri thức được phát huy

5.1.2 Các khái niệm cơ bản

Phần tử ảnh:

Ảnh trong thực tế là một ảnh liên tục về không gian và giá trị độ sáng Để có thể xử

lý bằng máy tính cần thiết phải đưa về dạng ảnh số 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 không gian) và lượng tử hóa thành phần giá trị ( rời rạc hóa biên độ giá trị) mà về nguyên tắc 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 một khái niệm là Picture Element mà ta quen gọi là pixel

Pixel là một điểm trên dữ liệu ảnh, các pixel được sắp xếp thành một mảng 2 chiều

và được biểu diễn bằng các chấm hay ô vuông Mỗi pixel là một kết quả lấy mẫu của

Trang 3

mỗi pixel bao gồm tọa độ và giá trị màu sắc tùy vào ảnh nhị phân, ảnh xám hay ảnh màu

Hình 5.2 Biểu diễn ảnh bằng pixel trong ảnh đơn sắc, nửa bên trái là dữ liệu ảnh, nửa bên phải là phần ảnh hiển thị, mỗi pixel biểu diễn bằng 1 bit

Độ phân giải ảnh :

Độ phân giải ảnh ( resolution) là mật độ điểm ảnh ấn định trên một ảnh số được hiển thị Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh

Ví dụ độ phân giải ảnh trên màn hình CGA ( Color Graphic Adapter) là một lưới điểm theo chiều ngang màn hình: 320 điểm chiều dọc * 200 điểm ảnh (320x200) Rõ ràng cùng một độ phân giải thì màn hình 12’’ ta nhận thấy mịn hơn màn hình 17’’ Lý

do là cùng một mật độ ( độ phân giải ) thì diện tích màn hình rộng hơn thì độ mịn ( liên tục các điểm kém hơn)

Ảnh xám và ảnh màu :

Mức xám của ảnh số hay ảnh xám là trong đó giá trị của mỗi pixel là một giá trị đơn, chỉ mang một thông tin về cường độ Ảnh xám còn được gọi là ảnh trắng đen với giá trị biến thiên từ đen với cường độ yếu nhất đến trắng với cường độ cao nhất Ảnh xám khác với ảnh trắng đen một bit với chỉ hai giá trị trắng và đen, trong khi ảnh xám có các giá trị trung gian giữa trắng và đen

Ảnh xám thu được từ việc đo cường độ ánh sáng mỗi pixel tại một tần số nhất định trong dãy quang phổ ánh sáng, do đó nó được gọi là ảnh đơn sắc

Ảnh xám được mã hóa bởi n bit sẽ có là 2n mức, đi từ đen (mức 0) tới trắng (mức 2n – 1) Các mức từ 1 đến 2n – 2 biểu diễn các sắc độ xám khác nhau

Hình 5.3 Thang màu xám

Ảnh màu là ảnh mà mỗi pixel chứa 3 kênh màu: Đỏ (Red), Lục (Green) và Lam

Trang 4

có thể được mã hoá n bit cho mỗi kênh Như vậy 1 pixel sẽ được mã hoá bởi 3*n bit.

Do đó dung lượng ảnh màu sẽ lớn hơn 3 lần so với ảnh xám có cùng mức mã hoá

Hình 5.4 Ví dụ về việc chia ảnh màu RBG thành các kênh màu và ảnh xám tương

đương của mỗi kênh màu.

Mẫu dương và mẫu âm :

Mẫu dương là những hình ảnh chứa đối tượng cần được xác định Mẫu âm là những hình ảnh không chứa đối tượng cần được xác định

Hình 5.5 Một số mẫu dương dùng trong việc phát hiện khuôn mặt

Trang 5

Hình 5.6 Một số mẫu âm dùng trong việc phát hiện khuôn mặt

Histogram và cân bằng histogram :

Histogram là một xấp xỉ rời rạc của hàm phân phối xác suất biến ngẫu nhiên Trong ảnh xám, histogram là sự tính toán số pixel có cùng một giá trị trên gray-scale, tức là tìm ra sự phân bố mức xám trong ảnh Quá trình tính toán như sau:

 Đối với một ảnh B bit, khởi động 2B counter với giá trị 0

 Quét qua tất cả cácpixel (x,y)

 Khi f(x,y) = I, tăng giá trị cho counter thứ i Việc cân bằng histogram là để tăng độ tương phản của ảnh số, thường nằm ở khâu tiền xử lý, giúp cho các thuật toán có thể dễ dàng nhận diện các đặc tính có trong ảnh như nhận dạng khuôn mặt, phát hiện biên,… Việc này rất hữu ích khi mà phần đối tượng ( foreground) và phần nền ( background) cùng sáng hoặc cùng tối Tuy nhiên việc cân bằng histogram có thể gây nên những hiệu ứng không mong muốn, đôi khi nó

có thể tăng độ phân giải phần tín hiệu nhiễu và làm giảm phần đối tượng trong ảnh

Phương pháp cân bằng histogram có đưa ra một khái niệm hàm phân phối tích lũy

( cumulative distribution function) , giá trị hàm này tại mỗi này tại mỗi giá trị mức xám

bằng tổng các pixel có mức xám nhỏ hơn hoặc bằng giá trị đó Để ý là sau khi cân bằng thì phân phối tích lũy có dạng tuyến tính

Trang 6

Hình 5.7 Ảnh trước và sau khi cân bằng histogram Đường thẳng trong đồ thị

histogram là hàm tích lũy.

5.2 NHẬN DẠNG KHUÔN MẶT VỚI THUẬT TOÁN ADABOOST

Giới thiệu

Mục tiêu của quá trình nhận dạng là phân loại phân loại ảnh nhận được dựa trên giá trị của các thuộc tính đơn giản Có nhiều lý do để đưa đến việc dùng các thuộc tính thay cho phân tích trên các pixel, lý do chính đó là các thuộc tính có thể được dùng để mã hóa thành dạng kiến thức học mà nếu thực hiện dựa trên pixel sẽ chậm hơn rất nhiều Paul Viola và Michael Johns đã trình bày một phương pháp phát hiện khuôn mặt bằng cách áp dụng chuỗi phân loại với thuật toán Adaboost trong bài báo "Rapid Object Detection using a Boosted Cascade of Simple Features " [4]

Trang 7

Hình 5.8 Dạng thuộc tính Haar-like được dùng trong quá trình phát hiện khuôn mặt : thuộc tính 2 hình chữ nhật ở hình A và B có tác dụng với cạnh, 3 hình chữ nhật ở hình C có tác dụng với đường và 4 hình chữ nhật ở hình C có tác dụng với đường chéo

Các thuộc tính đơn giản được sử dụng gợi nhớ đến các hàm cơ bản của Haar Chi tiết

hơn chúng ta sử dụng 3 dạng thuộc tính như trên hình 5.8 Giá trị của thuộc tính 2 hình chữ

nhật là hiệu của tổng các pixel trong phần xám và các pixel trong phần trắng Hai hình chữ nhật này có thể nằm theo chiều dọc hoặc ngang nhưng với cùng kích thước Thuộc tính 3 hình chữ nhật tính tổng 2 phần ngoài rồi trừ cho tổng phần trong Cuối cùng, thuộc tính 4 hình chữ nhật tính hiệu của tổng 2 cặp hình chữ nhật theo đường chéo

Giả sử rằng độ phân giải cơ bản của bộ phát hiện là 24x24, một bộ thuộc tính đầy đủ thì khá lớn, trên 180000 thuộc tính Khác với cơ sở Haar, một tập các thuộc tính như vậy là “quá đầy đủ” vì lý do: một tập cơ sở không có sự phụ thuộc tuyến tính giữa các phần tử như hình ảnh cần xử lý sẽ có số phần tử tương ứng với số pixel là 576, quá nhỏ so với tập các thuộc tính

!

5.2.1 Ảnh tích phân ( Integral Image):

Các thuộc tính hình chữ nhật có thể được tính tóan rất nhanh sử dụng cách biểu diễn trung gian gọi là ảnh tích phân cho đối tượng ảnh Ảnh tích phân tại vị trí (x,y) chứa đựng tổng các pixel ở trên và bên trái của (x,y) cụ thể là:

' , '

( , ) ( ', ')

x x y y

 

Với ii(x,y) là ảnh tích phân và i(x,y) là ảnh gốc Sử dụng công thức lặp sau :

( , ) ( , 1) ( , )

( , ) ( 1, ) ( , )

Với s(x,y) là tổng tích lũy hàng, s(x,-1) = 0, và ii(-1,y) = 0, ảnh tích phân có thể được tính khi quét qua ảnh gốc chỉ một lần

Trang 8

Hình 5.9 Thuật toán tính ảnh tích phân: sau khi tính toán pixel tại vị trí 1 bằng tổng các pixel trên và bên trái trong ảnh gốc tức A, giá trị tại vị trí 2 là A+B, vị trí 3 là A+C, vị trí 4 là

A+B+C+D Tổng các pixel trong D là : ( 4+1)-(2+3)

Với ảnh tích phân thì tổng của hình chữ nhật bất kì đều có thể tính dựa vào giá trị ở 4 đỉnh Hiệu giữa các tổng hình chữ nhật có thể được tính dựa trên 6 giá trị đỉnh trong trường hợp thuộc tính 2 hình chữ nhật kề, 8 cho trường hợp 3 hình chữ nhật và 9 cho trường hợp 4 hình chữ nhật

Các thuộc tính hình chữ nhật thì còn sơ khai nếu so với các phương pháp khác, khi mà việc phát hiện biên và các thuộc tính cơ bản của ảnh số còn hạn chế Tuy nhiên, tập hợp các thuộc tính hình chữ nhật cung cấp một tập dữ liệu dồi dào cho việc học hiệu quả Khi kết hợp với ảnh tích phân, hiệu quả của tập các thuộc tính hình chữ nhật sẽ bù lại phần nào mặt hạn chế của nó

5.2.2 Các hàm học phân loại

Với một tập thuộc tính và một tập huấn luyện các ảnh dương và ảnh âm thì bất cứ phương pháp học máy nào cũng có thể dùng để phân lọai Trong hệ thống này, một biến thể của AdaBoost được dùng để chọn một tập nhỏ các thuộc tính cũng như để huấn luyện bộ phân loại Trong dạng nguyên thủy, thuật toán AdaBoost dùng để tăng tốc độ quá trình phân loại trên một thuật toán học đơn giản (nhiều khi còn yếu) Như phần trên đã nói, chúng ta có 18000 thuộc tính cho một khung hình cần nhận dạng, lớn hơn nhiều số pixel Mặc dù mỗi thuộc tính được tính rất nhanh, để tính tóan hết tập thuộc tính đó cũng là một vấn đề Giả thuyết đặt ra là: chỉ một số lượng rất nhỏ các thuộc tính được đưa vào bộ phân loại, việc cần làm là tìm ra các thuộc tính này

Để hỗ trợ việc này, một thuật toán học đơn giản được thiết kế để lựa chọn 1 thuộc tính hình chữ nhật phân lọai tốt nhất ảnh dương và ảnh âm Với mỗi thuộc tính, thuật tóan này tìm

ra hàm phân lọai ngưỡng tối ưu nhất Một bộ phân lọai h x j( ) bao gồm một thuộc tính f x j( ), một ngưỡng j( )x và một phân cực p j chỉ ra hướng của dấu bất đẳng thức :

1 ( )

0

j

h x 

if

if

( )

otherwise

ở đây x là khung ảnh phụ 24x24 của một ảnh Dưới đây là quá trình cụ thể của thuật toán

Trang 9

AdadBoost cho việc học phân loại, mỗi vòng boosting lựa chọn một thuộc tính từ 18000 thuộc tính:

 Cho một tập vào ra ( , )x y i i với y  i 0,1 cho ngõ ra ảnh âm hay ảnh dương

 Khởi tạo các trọng số : 1,

1 1 ,

i w

m l

với y  i 0,1 và m,l là số mẫu âm và dương.

 Cho t1, ,T

1 Chuẩn hóa các trọng số:

,

,

,

1

t i

t i n

t j

j

w

w

w

do đó w t i, là phân bố xác suất

2 Đối với từng thuộc tính j, huấn luyện bộ phân loại h j giới hạn theo một thuộc tính

Sai số được tính ứng với trọng số w t :

( )

3 Chọn bộ phân lọai h với sai số ít nhất t

4 Cập nhật trọng số:

1

1, , i

e

t i t i t

w w  

trong đó e  nếu i 0 x được phân loại đúng, i e  nếu ngược lại và 1 1 1

t

e e

 

 Bộ phân lọai cuối cùng là :

1 ( )

0

h x 

1 ( ) 2

với

1 log

t

t

Trên thực tế, không một thuộc tính đơn lẻ nào được phân lọai với sai số thấp Thuộc tính được lưa chọn trong những vòng đầu thuật tóan cho sai số trong khỏang 0.1-0.3 Thuộc tính được chọn trong những vòng sau, khi công việc trở nên khó hơn, cho sai số trong khoảng 0.4-0.5

Đối với mục đích nhận dạng khuôn mặt người, những thuộc tính hình chữ nhật đầu tiên được thuật toán AdaBoost chọn phải thật rõ ràng và dễ để nhận thấy Thuộc tính đầu tiên được chọn phản ánh tính chất vùng mắt thường tối hơn vùng mũi và vùng má Kích thước để nhận biết thuộc tính này tương đối lớn so với khung ảnh phụ và không nên phụ thuộc vào kích thước và vị trí của khuôn mặt Thuộc tính thứ hai dựa trên tính chất vùng mắt thường tối hơn vùng sống mũi

Trang 10

Hình 5.10 Hai thuộc tính đầu tiên được lựa chọn trong thuật toán AdaBoost

5.2.3 Chuỗi phân loại tập trung (Attentional Cascade)

Phần này mô tả thuật toán để xây dựng một chuỗi các bộ phân loại nhằm tăng hiệu quả phát hiện đồng thời giảm triệt để thời gian tính toán Chìa khóa của vấn đề là một bộ phân loại kích thước nhỏ nhưng hiệu quả có thể được xây dựng qua việc loại bỏ các khung hình phụ âm (negative sub-window) trong khi tìm kiếm trong tất cả các trường hợp dương ( chẳng hạn điều chỉnh ngưỡng của bộ phân loại để các trường hợp bị phát hiện nhầm là âm giảm về không) Các bộ phân loại đơn giản thì được sử dụng trước tiên để loại bỏ phần lớn các khung hình phụ trước khi các bộ phân lọai phức tạp được gọi

Toàn bộ quá trình phát hiện có thể được mô tả bằng một cây quyết định suy giảm dần mà

ta gọi là chuỗi phân loại (cascade) Một kết quả dương của bộ phân loại trước sẽ kích họat việc đánh giá của bộ phân loại sau, và kết quả dương của bộ phân loại này lại kích hoạt bộ phân loại sau nữa,…Bất cứ kết quả âm của tầng phân loại nào cũng sẽ loại bỏ khung hình phụ đó

Ví dụ như tầng đầu tiên đạt hiệu quả cao được xây dựng từ bộ phân loại hai thuộc tính

‘mạnh’ bằng cách giảm ngưỡng để hạn chế mẫu bị nhầm là âm Việc tính toán của tầng này sẽ tốn mất 60 lệnh vi xử lý, do đó khó có thể tìm ra một bộ lọc đơn giản nào cho hiệu suất hơn

Hình 5.11 Sơ đồ của chuỗi phát hiện (Detection Cascade)

Ngày đăng: 24/08/2012, 15:42

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w