Xây Dựng Ứng Dụng Tách Đối Tượng Từ Ảnh: Khóa Luận Tốt Nghiệp Ngành Hệ Thống Thông Tin

Chuyên khảo phân tích Xây dựng ứng dụng tách đối tượng từ ảnh, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Chuyên ngành

Hệ Thống Thông Tin

Người đăng

Ẩn danh

Thể loại

Khóa Luận Tốt Nghiệp
71
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI MỞ ĐẦU

LỜI CAM ĐOAN

1. CHƯƠNG 1: GIỚI THIỆU TỔNG QUAN

1.1. Lý do chọn đề tài

1.2. Mục tiêu nghiên cứu

1.2.1. Mục tiêu chính

1.2.2. Mục tiêu phụ

1.3. Bố cục khóa luận

2. CHƯƠNG 2: MÔ HÌNH SAM - SEGMENT ANYTHING MODEL

2.1. Giới thiệu mô hình SAM

2.2. Hoạt động của mô hình SAM

2.2.1. Kiến trúc mô hình

2.3. Tập dữ liệu

2.3.1. Data engine

3. CHƯƠNG 3: ỨNG DỤNG TÁCH ĐỐI TƯỢNG TỪ ẢNH

3.1. Tổng quan ứng dụng

3.1.1. Công nghệ và ngôn ngữ lập trình

3.1.2. Thư viện và công cụ hỗ trợ

3.2. Kiến trúc ứng dụng

3.3. Luồng hoạt động

3.4. Mô tả chức năng

3.4.1. Tải ảnh lên ứng dụng

3.4.2. Xử lý ảnh và tạo masks

3.4.3. Chỉnh sửa đối tượng

3.4.4. Tải ảnh về máy

3.4.5. Thao tác Hộp chứa ảnh

3.5. Giao diện người dùng

3.5.1. Tải ảnh lên ứng dụng

3.5.2. Gửi ảnh lên server

3.5.3. Sau khi hoàn tất xử lý

3.5.4. Chọn và tách đối tượng trong ảnh

3.5.5. Chỉnh sửa đối tượng được tách

3.6. Đánh giá ứng dụng

3.6.1. Ứng dụng đối chiếu và nhận mask để tách đối tượng

3.6.2. Chỉnh sửa đối tượng

3.6.3. Đánh giá và nhận định

4. CHƯƠNG 4: KẾT LUẬN

4.1. Tóm tắt kết quả đạt được

4.2. Hướng phát triển

4.2.1. Áp dụng Matte để Tăng chất lượng tách các Chi tiết nhỏ của đối tượng

4.2.2. Cải tiến Ứng dụng để Tách đối tượng đúng ý người dùng hơn

4.2.3. Tích hợp ứng dụng với một số mô hình xử lý ảnh khác để cho ra sản phẩm hoàn thiện với đa dạng tính năng hơn

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan khóa luận xây dựng ứng dụng tách đối tượng từ ảnh

Trong kỷ nguyên số, xử lý ảnh và thị giác máy tính (computer vision) đã trở thành nền tảng cho nhiều đột phá công nghệ. Khóa luận tốt nghiệp ngành Hệ Thống Thông Tin với chủ đề “Xây dựng ứng dụng tách đối tượng từ ảnh” giải quyết một nhu cầu cấp thiết trong nhiều lĩnh vực như y tế, thương mại điện tử và an ninh. Mục tiêu chính của nghiên cứu là phát triển một công cụ hiệu quả, cho phép người dùng tách biệt các đối tượng cụ thể ra khỏi nền ảnh một cách chính xác và nhanh chóng. Lĩnh vực xử lý ảnh kỹ thuật số không còn giới hạn trong các phòng thí nghiệm mà đã trở thành công cụ mạnh mẽ, ứng dụng từ việc chẩn đoán bệnh qua hình ảnh y khoa đến việc tạo ra các trải nghiệm thực tế tăng cường. Việc phát triển một ứng dụng chuyên dụng không chỉ thể hiện năng lực vận dụng kiến thức đã học mà còn đóng góp một giải pháp thực tiễn, đáp ứng nhu cầu ngày càng cao của thị trường. Nghiên cứu này tập trung vào việc khảo sát các mô hình học sâu (deep learning) hiện đại, đặc biệt là các thuật toán phân vùng ảnh, để tìm ra phương pháp tối ưu. Từ đó, xây dựng một ứng dụng hoàn chỉnh với giao diện thân thiện, quy trình xử lý mượt mà, và kết quả đầu ra có độ chính xác (accuracy) cao. Khóa luận này không chỉ là một bài tập học thuật mà còn là một sản phẩm tiềm năng, có khả năng mở rộng và cải tiến trong tương lai, góp phần vào sự phát triển của công nghệ trí tuệ nhân tạo (AI) tại Việt Nam. Quá trình thực hiện bao gồm các giai đoạn từ nghiên cứu lý thuyết, lựa chọn công nghệ, thiết kế kiến trúc hệ thống, đến huấn luyện mô hình (model training)đánh giá mô hình (model evaluation) một cách khoa học.

1.1. Bối cảnh và tầm quan trọng của lĩnh vực xử lý ảnh kỹ thuật số

Nhu cầu trích xuất thông tin từ hình ảnh đang tăng cao. Trong y tế, việc phân vùng các khối u hay cơ quan nội tạng từ ảnh MRI, CT-scan giúp bác sĩ chẩn đoán chính xác hơn. Trong thương mại điện tử, tách nền sản phẩm tự động giúp tối ưu hóa hình ảnh hiển thị. Các hệ thống giám sát an ninh cũng dựa vào object detection để theo dõi đối tượng. Sự phát triển mạnh mẽ này đặt ra yêu cầu về các công cụ thông minh, tự động và chính xác, tạo tiền đề cho các đồ án tốt nghiệp xử lý ảnh mang tính ứng dụng cao.

1.2. Mục tiêu nghiên cứu Xây dựng ứng dụng tách đối tượng hiệu quả

Mục tiêu chính của khóa luận là thiết kế và triển khai một ứng dụng web hoàn chỉnh có khả năng tách các đối tượng khác nhau từ ảnh đầu vào. Mục tiêu phụ bao gồm: (1) Nghiên cứu và so sánh các mô hình image segmentation tiên tiến. (2) Lựa chọn mô hình phù hợp nhất với yêu cầu về tốc độ và độ chính xác. (3) Xây dựng giao diện người dùng trực quan, dễ sử dụng. (4) Kiểm chứng hiệu quả của ứng dụng thông qua các kịch bản thực tế, sử dụng các chỉ số như IoU (Intersection over Union) để đo lường.

II. Thách thức phân vùng ảnh và hạn chế của các phương pháp cũ

Bài toán tách đối tượng từ ảnh, hay image segmentation, luôn là một thách thức lớn trong ngành computer vision. Các phương pháp truyền thống như phân ngưỡng (thresholding), phát hiện biên (edge detection) hay phân cụm (clustering) thường chỉ hiệu quả với các ảnh có độ tương phản cao và đối tượng đơn giản. Khi gặp các bối cảnh phức tạp, ánh sáng thay đổi hoặc đối tượng bị che khuất, các thuật toán này bộc lộ nhiều hạn chế về độ chính xác. Sự ra đời của học máy (machine learning) và sau đó là học sâu (deep learning) đã mang lại những bước tiến vượt bậc. Tuy nhiên, các mô hình đời đầu như R-CNN hay YOLO (You Only Look Once) dù rất mạnh trong việc phát hiện đối tượng (object detection) nhưng vẫn gặp khó khăn trong việc tạo ra một mặt nạ (mask) phân vùng chính xác đến từng pixel. Ví dụ, mô hình YOLOv8, một phiên bản rất mạnh mẽ, có thể nhận diện tốt các đối tượng phổ biến đã được huấn luyện trước. Nhưng theo thực nghiệm trong tài liệu gốc, YOLOv8 không thể phân vùng các đối tượng trong tranh vẽ hoặc các ký tự chữ Nôm. Điều này cho thấy sự phụ thuộc lớn vào tập dữ liệu (dataset) huấn luyện và hạn chế trong khả năng tổng quát hóa với các đối tượng chưa từng thấy. Các mô hình như Mask R-CNN đã cải thiện điều này bằng cách thêm một nhánh dự đoán mask song song với nhánh phát hiện bounding box, nhưng vẫn đòi hỏi một quá trình gán nhãn dữ liệu (data labeling) tốn kém và phức tạp.

2.1. Phân tích các thuật toán phân vùng ảnh truyền thống

Các thuật toán truyền thống hoạt động dựa trên các đặc trưng cấp thấp của ảnh như màu sắc, cường độ sáng và kết cấu. Các phương pháp như Haar Cascade và HOG (Histogram of Oriented Gradients) tuy nhanh nhưng độ chính xác thấp, đặc biệt khi đối tượng có hình dạng phức tạp hoặc bị che khuất một phần. Chúng không có khả năng 'hiểu' ngữ cảnh của ảnh, dẫn đến kết quả phân vùng thường bị nhiễu và không chính xác ở các đường biên.

2.2. Hạn chế của mô hình học sâu như R CNN và YOLOv8

Các mô hình dựa trên mạng nơ-ron tích chập (CNN) như R-CNN, YOLOv8 đã cải thiện đáng kể độ chính xác. Tuy nhiên, chúng được thiết kế chủ yếu cho việc nhận diện và định vị đối tượng bằng hộp giới hạn (bounding box). Khả năng phân vùng chi tiết (pixel-level segmentation) của chúng bị giới hạn. Hơn nữa, chúng yêu cầu một lượng lớn dữ liệu được gán nhãn cho từng loại đối tượng cụ thể. Điều này khiến việc mở rộng mô hình để nhận diện các đối tượng mới trở nên tốn kém và mất thời gian, không phù hợp cho một ứng dụng phân vùng đa năng.

III. Giải pháp đột phá Mô hình Segment Anything Model SAM

Để vượt qua những hạn chế của các phương pháp trước, khóa luận đã lựa chọn và ứng dụng Segment Anything Model (SAM), một mô hình nền tảng do Meta AI phát triển. SAM được xem là một cuộc cách mạng trong lĩnh vực image segmentation vì khả năng tổng quát hóa vượt trội. Thay vì được huấn luyện để nhận diện một danh sách đối tượng hữu hạn, SAM được thiết kế để có thể phân vùng 'bất cứ thứ gì' trong một tấm ảnh mà không cần huấn luyện lại. Mô hình này hoạt động dựa trên cơ chế 'promptable', nghĩa là người dùng có thể tương tác bằng cách chỉ vào một điểm, vẽ một hộp bao quanh đối tượng, và SAM sẽ ngay lập tức trả về một mặt nạ phân vùng chất lượng cao. Kiến trúc của SAM bao gồm ba thành phần chính: một bộ mã hóa ảnh (Image Encoder) mạnh mẽ dựa trên Vision Transformer, một bộ mã hóa prompt (Prompt Encoder) linh hoạt, và một bộ giải mã mặt nạ (Mask Decoder) siêu nhẹ, cho phép xử lý theo thời gian thực. Để đạt được khả năng này, SAM được huấn luyện trên một tập dữ liệu (dataset) khổng lồ mang tên SA-1B, chứa hơn 1.1 tỷ mặt nạ trên 11 triệu hình ảnh. Nhờ đó, SAM có thể phân vùng các đối tượng và hình ảnh mới mà nó chưa từng thấy trong quá trình huấn luyện, một khả năng được gọi là 'zero-shot generalization'. Điều này làm cho SAM trở thành một lựa chọn lý tưởng cho việc xây dựng ứng dụng tách đối tượng từ ảnh đa năng và hiệu quả.

3.1. Giới thiệu kiến trúc và nguyên lý hoạt động của mô hình SAM

SAM có kiến trúc độc đáo, tách biệt việc mã hóa ảnh nặng nề ra khỏi quá trình tạo mask nhanh chóng. Bộ mã hóa ảnh (Image Encoder) xử lý ảnh một lần duy nhất để tạo ra một biểu diễn nhúng (embedding). Khi người dùng cung cấp một prompt (điểm, hộp), bộ mã hóa prompt (Prompt Encoder) sẽ mã hóa nó và kết hợp với embedding của ảnh. Cuối cùng, bộ giải mã mặt nạ (Mask Decoder) cực kỳ hiệu quả sẽ dự đoán mặt nạ chỉ trong vài mili giây. Cấu trúc này, tương tự như các mô hình ngôn ngữ lớn, cho phép tương tác linh hoạt và tức thời.

3.2. So sánh hiệu quả SAM với YOLOv8 trong bài toán thực tế

Thực nghiệm được trình bày trong khóa luận cho thấy sự vượt trội của SAM. Với các ảnh phức tạp như tranh vẽ hay chữ Nôm, YOLOv8 không thể nhận diện được đối tượng nào. Ngược lại, SAM có thể phân vùng chi tiết từng thành phần. Ngay cả với ảnh thông thường, SAM cũng cho ra số lượng mặt nạ chi tiết hơn, từ các bộ phận trên khuôn mặt người đến từng chiếc lá trên cây. Điều này chứng minh SAM là một công cụ phân vùng tổng quát, mạnh mẽ hơn nhiều so với các mô hình chuyên biệt.

IV. Hướng dẫn xây dựng ứng dụng tách đối tượng từ ảnh thực tế

Việc triển khai một mô hình AI mạnh mẽ như SAM thành một sản phẩm thực tế đòi hỏi một kiến trúc ứng dụng vững chắc. Khóa luận này trình bày chi tiết quá trình xây dựng ứng dụng tách đối tượng từ ảnh với kiến trúc client-server. Phía backend được xây dựng bằng Python và microframework Flask, chịu trách nhiệm xử lý các yêu cầu API, lưu trữ tệp tin và quan trọng nhất là thực thi mô hình SAM. Python cho xử lý ảnh là lựa chọn tối ưu nhờ hệ sinh thái thư viện phong phú như thư viện OpenCV và Pillow để thao tác ảnh, cùng với PyTorch để chạy mô hình SAM. Phía frontend được xây dựng bằng thư viện ReactJS, tạo ra một giao diện người dùng (UI) hiện đại, tương tác và phản hồi nhanh. Luồng hoạt động của ứng dụng được thiết kế một cách logic: (1) Người dùng tải ảnh lên từ client. (2) Frontend gửi ảnh đến backend qua API. (3) Backend lưu ảnh và chạy mô hình SAM để tạo ra toàn bộ các mask metadata. (4) Metadata được gửi lại cho client. (5) Người dùng nhấp vào một vùng trên ảnh, client xác định mask tương ứng và hiển thị đối tượng đã được tách. Đặc biệt, ứng dụng còn tích hợp mô hình Stable Diffusion Inpainting, cho phép người dùng chỉnh sửa hoặc thay thế đối tượng đã tách bằng cách nhập mô tả văn bản, mở ra khả năng sáng tạo không giới hạn.

4.1. Lựa chọn công nghệ Python Flask cho backend và ReactJS

Việc lựa chọn công nghệ là yếu tố then chốt. Backend sử dụng Python vì sự hỗ trợ mạnh mẽ cho học máy và các thư viện như PyTorchTensorFlow. Flask được chọn vì tính gọn nhẹ, linh hoạt và dễ triển khai. Frontend sử dụng ReactJS để xây dựng giao diện người dùng dạng single-page application (SPA), mang lại trải nghiệm mượt mà, cho phép người dùng tương tác với ảnh và các mask được tạo ra một cách trực quan mà không cần tải lại trang.

4.2. Tích hợp Stable Diffusion Inpainting để chỉnh sửa đối tượng

Đây là một tính năng nâng cao và độc đáo của ứng dụng. Sau khi một đối tượng được tách ra, người dùng có thể sử dụng vùng mask của nó để chỉ định khu vực cần chỉnh sửa. Bằng cách nhập một prompt văn bản (ví dụ: 'a red car'), mô hình Stable Diffusion Inpainting sẽ tái tạo lại khu vực đó theo mô tả, trong khi vẫn giữ nguyên phần còn lại của ảnh. Chức năng này biến ứng dụng từ một công cụ tách đối tượng đơn thuần thành một công cụ biên tập ảnh thông minh.

V. Kết quả thực nghiệm và các ứng dụng thực tiễn của đề tài

Quá trình đánh giá mô hình (model evaluation) và ứng dụng cho thấy kết quả rất tích cực. Ứng dụng đã chứng minh khả năng phân vùng và tách đối tượng hiệu quả trên nhiều loại ảnh khác nhau, từ ảnh chân dung, ảnh phong cảnh, ảnh hoạt hình, đến các ảnh chuyên ngành có độ phức tạp cao như ảnh y học. Trong các thử nghiệm, ứng dụng có thể tách rõ ràng các chi tiết nhỏ như tóc người, các bộ phận trên cơ thể trong ảnh chụp y khoa, hay các vật thể nhỏ trong một khung cảnh rộng lớn. Giao diện người dùng được thiết kế thân thiện, cho phép người dùng dễ dàng thực hiện các thao tác tải ảnh, chọn đối tượng và tải kết quả về máy. Chức năng chỉnh sửa đối tượng bằng Stable Diffusion hoạt động tốt, cho phép tạo ra những hình ảnh mới đầy sáng tạo với độ chính xác (accuracy) cao. Các kết quả này khẳng định rằng việc xây dựng ứng dụng tách đối tượng từ ảnh dựa trên mô hình SAM là một hướng đi đúng đắn và hiệu quả. Ứng dụng thực tiễn của đề tài rất rộng lớn: hỗ trợ các nhà thiết kế đồ họa trong việc tách nền, giúp các bác sĩ phân tích hình ảnh y tế, hoặc phục vụ trong ngành thương mại điện tử để xử lý ảnh sản phẩm hàng loạt. Mặc dù vẫn còn một số hạn chế về tốc độ xử lý và yêu cầu phần cứng, đây là một nền tảng vững chắc cho các phát triển trong tương lai.

5.1. Đánh giá khả năng phân vùng trên ảnh y tế và ảnh chất lượng thấp

Một trong những bài kiểm tra quan trọng là khả năng xử lý ảnh chuyên ngành. Ứng dụng đã tách thành công các chi tiết quan trọng trong ảnh y học, cho thấy tiềm năng hỗ trợ chẩn đoán. Đối với ảnh có độ phân giải thấp, một thách thức phổ biến, ứng dụng vẫn có thể nhận diện và tách được các đối tượng chính, chứng tỏ sự bền bỉ của mô hình SAM ngay cả khi chất lượng đầu vào không lý tưởng.

5.2. Phân tích ưu điểm và hạn chế của ứng dụng khi triển khai

Ưu điểm chính của ứng dụng là chất lượng tách đối tượng vượt trội, giao diện trực quan và tính năng chỉnh sửa ảnh độc đáo. Tuy nhiên, hạn chế cố hữu là yêu cầu hiệu năng phần cứng cao, đặc biệt là GPU, để chạy các mô hình học sâu. Tốc độ xử lý, dù đã được tối ưu, vẫn có thể chậm với các ảnh có độ phân giải rất cao. Vùng chọn đối tượng đôi khi quá chi tiết, có thể gây khó khăn cho người dùng muốn chọn một đối tượng lớn tổng thể.

VI. Tổng kết khóa luận và định hướng phát triển trong tương lai

Khóa luận “Xây dựng ứng dụng tách đối tượng từ ảnh” đã hoàn thành xuất sắc các mục tiêu đề ra. Nghiên cứu đã đi sâu vào lĩnh vực xử lý ảnh kỹ thuật số, phân tích các mô hình image segmentation, và ứng dụng thành công mô hình tiên tiến SAM vào một sản phẩm thực tế. Kết quả đạt được không chỉ là một ứng dụng hoạt động hiệu quả mà còn là những kinh nghiệm quý báu trong việc phát triển các hệ thống trí tuệ nhân tạo (AI). Ứng dụng đã chứng minh được tính khả thi và tiềm năng to lớn, mở ra nhiều cơ hội ứng dụng trong đa dạng các ngành nghề. Tuy nhiên, công nghệ luôn vận động và luôn có không gian để cải tiến. Tài liệu gốc đã đề xuất một số hướng phát triển quan trọng để nâng cấp ứng dụng trong tương lai. Những cải tiến này không chỉ giúp tăng chất lượng sản phẩm mà còn mở rộng thêm các tính năng, biến nó thành một bộ công cụ xử lý ảnh toàn diện hơn, đáp ứng tốt hơn nữa nhu cầu ngày càng cao của người dùng trong thời đại số. Đây là một khóa luận AI tiêu biểu cho việc kết hợp giữa nghiên cứu lý thuyết và phát triển sản phẩm ứng dụng.

6.1. Hướng phát triển 1 Áp dụng kỹ thuật Matte để tăng chất lượng chi tiết

Để cải thiện chất lượng tách các chi tiết nhỏ và phức tạp như tóc, lông thú, hay các vật thể trong suốt, hướng phát triển tiếp theo là tích hợp kỹ thuật 'Image Matting'. Kỹ thuật này giúp tính toán độ trong suốt (alpha channel) cho từng pixel ở vùng biên, tạo ra một sự chuyển tiếp mượt mà và tự nhiên hơn giữa đối tượng và nền, cho kết quả tách chuyên nghiệp và chân thực hơn.

6.2. Hướng phát triển 2 Tích hợp các mô hình xử lý ảnh khác

Để tạo ra một công cụ toàn diện, ứng dụng có thể được tích hợp thêm các mô hình AI khác. Ví dụ, mô hình Super Resolution để nâng cao độ phân giải của ảnh sau khi tách, mô hình Colorization để tô màu cho ảnh đen trắng, hoặc các mô hình object detection chuyên biệt để tự động gợi ý các đối tượng quan trọng cần tách. Việc kết hợp nhiều mô hình sẽ tạo ra một sản phẩm đa năng và mạnh mẽ hơn.

09/07/2025
Xây dựng ứng dụng tách đối tượng từ ảnh

Trích đoạn nội dung tài liệu

Chương 1. Giới thiệu tổng quan: Nêu hiện trạng thực tế, lý do chọn đề tài nghiên cứu và mục tiêu nghiên cứu. Mô hình SAM (Segment Anything Model): Giới thiệu về mô hình Segment Anything Model và thực nghiệm. So sánh khả năng phân vùng ảnh với các mô hình khác.

Thiết kế và triển khai ứng dụng tách đối tượng từ ảnh: Giới thiệu công cụ “Tách đối tượng từ ảnh”. Kết luận: Tổng kết lại kết quả đạt được và đề xuất hướng nghiên cứu, phát triển tiếp theo nhằm khai thác những điểm mạnh của mô hình SAM. 4 Chương 2 MÔ HÌNH SAM - SEGMENT ANYTHING MODEL 2.1 Giới thiệu mô hình SAM SAM (Segment Anything Model) là một mô hình phân vùng ảnh được phát triển bởi Meta (trước đây được biết đến là Facebook). Có hai phương pháp khác nhau để giải quyết vấn đề phân vùng ảnh.

Phương pháp đầu tiên là phân vùng tương tác, trong đó quá trình phân vùng được hướng dẫn và tinh chỉnh dựa trên các đầu vào của người dùng. Phương pháp này cho phép người dùng điều chỉnh quá trình để cải thiện kết quả phân vùng và hữu ích cho các hình ảnh phức tạp nơi các thuật toán tự động có thể gặp khó khăn trong việc xác định chính xác ranh giới đối tượng. Tuy nhiên, phương pháp này yêu cầu người dùng hướng dẫn, điều đó có nghĩa là nó không tự động. Do đó, chúng ta có phương pháp thứ hai, phân vùng tự động, bao gồm việc phân chia một hình ảnh thành nhiều phân vùng hoặc vùng hoàn toàn thông qua các thuật toán tính toán mà không cần sự can thiệp của con người.

Phương pháp này có thể phân vùng một tập hợp các lớp đối tượng đã được định nghĩa trước, nhưng nhược điểm là quá trình gán nhãn thủ công cho hàng chục nghìn ví dụ được sử dụng cho quá trình huấn luyện. Cả hai phương pháp đều không cung cấp một cách tiếp cận chung, hoàn toàn tự động cho phân vùng. SAM được thiết kế để trở thành một sự tổng quát hóa của hai lớp phương pháp này. Đây là một mô hình đơn lẻ có thể thực hiện cả phân vùng tương tác và phân vùng tự động.

Nó cho phép người dùng thiết kế các lời nhắc sử dụng cho mô hình và làm cho nhiều nhiệm vụ phân vùng trở nên khả thi. SAM cũng có khả năng tổng quát hóa, giúp nó hoạt động tốt với các loại đối tượng và hình ảnh mới ngoài những gì nó đã quan sát trong quá trình huấn luyện.Ví dụ về khả năng phân vùng của SAM 2.2 Hoạt động của mô hình SAM SAM (Segment Anything Model) là một mô hình nền tảng cho phân vùng hình ảnh, một mô hình được huấn luyện trước và có khả năng prompt, có khả năng tổng quát hóa giống như các mô hình nền tảng ngôn ngữ như ChatGPT, bằng cách sử dụng các kỹ thuật định hình lời nhắc. Nó yêu cầu một tập dữ liệu hình ảnh lớn và được chú thích đầy đủ để huấn luyện, điều này đòi hỏi nhiều công sức thủ công. Để xây dựng mô hình này, cần có: - Nhiệm vụ phân vùng có thể định hình prompt: Sử dụng prompt để hướng dẫn mô hình cách phân vùng đối tượng trong ảnh.

Prompt có thể là thông tin văn bản như hướng dẫn, đoạn mô tả hoặc thông tin không gian như điểm ảnh, hộp giới hạn, và mặt nạ. Lệnh nhập này giúp mô hình trả về một mặt nạ phân vùng hợp lệ. 6 - Mô hình: Mô hình sẽ sử dụng cả ảnh và lệnh nhập làm đầu vào, không giống như mô hình truyền thống. Nó cần hỗ trợ các lời nhắc linh hoạt, tính toán mặt nạ nhanh chóng trong thời gian thực, và phải nhận biết được sự mơ hồ.

Điều này được đạt được thông qua thiết kế đơn giản gồm 3 phần: một bộ mã hóa ảnh mạnh mẽ để chuyển đổi ảnh thành embedding, một bộ mã hóa lời nhắc để mã hóa lời nhắc, và một bộ giải mã mặt nạ để dự đoán các mặt nạ phân vùng. - Tập dữ liệu: Tập dữ liệu cần phải lớn và đa dạng để mô hình có thể đạt được mức độ tổng quát hóa. Tuy nhiên, mặt nạ phân vùng lớn và chất lượng cao không có sẵn trên web, và để tạo ra những mặt nạ này đòi hỏi nhiều thời gian và công sức. Vì vậy, một 'công cụ dữ liệu' được phát triển để tự động gán nhãn cho hình ảnh.

Với công cụ dữ liệu này, một tập dữ liệu gồm 11 triệu hình ảnh và hơn 1 tỷ mặt nạ đã được thu thập, được đặt tên là SA-1B và sẽ được sử dụng để huấn luyện mô hình.Ba thành phần kết nối với nhau được sử dụng trong phát triển mô hình 7 2.2 Kiến trúc mô hình SAM xử lý hình ảnh thông qua ba thành phần chính: Bộ mã hóa ảnh, bộ mã hóa lệnh, Hình 2.Các thành phần xử lý của SAM - Image encoder (Bộ mã hóa hình ảnh): Bộ mã hóa này sử dụng một Vision Transformer đã được tiền huấn luyện bằng phương pháp masked auto- encoder để chuyển đổi hình ảnh thành embedding (mã nhúng). - Prompt encoder (Bộ mã hóa đề xuất): Bộ mã hóa này mã hóa các điểm và hộp giới hạn (bounding boxes) bằng cách sử dụng các mã hóa vị trí (positional* encodings) và mã hóa văn bản bằng CLIP. Đối với các đề xuất mask (mask prompt), nó sử dụng các phép tích chập (convolutions) và cộng chúng với embedding hình ảnh. 8 - Mask decoder (Bộ giải mã mask): Đây là một thành phần nhẹ, nó ánh xạ embedding hình ảnh, embedding đề xuất, và một token đầu ra thành một mask.

Thiết kế này sử dụng một biến thể của khối giải mã Transformer, trong đó sử dụng attention tự động và cross-attention hai chiều (từ đề xuất đến hình ảnh và ngược lại) để cập nhật tất cả các embedding. Sau đó, embedding hình ảnh được tăng tỷ lệ (upsample) và một MLP ánh xạ đầu ra thành một bộ phân loại tuyến tính để tính toán điểm tin cậy cho mặt nạ. Nó sẽ trả về nhiều kết quả đầu ra cho một đề xuất duy nhất để giải quyết sự mơ hồ.3 Tập dữ liệu 2.1 Data engine Công cụ dữ liệu được sử dụng để tạo tập dữ liệu và huấn luyện SAM, bao gồm 3 giai đoạn: - Hỗ trợ thủ công: SAM được huấn luyện bằng tập dữ liệu công khai. Chuyên gia gán nhãn sử dụng công cụ chỉnh sửa của SAM để gán nhãn các mặt nạ.

Quá trình này được lặp lại sáu lần, tạo ra 4,3 triệu mặt nạ cho 120 nghìn hình ảnh. - Bán tự động: Chuyên gia gán nhãn các đối tượng mà SAM không nhận diện được để tăng tính đa dạng. Quá trình này được lặp lại năm lần, thu thập 10,2 triệu mặt nạ cho 300 nghìn hình ảnh. - Hoàn toàn tự động: Sử dụng lưới điểm 32x32 để dự đoán mặt nạ.

Mô-đun IoU chọn các mặt nạ đáng tin cậy và duy nhất. Hình ảnh được cắt thành các phần nhỏ để tăng chất lượng mặt nạ. Tổng cộng, 11 triệu hình ảnh được xử lý, tạo ra 1,1 tỷ mặt nạ chất lượng cao.2 Tập dữ liệu 9 Hình 2.Ảnh mô tả bộ dữ liệu overlaid mask. SA-1B Dataset Bộ dữ liệu SA-1B bao gồm 11 triệu hình ảnh đa dạng, độ phân giải cao và 1,1 tỷ mặt nạ phân vùng chất lượng cao được thu thập bởi công cụ dữ liệu.

Các hình ảnh có độ phân giải trung bình là 3300x4950, tuy nhiên để tiết kiệm dung lượng lưu trữ, chúng được giảm kích thước xuống còn 1500 pixel cho chiều ngắn của hình ảnh. Ngay cả sau khi giảm kích thước, các hình ảnh vẫn có độ phân giải cao hơn nhiều so với nhiều bộ dữ liệu hiện có. Bộ dữ liệu bao gồm hơn 1,1 tỷ mặt nạ, tất cả đều được tự động tạo ra. Để đánh giá chất lượng của các mặt nạ này, 500 hình ảnh với khoảng 50.000 mặt nạ được lấy mẫu ngẫu nhiên và một nhóm chuyên gia gán nhãn sẽ cải thiện chất lượng của tất cả các mặt nạ trong các hình ảnh này bằng cách sử dụng mô hình và công cụ chỉnh sửa.

Kết quả là các cặp mặt nạ được dự đoán tự động, trong đó 94% các cặp có IoU lớn hơn 90%. Thí nghiệm này xác nhận rằng chất lượng mask là cao và mô hình có thể được huấn luyện chỉ bằng mask tự động. 10 Khi so sánh với các bộ dữ liệu khác cho phân vùng hình ảnh, SA-1B có số lượng hình ảnh nhiều hơn 11 lần và số lượng mặt nạ nhiều hơn 400 lần so với Open Images, bộ dữ liệu lớn nhất hiện nay. Các hình ảnh có hơn 100 mặt nạ chiếm 80% của SA-1B, áp đảo so với các bộ dữ liệu khác, chỉ có khoảng 30%.

SA-1B có nhiều mặt nạ nhỏ hơn, điều này không bất ngờ vì số lượng mặt nạ nhiều hơn.4 Thực nghiệm Để thể hiện tính hiệu quả trong chất lượng phân vùng ảnh của SAM, em sử dụng mô hình YOLOv8 – mô hình phục vụ nhận diện và phân vùng ảnh nhằm so sánh độ đa dạng và số lượng nhận diện đối tượng trong một bức ảnh. Tại đây, nhận thấy cả hai mô hình đều xử lý tiến trình “Phân vùng đối tượng” (Instance Segmentation), do đó thực nghiệm được tiến hành đưa một mẫu ảnh thử vào hai mô hình và so sánh kết quả được trả về từ SAM và YOLOv8. Các mẫu ảnh thử được lựa chọn đa dạng từ chân dung, phong cảnh, tranh vẽ…. để đánh giá một cách trực quan nhất.1 Các bước thực hiện Hai mô hình được thực hiện bằng Notebook, triển khai trên ứng dụng Google Colab yêu cầu cấu hình: - Yêu cầu phần cứng: o GPU với bộ nhớ tối thiểu 8GB: Để đảm bảo việc xử lý các tác vụ phân vùng đối tượng, GPU cần có dung lượng bộ nhớ đủ lớn (Vd:NVIDIA GTX 1080 Ti) sẽ giúp tăng tốc độ xử lý, đặc biệt là khi làm việc với các mô hình deep learning lớn và phức tạp.

o CPU đa nhân: Một CPU mạnh với nhiều nhân (cores) sẽ giúp xử lý các tác vụ không thể thực hiện trên GPU và giảm thiểu thời gian chờ. o RAM ít nhất 16GB: Để đảm bảo đủ bộ nhớ cho việc tải và xử lý các mô hình, dữ liệu, và các tác vụ khác. 11 - Yêu cầu phần mềm: o Python >= 3.8: Để sử dụng các thư viện mới nhất và các tính năng của Python.1: Nếu sử dụng GPU NVIDIA, CUDA sẽ giúp tận dụng sức mạnh của GPU để tăng tốc độ tính toán. Phiên bản CUDA cần phải tương thích với phiên bản PyTorch bạn cài đặt.

o Cài đặt các thư viện cần thiết: Bao gồm PyTorch, OpenCV, và các thư viện cụ thể cho từng mô hình (SAM và YOLOv8).

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Chắc chắn rồi, với vai trò là một chuyên gia SEO, tôi sẽ tóm tắt tài liệu và kết nối các chủ đề liên quan một cách tự nhiên.


Khóa luận tốt nghiệp "Xây Dựng Ứng Dụng Tách Đối Tượng Từ Ảnh" là một tài liệu nghiên cứu chuyên sâu, trình bày chi tiết quá trình và kỹ thuật để phát triển một ứng dụng có khả năng xác định và tách biệt các đối tượng cụ thể ra khỏi nền của một bức ảnh. Đây là một nguồn tham khảo vô giá cho sinh viên ngành Hệ thống Thông tin và Công nghệ Thông tin, cung cấp kiến thức nền tảng vững chắc về xử lý ảnh, học máy và quy trình hoàn thiện một dự án thực tế. Độc giả sẽ nắm được các bước cốt lõi từ thu thập dữ liệu, lựa chọn mô hình đến triển khai ứng dụng.

Để có cái nhìn toàn diện hơn và khám phá các ứng dụng đa dạng của công nghệ xử lý ảnh và học sâu, bạn có thể tìm hiểu sâu hơn qua các công trình nghiên cứu liên quan. Nếu việc tách đối tượng đã khơi dậy sự tò mò của bạn, hãy xem cách công nghệ này được nâng cao để theo dõi chuyển động liên tục của vật thể qua công trình Luận án tiến sĩ nghiên cứu phát triển một số kỹ thuật theo bám đối tượng dựa trên kiến trúc mạng siamese, một nghiên cứu ở cấp độ cao hơn giúp mở rộng kiến thức chuyên ngành. Bên cạnh đó, để thấy một ứng dụng thực tiễn trong môi trường công nghiệp, tài liệu Đồ án hcmute ứng dụng công nghệ cnn vào việc phân loại sản phẩm trên băng chuyền sẽ cho bạn thấy cách mạng CNN được sử dụng để tự động hóa quy trình sản xuất. Ngoài ra, việc xây dựng một ứng dụng hoàn chỉnh trên thiết bị di động cũng là một hướng đi thú vị, và bạn có thể tham khảo cách tiếp cận này trong Đồ án hcmute xây dựng ứng dụng nhận diện hoa trên smart phone để hiểu rõ hơn về quy trình đưa công nghệ nhận dạng hình ảnh đến tay người dùng cuối.