đồ án 1 phân lớp ảnh sử dụng phương pháp clip contrastive language image pre training

46 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 phân lớp ảnh sử dụng phương pháp clip contrastive language image pre training

Đ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

Các thách thức Bài toán phân lớp hình ảnh sử dụng CLIP và phương pháp zero-shot đối mặt với một số thách thức quan trọng: ● Khả năng hiểu ngôn ngữ và ngữ cảnh: Để thực hiện phân lớp dự đ

Trang 1

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

TRẦN NGỌC NHẬT VY LÊ THỊ BÍCH HẰNG

ĐỒ ÁN 1

Phân lớp ảnh sử dụng phương pháp CLIP (Contrastive Language-Image Pre-Training)

Trang 2

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

TRẦN NGỌC NHẬT VY - 21520536 LÊ THỊ BÍCH HẰNG - 21522041

ĐỒ ÁN 1

Phân lớp ảnh sử dụng phương pháp CLIP (Contrastive Language-Image Pre-Training)

GIẢNG VIÊN HƯỚNG DẪN

TS NGUYỄN TẤN TRẦN MINH KHANG

Trang 3

2.3.1 Tải xuống các mô hình đã được huấn luyện trước 12

Trang 4

2.3.5 Thực hiện dự đoán 13

Trang 6

DANH MỤC HÌNH

Hình 1.1 Đầu vào và đầu ra của bài toán phân loại hình ảnh 2

Trang 8

DANH MỤC TỪ VIẾT TẮT

Pre-Training

Trang 9

PHỤ CHƯƠNG

GitHub: https://github.com/ImageCLIP

Trang 10

TÓM TẮT

Bài toán phân lớp hình ảnh sử dụng CLIP và phương pháp “zero-shot” là một trong những bài toán phổ biến và quan trọng trong lĩnh vực thị giác máy tính và trí tuệ nhân tạo hiện nay Ở bài toán này, chúng tôi sử dụng mô hình có sẵn của CLIP (OpenAI) được huấn luyện trên bộ dữ liệu gồm hơn 400 triệu cặp hình ảnh-văn bản (image-text) và phương pháp “zero-shot” Mục đích của bài toán này là phân lớp hình ảnh thuộc các lớp mà mô hình chưa từng thấy trong quá trình huấn luyện Đồng thời đó trong báo cáo này cũng giới thiệu về việc xây dựng ứng dụng đã tích hợp với mô hình phân lớp của bài toán trên

Trang 11

Sự tiến bộ liên tục trong công nghệ hình ảnh, bao gồm sự phát triển của cảm biến hình ảnh cao cấp và ứng dụng thị giác máy tính, mở ra cơ hội cho việc phát triển các phương pháp phân lớp mạnh mẽ hơn Và bên cạnh đó, bài toán này không chỉ đóng góp vào sự phát triển liên tục của công nghệ hình ảnh mà còn giúp làm cho các hệ thống phân lớp hình ảnh trở nên hiệu quả hơn và phù hợp với nhiều ứng dụng đa dạng trong thế giới thực

1.2 Phát biểu bài toán

Đầu vào của bài toán là một bức ảnh, đầu ra là tên của lớp đối tượng

“Dolphin”

Hình 1.1 Đầu vào và đầu ra của bài toán phân loại hình ảnh

Trang 12

1.3 Các thách thức

Bài toán phân lớp hình ảnh sử dụng CLIP và phương pháp zero-shot đối mặt với một số thách thức quan trọng:

● Khả năng hiểu ngôn ngữ và ngữ cảnh: Để thực hiện phân lớp dự đoán, mô

hình phải hiểu cả văn bản mô tả và hình ảnh Điều này đòi hỏi mô hình có khả năng hiểu ngôn ngữ và ngữ cảnh một cách đầy đủ và chính xác

● Học từ dữ liệu giới hạn: Mô hình CLIP thường cần được huấn luyện trên một

lượng lớn dữ liệu hình ảnh và văn bản Tuy nhiên, dữ liệu giới hạn có thể dẫn đến việc hạn chế hiệu suất của mô hình, đặc biệt khi cần phân loại vào các lớp chưa từng thấy trước đó

● Phát triển và tinh chỉnh mô hình: Tùy thuộc vào ứng dụng cụ thể, việc phát

triển và tinh chỉnh mô hình CLIP có thể đòi hỏi kiến thức sâu rộng về học máy và thị giác máy tính Việc lựa chọn tham số, tối ưu hóa, và đảm bảo hiệu suất cao trong mọi tình huống có thể là một thách thức

● Dữ liệu chưa gán nhãn: Trong nhiều trường hợp, có khả năng rất hạn chế về

dữ liệu đã được gắn nhãn cho các lớp cần phân loại Điều này có thể dẫn đến sự phụ thuộc vào mô hình tiền huấn luyện và thách thức trong việc xác định cách tạo ra dữ liệu gắn nhãn cho các lớp mới

1.4 Mục tiêu và phạm vi nghiên cứu Mục tiêu:

● Xây dựng ứng dụng áp dụng mô hình phân lớp ảnh vào trong thực tiễn để thử nghiệm và đánh giá hiệu suất của mô hình

● Đảm bảo tính ổn định của mô hình khi tích hợp vào ứng dụng di động, tránh các lỗi và vấn đề hiệu suất gây ảnh hưởng người dùng

● Xây dựng giao diện thân thiện với người dùng để tương tác với mô hình phân lớp ảnh thông qua ứng dụng di động một cách dễ dàng và thuận tiện

Phạm vi:

Trang 13

● Phân tích sâu về CLIP và Zero-shot learning: Điều tra các khía cạnh lý thuyết

của mô hình CLIP và phương pháp zero-shot learning để hiểu rõ cơ chế hoạt động và ưu điểm của chúng trong việc xử lý ảnh

● Xây dựng ứng dụng: Phát triển một ứng dụng thực tế sử dụng mô hình phân

lớp để phân loại hình ảnh theo các lớp không được học trước

● Đánh giá hiệu quả ứng dụng: Đánh giá hiệu quả và khả năng chấp nhận của

ứng dụng trong các tình huống thực tế, đánh giá dựa trên phản hồi từ người dùng

1.5 Đóng góp của nghiên cứu

Nghiên cứu về Bài toán phân lớp hình ảnh sử dụng CLIP và phương pháp shot và việc tích hợp vào trong ứng dụng di động có nhiều đóng góp quan trọng, từ giá trị thực tiễn và ứng dụng thực tế cho đến cải thiện trải nghiệm người dùng và khả năng mở rộng của ứng dụng Nghiên cứu mở ra tiềm năng sử dụng và ứng dụng rộng rãi trong tương lai

zero-1.6 Bố cục của báo cáo

Phần còn lại của báo cáo được trình bày theo bố cục như sau:

CHƯƠNG 2 – PHƯƠNG PHÁP: trình bày về CLIP và phương pháp zero-shot trong

việc phân lớp hình ảnh

CHƯƠNG 3 – TRIỂN KHAI ỨNG DỤNG: trình bày các công cụ, thiết kế, giao

diện và quá trình xây dựng và phát triển ứng dụng tích hợp mô hình phân lớp hình ảnh sử dụng CLIP và phương pháp zero-shot

CHƯƠNG 4 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: trình bày kết quả đạt

được và những hướng phát triển trong tương lai của ứng dụng tích hợp mô hình phân lớp hình ảnh sử dụng CLIP và phương pháp zero-shot.

Trang 14

Mặc dù học sâu đã có những cuộc cách mạng trong lĩnh vực thị giác máy tính nhưng các phương pháp hiện tại vẫn gặp một số vấn đề lớn: các tập dữ liệu điển hình tốn nhiều công sức và chi phí để tạo ra và chỉ huấn luyện trên một tập hình ảnh nhỏ; các mô hình thị giác máy tính chỉ tốt cho một nhiệm vụ cụ thể nào đó và cần nhiều sự thay đổi khi muốn thích ứng với một nhiệm vụ mới; và các mô hình hoạt động tốt trên tập thử nghiệm lại có hiệu suất thấp

Vì thế, một mạng thần kinh được phát triển nhằm giải quyết vấn đề này Nó được huấn luyện trên nhiều loại hình ảnh và nhiều giám sát ngôn ngữ tự nhiên phong phú và có sẵn trên Internet

2.1.2 Giới thiệu

CLIP (Contrastive Language-Image Pre-training) là một mô hình học sâu được phát triển bởi OpenAI Mô hình này kết hợp khả năng hiểu ngôn ngữ và hiểu hình ảnh thông qua việc huấn luyện trên một lượng lớn dữ liệu hình ảnh và văn bản không

Trang 15

gán nhãn Mục tiêu của CLIP là học cách đại diện hình ảnh và văn bản trong cùng một không gian vectơ để có thể so sánh và phân loại chúng

2.1.3 Phương pháp “Contrastive Learning”

Một điểm đặc biệt của CLIP là việc sử dụng phương pháp "contrastive learning" Thay vì huấn luyện dựa trên các cặp dữ liệu đã được gán nhãn, CLIP đánh giá sự tương phản giữa các cặp hình ảnh và văn bản không gán nhãn Quá trình huấn luyện của CLIP tìm cách tăng cường sự tương phản giữa các cặp hình ảnh và văn bản tương ứng và giảm sự tương phản giữa các cặp không tương ứng

Các bước chính trong phương pháp contrastive learning:

● Xác định cặp dữ liệu: Đầu tiên, cần xác định các cặp dữ liệu để so sánh Các

cặp dữ liệu này có thể được chọn ngẫu nhiên từ tập dữ liệu huấn luyện hoặc theo một quy tắc nhất định

● Mã hóa dữ liệu: Mỗi dữ liệu trong cặp được mã hóa thành một vectơ số học

Điều này thường được thực hiện thông qua mạng nơ-ron, cho phép trích xuất các đặc trưng của dữ liệu

● Xác định hàm mất mát: Mục tiêu của contrastive learning là tối đa hóa sự

tương phản giữa các cặp dữ liệu tương tự và tối thiểu hóa sự tương phản giữa các cặp dữ liệu khác nhau Để làm điều này, sử dụng một hàm mất mát đo lường khoảng cách giữa các vectơ đặc trưng Một hàm mất mát phổ biến được sử dụng là hàm "contrastive loss" (hàm mất mát tương phản)

● Tối ưu hóa: Quá trình tối ưu hóa được thực hiện để điều chỉnh các tham số

của mô hình dựa trên hàm mất mát Các phương pháp tối ưu hóa thông thường như gradient descent được sử dụng để tìm giá trị của các tham số mô hình để giảm thiểu hàm mất mát

Phương pháp contrastive learning đã được áp dụng thành công trong nhiều lĩnh vực, bao gồm xử lý ngôn ngữ tự nhiên, thị giác máy tính và học không giám sát Nó cho phép mô hình học cách phân biệt và trích xuất các đặc trưng quan trọng từ dữ liệu mà không cần nhãn

Trang 16

2.1.4 Kết quả

Kết quả là CLIP có khả năng hiểu ngôn ngữ và hiểu hình ảnh tương đối tốt Nó có thể phân loại hình ảnh, tìm kiếm hình ảnh dựa trên mô tả văn bản và thậm chí sinh ra các mô tả văn bản cho các hình ảnh CLIP đã đạt được kết quả ấn tượng trong nhiều nhiệm vụ và được coi là một bước tiến quan trọng trong việc kết hợp hiểu ngôn ngữ và hiểu hình ảnh trong lĩnh vực AI

Hình 2.2 Kiến trúc Contrastive Learning[2]

Hình 2.2 mô tả tổng quan phương pháp contrastive – learning CLIP được huấn luyện thông qua việc so sánh và phân biệt các cặp văn bản – hình ảnh Điều này giúp mô hình học được cách biểu diễn các khái niệm hình ảnh và văn bản trong không gian biểu diễn chung

Mô hình CLIP nhận vào một cặp văn bản – hình ảnh (ví dụ: một câu miêu tả và một hình ảnh tương ứng) làm đầu vào

Trang 17

● Mô hình sử dụng một quá trình gọi là “contrastive learning” (học đối lập) để so sánh các cặp này Mô hình tạo ra các biểu diễn dựa trên các cặp văn bản – hình ảnh và đo lường sự tương đồng giữa chúng

● Mô hình được điều chỉnh sao cho sự tương đồng giữa các cặp văn bản – hình ảnh giống nhau tăng lên và sự tương đồng giữa các cặp văn bản – hình ảnh không giống nhau giảm đi Quá trình này giúp mô hình học được một không gian ảnh biểu diễn chung mà trong đó các cặp văn bản – hình ảnh tương đồng sẽ có khoảng cách gần nhau, trong khi các cặp không giống nhau sẽ có khoảng cách xa nhau

2.2 Zero-shot 2.2.1 Giới thiệu

Zero-shot learning (học không cần nhãn) là một phương pháp trong lĩnh vực học máy cho phép mô hình phân loại các lớp mà nó chưa được huấn luyện trước đó Trong học máy truyền thống, quá trình huấn luyện mô hình phân loại yêu cầu một tập dữ liệu huấn luyện với các mẫu từng được gán nhãn cho từng lớp Mô hình sẽ học từ tập dữ liệu này để tạo ra một quy tắc phân loại cho các lớp đã biết Tuy nhiên, khi có lớp mới xuất hiện, mô hình truyền thống sẽ không thể phân loại lớp đó mà cần phải được huấn luyện lại với dữ liệu mới

Trong zero-shot learning, mục tiêu là huấn luyện một mô hình có khả năng phân loại các lớp mới mà không cần dữ liệu huấn luyện cho từng lớp riêng biệt Thay vào đó, mô hình được huấn luyện với các thông tin phụ trợ như các đặc trưng, thuộc tính hoặc mô tả của các lớp Điều này cho phép mô hình học cách xác định các mẫu và lớp mới dựa trên thông tin đã học từ các lớp đã biết

2.2.2 Cách tiếp cận

Cách tiếp cận zero-shot learning thường liên quan đến việc xây dựng một không gian thuộc tính hoặc một không gian nhúng chung, trong đó mỗi lớp được biểu diễn bằng một vector thuộc tính hoặc một vector nhúng Khi muốn phân loại một mẫu

Trang 18

mới, mô hình sẽ đo khoảng cách hoặc tính độ tương đồng giữa mẫu và các vector nhúng của các lớp Lớp có độ tương đồng cao nhất sẽ được chọn là kết quả phân loại Zero-shot learning cho phép mô hình tự động phân loại các lớp mới mà không cần dữ liệu huấn luyện riêng cho từng lớp Điều này rất hữu ích khi chúng ta muốn mở rộng khả năng phân loại của mô hình cho các lớp chưa từng thấy trước đó hoặc trong trường hợp không có đủ dữ liệu huấn luyện cho các lớp mới

2.2.3 Cách thức hoạt động

Cách hoạt động của zero-shot learning:

● Huấn luyện với thông tin phụ trợ: Trong zero-shot learning, quá trình huấn

luyện bao gồm việc sử dụng thông tin phụ trợ như các đặc trưng, thuộc tính hoặc mô tả của các lớp Thông tin này thường được cung cấp bởi con người hoặc từ các nguồn bên ngoài Ví dụ, trong bài toán phân loại ảnh, thông tin phụ trợ có thể là các thuộc tính như "có bánh xe" hoặc "có lông"

● Xây dựng không gian thuộc tính hoặc nhúng: Một bước quan trọng trong

zero-shot learning là xây dựng một không gian thuộc tính hoặc nhúng chung Trong không gian này, mỗi lớp được biểu diễn bằng một vector thuộc tính hoặc một vector nhúng Mục tiêu là tìm cách biểu diễn các lớp sao cho các lớp tương đồng về mặt ngữ nghĩa nằm gần nhau trong không gian này

● Đo khoảng cách hoặc tính độ tương đồng: Khi muốn phân loại một mẫu mới,

mô hình sẽ đo khoảng cách hoặc tính độ tương đồng giữa mẫu và các vector thuộc tính hoặc nhúng của các lớp đã biết Cách đo khoảng cách thường dựa trên các phép đo khoảng cách trong không gian nhúng như khoảng cách Euclid, khoảng cách cosine, hay khoảng cách Mahalanobis Lớp có độ tương đồng cao nhất sẽ được chọn là kết quả phân loại

● Phân loại lớp mới: Khi một mẫu mới thuộc vào một lớp chưa từng được huấn

luyện, mô hình sẽ sử dụng thông tin phụ trợ và không gian nhúng đã học để xác định lớp mới Thông qua việc đo khoảng cách hoặc tính độ tương đồng,

Trang 19

mô hình sẽ tìm lớp có độ tương đồng cao nhất với mẫu và phân loại mẫu đó vào lớp đó

Tóm lại, zero-shot learning cho phép mô hình phân loại các lớp mới mà không cần dữ liệu huấn luyện riêng cho từng lớp Thay vào đó, mô hình sử dụng thông tin phụ trợ và xây dựng một không gian thuộc tính hoặc nhúng để đo khoảng cách hoặc tính độ tương đồng giữa mẫu và các lớp đã biết Điều này giúp mở rộng khả năng phân loại của mô hình và giải quyết các vấn đề khi không có đủ dữ liệu huấn luyện cho các lớp mới

Trang 20

▪ Thu thập dữ liệu: Thu thập các cặp hình ảnh-văn bản từ tập dữ liệu có sẵn Ví dụ, mỗi cặp có thể bao gồm một hình ảnh và một câu mô tả về hình ảnh đó

▪ Huấn luyện mô hình ngôn ngữ: Sử dụng các cặp hình ảnh-văn bản, huấn luyện một mô hình ngôn ngữ để dự đoán văn bản từ hình ảnh và ngược lại

▪ Xây dựng bộ phân loại: Sử dụng mô hình ngôn ngữ đã huấn luyện, xây dựng một bộ phân loại từ các nhãn văn bản trong tập dữ liệu Bộ phân loại này có thể được sử dụng để dự đoán văn bản từ hình ảnh hoặc dự đoán hình ảnh từ văn bản

● Use for Zero-Shot Prediction (Sử dụng cho dự đoán Zero-Shot):

o Ý nghĩa: Trong phần này, bộ phân loại từ văn bản được sử dụng để thực hiện dự đoán zero-shot, tức là phân loại các lớp chưa được huấn luyện trước

o Các bước:

▪ Xác định mô hình zero-shot: Sử dụng bộ phân loại đã xây dựng từ văn bản, định nghĩa một mô hình zero-shot cho việc phân loại các lớp chưa từng thấy trước đó

▪ Đo khoảng cách hoặc tính độ tương đồng: Khi muốn phân loại một mẫu mới thuộc vào lớp chưa từng được huấn luyện, mô hình zero-shot sẽ sử dụng thông tin về văn bản và hình ảnh để đo khoảng cách hoặc tính độ tương đồng giữa mẫu và các lớp đã biết

▪ Phân loại lớp mới: Dựa trên độ tương đồng tính được, mô hình shot sẽ phân loại mẫu vào một lớp tương ứng chưa từng thấy trước đó

Trang 21

zero-2.3 Áp dụng mô hình CLIP

2.3.1 Tải xuống các mô hình đã được huấn luyện trước

● Ý nghĩa: Đảm bảo có các tệp mô hình CLIp đã được huấn luyện trước để sử dụng cho việc dự đoán hình ảnh và văn bản

● Các bước:

o Cung cấp URL tải xuống: Phần này cung cấp các URL tải xuống các mô hình đã được huấn luyện trước Ví dụ: mô hình “ViT-B/32”, mô hình “RN50”,

o Tải xuống và giải nén mô hình: Sử dụng câu lệnh Python để tải xuống các tệp mô hình từ URL cung cấp và giải nén chúng vào thư mục cụ thể

2.3.2 Tải mô hình CLIP

● Ý nghĩa: Phần này mô tả cách tải mô hình CLIP đã được huấn luyện trước và chuẩn bị nó để sử dụng cho việc dự đoán hình ảnh và văn bản

● Các bước:

o Import các thư viện và module: Import các thư viện và module cần thiết để tải mô hình CLIP và làm việc với nó, bao gồm torch, torchvision.models và CLIP

o Tạo và tải mô hình: Tạo một phiên bản của mô hình CLIP bằng cách sử dụng CLIP Model từ module CLIP và tải các trọng số đã được huấn luyện trước từ tệp mô hình đã tải xuống

o Xác định thiết bị (device): Xác định thiết bị (GPU hoặc CPU) để sử dụng cho việc tính toán

o Chuyển mô hình và dữ liệu đến thiết bị: Di chuyển mô hình và dữ liệu đến thiết bị bằng cách sử dụng phương thức to() và copy() trong PyTorch

o Kích hoạt chế độ đánh giá (evaluation mode): Đặt mô hình vào chế độ đánh giá bằng cách gọi phương thức eval()

Trang 22

2.3.3 Tiền xử lý ảnh

● Ý nghĩa: Mô tả các bước tiền xử lý hình ảnh trước khi đưa vào mô hình CLIP Các bước này giúp chuẩn bị hình ảnh để có thể đưa vào mô hình và đạt được kết quả chính xác

● Các bước:

o Resize: Hình ảnh được thay đổi kích thước để phù hợp với yêu cầu của mô hình Thông thường, kích thước hình ảnh được đặt thành (224, 224) pixels

o Normalize: Hình ảnh được chuẩn hóa để có giá trị pixel nằm trong khoảng từ 0 đến 1 hoặc -1 đến 1 Điều này giúp đưa dữ liệu về cùng một phạm vi và cải thiện hiệu suất của mô hình

o Convert to Tensor: Hình ảnh được chuyển đổi thành định dạng tensor để có thể xử lý bởi mô hình CLIP

2.3.4 Tiền xử lý văn bản

● Ý nghĩa: Mô tả các bước tiền xử lý văn bản trước khi đưa vào mô hình CLIP Các bước này giúp mã hóa văn bản và chuẩn bị nó để có thể sử dụng trong việc so khớp với hình ảnh

● Các bước:

o Tokenization: Văn bản được chia thành các từ riêng biệt, gọi là "tokens" Mỗi từ được xem là một đơn vị đầu vào cho mô hình CLIP o Encoding: Các từ được mã hóa thành các vectơ số để có thể sử dụng

trong tính toán Mã hóa thường sử dụng một từ điển để ánh xạ từng từ tới một vectơ số

o Convert to Tensor: Văn bản được chuyển đổi thành định dạng tensor để có thể xử lý bởi mô hình CLIP

2.3.5 Thực hiện dự đoán

● Ý nghĩa: Hướng dẫn cách chạy dự đoán sử dụng mô hình CLIP đã được tải và các dữ liệu hình ảnh và văn bản đã được tiền xử lý

Trang 23

o Encode Image and Text: Hình ảnh và văn bản được đưa vào mô hình CLIP để mã hóa thành các vectơ biểu diễn

o Perform Similarity Calculation: Sử dụng các vectơ biểu diễn, tính toán độ tương đồng giữa hình ảnh và văn bản Điều này giúp xác định mức độ phù hợp giữa chúng

o Obtain Predictions: Dựa trên độ tương đồng, mô hình CLIP cung cấp các dự đoán về mức độ phù hợp hoặc lớp của hình ảnh và văn bản

o Visualize Image and Predictions: Hình ảnh và các kết quả dự đoán được hiển thị cùng nhau để trực quan hóa kết quả Ví dụ, hình ảnh có thể được hiển thị bên cạnh các nhãn dự đoán tương ứng

o Display Results: Kết quả được hiển thị cho người dùng để xem và đánh giá

2.4 Lưu mô hình

Sau khi load mô hình xong thì mô hình sau khi được load được load dưới dạng tệp pth

Ngày đăng: 15/05/2024, 09:29

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan