Tải bản đầy đủ (.pdf) (84 trang)

THIẾT kế hệ THỐNG xử lý ẢNH số TRÊN nền FPGA

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.95 MB, 84 trang )

Ketnooi.com k t n i công dân đi n t

ĐẠI HỌC BÁCH KHOA HÀ NỘI
KHOA ĐIỆN – BỘ MÔN ĐIỀU KHIỂN TỰ ĐỘNG

THIẾT KẾ HỆ THỐNG XỬ LÝ ẢNH SỐ TRÊN
NỀN FPGA

Nhóm sinh viên thực hiện: Ngô Hải Bắc

Đỗ Trung Hiếu
Lớp Điều khiển tự động 1 – K48
Giáo viên hướng dẫn:

HÀ NỘI - 2008
1

Ts. Lưu Hồng Việt


Ketnooi.com k t n i công dân đi n t

Lời cảm ơn
Trước hết, chúng em xin gửi lời cảm ơn sâu sắc đến thầy giáo TS. Lưu
Hồng Việt, người đã giúp đỡ rất nhiều về định hướng nghiên cứu, thiết bị thí
nghiệm phục vụ cho nghiên cứu.
Chúng em xin chân thành cảm ơn các thầy cô giáo đã giảng dạy chúng
em, đặc biệt là các thầy cô giáo trong Bộ môn Điều khiển tự động – Khoa
Điện, TS. Phạm Ngọc Nam – Phó Trưởng bộ môn Điện tử - Tin học – Khoa
Điện tử Viễn Thông – Trường Đại học Bách Khoa Hà Nội đã tạo điều kiện
giúp đỡ chúng em hoàn thành đồ án tốt nghiệp này.


Xin chân thành cảm ơn Dave Vanden Bout, kĩ sư của công ty XESS
Corporation đã trả lời tận tình những thắc mắc của chúng em về KIT XSA3S1000 và XST-3.0.
Và cuối cùng, chúng em xin dành tất cả lòng biết ơn và kính trọng sâu sắc
nhất tới bố mẹ chúng em, những người đã sinh thành, nuôi dưỡng chúng em
nên người, đã lo lắng, chỉ bảo từ những việc nhỏ nhất, đã tạo mọi điều kiện
cho chúng em được sống và học tập một cách tốt nhất để vươn tới những ước
mơ và hoài bão của mình.
Mặc dù đã rất nỗ lực và cố gắng để hoàn thành luận văn tốt nghiệp này,
song chắc chắn không thể tránh khỏi sai sót. Vì vậy, chúng em rất mong được
sự chỉ bảo của thầy cô giáo để đề tài tốt nghiệp này hoàn thiện hơn.

2


Ketnooi.com k t n i công dân đi n t

Mục lục
Lời cảm ơn.................................................................................................................................................. 2
Mục lục ....................................................................................................................................................... 3
Danh mục các hình vẽ trong đồ án tốt nghiệp...................................................................................... 6
Mở đầu........................................................................................................................................................ 8
Phần 1 : Cơ sở lý thuyết xử lý ảnh số ................................................................................................... 10
1.1.

Khái quát về hệ thống Thị giác máy tính và Cảm biến thị giác........................................ 10

1.3.

Các thành phần của hệ thống xử lý ảnh: ............................................................................. 16


1.3.1.

Thành phần thu thập ảnh, Camera và vấn đề định dạng ảnh.................................. 16

1.3.2.

Thành phần xử lý ảnh .................................................................................................... 17

1.4.

1.3.2.1.

Các khái niệm cơ bản của xử lý ảnh số ................................................................ 17

1.3.2.2.

Các thuật toán xử lý ảnh số ................................................................................... 18

Một số giải pháp phần cứng cho hệ thống thị giác máy ................................................... 28

FPGA ................................................................................................................................................ 28
DSP Processor ................................................................................................................................. 28
Mainboard, laptop ......................................................................................................................... 29
Phần 2 : Khái quát về FPGA và mạch phát triển XST 3S1000 của XESS...................................... 31
2.1.

Giới thiệu chung về FPGA và ngôn ngữ VHDL .............................................................. 31

2.1.1.


Khái niệm và ứng dụng FPGA .................................................................................... 31

2.1.2.

Kiến trúc FPGA............................................................................................................... 32

2.1.2.1.

Kiến trúc chung FPGA .......................................................................................... 32

Configurable Logic Blocks (CLBs)...................................................................................... 33
Configurable I/O Blocks....................................................................................................... 34
Programmable Interconnect................................................................................................. 34
Mạch đồng hồ (Clock Circuitry )......................................................................................... 35
2.1.2.2.

So sánh giữa cấu trúc nhỏ và cấu trúc lớn ......................................................... 36

2.1.2.3.

So sánh giữa SDRAM Programming và Anti-fuse programming................ 36

2.1.2.4.

Cấu trúc FPGA của Spartan 3............................................................................... 37

2.1.3.

Trình tự thiết kế một chip ............................................................................................ 38
3



Ketnooi.com k t n i công dân đi n t
Ghi các đặc điểm kĩ thuật ..................................................................................................... 39
Chọn công nghệ...................................................................................................................... 40
Chọn một hướng tiếp cận thiết kế ...................................................................................... 40
Chọn công cụ tổng hợp ......................................................................................................... 40
Thiết kế chip ........................................................................................................................... 41
Mô phỏng – cái nhìn tổng quan về thiết kế ...................................................................... 41
Tổng hợp.................................................................................................................................. 41
Place and Route ...................................................................................................................... 41
Mô phỏng lại – tổng quan cuối cùng.................................................................................. 42
Kiểm tra.................................................................................................................................... 42
2.1.4.

Ngôn ngữ mô tả phần cứng VHDL............................................................................. 42

Trình tự thiết kế một chíp dựa trên VHDL........................................................................... 43
2.2.

Giới thiệu mạch phát triển XST 3S 1000 của hãng XESS................................................ 44

2.2.1.

XSA-3S1000...................................................................................................................... 45

2.2.2.

XST-3.0 (XStend Board)................................................................................................. 46


2.3.

Giới thiệu hãng Xilinx và các công cụ lập trình: .............................................................. 49

Hãng Xilinx ..................................................................................................................................... 49
ISE 9.2 ............................................................................................................................................... 49
LogicCore 9.2................................................................................................................................... 49
EDK 9.2............................................................................................................................................. 50
System Generator 9.2..................................................................................................................... 50
Phần 3 : Xây dựng hệ thống xử lí ảnh động trên nền FPGA.......................................................... 51
3.1.

Sơ đồ cấu trúc hệ thống xử lí ảnh động ............................................................................. 51

3.2.

Xây dựng hệ thống thu thập, lưu trữ, xử lý và hiển thị ảnh .......................................... 53

3.2.1.

Thành phần thu thập ảnh Framegrabber................................................................... 53

3.2.2.

Lưu dữ liệu từ Framegrabber vào SDRAM .............................................................. 55

3.2.3.

Các cơ chế ghi đọc SDRAM: SDRAM Controller, Dual Port SDRAM................ 55


SDRAM Controller .................................................................................................................... 55
Pipeline Read Operation ...................................................................................................... 56
Pipeline Write Operation ..................................................................................................... 56
Dualport Module for the SDRAM Controller...................................................................... 58
4


Ketnooi.com k t n i công dân đi n t
3.2.4.

Image Processing core ................................................................................................... 60

3.2.5.

Hiển thị ảnh lên VGA: VGA Generator .................................................................... 67

VGA Color Signals .................................................................................................................... 67
VGA Signal Timing................................................................................................................... 68
Nguyên tắc hoạt động của VGA Generator .......................................................................... 69
3.2.6.

Picoblaze và hệ thống điều khiển trung tâm ............................................................ 71

3.2.6.1.

Khái quát PicoBlaze............................................................................................... 71

KCPSM3 Module ................................................................................................................... 73
Kết nối với bộ nhớ ROM chương trình.............................................................................. 73
3.2.6.2.


Sơ đồ cấu trúc của khối xử lý trung tâm ............................................................ 75

Thuật toán của chương trình................................................................................................. 75
3.3.

Thiết kế giao diện điều khiển hệ thống............................................................................. 76
Chức năng .................................................................................................................................... 77

3.4.

Mô phỏng và kết quả............................................................................................................. 77

Phương án mô phỏng ..................................................................................................................... 77
Kết quả.............................................................................................................................................. 78
Kết luận .................................................................................................................................................... 79
Tài liệu tham khảo ................................................................................................................................. 82

5


Ketnooi.com k t n i công dân đi n t

Danh mục các hình vẽ trong đồ án tốt nghiệp
Hình 1.1

Một tay máy thực hiện gắp đối tượng với sự trợ giúp của hệ thống thị giác
máy tính

Hình 1.2


Các bước cơ bản của xử lý ảnh số.

Hình 1.3

Những kiểu liên kết giữa các điểm ảnh.

Hình 1.4

Những kiểu đường liên kết giữa các điểm ảnh.

Hình 1.5

Kết quả của phép lọc Gaussian với cửa sổ 3x3.

Hình 1.6

Kết quả thuật toán dò biên.

Hình 1.7

Phân ngưỡng theo lược đồ xám.

Hình 1.8

Loại bỏ nhiễu và khôi phục đối tượng bằng quá trình làm mảnh-làm đầy.

Hình 1.9

Sơ đồ thuật toán gán nhãn đối tượng.


Hình 2.1

Kiến trúc chung của FPGA.

Hình 2.2

Một Logic Block điển hình.

Hình 2.3

Configurable Logic Blocks.

Hình 2.4

Programmable Interconnect.

Hình 2.5

Cấu trúc các thành phần của Spartan 3A.

Hình 2.6

Design Flow.

Hình 2.7

Qui trình thiết kế chip dựa trên VHDL.

Hình 2.8


KIT XSA-3S1000.

Hình 2.9

Sơ đồ cấu trúc của XSA-3S1000.

Hình 2.10

XST-3.0 Board.

Hình 2.11

XST-3S1000.

Hình 3.1

Một ảnh cần được xử lý.

Hình 3.2

Sơ đồ chung của hệ thống.

Hình 3.3

Pixel stream waveform.

Hình 3.4

Framegrabber state machine.


Hình 3.5

Pipelined Read Operation timing waveforms.

Hình 3.6

Pipelined Write Operation timing waveforms.

Hình 3.7

Ghép nối với SDRAM Controller.

Hình 3.8

Ghép nối dualport với SDRAM Controller.

Hình 3.9

Xây dựng 4 ports SDRAM interface.

Hình 3.10

Sơ đồ khối xử lý ảnh.

Hình 3.11

Khối ghi dữ liệu từ read_fifo vào Buffer.
6



Ketnooi.com k t n i công dân đi n t
Hình 3.12

Khối thuật toán xử lý ảnh.

Hình 3.13

Cơ chế ghi và đọc buffer.

Hình 3.14

Khối đọc dữ liệu từ buffer.

Hình 3.15

Sơ đồ khối thanh ghi dịch Pixel register

Hình 3.16

Cấu trúc nhân chập.

Hình 3.17

Cấu trúc bộ xử lý đồng cấu ảnh nhị phân.

Hình 3.18

Khối gán nhãn đối tượng.


Hình 3.19

VGA Connection.

Hình 3.20

8 màu cơ bản.

Hình 3.21

CRT Display Timing Example.

Hình 3.22

640 x 480 Mode VGA Control Timing.

Hình 3.23

Sơ đồ khối cấu trúc của VGA Generator.

Hình 3.24

Sơ đồ khối cấu trúc của PicoBlaze.

Hình 3.25

Sơ đồ cấu trúc PicoBlaze Microcontroller.

Hình 3.26


Sơ đồ khối điều khiển trung tâm và giao tiếp UART.

Hình 3.27

Giao diện điều khiển.

7


Ketnooi.com k t n i công dân đi n t

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 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.
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à.
Mục đích của đồ án này là nghiên cứu các khái niệm cơ bản của Thị giác
máy tính và xử lý ảnh số. Đồng thời trên cơ sở đó, chúng em xây dựng một
hệ thống cảm biến thị giác trên nền phần cứng vi mạch khả trình FPGA. Cảm
biến này thực hiện các chức năng cơ sở của một cảm biến thị giác : đó là tiếp
nhận thông tin từ hình ảnh thu được để xử lý và phục vụ cho các quá trình

phân tích cao hơn.
8


Ketnooi.com k t n i công dân đi n t

Trong phần 1 của đồ án, chúng em đề cập đến những các khái niệm của hệ
thống thị giác máy tính, những ứng dụng và các thành phần của nó. Đồng
thời chúng em trình bày cơ sở kiến thức xử lý ảnh số sẽ được dùng trong việc
xây dựng hệ thống cảm biến thị giác.
Trong phần 2, chúng em trình bày những khái niệm cơ bản về chip khả
trình FPGA, hãng Xilinx và những công cụ lập trình và phát triển hệ thống
với FPGA. Chúng em cũng đề cập đến vi mạch tích hợp XST 3S 1000 của
hãng XESS, được sử dụng trong đồ án này.
Phần 3, chúng em trình bày phương án thực thi hệ thống thị giác máy trên
nền FPGA. Việc xây dựng các thành phần thu thập ảnh, lưu trữ ảnh, xử lý
ảnh và hiện thị ảnh trên mạch tích hợp XST 3S 1000 được đề cập chi tiết trong
phần này. Trong phần này, chúng em cũng trình bày phương án chạy mô
phỏng kiểm tra hoạt động của hệ thống.
Và cuối cùng, chúng em tổng kết những kết quả đạt được, những ưu
điểm, nhược điểm của giải pháp, hiệu quả của giải pháp và những hướng
phát triển.

9


Ketnooi.com k t n i công dân đi n t

Phần 1 : Cơ sở lý thuyết xử lý ảnh số
1.1. Khái quát về hệ thống Thị giác máy tính và Cảm biến thị giác

Theo định nghĩa từ [1] : Hệ thống thị giác - bao gồm cả thị giác máy
(machine vision) và thị giác máy tính (computer vision)- là những hệ thống
tiếp nhận thông tin từ các cảm biến thị giác (vision sensor) với mục đích cho
phép máy móc đưa ra những quyết định thông minh.
Thị giác máy tính là một ngành khoa học mới phát triển. Mặc dù đã có
những ứng dụng của xử lý ảnh số trong những thập niên đầu của thế kỉ XX
vào một số lĩnh vực, nhưng phải đến những năm 1970, những nghiên cứu về
lĩnh vực này mới được bắt đầu khi máy tính đã có thể quản lý các quá trình
xử lý một lượng lớn dữ liệu như các ảnh số.
Lĩnh vực nghiên cứu của thị giác máy rất rộng, và đặc điểm chung là các
bài toán về thị giác máy tính đều không có một đề bài chung và cách giải duy
nhất. Mỗi giải pháp giải quyết vấn đều được một kết quả nhất định cho
những trường hợp cụ thể. Ta có thể thấy sự tương quan giữa Computer
vision với các lĩnh vực khác như sau:

10


Qua sơ đồ trên, ta có thể thấy thị giác máy tính và thị giác máy có liên
quan đến rất nhiều ngành như tự động điều khiển, xử lý ảnh số, quang học,
sinh học, toán học, máy học. và Trí tuệ nhân tạo. Sự kết hợp của những
ngành này tạo cho Thị giác máy tính một khả năng ứng dụng hết sức rộng
lớn trong mọi lĩnh vực của khoa học, sản xuất và đời sống. Có thể liệt kê một
số ứng dụng của thị giác máy tính như sau :
Điều khiển tiến trình (ví dụ: trong các robot công nghiệp, hay các thiết bị,
xe tự hành).
Phát hiện sự kiện (ví dụ: các thiết bị giám sát)
Tự động hóa tòa nhà.
Mô hình hoá đối tượng (ví dụ: quá trình kiểm tra trong môi trường công
nghiệp, xử lý ảnh trong y học).

Tương tác (đóng vai trò làm đầu vào cho thiết bị trong quá trình tương
tác giữa người và máy).
Nhận dạng
Quân sự.
Trong lĩnh vực điều khiển tiến trình, thị giác máy tính đóng vai trò đặc
biệt quan trọng như một cảm biến vị trí cho robot công nghiệp hoặc xe tự
hành.
Trong hệ thống máy CNC, hoặc các dây chuyền công nghệ, các cảm biến
thị giác thu thập dữ liệu ảnh về đối tượng công nghiệp, xử lý và tách đối
tượng ra khỏi ảnh. Sau khi tách đối tượng, hệ thống thị giác máy tính toán
các đặc trưng của đối tượng, như vị trí, hướng, để giúp cánh tay máy của
robot công nghiệp thao tác chính xác việc gắp hoặc gia công đối tượng.
Với những hệ thống thị giác được tích hợp các camera có độ phân giải lớn,
được lập trình chính xác, có thể điều khiển tay máy để thao tác với những vi
mạch nhỏ đòi hỏi độ chính xác gần như tuyệt đối.

11


Hình 1.1: Một tay máy thực hiện gắp đối tượng với sự trợ giúp của hệ thống thị giác
máy tính

Cũng như vậy, với xe tự hành đi trong môi trường phức tạp, nhiều vật
cản, hệ thống thị giác máy giúp cho xe phát hiện ra những đối tượng, vị trí và
khoảng cách của chúng đối với xe. Trong trường hợp này, hệ thống thị giác
máy không chỉ đóng vai trò như môt cảm biến thị giác, mà còn thực hiện việc
vẽ bản đồ đối tượng, cho phép xe tự hành chọn được đường đi thích hợp
nhất.
Hệ thống thị giác máy còn được ứng dụng trong những lĩnh vực công
nghiệp với vai trò như một cảm biến kiểm soát lỗi bề mặt sản phẩm. Camera

thu thập hình ảnh về bề mặt sản phẩm, sẽ truyền dữ liệu vào cho hệ thống xử
lý để tìm ra lỗi trên sản phẩm, vị trí lỗi và kích thước lỗi. Với những hệ thống
thị giác sử dụng camera hồng ngoại, ta còn có thể đo nhiệt độ sản phẩm và sự
phân bố nhiệt độ trên sản phẩm.
Như vậy, có thể nói, trong lĩnh vực công nghiệp, thị giác máy và cảm biến
thị giác có thể thay thế một lượng lớn các cảm biến ví trí thông thường, vốn
cần rất nhiều trong một dây chuyền sản xuất hoặc CNC, giúp giảm thiểu chi
phí và công sức lắp đặt cảm biến, và quan trọng nhất là tạo nên một hệ thống
xử lý thống nhất những thông tin về quá trình và đối tượng công nghiệp.
Trong lĩnh vực tự động hóa tòa nhà, hệ thống thị giác máy cũng đóng một
vai trò ngày càng quan trọng.

12


Với sự phát triển của các thuật toán xử lý dữ liệu ảnh, ứng dụng các thành
tựu mới nhất của công nghệ xử lý và trí tuệ nhân tạo, các cảm biến thị giác
ngày nay có thẻ thực hiện những chức năng thông minh như đếm số người
trong phòng, nhận dạng đối tượng chuyển động, nhận dạng khuôn mặt, cảnh
báo sự kiện, nhận dạng vân tay....
Các hãng như ALTALS và SELTEC, đã cho ra đời những máy đếm số
người, dựa trên chuỗi hình ảnh. Bằng cách quan sát sự di chuyển của dòng
người và số người , hệ thống thị giác máy sẽ tính toán tốc độ và mật độ dòng
người di chuyển. Bài toán này được ứng dụng nhiều trong những khu công
cộng như nhà ga, tàu điện ngầm để kiểm soát lưu lượng người ra vào nhằm
đưa ra những quyết định điều hành chính xác.[2]
Hệ thống thị giác máy còn được ứng dụng rộng rãi trong việc nhận dạng,
chuẩn đoán y học, quân sự ( xác định vị trí đối phương) và vũ trụ...
Xu thế phát triển của các cảm biến ngày nay, đó là độ chính xác cao, kèm
với tính phân tán, thông minh, khả năng loại bỏ lỗi (fault tolerance). Các hệ

thống cảm biến thị giác đang chứng tỏ ngày càng đáp ứng được xu thế đấy.
Các hệ thống cảm biến thị giác ngày nay, đã có thể thay thế được một lượng
lớn cảm biến vị trí trong những bài toán cụ thể, đồng thời, khả năng xử lý
thông tin không cần đến sự điều khiển của bộ điều khiển trung tâm, cho
phép chúng có thể tích hợp rộng rãi vào những hệ thống điều khiển phân tán.
Thêm vào đó, các cảm biến thị giác có tính linh hoạt rất cao, có thể ứng dụng
trong nhiều bài toán với những yêu cầu đo đạc và giám sát khác nhau. Và
cuối cùng, do đặc điểm hoạt động của mình, các cảm biến thị giác có thể hoạt
động tốt trong những môi trường khắc nghiệt, như nhiệt độ cao, phóng xạ,
bụi, điện trường, độ ẩm lớn...
Với những lý do đó, hệ thống thị giác máy và cảm biến thị giác đang ngày
càng được ứng dụng nhiều trong những hệ thống phức tạp và hiện đại, hoạt
động liên tục và đòi hỏi yêu cầu về độ chính xác và xử lý thông tin cao.

1.2. Khái quát quá trình xử lý ảnh số trong hệ thống thị giác máy
tính
Hệ thống thị giác máy tính bao gồm nhiều lĩnh vực, trong đó xử lý ảnh số
đóng một vai trò quyết định.
13


Hệ thống xử lý ảnh số bao gồm một phạm vi rộng các kiến thức về phần
cứng, phần mềm và cơ sở lý thuyết.
Các bước cơ bản của xử lý ảnh số được mô tả trong sơ đồ dưới đây:

Phân vùng,
phân ngưỡng

Biểu diễn


Tiền xử lý

Cơ sở kiến thức

Xử lý và
nhận dạng

Thu nhận
ảnh

Hình 1.2 : Các bước cơ bản của xử lý ảnh số

Thu thập ảnh(image acquision) : Ảnh số được thu thập bằng một cảm
biến ảnh có khả năng biến thông tin về cường độ sáng và mức xám của ảnh
thực thành tín hiệu điện áp dưới dạng analog. Tín hiệu này sau đó được số
hóa để trở thành tín hiệu số.
Hiện nay có một số cảm biến ảnh thực hiện cả việc thu nhận tín hiệu về
cường độ sáng của ảnh và số hóa tín hiệu. Trong trường hợp cảm biến không
có chức năng số hóa thì cần phải có một bộ biến đổi ảnh tương tự thành ảnh
số (video decoder). Tín hiệu ảnh sau khi được số hóa còn được mã hóa theo
những chuẩn video (video format) nhất định trước khi được đưa vào quá
trình lưu trữ và xử lý. Các chuẩn video thường gặp như IUT-R-BT 656, 601...
Tiền xử lý ảnh : Sau khi ảnh số được thu thập dưới dạng tín hiệu số, cần
phải trải qua giai đoạn tiền xử lý. Chức năng chủ yếu của tiền xử lý là cải
thiện ảnh, nâng cao các tính chất của ảnh giúp cho các quá trình xử lý về sau
14


được thuận tiện hơn. Các công đoạn cơ bản của tiền xử lý là : nâng cao độ
tương phản, lọc nhiễu...

Phân vùng ảnh: Bước tiếp theo của quá trình xử lý là phân vùng ảnh. Ảnh
sau khi đã được cải thiện, sẽ trở nên thuận tiện hơn cho việc phân ngưỡng và
phân vùng. Nhiệm vụ chính của phân ngưỡng và phân vùng ảnh là tách ảnh
đầu vào thành các đối tượng, vật thể riêng biệt. Kết quả của quá trình phân
vùng ảnh, ta sẽ được một tập hợp các điểm ảnh có liên kết với nhau thành các
đối tượng, được đánh số phân biệt, thuận tiện cho các quá trình xử lý cao
hơn.
Đầu ra của quá trình phân vùng ảnh là các pixel chưa được lọc, bao gồm
liên kết của 1 vùng hoặc tất cả các điểm ảnh trong vùng đó. Số liệu này cần
được biến đổi thành dạng thích hợp cho máy tính xử lý.
Phân tích ảnh: đây là giai đoạn xử lý bậc cao trong hệ thống xử lý ảnh số.
Ảnh sau khi được phân vùng thành các đối tượng riêng biệt, đã được đánh số
phân biệt, sẽ được phân tích để phục vụ những mục đích khác nhau như:
Xác định các đặc trưng hình học của đối tượng: dựa trên cơ sở đối tượng
đã được xác định và phân biệt, ta có thể thực hiện xác định các đặc trưng
hình học của mỗi đối tượng đấy, như : vị trí, kích thước, hướng, ... và số đối
tượng hay mật độ đối tượng trong ảnh. Đây là các đặc trưng được dùng
nhiều trong hệ thống thị giác máy (machine vision)
Nhận dạng : các đối tượng có thể là các vật thể có hình dạng nhất định,
hoặc các kí tự số, chữ cái, dấu vân tay...Ảnh sau khi được phân vùng có thể
được nhận dạng theo những phương pháp nhất định như phương pháp
neural, để tìm ra mẫu hình dạng mà đối tượng đó thuộc về.
Để hướng dẫn hoạt động của từng module xử lý, cần có một hệ cơ sở kiến
thức để kiểm tra hoạt động và tương tác giữa các module. Hệ này có nhiệm
vụ kiểm soát hoạt động của từng module và sắp xếp trình tự hoạt động của
chúng trong từng thời điểm, giải quyết bài toán xung đột.

15



1.3. Các thành phần của hệ thống xử lý ảnh:
1.3.1. Thành phần thu thập ảnh, Camera và vấn đề định dạng ảnh.
Giới thiệu chung về camera : Trong hệ thống xử lý ảnh số, camera là một
thiết bị rất quan trọng có chức năng quan sát và thu nhận ảnh đầu vào của
hệ thống. Nó thường được coi là hộp đen trong đó có các quá trình biến đổi
để chuyển một ảnh thành dạng lưu trữ trong máy tính. Các bước xử lý này
bao gồm sự phát sáng, thấu kính, sensor, các phần tử quang điện và bộ số
hoá, mỗi thành phần này phối hợp nhằm đưa ra ảnh số cuối cùng. Điểm đặc
biệt quan trọng trong nhận dạng ảnh là đặc tính thời gian của camera, vì vậy
quá trình xử lí ảnh có vai trò như bộ lấy mẫu trong hệ thống nhận dạng ảnh.
Cảm biến nhìn chung gồm 2 thành phần chính. Thành phần thứ nhất tạo
ra tín hiệu điện ở đầu ra tỉ lệ với mức năng lượng mà nó nhận được. Thành
phần thứ 2 là bộ số hóa(digitalize) , là phần tử biến đổi tín hiệu tương tự
thành tín hiệu số. Tùy thuộc vào thành phần số hóa thực chất là bộ chuyển
đổi ADC, chúng ta có các tín hiệu với số bit khác nhau: 4 bit, 8bit, 10 bit, 12
bit..., tương ứng ta sẽ được các ảnh có 16, 256....mức xám khác nhau.
Trước đây, người ta sử dụng các camera dựa trên thiết bị phóng tia điện
tử, linh kiện bán dẫn, tuy nhiên những thiết bị này thường cồng kềnh, thiếu
bền vững, độ ổn định thấp. Từ những năm 1980, đã bắt đầu xuất hiện các
sensor ảnh trong các camera như sensor CMOS, CCD. Các sensor này chứa
một số lượng phần tử quang rời rạc, hay các điểm ảnh (pixel), mỗi phần tử
chứa thông tin liên quan đến độ sáng chiếu vào nó.
Độ phân giải của các sensor phụ thuộc vào số điểm ảnh trên nó. Số điểm
ảnh của các sensor là đa dạng, từ thấp (32x32 điểm ảnh), đến trung bình
(256x256 điểm ảnh) cho đến cao (640x480 ) hoặc cao hơn nữa là 1280x1024
điểm ảnh.
Trong đề tài này, chúng em sử dụng loại camera AVC 301D của hãng
AVTech, đây là một loại camera quan sát cho ảnh xám, sử dụng sensor có độ
phân giải tương đối lớn (510x482 điểm ảnh), cho ra tín hiệu ảnh dạng tương
tự và cần phải được số hóa trước khi đi vào quá trình xử lý. Tín hiệu ảnh

16


tương tự được số hóa thành ảnh số bởi bộ video decoder TVP5150 theo chuẩn
ITU-R-BT 601.
Mỗi frame ảnh thu về được biểu diễn dưới dạng I(x,y) trong đó x,y là tọa
độ của pixel trên frame và I là mức xám tương ứng của pixel đó.
Như vậy 1 frame ảnh thu được sẽ được biểu diễn dưới dạng một ma trận
2 chiều n x m với n là số pixel trên 1 hàng, m là số hàng trong 1 frame. Trong
đồ án này, ảnh thu được từ camera có kích thước 510x482, tuy nhiên sau quá
trình số hóa theo chuẩn ITU 601 ta có ảnh số 8bit với kích thước chuẩn là
720x525.

1.3.2. Thành phần xử lý ảnh
1.3.2.1. Các khái niệm cơ bản của xử lý ảnh số
Pixel và các lân cận : Như đã biết, mỗi frame ảnh được mô tả dưới dạng
ma trận 2 chiều, trong đó mỗi phần tử của ma trận tương ứng với mức xám
của 1 điểm ảnh (pixel). Mỗi điểm ảnh này có các lân cận xung quanh. Nếu
hiển thị mỗi pixel dưới dạng một ô vuông, mỗi điểm có chung biên với 4
điểm lân cận, và có chung góc với 4 điểm lân cận khác.
Hai điểm lân cận gọi là "liên kết 4" nếu chúng có chung biên với nhau, và
"liên kết 8" nếu chung góc và chung biên với nhau.

Hình 1.3 : Những kiểu liên kết giữa các điểm ảnh

Đường liên kết: Đường liên kết là đường nối từ pixel [i1, j1 ] đến pixel

[in , jn ] , qua một chuỗi các pixel [i1, j1 ] , [i2, j2 ] ,... [ik , jk ] ..., trong đó mỗi pixel
17



liên kết với pixel trước nó. Ta có đường liên kết 4 hoặc liên kết 8 nếu các pixel
liên kết 4 hoặc 8 với nhau

a) Liên kết 4

b) Liên kết 8

Hình 1.4 : Những kiểu đường liên kết giữa các điểm ảnh.

Có thể dễ dàng nhận thấy, nếu có một đường liên kết giữa 2 điểm [ia , ja ] ,

[ib , jb ] , và giữa 2 điểm [ia , ja ] , [ic , jc ] thì cũng sẽ có đường liên kết giữa 2
điểm [ib jb ] và [ic jc ] . Liên kết có tính tương đối.
Đối tượng và nền : Ảnh sau khi được nhị phân hóa ( các điểm ảnh chỉ có
giá trị 0 hoặc 1) sẽ phân biệt được đối tượng và nền. Trong đề tài này, ta giả
định đối tượng là tập hợp các điểm ảnh có liên kết với nhau và có mức xám là
0 (đen), ta ký hiệu là S, và nền là những điểm có mức xám 1 (trắng) .
Biên: biên của một đối tượng S là tập các điểm trên S và có liên kết 4 với
~S (phần bù của S) hay nền của ảnh.
Miền trong của S : là các điểm thuộc S nhưng không nằm trên biên của
nó.
1.3.2.2. Các thuật toán xử lý ảnh số
Toán tử cửa sổ (windowing operator): Trong việc thực thi các thuật toán
xử lý ảnh số cơ bản, người ta thường sử dụng một toán tử đặc biệt gọi là toán
tử cửa sổ. Toán tử cửa sổ là một tập hợp có hình dạng nhất định, gồm các
pixel có liên kết với một pixel trung tâm, là pixel đang được xử lý. Các phép

18



toán trên các pixel này sẽ có ảnh hưởng đến các pixel trung tâm cũng là các
pixel đang được xử lý trong một thuật toán xử lý ảnh.
Toán tử cửa sổ có nhiều hình dạng, tùy thuộc vào thuật toán thực hiện.
Tuy nhiên thường dùng nhất là các toán tử có dạng hình vuông với các cạnh
là một số lẻ, ví dụ :3x3, 5x5, 7x7...
Trong đồ án này, chúng em sử dụng thường xuyên toán tử cửa sổ có dạng
3x3, vì đây là kích thước hợp lý để thực hiện hiệu quả tất cả các thuật toán xử
lý cơ bản và nâng cao, đồng thời lại dễ thực hiện và rút ngắn tối đa quá trình
xử lý. Nếu sử dụng cửa sổ 5x5 và 7x7, thời gian xử lý sẽ tăng lên rất nhiều.
Tăng độ tương phản : Ảnh sau khi thu được từ camera, có thể do sự
tương phản ảnh sáng kém, dẫn đến độ chói quá cao, khó phân biệt. Để cải
thiện ảnh, hỗ trợ các quá trình xử lý cao hơn, ta sử dụng các phương pháp
hiệu chỉnh: hiệu chỉnh min-max, hiệu chỉnh histogram, hiệu chỉnh Gamma, ...
Ở đây ta sử dụng phương pháp hiệu chỉnh min-max vì nó dãn đều mức
xám của ảnh trong dải cho phép (không ảnh hưởng đến mức xám chung).
Công thức để nâng cấp ảnh theo hiệu chỉnh min-max:

I new 
Trong đó:

I old  I min
.256
I max  I min

I max , I min - là các mức xám cao nhất và thấp nhất.

I new , I old - là mức xám sau khi hiệu chỉnh và trước khi hiệu chỉnh.
Sau khi hiệu chỉnh mức xám, ta sẽ dãn mức xám của ảnh ra các giá trị cách
biệt nhau hơn, tạo thuật tiện cho việc xử lý và nhận dạng sau này.

Các thuật toán nhân chập
Nhân chập (convolution) : nhân chập không phải là một thuật toán xử lý
ảnh, mà là phép toán thông dụng trong các thuật toán xử lý ảnh sử dụng toán
19


tử cửa sổ. Nhân chập được sử dụng trong các bài toán dò biên (edge
detection) và lọc tuyến tính (linear filter).
Nhân chập tính toán ra giá trị mới của pixel trung tâm của toán tử cửa sổ,
bằng cách thực hiện phép tính với các pixel lân cận và chính pixel trung tâm.
Việc thực thi phép nhân chập như sau: cho một cửa sổ với pixel trung tâm
chạy trên toàn bộ frame ảnh, với mỗi cửa sổ 3x3 thu được, ta thực hiện phép
toán :
i 1

I (i, j ) 

j 1

  c(n, m).I (n, m) (1.1).

n  i 1 m  j 1

Kết quả tính được cho ra giá trị mới của pixel trung tâm.
Trong (1.1), c(n,m) là các phần tử của một ma trận gọi là mặt nạ (mask).
Mỗi thuật toán xử lý khác nhau sử dụng một mặt nạ khác nhau để tính giá trị
của các điểm ảnh.
Lọc tuyến tính, dò biên: Đây là 2 thuật toán cơ sở sử dụng phép nhân
chập.
Lọc tuyến tính(linear filter) có tác dụng cải thiện ảnh, loại bỏ nhiễu hỗ trợ

cho các quá trình xử lý cao hơn.
Mỗi bộ lọc khác nhau sử dụng một mặt nạ khác nhau, cho hiệu quả khác
nhau tùy vào mục đích sử dụng và tình trạng của ảnh sau khi thu thập. Ví dụ
đối với ảnh có nhiễu phân bố đều, ngẫu nhiên độc lập với mỗi pixel, ta có thể
sử dụng mặt nạ dành cho lọc trung bình, mặt nạ này sẽ làm giảm ảnh hưởng
của nhiễu đối với pixel trung tâm bằng cách lấy trung bình cộng các pixel lân
cận trong cửa sổ.

 c11 c12

c   c21 c22
c
 31 c32

c13 
 1 1 1
1



c23   1 1 1
9

c33 
 1 1 1

Nếu ảnh có nhiễu Gaussian, ta sử dụng mặt nạ
20



 c11 c12

c   c21 c22
c
 31 c32

c13 
1 2 1
1



c23    2 4 2 
16 

c33 
1 1 1

a) Trước khi lọc

b)Sau khi lọc

Hình 1.5 : Kết quả của phép lọc Gaussian với cửa sổ 3x3

Dò biên : Biên của một đối tượng được xác định ở nơi mức xám của các
pixel có sự thay đổi đột ngột. Có nhiều cách xác định biên, như dò biên theo
gradient, dò biên bằng cách lấy đạo hàm bậc 2 của mức xám theo tọa độ
pixel. Hầu hết các thuật toán dò biên sử dụng nhân chập, dù không phải là
tất cả . Thuật toán dò biên mà chúng em sử dụng trong đồ án này là thuật
toán Laplacien.

Thuật toán Laplacien dò biên chỉ quan tâm đến sự thay đổi đột ngột của
mức xám ( lấy đạo hàm bậc 2 ) mà không quan tâm đến hướng của biên.
Thuật toán này được thực thi bằng cách sử dụng mặt nạ:

 c11 c12

c   c21 c22
c
 31 c32

c13   1 1 1
 

c23    1 8 1 cho liên kết 8
c33   1 1 1

21


 c11

c   c21
c
 31

c12
c22
c32

c13   0 1 0 

 

c23    1 4 1 
c33   0 1 0 

a) Ảnh gốc

cho liên kết 4

b) Kết quả dò biên
Hình 1.6 : Kết quả thuật toán dò biên

Phân ngưỡng, phân vùng và nhị phân hóa ảnh số: Ảnh sau quá trình tiền
xử lý, nâng cấp, để tới những quá trình xử lý cao hơn cần được nhị phân hóa,
phân vùng thành các đối tượng riêng biệt.
Tìm ngưỡng : đây là quá trình tìm ra ngưỡng của một ảnh để thực hiện
việc phân vùng. Ngưỡng đóng vai trò quyết định quá trình nhị phân hóa ảnh
số có hiệu quả hay không. Nếu chọn ngưỡng không tốt, sẽ bỏ qua một số đối
tượng, hoặc cho đối tượng với kích thước, vị trí không đúng, hoặc tệ hơn là
làm các đối tượng không phân biệt được với nhau.
Có nhiều thuật toán tìm ngưỡng, cho kết quả khác nhau : Trong đó điển
hình là tìm ngưỡng trung bình và tìm ngưỡng theo histogram.
Tìm ngưỡng trung bình, ngưỡng được tính theo công thức:

22


1 n m
I tb 
 I (i, j )

n.m i 1 j 1
I ng  I tb  
n x m - kích thước ảnh

Itb , I ng , 

- mức xám trung bình, giá trị ngưỡng và số gia hiệu chỉnh.

Tìm ngưỡng theo histogram: là phương pháp tìm ngưỡng dựa theo lược
đồ xám.

Hình 1.7 : Phân ngưỡng theo lược đồ xám

Ngưỡng tìm được theo công thức:


I max2

I ng =( I max1 + I max2 )/2. Trong đó I max1

là 2 mức xám tương ứng cực đại trên histogram.

Phân vùng và nhị phân hóa ảnh số: sau khi tìm ngưỡng, ta có thể nhị
phân hóa ảnh số và tách các đối tượng. Trong ảnh xám ban đầu, ta coi đối
tượng là những vùng ảnh có mức xám thấp, nền là vùng ảnh có mức xám
cao. Ta có thể tách đối tượng ra bằng thuật toán phân ngưỡng:

23



Ta sẽ được đối tượng có màu đen( mức xám 1) và nền có màu trắng (mức
xám 0).
Xử lý đồng cấu ảnh nhị phân
Ảnh nhị phân thu được sau khi phân ngưỡng, phân vùng ảnh thành các
đối tượng, vẫn có thể chưa hoàn chỉnh để thực hiện các quá trình phân tích
tiếp theo. Đó là do trên ảnh vẫn có thể tồn tại các nhiễu là các chấm đen chưa
bị loại bỏ sau các thuật toán nâng cấp ảnh và lọc, hoặc do ngưỡng được chọn
chưa thực sự tốt để tách hoàn toàn các đối tượng. Để giải quyết vấn đề này, ta
sử dụng các thuật toán xử lý đồng cấu ảnh nhị phân (morphological
algorithms) .
Có 2 phương pháp xử lý tiêu biểu : Thuật toán làm đầy( dilation) và làm
mảnh (erosion).
2 phương pháp này đều sử dụng một cửa sổ- phần tử cấu trúc(structure
element) quét qua ảnh. Dựa trên việc phân tích cửa sổ này ta tính ra giá trị
của pixel trung tâm.
 Làm đầy (dilation)

I (i, j ) = 0 chỉ khi tất cả các pixel trong phần tử

cấu trúc có giá trị bằng 0 (cửa sổ nằm hoàn toàn bên ngoài đối
tượng)
 Làm mảnh (erosion)

I (i, j ) = 1 chỉ khi tất cả các pixel trong phần tử

cấu trúc có giá trị bằng 1 ( cửa sổ nằm hoàn toàn trong đối tượng )
Kết quả của quá trình làm mảnh là ảnh sẽ loại bỏ bớt được những nhiễu
nhỏ, đồng thời làm nhỏ bớt đối tượng, tách các đối tượng gần nhau ra. Để
khôi phục đối tượng trở lại như cũ, ta dùng thuật toán làm đầy. Sau quá trình
này các nhiễu đã bị loại bỏ sẽ không xuất hiện trở lại. Có thể loại bỏ hẳn các

nhiễu tương đối lớn bằng cách thực hiện nhiều lần thuật toán làm mảnh và
làm đầy. Tuy nhiên sau đó hình dạng đối tượng không được khôi phục hoàn
toàn như trước.

24


Hình 1.8 : Loại bỏ nhiễu và khôi phục đối tượng bằng quá trình làm mảnh-làm đầy.

Bài toán đánh nhãn đối tượng: với phương pháp xử lý đồng cấu ảnh nhị
phân, ta đã được 1 ảnh nhị phân với các đối tượng được tách ra rõ rệt, và loại
bỏ được các nhiễu. Để thực hiện việc xác định các đặc trưng hình học của đối
tượng, phục vụ cho hệ thống định vị và nhận dạng, cần phải phân biệt các
đối tượng (các vùng ảnh đen) với nhau bằng cách gán cho chúng các nhãn
khác nhau.
Thuật toán gán nhãn đối tượng cũng sử dụng một cửa sổ 3x3 chạy khắp
frame. Pixel trung tâm sẽ được kiểm tra để gán nhãn, và các pixel lân cận
được dùng để xác định nhãn mới cho pixel trung tâm. Thuật toán thực hiện
như sau:

25


×