Tải bản đầy đủ (.doc) (114 trang)

Ứng dụng xử lý ảnh trong điều khiển

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.21 MB, 114 trang )

Ứng dụng xử lý ảnh trong điều khiển
Trang 1

1
TỔNG QUAN

1.1 KHÁI NIỆM VỀ ROBOT VISION
Bài toán tránh vật cản là một bài toán rất quen thuộc trong điều khiển các
loại xe hoặc Robot tự hành. Có rất nhiều cách giải quyết bài toán này như sử
dụng các cảm biến hồng ngoại, siêu âm,… để xác đònh vò trí vật cản rồi sử dụng
giải thuật tránh vật cản cục bộ để di chuyển. Tuy nhiên với sự phát triển rất
nhanh của kỹ thuật điện tử và khoa học máy tính, hiện nay còn có một hướng
tiếp cận khác là sử dụng Camera kết hợp với máy tính tốc độ cao để đưa ra
phương án tránh vật cản một cách tối ưu hơn. Hướng tiếp cận này làm xuất hiện
một khái niệm mới trong lónh vực Robotic là Robot Vision nhằm mô tả các đối
tượng là các Robot sử dụng Camera như một loại cảm biến chính trong quá trình
làm việc hoặc giao tiếp với con người.
Hiện nay phương pháp dùng Camera cho các Robot tự hành vẫn đang trong
giai đoạn phát triển. Tại Việt Nam phương pháp này còn tương đối mới, tuy
nhiên đây là hướng tiếp cận duy nhất có thể đưa các loại Robot nói chung trở
nên thông minh, thân thiện và gần gũi với con người hơn.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 2
Sau đây là một số lónh vực ứng dụng của Robot Vision:


• Công nghiệp sản xuất: như các tay máy tự động, các hệ thống phân
loại tốc độ cao,…
• Công nghiệp giải trí: như chú chó Robot
Aibo…
• Nghiên cứu khoa học: như xe tự hành thám
hiểm sao
hỏa, Robot thăm dò các nơi nguy hiểm như
đáy biển…
• Cuộc sống: như hệ thống nhận dạng khuôn
mặt
tại
các sân bay, các hệ thống phân biệt mống
mắt…
Trở ngại lớn nhất của phương pháp chính là tốc độ xử lý của máy tính. Bởi
vì Camera thực chất cũng chỉ là một loại cảm biến cao cấp được tích hợp trên
mật độ diện tích nhỏ cho nên kết quả nhận được từ Camera sẽ là một dạng ma
trận Vector trong đó mỗi Vector sẽ biểu diễn một điểm ảnh (pixel). Kích thước
của Vector này sẽ được phản ánh bằng số bit màu của ảnh BITMAP trên
Window. Để xử lý chính xác các thông tin của môi trường ta phải tăng số lượng
điểm ảnh xử lý (ảnh thông thường có kích thùc 320x240 điểm ảnh hoặc
640x480 điểm ảnh) và điều này sẽ làm giảm tốc độ xử lý thông tin. Do đó để tốc
độ xử lý chấp nhận được ta thường phải giảm số điểm ảnh, bỏ bớt một số công
đoạn xử lý hoặc thường gặp nhất là giảm số bit màu của một điểm ảnh bằng
cách chuyển ảnh xuống mức xám để xử lý.

Dưới đây là hình ảnh một số Robot tự hành sử dụng Camera.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được


SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 3

Hình 1.1 Robot tự hành sử dụng 2 Camera

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 4

Hình 1.2 Walking Robot sử dụng Camera và các cảm biến đo khoảng cách

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 5

Hình 1.3 Robot tự hành sử dụng wireless Camera.


1.2 ƯU NHƯC ĐIỂM CỦA PHƯƠNG PHÁP
Sau đây là một số các ưu điểm cũng như khuyết điểm của phương pháp này
so với các phương pháp dùng cảm biến:
 Ưu điểm:
• Có được biên dạng liên tục của toàn vật thể.
• Có thể phân biệt được sự thay đổi nhỏ về màu sắc và biên dạng.
• Có thể phân loại được các vật thể khác nhau dựa trên hình dáng và màu
sắc.
• Có thể phát hiện và phân tích các chuyển động (motion analysis and
object tracking).
• Có tính tương tác tốt với con người như có thể nhận dạng và phân biệt
được khuôn mặt con người (face recognition).
• Giải quyết được bài toán 3D.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 6
• Giải quyết được bài toán toàn cục và tối ưu theo một tiêu chí cụ thể (như
bài toán tìm đường đi ngắn nhất).


Nhược điểm:
• Đòi hỏi máy tính có tốc độ cao.
• Quá trình xử lý phức tạp nên dễ phát sinh lỗi.


1.3 HỆ THỐNG XỬ LÝ ẢNH
Nhận biết môi trường là quá trình rất quan trọng trong lónh vực Robotic và
nhiều lónh vực khác. Trang bò một hệ thống xử lý ảnh tốt sẽ nâng cao khả năng
linh hoạt cho hệ thống tự động, do đó các máy thông minh như Robot nên có hệ
thống xử lý ảnh để chúng có thể thực hiện nhiều nhiệm vụ như con người, chẳng
hạn lắp ráp, kiểm tra, và đi lại. Hơn nữa hệ thống xử lý ảnh còn có thể cung cấp
những thông tin giúp các máy thông minh có thể thu nhận và học thêm từ môi
trường mà nó đang hoạt động, chứ không chỉ giới hạn trong khả năng hiểu biết
mà người lập trình cung cấp cho nó.
Hệ thống xử lý ảnh thực hiện các nhiệm vụ gồm (tài liệu [6]): thu nhận
chuyển đổi (transformation), phân tích (analysis), và nhận biết các hình ảnh ánh
sáng (image understanding). Cụ thể:
• Chuyển đổi hình ảnh là quá trình biến đổi hình ảnh ánh sáng thành
hình ảnh điện tử có thể sử dụng trong máy tính. Vì vậy, chuyển đổi
hình ảnh đòi hỏi số hoá điện tử hình ảnh ánh sáng. Một khi đã được
số hoá, các hình ảnh này sẽ được phân tích bằng phần mềm.
• Sau quá trình chuyển đổi là quá trình phân tích ảnh để rút ra những
thông tin cần thiết cho bước hiểu ảnh tiếp theo (ví dụ như tìm các
gờ cạnh hay màu sắc của đối tượng trong ảnh).
• Cuối cùng một khi hình ảnh đã được phân tích, hệ thống vision phải
làm sáng tỏ hay hiểu (understanding) hình ảnh vừa được thu nhận
thể hiện cái gì trong giới hạn hiểu biết về môi trường của nó. Sau
giai đoạn này, tùy theo mục đích của ứng dụng, các quyết đònh sẽ
được đưa ra.
Sau đây ta sẽ trình bày dưới dạng sơ đồ các giai đoạn chính của quá trình
xử lý ảnh được thực hiện trong Luận Án.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được


SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 7
Camera

Thu nhận ảnh

Tiền xử lý ảnh

Phân tích ảnh

Lưu trữ

Hệ ra quyết đònh

Hình 1.4 Các giai đoạn chính của quá trình xử lý ảnh
Với mô hình này thì sau khi ra quyết đònh, hệ thống xử lý ảnh sẽ đóng thêm
vai trò thu nhận hình ảnh phản hồi để quá trình điều khiển được chính xác hơn
(điều khiển vòng kín).
Các chương tiếp theo sẽ trình bày theo thứ tự các quá trình như đã nêu trên.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển

Trang 8

2
THU NHẬN ẢNH VÀ
TIỀN XỬ LÝ ẢNH
Quá trình xử lý ảnh sẽ nhận ảnh từ Camera như là INPUT của toàn bộ quá
trình xử lý. Chng này sẽ trình bày hai quá trình sau:
 Thu nhận ảnh từ Camera.

 Tiền xử lý ảnh nhận được (đưa ảnh nhận được về mức xám và tăng cường
chất lượng ảnh này).
Trước tiên ta sẽ tìm hiểu sơ lược về quá trình nhận ảnh từ Camera trên hệ
điều hành Window.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 9
2.1 SƠ LƯC VỀ CAMERA CCD
Camera CCD (Charge Couple Device) là một thiết bò thu nhận ảnh dưới
dạng tín hiệu số bằng cách thu nhận cường độ sáng tại từng điểm thông qua một
loại linh kiện có tên là photo diode. Cường độ sáng tại mỗi điểm này sẽ được mã
hoá thành 3 giá trò màu cơ bản là RED, GREEN, BLUE theo lý thuyết màu do
Thomson đưa ra năm 1802. Ảnh nhận được từ Camera loại này là một ma trận
Vector:
R 

G 
[ p ]ij =  
B 
 
 A

(2-1)

Trên Window ma trận này chính là phần dữ liệu (data) của ảnh BITMAP.
Các phép xử lý ảnh thực chất là quá trình biến đổi ma trận trên bằng các công
cụ tuyến tính (các phép toán đại số như cộng trừ,…), phi tuyến (bộ lọc Median,
…), hay chuyển ảnh sang một không gian khác để xử lý rồi biến đổi ngược trở lại
(như biến đổi Fourier,Wavelet…).
Mô hình minh họa của đề tài sử dụng một WebCam của D-Link với driver
hỗ trợ chuẩn bắt hình VfW (Video for Window) ở độ phân giải (tương ứng với
kích thước của ma trận ảnh) 320x240.
Window có hổ trợ một chuẩn mới nhanh hơn chuẩn VfW là chuẩn WDM
(Windows Driver Model) tuy nhiên vì driver của hãng sản xuất gặp một số lỗi
kỹ thuật nên chuẩn này chỉ làm việc được trên một số máy có cấu hình phù hợp.
Dưới đây là cấu trúc driver nhận ảnh từ Camera trên Window:

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 10


Hình 2.1 Cấu trúc của driver nhận ảnh từ Camera
2.2 ĐỊNH DẠNG ẢNH BITMAP VÀ CÁC BƯỚC THU NHẬN ẢNH
Do chương trình minh họa được viết trên nền Window nên tín hiệu từ
Camera sau khi được driver xử lý sẽ được chuyển sang một đònh dạng chuẩn của
Window là DIB.
Sau đây là sơ lược về cấu trúc của file .BMP: file lưu trữ đònh dạng DIB
trên Window.
2.2.1 Cấu trúc file BITMAP
 Các khái niệm:
DDB (Device Dependent Bitmap): Bitmap phụ thuộc vào thiết bò cụ thể,
nên không thể sử dụng ở một thiết bò khác sao cho hình ảnh không thay đổi.
DIB (Device Independent Bitmap): Bitmap có thể sử dụng trên nhiều thiết
bò khác nhau do có thêm những thông tin như số màu sử dụng, cách thức nén, ...
Hiện nay, các file .BMP đều là loại bitmap DIB.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 11
 Cấu trúc tập tin hình ảnh DIB:
// Bitmapfileheader
typedef struct tagBITMAPFILEHEADER { // bmfh
WORD bfType;
// Nhận diện ảnh bitmap có giá trò “BM”
DWORD bfSize;
// Tổng chiều dài tập tin theo bytes

WORD bfReserved1;
// Dành riêng, luôn bằng 0
WORD bfReserved2;
// Dành riêng, luôn bằng 0
DWORD bfOffBits;
// Khoảng cách từ đầu tập tin đến Data
} BITMAPFILEHEADER;
// Bitmapinfoheader
typedef struct tagBITMAPINFOHEADER{ // bmih
DWORD biSize;
// Kích thước BITMAPINFOHEADER
LONG biWidth;
// Chiều rộng bitmap theo pixels
LONG biHeight;
// Chiều cao bitmap theo pixels,
WORD biPlanes;
// Color planes, luôn bằng 1
WORD biBitCount
// Color bits per pixel (1, 4, 8, 24, 32)
DWORD biCompression;
// Kiểu nén
DWORD biSizeImage;
// Tổng số bytes hình ảnh bitmap
trong tập tin
LONG biXPelsPerMeter;
// Độ phân giải theo chiều ngang
LONG biYPelsPerMeter;
// Độ phân giải theo chiều dọc
DWORD biClrUsed;
// Số màu sử dụng trong ảnh

DWORD biClrImportant;
// Số màu quan trọng
} BITMAPINFOHEADER;

// Bảng màu
typedef struct tagRGBQUAD {
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD

// rgbq

// Dành riêng, luôn bằng 0

2.2.2 Các bước tiến hành thu nhận ảnh từ Camera

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 12
Để có thể thu nhận ảnh trên Window, ta phải thực hiện một số hàm API để
giao tiếp với driver của Camera như sau (xin tham khảo tài liệu [9], [10] và bộ
MSDN):
// chú ý là để dùng được các hàm này ta phải khai báo thêm header Vfw.h

// và lib vfw32.lib vào chương trình
void khoitaoCamera(void)
{
int i;
char *name,*ver;
CAPSTATUS CapStatus;
// neu da khoi tao thi disconnect roi connect lai de nhan data moi
if (isInitcap)
{
capDriverDisconnect(capWindow);
DeleteObject(capWindow);
}
capWindow = NULL;
// khoi tao Camera bang cac do tim vi tri cua Camera trong danh sach
// hardware cua window
name = new char[200];
ver = new char[200];
capWindow = capCreateCaptureWindow((LPTSTR)TEXT("Capture
window"),
WS_CHILD | WS_VISIBLE,
3, 3, 320, 240,
(HWND)m_disp.m_hWnd,(int) 0);
capIndex = 10;
for (i=0;i < 10;i++)
{
if (capGetDriverDescription(i,name,200,ver,200))
{
if (capDriverConnect(capWindow,i))
{
capIndex = i;

capPreviewRate(capWindow,66);
capGetStatus(capWindow,&CapStatus, sizeof
(CAPSTATUS));
// lay cac thong so cua Camera
capName = (LPCSTR)name;

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 13
capVer = (LPCSTR)ver;
break;
}
}
}
delete name;
delete ver;
if (capIndex < 10) {isInitcap = TRUE;}
}
Kết quả của hàm trên sẽ được lưu giữ trong các biến toàn cục sau:
• capIndex sẽ chứa số thứ tự của Camera mà Window nhận biết được.
• capName và capVer sẽ chứa thông tin mô tả về Camera chứa trong
driver.
• Và cuối cùng capWindow chính là HANDLE của Camera mà Window
trả về để ta có thể tiến hành các thao tác giao tiếp với Camera.
Để lấy về một ảnh ta sử dụng các lệnh sau:

capGrabFrameNoStop(capWindow);
capEditCopy(capWindow);
Hai lệnh trên sẽ gởi thông điệp báo cho Camera là ta cần lấy một ảnh ngay
thời điểm hiện tại và cất ảnh này vào Clipboard của Window. Nhưng để thực sự
truy cập được vào vùng dữ liệu của ảnh ta phải thực hiện thêm một số hàm sau:
if (IsClipboardFormatAvailable(CF_BITMAP))
{
HBITMAP bm;
OpenClipboard();
// thao tac tren clipboard
bm = (HBITMAP)GetClipboardData(CF_BITMAP);
BITMAP inf;
CDC *dc;
// lay DC thiet bi
dc = m_disp.GetDC();
HDC hDC;
int Height,Width;
// xac dinh thong so cua bitmap
GetObject(bm,sizeof(BITMAP),&inf);
Height = inf.bmHeight;
Width = inf.bmWidth;
// tao DC ao

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển

Trang 14
hDC = CreateCompatibleDC(dc->GetSafeHdc());
SelectObject(hDC,bm);
BitBlt(dc->GetSafeHdc(),3,3,Width,Height,hDC,0,0,SRCCOPY);
DeleteObject(SelectObject(hDC,bm));
DeleteDC(hDC);
m_disp.ReleaseDC(dc);
// xoa clipboard
EmptyClipboard();
CloseClipboard();
}
else
{
MessageBox("Khong co bitmap/Chua khoi tao Camera");
}
Lúc này thì nội dung ảnh mới thực sự được chép vào vùng DC (Device
Context) ảo do ta tạo ra, và có thể can thiệp vào vùng dữ liệu này như là một
ảnh bình thường trên Window bằng các hàm như SetBitBlt hay GetBitBlt…
Trên đây chỉ là các bước căn bản để thu nhận ảnh từ Camera, chi tiết các
hàm còn lại liên quan đến Camera xin xem trong MSDN phần VfW.
Tiếp theo đây là một số các phương pháp tiền xử lý ảnh.

2.3 CÁC BƯỚC TIỀN XỬ LÝ ẢNH ĐƯC SỬ DỤNG TRONG BÀI TOÁN

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng



Ứng dụng xử lý ảnh trong điều khiển
Trang 15
Các phương pháp tiền xử lý ảnh là các phương pháp nhằm làm tăng chất
lượng ảnh nhận được từ Camera, giúp cho các bước xử lý ảnh tiếp theo đạt được
độ chính xác cao nhất. Quá trình tiền xử lý bao gồm các bước sau (lý thuyết xin
tham khảo tài liệu [1], [8], [13], [14]):
Chuyển đổi ảnh thành mức xám

Cân bằng Histogram
(Histogram equalization)

Tăng cường độ tương phản
(Constrast stretching)

Lọc Median

Morphology
(Open)
Hình 2.2 Sơ đồ các bước tiền xử lý ảnh
2.3.1 Chuyển ảnh sang mức xám
Theo Camera sử dụng, ảnh nhận được là ảnh 24 bit màu, để giảm bớt khối
lượng tính toán ta sẽ đưa ảnh về ảnh mức xám (Gray Scale) 8 bit (nghóa là mỗi
pixel sẽ được biểu diễn bằng 1 byte hay 256 cấp độ xám) theo công thức:
X = 0.2125*R + 0.7154*G + 0.0721*B

(2-2)

Quá trình chuyển đổi sang mức xám tuy có làm mất đi một số thông tin
nhưng vẫn có thể chấp nhận được. Hình sau sẽ minh họa quá trình này:


GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 16

Hình 2.3 Hình minh họa công thức chuyển đổi mức xám (2-2)
2.3.2 Cân bằng Histogram (Histogram equalization)
Histogram của một ảnh với các mức xám trong khoảng [0, L-1] là một hàm
rời rạc:
p(fk) = nk/n

(2-3)

Trong đó fk là giá trò xám thứ k (k = 0, 1,. . ., L-1), nk là số pixel với mức
xám đó, và n là tổng số pixel của ảnh.
Nói một cách chính xác hơn Histogram p(fk) chính là xác suất của biến cố
giá trò xám thứ k, xác suất này có giá trò trong khoảng [0,1].
Ta cũng có thể biểu diễn Histogram của một ảnh bằng số lần xuất hiện của
mỗi mức xám, ta có p(fk) = nk.
Đồ thò hàm p(fk) biểu diễn hình dạng Histogram của một ảnh sẽ cho biết
ảnh đó thuộc loại ảnh nào. Như vậy hình dạng Histogram của một ảnh mang đến
cho chúng ta những thông tin hữu ích về độ tương phản của ảnh.
Hình sau biểu diễn bốn loại ảnh cơ bản tương ứng bốn Histogram của
chúng.

GVHD: TS. Nguyễn Văn Giáp

KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 17
p(fk)

p(fk)
nh tối

nh sáng

fk

fk

p(fk)

p(fk)

fk

fk
nh có độ tương phản thấp

nh có độ tương phản cao

Hình 2.4 Các Histogram tương ứng với bốn loại ảnh.

Trong cân bằng Histogram, điều mong muốn nhất là ảnh kết quả sẽ có được
một Histogram phân bố đều. Để cân bằng Histogram, ta sẽ biến đổi xác suất
p(fk) của từng giá trò xám sao cho chúng phân bố đều, cụ thể là:

k

pf(fk) = ∫ pf(x)dx

(2-3)

0

hay
k

hk = p(fk) = ∑ p(fi)

(2-4)

i=0

Dưới đây là mô hình của giải thuật cân bằng Histogram:

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển

Trang 18

fk

h

k

∑ p(fi)

Lượng tử
hóa đều.

gk

i=0

p(fk)

Hình 2.3 Sơ đồ khối cho giải thuật cân bằng Histogram.
Bước lượng tử hóa đều này rất cần thiết cho việc sửa lại các giá trò xám của
ảnh. Bước này được thực hiện như sau: gọi h min là giá trò xám nhỏ nhất trong
Histogram, g là giá trò xám của ảnh kết quả, h k là giá trò Histogram ứng với giá
trò xám thứ k, ta có:
gk = (hk – hmin)*(L –1)/(1 – hmin) + 0.5

(2-5)

với L là số giá trò xám cực đại.
Để minh họa kỹ thuật và áp dụng của nó trong quá trình tăng cường chất

lượng ảnh ta xét một ảnh cụ thể sau:

Hình 2.5 Ảnh nhận được từ Camera

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 19
Ảnh trên có độ sáng thấp và độ tương phản thấp, điều này sẽ gây khó khăn
cho việc tách biên các vật thể. Sau khi tính toán Histogram và cân bằng, ta sẽ có
kết quả sau:

Hình 2.6 Histogram của ảnh

Hình 2.7 Ảnh sau khi điều chỉnh Histogram

Ảnh này tuy vẫn chưa tốt nhưng rõ ràng là dễ phân biệt biên dạng vật thể
hơn. Do đó quá trình câm bằng Histogram của ảnh nhận được từ Camera là cần
thiết vì nó làm tăng độ chính xác khi xử lý ảnh.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng



Ứng dụng xử lý ảnh trong điều khiển
Trang 20
2.3.3 Tăng cường độ tương phản (Contrast stretching)
Phương pháp này được dùng cho ảnh có độ tương phản thấp do sự chiếu
sáng kém, hay do đặt sai độ mở thấu kính trong quá trình thu ảnh. Ý tưởng của
kỹ thuật này là làm tăng các giá trò xám trong một tầm vực ảnh đang được xử lý.

g
L-1

L-1

γ

g2
T(f)

g1
0

β
α

f1

f1

f2

L-1


f2
(b) Clipping.

f
L-1

(a) Hàm dãn rộng
độ tương phản.

(c) Thresholding.
f1=f2
Hình 2.8 Biểu diễn các hàm dãn rộng độ tương phản.

Các vò trí (f1,g1) và (f2,g2) quyết đònh hình dáng hàm biến đổi này. Nếu f 1=g1
và f2=g2 thì hàm biến đổi này trở thành một hàm tuyến tính mà hàm này không
làm thay đổi các giá trò xám của ảnh.
Còn nếu f1=f2, g1=0 và g2=L-1 thì hàm này trở thành một hàm Thresholding
được mô tả qua hình vẽ mà hàm này tạo ra một ảnh nhò phân. Các giá trò tức thời
(f1,g1) và (f2,g2) tạo ra các mức độ dãn rộng mức xám khác nhau, vì vậy ảnh
hưởng đến độ tương phản của nó.
Tóm lại, việc chọn f1 ≤ f2 và g1 ≤ g2 là có chủ ý để hàm này tăng đơn điệu
và vì vậy hàm này không làm thay đổi trật tự các mức xám và không phát sinh
thêm các mức xám mới dư thừa nào.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng



Ứng dụng xử lý ảnh trong điều khiển
Trang 21
Hàm được minh họa bằng biểu thức sau:

g=

{

αf

0 ≤ f < f1

β(f – f1) + g1
γ(f – f2) + g2

f1 ≤ f < f2
f2 ≤ f < L

(2-6)

Khi α = γ = 0 ta gọi đây là phương pháp cắt xén (Clipping) được mô tả qua
hình vẽ trên. Cắt xén thích hợp cho các trường hợp giảm nhiễu khi tín hiệu vào
nằm giữa [f1, f2].
Sử dụng lại ảnh trên, sau khi điều chỉnh Histogram ta se có kết quả sau
(chú ý hình dạng của Histogram trước (hình 2.6) và sau (hình 2.9) khi xử lý):

Hình 2.9 Histogram sau khi co dãn độ tương phản.

Hình 2.10 Ảnh sau khi co dãn độ tương phản.


GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 22
Rõ ràng là ảnh sau khi qua hai quá trình can thiệp vào Histogram đã trở nên
dễ quan sát hơn. Tuy nhiên ảnh ở giai đoạn này vẫn chưa đưa qua bước tách biên
bởi vì trong ảnh vẫn còn chứa nhiễu. Các nhiễu này nếu không được khử tốt sẽ
làm quá trình nhận biên bò sai lạc. Ở đây có hai phương pháp được xem xét
nhằm làm đồng đều hóa bề mặt ảnh (san phẳng nhiễu) là bộ lọc Mean và bộ lọc
Median. Sau đây ta sẽ lần lượt xem xét từng bộ lọc:
2.3.4 Bộ lọc Mean và Median
2.3.4.1 Lọc Mean
Ý tưởng của bộ lọc này là thay thế giá trò tại mỗi điểm ảnh bằng trung bình
cộng của tất cả các điểm liên thông cục bộ của nó. Số điểm liên thông thường
dùng là 8 (dùng mặt nạ 3x3) sẽ có giá trò như sau:

P
1
P
4
P
7

P2 P3
P5 P6


h[i,j]

P8 P9

1/9 1/9 1/9
1/9 1/9 1/9
1/9 1/9 1/9

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 23

Và h[i,j] được tính theo công thức:
h[i, j ] =

1
M

∑ f (k , l )

k ,l : N

(2-7)


ở đây h[i,j] là giá trò của pixel kết quả, M là kích thước mặt nạ và f(k,l) là
các giá trò của ảnh gốc nằm trong mặt nạ.
Kết quả của phép lọc này là ảnh sẽ được làm trơn (smoothing filter), tuy
nhiên nó lại làm nhòe (blur) đường biên của vật và thường làm đứt những nét
mảnh của biên dạng.

Hình 2.11 Mean filter.
2.3.4.2 Lọc Median
Lọc Median là bộ lọc sẽ thay thế giá trò của 1 pixel bằng giá trò trung bình
của các pixel liên thông cục bộ. Do đó quá trình lọc sẽ bao gồm 2 giai đoạn:
• Sắp xếp các giá trò mức xám của các pixel liên thông theo thứ tự tăng
dần.
• Tìm giá trò Median của dãy và thay thế giá trò pixel hiện tại.
Đây là một loại bộ lọc đơn giản nhưng rất hiệu quả trong việc loại bỏ nhiễu
hạt tiêu (pepper noise) và nhiễu hạt muối (salt noise).
Các chấm
nhỏ bò liền
lại sau khi
lọc.

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 24

Hình 2.12 Bộ lọc Median và kết quả.

Qua hình minh họa của hai bộ lọc trên, ta chọn bộ lọc Median cho quá trình
lọc của bài toán vì bộ lọc này không làm mờ (Blur) biên dạng của đối tượng.

2.3.5 Các phép toán Morphology và ứng dụng
• Lọc Median tuy tác động rất tốt lên các ảnh bò nhiễu hạt tiêu (pepper
noise) nhưng nếu các nhiễu có kích thước lớn thì lọc Median sẽ không
hiệu quả. Sau đây ta sẽ tìm hiểu một số toán tử Morphology và các phép
biến đổi của chúng nhằm loại bỏ nhiễu một cách hiệu quả hơn nữa.
• Morphology là các toán tử xử lý trên ảnh nhò phân. Toán tử này sử dụng
một phần tử có cấu trúc (structuring element), sau đó áp dụng các phép
giao, phép hợp, phép bù,… với phần tử này lên ảnh gốc nhằm thu được
ảnh kết quả có sự biến đổi về hình dáng biên dạng phù hợp.
• Các phép biến đổi cơ bản của Morphology là Erode và Dilate ([14]).
Kết hợp hai phép biến đổi này ta sẽ có thêm Open và Close ([14]). Các
ứng dụng của phép biến đổi này là khử nhiễu trong xử lý ảnh, xử lý biên
dạng trong nhận dạng chữ viết, xử lý biên dạng trong computer vision…
2.3.5.1 Erode

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


Ứng dụng xử lý ảnh trong điều khiển
Trang 25
• Đây là một phép biến đổi cơ bản của Morphology, phép biến đổi này có
tác dụng làm ăn mòn (Erode) biên dạng vật thể và kết quả là vật thể
nhỏ lại còn các lỗ rỗng thì to ra.
• Một ví dụ của phép toán này là:


Hình 2.13 Phép toán Erode.

Để có được kết quả này Erode sử dụng một phần tử (structuring
element)
X = {(0,0),(0,1)}
(2-8)
Và lấy giao với ma trận I là ma trận của ảnh:


I _ 1 = I − {(0,0)}
I _ 2 = I − {(0,1)}

(2-9)

Sau đó lấy giao của hai tập con I_1 và I_2 để có kết quả và ta đònh nghóa:
Erode = IΘX

(2-10)

Hình 2.14 p dụng phép toán Erode trên ảnh nhò phân

GVHD: TS. Nguyễn Văn Giáp
KS. Đoàn Thế Thảo, KS. Bùi Quang Được

SVTH: Vương Ngọc Dũng


×