Đồ án này đặt ra mục tiêu xây dựng một hệ thống truy xuất hình ảnh động vật dựa vào các đặc trưng nổi bật của chúng.. Mô tả bài toán Bài toán của đề tài là xây dựng một hệ thống truy xu
Trang 1-
BÁO CÁO
ĐỒ ÁN NHẬP MÔN THỊ GIÁC MÁY TÍNH
ĐỀ TÀI: Truy xuất hình ảnh động vật dựa vào đặc trưng
SV THỰC HIỆN : Đoàn Vũ Phú Minh – 22520859 Nguyễn Thọ Quang – 22521204 Nguyễn Phan Anh Minh – 22520878 LỚP : CS231.O22 – VN
HỒ CHÍ MINH, 6-2024
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 3LỜI MỞ ĐẦU
THÔNG TIN CÁC THÀNH VIÊN
CHƯƠNG 1 TỔNG QUAN 1
1.1 Mô tả bài toán 1
1.2 Lý do chọn đề tài 1
1.3 Phát biểu bài toán 1
CHƯƠNG 2 CÁC PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN 3
2.1 Trích xuất đặc trưng Edge Detection 3
2.1.1 Tổng quan về thuật toán Canny Edge Detection 2.1.2 Nguyên lí hoạt động 2.1.3 Ưu điểm và nhược điểm của Edge Detection 2.2 Trích xuất đặc trưng HOG 6
2.2.1 Tổng quan 2.2.2 Nguyên lí hoạt động 2.2.3 Ưu, nhược điểm của HOG 2.3 Trích xuất đặc trưng CNN 11
2.3.1 Tổng quan về thuật toán CNN 2.3.2 Nguyên lí hoạt động 2.3.3 Ưu, nhược điểm của CNN CHƯƠNG 3 KẾT QUẢ THỰC NGHIỆM CỦA 3 PHƯƠNG PHÁP 15
3.1 Set up thực nghiệm .15
3.1.1 Dataset
3.1.2 Method
3.1.3 Độ đo
Trang 43.2 Kết quả thực nghiệm :……… 17 CHÚ THÍCH………19 TÀI LIỆU THAM KHẢO 19
Trang 5Lời mở đầu
Trong thời đại của sự phát triển công nghệ, việc áp dụng các giải pháp thông minh để giải quyết các vấn đề trong cuộc sống hàng ngày không chỉ trở nên cần thiết mà còn trở thành một ưu tiên hàng đầu Trong lĩnh vực này, việc truy xuất và nhận diện hình ảnh động vật
đã trở thành một thách thức đáng kể Khả năng này không chỉ hỗ trợ trong việc nghiên cứu và bảo vệ đa dạng sinh học mà còn có ứng dụng rộng rãi trong nhiều lĩnh vực như giám sát môi trường, quản lý thú y, và giáo dục
Đồ án này đặt ra mục tiêu xây dựng một hệ thống truy xuất hình ảnh động vật dựa vào các đặc trưng nổi bật của chúng Thông qua việc kết hợp các phương pháp và công nghệ tiên tiến trong xử lý ảnh và máy học, chúng tôi mong muốn tạo ra một công cụ mạnh mẽ, linh hoạt và hiệu quả cho việc nhận diện và truy xuất thông tin về động vật từ các bức ảnh
Báo cáo này sẽ trình bày quá trình nghiên cứu, phân tích, thiết kế và triển khai hệ thống của chúng tôi Chúng tôi hy vọng rằng kết quả của đề tài này sẽ đóng góp một phần nhỏ trong việc nâng cao khả năng nhận diện và bảo vệ các loài động vật, đồng thời mở ra những cơ hội mới trong ứng dụng công nghệ để giải quyết các vấn đề trong thế giới tự nhiên và xã hội
Trang 6Thông tin thành viên
STT Họ và tên MSSV Phân công Mức độ hoàn
thành
tiền xử lý dữ liệu, thuật toán Edge Detection, slide, viết báo cáo
100%
tiền xử lý dữ liệu, thuật toán CNN, slide, viết
báo cáo
100%
3 Nguyễn Phan Anh Minh 22520878 Chọn lọc các ảnh từ dataset,
tiền xử lý dữ liệu, thuật toán HOG, slide, viết báo cáo
100%
Trang 7CHƯƠNG 1 TỔNG QUAN
1.1 Mô tả bài toán
Bài toán của đề tài là xây dựng một hệ thống truy xuất hình ảnh động vật dựa vào đặc trưng, nhằm nhận diện và trích xuất thông tin từ các hình ảnh chứa động vật
Sử dụng kỹ thuật xử lý ảnh số và máy học, mục tiêu là phát triển các bộ phân loại
có khả năng nhận diện đa dạng các loài động vật và tạo ra một ứng dụng linh hoạt
và hiệu quả cho việc truy xuất thông tin về động vật từ các nguồn dữ liệu khác nhau
1.2 Lý do chọn đề tài
• Tìm kiếm thông tin: hỗ trợ tìm kiếm, truy xuất hình ảnh thông tin của
những động vật mới hoặc lạ trong tự nhiên
• Phát triển công nghệ: Làm nền tảng cho việc phát triển các mô hình tìm
kiếm hình ảnh từ nội dung hình ảnh, văn bản nói chung
1.3 Phát biểu bài toán
- Input: Một ảnh có chứa một đối tượng động vật
- Output: K ảnh có chứa đối tượng động vật tương tự
Pipeline
1 Tải dữ liệu
2 Vector hóa ảnh dữ liệu và lưu trữ
3 Vector hóa ảnh cần tìm kiếm
4 Tính toán khoảng cách và vị trí của vector trong kho lưu trữ
Trang 8FAISS
Faiss là một thư viện mã nguồn mở được phát triển bởi Facebook AI Research (FAIR), chuyên dùng cho việc tìm kiếm và phân cụm trên dữ liệu lớn trong không gian vector
Faiss có thể thực hiện các tác vụ tìm kiếm vector cực kỳ nhanh chóng và hiệu quả, thậm chí trên các tập dữ liệu vector lớn
Faiss hỗ trợ nhiều độ đo vector khác nhau như (Eculid, Cosine,…)
Trang 9CHƯƠNG 2: CÁC PHƯƠNG PHÁP GIẢI QUYẾT BÀI TOÁN
2.1 Trích xuất đặc trưng Edge Detection
2.1.1 Tổng quan về thuật toán Canny Edge Detection
Thuật toán phát hiện cạnh Canny (Canny Edge Detector) là một trong những
phương pháp phổ biến và hiệu quả nhất để phát hiện các cạnh trong hình ảnh
Được phát triển bởi John F Canny vào năm 1986, thuật toán Canny Edge
Detector bao gồm một loạt các bước chính để tạo ra một hình ảnh chỉ chứa
a) Làm trơn ảnh: Trước hết, hình ảnh được làm trơn bằng cách sử dụng một bộ
lọc Gaussian để giảm nhiễu Làm trơn giúp loại bỏ các chi tiết không mong
muốn và làm cho cạnh trở nên mượt mà hơn
Hình 2
b) Tìm gradient của hình ảnh: Sau khi làm trơn, gradient của hình ảnh được
tính toán bằng cách sử dụng bộ lọc gradient như Sobel Độ lớn của gradient và
hướng của gradient tại mỗi điểm ảnh được tính toán
Trang 104
Hình 3
c) Làm mảnh đường biên:Có nhiều pixel cùng miêu tả một pixel trên cạnh của
ảnh ban đầu làm cho đường biên dày Vậy để làm những đường biên trở nên
sắc nét và mảnh hơn giống ảnh gốc ta sử dụng Non-maximum supression để
loại bỏ những pixel thừa
Hình 4
Hình 5
Trang 11d) Loại bỏ cạnh nhiễu ('Hysteresis' thresholding): Bước này sẽ quyết định một
cạnh ta dự đoán ở các bước trên nó có phải là một cạnh thật sự hay không Giá trị threshold ở đây có hai ngưỡng Vmax và Vmin
Hình 6
2.1.3 Ưu điểm và nhược điểm của Edge Detection
Ưu điểm:
a) Phát hiện ranh giới rõ ràng: Phương pháp Edge Detection giúp phát hiện
ranh giới của các đối tượng trong hình ảnh một cách nhanh chóng và chính
xác, giúp trong việc nhận diện hình dáng và cấu trúc của các động vật
b) Giảm chiều dữ liệu: Bằng cách chỉ trích xuất các đặc trưng quan trọng như
các ranh giới và đường nét quan trọng, phương pháp Edge Detection giúp giảm kích thước dữ liệu và tăng tốc độ xử lý, đặc biệt là khi làm việc với các bộ dữ liệu lớn
c) Khả năng áp dụng rộng rãi: Phương pháp này có thể áp dụng được cho nhiều
loại hình ảnh và không yêu cầu sự chuẩn bị đặc biệt của dữ liệu, làm cho nó
linh hoạt và dễ triển khai
Nhược điểm:
a) Nhạy cảm với nhiễu: Edge Detection dễ bị ảnh hưởng bởi nhiễu trong hình
ảnh, gây ra các đường viền không mong muốn hoặc thiếu sót trong việc phát hiện ranh giới, làm giảm độ chính xác của quá trình nhận diện
Trang 126
b) Phụ thuộc vào điều kiện ánh sáng: Hiệu suất của Edge Detection có thể bị
ảnh hưởng bởi điều kiện ánh sáng trong hình ảnh Các đối tượng có thể không được phát hiện đầy đủ hoặc bị phát hiện sai nếu có sự biến đổi đáng kể về ánh sáng
c) Thiếu thông tin về chi tiết: Edge Detection thường chỉ tập trung vào việc phát
hiện các đường nét lớn và ranh giới chính, trong khi bỏ qua các chi tiết nhỏ và quan trọng trong hình ảnh, làm giảm độ chính xác của việc nhận diện
2.2 Trích xuất đặc trưng Histogram of Oriented Gradient
2.2.1.Tổng quan
Mấu chốt của nguyên lý này là hình dạng của một vật thể được mô tả thông qua 2 ma trận
đó là ma trận độ gradient và ma trận phương gradient Từ 2 ma trận này sẽ hình thành Histogram of Gradient và sau đó là có được vecto mô tả đặc trưng cho bức ảnh
ma trận là ma trận độ lớn gradient và ma trận phương gradient
Hình 7
Trang 13Tính histogram of gradient từ 2 ma trận độ gradient và phương gradient Ví dụ bên dưới
thì histogram này có 9 bins Mỗi một phương gradient theo bảng bên trái sẽ ghép cặp với một độ lớn gradient bên phải Sau khi biết được phương gradient thuộc bins nào trong vecto bins, ta sẽ điền giá trị độ lớn gradient vào bin đó, ví dụ như 80 thuộc bin thứ 5 thì ta sẽ điền vào đó là 2
Hình 8
Trong trường hợp độ lớn phương gradients không rơi vào các đầu mút, ta sẽ sử dụng linear interpolation để phân chia độ lớn gradient về 2 bins liền kề mà giá trị phương gradient rơi
vào Ví dụ: giá trị phương gradient bằng x ghép cặp với độ lớn gradient bằng y x thuộc
[x0, x1] tức là phương gradient rơi vào khoảng giữa bin thứ (l-1) và bin thứ l Khi đó tại 2 bins (l-1) và l được điền vào giá trị cường độ theo công thức interpolation
Trang 148
Hình 9
Tính tổng tất cả các độ lớn gradient thuộc cùng 1 bins của véc tơ bins ta thu được biểu đồ Histogram of Gradients như bên dưới:
Trang 15Hình 10
Chuẩn hóa vecto histogram theo block 16x16
Sau khi có HOG của từng cell rồi thì mình sẽ chuẩn hóa vecto histogram theo block 2x2 cell ( chuẩn hóa nhằm để tạo ra sự bất biến với sự thay đổi chiếu sáng và đổ bóng ) Một block là sẽ có 4 vecto histogram kích thước 1x9, tổng hợp lại là 1x36 Rồi mình sẽ chuẩn hóa theo *norm chuẩn bậc 2 hoặc 1 Sau khi chuẩn hóa vecto xong 1 block chúng ta sẽ tới block tiếp theo bằng cách di chuyển window với step_size = 8 pixels
Hình 11
Trang 1636 chiều Do đó cuối cùng véc tơ HOG sẽ có kích thước là 105x36=3780 chiều Đây là một véc tơ kích thước tương đối lớn nên có thể mô phỏng được đặc trưng của ảnh khá tốt
Hình 12
2.2.3 Ưu, nhược điểm của HOG
Ưu điểm:
Trang 171 Hiệu quả cao trong việc mô tả đặc trưng: HOG có khả năng mô tả các
đặc trưng hình ảnh một cách hiệu quả, đặc biệt là đối với các đối tượng
có hình dạng và cấu trúc rõ ràng
2 Tính toán nhanh: Thuật toán HOG tương đối đơn giản và có thể tính
toán nhanh chóng, giúp tiết kiệm thời gian xử lý
3 Khả năng chống nhiễu tốt: HOG ít bị ảnh hưởng bởi các nhiễu trong
ảnh như thay đổi ánh sáng, góc nhìn,
4 Bất biến theo phép biến đổi hình ảnh: HOG có khả năng bất biến theo
một số phép biến đổi hình ảnh cơ bản như dịch chuyển, xoay, thay đổi kích thước
5 Dễ dàng triển khai: HOG có thể được triển khai dễ dàng trên nhiều nền
tảng phần cứng và phần mềm khác nhau
Nhược điểm:
6 Độ nhạy cảm với độ phân giải ảnh: Hiệu quả của HOG có thể bị ảnh
hưởng bởi độ phân giải ảnh Khi ảnh có độ phân giải thấp, HOG có thể không mô tả được đầy đủ các đặc trưng của đối tượng
7 Khả năng phân biệt đối tượng kém trong điều kiện phức tạp: HOG
có thể gặp khó khăn trong việc phân biệt các đối tượng có hình dạng và cấu trúc tương đồng, đặc biệt là trong điều kiện ánh sáng yếu hoặc có nhiều nhiễu
8 Kích thước mô tả đặc trưng lớn: HOG có thể tạo ra mô tả đặc trưng có
kích thước khá lớn, dẫn đến việc tốn nhiều bộ nhớ và thời gian xử lý cho các ứng dụng có quy mô lớn
2.3 Trích xuất đặc trưng Convolutional Neural Network
2.3.1 Tổng quan về thuật toán Convolutional Neural Network
Mạng Convolutional Neural Network (CNN) là một loại mạng nơ-ron đặc biệt, rất hiệu quả trong các bài toán liên quan đến thị giác máy tính như nhận dạng hình ảnh, phân loại hình ảnh, và phát hiện đối tượng Khác với các trính xuất đặc trưng khác, CNN có khả năng tự động học và trích xuất các đặc trưng quan trọng từ ảnh đầu vào thông qua các lớp tích chập và pooling
2.3.2 Nguyên lí hoạt động
Trang 1812
CNN hoạt động thông qua việc áp dụng một loạt các lớp tích chập (convolutional layers), hàm kích hoạt (activation functions), và các lớp pooling để trích xuất các đặc trưng từ ảnh đầu vào Các lớp này có thể được mô tả chi tiết như sau:
a) Convolutional Layers (Lớp tích chập): Các lớp này sử dụng các bộ lọc
(filters) để quét qua ảnh và phát hiện các đặc trưng cục bộ như cạnh, góc, và các hình dạng đơn giản Mỗi bộ lọc tạo ra một bản đồ đặc trưng (feature map) tương ứng
b) Activation Functions (Hàm kích hoạt): Sau mỗi lớp tích chập, hàm kích hoạt
như ReLU (Rectified Linear Unit) được áp dụng để thêm tính phi tuyến vào mạng, giúp mạng học các mối quan hệ phức tạp trong dữ liệu
c) Pooling Layers (Lớp pooling): Lớp này giảm kích thước không gian của các
bản đồ đặc trưng bằng cách lấy giá trị cực đại (max pooling) hoặc giá trị trung bình (average pooling) trong các vùng nhỏ của bản đồ đặc trưng Pooling giúp giảm số lượng tham số và tính toán trong mạng
d) Fully Connected Layers (Lớp kết nối hoàn toàn): Các lớp này thường được
đặt ở cuối mạng để thực hiện việc phân loại hoặc dự đoán dựa trên các đặc trưng đã được trích xuất từ các lớp tích chập và pooling
Mô hình sử dụng:
Hình 13
Cách xử lý một tấm ảnh khi đi qua Convolutional Neural Network:
Trang 19a) Input Layer (Lớp đầu vào):
Ảnh đầu vào được xử lý qua một số lượng bộ lọc nhất định (ví dụ: 64 bộ lọc), mỗi bộ lọc sẽ quét qua ảnh và tạo ra một bản đồ đặc trưng Mỗi giá trị trong bản đồ đặc trưng là kết quả của tích chập giữa bộ lọc và một vùng nhỏ của ảnh
b) Convolutional Layer (Lớp tích chập):
Ảnh đầu vào được xử lý qua một số lượng bộ lọc nhất định (ví dụ: 64 bộ lọc), mỗi bộ lọc sẽ quét qua ảnh và tạo ra một bản đồ đặc trưng Mỗi giá trị trong bản đồ đặc trưng là kết quả của tích chập giữa bộ lọc và một vùng nhỏ của ảnh
c) Activation Function (Hàm kích hoạt):
Các giá trị trong bản đồ đặc trưng được áp dụng hàm kích hoạt ReLU
(Rectified Linear Unit) để thêm tính phi tuyến, giúp mô hình học các mối quan
hệ phức tạp trong dữ liệu
d) Pooling Layer (Lớp pooling):
Bản đồ đặc trưng được giảm kích thước thông qua các lớp pooling (ví dụ: max pooling), giúp giảm số lượng tham số và tính toán trong mạng
e) Fully Connected Layer (Lớp kết nối hoàn toàn):
Các bản đồ đặc trưng cuối cùng được chuyển thành một vector và đưa qua các lớp kết nối hoàn toàn để thực hiện việc phân loại hoặc dự đoán
f) Output Layer (Lớp đầu ra):
Kết quả cuối cùng có thể là một vector đặc trưng đại diện cho ảnh, hoặc là các xác suất của các lớp phân loại
2.3.3 Ưu điểm và nhược điểm của Convolutional Neural Network
Ưu điểm:
a) Tự động trích xuất đặc trưng: CNN tự động học và trích xuất các đặc
trưng từ dữ liệu, loại bỏ nhu cầu về việc thiết kế thủ công các bộ trích xuất đặc trưng
b) Hiệu suất cao: CNN thường có hiệu suất cao trong các bài toán thị giác
máy tính, như phân loại ảnh và nhận dạng đối tượng
Nhược điểm:
a) Yêu cầu tài nguyên tính toán lớn: Huấn luyện và triển khai CNN yêu
cầu tài nguyên tính toán lớn, bao gồm cả CPU và GPU mạnh mẽ
Trang 2014
b) Dữ liệu huấn luyện lớn: CNN thường yêu cầu lượng dữ liệu lớn để đạt
được hiệu suất tốt, điều này có thể là một thách thức trong các ứng dụng với dữ liệu hạn chế
c) Độ phức tạp của mô hình: CNN có cấu trúc phức tạp với nhiều tham
số, điều này làm cho việc điều chỉnh và tối ưu hóa mô hình trở nên khó khăn
d) Overfitting: CNN dễ bị overfitting khi huấn luyện trên các tập dữ liệu
nhỏ hoặc không đa dạng Điều này đòi hỏi các kỹ thuật regularization và
dữ liệu phong phú để giảm thiểu vấn đề
Trang 21CHƯƠNG 3: THỰC NGHIỆM:
3.1 Set up thực nghiệm :
3.1.1 Dataset :
Tập dữ liệu được sử dụng trong thực nghiệm bao gồm ảnh của 5 loài động vật:
chó, mèo, gà, voi, và nhện Mỗi loài động vật được chia thành 100 ảnh cho huấn
luyện và 25 ảnh cho kiểm test
Hình 14
3.1.2 Method :
a) Canny Edge Detection:
Phát hiện cạnh là phương pháp trích xuất đặc trưng dựa trên việc tìm các đường biên của các đối tượng trong ảnh
Các tham số sử dụng:
Blur_ksize : 5 Threshold1 : 100 Threshold2 : 200
c) HOG :
Trang 2216
HOG là phương pháp trích xuất đặc trưng dựa trên việc đếm số lượng các gradient hướng trong các vùng cục bộ của ảnh
Các tham số sử dụng : Pixels_per_cell : (8,8) Cells_per_block : (2,2) Block_norm : “L2”
d) CNN :
CNN là phương pháp trích xuất đặc trưng dựa trên mạng nơ-ron tích chập Mô hình CNN được sử dụng trong thực nghiệm bao gồm các lớp tích chập, pooling và các lớp kết nối hoàn toàn
Các tham số sử dụng:
Learning rate : 0.01 Optimizer: Adam Epochs : 50 Batch size : 250 3.1.3 Độ đo :
a) Metrics : Precion, Recall
Precision thể hiện tỷ lệ giữa số lượng ảnh đúng (relevant images) trong tập kết quả trả về và tổng số ảnh mà hệ thống trả về Nói cách khác, precision đánh giá mức độ mà các ảnh trong tập kết quả thực sự phù hợp với truy vấn
Recall được sử dụng để chỉ tỉ lệ số lượng các hình ảnh có sẵn trong
cơ sở dữ liệu mà hệ thống đã trả về so với tổng số hình ảnh có trong cơ sở
dữ liệu và có nhãn tương tự với hình ảnh truy vấn