Giới thiệu dự án

Bối cảnh và thực trạng ngành

Trong kỷ nguyên số hóa và bùng nổ dữ liệu đa phương tiện, thị giác máy tính (Computer Vision) đóng vai trò then chốt trong việc tự động hóa quá trình phân tích dữ liệu thị giác. Theo các báo cáo thống kê ngành công nghệ thị giác máy tính toàn cầu, khối lượng dữ liệu hình ảnh kỹ thuật số tăng trưởng hơn 30% mỗi năm. Trong đó, tác vụ phân vùng đối tượng (Image Segmentation) chiếm tới 80% thời gian xử lý thủ công trong các quy trình biên tập đồ họa kỹ thuật số, chẩn đoán hình ảnh y khoa, kiểm tra lỗi sản phẩm trong công nghiệp và xây dựng dữ liệu thực tế ảo tăng cường (Augmented Reality - AR).

Các kỹ thuật truyền thống như Haar Cascade, Histogram of Oriented Gradients (HOG) hay các mô hình học sâu cổ điển (R-CNN, YOLOv8, Mask R-CNN) tuy đã đạt được nhiều bước tiến nhưng đều gặp phải rào cản lớn: giới hạn bởi tập nhãn định sẵn (closed-vocabulary). Khi đối mặt với các đối tượng chưa từng được gán nhãn trong tập huấn luyện (out-of-distribution), các mô hình này hoàn toàn mất khả năng nhận diện hoặc cho ra kết quả phân đoạn có độ chính xác biên rất thấp.

Vấn đề nghiên cứu cụ thể (Problem Statement)

  • Thiếu tính tổng quát hóa (Zero-shot limitation): Các mô hình Instance Segmentation truyền thống đòi hỏi hàng chục nghìn ảnh gán nhãn thủ công cho mỗi lớp đối tượng mới, gây tốn kém chi phí và không thể thích ứng linh hoạt trong môi trường thực tế.
  • Xử lý bối cảnh phức tạp kém: Đối với các miền dữ liệu đặc thù như văn bản cổ (chữ Nôm), hình ảnh y tế (CT, MRI, X-quang), hay tranh vẽ nghệ thuật, các đường biên đối tượng bị mờ hoặc hòa lẫn với nền khiến các thuật toán phân vùng thông thường thất bại.
  • Rời rạc giữa tác vụ tách và chỉnh sửa ảnh: Hầu hết các công cụ hiện nay chỉ dừng lại ở mức tạo mặt nạ nhị phân (binary mask) hoặc tách nền đơn thuần, thiếu sự tích hợp với các mô hình tạo sinh (Generative AI) để tái cấu trúc hoặc phục hồi (Inpainting) đối tượng theo ngữ cảnh.

Mục tiêu dự án

  1. Nghiên cứu nền tảng lý thuyết và thực nghiệm: Khảo sát toàn diện kiến trúc mô hình nền tảng Segment Anything Model (SAM) của Meta AI và tập dữ liệu SA-1B (11 triệu ảnh, 1,1 tỷ mặt nạ).
  2. Đánh giá thực nghiệm đối chuẩn (Benchmarking): Triển khai thử nghiệm so sánh định lượng và định tính khả năng phân vùng Zero-shot giữa mô hình SAM và YOLOv8 trên đa dạng tập mẫu thử nghiệm.
  3. Phát triển ứng dụng Web hoàn chỉnh: Xây dựng hệ thống Client-Server tích hợp SAM để tự động tạo mask, trích xuất đối tượng dựa trên tương tác tọa độ click chuột, và tích hợp Stable Diffusion Inpainting nhằm nâng cao/chỉnh sửa đối tượng theo câu lệnh (Text Prompt).

Hướng tiếp cận giải pháp

Khóa luận lựa chọn tiếp cận bài toán thông qua việc kết hợp sức mạnh của mô hình nền tảng phân vùng thế hệ mới Segment Anything Model (SAM) với mô hình tạo sinh Stable Diffusion Inpainting. Toàn bộ giải pháp được đóng gói thành một ứng dụng web hướng dịch vụ (Service-Oriented Architecture) với Frontend ReactJS hiện đại và Backend Python Flask hiệu năng cao, tối ưu hóa xử lý ma trận và tính toán không gian tọa độ tương tác thời gian thực.

flowchart LR
    A[Người dùng tải ảnh lên] --> B[Image Encoder ViT-MAE]
    B --> C[Sinh Embedding & Mask Metadata]
    C --> D[Tương tác Click / Tọa độ chuột]
    D --> E[Tách đối tượng chính xác]
    E --> F[Inpainting với Stable Diffusion]
    F --> G[Tải ảnh thành phẩm]

Kết quả kỳ vọng và phạm vi giới hạn

  • Kết quả kỳ vọng: Tự động tạo mặt nạ với chỉ số Intersection over Union (IoU) > 90%; xử lý phân vùng chính xác trên ảnh chụp, tranh vẽ, chữ Nôm và ảnh y học; hỗ trợ chỉnh sửa inpainting với độ hòa hợp màu sắc tự nhiên.
  • Phạm vi & Giới hạn: Ứng dụng tập trung vào tương tác phân vùng trên từng ảnh tĩnh đơn lẻ (Single Image 2D); yêu cầu phần cứng máy chủ có GPU chuyên dụng (VRAM tối thiểu 8GB) để duy trì thời gian phản hồi suy luận (inference latency) ở mức chấp nhận được.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Bảng so sánh các giải pháp phân vùng đối tượng

Tiêu chí Haar Cascade / HOG Mask R-CNN / YOLOv8 Segment Anything Model (SAM)
Cơ chế hoạt động Trích xuất đặc trưng thủ công (Hand-crafted features) Mạng nơ-ron tích chập / Backbone CNN + Anchor Vision Transformer (ViT) + Prompt Engineering
Khả năng Zero-shot Không hỗ trợ Rất hạn chế (chỉ nhận diện lớp đã học) Vượt trội (phân vùng mọi đối tượng bất kỳ)
Chất lượng đường biên Rất thấp, dạng bounding box thô Khá tốt trên các đối tượng phổ biến Cực cao, chi tiết đến từng cấu trúc nhỏ
Tốc độ suy luận Nhanh trên CPU Rất nhanh (Real-time 30-60 FPS) Nhanh ở Mask Decoder (<50ms), nặng ở Image Encoder
Tập dữ liệu huấn luyện Vài nghìn mẫu COCO (330k ảnh, 80 lớp), Pascal VOC SA-1B (11M ảnh, 1.1 tỷ masks, IoU > 90% chiếm 94%)

Yêu cầu người dùng theo mô hình MoSCoW

  • Must have (Bắt buộc): Tải ảnh đa định dạng (JPG, PNG, JPEG); Tự động phân vùng tạo lưới mặt nạ; Cho phép click chọn tọa độ để tách đối tượng độc lập; Tải ảnh đối tượng tách nền về máy.
  • Should have (Nên có): Chỉnh sửa đối tượng bị thiếu/thay thế bằng Stable Diffusion Inpainting qua text prompt; Hiển thị hộp chứa ảnh di động (Drag-and-drop container); Bounding box phản hồi trực quan.
  • Could have (Có thể có): Xem chi tiết metadata mask (kích thước, diện tích, tọa độ tâm); Phóng to/thu nhỏ tương tác trực tiếp trên canvas.
  • Won't have (Chưa hỗ trợ): Phân đoạn video thời gian thực; Xử lý phân đoạn ảnh 3D/DICOM đa lớp.

Thiết kế hệ thống

Kiến trúc hệ thống tổng thể

Hệ thống được thiết kế theo mô hình tách biệt Client-Server (Decoupled Frontend-Backend), giao tiếp phi đồng bộ thông qua chuẩn RESTful API và trao đổi dữ liệu JSON/Binary.

graph TD
    subgraph Frontend_ReactJS ["Client Layer (ReactJS SPA)"]
        UI_Upload["Upload & Dropzone"]
        UI_Canvas["Interactive Canvas & Bounding Box"]
        UI_Box["Draggable Image Box Container"]
        UI_Prompt["Prompt Input Panel"]
    end

    subgraph Backend_Flask ["Application Layer (Flask REST API)"]
        API_Gateway["Flask Core & CORS Handler"]
        File_Manager["Werkzeug Secure Storage"]
        SAM_Service["SAM Inference Service"]
        SD_Service["Stable Diffusion Inpainting Pipeline"]
        Subprocess_Mgr["Subprocess & Coordinate Mapper"]
    end

    subgraph Hardware_Layer ["Compute & Model Weights"]
        GPU_Mem["NVIDIA GPU Memory (CUDA)"]
        SAM_Weights["SAM ViT Checkpoint"]
        SD_Weights["Stable Diffusion Model Cache"]
    end

    Frontend_ReactJS <==>|HTTP POST/GET JSON| Backend_Flask
    Backend_Flask <==> Hardware_Layer

Technology Stack và phiên bản cụ thể

  • Ngôn ngữ Backend: Python >= 3.8
  • Backend Framework: Flask v2.3+, Flask-CORS v4.0+, Werkzeug v2.3+
  • Deep Learning Frameworks: PyTorch v2.1.0+, Torchvision v0.16.0+, CUDA Toolkit v11.8 / v12.1
  • Computer Vision & AI Engines:
    • segment-anything (Meta AI Official Library)
    • ultralytics v8.0+ (YOLOv8 baseline)
    • diffusers v0.25+ (Hugging Face Stable Diffusion Inpainting)
    • opencv-python-headless v4.8+, Pillow (PIL) v10.0+, pandas v2.0+
  • Frontend Framework: ReactJS v18.2+, JavaScript (ES6+), Axios v1.6+, HTML5 Canvas API, Modern CSS3.

Thiết kế RESTful API

Endpoint Phương thức Tham số đầu vào Mô tả dữ liệu phản hồi
/api/upload POST multipart/form-data (file: image) JSON { status: "success", image_id: "uuid", image_url: "..." }
/api/generate_masks POST JSON { image_id: "uuid" } JSON { status: "ready", mask_metadata_path: "..." }
/api/apply_mask POST JSON { image_id: "uuid", click_x: int, click_y: int } JSON { status: "success", cropped_image_url: "...", bbox: [x,y,w,h] }
/api/enhance_inpaint POST JSON { image_id: "uuid", mask_id: "...", prompt: str } JSON { status: "success", enhanced_image_url: "..." }

Methodology (Phương pháp luận nghiên cứu)

Dự án áp dụng mô hình phát triển phần mềm lặp Agile/Scrum kết hợp quy trình nghiên cứu khoa học thực nghiệm:

  1. Sprint 1 (Tuần 1-3): Nghiên cứu lý thuyết sâu về Transformer trong Computer Vision, cơ chế Masked Autoencoders (MAE), cấu trúc dữ liệu SA-1B.
  2. Sprint 2 (Tuần 4-6): Xây dựng môi trường thử nghiệm trên Google Colab GPU, thực hiện benchmark so sánh SAM và YOLOv8 trên 6 tập dữ liệu đa miền.
  3. Sprint 3 (Tuần 7-10): Phát triển Backend API Flask, xử lý lưu trữ metadata mặt nạ dạng vector/tọa độ và thuật toán lọc bounding box nhỏ nhất.
  4. Sprint 4 (Tuần 11-14): Xây dựng giao diện ReactJS, tích hợp pipeline Stable Diffusion Inpainting, kiểm thử toàn diện và tối ưu hóa trải nghiệm người dùng.

Implementation và kết quả

Development process & Core Algorithms

1. Cơ chế hoạt động của Segment Anything Model (SAM)

SAM chia quy trình phân vùng thành 3 thành phần liên kết chặt chẽ:

  • Image Encoder: Sử dụng kiến trúc Vision Transformer (ViT) được tiền huấn luyện bằng phương pháp Masked Autoencoder (MAE). Chuyển đổi ảnh đầu vào kích thước gốc (thu nhỏ chuẩn hóa 1024x1024 hoặc giữ tỉ lệ cạnh ngắn 1500px) thành một biểu diễn nhúng đặc trưng không gian (dense image embedding $C \times H' \times W'$).
  • Prompt Encoder: Biểu diễn các điểm tương tác (Points), Hộp giới hạn (Bounding Boxes) thông qua kỹ thuật mã hóa vị trí (Positional Encodings) và văn bản thông qua CLIP Text Encoder. Với Dense Mask Prompts, mô hình sử dụng các tầng tích chập (Convolutions).
  • Mask Decoder: Khối Transformer Decoder sử dụng cơ chế chú ý hai chiều (Two-Way Cross-Attention: Prompt-to-Image và Image-to-Prompt) để cập nhật embedding, sau đó tăng tỷ lệ (Upsampling) kết hợp với khối mạng nơ-ron đa tầng (MLP) để dự đoán mặt nạ phân vùng cùng hệ số tin cậy (IoU Score).
                      +-----------------------------+
                      |       Input Image           |
                      +--------------+--------------+
                                     |
                                     v
                      +-----------------------------+
                      |   Image Encoder (ViT-MAE)   |
                      +--------------+--------------+
                                     |
                                     v (Image Embedding)
+-----------------------+     +-----------------------------+
| Points / BBoxes / Text| --> |    Prompt Encoder (CLIP)    |
+-----------------------+     +--------------+--------------+
                                             |
                                             v (Prompt Embedding)
                      +-----------------------------+
                      |  Two-Way Cross-Attention    |
                      |        Mask Decoder         |
                      +--------------+--------------+
                                     |
                                     v
                      +-----------------------------+
                      | Binary Masks + IoU Scores   |
                      +-----------------------------+

2. Thuật toán xác định Mask nhỏ nhất từ tọa độ tương tác chuột

Khi người dùng click vào tọa độ $(x_c, y_c)$ trên Canvas, Backend truy xuất tệp Metadata chứa danh sách tất cả các masks đã được sinh tự động. Thuật toán tìm kiếm mặt nạ tối ưu có diện tích nhỏ nhất bao chứa điểm chọn:

def find_optimal_mask(metadata_df, click_x, click_y):
    """
    Tìm mask có diện tích nhỏ nhất chứa điểm click (click_x, click_y)
    nhằm đảm bảo độ chính xác cho các chi tiết con.
    """
    candidate_masks = []
    for idx, row in metadata_df.iterrows():
        x, y, w, h = row['bbox'] # Bounding box [x_min, y_min, width, height]
        if x <= click_x <= (x + w) and y <= click_y <= (y + h):
            area = w * h
            candidate_masks.append({
                'mask_id': row['id'],
                'area': area,
                'bbox': [x, y, w, h],
                'segmentation_path': row['segmentation_file']
            })
            
    if not candidate_masks:
        return None
        
    # Sắp xếp chọn mask có diện tích nhỏ nhất chứa điểm tương tác
    candidate_masks.sort(key=lambda item: item['area'])
    return candidate_masks[0]

3. Pipeline Inpainting với Stable Diffusion

Mô hình StableDiffusionInpaintPipeline từ thư viện diffusers nhận vào ảnh gốc, mặt nạ nhị phân (Binary Mask) của đối tượng được chọn và chuỗi văn bản điều khiển (Text Prompt) để tiến hành khử nhiễu có điều kiện trong không gian ẩn (Latent Space).

from diffusers import StableDiffusionInpaintPipeline
import torch
from PIL import Image

# Khởi tạo Pipeline Inpainting trên thiết bị GPU
pipe = StableDiffusionInpaintPipeline.from_pretrained(
    "stabilityai/stable-diffusion-2-inpainting",
    torch_dtype=torch.float16
).to("cuda")

def inpaint_object(init_image_path, mask_image_path, prompt_text):
    init_image = Image.open(init_image_path).convert("RGB")
    mask_image = Image.open(mask_image_path).convert("RGB")
    
    # Thực hiện sinh ảnh chỉnh sửa
    image_result = pipe(
        prompt=prompt_text,
        image=init_image,
        mask_image=mask_image,
        guidance_scale=7.5,
        num_inference_steps=50
    ).images[0]
    
    output_path = "static/results/inpainted_output.png"
    image_result.save(output_path)
    return output_path

Testing và validation

Môi trường thực nghiệm

  • Phần cứng: GPU NVIDIA GeForce GTX 1080 Ti (11GB VRAM), CPU Intel Core i7-9700K (8 Cores, 3.6GHz), 32GB RAM DDR4.
  • Hệ điều hành: Ubuntu 22.04 LTS, CUDA Version 11.8.

Bảng kết quả thực nghiệm đối chuẩn (SAM vs YOLOv8)

Thử nghiệm được thực hiện trên 6 tập mẫu đại diện cho các miền dữ liệu hình ảnh khác nhau:

Tập dữ liệu thử nghiệm YOLOv8 (Instance Segmentation) Segment Anything Model (SAM) Đánh giá & Kết luận
1. Ảnh hỗn hợp (Người, xe, vật nuôi) Phân vùng được 4-6 đối tượng lớn, biên thô Phân vùng > 35 đối tượng chi tiết, tách rời từng phần SAM vượt trội về độ phủ mặt nạ
2. Chân dung người (Portrait) Chỉ tạo duy nhất 1 mask toàn thân người Tách riêng: mắt, mũi, áo, kính mắt, khuôn mặt SAM cho phép chọn chi tiết mức độ sâu
3. Phương tiện giao thông Tốt trên xe hơi, xe máy phổ thông Tốt trên toàn bộ xe, bánh xe, gương chiếu hậu, biển số Cả hai đều tốt; SAM sâu hơn
4. Tranh vẽ nghệ thuật Không nhận diện được (0 mask) Tách chính xác 100% các nhân vật hoạt họa/tranh vẽ YOLOv8 thất bại do lệch phân phối
5. Bảng chữ Nôm cổ Hoàn toàn thất bại (0 mask) Tách rời chính xác từng ký tự chữ Nôm riêng biệt Khẳng định khả năng Zero-shot của SAM
6. Cảnh quan thiên nhiên Chỉ nhận diện cây lớn hoặc người Tách chi tiết: tán lá, dòng sông, vách đá, bầu trời SAM phân vùng toàn diện

Kết quả đạt được

  1. Khả năng tách đối tượng Zero-shot: Ứng dụng xử lý thành công hơn 95% các yêu cầu phân vùng đối tượng phức tạp mà không cần bất kỳ bước huấn luyện lại (fine-tuning) nào.
  2. Độ chính xác trên ảnh đặc thù: Tách thành công 80% chi tiết trong ảnh hoạt hình phức tạp và trích xuất rõ nét các cấu trúc giải phẫu trong ảnh y học.
  3. Chỉnh sửa sáng tạo (Inpainting): Tích hợp thành công Stable Diffusion cho phép thay đổi trang phục, bối cảnh bầu trời, thêm/bớt vật thể dựa trên mask với độ chân thực cao, màu sắc và ánh sáng đồng nhất.

Đổi mới và đóng góp

Các đổi mới kỹ thuật nổi bật

  1. Tích hợp liên hoàn Zero-shot Foundation Model và Generative Inpainting: Không chỉ dừng lại ở việc cắt ảnh tĩnh thông thường, hệ thống kết nối đầu ra mặt nạ của SAM làm kênh điều kiện (Mask Conditioning) cho Latent Diffusion Model, mở ra khả năng chỉnh sửa ảnh tự động hoàn toàn trên Web.
  2. Cơ chế tham chiếu tọa độ Minimum Bounding Box tối ưu: Giải quyết bài toán mơ hồ (ambiguity) khi người dùng click vào một điểm nằm trong nhiều tầng mask lồng nhau (ví dụ: click vào mắt thuộc khuôn mặt, thuộc cơ thể người) bằng thuật toán lọc cục bộ theo diện tích cực tiểu.
  3. Kiến trúc Interactive UI dạng Modular Container: Thiết kế các hộp chứa ảnh (Draggable Image Boxes) độc lập trên ReactJS, cho phép người dùng thao tác song song nhiều vùng đối tượng được cắt cùng lúc.
graph LR
    A[Mô hình truyền thống: Haar/HOG/YOLO] -->|Hạn chế| B[Chỉ nhận diện lớp định sẵn]
    C[Giải pháp đề tài: SAM + SD Inpaint] -->|Đột phá| D[Zero-shot mọi miền dữ liệu + Tạo sinh Inpainting]

Đóng góp cho ngành và học thuật

  • Cung cấp một bộ giải pháp tham khảo đầy đủ (Full-stack Reference Implementation) về việc ứng dụng Foundation Model vào sản phẩm phần mềm thực tế.
  • Chứng minh tính khả thi của việc ứng dụng SAM trong bảo tồn di sản (số hóa bóc tách chữ Nôm) và hỗ trợ sơ bộ phân tích ảnh y tế mà không đòi hỏi tập dữ liệu gán nhãn y khoa tốn kém.

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng thực tế

  • Thương mại điện tử (E-commerce): Tự động tách sản phẩm ra khỏi ảnh chụp thực tế, thay thế nền trắng hoặc phối bối cảnh quảng cáo mới bằng Stable Diffusion chỉ trong 3 giây.
  • Y tế & Chẩn đoán hình ảnh: Hỗ trợ bác sĩ cô lập nhanh các vùng tổn thương, khối u, cấu trúc mô trên ảnh chụp cắt lớp (CT, MRI) để đo đạc kích thước.
  • Bảo tồn văn hóa số: Bóc tách tự động từng ký tự cổ trên bia đá, mộc bản chữ Nôm phục vụ nhận dạng ký tự quang học (OCR).
  • Điện ảnh & Xử lý đồ họa: Thay thế kỹ thuật phông xanh (Chroma Key) truyền thống, bóc tách nhân vật trong các điều kiện ánh sáng phức tạp.

Hướng dẫn triển khai hệ thống (Deployment Architecture)

# 1. Khởi tạo môi trường ảo Python
python3 -m venv venv && source venv/bin/activate

# 2. Cài đặt các thư viện phụ thuộc cốt lõi
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118
pip install ultralytics segment-anything diffusers transformers accelerate
pip install flask flask-cors Pillow pandas opencv-python-headless

# 3. Tải trọng số mô hình SAM (ViT-H hoặc ViT-B)
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth -P ./checkpoints/

# 4. Khởi chạy Backend Server
python app.py --port 5000 --host 0.0.0.0

# 5. Khởi chạy Frontend ReactJS
cd frontend && npm install && npm start

Phân tích hiệu quả đầu tư (Cost-Benefit & ROI)

  • Tiết kiệm thời gian: Giảm 75% - 85% thời gian bóc tách layer so với việc kỹ thuật viên sử dụng công cụ Pen Tool trong Adobe Photoshop.
  • Tối ưu chi phí: Giảm thiểu chi phí thuê nhân sự gán nhãn dữ liệu thủ công (tiết kiệm ước tính hàng chục nghìn USD cho mỗi dự án AI cần gán nhãn 100.000 ảnh).

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  1. Tài nguyên phần cứng: Image Encoder của SAM dựa trên Vision Transformer lớn nên đòi hỏi bộ nhớ VRAM cao, thời gian tạo embedding ban đầu mất khoảng 1.5 - 3 giây trên GPU tầm trung.
  2. Chi tiết siêu mảnh: Các vùng biên có cấu trúc dạng sợi siêu nhỏ (như sợi tóc mảnh, lông thú, khói, kính trong suốt) vẫn xuất hiện hiện tượng răng cưa hoặc viền trắng (halo effect).
  3. Phụ thuộc vào độ phân giải ảnh gốc: Với ảnh đầu vào có độ phân giải quá thấp (< 300px), các đường biên mask bị suy giảm độ chính xác do mất thông tin không gian.

Kế hoạch phát triển tương lai

  • Tích hợp kỹ thuật Image Matting (Matte Anything / Alpha Matte): Sử dụng các thuật toán xử lý biên nâng cao (Alpha Blending, Trimap generation) để làm mịn viền tóc và các vật thể bán trong suốt.
  • Tích hợp Super-Resolution (Real-ESRGAN): Nâng cấp độ phân giải ảnh sau khi tách trước khi đưa vào module Inpainting.
  • Tối ưu hóa mô hình nhẹ (MobileSAM / FastSAM): Đưa mô hình về kích thước nhỏ để có thể chạy suy luận trực tiếp trên trình duyệt máy khách (WebAssembly / ONNX Runtime) hoặc thiết bị di động.

Đối tượng hưởng lợi

mindmap
  root((Hệ sinh thái hưởng lợi))
    Sinh viên & Giảng viên
      Tham khảo đồ án mẫu
      Tài liệu học sâu & Vision Transformer
    Kỹ sư phần mềm
      Kiến trúc tích hợp React-Flask-PyTorch
      Mã nguồn xử lý tương tác tọa độ
    Doanh nghiệp & Startup
      Tối ưu quy trình cắt ảnh e-Commerce
      Giảm chi phí nhân sự đồ họa
    Nhà nghiên cứu
      Benchmark thực nghiệm SAM vs YOLOv8
      Ứng dụng Zero-shot trên văn bản cổ & Y tế
  • Sinh viên & Giảng viên: Cung cấp tài liệu tham khảo hoàn chỉnh từ lý thuyết Transformer, Foundation Model đến cách thức triển khai mã nguồn thực nghiệm.
  • Lập trình viên (Developers): Nắm vững pattern kết nối giữa mô hình AI nặng tính toán ở Backend với giao diện Canvas động ở Frontend.
  • Doanh nghiệp: Mô hình ứng dụng trực tiếp vào tự động hóa studio chụp ảnh sản phẩm, tiết kiệm chi phí vận hành.
  • Nhà nghiên cứu: Tài liệu minh chứng thực nghiệm về tính khả thi của Zero-shot Segment trong các bài toán nhận diện chữ Hán Nôm và ảnh chuyên dụng.

Câu hỏi thường gặp

1. Yêu cầu cấu hình phần cứng tối thiểu để triển khai ứng dụng là gì?

Hệ thống yêu cầu máy chủ có GPU NVIDIA hỗ trợ CUDA với VRAM tối thiểu 8GB (khuyến nghị 11GB - 16GB như RTX 3060, GTX 1080Ti hoặc T4 trên Cloud). RAM hệ thống tối thiểu 16GB, dung lượng ổ cứng trống 20GB để lưu trữ trọng số mô hình SAM và Stable Diffusion Checkpoints.

2. Làm thế nào để giải quyết tình trạng nghẽn cổ chai (Bottleneck) khi nhiều người dùng cùng truy cập?

Tách biệt tác vụ tính toán Image Embedding (Image Encoder) thành một cụm Worker bất đồng bộ (Celery + Redis). Kết quả Embedding của ảnh được lưu vào bộ nhớ đệm (Cache/RAM). Quá trình tương tác click của người dùng chỉ gọi qua Mask Decoder (vốn rất nhẹ, < 50ms) giúp hệ thống đáp ứng hàng trăm kết nối đồng thời trên cùng một GPU.

3. Hệ thống có thể tích hợp vào các nền tảng CMS hoặc E-commerce hiện có không?

Hoàn toàn khả thi. Toàn bộ tính năng phân vùng và inpainting đã được đóng gói dưới dạng các RESTful API chuẩn mực. Các nền tảng như Shopify, WooCommerce hoặc hệ thống ERP nội bộ chỉ cần gửi HTTP POST request kèm URL hình ảnh để nhận về URL ảnh đã tách nền trong suốt dạng PNG.

4. Chi phí vận hành và bảo trì mô hình định kỳ như thế nào?

Do SAM là mô hình phân vùng tổng quát (Zero-shot Foundation Model), hệ thống không đòi hỏi chi phí huấn luyện lại (Retraining) định kỳ cho các tập dữ liệu mới. Chi phí bảo trì chủ yếu là chi phí duy trì hạ tầng máy chủ GPU Cloud (ước tính khoảng 30 - 70 USD/tháng cho 1 GPU Server chuyên dụng trên AWS/Vast.ai).

5. Dự toán thời gian thu hồi vốn (ROI Timeline) khi áp dụng trong doanh nghiệp là bao lâu?

Đối với một studio thương mại điện tử xử lý 1.000 sản phẩm/ngày, ứng dụng giúp cắt giảm từ 2 nhân sự đồ họa chuyên cắt nền xuống còn 1 nhân sự giám sát bán tự động. Doanh nghiệp có thể thu hồi toàn bộ chi phí đầu tư hạ tầng phần cứng trong vòng 2 đến 3 tháng.


Kết luận

Khóa luận tốt nghiệp "Xây dựng ứng dụng tách đối tượng từ ảnh" đã giải quyết trọn vẹn bài toán phân vùng đối tượng thích ứng đa miền thông qua việc tiên phong ứng dụng mô hình nền tảng Segment Anything Model (SAM) kết hợp cùng kỹ thuật tạo sinh Stable Diffusion Inpainting. Dự án không chỉ dừng lại ở các phân tích lý thuyết hay thực nghiệm trong môi trường Notebook kín, mà đã chuyển hóa thành công tri thức học thuật thành một giải pháp phần mềm hoàn chỉnh, có tính ứng dụng thực tiễn cao và giao diện người dùng trực quan.

Kết quả thực nghiệm đã chứng minh ưu thế tuyệt đối của mô hình SAM so với các kiến trúc truyền thống như YOLOv8 trong khả năng nhận diện Zero-shot trên những tập dữ liệu phức tạp (tranh vẽ nghệ thuật, chữ Nôm cổ, cấu trúc tế bào y học). Đây là tiền đề vững chắc cho việc tiếp tục mở rộng hệ thống sang các bài toán cao cấp hơn như Image Matting sợi mảnh, Super-Resolution và phân đoạn thời gian thực trên các thiết bị biên.