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

Tính ma trận đồng hiện mức xám (glcm) ứng dụng phát hiện vùng đặc trưng ảnh

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.96 MB, 62 trang )

-

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC BÁCH KHOA
-------------------------

TỐNG LÊ MINH CHÂU

THIẾT KẾ IP
TÍNH MA TRẬN ĐỒNG HIỆN MỨC XÁM (GLCM) –
ỨNG DỤNG PHÁT HIỆN VÙNG ĐẶC TRƯNG ẢNH

Chuyên ngành: Kỹ thuật Điện Tử
Mã số:

60520203

LUẬN VĂN THẠC SĨ

TP. HỒ CHÍ MINH, tháng 06 năm 2017


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA –ĐHQG -HCM
Cán bộ hướng dẫn khoa học : TS Trương Công Dung Nghi
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 1 : TS. Nguyễn Minh Sơn
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Cán bộ chấm nhận xét 2 : PGS. TS Hoàng Trang
(Ghi rõ họ, tên, học hàm, học vị và chữ ký)
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp. HCM


ngày

tháng

năm 2017

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:
(Ghi rõ họ, tên, học hàm, học vị của Hội đồng chấm bảo vệ luận văn thạc sĩ)
1. TS. Trương Quang Vinh
2. TS. Trần Hoàng Linh
3. TS. Nguyễn Minh Sơn
4. PGS.TS Hoàng Trang
5. TS. Bùi Trọng Tú
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên
ngành sau khi luận văn đã được sửa chữa (nếu có).
CHỦ TỊCH HỘI ĐỒNG

TRƯỞNG KHOA ĐIỆN-ĐIỆN TỬ


ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH

CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Độc lập – Tự do – Hạnh phúc.

NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: TỐNG LÊ MINH CHÂU


MSHV: 7140941

Ngày, tháng, năm sinh: 19/01/1991

Nơi sinh: Khánh Hòa

Chuyên ngành: Kỹ Thuật Điện Tử

Mã số: 60520203

I.

TÊN ĐỀ TÀI: THIẾT KẾ IP TÍNH MA TRẬN ĐỒNG HIỆN MỨC XÁM (GLCM)
– ỨNG DỤNG PHÁT HIỆN VÙNG ĐẶC TRƯNG ẢNH

II.

NHIỆM VỤ VÀ NỘI DUNG:
1. Xây dựng hệ thống tính toán GLCM trên nền FPGA.
2. Ứng dụng phát hiện vùng đặc trưng ảnh

III.

NGÀY GIAO NHIỆM VỤ:

IV.

NGÀY HOÀN THÀNH NHIỆM VỤ: 17/06/2017


V.

11/06/2016

CÁN BỘ HƯỚNG DẪN: TS. Trương Công Dung Nghi

Tp. HCM, ngày tháng năm 2017
CÁN BỘ HƯỚNG DẪN

CHỦ NHIỆM BỘ MÔN ĐÀO TẠO

(Họ tên và chữ ký)

(Họ tên và chữ ký)

TRƯỞNG KHOA ĐIỆN ĐIỆN TỬ
(Họ tên và chữ ký)


-1LỜI CẢM ƠN
Trong quá trình làm luận văn vừa qua, được sự giúp đỡ và chỉ bảo nhiệt tình của
TS Trương Công Dung Nghi – Bộ môn điện tử – ngành Điện tử Viễn thông – Đại học
Bách Khoa thành phố Hồ Chí Minh luận văn của em đã được hoàn thành. Măc dù đã cố
gắng cùng với sự tận tâm của thầy hướng dẫn song do thời gian và khả năng vẫn cịn
nhiều hạn chế nên luận văn khơng tránh khỏi những thiếu sót.
Em xin bày tỏ lịng biết ơn sâu sắc tới cô TS Trương Công Dung Nghi đã tận tình
hướng dẫn, chỉ bảo và dành rất nhiều thời gian quí báu của cô cho em trong thời gian
qua, đã giúp em hoàn thành bài luận văn đúng thời hạn. Em xin gửi lời cảm ơn đến Ban
Giám hiệu, các Thầy cô giáo của Trường Đại học Bách Khoa thành phố Hồ Chí Minh,
các Thầy cô bộ môn, đã giảng dạy cung cấp, trang bị cho chúng em những kiến thức

chuyên ngành, chuyên môn chuyên sâu trong suốt hai năm qua.
Xin cảm ơn gia đình và bạn bè đã động viên cổ vũ em trong suốt quá trình học
tập cũng như thời gian làm luận văn, đã giúp em hồn thành khóa học, luận văn theo qui
định.
Tp. Hồ Chí Minh, ngày 14 tháng 07 năm 2017
Học viên
Tống Lê Minh Châu

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-2TÓM TẮT LUẬN VĂN
Luận văn thực hiện IP (Intellectual property) tính ma trận đồng hiện mức xám
(GLCM) trên nền FPGA. Q trình tính tốn được thực hiện cho từng ảnh con kích thước
32x32, giá trị mức xám mã hóa 8 bit từ 0 đến 255. Quá thực được thực hiện tuần tự cho
từng ảnh con đến khi kết thúc ảnh mức xám đầu vào. Kết quả ma trận GLCM đầu ra sẽ
phụ thuộc vào 3 thơng số cấu hình khoảng cách d giữa 2 điểm ảnh cần xét (có 4 giá trị
1, 2, 3, 4), góc theta giữa 2 điểm ảnh (có 4 giá trị 0o, 45o, 90o, 135o), kích thước ma trận
GLCM đầu ra (có 4 kích thước 8x8, 16x16, 32x32, 64x64). Kết hợp với việc phân đoạn
vùng ảnh đặc trưng cho từng khối ảnh con đầu vào dựa trên kết quả tính tốn GLCM
trước đó. Ngồi ra luận văn cịn thực hiện tính tốn từ nhiều ảnh mức xám đầu vào với
các kích thước và giá trị mức xám khác nhau để đưa ra một đánh giá chung cho kết quả
thực hiện.
Luận văn xây dựng một hệ thống tính toán GLCM thực hiện trên board DE2-115 kết
hợp với phần mềm Matlab trên máy tính thông qua kết nối truyền nhận dữ liệu UART,
sử dụng ngôn ngữ Verilog HDL. Bên cạnh đó luận văn cũng tìm hiểu cách thực hiện
trích xuất các thông tin thống kê từ ma trận đồng hiện mức xám (GLCM).


Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là kết quả nghiên cứu của tôi, không sao chép của ai.
Nội dung luận văn có tham khảo và sử dụng các tài liệu liên quan, các thông tin trong tài
liệu được đăng tải trên các tạp chí và các trang website theo danh mục tài liệu của luận
văn.
Tp. Hồ Chí Minh, ngày 14 tháng 07 năm 2017

Học viên
Tống Lê Minh Châu

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-4-

MỤC LỤC
MỤC LỤC ................................................................................................................... 4
DANH MỤC HÌNH..................................................................................................... 7
DANH MỤC BẢNG BIỂU ......................................................................................... 8
Chương 1 TỔNG QUAN ............................................................................................. 9
1.1. Tổng quan ...................................................................................................... 9
1.2. Tình hình nghiên cứu trong và ngồi nước.....................................................11
1.3. Nhiệm vụ luận văn.........................................................................................11

1.4. Tóm tắt nội dung luận văn .............................................................................11
Chương 2 CƠ SỞ LÝ THUYẾT .................................................................................13
2.1

Cơ sở về kết cấu (Texture) .............................................................................13

2.2

Ma trận đồng hiện mức xám (Gray Level Co-occurrence Matrix - GLCM) ...14

2.2.1

Cấu trúc GLCM ......................................................................................14

2.2.2

Một số đặc tính thống kê trích xuất từ GLCM .........................................17

2.3

Sơ đồ thực hiện phần cứng tham khảo ...........................................................18

2.4

Lưu đồ thực hiện giải thuật tính GLCM .........................................................19

Chương 3 THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG .............................................20
3.1

Mơ hình thực hiện .........................................................................................20


3.2

FPGA board ..................................................................................................21

3.3

Cấu trúc RTL.................................................................................................21

3.3.1

Tần số hoạt động .....................................................................................22

3.3.2

UART .....................................................................................................22

3.3.3

GLCM Interface ......................................................................................23

3.3.4

GLCM process ........................................................................................24

3.3.5

GLCM buffer image................................................................................26

3.3.6


Gray control read ....................................................................................27

3.3.7

GLCM normalize ....................................................................................28

3.3.8

GLCM result ...........................................................................................30

3.4

Môi trường kiểm tra thiết kế và tổng hợp thiết kế ..........................................33

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-53.5

Môi trường kiểm tra GLCM process ..............................................................34

3.5.1

Cấu trúc ..................................................................................................34

3.5.2


Shell script ..............................................................................................34

3.5.3

Testbench ................................................................................................36

3.6

Môi trường kiểm tra hệ thống (UART, GLCM process) ................................36

3.6.1

Cấu trúc ..................................................................................................37

3.6.2

Shell script ..............................................................................................37

3.6.3

Testcase ..................................................................................................37

3.6.4

Testbench ................................................................................................38

Chương 4 THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM ...............................................39
4.1

Giao diện Matlab UIs ....................................................................................39


4.2

Kiểm tra kết nối Host (Matlab) – UART – Control Panel ..............................41

4.2.1

Control panel ..........................................................................................41

4.2.2

Kiểm tra nhận cổng giao tiếp kết nối, thực hiện truyền nhận dữ liệu .......42

4.2.3

Kết quả đầu ra .........................................................................................43

Chương 5 KẾT QUẢ VÀ ĐÁNH GIÁ .......................................................................44
5.1

Kết quả thực hiện...........................................................................................44

5.1.1

Quy trình kiểm tra ...................................................................................44

5.1.2

Kiểm tra GLCM process .........................................................................44


5.1.3

Kiểm tra hệ thống phần cứng ..................................................................46

5.1.4

Kiểm tra phần mềm và kết nối ................................................................49

5.1.5

Kiểm tra toàn bộ hệ thống: phần cứng kết nối phần mềm ........................49

5.2

Đánh giá ........................................................................................................54

Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..................................................55
6.1

Kết luận .........................................................................................................55

6.2

Mặt hạn chế ...................................................................................................55

6.2.1

Giao tiếp UART và mở rộng ma trận GLCM kết quả ..............................55

6.2.2


Phần mềm (Matlab, giao tiếp UART) ......................................................55

6.2.3

Phần cứng (FPGA) ..................................................................................56

6.3

Hướng phát triển............................................................................................56

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-66.3.1

Xây dựng hệ thống tính toán GLCM tối ưu hơn ......................................56

6.3.2 Thực hiện tính toán, đánh giá các vùng ảnh đặc trưng trong các hệ thống
xử lý hình ảnh .....................................................................................................57
Chương 7 TÀI LIỆU THAM KHẢO ..........................................................................58

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-7-


DANH MỤC HÌNH
Hình 1 Các góc tính tốn ứng với khoảng cách giữa 2 điểm ảnh d = 5 .......................15
Hình 2 Ma trận mức xám tương quan P(i,j) tạo từ ảnh gốc với (d, θ) =(1,0) ...............15
Hình 3 Ảnh mức xám đầu vào và cường độ mức xám của nó .....................................16
Hình 4 Sơ đồ thực hiện GLCM tham khảo ..................................................................18
Hình 5 Lưu đồ thực hiện giải thuật GLCM .................................................................19
Hình 6 Lưu đồ giải thuật .............................................................................................20
Hình 7 Sơ đồ khối GLCM...........................................................................................22
Hình 8 Sơ đồ khối của GLCM Process .......................................................................24
Hình 9 Sơ đồ khối của miền ghi dữ liệu ......................................................................26
Hình 10 Sơ đồ khối của miền đọc dữ liệu ...................................................................26
Hình 11 Testbench của hệ thống .................................................................................38
Hình 12 Hình ảnh khởi động của Matlab UIs ..............................................................40
Hình 13 Sơ đồ khối kiểm tra của từng khối .................................................................40
Hình 14 Giao diện của chương trình ...........................................................................41
Hình 15 Giao diện Control Panel ................................................................................42
Hình 16 Hình ảnh truyền ảnh con và đọc GLCM kết quả từ GLCM IP .......................45
Hình 17 Hình ảnh ghi một ảnh con vào khối GLCM IP ..............................................45
Hình 18 Hình ảnh một GLCM kết quả .......................................................................46
Hình 19 Hình ảnh đọc các giá trị GLCM kêt quả cuối cùng từ GLCM IP ...................46
Hình 20 Hinh ảnh resource RAM và LE .....................................................................47
Hình 21 Tốc độ xung clock tối đa của hệ thống ..........................................................47
Hình 22 Sơ đồ khối thực hiện tồn hệ thống GLCM IP ...............................................48
Hình 23 Hình ảnh gửi và nhận giữa host và FPGA trên Control Panel ........................49
Hình 24 Kết quả GLCM 8x8.......................................................................................50
Hình 25 Kết quả GLCM 16x16 ...................................................................................50
Hình 26 Kết quả GLCM 32x32 ...................................................................................51
Hình 27 Kết quả GLCM 64x64 ...................................................................................51


Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-8-

DANH MỤC BẢNG BIỂU
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng
Bảng

1 Cấu trúc mã hóa dữ liệu truyền từ Host đến GLCM IP...................................23
2 Cáu trúc mã hóa dữ liệu truyền từ GLCM IP đến Host...................................23
3 Ví dụ dữ liệu của ảnh con 3x3 .......................................................................27

4 Ví dụ về cấu trúc lưu dữ liệu của ảnh mức xám .............................................27
5 Các thông số dung lượng RAM cần dùng để lưu trữ ......................................29
6 Các vùng RAM được sử dụng trong GLCM kết quả ......................................29
7 Thời gian thực hiện tính toán GLCM cho các ảnh con khác nhau ..................30
8 Bảng tính toán thời gian xử lý cho các độ phân giải của một sô chuẩn video .32
9 Cấu trúc thư mục file compile ........................................................................34
10 Hình ảnh compile các RTL file trong thiết kế ..............................................35
11 Sơ đồ khối của testbench GLCM process .....................................................36
12 Cấu trúc thư mục chứa các file trong mô phỏng ...........................................37
13 Bảng thứ tự kiểm tra matlab .........................................................................43
14 Trình tự kiểm tra hệ thống ...........................................................................44
15 Các tín hiệu cảnh báo của khối UART .........................................................53
16 Các tín hiệu cảnh báo của khối GLCM IP ....................................................53
17 Các giá trị cấu hình thực tế trên board DE2-115...........................................53
18 Các chế độ truyền/ nhận của GLCM IP ........................................................54

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-9-

Chương 1

TỔNG QUAN

1.1. Tổng quan
Phân vùng ảnh là một bước quan trọng trong nhiều lĩnh vực khác nhau như lĩnh
vực hình ảnh y tế (medical imaging), phát hiện và nhận dạng đối tượng, hệ

thống camera giám sát, hệ thống điều khiển giao thông… Kỹ thuật này là bước tiền xử
lý quan trọng trong hầu hết các hệ thống xử lý ảnh, kết quả phân vùng tốt sẽ giúp cho
quá trình xử lý về sau đạt hiệu quả cao hơn nhằm tiết kiệm về chi phí tính toán, thời gian
cũng như tăng độ chính xác của các ứng dụng trên.
Trong lĩnh vực nhận dạng đối tượng, quá trình phân vùng ảnh sẽ tách đối tượng
ra khỏi vùng nền. Đối tượng ở đây có thể là con người hoặc một vật gì đó chuyển động
thuộc vùng tiền cảnh (Fg). Đối tượng sau khi được tách ra trong q trình phân vùng có
thể được xử lý trong các hệ thống như đếm số lượng người ra vào, nhận dạng cử chỉ tay,
nhận dạng khn mặt.
Trong lĩnh vực camera giám sát, q trình phân vùng ảnh có thể ứng dụng trong
việc xác định, giám sát đối tượng đi vào vùng giám sát, cảnh báo chuyển động khi đối
tượng di chuyển vào vùng giám sát.
Trong lĩnh vực hình ảnh y tế, các kỹ thuật hình ảnh y tế như chụp CT, chụp MRI,
chụp X-quang, USG ( Ultrasound), khơng thể thiếu để có thể phân tích chính xác nhiều
bệnh lý khác nhau, qua đó đã hộ trợ đáng kể bác sĩ trong việc chẩn đoán bệnh. Trong
q trình phân tích, người chẩn đốn cần phân trích xuất các đường biên cần thiết, các
bề mặt hoặc các bộ phận cơ thể ra khỏi bức hình, kỹ thuật này được gọi là phân vùng
(segmentation). Tuy nhiên, quá trình phân vùng thủ công là rất tốn thời gian và có thể
khơng cho kết quả tốt. Các phân vùng và đường biên này là rất quan trọng đối với các
bác sĩ. Chính vì vậy, trong vài thập kỷ qua, nhiều thuật toán phân vùng ảnh y tế được đề
xuất nhằm tăng độ chính xác trong quá trình phân vùng ảnh.
Trong những năm gần đây, cùng với sự phát triển vượt bậc của khoa học máy
tính, thì xử lý ảnh là một là một lĩnh vực đang được quan tâm. Nó là một ngành khoa
học còn tương đối mới mẻ so với nhiều ngành khoa học khác, nó cũng là đối tượng
nghiên cứu lĩnh vực thị giác máy tính, là quá trình biến đổi ảnh từ một ảnh ban đầu sang
một ảnh mới. Nhờ có cơng nghệ số hố hiện đại, ngày nay con người đã có thể xử lý tín
hiệu nhiều chiều thông qua nhiều hệ thống khác nhau, từ những mạch số đơn giản cho
đến những mạch song song cao cấp. xử lý ảnh đã được nghiên cứu mạnh mẽ và đã có
nhiều ứng dụng trong thực tế: như trong y học, xử lý ảnh để phát hiện và nhận dạng khối
u, cải thiện ảnh X quang, nhận dạng đường biên mạch máu từ những ảnh chụp bằng tia

X; Trong cuộc sống gia đình, xử lý ảnh được dùng để cải thiện ảnh tivi…
Xử lý ảnh có liên quan đến nhiều ngành khác như: hệ thống thông tin, lý thuyết
thông tin, lý thuyết thống kê, trí tuệ nhân tạo, nhận dạng…

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-10Xử lý ảnh cũng đã tạo ra được rất nhiều ứng dụng hữu ích trong thực tế như: bài
toán nhận dạng vân tay, chữ viết, giọng nói…
Để phân tích các đối tượng trong ảnh, chúng ta cần phải phân biệt được các đối
tượng cần quan tâm với phần còn lại của ảnh. Những đối tượng này có thể tìm ra được
nhờ các kỹ thuật phân đoạn ảnh, theo nghĩa tách phần tiền cảnh ra khỏi hậu cảnh trong
ảnh. Chúng ta cần phải hiểu được là:
- Khơng có kỹ thuật phân đoạn chung cho tất cả các hình ảnh, có thể phương pháp
này phân đoạn tốt trong một số trường hợp, có thể phương pháp kia lại tốt hơn trong các
trường hợp khác.
- Các kỹ thuật phân đoạn ảnh sẽ dựa trên các tính chất khác nhau của ảnh để phân
đoạn và tổng hợp thành một cơ sở dữ liệu cho tập ảnh đó.
Có thể hiểu phân vùng là tiến trình chia ảnh thành nhiều vùng, mỗi vùng chứa
một đối tượng hay nhóm đối tượng cùng kiểu. Chẳng hạn, một đối tượng có thể là một
kí tự trên một trang văn bản hoặc một đoạn thẳng trong một bản vẽ kỹ thuật hoặc một
nhóm các đối tượng có thể biểu diễn một từ hay hay đoạn thẳng tiếp xúc nhau.
Phân vùng ảnh còn là một thao tác ở mức thấp trong tồn bộ q trình xử lý ảnh.
Q trình này thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồng nhất với
nhau hay nói cách khác là xác định các biên của các vùng ảnh đó. Các vùng ảnh đồng
nhất này thơng thường sẽ tương ứng với tịan bộ hay từng phần của các đối tượng thật
sự bên trong ảnh. Vì thế, trong hầu hết các ứng dụng của lĩnh vực xử lý ảnh (image
processing), thị giác máy tính, phân vùng ảnh ln đóng một vai trị cơ bản và thường là

bước tiền xử lý đầu tiên trong tồn bộ q trình trước khi thực hiện các thao tác khác ở
mức cao hơn như nhận dạng đối tượng, biểu diễn đối tượng, nén ảnh dựa trên đối tượng,
hay truy vấn ảnh dựa vào nội dung …
Để có những thao tác chuyên sâu phân vùng ảnh, người ta thường bắt đầu từ phân
tích kết cấu ảnh, tìm ra những vùng đặc trưng trong các hình ảnh thu thập, từ đó tạo cơ
sở dữ liệu cho các phân tích, đánh giá chuyên sâu hơn. Một công cụ thực hiện tốt trong
lĩnh vực phân tích kết cấu ảnh đó là phân tích ảnh mức xám từ các ma trận đồng hiện
mức xám (Gray Level Co-occurence Matrix), việc thực hiện xây dựng các GLCM hiện
nay có thể thực hiện dễ dàng trên phần mềm (như Matlab), nhưng để tính toán một các
nhanh chóng, chính xác, tích hợp vào các hệ thống xử lý ảnh chuyên dụng thì vẫn chưa
thực sự phổ biến.
Đề tài nghiên cứu này tập trung vào việc hiện thực hóa khả năng thực hiện phần
cứng tính ma trận đồng hiện mức xám (GLCM) và khả năng mở rộng hệ thống (tốc độ,
dữ liệu) trên nền FPGA, nhằm ứng dụng vào trong hệ thống xử lý ảnh một cách nhanh
chóng, chính xác.

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-111.2. Tình hình nghiên cứu trong và ngồi nước
Việc xây dựng các hệ thống tính tốn GLCM đã có từ những thập niên trước và
không ngừng phát triển. Tuy nhiên các hệ thống thường thể hiện dưới góc độ phần
mềm (Software). Ở dạng phần cứng, nó được thực hiện qua các đề tài nghiên cứu khác
nhưng yêu cầu thực hiện tương đối ít phức tạp hơn. [1]
1.3. Nhiệm vụ luận văn
Nhiệm vụ chính của luận văn là nghiên cứu cách tính ma trận đồng hiện mức xám và
hiện thực giải thuật này trên FPGA. Quá trình thực hiện để đạt được mục tiêu này có thể
tóm tắt trong năm bước chính như sau:

 Nghiên cứu giải thuật: giới thiệu đặc tính của ma trận đồng hiện mức xám,
cách thống kê các giá trị mức xám theo các hướng.
 Từ cơ sở lý thuyết trên, đề tài làm rõ việc cải tiến giải thuật nhằm thích
ứng phần cứng, ứng dụng thuật tốn tính tốn vào FPGA,
 Xây dựng mơi trường kiểm tra tính đúng đắn của thiết kế bằng testbench,
testcases, scripts và các phần mềm mô phỏng
 Xây dựng phần mềm, hiện thực hóa giải thuật bằng ứng dụng xác định
vùng đặc trưng ảnh bằng cách kết hợp chặt chẽ phần cứng (FPGA) và phần
mềm (Matlab) sử dụng giao thức truyền – nhận UART: người dùng (User)
sử dụng Host (PC) nhập một hình ảnh để phần cứng thực hiện tính tốn
GLCM, sau đó nhận kết quả của GLCM sau khi thực hiện, trả về thông
qua giao tiếp UART.
Những hạn chế đề tài Luận văn chưa thực hiện được :
 Phần cứng: Kit thực hiện là DE2-115, chịu giới hạn về dung lượng bộ nhớ
và logic element nên kích thước ảnh con cho một chu kì xử lý là 32x32
điểm ảnh, kích thước GLCM giới hạn trong bốn giá trị 8x8, 16x16, 32x32,
64x64.
 Giao tiếp UART: hạn chế phần dữ liệu làm cho tiêu tốn nhiều thời gian
hơn cho việc truyền nhận các giá trị thơng tin của điểm ảnh.
1.4. Tóm tắt nội dung luận văn
Nội dung của luận văn được chia thành sáu chương như sau
 Chương 1 – GIỚI THIỆU: Giới thiệu tổng quan đề tài, tính thực tiễn và sơ
lược về hướng tiếp cận của luận văn bằng giải thuật tính ma trận đồng hiện
mức xám (GLCM).

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi



-12 Chương 2 – CƠ SỞ LÝ THUYẾT: trình bày có nguyên tắc xậy dựng ma
trận đồng hiện mức xám, các thơng tin thống kê có thể trích xuất từ ma
trận này.
 Chương 3 – THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG : trình bày cụ thể
cấu trúc phần cứng IP của GLCM, các engines, nguyên tắc hoạt động, phân
bố tài nguyên, cách thức thực hiện IP trên board DE2-115.
 Chương 4 – THIẾT KẾ VÀ THỰC HIỆN PHÀN MỀM : trình bày giao
diện GUI Matlab và và giao tiếp UART với phần cứng.
 Chương 5 – KẾT QUẢ VÀ ĐÁNH GIÁ: trình bày kết quả đạt được, minh
chứng hoạt động của thuật toán trên phần cứng, bao gồm hai bước chính
o Kết quả kiểm tra bằng chương trình mơ phỏng Quartus, VCS
o Thực hiện hồn chỉnh mơ hình ứng dụng tìm kiếm văn bản: HOST
– Matlab – UART – FPGA
 Chương 6 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: đúc kết thành quả
cũng như hạn chế của phương pháp, hướng tiếp cận, đồng thời đề ra gợi ý
hướng phát triển cho nghiên cứu tiếp theo
Ngồi ra cịn hai mục liên quan tới tài liệu tham khảo, phụ lục bao gồm những hình
chụp dạng sóng trong q trình kiểm tra.

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-13-

Chương 2

CƠ SỞ LÝ THUYẾT


2.1 Cơ sở về kết cấu (Texture)
Kết cấu (Texture) đóng một vai trị quan trọng trong nhiều công việc của thị giác
máy tính như kiểm tra bề mặt, phân loại cảnh, và định hướng bề mặt và xác định hình
dạng. Ví dụ, các tính năng kết cấu bề mặt được sử dụng trong việc kiểm tra các tấm bán
dẫn, các tính năng phân bố mức xám của các vùng kết cấu đồng nhất được sử dụng trong
phân loại hình ảnh trên khơng và các biến thể trong các mẫu kết cấu do phép chiếu phối
cảnh được sử dụng để xác định hình ảnh ba chiều của các đối tượng.
Kết cấu được đặc trưng bởi sự phân bố không gian của các mức màu xám trong
một vùng lân cận. Vì vậy, kết cấu khơng thể được xác định cho một điểm. Ví dụ, khi
quan sát hình ảnh của một sàn lát gạch từ một khoảng cách lớn, chúng tơi quan sát cấu
trúc được hình thành bằng cách đặt các viên gạch, nhưng các viên gạch trong các tấm lát
không nhận thức được điều này. Khi cùng một cảnh được quan sát từ một khoảng cách
gần hơn, do chỉ có một vài viên gạch nằm trong khu vực được xem xét nên chúng ta bắt
đầu nhận ra các kết cấu được hình thành bởi các vị trí của các mẫu chi tiết. Với mục đích
của chúng tôi, chúng ta có thể định nghĩa kết cấu là các mẫu lặp lại các biến thể địa
phương về cường độ ảnh để phân biệt các đối tượng riêng biệt ở cùng một độ phân giải
được quan sát. Do đó, một tập kết nối các điểm ảnh thỏa mãn một thuộc tính mức xám
nhất định xảy ra nhiều lần trong vùng ảnh tạo thành vùng kết cấu. Một ví dụ đơn giản là
một mẫu lặp lại các dấu chấm đen trên nền trắng hay văn bản được in trên giấy trắng
cũng tạo thành kết cấu. Ở đây, mỗi mức nguyên thủy mức xám được tạo thành bởi việc
kết nối các tập hợp các điểm ảnh đại diện cho mỗi đối tượng. Quá trình đặt các đặt tính
lên trên hệ thống và đặt các hệ thống thực hiện tuần tự như trang viết này là một kết cấu
có trật tự. Có ba vấn đề chính trong phân tích kết cấu: phân loại kết cấu, phân đoạn kết
cấu, và phục hồi hình dạng từ kết cấu.
Trong phân loại kết cấu, vấn đề là xác định vùng kết cấu đã cho từ một tập các lớp
kết cấu nhất định. Ví dụ: một khu vực cụ thể trong hình ảnh trên khơng có thể thuộc về
đất nông nghiệp, khu vực rừng hoặc khu vực thành thị. Mỗi khu vực này có đặc tính kết
cấu độc đáo. Các thuật toán phân tích kết cấu trích xuất các tính năng phân biệt từ mỗi
vùng để tạo điều kiện phân loại các mơ hình như vậy. Ngụ ý ở đây là giả định rằng ranh
giới giữa các khu vực đã được xác định. Các phương pháp thống kê được sử dụng rộng

rãi trong phân loại kết cấu. Các thuộc tính như sự xuất hiện đồng thời cấp độ xám, tương
phản, entropy và tính đồng nhất được tính từ các mức xám để phân loại.Trong những
phương pháp này một mô hình kết cấu được giả định đầu tiên và các thơng số của nó
làm chuẩn cho các mơ hình kết cấu học tập. Sau đó, các vùng ảnh khác được ước lượng

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-14và sử dụng mơ hình gần giống với vùng ảnh đầu vào ban đầu. Các thông số này sẽ hữu
ích như tính phân biệt để phân loại khu vực.
Trái ngược với phân loại kết cấu, nhãn lớp của một vùng đơn nhất được xác định
bằng cách sử dụng các thuộc tính được tính từ vùng đó, việc lấy mẫu kết cấu liên quan
đến việc tự động xác định ranh giới giữa các vùng văn bản khác nhau trong một hình
ảnh. Mặc dù các phép đo kết cấu là định lượng, một khi được xác định, rất có ích trong
phân đoạn, hầu hết các phương pháp thống kê để xác định các tính chất kết cấu không
cung cấp các phép đo chính xác trừ phi tính toán được giới hạn trong một vùng kết cấu
đơn. Cả hai phương pháp dựa trên vùng và các phương pháp dựa trên ranh giới đã cố
gắng để phân đoạn hình ảnh kết cấu. Những phương pháp này tương tự như những
phương pháp được sử dụng cho các phương pháp tách đối tượng.
Phân tích cấu trúc là lĩnh vực hoạt động tích cực của nghiên cứu, và nhiều phương
pháp, được thiết kế cho một ứng dụng cụ thể, đã được đề xuất trong tài liệu. Tuy nhiên,
khơng có phương pháp chung nào hữu ích trong nhiều tình huống khác nhau.[2]
2.2 Ma trận đồng hiện mức xám (Gray Level Co-occurrence Matrix - GLCM)
Do cấu trúc là thuộc tính không gian nên biểu đồ histogram một chiều không hữu
ích trong việc mô tả cấu trúc (ví dụ: một hình ảnh trong đó các điểm ảnh thay đổi từ đen
sang trắng trong một mặt bàn cờ sẽ có biểu đồ histogram tương tự như hình ảnh trong đó
nửa trên Là màu đen và nửa dưới là màu trắng). Để nắm bắt sự phụ thuộc không gian
của các giá trị cấp độ xám góp phần nhận thức về kết cấu, một ma trận phụ thuộc hai

chiều được gọi là ma trận đồng hiện mức xám được sử dụng rộng rãi trong phân tích cấu
trúc.
2.2.1 Cấu trúc GLCM
GLCM là một ma trận chứa đựng số lần xuất hiện của 2 mức xám trong tất cả các
cặp mức xám của một hình ảnh. Cột và hàng của GLCM là giá trị mức xám của điểm
ảnh đang xét và điểm ảnh đáp ứng theo khơng gian và khoảng cách tương ứng. Do đó,
kích thước của GLCM bằng với giá trị mức xám được biểu diễn của hình ảnh. GLCM
có 2 thơng số để tính toán ma trận là khoảng cách giữa các điểm ảnh d và góc của điểm
ảnh lân cận 𝜃.[3]

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-15-

𝜃= 135o

𝑑= 5

𝜃= 90o

𝜃= 45o

𝜃= 0o

Hình 1 Các góc tính toán ứng với khoảng cách giữa 2 điểm ảnh d = 5

Ví dụ: Ma trận mức xám tương quan tạo thành từ hình ảnh gốc với 8 giá trị mức

xám và khoảng cách d= 1, 𝜃 = 0o. Tương tự cho các góc cịn lại. [4]
Trong giới hạn đề tài, thiết kế chọn bốn hướng chính cho việc so sánh các cặp

Hình 2 Ma trận mức xám tương quan P(i,j) tạo từ ảnh gốc với (d, θ) =(1,0)

giá trị mức xám để thực hiện tính tốn GLCM đó là 0o, 45o, 90o, 135o, kích thước ảnh
con đầu vào là 32x32 điểm ảnh với giá trị mức xám của mỗi điểm ảnh là từ 0 đến 255,
khoảng cách d tính toán cho các cặp điểm ảnh sẽ lần lượt là 1, 2, 3, 4; cuối cùng, kích
thước GLCM đầu ra sẽ có bốn giá trị là 8x8, 16x16, 32x32, 64x64.

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-16Hình ảnh bên dưới là ví dụ về một ảnh con đầu vào kích thước 4x4, với các giá
trị quy đinh về hàng, cột, mức xám cho từng điểm ảnh.

Hình 3 Ảnh mức xám đầu vào và cường độ mức xám của nó

Các GLCM của các hướng được tính tốn cho ma trận trên như sau:
1

2

3

4

1


2

3

4

1

0

2

1

0

1

0

0

2

0

2

1


0

2

1

2

0

1

2

0

3

1

1

1

1

3

2


1

0

1

4

0

1

0

4

0

0

0

0

GLCM cho 0

GLCM cho 45

1


2

3

4

1

2

3

4

1

2

1

1

0

1

0

1


0

1

2

1

0

1

1

2

1

1

0

0

3

0

2


2

0

3

1

1

2

0

4

1

0

0

0

4

0

0


1

0

GLCM cho 90

Thiết kế IP tính GLCM

GLCM cho 135

GVHD: T.S Trương Công Dung Nghi


-172.2.2 Một sớ đặc tính thớng kê trích xuất từ GLCM
Haralick đã đăng kí 14 thông tin thống kê được trích xuất từ ma trận đồng hiện
mức xám, các thông tin này sẽ được sử dụng trong phân tích kết cấu của hình ảnh. [5]
Một số thống kê được tính toán dựa trên ma trận đồng hiện mức xám như sau:
 Độ hỗn loạn (Entropy)
𝐸𝑛𝑡𝑟𝑜𝑝𝑦 = − ∑𝑖 ∑𝑗 𝑃[𝑖, 𝑗] log 𝑃[𝑖, 𝑗]
Giá trị entropy thể hiện mức độ hỗn loạn các giá trị mức xám của điểm ảnh theo
mức độ phân bố.
 Năng lượng (Energy)
𝐸𝑛𝑒𝑟𝑔𝑦 = ∑ ∑ 𝑃2 [𝑖, 𝑗]
𝑖

𝑗

Giá trị energy thể hiện tổng các giá trị bình phương trong GLCM
 Độ tương phản (Contrast)

𝐶𝑜𝑛𝑡𝑟𝑎𝑠𝑡 = ∑ ∑(𝑖 − 𝑗)2 𝑃[𝑖, 𝑗]
𝑖

𝑗

Giá trị contrast cho biết mức độ sai lệch cục bộ trong hình ảnh
 Tính đồng nhất (Homogeneity)
𝑃[𝑖, 𝑗]
Homogeneity = ∑ ∑
1 + |𝑖 − 𝑗|
𝑖

𝑗

Giá trị homogeneity thể hiện mức độ phân bố gần với đường chéo của GLCM.
Đề tài luận văn này tập trung vào vấn đề tính toán GLCM thực hiện trên FPGA
tích hợp thành một IP, để áp dụng cho các ứng dụng cụ thể của người dùng.

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-182.3 Sơ đồ thực hiện phần cứng tham khảo
Dưới đây là sơ đồ thực hiện phần cứng thực hiện tính tốn GLCM cho ảnh con đầu
vào có kích thước 8x8 và giá trị mức xám có giá trị từ 1 đến 8. Kết quả tính toán được
cập nhật vào RAM GLCM kết quả với kích thước 8x8.[1]

5 bit
Counter


FSM 1
(0 to 62)

AddressW
RAM (0 to
63)

FSM 3
(11 to 88)

AddressR
Data out

Data in
Binary
Counter
(IP Core)

Input
matrix
(IP Core
ROM)

Compare

Counter

Data in


5 bit
Counter

AddressW

RAM (0 to
63)

Data out
AddressR
FSM 2
(1 to 63)

RAM
(Update
Matrix)

Hình 4 Sơ đồ thực hiện GLCM tham khảo

Từ sơ đồ thực hiện trên, ta cải tiến các giá trị thông số tính toán của hệ thống như
sau:
 Ảnh con đầu vào kích thước 32x32 điểm ảnh với mức xám 8 bit từ 0 đến 255.
 Cho phép người dùng có thể thay đổi các máy trạng thái FSM1, FSM2 để có thể
tạo các GLCM với các góc theta, khoảng cách giữa 2 điểm ảnh, kích thước
GLCM đầu ra.
 Thay thế máy trạng thái FSM3 bằng một khối normalize.
 Kết quả thực hiện được lưu trữ vào RAM và truyền tới các khối sau.
 Xây dựng một hệ thống truyền nhận, kiểm tra việc thực hiện tính GLCM bằng
cách kết hợp phần cứng và phần mềm thông qua giao tiếp UART.


Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-192.4 Lưu đồ thực hiện giải thuật tính GLCM
Lưu đồ thực hiện giải thuật tính GLCM từ lý thuyết:

Bắt đầu

Nhận ảnh
con 32x32

Ghi ảnh con vào 2
RAM

S

Bật cờ báo cho phép
GLCM Interface đọc
GLCM kết quả

Nhận xong
ảnh con?

Count = 0

Đ
GLCM Interface đọc
giá trị tại địa chỉ

addr = count

Count = 0

Đọc các cặp địa chỉ RAM
tương ứng vị trí cặp điểm
ảnh theo giá trị cấu hình
glcm_dis, glcm_theta

Count = count + 1

Đọc giá trị tại addr
của RAM GLCM kết
quả

S

S

Glcm_size == 0
Chuẩn hóa các cặp giá trị
mức xám theo giá trị cấu
hình glcm_size

Cộng giá trị tại addr
lên 1 đơn vị rồi ghi
giá trị vào addr

S


S

Đ

S
Tắt cờ glcm_rdy,
nhận ảnh con tiếp
theo

Đ

Count == 64?

Đ

Count == 256?

Đ

Đ

Count == 1024?

Đ

Count == 4096?

Đ

S

Glcm_size == 1
S

Đ

Ghép cặp giá trị mức xám
chuẩn hóa thành một địa chỉ
RAM GLCM kết quả theo
dạng addr={value1,value2}

Count= Count + 1
Glcm_size == 2

Count < 1024

S

Hình 5 Lưu đờ thực hiện giải thuật GLCM

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-20-

Chương 3 THIẾT KẾ VÀ THỰC HIỆN PHẦN CỨNG
Chương này trình bày hiện thực giải thuật thực hiện tính tốn ma trận GLCM thông
qua IP trên FPGA, bao gồm, lưu đồ hệ thống, cấu trúc phần cứng, môi trường kiểm tra
(testbench, testcases, scripts, Simulation tools).

3.1 Mơ hình thực hiện

Bắt đầu

Từ Host
tới FPGA

Từ FPGA
tới Host

Người dùng chọn một hình ảnh cần
tính tốn GLCM
(kích thước bất kì)

UART controller nhận dữ liệu từ Host và
truyền qua GLCM process interface

Matlab nhận các frames truyền, tách, ghép
các thông số tương ứng mỗi điểm ảnh của
GLCM

Matlab chia hình ảnh thành các ảnh
con kích thước 32x32 điểm ảnh

Sau khi nhận xong tất cả các giá trị điểm
ảnh của một ảnh con 32x32 điểm ảnh,
GLCM process sẽ thực hiện tính tốn ma
trận GLCM theo các thơng số được cấu
hình qua các switch


Matlab chuyển các thơng số (vị trí
hàng, cột, giá trị mức xám) của mỗi
điểm ảnh thành 3 bytes

Mỗi byte được Matlab truyền qua
FPGA board theo UART protocol

Sau khi tính tốn xong, các giá trị kết quả
sẽ được đóng gói thành 4 frames (1 bytes/
frame) cho mỗi giá trị kết quả.

Mỗi frames sẽ được truyền tới Host thông
qua UART protocol

Matlab tái tạo lại ma trận GLCM từ FPGA
truyền về tương ứng với 1 ảnh con được
tính tốn

Matlab tiếp tục truyền các ảnh con cho
đến khi hết hình ảnh ban đầu

Matlab thực hiện kiểm tra các kết quả khi
tính tốn từ FPGA gửi về so với kết quả
tính tốn do Matlab thực hiện

Thông báo kết quả so sánh trên Matlab

Từ Host
tới FPGA


Từ FPGA
tới Host

Kết thúc

Hình 6 Lưu đờ giải thuật

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-21Lưu đồ giải thuật bao gồm 3 phần chính:
 Matlab thực hiện phân chia hình ảnh gốc thành các ảnh con, sau đó trùn
các giá trị thơng số của mỗi diểm ảnh (giá trị hàng, cột, mức xám) từ Host
(thông qua GUI tạo bởi matlab) bằng giao thức (protocol) UART tới FPGA.
 Các ảnh con sẽ được tính toán ma trận GLCM trên FPGA và thực hiện
truyền lại tới Host thông qua UART protocol.
 Kết quả nhận được từ FPGA sẽ được tổng hợp lại thành các thơng số hồn
chỉnh của một GLCM kết quả cho từng ảnh con thông qua Matlab.
3.2 FPGA board
Board DE2-115 là board mạch phục vụ cho việc nghiên cứu và phát triển các
lĩnh vực luận lý số học (digital logic), tổ chức máy tính (computer organization) và
FPGA, do đó nó cung cấp khá nhiều tính năng cũng như ngoại vi hỗ trợ, dưới đây là
thông tin các tính năng chi tiết của một board DE2-115 phục vụ trong đề tài luận văn
(Altera):
- FPGA: Vi mạch FPGA Altera Cyclone EP4CE115.
- Các thiết bị xuất nhập:
+ USB Blaster cho lập trình và điều khiển API người dùng, hỗ trợ cả hai
chế độ lập trình JTAG (Joint Test Action Group) và AS (Active Serial).

+ Cổng giao tiếp RS-232 và cổng nối 9-pin.
- Bộ nhớ: Up to 3.9 Mbits.
- Logic element (LEs): 114,480 LEs
- Switch, key, LCD, các đèn LED:
+ 4 key và 18 switch.
+ 18 LED đỏ, 8 LED xanh.
+ Bộ dao động 50MHz và bộ dao động ngoài
3.3 Cấu trúc RTL
Thiết kế được phân chia thành hai tiến trình Giao tiếp và Xử lý bằng hai miền độc
lập, kết nối với nhau bởi khối GLCM interface.
Phần giao tiếp, đề tài sử dụng UART với nhiều lựa chọn baud rates, song cơng (full
duplex) có nhiệm vụ trùn tải dữ liệu qua lại giữa Host (Matlab) – GLCM IP.
Phần xử lý gồm bốn phần chính, khối lưu ảnh con có kích thước 32x32 điểm ảnh;
khối đọc quét các cặp giá trị điểm ảnh tương ứng với các thông số cấu hình chi tiết
(khoảng cách d, góc theta); khối chuẩn hóa các giá trị mức xám tương ứng với GLCM
đầu ra; khối kết quả sẽ thực hiện tính toán giá trị GLCM tương ứng và lưu trữ kết quả
GLCM đầu ra để các module sau sử dụng kết quả hoặc gửi các giá trị này tới Host
(Matlab) thông qua UART.

Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


-22-

GLCM Control Read
(glcm_ctrlrd.v)

GLCM interface

(uart_wrapper.v)

GLCM Sub-image buffer
(glcm_iamgebuf.v)
GLCM normalize
(glcm_normalize.v)

UART
Controller
(uart_core.v)

UART TOP
(uart_top.v)

GLCM result
(glcm_result.v)

GLCM core
(glcm_process.v)

GLCM TOP
(glcm_top.v)
UART interface

SWITCH

LED status display

Host SW


Hình 7 Sơ đờ khối GLCM

3.3.1 Tần sớ hoạt động
Tồn bộ thiết kế hoạt động ở tần số f = 125Mhz.
3.3.2 UART
UART là từ viết tắc universal asynchronous receiver/transmitter là phương thức
truyền, nhận theo dạng song song (1 byte dữ liệu 8 bits) sang nối tiếp (1 bit) theo định
dạng cho trước.[6]
vị trí

1
start
bit
start
bit

2

3

4

5

6

7

8


9

data5

data6

data7

data bit (5-8)
data0

data1

data2

data3

data4

10
stop
bit
stop
bit

control bit
data bit

Luận văn cố định số lượng dữ liệu truyền là 8 bits và số stop bit là 1 bit, không
sử dụng control flow bit. Mặc định tốc độ Baudrate là 115200 bps (bit per second).


Thiết kế IP tính GLCM

GVHD: T.S Trương Công Dung Nghi


×