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

Bài tập lớn Hệ cơ sở dữ liệu đa phương tiện: Tìm hiểu các kỹ thuật xử lý và phân loại ảnh hoa đang hiện hà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.94 MB, 51 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG

BÁO CÁO BÀI TẬP LỚN
HỆ CƠ SỞ DỮ LIỆU ĐA PHƯƠNG TIỆN
THÀNH VIÊN NHÓM 08
HỌ VÀ TÊN : Nguyễn Như Tuấn

MSV : B17DCCN659

HỌ VÀ TÊN : Nguyễn Thị Dung

MSV : B17DCCN155

HỌ VÀ TÊN : Phạm Quốc Đạt

MSV

: B17DCCN118

GIẢNG VIÊN HƯỚNG DẪN: TS. Nguyễn Đình Hóa


Mục Lục

Câu 1: Đặc điểm của kho ảnh:

4

Câu 2: Kỹ thuật xử lý và phân loại ảnh hoa đang hiện hành

5



I. Kĩ thuật xử lý ảnh

5

1.Quá trình xử lý ảnh
Lọc trung bình - Median Filter

5
5

2.Đặc trưng của ảnh

6

3.Ảnh và biểu diễn ảnh:

6

II. Các phương pháp xử lý ảnh hiện nay

7

III. Kỹ thuật phân loại ảnh

8

1.Tìm hiểu về SVM

8


2.Tìm Hiểu về KNN

16

IV. Phương pháp rút trích đặc trưng hình ảnh HOG

18

Câu 3. Xây dựng hệ thống

23

V. Xây dựng hệ thống

23

1. Sơ đồ khối
2. Quá trình thực hiện

23
23

1. Bước 1: Tiền xử lý

23

2. Bước 2: Trích rút đặc trưng

24


3.Bước 3: Huấn luyện mơ hình (Phân loại ảnh)

29

4. Bước 4: Nhận dạng ảnh

32

4.1 Kết quả train và test:

32

4.2 Kết quả tìm kiếm hình ảnh từ 1 hình ảnh:

32

4.3 Code

32


Yêu Cầu
1.

Hãy sưu tầm ít nhất 100 bức ảnh về ít nhất 15 loại hoa khác nhau mỗi

ảnh chỉ gồm 1 bơng hoa, các bức ảnh đều có cùng kích thước.
2.


Tìm hiểu các kỹ thuật xử lý và phân loại ảnh hoa đang hiện hành

3.

Xây dựng hệ thống nhận dạng ảnh hoa

-

Đầu vào: 1 bông hoa thuộc loại hoa đã có và chưa có.

-

Đầu ra: nhãn của hoa

a.

Sơ đồ khối
Quy trình thực hiện

b.

Trình bày thuộc tính được sử dụng để nhận dạng nhãn và
Kỹ thuật để trích rút các thuộc tính đó

c.

Cách lưu trữ các thuộc tính ảnh hoa
Các nhận dạng ảnh hoa dựa trên các thuộc tính đó

4.


Demo và đánh giá kq đạt dc


Câu 1: Đặc điểm của kho ảnh:
-

Có khoảng 200 ảnh

-

15 loại hoa, chia vào 15 folder khác nhau.

-

Mỗi ảnh chỉ có 1 bơng hoa.

-

Kích thước 64*64

-

Mỗi loại hoa thì có nhiều hình dạng và màu sắc khác nhau, có ảnh chụp

gần và ảnh chụp xa, mỗi loại có nhiều màu sắc.

Câu 2: Kỹ thuật xử lý và phân loại ảnh hoa
đang hiện hành
I. Kĩ thuật xử lý ảnh

1. Quá trình xử lý ảnh
● Thu nhận ảnh:
Đặc điểm của kho ảnh:
- Có bao nhiêu ảnh? 100
- 15 loại hoa, chia vào 15 folder khác nhau.
- Mỗi ảnh chỉ có 1 bơng hoa.
- Kích thước bao nhiêu?
- Tại sao lấy kích thước này?
- Mỗi loại hoa thì có nhiều hình dạng và màu sắc khác nhau, có
ảnh chụp gần và ảnh chụp xa, mỗi loại có nhiều màu sắc.
● Tiền xử lý
-resize ảnh (64x64) , đổi đi về jpg
❖ Lọc trung bình - Median Filter
● Ý tưởng
-

Với lọc trung bình, mỗi điểm ảnh (Pixel) được thay thế bằng trung
bình trọng số của các điểm trong vùng lân cận.


-

Giả sử rằng có 1 ma trận lọc (Kernel) (3x3) quét qua từng điểm ảnh
của ảnh đầu vào Isrc. Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm
ảnh tương ứng trong vùng (3x3) của ảnh gốc đặt vào ma trận lọc
(Kernel). Giá trị điểm ảnh của ảnh đầu ra Idst là giá trị trung bình
của tất cả các điểm trong ảnh trong ma trận lọc (Kernel).
● Thuật toán
-


1 ảnh đầu vào với I(x,y) là giá trị điểm ảnh tại 1 điểm (x,y) và
1 ngưỡng θ.
● Bước 1: Tính tổng các thành phần trong ma trận lọc
(Kernel).
● Bước 2: Chia lấy trung bình của tổng các thành phần trong
ma trận được tính ở trên với số lượng các phần tử của cửa
sổ lọc ra 1 giá trị Itb(x, y).
● Bước 3: Hiệu chỉnh:
o Nếu I(x,y) - Itb(x,y) > θ thì I(x,y) = Itb(x,y).
o Nếu I(x,y) - Itb(x,y) <= θ thì I(x,y) = I(x,y).

● Chú ý
-

θ là 1 giá trị cho trước và có thể có hoặc khơng tùy thuộc vào
mục đích.

● Tác dụng
-

Trong lọc trung bình, thường ưu tiên cho các hướng để
bảo vệ biên của ảnh khỏi bị mờ khi làm trơn ảnh. Các kiểu
ma trận lọc (Kernel) được sử dụng tùy theo các trường
hợp khác nhau. Các bộ lọc trên là bộ lọc tuyến tính theo
nghĩa là điểm ảnh ở tâm cửa sổ sẽ được thay bởi tổ hợp
các điểm lân cận chập với ma trận lọc (Kernel). 

2.Đặc trưng của ảnh






Đặc trưng màu sắc
Đặc trưng kết cấu
Đặc trưng hình dạng
Đặc trưng cục bộ bất biến


3.Ảnh và biểu diễn ảnh:
● Ảnh trong thực tế là một ảnh liên tục cả về không gian và giá trị
độ sáng. Để có thể xử lý ảnh bằng máy tính thì cần thiết phải tiến
hành số hóa ảnh
● Q trình số hóa biến đổi các tín hiệu liên tục sang tín hiệu rời
rạc thơng qua q trình lấy mẫu (rời rạc hóa về khơng gian) và
lượng tử hóa các thành phần giá trị mà về nguyên tắc bằng mắt
thường không thể phân biệt được hai điểm liền kề nhau
● màn hình khụng liên tục mà gồm các điểm nhỏ, gọi là pixel. Mỗi
pixel gồm một tập tọa độ (x, y) và màu.
● Ảnh có thể được biểu diễn theo một trong hai mơ hình: mơ hình
Vector hoặc mơ hình Raster
o Mơ hình Vector: Ngồi mục đích tiết kiệm khơng gian lưu
trữ, dễ dàng hiển thị và in ấn, các ảnh biểu diễn theo mơ
hình vector cũng có điểm dễ dàng lựa chọn, sao cho, di
chuyển, tìm kiếm
o Mơ hình Raster: Ảnh được biểu diễn dưới dạng ma trận
các điểm ảnh
▪ mỗi điểm ảnh có thể được biểu diễn bởi một hay
nhiều bit
▪ Mơ hình Raster thuận lợi cho việc thu nhận, hiển

thị và in ấn

II. Các phương pháp xử lý ảnh hiện nay




Nhiễu xạ không đẳng hướng: thường được gọi là khuếch tán
Perona-Malik. Phương pháp này giúp giảm nhiễu hình ảnh mà
khơng cần loại bỏ các phần quan trọng của hình ảnh.
Lọc tuyến tính: là một kỹ thuật xử lý hình ảnh kỹ thuật số khác. Nó
dùng để chỉ các tín hiệu đầu vào biến đổi theo thời gian. Việc này tạo
tạo ra các tín hiệu đầu ra phụ thuộc vào ràng buộc của tuyến tính.











Mạng nơron: là các mơ hình tính tốn được sử dụng rộng rãi trong
học máy. Chúng được dùng để giải quyết các nhiệm vụ khác nhau.
Pixelation: là việc chuyển hình ảnh đã in thành những hình ảnh
được số hóa (chẳng hạn như GIF).
Phân tích thành phần chính: một kỹ thuật xử lý hình ảnh kỹ thuật
số. Nó được sử dụng để trích xuất tính năng.

Một phần phương trình vi phân, giúp khử nhiễu hình ảnh.
Các mơ hình Markov ẩn: một kỹ thuật được sử dụng để phân tích
hình ảnh theo hai chiều (2D).
Wavelets: viết tắt của một hàm toán học được sử dụng trong nén
hình ảnh.
Bản đồ tự tổ chức: kỹ thuật xử lý hình ảnh kỹ thuật số để phân loại
hình ảnh thành một số layer (lớp).
Phân tích thành phần độc lập: phân tách tín hiệu đa biến, tính toán
thành các thành phần phụ cộng.

III. Kỹ thuật phân loại ảnh
1.Tìm hiểu về SVM
1.1 Giới thiệu

Support Vector Machines (SVM) là kỹ thuật mới đối với việc phân lớp dữ liệu,
là phương pháp học sử dụng không gian giả thuyết các hàm tuyến tính trên
khơng gian đặc trưng nhiều chiều, dựa trên lý thuyết tối ưu và lý thuyết thống
kê. Trong kỹ thuật SVM không gian dữ liệu nhập ban đầu sẽ được ánh xạ vào
không gian đặc trưng và trong không gian đặc trưng này mặt siêu phẳng phân
chia tối ưu sẽ được xác định. Ta có tập S gồm e các mẫu học S = {(x1,y1),
(x2,y2), (x3,y3)…..( xe,ye)} (X x Y)e với một vectơ đầu vào n chiều xi ∈ Rn
thuộc lớp I hoặc lớp II (tương ứng nhãn y i =1 đối với lớp I và y i= - 1 đối với
lớp II). Một tập mẫu học được gọi là tầm thường nếu tất cả các nhãn là bằng
nhau.
Đối với các dữ liệu phân chia tuyển tính, chúng ta có thể xác định được siêu
phẳng f(x) mà nó có thể chia tập dữ liệu. Khi đó, với mỗi siêu phẳng nhận được
ta có: f(x)≥ 0 nếu đầu vào x thuộc lớp dương, và f(x)< 0 nếu x thuộc lớp âmf(x)
= w.x +b, trong đó w là vector pháp tuyến n chiều và b là giá trị ngưỡng.
Vector pháp tuyến w xác định chiều của siêu phẳng f(x), còn giá trị



ngưỡng bxác định khoảng cách giữa siêu phẳng và gốc.Siêu phẳng có khoảng
cách với dữ liệu gần nhất là lớn nhất (tức có biên lớn nhất) được gọi là siêu
phẳng tối ưu.
Mục đích đặt ra ở đây là tìm được một ngưỡng (w,b) phân chia tập mẫu vào các
lớp có nhãn 1 (lớp I) và -1 (lớp II) nêu ở trên với khoảng cách là lớn nhất.

Siêu phẳng có khoảng cách với dữ liệu gần nhất là lớn nhất (tức có biên lớn
nhất) được gọi là siêu phẳng tối ưu.


1.2Phân Lớp Dữ Liệu
o Phân lớp dữ liệu là một kỹ thuật trong khai phá dữ liệu được sử
dụng rộng rãi nhất và được nghiên cứu mở rộng hiện nay.
o Mục đích: Để dự đốn những nhãn phân lớp cho các bộ dữ liệu
hoặc mẫu mới.
Đầu vào: Một tập các mẫu dữ liệu huấn luyện,với một nhãn phân lớp
cho mỗi mẫu dữ liệu.
Đầu ra: Bộ phân lớp dựa trên tập huấn luyện,hoặc những nhãn phân lớp.
Phân lớp dữ liệu dựa trên tập huấn luyện và các giá trị trong một thuộc tính
phân lớp và dùng nó để xác định lớp cho dữ liệu mới. Kỹ thuật phân lớp dữ
liệu được tiến hành bao gồm 2 bước:
Bước 1. Xây dựng mơ hình từ tập huấn luyện


● Mỗi bộ/mẫu dữ liệu được phân vào một lớp được xác định trước.
● Lớp của một bộ/mẫu dữ liệu được xác định bởi thuộc tính gán nhãn
lớp.
● Tập các bộ/mẫu dữ liệu huấn luyện - tập huấn luyện - được dùng để
xây dựng mơ hình.

● Mơ hình được biểu diễn bởi các luật phân lớp,các cây quyết định
hoặc các cơng thức tốn học.

Bước 2: Sử dụng mơ hình – kiểm tra tính đúng đắn của mơ hình và dung
nó để phân lớp dữ liệu mới.
● Phân lớp cho những đối tượng mới hoặc chưa được phân lớp.
● Đánh giá độ chính xác của mơ hình Lớp biết trước của một mẫu/bộ
dữ liệu đem kiểm tra được so sánh với kết quả thu được từ mơ hình.
Tỉ lệ chính xác bằng phần trăm các mẫu/bộ dữ liệu được phân lớp
đúng bởi mơ hình trong số các lần kiểm tra.

❖ Tại sao lại sử dụng thuật toán SVM trong phân lớp dữ liệu ???
● SVM rất hiệu quả để giải quyết bài tốn dữ liệu có số chiều lớn (ảnh
của dữ liệu biểu diễn gene, protein, tế bào).


● SVM giải quyết vấn đề overfitting rất tốt (dữ liệu có nhiễu và tách
rời nhóm hoặc dữ liệu huấn luyện quá ít).
● Là phương pháp phân lớp nhanh.
● Có hiệu suất tổng hợp tốt và hiệu suất tính tốn cao.
 

1.3 Thuật toán SVM
1.3.1 Giới thiệu
● Bài toán phân lớp (Classification) và dự đốn (Prediction) là hai bài
tốn cơ bản và có rất nhiều ứng dụng trong tất cả các lĩnh vực như:
học máy, nhận dạng, trí tuệ nhân tạo, .v.v . Trong đồ án này, chúng
em sẽ đi sâu nghiên cứu phương pháp Support Vector Machines
(SVM), một phương pháp rất hiệu quả hiện nay.
● Phương pháp SVM được coi là công cụ mạnh cho những bài tốn

phân lớp phi tuyến tính được các tác giả Vapnik và Chervonenkis
phát triển mạnh mẽ năm 1995.
● Phương pháp này thực hiện phân lớp dựa trên nguyên lý Cực tiểu
hóa rủi ro có Cấu trúc SRM (Structural Risk Minimization), được
xem là một trong các phương pháp phân lớp giám sát không tham số
tinh vi nhất cho đến nay. Các hàm công cụ đa dạng của SVM cho
phép tạo không gian chuyên đổi để xây dựng mặt phẳng phân lớp.

1.3.2 Định nghĩa
-

-

-

Là phương pháp dựa trên nền tảng của lý thuyết thống kê nên có một
nền tảng toán học chặt chẽ để đảm bảo rằng kết quả tìm được là
chính xác.
Là thuật tốn học giám sát (supervied learning) được sử dụng cho
phân lớp dữ liệu.
Là 1 phương pháp thử nghiệm, đưa ra 1 trong những phương pháp
mạnh và chính xác nhất trong số các thuật tốn nổi tiếng về phân lớp
dữ liệu.
SVM là một phương pháp có tính tổng qt cao nên có thể được áp
dụng cho nhiều loại bài toán nhận dạng và phân loại.


1.3.3 Ý tưởng của phương pháp
-


-

-

Cho trước một tập huấn luyện, được biểu diễn trong khơng gian
vector, trong
đó mỗi tài liệu là một điểm, phương pháp này tìm ra một siêu phẳng
quyết định tốt nhất có thể chia các điểm trên không gian này thành
hai lớp riêng biệt tương ứng là lớp + và lớp -.
Chất lượng của siêu phẳng này được quyết định bởi khoảng cách
(gọi là biên) của điểm dữ liệu gần nhất của mỗi lớp đến mặt phẳng
này. Khi đó, khoảng cách biên càng lớn thì mặt phẳng quyết định
càng tốt, đồng thời việc phân loại càng chính xác.
Mục đích của phương pháp SVM là tìm được khoảng cách biên lớn
nhất,
điều này được minh họa như sau:

Các điểm gần nhất (điểm được khoanh tròn) là các Support Vector.

1.4 Nội dung phương pháp
1.4.1 Cơ sở lý thuyết
-

SVM thực chất là một bài toán tối ưu, mục tiêu của thuật tốn này là tìm
được một khơng gian F và siêu phẳng quyết định f trên F sao cho sai số
phân loại là thấp nhất.


-


-

Cho tập mẫu (x1, y1), (x2, y2), … (xf, y f)} với xi ∈ Rn , thuộc vào hai lớp
nhãn: yi ∈ {-1,1} là nhãn lớp tương ứng của các xi (-1 biểu thị lớp I, 1 biểu
thị lớp II).
Ta có, phương trình siêu phẳng chứa vectơ xi trong không gian:
xi .w + b = 0 +1, Xi . W + b > 0

-

Đặt f(Xi) = sign (Xi . W + b) = -1, Xi . W + b < 0
⇨ Như vậy, f(Xi) biểu diễn sự phân lớp của Xi vào hai lớp như đã nêu. Ta
nói yi= +1 nếu Xi € lớp I và yi = -1 nếu Xi € lớp II . Khi đó, để có siêu
phẳng f ta sẽ phải giải bài tốn sau:

-

Tìm min với W thỏa mãn điều kiện sau: yi(sin (Xi.W + b)) ≥ 1 với i € 1,n.
❖ Bài tốn SVM có thể giải bằng kỹ thuật sử dụng toán tử Lagrange
để biến đổi về thành dạng đẳng thức. Một đặc điểm thú vị của SVM
là mặt phẳng quyết định chỉ phụ thuộc các Support Vector và nó có
khoảng cách đến mặt phẳng quyết định là 1/. Cho dù các điểm khác
bị xóa đi thì thuật tốn vẫn cho kết quả giốngnhư ban đầu. Đây
chính là điểm nổi bật của phương pháp SVM so với các phương
pháp khác vì tất cả các dữ liệu trong tập huấn luyện đều được đùng
để tối ưu hóa kết quả.
Kết Luận:

-


-

-

Trong trường hợp nhị phân phân tách tuyến tính, việc phân lớp được thực
hiện qua hàm quyết định f(x) = sign(<w.x> + b), hàm này thu được bằng
việc thay đổi vectơ chuẩn w, đây là vectơ để cực đại hóa viền chức năng.
Việc mở rộng SVM để phân đa lớp hiện nay vẫn đang được đầu tư nghiên
cứu. Có một phương pháp tiếp cận để giải quyết vấn để này là xây dựng và
kết hợp nhiều bộ phân lớp nhị phân SVM (Chẳng hạn: trong q trình luyện
với SVM, bài tốn phân m lớp có thể được biến đổi thành bài tốn phân
2*m lớp, khi đó trong mỗi hai lớp, hàm quyết định sẽ được xác định cho
khả năng tổng quát hóa tối đa).
Trong phương pháp này có thể đề cập tới hai cách là một-đổi-một,
một-đối-tất cả.


1.4.2 Bài toán phân 2 lớp với SVM
-

-

Bài toán đặt ra là: Xác định hàm phân lớp để phân lớp các mẫu trong tương
lai, nghĩa là với một mẫu dữ liệu mới xi thì cần phải xác định xi được phân
vào lớp +1 hay lớp -1.
Để xác định hàm phân lớp dựa trên phương pháp SVM, ta sẽ tiến hành tìm
hai siêu phẳng song song sao cho khoảng cách y giữa chúng là lớn nhất có
thể để phân tách hai lớp này ra làm hai phía. Hàm phân tách tương ứng với
phương trình siêu phẳng nằm giữa hai siêu phẳng tìm được.


Các điểm mà nằm trên hai siêu phẳng phân tách được gọi là các Support
Vector. Các điểm này sẽ quyết định đến hàm phân tách dữ liệu.

1.4.3 Bài toán nhiều phân lớp với SVM
-

-

Để phân nhiều lớp thì kỹ thuật SVM nguyên thủy sẽ chia không gian dữ
liệu thành 2 phần và q trình này lặp lại nhiều lần. Khi đó hàm quyết định
phân dữ liệu vào lớp thứ i của tập n , 2-Iớp sẽ là: fi(x) = wi.xi + bi
Những phần tử x là support vector sẽ thỏa điều kiện +1 nếu thuộc lớp i
fi (x) = -1 nếu thuộc phần còn lại.
Như vậy, bài toán phân nhiều lớp sử dụng phương pháp SVM hồn tồn có
thể thực hiện giống như bài tốn hai lớp. Bằng cách sử dụng chiến
lược "một- đốimột”(one - against - one). Giả sử bài tốn cần phân loại có k
lớp (k > 2), chiến lược "một-đối-một”sẽ tiến hành k(k-l)/2 lần phân lớp nhị
phân sử dụng phương pháp SVM. Mỗi lớp sẽ tiến hành phân tách với k-1


lớp còn lại để xác định k-1 hàm phân tách dựa vào bài toán phân hai lớp
bằng phương pháp SVM.

1.4.4 Các bước chính của phương pháp SVM
-

-

-


-

Phương pháp SVM yêu cầu dữ liệu được diễn tả như các vector của các số
thực. Như vậy nếu đầu vào chưa phải là số thì ta cần phải tìm cách chuyển
chúng về dạng số của SVM Tiền xử lý dữ liệu: Thực hiện biến đổi dữ liệu
phù hợp cho q trình tính tốn, tránh các số q lớn mơ tả các thuộc tính.
Thường nên co giãn (scaling) dữ liệu để chuyển về đoạn [-1, 1] hoặc [0, 1].
Chọn hàm hạt nhân: Lựa chọn hàm hạt nhân phù hợp tương ứng cho từng
bài toán cụ thể để đạt được độ chính xác cao trong quá trình phân lớp. Thực
hiện việc kiểm tra chéo để xác định các tham số cho ứng dụng.
Điều này cũng quyết định đến tính chính xác của q trình phân lớp. Sử
dụng các tham số cho việc huấn luyện với tập mẫu.
Trong quá trình huấn luyện sẽ sử dụng thuật tốn tối ưu hóa khoảng cách
giữa các siêu phẳng trong q trình phân lớp, xác định hàm phân lớp trong
khơng gian đặc trưng nhờ việc ánh xạ dữ liệu vào không gian đặc trưng
bằng cách mô tả hạt nhân, giải quyết cho cảhaitrường hợp dữ liệu là phân
tách và không phân tách tuyến tính trong khơng gian đặc trưng.
Kiểm thử tập dữ liệu Test.

2.Tìm Hiểu về KNN
1.1 Giới thiệu
KNN (K-Nearest Neighbors) là một trong những thuật tốn học có giám sát
đơn giản nhất được sử dụng nhiều trong khai phá dữ liệu và học máy. Ý
tưởng của thuật toán này là nó khơng học một điều gì từ tập dữ liệu học
(nên KNN được xếp vào loại lazy learning), mọi tính tốn được thực hiện
khi nó cần dự đốn nhãn của dữ liệu mới.
Lớp (nhãn) của một đối tượng dữ liệu mới có thể dự đốn từ các lớp
(nhãn) của k hàng xóm gần nó nhất.

Ví dụ:

Giả sử ta có D là tập các dữ liệu đã được phân loại thành 2 nhãn (+) và (-)
được biểu diễn trên trục tọa độ như hình vẽ và một điểm dữ liệu mới A chưa


biết nhãn. Vậy làm cách nào để chúng ta có thể xác định được nhãn của A là
(+) hay (-)?
Có thể thấy cách đơn giản nhất là so sánh tất cả các đặc điểm của dữ liệu A
với tất cả tập dữ liệu học đã được gắn nhãn và xem nó giống cái nào nhất, nếu
dữ liệu (đặc điểm) của A giống với dữ liệu của điểm mang nhãn (+) thì điểm A
mang nhãn (+), nếu dữ liệu A giống với dữ liệu nhãn (-) hơn thì nó mang nhãn
(-), trơng có vẻ rất đơn giản nhưng đó là những gì mà KNN làm.
Trong trường hợp của KNN, thực tế nó khơng so sánh dữ liệu mới (khơng
được phân lớp) với tất cả các dữ liệu khác, thực tế nó thực hiện một phép tính
tốn học để đo khoảng cách giữa dữ liệu mới với tất cả các điểm trong tập dữ
liệu học D để thực hiện phân lớp. Phép tính khoảng cách giữa 2 điểm có thể là
Euclidian, Manhattan, trọng số, Minkowski, …

1.2 Ý tưởng của KNN
-

Thuật toán KNN cho rằng những dữ liệu tương tự nhau sẽ tồn tại gần
nhau trong một khơng gian, từ đó cơng việc của chúng ta là sẽ tìm k điểm
gần với dữ liệu cần kiểm tra nhất. Việc tìm khoảng cách giữa 2 điểm củng
có nhiều cơng thức có thể sử dụng, tùy trường hợp mà chúng ta lựa chọn
cho phù hợp. Đây là 3 cách cơ bản để tính khoảng cách 2 điểm dữ liệu x, y
có k thuộc tính:


- Các bước trong KNN:


1. Ta có D là tập các điểm dữ liệu đã được gắn nhãn và A là dữ liệu chưa
được phân loại.
2. Đo khoảng cách (Euclidian, Manhattan, Minkowski, Minkowski hoặc
Trọng số) từ dữ liệu mới A đến tất cả các dữ liệu khác đã được phân loại
trong D.
3. Chọn K (K là tham số mà bạn định nghĩa) khoảng cách nhỏ nhất.
4. Kiểm tra danh sách các lớp có khoảng cách ngắn nhất và đếm số lượng
của mỗi lớp xuất hiện.
5. Lấy đúng lớp (lớp xuất hiện nhiều lần nhất).
6. Lớp của dữ liệu mới là lớp mà bạn đã nhận được ở bước 5.

1.3 Ưu điểm
1. Thuật toán đơn giản, dễ dàng triển khai.
2. Độ phức tạp tính tốn nhỏ.
3. Xử lý tốt với tập dữ liệu nhiễu

1.4 Nhược điểm
1. Với K nhỏ dễ gặp nhiễu dẫn tới kết quả đưa ra khơng chính xác


2. Cần nhiều thời gian để thực hiện do phải tính tốn khoảng cách với tất cả
các đối tượng trong tập dữ liệu.
3. Cần chuyển đổi kiểu dữ liệu thành các yếu tố định tính.

1.5 Ứng dụng

KNN là một mơ hình đơn giản và trực quan nhưng vẫn có hiệu quả cao vì
nó khơng tham số; mơ hình khơng đưa ra giả định nào về việc phân phối dữ
liệu. Hơn nữa, nó có thể được sử dụng trực tiếp để phân loại đa lớp.
Thuật tốn KNN có nhiều ứng dụng trong ngành đầu tư, bao gồm dự đoán

phá sản, dự đốn giá cổ phiếu, phân bổ xếp hạng tín dụng trái phiếu doanh
nghiệp, tạo ra chỉ số vốn và trái phiếu tùy chỉnh.

IV. Phương pháp rút trích đặc trưng hình ảnh HOG
Lược đồ mức xám (histogram) của một ảnh, từ nay về sau ta qui ước gọi là
lược đồ xám, là một hàm cung cấp tần suất xuất hiện của mỗi mức xám (grey
level). Lược đồ xám được biểu diễn trong một hệ toạ độ vng góc x,y. Trong hệ
toạ độ này, trục hoành biểu diễn số mức xám từ 0 đến N, N là số mức xám (256
mức trong trường hợp chúng ta xét). Trục tung biểu diễn số điểm ảnh cho một mức
xám (số điểm ảnh cú cựng mức xám). Cũng có thể biểu diễn khác một chút: trục
tung là tỷ lệ số điểm ảnh có cùng mức xám trên tổng số điểm ảnh


-

Histogram cung cấp cho những thông số cơ bản, như độ sáng và độ tương
phản (contrast) của ảnh. Độ tương phản đặc trong cho sự thay đổi độ sáng
của đối tượng so với nền. Cú thể nói, độ tương phản là độ nổi của điểm ảnh
hay vùng ảnh so với nền. Ta có một vài nhận xét về histogram:


+ NX1. Histogram tốt có hình ngọn núi với độ cao tăng dần từ trái, cao nhất
ở giữa và thấp nhất ở bên phải. Điều đó chứng tỏ số lượng điểm ảnh nhiều
nhất là ở độ sáng trung bình. (Xem Hình 2.3).

Hỡnh 2.3: Histogram tốt
+ NX2. Ảnh quá tối: histogram bị nghiêng về bên trái, có một cái cột gần
như thẳng đứng sát trái (Xem Hình 2.4).

+ NX3. Ảnh quá sáng: histogram bị nghiêng về bên phải, có một cái cột

gần như thẳng đứng sát phải (Xem Hình 2.5)


+ NX4. Ảnh quá tương phản: có hai cái cột nằm ở 2 đầu trái phải ( Xem
Hinh 2.6)

+ NX5. Ảnh kém tương phản: dải màu bị dồn vào giữa, hai đầu khơng có
gì. (Xem Hình 2.7)


-

Từ lược đồ xám ta cú thể suy diễn ra các tính chất quan trọng của ảnh như
giá trị xám trung bình hoặc độ tản mạn. Qua cách tác động lên điểm ảnh, sự
phân bố của biểu đồ cột được thay đổi theo mục đích. Dựa vào lươc đồ xám
chúng ta có thể xác định được ngưỡng thích hợp cho q trình phân đoạn
hoặc tính được các đại lượng đặc trong của một ảnh.

Câu 3. Xây dựng hệ thống
V. Xây dựng hệ thống
1. Sơ đồ khối


2. Quá trình thực hiện
1. Bước 1: Tiền xử lý
1.1 Thực hiện giảm nhiễm cho ảnh (sử dụng kĩ thuật
lọc trung bình)
Lọc trung bình là kĩ thuật lọc tuyến tính đơn giản
trong việc tính tốn.
Kĩ thuật này thường ưu tiên cho các hướng để bảo

vệ biên ảnh khỏi bị mờ khi làm trơn ảnh.
Lọc trung bình giúp cân bằng màu cho các pixel
trong 1 vùng ảnh nhất định sao cho sự chênh lệch màu sẽ
giảm xuống sau khi lọc. Ma trận đầu ra sẽ có trị số tại các
node có sự chệnh lệch ít hơn so với ma trận đầu vào.
Mỗi 1 điểm ảnh (Pixel) được thay thế bằng trung
bình trọng số của các điểm lân cận.


Các bước thực hiện:
Bước 1: Quét cửa sổ lọc (ma trận kich thước 3*3) lần
lượt lên các thành phần của ảnh đầu vào, điền các giá trị
được quét vào cửa sổ lọc


Bước 2: Tính giá trị trung bình các thành phần trong cửa
sổ lọc
Bước 3: Gán giá trị trung bình này cho ảnh đầu ra.

1.2 Xóa nền cho ảnh.
2. Bước 2: Trích rút đặc trưng
HOG là viết tắt của Histogram of Oriented Gradient một loại “feature descriptor”.
Mục đích của HOG là trừu tượng hóa đối tượng bằng
cách trích xuất ra những đặc trưng của đối tượng đó và bỏ đi
những thơng tin khơng hữu ích.


HOG sử dụng thông tin về sự phân bố của các cường độ
gradient (intensity gradient) hoặc của hướng biên (edge
directins) để mô tả các đối tượng cục bộ trong ảnh.

Các toán tử HOG được cài đặt bằng cách chia nhỏ một
bức ảnh thành các vùng con, được gọi là cells
Với mỗi cell, ta sẽ tính tốn một histogram về các hướng
của gradients cho các điểm nằm trong cell.
Ghép các histogram lại với nhau ta sẽ có một biểu diễn
cho bức ảnh ban đầu.
Để tăng cường hiệu năng nhận dạng, các histogram cục
bộ có thể được chuẩn hóa về độ tương phản bằng cách tính một
ngưỡng cường độ trong một vùng lớn hơn cell, gọi là các khối
(blocks) và sử dụng giá trị ngưỡng đó để chuẩn hóa tất cả các
cell trong khối. Kết quả sau bước chuẩn hóa sẽ là một vector
đặc trưng có tính bất biến cao hơn đối với các thay đổi về điều
kiện ánh sáng.

Có 4 bước cơ bản để xây dựng một vector HOG cho hình
ảnh, bao gồm:





2.1.

Bước 1: Tính gradient
Bước 2: Tính vector đặc trưng histogram
Bước 3: Chuẩn hóa khối (blocks)
Bước 4: Tính tốn vector HOG

Tính Gradient


Gradient là 1 vector có thành phần biểu thị tốc độ thay
đổi giá trị của điểm ảnh theo 2 hướng x và y.
Hình ảnh được chia thành 1 lưới ô vuông và trên đó
chúng ta xác định được các vùng cục bộ liền kề hoặc chồng lên
nhau


×