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

tìm hiểu và xây dựng hệ thống bám mục tiêu di dộng sử dụng thuật toán xử lý ảnh Camshift của OpenCV

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.59 MB, 36 trang )

MỞ ĐẦU
Thị giác máy là một lĩnh vực đã và đang rất phát triển. Khái niệm xử lý
ảnh và thị giác máy – Computer vision có liên quan tới nhiều ngành học và
hướng nghiên cứu khác nhau. Từ những năm 1970 khi mà năng lực tính toán
của máy tính ngày càng trở nên mạnh mẽ hơn, các máy tính lúc này có thể xử
lý được những tập dữ liệu lớn như các hình ảnh, các đoạn phim thì khái niệm
và kỹ thuật về thị giác máy ngày càng được nhắc đến và nghiên cứu nhiều
hơn cho tới ngày nay.
Thị giác máy bao gồm lý thuyết và các kỹ thuật liên quan nhằm mục
đích tạo ra một hệ thống nhân tạo có thể tiếp nhận thông tin từ các hình ảnh
thu được hoặc các tập dữ liệu đa chiều. Việc kết hợp giữa thị giác máy với
các kỹ thuật khác như công nghệ thông tin, truyền thông, điện tử, điều khiển
tự động, cơ khí… cho chúng ta rất nhiều ứng dụng trong đời sống hàng ngày
cũng như trong khoa học, an ninh, quân sự… Ngày nay, ứng dụng của thị giác
máy đã trở nên rất rộng lớn và đa dạng, len lỏi vào mọi lĩnh vực từ quân sự,
khoa học, vũ trụ, cho đến y học, sản xuất, và tự động hóa tòa nhà.
Trong thời gian thực tập tốt nghiệp, được sự giúp đỡ của thầy cô hướng
dẫn em đã từng bước tiếp cận và nghiên cứu cơ sở ban đầu về xử lý ảnh số, sử
dụng thư viện mã nguồn mở OpenCV, lập trình Visual C++ và xây dựng giao
diện điều khiển trên máy tính.
Công nghệ xử lý ảnh bao gồm rất nhiều hướng nghiên cứu, một trong
những hướng nghiên cứu của em đó là tìm hiểu và xây dựng hệ thống bám
mục tiêu di dộng sử dụng thuật toán xử lý ảnh Camshift của OpenCV.
Báo cáo thực tập bao gồm:
Chương 1: Tổng quan về xử lý ảnh và thư viện mã nguồn mở Opencv
Chương 2: Cơ sở về hệ thống bám ảnh tự động
Chương 3: Tìm hiểu thư viện mã nguồn mở OpenCV của Intel trên nền
Visual C++
Chương 4: Xây dựng giao diện điều khiển dùng Visual C++
1
Chương 1: TỔNG QUAN VỀ XỬ LÝ ẢNH VÀ THƯ


VIỆN MÃ NGUỒN MỞ OPENCV
1.1 Giới thiệu một số ứng dụng của xử lý ảnh
Trong những năm gần đây, Trên thế giới nghiên cứu ứng dụng xử lý và
nhận dạng ảnh (Machine Vision) đang là hướng nghiên cứu tập trung của rất
nhiều nhà khoa học trong đa số các lĩnh vực. Xử lý ảnh số đã được phát triển
và trở thành một lĩnh vực khoa học. Xử lý ảnh số không chỉ nâng cao chất
lượng của ảnh mà còn phân tích và lý giải nó phục vụ các mục đích riêng biệt.
Các thiết bị ngày nay được ứng dụng công nghệ xử lý và điều khiển theo hình
ảnh ngày càng nhiều và cho thấy rõ sự ưu việt của nó, trong đó có rất nhiều
ứng dụng mang tính cách mạng như:
1.1.1 Trong quân sự:
Các hệ thống tích hợp quang hồng ngoại có khả năng tự động điều khiển
dàn hỏa lực (pháo, tên lửa) được lắp đặt cho các trận địa cao xạ, trên xe tăng,
tàu chiến, máy bay, tên lửa hoặc vệ tinh (Hình 1). Chúng được thay thế và hỗ
trợ các dàn rada dễ bị nhiễu trong việc tự động phát hiện, cảnh giới, bám bắt
mục tiêu. Đặc biệt có những loại lắp trên máy bay có khả năng điều khiển hỏa
lực đánh phá hàng chục mục tiêu một lúc. Ngoài ra còn phải kể đến các đầu tự
dẫn tên lửa và đạn thông minh
1.1.2 Trong an ninh, phòng chống tội phạm, bảo vệ pháp luật:
Các hệ thống camera nhận dạng khuôn mặt vân tay tự động cũng như
phát hiện, theo dõi, cảnh báo các âm mưu và hoạt động khủng bố. Các xe
robốt tự hành có gắn các camera cũng được ứng dụng trong các môi trường
độc hại, dò phá bom mìn (Hình 1.1).
1.1.3 Trong lĩnh vực hàng không vũ trụ:
Các hệ thống ống kính chụp ảnh viễn thám (remote sensing) lắp trên các
vệ tinh bay quanh trái đất có thể chụp và quan sát được các vật kích cỡ 0,5 m
từ độ cao 750 km trong mọi điều kiện thời tiết (Hình 1.1).. Việc nối ghép các
ống kính này với hệ thống GPS sẽ cho phép xây dựng các bản đồ số có những
lĩnh vực ứng dụng cực kỳ quan trọng trong quốc phòng an ninh, phát triển
kinh tế, xã hội...

2
1.1.4 Trong công nghiệp, giao thông, xây dựng :
Hệ thống quang điện tử đóng vai trò của các thị giác máy (machine
vision) có khả năng tự động đo đạc kiểm tra chất lượng sản phẩm trong các
dây truyền sản xuất: phân loại hạt ngũ cốc, cà phê; tìm lỗi lắp ráp linh kiện
các bản vi mạch và khuyết tật các mối hàn và động cơ... Các hệ thống quang
điện tử cũng được ứng dụng ngày càng nhiều trong giao thông như đo tốc độ,
tự động kiểm soát điều khiển và phân luồng giao thông (Hình 1.2).
1.1.5 Trong nghiên cứu y sinh dược học:
Các kính hiển vi có khả năng tự động nhận dạng và đo đếm các tế bào
với độ chính xác cao. Các kính hiển vi có hệ thống dẫn đường laser cho phép
thực hiện những phẫu thuật rất phức tạp như mổ u não, nơi mà một sự không
chính xác cỡ µm cũng gây tổn hại đến các dây thần kinh chằng chịt xung
quanh...
1.1.6 Trong công nghiệp giải trí truyền hình:
Các hệ thống tích hợp có thể điều khiển các camera kích thước và khối
lượng lớn dễ dàng tự động bám theo các đối tượng chuyển động nhanh như
bóng đang bay, đua xe...
Một số hình ảnh hệ thống sử dụng công nghệ xử lý ảnh:
3
Hình 1.1 Một số hệ thống tích hợp quang hồng ngoại, và ảnh nhiệt trên
các phương tiện di động
Hình 1.2 Một số hệ thống camera robot tự hành, trong hàng không vũ
trụ
1.2. Một số giải pháp phần cứng phục vụ xử lý ảnh
Để giải bài toán xử lý bằng hình ảnh, ta có rất nhiều giái pháp khác nhau.
Từ phần cứng cho tới các phần mềm. Ta có thể điểm qua một vài phương
pháp hay được sử dụng và có hiệu quả cao như sau.
1.2.1 Máy tính PC, laptop
Đây là một trong những phương pháp đơn giản nhất. Có thể tận Dụng

các mainboard máy tính hay thậm chí các máy tính xách tay với chức năng là
4
một đơn vị xử lý ảnh, và đưa ra quyết định. Với việc kết nối một camera hay
webcam ta hoàn toàn chủ động trong quá trình nhận/xử lý ảnh. Các giao tiếp
ngoại vi phổ biến như UART, Parallel, USB hay KeyboarD. Việc sử dụng
PC, laptop sẽ có những ưu/ nhược điểm sau:
* Ưu điểm:
- Rất dễ dàng phát triển các ứng dụng dựa trên các phần mềm lập trình
như C, VisualC, VisualBasic…, rất phù hợp cho những người mới bắt đầu
nghiên cứu về lĩnh vực xử lý ảnh đặc biệt là hiện nay có rất nhiều thư viện mở
phục vụ cho xử lý ảnh, do đó rất thuận tiện cho người mới bắt đầu tìm hiểu về
xử lý ảnh
- Có tốc độ xử lý không cao
- Dễ Dàng lập trình, kiểm lỗi
- Hệ điều hành quen thuộc (winDows/linux)
- Các công cụ lập trình/biên Dịch phổ biến (C, C++, VisualC,
VisualBasic..)
* Nhược điểm
- Kích thước, khối lượng lớn
- Dễ hư hỏng Do va đập hay các tác nhân khác
- Có quá nhiều thành phần không sử Dụng đến
- Chỉ có thể giao tiếp với ngoại vi thông qua các chuẩn phổ biến như
UART, USB
1.2.2 Main công nghiệp, máy tính nhúng PC 104
Hình 1.3 Main công nghiệp PC 104

Ta có thể sử dụng mainboad PC104 với các chức năng như một máy tính
thông thường. Việc sử dụng PC104 sẽ có những ưu/ nhược điểm sau:
5
Ưu điểm:

- Có tốc độ xử lý cao
- Dễ Dàng lập trình, kiểm lỗi
- Hệ điều hành quen thuộc (windows/linux)
- Các công cụ lập trình/biên dịch phổ biến (MSVC, C++..)
Nhược điểm:
- Kích thước lớn
- Có quá nhiều thành phần không sử dụng đến
- Giá thành đắt (>300$)
- Chỉ có thể giao tiếp với ngoại vi thông qua các chuẩn phổ biến như
UART, USB
1.2.3 Single Board Computer(SBC) sử dụng Single on Chip (SoC)
Hình 1.4 SBC sử dụng SoC
SBC (Single board computer) có sử dụng các SoC là buớc tiến lớn trong
việc xây d ựng thiết bị với khả năng tính toán và xử lý như một máy tính
thông thường. Với nhiều ưu điểm hơn hẳn so với các thiết bị khác như. Sử
dụng các SoC làm bộ xử lý trung tâm có khả năng chuyên biệt về xử lý hình
ảnh hay xử lý trên môi trường mạng rất hữu hiệu. Do vậy tuỳ và bài toán đặt
ra mà ta có thể chọn các SBC cho các SoC phù hợp với yêu cầu cụ thể. Hiện
nay đã có nhiều SoC có khả năng tích hợp các DSP Processor vào trong nhân
nhằm tăng khả năng xử lý (sign processing).
Ưu điểm:
6
- Kích thước rất nhỏ
- Giá thành rẻ (~<100$)
- Hỗ trợ SPI, I2C, I2S, MMC, SDCarD, UART, USB2.0/1.1 v..v
- Có tốc độ xử lý cao
- Sử dụng hệ điều hành Linux
- Được sự hỗ trợ rất lớn của cộng đồng mã nguồn mở. Từ HĐH, kernel
hay rất nhiều
- Các công cụ biên dịch phổ biến gcc

- Các công cụ hỗ trợ lập trình rất nhiều. Eclipse, Vim, Emacs v..v
Nhược điểm:
- Việc chạy/kiểm thử phải thực hiện giả lập trên máy tính trước khi đưa
vào mạch
- Am hiểu kiến thức về các giao tiếp ngoại vi, kiến trúc về SBC
1.2.4 FPGA
Đây là giải pháp về phần cứng mà hay được sử dụng hiện nay. Tận dụng
đặc tính của FPGA là linh hoạt và tốc độ xử lý nhanh (cứng hoá các giải
thuật). Ta có thể kết nối FPGA với các CCD sensor để điều khiển và nhận các
frame hình thông qua bus dữ liệu tốc độ cao.
Ví dụ ta có thể tham khảo mô hình của CCD Sensor MT9T001 của
Micron như sau:
7
Hình 1.5 CCD Sensor MT9T001 của hãng Micron
Ta có thể thao tác trực tiếp vào các thanh ghi điều khiển của MT9T001
thông qua bus TWI, và lấy các frame hình qua bus data 10bit. FPGA có tốc
độ nhanh sẽ làm nhiệm vụ điều khiển MT9T001 và lấy dữ liệu liên tục từ data
bus sau đó đưa vào bộ nhớ tạm để xử lý.
1.2.5 DSP (Digital signal processing)
Bộ xử lý tín hiệu số DSP được giới thiệu đầu tiên vào những năm 1978,
1979 bởi Intel, Bell
Các bộ xử lý DSP có những đặc tính nổi bật như sau:
- Thích hợp cho các quá trình cần xử lý theo thời gian thực
- Hiệu năng được tối ưu với dữ liệu dạng luồng
- Chương trình và dữ liệu được bố chí riêng biệt (kiến trúc Harvard)
- Tích hợp các chỉ thị lệnh đặc biệt SIMD (Single Instruction, Multiple
Data)
- Không hỗ trợ đa nhiệm
- Tương tác trực tiếp với bộ nhớ của thiết bị
8

- Tích hợp sẵn ADC và DAC
Hình 1.6 một board xử lý ảnh sử dụng DSP
DSP ngày nay đã được tích hợp nhiều thành phần khác nhau, làm tăng
khả năng xử lý linh hoạt và tốc độ xử lý. Đặc biệt các DSP rất thích hợp cho
những nhu cầu cần tính toán nhanh, xử lý số thực. Đặc biệt một số còn có sẵn
những chỉ thị lệnh giúp cho việc tính toán ma trận, tích chập hay thậm chí các
phép biến đổi DCT trong quá trình nén ảnh. Với những ưu điểm đó DSP
được dùng trong nhiều thiết bị xử lý ảnh chuyên nghiệp.
9
Chương 2: CƠ SỞ VỀ HỆ THỐNG BÁM ẢNH TỰ
ĐỘNG
TỔNG QUAN:
Phát hiện và phân loại các đối tượng di động là một lĩnh vực quan trọng
trong nghiên cứu thị giác máy tính. Lĩnh vực này rất quan trọng do thế giới
quan sát được của chúng ta là động và ta liên tiếp bắt gặp những cảnh video
chứa đựng một số lượng lớn các đối tượng di động. Để phân tách, phát hiện
và bám những đối tượng này từ một chuỗi các ảnh video là một thách thức
quan trọng nhất mà các chuyên gia thị giác máy tính phải đối mặt. Trong
chương này chung ta sẽ trình bày vấn đề và các giải pháp có thể của mỗi
nhiệm vụ con trong nhiệm vụ phân tích cảnh động. Các hệ thống này có ứng
dụng trong các lĩnh vực giám sát người, hệ thống bảo vệ giám sát giao thông,
thị giác công nghiệp, giám sát phòng ngự,…
YÊU CẦU :
Bước đầu tiên để giải bài toán phát hiện và bám đối tượng di động là phân
tách nền (background) và vật (foreground) bằng cách trừ nền từ mỗi khung
ảnh của chuỗi video. Sự sai khác thu được chỉ ra các đối tượng di động,…
người di động hoặc ôto di động được gọi là vật. Tuy nhiên, sự phức tạp trong
việc tách các vật di động trong cảnh động sẽ tăng theo sự xuất hiện của các
chuyển động sinh ra bởi các hiện tượng khác. Các hiện tượng đó có thể là sự
thay đổi chiếu sáng, sự thay đổi mầu do tự cân bằng trắng (hoặc hiệu chỉnh

mầu) trong camera mầu, sự thay đổi giá trị pixel do rung rinh hoặc các hiện
tượng khác, từ đó sinh ra các chuyển động giả trong cảnh động. Các chuyển
động cũng còn do chuyển động của bóng, cây và nhiều thứ khác trong cảnh
cần được xem xét và phát hiện đó là các chuyển động giả. Trong diễn dải ở
trên, chúng ta cần mô hình nền sao cho chỉ những vật di động cần quan tâm
được phát hiện và bám.
MÔ HÌNH NỀN THÍCH NGHI:
Những vấn đề chính để hiểu mô hình nền là:
- Tại sao mô hình nền là cần thiết.
- Các phương pháp cũ của mô hình nền là gì và
- Các chiến lược mới dựa vào một số khái niệm được đưa ra bởi một vài
nhà nghiên cứu gần đây nhất.
Chúng ta hiểu nền là phần tĩnh trong cảnh không thay đổi theo thời gian.
Chỉ có những đối tượng di động thay đổi vị trí của chúng trong cảnh. Tuy
nhiên, có một vài yếu tố tạo ra sự thay đổi trong nền. Nó thực sự quan trọng
10
do trong khi thực hiện giám sát cảnh liên tục, chúng ta nên mô hình nền này
là liên tục.
Mô hình nền là cần thiết vì những lý do sau:
1.Có khả năng chiếu sáng trong cảnh ngoài trời thay đổi thường xuyên do
mây, mưa, sương khói…
2.Các hiện tượng tự nhiên như dông gió cũng sinh ra sự thay đổi trong nền
do sự di động của cành cây, bụi cây…
3.Thậm chí trong một ngày bình thường, toàn bộ sự chiếu sáng cũng thay
đổi từ bình minh đến hoang hôn khi mà độ chiếu sáng của mặt trời thay
đổi liên tục.
4.Sự thay đổi quan sát được từ các tia phản chiếu và ánh sáng của mặt trời
do có sự thay đổi góc chiếu sáng của mặt trời.
5.Ánh sáng nhân tạo như đèn đường cũng tạo ra sự thay đổi nền.
6.Có những đối tượng di động khác, bao gồm bóng, làm mờ trường thị giác

và sinh ra nhiễu loạn và thay đổi nền.
Mỗi yếu tố trên sinh ra sự thay đổi nền, do vậy nó không còn là một thực
thể tĩnh. Mô hình nền thực sự là một thành phần thiết yếu trong phân tích
cảnh động. Phương pháp mô hình nền thất bại nếu thuật toán không mô hình
nền là liên tục, do nền phải trải qua sự thay đổi liên tục sinh ra bởi các yếu tố
kể trên. Mô hình nền không thích nghi và liên tục thì các lỗi nền sẽ được tích
lũy liên tục. Khi đó phát hiện và bám đối tượng di động có thể gặp sai lầm.
3.1 Chiến lược mô hình hóa nền cơ bản
Trong trường hợp cảnh thay đổi liên tục, mỗi pixel có thể có chuyển động
không đổi. Điều này có nghĩa là giá trị độ sáng của một pixel nhất định có sự
thay đổi là không đổi trong khi môi trường thay đổi. Các hiện tượng quan tâm
khác xuất hiện khá thường xuyên là, một pixel thuộc về lớp lá cây ở một
khung ảnh nhất định và pixel đó lại thuộc lớp khác (người chẳng hạn) ở
khung ảnh tiếp theo. Do đó mỗi biến pixel nên được mô hình là thay đổi
thống kê. Sự ước lượng liên tục mô hình thống kê này là triết lý chính của mô
hình hóa nền.
Trong trường hợp có rất ít hoặc không có đối tượng di động trong nền,
chúng ta có thể lấy trung bình đơn giản của các khung ảnh nền để tạo một nền
tĩnh gần đúng. Phương pháp mô hình hóa nền đơn giản làm việc khi chúng ta
lấy một số lớn các khung ảnh nền không có bất kỳ đối tượng di động trong
cảnh. Tuy nhiên, trong hầu hết trường hợp thực tế có một lượng đáng kế các
đối tượng di động. Điều này đòi hỏi phương pháp mô hình hóa nền bền vững.
11
3.2 Một phương pháp mô hình hóa nền bền vững
Một pixel trong một cảnh có thể được hiểu là thuộc về một trong nhiều lớp
mẫu như lá cây, cỏ … Mỗi lớp có một phân bố xác suất riêng. Mỗi lớp mẫu
riêng sẽ được mô hình hóa bằng một histogram giá trị cường độ riêng,
histogram này quy định một đo lường phân bố của nó. Khi pixel thuộc về chỉ
một lớp đơn khối thì phân bố các giá trị lý tưởng nên là compact, phân bố
giống gauss quanh một vài điểm trung bình.

Tuy nhiên, khi một pixel có trạng thái chuyển động không đổi thì một pixel
nhất định trong cảnh có thể được xem xét là một tổ hợp của nhiều phân bố
gauss và chỉ một gauss không đủ để mô hình giá trị pixel.
Trong thực tế, nhiều đối tượng có thể xuất hiện trong trường nhìn của pixel
nhất định do điều kiện chiếu sáng thay đổi. Do vậy, để mô hình một pixel
thường phải dùng phân bố gauss thích nghi. Ta sử dụng một phân bố gauss
trộn thích nghi để xấp xỉ quá trình này.
Bây giờ ta hãy xem xét quá khứ của một pixel theo thời gian, ở đây về bản
chất là một thang thời gian của các giá trị xám (hoặc là vector đối với ảnh
mầu). Tại điểm thời gian t, quá khứ của một pixel nhất định {X
1
, X
2
, …, X
t-1
} ,
được lấy bằng tổ hợp trọng số của một số có phân bố gauss (K) như phương
trình dưới. Giá trị K lớn hơn sẽ cho xấp xỉ tốt hơn.

=
=
K
i
tititiitit
xXP
1
,,,,
),,,()(
σµηω
ở đó

ti,
ω
là trọng số được ước lượng ở khung ảnh thứ t của phân bố gauss thứ
i,
),,(
,,, tititii
x
σµη
có giá trị trung bình
ti,
µ
và phương sai
ti,
σ
biểu diễn lớp mẫu
thứ i. Phân bố gauss của lớp i là:










−−
−=




21
,
2
,,
1
,
,,
,,,
)2(
)()(
2
1
exp),,(
ti
d
titi
ti
T
titi
tititii
xx
x
π
µµ
σµη
Các tham số phải ước lượng và cập nhật là (1) vector đặc trưng trung bình
ti,
µ
, và (2) ma trận hiệp biến


ti,
. Nếu các điểm đặc trưng độc lập thì các
thành phần hiệp biến của

ti,
hướng tới 0. Giả thiết rằng quan hệ giữa các
thành phần R, G, B của pixel là rất nhỏ và các biến đổi của chúng được nhận
biết thì ma trận hiệp biến

ti,
được khai triển như sau:
I
ti
ti
2
,
,
σ
=

ở đó I là ma trận đơn vị.
Giá trị pixel mới được biểu diễn bởi K thành phần chính trong mô hình trộn
và giá trị này thường để cập nhật mô hình. Khi giá trị cường độ của một pixel
rơi vào trong một khoảng định trước của phân bố, ta nói rằng pixel phù hợp
12
với phân bố. Nếu K phân bố không phù hợp với giá trị hiện tại thì phân bố xác
suất kém nhất được thay thế bằng phân bố mới có giá trị hiện là giá trị trung
bình.
Trọng số tiền nghiệm

1,, +tki
ω
của K phân bố ở thời điểm t+1được hiệu chỉnh
như sau:
titkitki
M
,,,1,,
βαωω
+=
+
ở đó
α

β
là hai hằng số học và
ti
M
,
là 1 nếu hợp mô hình và 0 nếu không
hợp. Giá trị trung bình và hiệp biến được cập nhật như sau:
1,2,11, ++
+=
tititi
x
ρµρµ

)()(
,,,,2
2
,1

2
1, titi
T
titititi
xx
µµρσρσ
−−+=
+
Hằng số học
1
ρ

2
ρ
cập nhật các phương trình điều khiển tốc độ của việc
học và bị ràng buộc
1
21
=+
ρρ
.
Mục đích cơ bản của ước lượng mô hình nền là để xác định mô hình trộn
Gauss nào được tạo ra là giống nhất với quá trình nền.
Fig 1.
Sau khi xếp loại các phân bố bằng chiến lược thích hợp, phân bố nền giống
nhất được giữ lại ở đỉnh của danh sách xếp loại và các phân bố nền tức thời
kém nhất sẽ đổ về phía dưới của danh sách, ở đó có thể bị thay thế bởi phân
bố mới.
Một ưu điểm quan trọng nhất của mô hình nền này là khi một pixel trong
vật được cho phép trở thành một phần của nền, nó không làm hỏng mô hình

nền hiện hành.
13
GẮN NHÃN THÀNH PHẦN LIÊN KẾT
Khi ta lấy một tập các pixel vật trong mỗi khung, sau khi mô hình hóa nền và
trừ nền thì quan trọng là phải phân ngưỡng chúng để đạt được một tập các
điểm nhị phân. Các pixel vật nhị phân sẽ được phân đoạn thành các vùng bởi
thuật toán gắn nhãn thành phần liên kết, tại đây sẽ thu được một tập các đốm
(blob) tương ứng với mỗi đối tượng di động. Mục tiêu của gắn nhãn thành
phân liên kết là để xác định tất cả các tập thành phần được liên kết với nhau
trong ảnh và quy cho một nhãn riêng với mỗi pixel trong thành phần liên kết
giống nhau.
Ảnh nhị phân được quét từ trái qua phải, pixel đối tượng chưa gắn nhãn
được gán một nhãn gọi là X và mỗi pixel đối tượng lân cận của nó được gán
nhãn giống nhau cho tới khi tất cả các pixel đối tượng trong ảnh được gắn
nhãn. Như vậy thuật toán đệ quy có thể tính toán hiệu quả trên máy lưới song
song để gắn nhãn thành phần liên kết. Một chiến lược xen kẽ của việc gắn
nhãn thành phần liên kết có thể được định nghĩa trong 2 phần. Phần đầu, mỗi
pixel đối tượng được gán một nhãn theo tiêu chuẩn sau:
(a)Nếu cả lân cận trên P(i-1,j) và trái P(i,j-1) của pixel đối tượng P(i,j)
trong lân cận liên kết 4 có nhãn giống nhau X, thì gán nhãn X cho P(i,j).
(b)Nếu hoặc là lân cận trên P(i-1,j) hoặc là trái P(i,j-1) của pixel đối tượng
P(i,j) trong lân cận liên kết 4 có nhãn X, thì gán nhãn X cho P(i,j).
(c)Nếu lân cân trên P(i-1,j) có nhãn X và lân cận trái P(i,j-1) của pixel đối
tượng P(i,j) trong liên kết 4 có nhãn khác làY (X≠Y) thì gán nhãn X cho
P(i,j). Nhập X và Y vào một bảng tương đương gọi là E.
(d)Nếu cả lân cận trên P(i-1,j) và trái P(i,j-1) của pixel đối tượng P(i,j)
trong lân cận liên kết 4 không là pixel đối tượng (nền) thì gán nhãn mới
Z cho P(i,j). Nhập Z vào bảng tương đương E.
Thường ta gán nhãn là một số tự nhiên cho mỗi thành phần. Bản tương
đương E chứa đựng một tập các nhãn tượng đương.

Phần hai, các nhãn tương đương được hợp nhất để tạo một nhãn duy nhất
cho mỗi thành phần liên kết trong ảnh. Nếu X và Y là hai nhãn tương đương
thì gán lại Y bởi X nếu X<Y và ngược lại. Kết quả là mỗi thành phân liên kết
được gán một nhãn duy nhất.
Do đó thuật toán gắn nhãn thành phần liên kết ở trên là thuật toán 2 phần.
Trong phần đầu các pixel đối tượng thuộc về thành phân liên kết giống nhau
được gán nhãn khác nhau và được ghi là tương đương trong bảng tương
đương E. Trong phần 2 các nhãn tượng đương được hợp nhất do vậy mỗi
thành phần liên kết được gán một nhãn duy nhất.
14

×