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

Đề tài lite pose dynamic object detection and segmentation with yolov9+sam

42 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 đề Lite Pose: Dynamic Object Detection and Segmentation with YoloV9+Sam
Tác giả Đỗ Thị Thuý Ngọc, Dương Thị Thu Hiền
Người hướng dẫn TS. Đặng Thị Thuý An
Trường học Trường Đại Học Phenikaa
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo bài tập lớn
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 42
Dung lượng 9,14 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Giới thiệu Introduction● Giới thiệu về bài toán: Trong lĩnh vực thị giác máy tính, nhận diện đối tượng và phân đoạn đối tượng là hai nhiệm vụ cơ bản nhưng quan trọng, ảnhhưởng đến nhiều

Trang 1

TRƯỜNG ĐẠI HỌC PHENIKAA

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

19/11/2024 – Hà Nội

Trang 3

Mục lục

Liệt kê các mục lớn và mục con cùng số trang tương ứng

Trang 5

Danh sách hình vẽ

1 Hình 1 vẽ hình đẹp

2 Hình 2 nội dung gì3

Trang 7

Danh sách bảng biểu

1 Bảng 1

2

3

Trang 9

1 Giới thiệu ( Introduction)

Giới thiệu về bài toán: Trong lĩnh vực thị giác máy tính, nhận diện đối

tượng và phân đoạn đối tượng là hai nhiệm vụ cơ bản nhưng quan trọng, ảnhhưởng đến nhiều ứng dụng thực tế, như hệ thống giám sát an ninh, phân tíchvideo, xe tự lái, và trong y tế để phân tích hình ảnh X-quang hoặc MRI Bàitoán Dynamic Object Detection and Segmentation tập trung vào phát hiệnđối tượng trong môi trường động (chẳng hạn trong video) và phân đoạnchính xác từng đối tượng, giúp phân tích chi tiết và phục vụ các ứng dụngyêu cầu độ chính xác cao

Lý do chọn đề tài: Với sự phát triển mạnh mẽ của trí tuệ nhân tạo và thị

giác máy tính, nhu cầu về các mô hình có thể xử lý thông tin trực quan vớitốc độ và độ chính xác cao ngày càng tăng Đặc biệt trong môi trường động,việc phát hiện và phân đoạn đối tượng là một thách thức, khi mà các đốitượng có thể thay đổi vị trí, hình dạng hoặc thậm chí bị che khuất Đề tài này

sử dụng mô hình YOLOv9 để nhận diện đối tượng và kết hợp với SAM(Segment Anything Model) để thực hiện phân đoạn đối tượng, cung cấp giảipháp toàn diện cho bài toán

Mô tả vấn đề nghiên cứu: Bài toán đặt ra là phát hiện và phân đoạn các đối

tượng trong một cảnh quay hoặc hình ảnh, nơi các đối tượng có thể thay đổitheo thời gian và không gian Việc nhận diện chính xác và phân đoạn chi tiếtmỗi đối tượng là điều kiện cần để ứng dụng vào các bài toán như phân tíchhành vi đối tượng, nhận diện trong môi trường phức tạp, và nhiều ứng dụngkhác

Các phương pháp và công nghệ sử dụng:

o YOLOv9 (You Only Look Once) là một trong những mô hình tiêntiến trong lĩnh vực phát hiện đối tượng, nổi bật với khả năng xử lý ảnh

và video nhanh chóng và chính xác

o SAM (Segment Anything Model) là một mô hình phân đoạn mạnh

mẽ, có khả năng phân đoạn các đối tượng với độ chính xác cao màkhông cần huấn luyện lại cho từng đối tượng riêng biệt

o PyTorch: Đây là framework học sâu mạnh mẽ mà chúng tôi sử dụng

để huấn luyện và triển khai mô hình

o OpenCV và Matplotlib: Được dùng để xử lý ảnh và trực quan hóa kếtquả

Mục tiêu của báo cáo: Mục tiêu của báo cáo này là nghiên cứu và triển khai

giải pháp kết hợp YOLOv9 và SAM để giải quyết bài toán nhận diện vàphân đoạn động Báo cáo sẽ đánh giá hiệu suất của mô hình qua các chỉ sốđánh giá hiệu năng, đồng thời phân tích các kết quả thu được từ các thínghiệm

2 Cơ sở lý thuyết (Background)

Các khái nhiệm cơ bản:

o YOLO (You Only Look Once): YOLO là một trong những mạng học

Trang 10

sâu tiên tiến được sử dụng rộng rãi trong phát hiện đối tượng Mô hình

Trang 11

này chia ảnh thành các lưới và dự đoán các bounding box cho các đốitượng trong từng ô lưới YOLOv9 là phiên bản mới nhất của YOLO,cải tiến hiệu suất với nhiều công nghệ mới như cải thiện độ chính xác

và tốc độ

o Phân đoạn đối tượng: Phân đoạn là quá trình xác định các vùng ảnh

tương ứng với các đối tượng Một trong những kỹ thuật phân đoạnhiện đại là masking, nơi mỗi đối tượng sẽ được bao phủ bởi một mặt

nạ (mask) đặc trưng

o SAM (Segment Anything Model): SAM là mô hình phân đoạn mạnh

mẽ của Meta, có thể phân đoạn bất kỳ đối tượng nào trong ảnh màkhông cần huấn luyện cụ thể cho mỗi đối tượng SAM có thể nhậndiện các đối tượng bằng cách sử dụng hộp giới hạn (bounding box)hoặc điểm chỉ dẫn

Các phương pháp trước đây:

o YOLO Version 1, 2, 3, 4, 5, 6, 7, 8: Những phiên bản trước của

YOLO cũng rất mạnh mẽ trong việc phát hiện đối tượng, nhưng khảnăng phân đoạn hạn chế Các mô hình này chủ yếu dựa vào boundingboxes để xác định các đối tượng

o Mask R-CNN: Đây là một trong những mô hình phân đoạn nổi tiếng,

được xây dựng dựa trên Faster R-CNN nhưng cải tiến thêm khả năngphân đoạn chính xác Tuy nhiên, tốc độ của Mask R-CNN chưa thểđáp ứng yêu cầu về thời gian thực cho các ứng dụng như video phântích

Trang 12

So sánh hiệu suất của YOLOv9 với các phiên bản cũ

Trang 13

3 Phương pháp đề xuất(Methodology)

3.1 Bài toán

● Bài toán đặt ra là phát hiện và phân đoạn các đối tượng trong ảnh và video.Chúng em sẽ kết hợp mô hình YOLOv9 để nhận diện các đối tượng và sử.dụng SAM để phân đoạn chi tiết từng đối tượng đã phát hiện

3.2 Mô hình và thuật toán

● YOLOv9:

○ Tổng quan về YOLOv9: YOLOv9, như các phiên bản trước của

YOLO, sử dụng một mạng nơ-ron duy nhất để phân tích toàn bộ hìnhảnh và dự đoán các bounding boxes (hộp giới hạn) cho các đối tượng,đồng thời xác định xác suất của các lớp đối tượng Tuy nhiên,YOLOv9 đã được cải tiến để xử lý những thách thức khó khăn hơntrong phát hiện đối tượng và phân đoạn, với khả năng nhận diện đốitượng động (dynamic object detection), tức là nhận diện các đối tượngthay đổi và di chuyển trong không gian

○ Cấu trúc mô hình YOLOv9:

■ Mạng Nơ-ron chính (Backbone): YOLOv9 sử dụng một mạng

nơ-ron CNN mạnh mẽ làm phần lõi (backbone), có nhiệm vụtrích xuất các đặc trưng của hình ảnh Các đặc trưng này làthông tin quan trọng để mô hình hiểu được các đối tượng tronghình ảnh Trong YOLOv9, phần backbone có thể là một cấu

Trang 14

trúc đã được tối ưu hóa hơn so với các phiên bản cũ, có thể bao

Trang 15

gồm các lớp sâu hơn và cải tiến, giúp mô hình phát hiện đốitượng tốt hơn.

■ Neck (Cổ): Sau khi các đặc trưng được trích xuất từ phần

backbone, YOLOv9 sử dụng một phần mô hình gọi là neck để

xử lý các đặc trưng này thêm nữa Các công cụ như PANet(Path Aggregation Network) hay FPN (Feature PyramidNetwork) được sử dụng trong phần này để tối ưu hóa việc kếthợp các đặc trưng từ các tầng khác nhau trong mạng nơ-ron,giúp mô hình nhận diện đối tượng ở nhiều tỉ lệ khác nhau tronghình ảnh

■ Head (Đầu): Đây là phần cuối của YOLOv9, nơi mô hình đưa

ra dự đoán cuối cùng Các dự đoán này bao gồm các boundingboxes, lớp đối tượng, và xác suất cho mỗi lớp Phần head có thể

sử dụng các phương pháp như multi-scale prediction để nhậndiện đối tượng ở các kích thước khác nhau, đồng thời tối ưu hóacác dự đoán thông qua việc sử dụng hàm mất mát (lossfunction) như IoU Loss, Confidence Loss, và ClassificationLoss

■ Dynamic Object Detection (Nhận diện đối tượng động):

YOLOv9 được tối ưu hóa để phát hiện các đối tượng động,nghĩa là các đối tượng có thể thay đổi vị trí, hình dạng và tìnhtrạng trong suốt quá trình theo dõi Điều này làm cho YOLOv9đặc biệt hiệu quả trong các ứng dụng yêu cầu phát hiện đốitượng trong video hay cảnh quay động, như giám sát giaothông, tự lái xe, hay phân tích hành vi

● SAM:

○ Tổng quan về SAM: Segmentation Anything Model (SAM) là một

mô hình phân đoạn hình ảnh mạnh mẽ và linh hoạt, được phát triển đểphân đoạn tất cả các đối tượng trong một hình ảnh mà không cần yêucầu huấn luyện riêng biệt cho mỗi loại đối tượng SAM có thể phânđoạn mọi loại đối tượng, từ các đối tượng cụ thể như xe hơi, người,cho đến các đối tượng trừu tượng, tất cả trong một mô hình duy nhất

Mô hình này kết hợp các công nghệ tiên tiến của thị giác máy tính,bao gồm học sâu và cơ chế chú ý (attention mechanism) để tự độngphát hiện và phân đoạn bất kỳ đối tượng nào trong hình ảnh

Trang 17

○ Cấu trúc mô hình của SAM:

Sơ đồ kiến trúc của SAM

■ Mạng Nơ-ron Convolutional (CNN) Pre-trained: SAM sử

dụng một mạng nơ-ron convolutional (CNN) đã được huấnluyện trước để trích xuất đặc trưng từ ảnh đầu vào Mạng CNNnày giúp nhận dạng các đặc trưng không gian của đối tượngtrong ảnh, ví dụ như các cạnh, hình dạng, màu sắc và kết cấu

■ Cơ Chế Chú Ý (Attention Mechanism): Một yếu tố quan trọng

trong SAM là cơ chế chú ý không gian (spatial attentionmechanism), giúp mô hình tập trung vào các vùng quan trọngtrong ảnh Điều này giúp cải thiện độ chính xác của phân đoạnđối tượng, đặc biệt trong các tình huống khi đối tượng có kíchthước nhỏ hoặc có sự thay đổi mạnh trong hình ảnh

■ Phân Đoạn Bất Kỳ (Any Object Segmentation): SAM không

yêu cầu huấn luyện cho mỗi loại đối tượng riêng biệt, mà có thểphân đoạn bất kỳ đối tượng nào trong hình ảnh Khi người dùngchỉ định một vùng quan tâm (ví dụ, thông qua một hộp giới hạn(bounding box) hoặc điểm đánh dấu), SAM sẽ tạo ra phân đoạnchính xác cho đối tượng trong khu vực đó

■ Bản Đồ Chú Ý Không Gian (Spatial Attention Map): Một bản

đồ chú ý không gian được sinh ra trong quá trình tính toán phânđoạn Bản đồ này sẽ xác định vùng nào trong ảnh chứa đốitượng cần phân đoạn Mô hình sẽ tập trung vào các vùng có tỷ

lệ chú ý cao và bỏ qua các vùng có tỷ lệ chú ý thấp

■ Tạo Mask Phân Đoạn: Sau khi tính toán bản đồ chú ý không

gian, SAM sử dụng thông tin này để tạo ra mask phân đoạn chođối tượng trong hình ảnh Mask này sẽ xác định chính xác cácpixel thuộc về đối tượng, từ đó giúp phân đoạn đối tượng hiệuquả

■ Đầu Ra - Mask Phân Đoạn: Cuối cùng, mô hình SAM cung

cấp kết quả phân đoạn cho mọi đối tượng trong ảnh, bao gồmmask phân đoạn cho mỗi đối tượng, cùng với các điểm quantrọng như độ tin cậy (confidence score) và tên đối tượng nếu có

● Các siêu tham số của mô hình và cách bạn lựa chọn chúng:

○ Kích thước ảnh (Image Size): Kích thước ảnh đầu vào ảnh hưởng

trực tiếp đến thời gian huấn luyện và khả năng phát hiện đối tượngcủa mô hình Thường sử dụng các kích thước như [640, 640] hoặc[416, 416] để cân bằng giữa độ chính xác và tốc độ Trong bài toánnày, chúng tôi sử dụng kích thước [640, 640] để có sự cân bằng tốtgiữa chi tiết và tốc độ xử lý

○ Conf Thresh (Ngưỡng xác suất): Đây là ngưỡng quyết định liệu một

đối tượng có được phát hiện hay không dựa trên xác suất mà mô hìnhđưa ra Một ngưỡng thấp (ví dụ 0.1) giúp phát hiện nhiều đối tượnghơn nhưng có thể bao gồm nhiều lỗi, trong khi ngưỡng cao (ví dụ 0.5)giúp giảm lỗi nhưng có thể bỏ lỡ một số đối tượng Trong bài toánnày, chúng tôi lựa chọn ngưỡng xác suất là 0.1 để tăng khả năng phát

Trang 18

y, g ự ọ g g g g phiện các đối tượng nhỏ và khó nhận diện.

Trang 19

○ IoU Thresh (Ngưỡng Intersection over Union): Được sử dụng để lọc

các bounding box chồng lấp IoU là thước đo độ chính xác trong việcchồng lấp các hộp giới hạn Ngưỡng phổ biến là 0.45, giúp loại bỏ cácđối tượng không chính xác trong khi vẫn giữ được các đối tượng cóxác suất cao

○ Số Epochs và Batch Size: Số lượng epoch quyết định số lần mô hình

được huấn luyện trên toàn bộ dữ liệu, trong khi batch size quyết định

số lượng mẫu được xử lý trong một lần cập nhật trọng số Thôngthường, batch size có thể là 16, 32, hoặc 64, tùy thuộc vào dung lượng

bộ nhớ và kích thước của dữ liệu Chúng tôi chọn batch size là 16 và

số epoch là 50 để đảm bảo mô hình có đủ thời gian học nhưng khôngquá lâu gây lãng phí tài nguyên

○ Learning Rate: Learning rate quyết định tốc độ cập nhật trọng số của

mô hình trong mỗi bước huấn luyện Một learning rate quá lớn có thểkhiến mô hình học không ổn định, trong khi một learning rate quá nhỏ

có thể khiến mô hình học chậm Trong bài toán này, learning rateđược chọn là 0.001, dựa trên các thí nghiệm trước đó

● Cách mô hình hoạt động:

○ Tiền xử lý dữ liệu: Dữ liệu hình ảnh được tải lên và tiền xử lý như

chuẩn hóa kích thước, thay đổi tỷ lệ và chuẩn hóa màu sắc

○ Dự đoán đối tượng: Mô hình YOLOv9 xử lý hình ảnh đầu vào và dự

đoán các bounding box cho các đối tượng

○ Áp dụng Spatial Attention: SAM được áp dụng để chú ý đến các khu

vực quan trọng trong hình ảnh, đặc biệt là các đối tượng động

○ Phân đoạn và nhận diện: Các đối tượng và vùng quan trọng được

phân đoạn, và các kết quả được trình bày

● Công cụ và thư viện:

○ PyTorch: Được sử dụng để xây dựng và huấn luyện mô hình

YOLOv9 và SAM

○ OpenCV: Được sử dụng để xử lý ảnh và tiền xử lý dữ liệu.

○ Matplotlib: Được sử dụng để trực quan hóa kết quả phân đoạn và

nhận diện

● Môi trường làm việc:

○ Phần cứng: GPU NVIDIA Tesla V100 để tăng tốc quá trình huấn

luyện

○ Phần mềm: Python 3.8, PyTorch, OpenCV, Matplotlib.

4 Thực Nghiệm (Experiments)

Dữ liệu đầu vào và xử lý dữ liệu:

○ Chuẩn bị môi trường và tài nguyên cần thiết để làm việc với mô

Trang 20

hình YOLOv9

Trang 21

○ Kết nối Google Drive: Giúp truy cập dữ liệu lưu trữ trên Google

○ Cài đặt thư viện yêu cầu: Đảm bảo các thư viện cần thiết được cài đặt.

○ Lấy đường dẫn thư mục hiện tại: Dễ dàng tham chiếu đến thư mục

làm việc trong các bước tiếp theo

○ Tải xuống các tệp trọng số (weights) cần thiết cho mô hình YOLOv9

○ Tạo thư mục lưu trữ trọng số: Đảm bảo các tệp trọng số được lưu ở

một vị trí dễ quản lý

○ Tải trọng số từ GitHub:

■ Mỗi tệp trọng số đại diện cho một phiên bản mô hình đã được

huấn luyện trước, sẵn sàng sử dụng để phát hiện hoặc phân đoạn đối tượng

Trang 22

■ Các tệp trọng số được lưu cục bộ để sử dụng trong các bước

tiếp theo mà không cần tải lại

Trang 23

● Thiết lập thí nghiệm:

○ Dữ liệu: Bộ dữ liệu hình ảnh từ Roboflow.

○ Các tham số huấn luyện: Learning rate = 0.001, batch size = 16, số

epoch = 50

○ Thuật toán tối ưu hóa: Adam optimizer.

● Quy trình huấn luyện và kiểm tra:

○ Phát hiện đối tượng với YOLOv9:

○ Tải mô hình và trọng số: Tệp gelan-c.pt được tải vào để thiết lập mô

hình YOLO

○ Xử lý hình ảnh đầu vào: Hình ảnh được đọc, chuẩn bị, và đưa qua mô

hình để phân tích và đặt ngưỡng độ tin cậy là 0.1 giúp phát hiện nhiềuđối tượng hơn

○ Phát hiện đối tượng

■ Dự đoán bounding boxes (hộp bao quanh đối tượng) cho các

đối tượng có trong ảnh

■ Gắn nhãn (label) các đối tượng dựa trên tập class mà mô hình

đã được huấn luyện

○ Lưu kết quả

■ Kết quả phát hiện được lưu trong thư mục mặc định (thường là

runs/detect/exp/) dưới dạng hình ảnh và tệp txt bao gồm cảđiểm số độ tin cậy cho từng đối tượng được phát hiện

Trang 25

○ Sử dụng IPython.display để hiển thị hình ảnh đầu ra từ thư mục kết

quả Hình ảnh được điều chỉnh chiều rộng xuống 600 pixel để thuậntiện hơn khi xem trong notebook, cung cấp xác nhận trực quan về kếtquả phát hiện được thực hiện bởi mô YOLOv9:

Trang 27

○ Phân đoạn với SAM:

○ Xử lý tệp văn bản đầu ra của YOLOv9

■ Đọc ảnh và lấy kích thước ảnh

■ Đọc tệp kết quả phát hiện từ YOLOv9

■ Chuyển đổi tọa độ chuẩn hóa thành tọa độ thực tế

■ Lưu và in thông tin

○ Khởi tạo Spatial Attention Module để phân đoạn ảnh sử dụng thư viện

Segment-Anything Nó chỉ định đường dẫn đến trọng số đã được huấnluyện trước (sam_vit_h_4b8939.pth) và chọn loại mô hình vit_h từsam_model_registry Sau đó, nó tạo một thể hiện của mô hình SAMvới trọng số đã được tải Cuối cùng, một SamPredictor được khởi tạo

với mô hình SAM, làm cho nó sẵn sàng để tạo ra các mặt nạ phânđoạn cho các đối tượng đã được phát hiện trong ảnh Cài đặt này làcần thiết để áp dụng phân đoạn chi tiết, nâng cao kết quả của các tác

vụ phát hiện đối tượng

○ Đọc và chuyển đổi ảnh, sau đó cung cấp ảnh cho SAM Predictor (đối

tượng predictor) để chuẩn bị cho quá trình dự đoán phân đoạn Nếu

Trang 28

ợ g p ) ị q ự p ạ

Trang 29

ảnh không được chuyển sang không gian màu RGB hoặc không đượccung cấp đúng định dạng, mô hình có thể hoạt động không chính xác.

○ Kết hợp YOLOv9 và SAM

○ Đọc nhãn lớp từ tệp YAML

○ Tạo ánh xạ màu sắc cho mỗi lớp: Một dictionary ánh xạ mỗi lớp đối

tượng (class ID) với một màu RGBA ngẫu nhiên (RGB + độ trong

suốt alpha = 0.6)

○ Hiển thị mặt nạ

○ Hiển thị hộp chứa

Ngày đăng: 15/02/2025, 22:08

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

TÀI LIỆU LIÊN QUAN

w