1 .3Tổng quan về Mobile Robot lau sàn sử dụng xử lý ảnh
2.4 Lý thuyết về ảnh số và xử lý ảnh
2.4.4 Không gian màu (Color Space)
Màu sắc có thể được phân tích theo hai thành phần : thành phần màu và độ sáng. Giá trị thành phần màu của một vật thể xác định đặc tính màu của vật thể đó trong khi giá trị độ sáng là một đặc tính của mơi trường xung quanh tác động lên vật thể. Đối với một ảnh màu, ta có thể xác định được cả hai giá trị thành phần màu và độ chói. Một khơng gian màu [8] là một mơ hình tốn học mơ tả cách biểu diễn màu sắc bằng các con số, thông thường là 3 hay 4 thành phần. Xác định vật thể dựa trên đặc tính màu có thể gặp vấn đề khi thay đổi điều kiện ánh sáng xung quanh sẽ làm thay đổi màu sắc bên ngoài của vật thể.
22
Hình 2.9 : Các kiểu khơng gian màu
a. Không gian màu RGB (RGB Color Space)[8]
Không gian màu RGB là không gian màu được xây dựng dựa trên mơ hình màu RGB (RGB color model). Ánh sáng trắng được hình thành từ bảy màu khác nhau: đỏ, cam, vàng, lục, lam, chàm, tím. Các màu này tạo nên một dãy màu liên tục mà ta không thấy được ranh giới giữa chúng. Nhưng xét về cấu tạo của mắt và việc nhìn thì tất cả các màu đều được liên kết bởi các màu cơ bản sau:
Red : (R) = 700nm
Green : (G) = 546.1 nm
Blue : (B) = 435.8 nm
Trong mơ hình RGB, mỗi màu xuất hiện trong các thành phần phổ sơ cấp R,G và B. Mơ hình dựa trên cơ sở hệ thống toạ độ Cartesian (toạ độ Decca).
23 Các màu R,G,B nằm ở đỉnh của khối lập phương. Màu lam-lục, đỏ-lam, vàng nằm ở ba đỉnh bên kia của khối lập phương. Màu đen nằm ở gốc toạ độ. Màu trắng nằm ở đỉnh xa gốc toạ độ nhất. Thang mức xám kéo dài từ đen đến trắng(đường nối gốc toạ độ và đỉnh màu trắng). Mỗi màu cơ bản được mã hoá bởi 8bit, vậy với ba màu phối hợp nhau tạo thành 255x255x255=16.581.375 màu thứ cấp mà mắt người có thể cảm nhận được. Thường ta giả thiết là tất cả các giá trị màu được chuẩn hố (khối hình lập phương là hình khối đơn vị). Tất cả các giá trị màu R,G,B nằm trong đoạn [0 1] . Mơ hình màu R,G,B bao gồm ba mặt phẳng độc lập (một mặt phẳng dùng cho một màu độc lập). Nếu đưa mơ hình RGB vào monitor RGB thì ba màu này phối hợp nhau tạo thành ảnh màu hoàn chỉnh. Vì vậy, để sử dụng mơ hình RGB cho xử lý ảnh có ý nghĩa thì các ảnh phải được biểu diễn theo một mặt phẳng màu. Nhưng sự biến thiên của ánh sáng môi trường xung quanh cũng làm thay đổi rất lớn giá trị RBG của pixel ảnh. Vì thế những khơng gian màu khác bền vững hơn với sự thay đổi của điều kiện ánh sáng của môi trường được sử dụng.
b. Không gian màu xám (Gray-scale Color Space)
Một ảnh xám là một ảnh đơn giản chỉ có một màu duy nhất là màu xám. Lí do của việc chuyển từ ảnh màu sang ảnh xám là thông tin cho mỗi pixel sẽ ít hơn. Trong ảnh xám, các thành phần RGB đều có cường độ bằng nhau, do đó chỉ cần xác định một giá trị cường độ cho mỗi pixel, trong khi đối với ảnh màu ta phải cần đến 3 giá trị. Một công thức đơn giản để chuyển một ảnh màu sang ảnh trắng đen là :
Thông thường, cường độ xám được biểu diễn bằng một số nguyên 8-bit cho ta 256 khả năng khác nhau của mức xám từ đen tới trắng. Nếu các mức này phân bố ngang nhau thì sự khác nhau giữa các mức xám liên tiếp là không đáng kể, chứng tỏ màu sắc của ảnh tương đối đồng nhất.
Ảnh xám vẫn cịn rất thơng dụng trong cơng nghệ hiện nay và các giải thuật xử lí ảnh; chúng vẫn cịn rất hữu dụng trong rất nhiều ứng dụng, do đó khơng cần thiết phải sử dụng những ảnh màu phức tạp và khó xử lí. Ví dụ, trong lĩnh vực xác định, nhận dạng vật thể dựa trên các đặc tính biên (edge), contour,... người ta thường sử dụng ảnh xám. B G R ] 0.072 0.715 0.212 [ [Gray]
24
c. Không gian màu HSV
Hệ thống toạ độ của không gian màu HSV [8] là một hình trụ, và mơ hình được định nghĩa như là một hình nón, gồm có: vị trí góc – màu sắc, vị trí hướng tâm – độ bão hòa, và trục thẳng đứng định nghĩa độ sáng.
- Màu sắc (thành phần H - Hue): Có thể được phân bố từ 0 đến 3600 nhưng trong một số ứng dụng được đơn giản hố 0-100%
- Độ bão hồ (thành phần S – Saturation): Phạm vi phân bố từ 0-100, và chỉ rõ vị trí tương đối từ trục thẳng đứng tới cạnh của hình nón.
- Độ sáng (thành phần V hay B – Value hay Bright): Là giá trị độ sáng của màu sắc và phân bố từ 0-100% .
Hình 2.11 : Khơng gian màu HSV
d. Không gian màu nhị phân
Không gian màu nhị phân cũng tương tự như không gian màu xám, chỉ khác ở chỗ khơng gian màu nhị phân chỉ có hai mức xám là 0 (đen) và 1 (trắng). Các ảnh trắng-đen là những ví dụ của khơng gian màu nhị phân. Ảnh trắng-đen thường ít được dùng để biểu diễn trong thực tế.
* Ngồi ra cịn một số Color Space khác: XYZ, Lab, YCbCr.
2.4.5 Tính tốn biểu đồ phân bố xác suất (Histogram)
Histogram là một lược đồ biểu diễn độ sáng của một bức ảnh. Nó chỉ là một phương án hỗ trợ khi bạn khơng nhìn thấy tốt bức ảnh trên màn hình LCD ví dụ dưới ánh mặt trời sáng, nơi có độ sáng phức tạp. Quan trọng nhất vẫn là bạn nhìn trực tiếp vào bức ảnh và kinh nghiệm của bạn.
25
Hình 2.12 : Biểu đồ Histogram biểu thị ánh sáng tăng dần từ trái qua phải
Nhìn vào biểu đồ ta có thể biết được phân bố cường độ sáng của một ảnh, với những ảnh mà phân bố histogram lệch về bên phải thì ảnh đó là một ảnh có độ sáng tốt. Ngược lại thì ảnh đó là một ảnh tối.
26
Hình 2.14: Histogram của ảnh tối
Đối với ảnh màu, để tính histogram của ảnh ta có thể tính Histogram cuả từng kênh màu. Giả sử hệ màu đang sử dụng là hệ RGB, khi đó ta có thể tính Histogram của các kênh R, G, B như là với một ảnh xám thơng thường. Phần cịn lại sau đây tơi sẽ giới thiệu về cách tính Histogram của ảnh màu đồng thời hiển thị biều đồ histogram của từng kênh.
Hình 2.15: Bốn biểu đồ ánh sáng
Biểu đồ 1 (màu đen) biểu diễn ánh sáng chung của toàn bức ảnh; biểu đồ 2 (màu đỏ) biểu diễn ánh sáng màu đỏ; biểu đồ 3 biểu diễn ánh sáng xanh lục; và biểu đồ 4 biểu diễn ánh sáng xanh lam. Do theo cách phân chia phổ biến hiện nay có 256
27 cấp độ sáng của mỗi màu, nên ta thấy thang ánh sáng chia làm 256 cấp độ (0 – 255, 0 là tối đen hồn tồn).
Hình 2.16: Ảnh gốc sau khi Histogram
2.4.6 Chuyển đổi không gian màu
Để thuận tiện cho q trình xử lí, đôi khi chúng ta cần phải chuyển đổi qua lại giữa các không gian màu nhằm giúp cho việc xử lí đơn giản nhất. Thơng thường, phép chuyển đổi yêu cầu một số phép toán xấp xỉ nhằm bảo đảm chất lượng màu sắc của hình ảnh.
a. Chuyển đổi ảnh màu RGB sang ảnh màu HSV
Các hoạ sĩ thường sử dụng mơ hình màu HSV thay cho các khơng gian màu truyền thống khác vì nó giống với cách con người nhận diện màu sắc. Ví dụ, chúng ta có thể muốn thay đổi màu của một chiếc xe màu vàng đang chạy trên đường thành màu xanh, nhưng chúng ta muốn giữ nguyên khung cảnh còn lại, bao gồm các chỗ sáng và bóng của chiếc xe. Đây sẽ là một vấn đề khó trong khơng gian màu RBG nhưng lại rất đơn giản đối với HSV. Bởi vì màu vàng của chiếc xe có một giá trị cụ thể trong thang màu sắc, không quan tâm đến cường độ hay độ bão hồ. Những pixel này có thể được cơ lập một cách dễ dàng và thành phần màu của chúng được thay đổi, làm cho chiếc xe có một màu khác. Vì hầu hết những hệ thống xử lí
28 hình ảnh số hoạt động trên ảnh RBG, q trình trên có thể được thực hiện qua ba bước:
1. Chuyển không gian màu RBG thành HSV. 2. Thay đổi giá trị màu sắc.
3. Chuyển hình ảnh đã thay đổi về lại không gian màu RBG.
(a) (b) (c)
Hình 2.17 : (a) Ảnh màu RGB ; (b) Ảnh màu HSV ; (c) Không gian HSV
b. Chuyển đổi ảnh màu sang ảnh xám
Ảnh màu thu được được xây dựng trên mơ hình RBG. Mơ hình RBG là mơ hình trong đó ảnh được tạo nên từ 3 màu cơ bản là R-đỏ B-xanh dương và G-xanh lục. Mỗi màu cơ bản được mã hố bởi 8-bit, được mơ tả như là một bộ ba RBG (r,b,g), mỗi thành phần có các giá trị khác nhau từ 0 đến 255. Như vậy tạo thành 255x255x255 = 16.581.375 màu thứ cấp khác nhau.
Ảnh trắng đen hay ảnh mức xám (gray-scale) được cấu thành từ các pixel có mức sáng khác nhau thay đổi từ 0 đến 255. Ta có thể xem tồn bộ ảnh là một mảng hai chiều mà mỗi phần tử có giá trị thay đổi từ 0 đến 255.
Để chuyển từ ảnh màu sang ảnh gray-scale, cách cơ bản nhất là gán một giá trị duy nhất cho cả ba kênh màu R,B,G. Để tìm giá trị gán này, ta tính tốn hiệu ứng độ sáng hay độ chói của màu và sử dụng giá trị này để tạo ra một mức xám phù hợp với độ sáng mong muốn. Độ sáng của một pixel có thể được tính theo cơng thức :
Y = 0.3RED + 0.59GREEN + 0.11Blue (2.5) Sau đó, giá trị Y này sẽ được gán cho R,B,G.
29
c. Chuyển đổi ảnh xám sang ảnh nhị phân
Ảnh nhị phân là loại ảnh trắng đen mà mỗi phần tử ảnh chỉ có 2 giá trị : 0 (cường độ tối nhất) và 255 (cường độ sáng nhất).
Để chuyển sang ảnh nhị phân, ta chọn một giá trị ngưỡng . Nếu 1 điểm ảnh trong ảnh xám có giá trị độ sáng < thì ta cho điểm ảnh này là tối (có giá trị độ sáng =0) và ngược lại nếu 1 điểm ảnh trong ảnh xám có giá trị độ sáng >thì ta cho điểm ảnh này là sáng (có giá trị độ sáng = 255). Đây chính là phương pháp lấy ngưỡng toàn cục.
a) b) c) Hình 2.18 : (a) Ảnh xám ; (b), (c) Ảnh nhị phân
2.4.7 Giải thuật CAMSHIFT (Continuously Adaptive Mean Shift)
Giải thuật CAMSHIFT [8] là phương pháp nhận dạng dựa trên đặc trưng dựa vào màu da. CAMSHIFT là viết tắt của “Continuously Adaptive Mean Shift”. Giải thuật CAMSHIFT là một phương pháp bền vững khơng thơng số để tìm kiếm đỉnh của các phân bố xác suất với một cửa sổ dị tìm thích nghi. Giải thuật CAMSHIFT rất thích hợp cho việc xử lí các vấn đề trong lĩnh vực xử lí ảnh. Giải thuật CAMSHIFT là sự kết hợp giữa giải thuật Mean Shift và q trình định kích thước thích nghi.
a. Giải thuật Mean Shift
Mean Shift là giải thuật dùng để xác định vị trí của các điểm của một tập các điểm rời rạc thỏa một hàm mật độ cho trước. Giải thuật sẽ bắt đầu với một tập các điểm dữ liệu và tạo một cửa sổ có kích thước cố định cho từng tập hợp. Sau đó, tính vectơ thay đổi trung bình (mean shift vector). Vector thay đổi trung bình là vector có chiều là chiều là chiều tăng dần của hàm mật độ cục bộ (local density function) của các điểm trong cửa sổ tìm kiếm. Sau đó vị trí tâm của mỗi cửa sổ tìm kiếm sẽ được dịch đến vị trí mới dựa vào hàm vector thay đổi trung bình. Vịng lặp tiếp tục
30 đến khi mỗi cửa sổ tìm kiếm đạt đến vị trí cực đại của hàm mật độ xác suất và vector thay đổi trung bình xấp xỉ bằng khơng.
Hàm mật độ của giải thuật Mean Shift có cơng thức :
(2.6)
trong đó:
- x là toạ độ của điểm.
- K là hàm Epanechnikov kernel. - D là số chiều của không gian.
- h là kích thước của cửa sổ tìm kiếm. Hàm Epanechnikov kernel có cơng thức là :
(2.7) Trong đó: Cd là thể tích của hình cầu đơn vị trong khơng gian d-chiều.
Trong lĩnh vực phân tích ảnh, phân bố màu sắc của vật thể được chuyển sang phân bố 1 chiều. Ước lượng mật độ đa biến được sử dụng để định lượng những màu sắc dựa vào sự xuất hiện của chúng trong kernel. Để đánh giá sự khác nhau giữa hai phân bố, ta dùng một hệ số gọi là hệ số :
(2.8) Trong đó: q là mơ hình đối tượng, p là hàm phân bố đã tính tốn và y vị trí.
Quá trình tìm kiếm bắt đầu từ một biểu đồ mục tiêu. Sau đó sẽ tiến hành tìm kiếm ở vùng lân cận để tìm vị trí có hệ số nhỏ hơn giá trị ngưỡng cho trước.
Tóm lại, giải thuật Mean Shift áp dụng để nhận dạng đối tượng được thực hiện qua các bước như sau :
- Bước 1 : Chọn kích thước cửa sổ tìm kiếm.
- Bước 2 : Chọn vị trí tìm kiếm ban đầu trong cửa sổ tìm kiếm. - Bước 3 : Tính vị trí của trung bình phân bố trong cửa sổ tìm kiếm.
- Bước 4 : Di chuyển cửa sổ tìm kiếm sao cho tâm của cửa sổ trùng với vị trí. vừa tìm được.
- Bước 5 : Lập lại bước 3,4 đến khi hội tụ (giá trị trung bình nhỏ hơn giá trị ngưỡng)
Vị trí trung bình (centroid) trong cửa sổ tìm kiếm được tính như sau : n 1 i i d ^ h x x K nh 1 (x) f 1 x 0, 1 x ), x 2)(1 (d C 2 1 (x) K 2 1 d E m 1 u u p(y)q 1 δ(y)
31 1. Tìm moment khơng gian thứ 0 :
(2.9)
2. Tìm moment khơng gian thứ nhất cho x và y :
(2.10) 3. Cuối cùng, vị trí trung bình của cửa sổ tìm kiếm :
xc = M10
M00 ; yc = M01
M00 (2.11) Các moment không gian (spatial moments) M00 , M10 và M01 : là những đại lượng hình học được tính theo cơng thức sau:
1 1 , 0 0 ( , ) W H i j i j x y M x y I x y (2.12) trong đó:
- x, y là vị trí tọa độ của Pixel(x,y). - i, j là bậc của các loại moment.
- W, H là giới hạn (rộng x cao) của cửa sổ tìm kiếm (kích thước). - I(x,y) là giá trị (mức xám) của pixel tại vị trí (x,y) trong ảnh.
Giải thuật Mean Shift chỉ nhận dạng vật thể cố định chứ không thể dùng để xác định và bám vật thể vì kích thước của cửa sổ tìm kiếm là cố định. Do đó, giải thuật này khơng thích hợp để xác định vị trí của những vật thể mà kích thước thay đổi (khi tiến lại gần hay ra xa so với camera). Kích thước cửa sổ tìm kiếm nhỏ khơng thích hợp cho những vật có kích thước lớn trong khi kích thước cửa sổ tìm kiếm lớn sẽ bị ảnh hưởng nhiều bởi nhiễu.
b. Giải thuật CAMSHIFT
Giải thuật CAMSHIFT được xây dựng trên cơ sở giải thuật Mean Shift. Tuy nhiên thay vì sử dụng kích thước cửa sổ tìm kiếm cố định, giải thuật này sẽ sử dụng một cửa sổ tìm kiếm thích nghi liên tục có kích thước tùy thuộc vào thông tin của moment thứ 0 M00. Vì thế chiều rộng và cao của cửa sổ tìm kiếm sẽ được thiết lập theo một hàm của moment thứ 0 M00 trong quá trình tìm kiếm.
Giải thuật CAMSHIFT có thể được tóm tắt theo các bước sau : - Bước 1 : Chọn vị trí tìm kiếm ban đầu trong cửa sổ tìm kiếm. - Bước 2 : Tính vị trí của trung bình phân bố trong cửa sổ tìm kiếm.
x y 00 I(x,y) M x y 01 x y 10 xI(x,y) M yI(x,y) M
32 - Bước 3 : Di chuyển cửa sổ tìm kiếm sao cho tâm của cửa sổ trùng với vị trí
vừa tìm được.
- Bước 4 : Thiết lập lại kích thước của cửa sổ tìm kiếm theo hàm của moment thứ 0 tìm được trong bước 2.
- Bước 5 : Lập lại bước 2,3,4 đến khi hội tụ (giá trị trung bình nhỏ hơn giá trị ngưỡng).
Kích thước của cửa sổ tìm kiếm được điều chỉnh dựa vào M00 theo công thức sau :
h = 1.2w (2.13)
trong đó:
- w : chiều rộng của cửa sổ tìm kiếm.