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

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

112 713 4

Đ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 112
Dung lượng 2,58 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để 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

Trang 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ácloạ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ụnggiả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ấtnhanh 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ướngtiếp cận khác là sử dụng Camera kết hợp với máy tính tốc độ cao để đưa raphươ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ệnmột khái niệm mới trong lĩnh vực Robotic là Robot Vision nhằm mô tả các đốitượng là các Robot sử dụng Camera như một loại cảm biến chính trong quá trìnhlà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 tronggiai đoạn phát triển Tại Việt Nam phương pháp này còn tương đối mới, tuynhiê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

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ânloạ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 saohỏ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ạicá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ênmật độ diện tích nhỏ cho nên kết quả nhận được từ Camera sẽ là một dạng matrận Vector trong đó mỗi Vector sẽ biểu diễn một điểm ảnh (pixel) Kích thướccủa Vector này sẽ được phản ánh bằng số bit màu của ảnh BITMAP trênWindow Để 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 thuớc 320x240 điểm ảnh hoặc640x480 đ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ằngcá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

Trang 3

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

Trang 4

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

Trang 5

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àusắc

 Có thể phát hiện và phân tích các chuyển động (motion analysis andobject 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

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

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ănglinh 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ẳnghạ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ấpnhữ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ôitrường mà nó đang hoạt động, chứ không chỉ giới hạn trong khả năng hiểu biếtmà 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ậnchuyển đổi (transformation), phân tích (analysis), và nhận biết các hình ảnh ánhsá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ànhhình ảnh điện tử có thể sử dụng trong máy tính Vì vậy, chuyển đổihình ảnh đòi hỏi số hoá điện tử hình ảnh ánh sáng Một khi đã đượcsố 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ữngthông tin cần thiết cho bước hiểu ảnh tiếp theo (ví dụ như tìm cácgờ 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ảilàm sáng tỏ hay hiểu (understanding) hình ảnh vừa được thu nhậnthể hiện cái gì trong giới hạn hiểu biết về môi trường của nó Saugiai đ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ìnhxử lý ảnh được thực hiện trong Luận Án

Trang 7

Với mô hình này thì sau khi ra quyết định, hệ thống xử lý ảnh sẽ đóng thêmvai 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

Hình 1.4 Các giai đoạn chính của quá trình xử lý ảnh

Phân tích ảnh

Lưu trữ

Hệ ra quyết định

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ý Chuơng 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.

Trang 9

…), 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 driverhỗ trợ chuẩn bắt hình VfW (Video for Window) ở độ phân giải (tương ứng vớikí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ỗikỹ 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:

Trang 10

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ủaWindow là DIB

Sau đây là sơ lược về cấu trúc của file BMP: file lưu trữ định dạng DIBtrê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

Hình 2.1 Cấu trúc của driver nhận ảnh từ Camera

Trang 11

} 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

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

name = new char[200];

ver = new char[200];

if (capDriverConnect(capWindow,i)) {

capIndex = i;

capPreviewRate(capWindow,66);

capGetStatus(capWindow,&CapStatus, sizeof (CAPSTATUS));

// lay cac thong so cua Camera

Trang 13

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 trongdriver

 Và cuối cùng capWindow chính là HANDLE của Camera mà Windowtrả 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 ngaythờ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:

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();

Trên đây chỉ là các bước căn bản để thu nhận ảnh từ Camera, chi tiết cáchà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

Trang 15

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ốilượng tính toán ta sẽ đưa ảnh về ảnh mức xám (Gray Scale) 8 bit (nghĩa là mỗipixel sẽ được biểu diễn bằng 1 byte hay 256 cấp độ xám) theo công thức:

Trang 16

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àmrời rạc:

Trong đó fk là giá trị xám thứ k (k = 0, 1, ., L-1), n k 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(f k ) 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(f k ) = n k

Đồ thị hàm p(f k ) 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 đếncho 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ủachúng

Hình 2.3 Hình minh họa công thức chuyển đổi mức xám (2-2)

Trang 17

Trong cân bằng Histogram, điều mong muốn nhất là ảnh kết quả sẽ có đượcmột Histogram phân bố đều Để cân bằng Histogram, ta sẽ biến đổi xác suất

p(f k ) của từng giá trị xám sao cho chúng phân bố đều, cụ thể là:

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

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

Trang 18

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 hmin là giá trị xám nhỏ nhất trongHistogram, g là giá trị xám của ảnh kết quả, hk 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ấtlượng ảnh ta xét một ảnh cụ thể sau:

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

gk

Trang 19

Ả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ầnthiết vì nó làm tăng độ chính xác khi xử lý ảnh.

Hình 2.6 Histogram của ảnh

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

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ếusáng kém, hay do đặt sai độ mở thấu kính trong quá trình thu ảnh Ý tưởng củakỹ 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ý

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 f1=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ônglà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 ảnhhưở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ệuvà 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 sinhthêm các mức xám mới dư thừa nào

(a) Hàm dãn rộng

độ tương phản.

Trang 21

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àonằ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.

Trang 22

Rõ ràng là ảnh sau khi qua hai quá trình can thiệp vào Histogram đã trở nêndễ 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ênbở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étnhằm làm đồng đều hóa bề mặt ảnh (san phẳng nhiễu) là bộ lọc Mean và bộ lọcMedian 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ìnhcộ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ườngdùng là 8 (dùng mặt nạ 3x3) sẽ có giá trị như sau:

4

P5 P6

P7P8 P9

Trang 23

Kết quả của phép lọc này là ảnh sẽ được làm trơn (smoothing filter), tuynhiê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étmảnh của biên dạng.

 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ễuhạ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

Hình 2.11 Mean filter.

Trang 24

Qua hình minh họa của hai bộ lọc trên, ta chọn bộ lọc Median cho quá trìnhlọ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 (peppernoise) nhưng nếu các nhiễu có kích thước lớn thì lọc Median sẽ khônghiệu quả Sau đây ta sẽ tìm hiểu một số toán tử Morphology và các phépbiế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ụngmột phần tử có cấu trúc (structuring element), sau đó áp dụng các phépgiao, 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êndạng trong nhận dạng chữ viết, xử lý biên dạng trong computer vision…

2.3.5.1 Erode

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

Trang 25

 Để có được kết quả này Erode sử dụng một phần tử (structuring

2 _

)}

0 , 0 {(

I I

(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:

X I

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

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

Trang 26

 Hình ví dụ trên: (a) cho ta thấy 2 vật thể khi được thu nhận bị xác nhập làm một (nguyên nhân có thể là do bóng hay nhiễu) Tuy nhiên phần bị xác nhập có bề dày biên nhỏ nên ta chỉ cần áp dụng một lần phép toán Erode lên ảnh gốc là đã có thể thu được kết quả như hình (b).

2.3.5.2 Dilate

 Đâ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 dầy(Dilate) biên dạng vật thể và kết quả là vật thể to racòn các lỗ rỗng thì nhỏ lại

 Một ví dụ của phép toán này là:

 Để có được kết quả này Dilate sử dụng một phần tử (structuringelement)

X = {(0,0),(0,1)} (2-11)Và lấy giao với ma trận I là ma trận của ảnh:

)}

1 , 0 {(

2 _

)}

0 , 0 {(

I I

(2-12)Sau đó lấy hợp của hai tập con I_1 và I_2 để có kết quả và ta định nghĩa:

X I I

Hình 2.15 Phép toán Dilate và kết quả.

Trang 27

Chú ý là các lỗ nhỏ bên trong các hình của hình bên trái đã bị làm biến mất

do biên dạng bị dày ra và điền đầy Tuy nhiên nếu trong ảnh có nhiễu đốm thìcác nhiễu này cũng sẽ bị làm lớn thêm tương ứng Để khắc khục nhược điểmnày, người ta đã đưa ra một khái niệm mới là Open và Close

2.3.5.3 Open

 Theo định nghĩa Erode và Dilate như trên ta đưa ra phép Open là kếthợp giữa Dilate và Erode (chú ý dil và er tương ứng là viết tắt củaDilate và Erode):

nghĩa là ảnh sau khi Erode sẽ được thực hiện thêm phép Dilate một lầnnữa

 Để minh họa cách sử dụng phép toán này trong quá trình xử lý ảnh ta sẽxem một số ví dụ minh họa:

Hình 2.17 Phép Open.

Trang 28

 Ví dụ trên cho thấy rằng Open có thể làm tăng chất lượng biên dạng, cóthể loại bỏ nhiễu hạt tiêu trong ảnh Quá trình này có thể tách ra làm 2giai đoạn:

- Giai đoạn đầu khi áp dụng phép Erode, các nhiễu có biên dạngtách rời nhau sẽ bị biến mất

- Giai đoạn kế tiếp khi áp dụng phép Dilate lên ảnh vừa thu được, docác nhiễu tách rời đã biến mất nên chỉ có phần biên dạng liên tục(biên dạng gần với biên dạng thực nhất) mới bị làm đầy

Kết quả của 2 phép biến đổi này kích thước trung bình và hình dáng củabiên dạng không bị thay đổi nhiều nhưng nhiễu lại bị khử đi một cách hiệu quả.Tuy nhiên ở đây có một chú ý là khi dùng phép Open thì biên dạng sẽ cókhuynh hướng bị thu hẹp lại khác với Close Vùng trắng trong hình sau cho thấybiên dạng bị thu hẹp lại như thế nào:

2.3.5.4 Close

 Theo định nghĩa Erode và Dilate như trên ta đưa ra phép Close là kếthợp giữa Dilate và Erode (chú ý dil và er tương ứng là Dilate và Erode):

Hình 2.18 Kết quả của phép Open lên ảnh nhị phân.

Hình 2.19 Kết quả của Open.

Trang 29

nghĩa là ảnh sau khi Dilate sẽ được thực hiện thêm phép Erode một lầnnữa.

 Để minh họa cách sử dụng phép toán này trong quá trình xử lý ảnh ta sẽxem một số ví dụ minh họa:

Ví dụ trên cho thấy rằng Close cũng có thể làm tăng chất lượng biên dạng,có thể loại bỏ nhiễu hạt tiêu trong ảnh Tuy nhiên sự khác nhau giữa Open vàClose là Close sẽ có xu hướng mở rộng biên dạng còn Open thì thu hẹp biêndạng:

Hình 2.20 Phép Close.

Hình 2.21 Kết quả của Close lên ảnh nhị phân.

Trang 30

2.3.5.5 Các áp dụng của Morphology trong Computer vision

 Thông thường các phép toán Morphology không được áp dụng riêng rẽmà chúng thường kết hợp với các phép toán khác như phép lọc, cácphép toán đại số để có được kết quả theo yêu cầu

 Trong giới hạn của bài toán đã đặt ra phép toán Morphology chỉ được sửdụng trong phần tiền xử lý ảnh nhằm hai mục đích:

- Làm liền biên dạng: biên dạng sinh ra do các hiệu ứng ánh sángtác động lên các gờ cạnh của vật thể và được Camera thu nhận lại

Vì môi trường thu nhận không thể hoàn toàn đồng nhất (như do bụibẩn) nên ảnh thu nhận có thể bị đứt nét Ta có thể sử dụng một bộnội suy để làm liền biên dạng nhưng ở đây ta sử dụng một cách đơngiản hơn là áp dụng toán tử Dilate lên ảnh để làm đầy các vùngbiên dạng bị đứt nét do nhiễu

- Tách các nhiễu đốm nhỏ ra khỏi ảnh: các nhiễu này thường do điềukiện sáng không tốt sinh ra, nhiễu loại này phân bố đều trên ảnhvà khi kết hợp với bóng dễ sinh ra biên dạng giả

Hình 2.21 Close mở rộng biên dạng

Aùp dụng phép Dilate

Trang 31

Từ ảnh 24 bit màu với nhiễu của môi trường nhận được từ Camera, cuốibước tiền xử lý ảnh này ta đã có một ảnh 8 bit màu rõ ràng hơn thông qua cácquá trình như đã nêu ở trên.

Chương kế tiếp ta sẽ nêu một số các bước phân tích ảnh nhận được từ quátrình tiền xử lý này nhằm thu thập dữ liệu từ ảnh để đưa ra các quyết định choRobot

3 CÁC KỸ THUẬT PHÂN

Trang 32

Phân lớp đối tượng (cụ thể là các đối tượng sẽ được phân thành hai lớp là lớp vật cản và lớp Robot)

Truyền hai lớp trên cho bước tiếp theo là bước đưa ra đường di chuyển cho Robot.

Để thực hiện được hai yêu cầu trên, bước này sẽ phải thực hiện tuần tự các bước nhỏ sau đây:

Trong các bước trên, bước Threshold (phân ngưỡng) giữ vai trò quan trọng nhất vì nó quyết định độ chính xác chính của toàn bộ quá trình Lý thuyết chương này xin tham khảo trong các tài liệu [1], [8], [13], [14], [15].

3.1 PHÂN NGƯỠNG (Thresholding)

Quá trình đầu tiên của bước phân tích ảnh là quá trình Threshold Thực chấtcủa quá trình này là đưa giá trị tại mỗi pixel của ảnh mức xám về 0 (tương ứngvới mức logic 0) hay 255 (tương ứng với mức logic 1) theo một giá trị được gọi làngưỡng Quá trình này rất quan trọng vì nó có thể làm mất thông tin của ảnh đamức xám nếu chọn ngưỡng không thích hợp Sau đây ta sẽ xem xét một phươngpháp chọn ngưỡng từ Histogram

3.1.1 Các khái niệm về phân nguỡng

 Phân ngưỡng là một bước của quá trình xử lý ảnh nhằm đưa ảnh từ ảnh

đa mức xám về ảnh nhị phân

 Đây là quá trình bắt buộc đối với bài toán tìm đường vì quá trình làmmỏng biên hay tạo đường đi từ ảnh ma trận (ảnh Raster) là các quá trìnhxử lý trên ảnh nhị phân

Sau đây là hình ảnh của một số dạng thay đổi mức xám:

Threshold

Tách biên

Phân lớp đối tượng

Hình 3.1 Các bước phân tích ảnh.

Trang 33

 Công thức của quá trình phân ngưỡng là:

Biểu thức sau thể hiện quá trình phân ngưỡng:

x i

T y x i y

x i

) , ( : 1

) , ( : 0 ) ,

 Giá trị T được gọi là ngưỡng, ngưỡng này dùng để phân biệt xem mộtđiểm ảnh thuộc nền (background) hay thuộc về vật cản (obstacle)

3.1.2 Phân ngưỡng theo Histogram

 Từ hình 3.1 ta thấy rằng việc chọn đúng ngưỡng là không đơn giản khimức độ thay đổi mức xám của ảnh thực không dứt khoát (step)

 Nếu giá trị T chọn không thích hợp sẽ dẫn đến một trong hai trường hợplà:

- biên dạng có thể bị mất (lost), không liên tục (discontinue) haybiến dạng

- biên dạng có thể bị thừa, các biên dạng gần nhau sẽ bị nhập làm một dẫn đến hình dạng của vật sẽ bị sai lạc

Hình 3.1 Các dạng thay đổi mức xám của ảnh đa mức xám

Thông tin bị mất

Hình 3.2 Threshold ở T = 128

Trang 34

 Để chọn giá trị T thích hợp, người ta đưa ra nhiều phương pháp, ở đây tadùng phương pháp chọn ngưỡng theo Histogram:

- tìm 2 điểm cực đại trên đường Histogram tương ứng là Imax1 và Imax2

n j

Theo (3-2) ta thấy ngưỡng được chọn có sự cân nhắc theo sự phân bố mứcxám của ảnh (Histogram của ảnh) cho nên phương pháp này được sử dụng làmphương pháp chọn ngưỡng cho bài toán

Sau quá trình Threshold ảnh đa mức xám lúc này đã trở thành ảnh nhị phân.Quá trình tách biên tiếp theo sau sẽ tách các biên dạng ra khỏi nền(background)

3.2 TÁCH BIÊN

 Tách biên là một trong những bước quan trọng của quá trình xử lý ảnh.Theo định nghĩa, biên là phần chia tách nằm giữa 2 phần ảnh có sự khácbiệt về mức xám (gray-scale) Biên cũng được định nghĩa là các điểmảnh mà tại đó có sự thay đổi đột ngột về độ sáng (brightness)

Hình 3.3 Threshold ở T = 220

Biên dạng

bị nhập

Trang 35

3 Phương pháp Canny

3.2.1 Phương pháp Gradient

Phương pháp gradient là phương pháp dò biên cục bộ dựa vào cực đại củađạo hàm Theo định nghĩa thì gradient là một Vector có các thành phần biểu thịtốc độ thay đổi giá trị của điểm ảnh theo hai hướng x và y Các thành phần củagradient được tính bởi :

dx

y x f y dx x f fx x

y x

y x

dy y

f dr

dx x

f dr

Trang 36

dr đạt cực đại khi f xsin   f ycos   0 Do vậy ta có thể xác định hướng cựcđại của nó:

) / (

tan 1

x y

 ta gọi r là hướng của biên

Trong kỹ thuật gradient, người ta chia nhỏ thành hai kỹ thuật (do dùng haitoán tử khác nhau) : kỹ thuật gradient và kỹ thuật la bàn

Kỹ thuật gradient

Kỹ thuật gradient sử dụng một cặp mặt nạ H1 và H2 trực giao (theo haihướng vuông góc) Nếu định nghĩa g1 , g2 là gradient tương ứng theo hướng x, y,thì biên độ của gradient, ký hiệu là g, tại điểm (m,n) được tính theo công thức:

) , ( ) , ( )

,

2

2 1

) , ( / ) , ( tan ) , ( m n 1g2 m n g1 m n

Trước tiên chúng ta xét toán tử Robert Toán tử này do Robert đề xuất năm

1965 Nó áp dụng trực tiếp của công thức đạo hàm tại điểm (x,y) Với mỗi điểmảnh I[x,y] của ảnh I, đạo hàm theo x, theo y được ký hiệu tương ứng g1 , g2 đượctính:

fy

fx

Hình 3.4 Hướng biên

Trang 37

Trong trường hợp tổng quát, giá trị gradient biên độ g và gradient hướng

r được tính theo công thức (3-7)

Trong kỹ thuật Sobel và Prewitt người ta sử dụng hai mặt nạ:

1 0 1

1 0 1

0 0 0

1 1 1

Trang 38

Mặt nạ Sobel

2 0 2

1 0 1

0 0 0

1 2 1

2

Mặt nạ PrewittGradient được xấp xỉ bởi công thức: G xH xIG yH yI

Ví dụ của toán tử Prewitt và Sobel trên ảnh thực là:

Hình 3.6 Kết quả nhân chập mặt nạ Prewitt theo 2 hướng x và y

Trang 39

Thực tế cho thấy rằng, các toán tử Sobel và Prewitt tốt hơn toán tử Robert,bởi chúng ít nhạy cảm với nhiễu Ta cũng thấy rằng việc lấy đạo hàm một tínhiệu có xu hướng làm tăng nhiễu trong tín hiệu đó Độ nhạy cảm này có thể làmgiảm xuống nhờ thao tác lấy trung bình cục bộ trong miền phủ bởi mặt nạ Lưu ýrằng, toán tử Sobel và Prewitt dễ dàng chuyển đổi cho nhau bằng cách thay đổihệ số.

Kỹ thuật la bàn (Compass Operator)

Kỹ thuật la bàn chọn gradient theo một số hướng định trước Nếu ký hiệu gk

là gradient la bàn theo hướng k   /  2 2k (k=0,1, ,7), thì ta có gradient theotám hướng ngược chiều kim đồng hồ, mỗi hướng cách nhau 45 như sau:

Hình 3.8 Mô hình 8 hướng Hình 3.7 Kết quả nhân chập mặt nạ Sobel theo 2 hướng x và y

Trang 40

Có nhiều toán tử la bàn khác nhau Nhưng ở đây chúng ta chỉ nêu toán tửKirsh Toán tử này sử dụng mặt nạ 3x3:

3 0 3

5 5 5

5 0 3

5 5 3

5 0 3

5 3 3

5 0 3

3 3 3

3 0 3

3 3 3

3 0 5

3 3 3

3 0 5

3 3 5

3 0 5

3 5 5

8

H

Nếu ký hiệu Ai (i=1,2, ,8) là gradient thu được theo tám hướng bởi 8 mặtnạ, biên độ gradient tại (x,y) sẽ được tính theo công thức:

A(x,y)= Max(| g(x,y)|, i=1,2, ,8) (3-9)

Ngoài toán tử Kirsh, người ta còn sử dụng một số toán tử khác mà mặt nạ ởhướng 0 được định nghĩa tương ứng bởi:

1 2 1

1 1 1

1 2 1

1 1 1

0 0 0

1 2 1

Ngày đăng: 14/02/2016, 21:27

HÌNH ẢNH LIÊN QUAN

Hình 1.1 Robot tự hành sử dụng 2 Camera - Ứng dụng xử lý ảnh trong điều khiển
Hình 1.1 Robot tự hành sử dụng 2 Camera (Trang 3)
Hình 1.2 Walking Robot sử dụng Camera và các cảm biến đo khoảng cách - Ứng dụng xử lý ảnh trong điều khiển
Hình 1.2 Walking Robot sử dụng Camera và các cảm biến đo khoảng cách (Trang 4)
Hình 1.3 Robot tự hành sử dụng wireless Camera. - Ứng dụng xử lý ảnh trong điều khiển
Hình 1.3 Robot tự hành sử dụng wireless Camera (Trang 5)
Hình 2.1 Cấu trúc của driver nhận ảnh từ Camera - Ứng dụng xử lý ảnh trong điều khiển
Hình 2.1 Cấu trúc của driver nhận ảnh từ Camera (Trang 10)
Hình 2.4 Các Histogram tương ứng với bốn loại ảnh. - Ứng dụng xử lý ảnh trong điều khiển
Hình 2.4 Các Histogram tương ứng với bốn loại ảnh (Trang 17)
Hình 2.3 Sơ đồ khối cho giải thuật cân bằng Histogram. - Ứng dụng xử lý ảnh trong điều khiển
Hình 2.3 Sơ đồ khối cho giải thuật cân bằng Histogram (Trang 18)
Hình 2.8 Biểu diễn các hàm dãn rộng độ tương phản. - Ứng dụng xử lý ảnh trong điều khiển
Hình 2.8 Biểu diễn các hàm dãn rộng độ tương phản (Trang 20)
Hình 2.14 Aùp dụng phép toán Erode trên ảnh nhị phân - Ứng dụng xử lý ảnh trong điều khiển
Hình 2.14 Aùp dụng phép toán Erode trên ảnh nhị phân (Trang 25)
Hình 2.21 Kết quả của Close lên ảnh nhị phân. - Ứng dụng xử lý ảnh trong điều khiển
Hình 2.21 Kết quả của Close lên ảnh nhị phân (Trang 29)
Hình 2.22 Aùp dụng Morphology trong bài toán. - Ứng dụng xử lý ảnh trong điều khiển
Hình 2.22 Aùp dụng Morphology trong bài toán (Trang 31)
Hình 3.1 Các dạng thay đổi mức xám của ảnh đa mức xám - Ứng dụng xử lý ảnh trong điều khiển
Hình 3.1 Các dạng thay đổi mức xám của ảnh đa mức xám (Trang 33)
Hình 3.7 Kết quả nhân chập mặt nạ Sobel theo 2 hướng  x và y - Ứng dụng xử lý ảnh trong điều khiển
Hình 3.7 Kết quả nhân chập mặt nạ Sobel theo 2 hướng x và y (Trang 39)
Hình 3.9  Ý nghĩa của đạo hàm trong dò biên - Ứng dụng xử lý ảnh trong điều khiển
Hình 3.9 Ý nghĩa của đạo hàm trong dò biên (Trang 41)
Hình 3.10 Kết quả của toán tử Laplace lên ảnh. - Ứng dụng xử lý ảnh trong điều khiển
Hình 3.10 Kết quả của toán tử Laplace lên ảnh (Trang 42)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w