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

báo cáo bài tập lớn đề tài phân loại mẫu ảnh

14 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân Loại Mẫu Ảnh
Tác giả Nguyễn Thanh Sơn, Đặng Trần Hoàng Hà, Ngô Thế Ngọc, Phạm Quang Phong, Vũ Thanh Lâm, Vũ Đức Hiếu
Trường học Trường Đại Học Công Nghệ - Đhqghn
Chuyên ngành Điện Tử Viễn Thông
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 14
Dung lượng 2,73 MB

Nội dung

Ý tưởng- Các kỹ thuật phân loại mẫu ảnh được chia thành 3 loại chính: phân loại dựatrên so sánh nguyên mẫu, phân loại dựa trên công thức thống kê tối ưu, phân loại dựa trên mạng neural.1

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ - ĐHQGHN KHOA ĐIỆN TỬ VIỄN THÔNG

-BÁO CÁO BÀI TẬP LỚN

HỌC PHẦN: XỬ LÝ ẢNH

ĐỀ TÀI: PHÂN LOẠI MẪU ẢNH

Mã SV: 20020711 Họ và tên: Nguyễn Thanh Sơn

Mã SV: 20020048 Họ và tên: Đặng Trần Hoàng Hà

Mã SV: 20020207 Họ và tên: Ngô Thế Ngọc

Mã SV: 20020066 Họ và tên: Phạm Quang Phong

Mã SV: 20020434 Họ và tên: Vũ Thanh Lâm

Mã SV: 20020050 Họ và tên: Vũ Đức Hiếu

Hà Nội – tháng 5, năm 2023.

Trang 2

1 Ý tưởng

- Các kỹ thuật phân loại mẫu ảnh được chia thành 3 loại chính: phân loại dựa

trên so sánh nguyên mẫu, phân loại dựa trên công thức thống kê tối ưu, phân loại dựa trên mạng neural

1.1 Mẫu và lớp mẫu

- Trong phân loại mẫu hình ảnh, có 2 cách để sắp xếp mẫu chính là định

lượng và cấu trúc Các mẫu định lượng được sắp xếp dưới dạng các vecto mẫu Các mẫu cấu trúc thường bao gồm các ký hiệu, được sắp xếp dưới dạng chuỗi, cây, hoặc biểu đồ

1.1.1 Vecto mẫu

- Vecto mẫu được biểu diễn như sau:

- Với x là bộ miêu tả đặc trưng thứ i và n là tổng số bộ miêu tả.i

- Vecto mẫu có thể tạo từ cường độ pixel ảnh bằng sắp xếp tuyến tính

Hình 1: Vecto mẫu tạo bằng việc sắp xếp tuyến tính

1.1.2 Mẫu cấu trúc

Trang 3

- Mẫu cấu trúc là mẫu chứa các mô tả có cấu trúc của đối tượng, phù hợp khi

ứng dụng với các đối tượng được biểu diễn bằng các cấu trúc dữ liệu như

xử lý văn bản, các biểu tượng Mẫu cấu trúc có thể được mô tả bằng chuỗi

ký tự hoặc cây

- Để biểu diễn chuỗi ký tự, các đặc trưng của đối tượng có thể được xây dựng

theo một quy tắc chuỗi Ví dụ:

Hình 2: Chuỗi ký hiệu được tạo ra từ cạnh của một cái bình

- Trong ví dụ trên, với đường bao của chiếc lọ ta chia ra thành các đường

thẳng kết nối các đỉnh trên (được biểu diễn bằng β) và góc bên trong (θ), từ

đó một chuỗi ký tự được sinh ra đại diện cho một phần đường viền theo chiều kim đồng hồ như trên ảnh

- Khi biểu diễn mẫu cấu trúc dưới dạng cây, các nốt của cây có thể là các

vùng, các thực thể hoặc kết cấu bên trong của đối tượng, phù hợp với các đối tượng có mức độ miêu tả cao, có lược đồ sắp xếp thứ bậc như cấu trúc dạng cây Ví dụ:

Hình 3: Biểu diễn dạng cây của 1 trung tâm thành phố chụp từ vệ tinh

Trang 4

- Ví dụ trên là một ảnh chụp vệ tinh một khu trung tâm sầm uất cùng với các

khu dân cư xung quanh Trong cây trên, có thể thấy biểu tượng $ là nốt gốc đại diện cho toàn bộ bức ảnh, ở độ sâu tiếp theo là 2 thành phần chính của bức ảnh là khu vực trung tâm (Downtown) và các khu dân cư (Residental) Sau đấy ở mỗi khu vực chính đó ta phân tích những đối tượng tiêu biểu để

mở rộng độ sâu của cây và quá trình trên có thể tiếp tục đến khi ta không thể phân cấp thêm được các đối tượng

1.2 Phân loại dựa trên nguyên mẫu

- Với phân loại dựa trên nguyên mẫu, mục tiêu của nó là làm cho các đặc

trưng độc nhất và dễ phát hiện để việc phân loại trở nên đơn giản

1.2.1 Bộ phân loại dựa trên khoảng cách

- Bộ phân loại dựa trên khoảng cách thường dùng để phân loại các ảnh chưa

biết vào các lớp khác nhau Khoảng cách ở đây được định nghĩa là một giá trị sao cho khoảng cách tối thiểu giống với độ tương tự tối đa

- Nó sẽ tính khoảng cách từ một mẫu vecto với từng lớp nguyên mẫu Từ đó

gán mẫu này với lớp nguyên mẫu mà có khoảng cách nhỏ nhất

- Vecto của bộ phân loại này là trung bình vecto của các lớp mẫu:

(Phương trình 1)

- Với n là số lượng vecto mẫu để tính vecto trung bình thứ j, c là lớp mẫu j j thứ j, N là số lượng lớp Ta sử dụng khoảng cách Euclidean để tính:c

(Phương trình 2)

- Với D (x) là chuẩn Euclidean được tính bằng || a || = (a x a) Bộ phân loạij T 1/2

sẽ gán nhãn cho x vào lớp c nếu D (x) < D (x) Trong trường hợp D (x) = i i j i

Dj(x) thì ta tự xem xét

1.2.2 So sánh ảnh 2-D với toán tử tương quan

- Tương quan là toán tử mà ta áp dụng cửa sổ trượt (sliding window) và phép

biến đổi tích vô hướng (dot product) trên mỗi vùng ảnh Từ đấy ta sẽ tìm sự tương quan của cửa sổ trên ảnh gốc

- Ta có sự tương quan giữa 1 kernel w với 1 ảnh f(x, y) được tính bởi công

thức:

(Phương trình 3)

- Phép tương quan sẽ đạt giá trị lớn nhất khi w và f có giá trị bằng nhau, hoặc

gần bằng nhau Điều đó có nghĩa là phương trình 3 tìm vị trí mà w giống

Trang 5

với 1 vùng của f Tuy nhiên có nhược điểm là kết quả tính được sẽ nhạy cảm với sự thay đổi của biên độ

- Để chuẩn hóa hàm tương quan nhằm giảm bớt sự thay đổi của biên độ và

các tham số khác, ta có hệ số tương quan:

(Phương trình 4)

- Giá trị của γ đạt lớn nhất khi mà vùng chuẩn hóa w và vùng chuẩn hóa

tương tự trong ảnh f là giống nhau Giá trị của γ trong khoảng [-1, 1] và nó đạt nhỏ nhất khi 2 vùng w và f khác biệt nhau quá nhiều

- Quá trình tính toán γ được miêu tả như sau:

Hình 4: Cơ chế của so sánh mẫu

- Mẫu trong hình 3 có kích thước m x n và được biểu diễn với tọa độ tâm (x,

y) Giá trị của hệ số tương quan tại điểm (x, y) được tính bằng phương trình

4 Tiếp đó dịch chuyển mẫu sang điểm liền kề và lặp lại quá trình Giá trị của hệ số tương quan tính được bằng cách dịch chuyển mẫu tâm của mẫu w nên nó sẽ đi qua mọi pixel của ảnh f Cuối cùng ta sẽ tìm ra giá trị γ lớn nhất thu được để tìm vùng giống nhau nhất

1.2.3 So sánh dựa trên đặc trưng SIFT

Trang 6

- SIFT (Scale-invariant feature transform) là một feature descriptor được sử

dụng trong computer vision và xử lý hình ảnh được dùng để nhận dạng đối tượng, matching image, hay áp dụng cho các bài toán phân loại

- Với đầu vào là một hình ảnh qua biến đổi SIFT sẽ tạo ra các keypoint Mỗi

đối tượng trong hình ảnh sẽ cho ra rất nhiều các keypoint khác nhau, để ta phân biệt được các keypoint này với nhau sẽ thông qua một vector 128 chiều hay còn gọi là descriptor Các descriptor này sẽ được dùng để nhận dạng đối tượng trong ảnh, hay dùng cho các bài toán phân loại

- Hình ảnh sau khi áp dụng biến đổi SIFT, ứng với mỗi điểm đặc trưng ta sẽ

thu được: toạ độ điểm đặc trưng, tỉ lệ và hướng của điểm đặc trưng, descriptor Các mũi tên trong hình dưới vẽ nhờ vào tỉ lệ và hướng

- Việc khớp ảnh mẫu với ảnh chính là việc khớp các keypoint trong 2 ảnh với

nhau:

+ Áp dụng SIFT cho từng bức ảnh

+ So sánh descriptor của keypoint trong ảnh này với descriptor của keypoint trong ảnh kia Nếu 2 keypoint có descriptor gần giống nhau thì coi như 2 điểm trên 2 tấm ảnh cùng thuộc về một vật (hoặc vật giống nhau) + Dựa vào thương của tỉ lệ và hiệu của orientation của 2 keypoint, có thể biết thêm vật trong hình này to hơn vật trong hình kia bao nhiêu, vật trong hình này xoay bao nhiêu độ so với vật trong hình kia bao nhiêu

1.2.4 Phân loại dựa trên cấu trúc của nguyên mẫu

So sánh chuỗi

- Giả sử hai vùng ranh giới là a và b, được mã hóa thành các chuỗi ký tự, lần

lượt được biểu diễn dưới dạng a1a2 an và b1b2 bm Gọi α là số ký tự khớp nhau giữa hai chuỗi, trong đó một ký tự được xem là khớp nhau ở vị trí thứ

k nếu ak=bk Số kí tự không khớp nhau là: β = max (|a|, |b|) – α

Hình 5: Hai vùng ranh giới a và b

- Ta có |arg| là độ dài (số ký tự) của chuỗi trong tham số Có thể chứng minh

được rằng β = 0 nếu và chỉ nếu a và b giống nhau

- Phương trình tính tỉ lệ độ giống nhau là:

(Phương trình 5)

Trang 7

- Nếu như 2 vùng giống nhau thì R sẽ đạt vô cùng dương và đạt 0 nếu không

có ký tự nào trùng nhau

1.3 Bộ phân lớp Bayes

- Với phân loại dựa trên thống kê tối ưu thì ta sẽ lựa chọn các tham số để

đem lại hiệu suất tốt Ta quan taam đến các đặc trưng được sử dụng và thiết

kế của bộ phân loại

Định nghĩa

- Bộ phân lớp Bayes là một giải thuật thuộc lớp giải thuật thống kê, nó có thể

dự đoán xác suất của một phần tử dữ liệu thuộc vào một lớp là bao nhiêu Phân lớp Bayes được dựa trên định lý Bayes (định lý được đặt theo tên tác giả của nó là Thomas Bayes)

Định lý Bayes

- Gọi A, B là hai biến cố

- Công thức Bayes tổng quát:

trong đó ta gọi A là một chứng cứ (evidence) (trong bài toán phân lớp A sẽ là một phần tử dữ liệu), B là một giả thiết nào để cho A thuộc về một lớp C nào đó Trong bài toán phân lớp chúng ta muốn xác định giá trị P(B/A) là xác suất để giả thiết B

Trang 8

là đúng với chứng cứ A thuộc vào lớp C với điều kiện ra đã biết các thông tin mô

tả A P(B|A) là một xác suất hậu nghiệm (posterior probability hay posteriori probability) của B với điều kiện A

Phân lớp Naive Bayes

- Bộ phân lớp Naive bayes hay bộ phân lớp Bayes (simple bayes classifier)

hoạt động như sau:

Gọi D là tập dữ liệu huấn luyện, trong đó mỗi phần tử dữ liệu đượcx

biểu diễn bằng một vector chứa n giá trị thuộc tính A , A , , A = 1 2 n {x1, x , , x2 n}

Giả sử có m lớp C , C , , C Cho một phần tử dữ liệu , bộ phân 1 2 m x

lớp sẽ gán nhãn cho là lớp có xác suất hậu nghiệm lớn nhất Cụ x

thể, bộ phân lớp Bayes sẽ dự đoán thuộc vào lớp C nếu và chỉ nếu:x i P(C |ix) > P(Cj|x) (1<= i, j <=m, i ≠ j)

giá trị này sẽ tính dựa trên định lý Bayes

Để tìm xác suất lớn nhất, ta nhận thấy các giá trị P( ) là giống nhau x

với mọi lớp nên không cần tính Do đó ta chỉ cần tìm giá trị lớn nhất của P(x|Ci) * P(C ) Chú ý rằng P(C ) được ước lượng bằng |D |/|D|, i i i trong đó D là tập các phần tử dữ liệu thuộc lớp C Nếu xác suất tiên i i nghiệm P(C ) cũng không xác định được thì ta coi chúng bằng nhau i P(C1) = P(C ) = = P(C ), khi đó ta chỉ cần tìm giá trị P(2 m x|Ci) lớn nhất

Khi số lượng các thuộc tính mô tả dữ liệu là lớn thì chi phí tính toàn P( |Cx i) là rất lớn, dó đó có thể giảm độ phức tạp của thuật toán Naive Bayes giả thiết các thuộc tính độc lập nhau Khi đó ta có thể tính:

P( |Cx i) = P(x1|Ci) P(xn|Ci)

Gaussian Naive Bayes

Mô hình này được sử dụng chủ yếu trong loại dữ liệu mà các thành phần là các biến liên tục

Trang 9

2 Cài đặt

a Tập dữ liệu

- Dữ liệu gồm 1854 ảnh về 5 lớp là: xe buýt (bus), xe con (car), xe máy

(moto), người đi bộ (pedestrian), xe tải (truck)

Hình 6: Các lớp dữ liệu sử dụng

- Phân tích dữ liệu ta có số lượng các lớp như sau:

Trang 10

Hình 7: Phân tích các lớp dữ liệu.

b SIFT (Scale-Invariant Feature Transform)

- Thuật toán SIFT yêu cầu một tập hợp các input keypoint Sau đó, đối với

mỗi input keypoint, SIFT lấy vùng 16 x 16 pixel bao quanh pixel trung tâm của vùng keypoint

Hình 8: Tách keypoint

- Sau đó chia vùng 16x16 ra thành 16 cửa sổ 4x4 Đối với mỗi ô trong số 16

cửa sổ, chúng ta tính toán độ lớn và hướng của gradient

Trang 11

Hình 9: Tách thành các cửa sổ 4x4.

Hình 10: Chuyển sang ảnh xám

- Với độ lớn và hướng của gradient, tiếp theo chúng tôi sẽ xây dựng 8-bin

histogram cho mỗi cửa sổ 4 x 4 pixel

Trang 12

Hình 11: Biểu đồ mức xám.

- Tuy nhiên, chúng ta sẽ không sử dụng cường độ thô của gradient Thay vào

đó, chúng ta sẽ sử dụng trọng số Gaussian Pixel càng xa trung tâm keypoint, nó càng ít đóng góp vào biểu đồ tổng thể Cuối cùng, bước thứ ba của SIFT là thu thập tất cả 16 8-bin oriented histogram này và ghép chúng lại với nhau

Hình 12: Ghép các 8-bin oriented histogram

- Vectơ đặc trưng của chúng ta sẽ có số chiều như sau: 16 x 8 = 128-chiều

Khi chúng ta đã thu thập các biểu đồ được nối, chúng ta kết thúc bằng việc chuẩn hóa L2 cho vector đặc trưng

Hình 13: Mô tả việc tạo vecto đặc trưng

c Kỹ thuật Túi đựng từ (Bag of Words - BoW)

- Mô hình túi từ (bag-of-words) là một biểu diễn đơn giản hóa được sử dụng

trong xử lý ngôn ngữ tự nhiên và truy vấn thông tin (IR) Trong mô hình này, một văn bản (chẳng hạn như một câu hoặc một tài liệu) được thể hiện dưới dạng túi (multiset) chứa các từ của nó, không quan tâm đến ngữ pháp

và thậm chí trật tự từ nhưng vẫn giữ tính đa dạng Mô hình túi từ cũng đã được sử dụng cho thị giác máy tính

Trang 13

- Đối với việc xử lý ảnh, ta sẽ sử dụng BoW như sau: Ta xem xét một cửa sổ

nhỏ trong ảnh (trong Computer Vision, cửa sổ này được gọi là patch) là một hình chữ nhật chứa nhiều điểm ảnh gần nhau Cửa sổ này đủ lớn để có thể chứa được các bộ phận có thể mô tả được vật thể trong ảnh Tương tự thế, với ảnh là ô tô, các patch thu được có thể là bánh xe, khung xe, cửa xe, … như hàng trên trong hình dưới đây

Hình 8: Bag of Words cho ảnh ô tô

- Đến đây chúng ta sẽ sử dụng K-means clustering Ta sẽ K-means clustering

trên toàn bộ số patches thu được Ở đây ta cho codebook gồm 100 từ Sau khi thực hiện K-means clustering, ta thu được 100 clusters và 100 centers tương ứng Mỗi centers này được coi là một words, và tất cả những điểm rơi vào cùng một cluster được coi là cùng một bag Với ảnh trong tập test data, ta cũng lấy các patches rồi xem chúng rơi vào những bags nào Từ đó suy ra vector đặc trưng cho mỗi bức ảnh

- Lúc này mỗi bức ảnh sẽ được mô tả bởi một vector có số chiều 100, tức là

mỗi điểm dữ liệu bây giờ đã có số chiều bằng nhau, mặc dù ảnh thô đầu vào

có thể có kích thước khác nhau

d SVM (Support Vector Machine)

- SVM là một thuật toán học có giám sát, nó có thể sử dụng cho cả việc phân

loại hoặc đệ quy Tuy nhiên nó được sử dụng chủ yếu cho việc phân loại Trong thuật toán này, chúng ta vẽ đồi thị dữ liệu là các điểm trong n chiều (ở đây n là số lượng các tính năng bạn có) với giá trị của mỗi tính năng sẽ

là một phần liên kết Sau đó chúng ta thực hiện tìm "đường bay"

Trang 14

(hyper-plane) phân chia các lớp Hyper-plane nó chỉ hiểu đơn giản là 1 đường thẳng có thể phân chia các lớp ra thành hai phần riêng biệt

- Support Vectors hiểu một cách đơn giản là các đối tượng trên đồ thị tọa độ

quan sát, Support Vector Machine là một biên giới để chia hai lớp tốt nhất

e Huấn luyện mô hình

- Khi làm việc với dữ liệu được gẵn nhãn, 1 tập dữ liệu nhất định thường

được chia thành 3 tập hợp con: tập huấn luyện (training), tập xác thực (validation), tập kiểm tra (test), (1 tập chia điển hình là 50% huấn luyện, 25% mỗi loại xác thực và kiểm tra)

- Huấn luyện là quá trình tạo ra các tham số phân loại Bộ phân loại sẽ gán

nhãn cho từng mẫu, mục tiêu là điều chỉnh tham số nếu bộ phân loại xác định sai lớp của mẫu Khi kết thúc huấn luyện, ta sẽ sử dụng tập xác thực để

so sánh hiệu suất Khi lựa chọn được mô hình sử dụng, ta sẽ dùng tập kiểm tra để kiểm tra những dữ liệu chưa được huấn luyện Nếu mô hình tốt thì kết quả của huấn luyện/xác thực sẽ gần với hiệu suất trong kiểm tra Nếu không thì nó sẽ bị “overfit"

f Lập trình

- Đường dẫn mã nguồn: https://github.com/bjergsen243/Course_DIP_Final

g Kết luận

-Bảng phân chia công việc và đánh giá của nhóm trường

trưởng Nguyễn Thanh Sơn Phần 1.1.1, Cài đặt,

Thuyết trình.

Nhóm trưởng Đặng Trần Hoàng Hà Phần 1.2.1, 1.2.2 8

Ngày đăng: 04/05/2024, 14:22

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

TÀI LIỆU LIÊN QUAN