Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Tách đối tượng người ra khỏi ảnh nền đơn giản
Hướng Dẫn Đồ ÁnLập Trình AI

Tách đối tượng người ra khỏi ảnh nền đơn giản

Chia sẻ
Chia sẻ

Trong nhiều ứng dụng hiện đại như họp trực tuyến, phần mềm chụp ảnh và video, tách đối tượng người ra khỏi ảnh nền đơn giản là một bước quan trọng. Việc này giúp thay đổi nền ảnh (background replacement), tạo hiệu ứng xóa phông (bokeh) hoặc hỗ trợ các hệ thống theo dõi đối tượng. Ngày nay, nhờ các thư viện AI như MediaPipe, bạn có thể thực hiện điều này dễ dàng chỉ với vài dòng code Python.

Nếu bạn từng thực hiện Nhận diện khuôn mặt bằng AI hoặc Phát hiện chuyển động trong video với OpenCV, bài viết này sẽ giúp bạn tiến xa hơn bằng cách xử lý ảnh và video để tách người ra khỏi phông nền, mang lại sản phẩm thú vị và hữu ích cho đồ án hoặc ứng dụng thực tế.

Tập dữ liệu và công cụ

Tách đối tượng người ra khỏi ảnh nền đơn giản là kỹ thuật quan trọng trong nhiều ứng dụng như video call, chụp ảnh, livestream hoặc xử lý hậu kỳ. Nhờ tách người ra khỏi nền, bạn có thể áp dụng hiệu ứng thay nền (background replacement) hoặc xóa phông để làm nổi bật subject chính.

Để thực hành tách đối tượng người ra khỏi ảnh nền đơn giản, bạn có thể sử dụng hình ảnh mẫu như trong phần mở đầu hoặc tải bộ dataset người/phiên bản segmentation thực tế. Ví dụ:

Bài viết này ưu tiên dùng MediaPipe – thư viện có sẵn của Google giúp tách người nhanh chóng, chuẩn bị sẵn sàng cho tách đối tượng người ra khỏi ảnh nền đơn giản mà người mới cũng có thể chạy ngay.

Cài đặt và nạp ảnh mẫu

Để thực hiện tách đối tượng người ra khỏi ảnh nền đơn giản, bạn cần cài đặt mediapipeopencv-python. Đây là hai thư viện chính hỗ trợ xử lý ảnh/video hiệu quả. Sau khi cài đặt, bạn thử nạp ảnh để chắc chắn việc load ảnh thành công trước khi áp dụng segmentation.

Việc nạp ảnh thử trước khi chạy segmentation giúp bạn kiểm tra dữ liệu đầu vào đã đúng đường dẫn và định dạng, từ đó tránh lỗi trong quá trình thực thi.

pip install mediapipe opencv-python
import cv2

image = cv2.imread('person_sample.jpg')
cv2.imshow('Ảnh gốc', image)
cv2.waitKey(0)
cv2.destroyAllWindows()

Tách đối tượng người ra khỏi ảnh nền đơn giản bằng MediaPipe

MediaPipe Selfie Segmentation giúp bạn tách đối tượng người ra khỏi ảnh nền đơn giản bằng cách tạo ra một mask – vùng chứa người. Khi mask này áp dụng lên ảnh gốc, phần nền sẽ bị loại bỏ hoặc thay đổi. Hiệu ứng này cực kỳ phù hợp nếu bạn muốn nhận diện nét, vùng giữa subject và background.

Thư viện có thể xử lý nhanh trên CPU, không cần chuyên sâu về deep learning, vốn phù hợp với người mới tập làm segmentation.

import mediapipe as mp
import numpy as np
import cv2

mp_selfie = mp.solutions.selfie_segmentation
seg = mp_selfie.SelfieSegmentation(model_selection=1)

rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
res = seg.process(rgb)

mask = res.segmentation_mask > 0.5
output = image.copy()
output[~mask] = (255,255,255)  # nền trắng

cv2.imshow('Tách người khỏi nền', output)
cv2.waitKey(0)
cv2.destroyAllWindows()

Thay nền mới sau khi tách

Sau khi tách đối tượng người ra khỏi ảnh nền đơn giản, bạn có thể thay nền trắng bằng ảnh nền tùy chỉnh. Kỹ thuật này hữu ích cho việc làm poster, chụp ảnh profile, hoặc video call, tạo vẻ chuyên nghiệp cho sản phẩm cuối cùng.

Việc áp nền mới cũng đơn giản: resize ảnh nền về kích thước gốc, rồi thay pixel nền theo mask đã phân đoạn.

new_bg = cv2.imread('new_bg.jpg')
new_bg = cv2.resize(new_bg, (image.shape[1], image.shape[0]))

final = image.copy()
final[~mask] = new_bg[~mask]

cv2.imshow('Ảnh nền mới', final)
cv2.waitKey(0)
cv2.destroyAllWindows()

Phân đoạn người ra khỏi ảnh nền trong video

Không chỉ áp dụng cho ảnh đơn lẻ, bạn có thể dùng MediaPipe để tách đối tượng người ra khỏi ảnh nền đơn giản trong video hoặc livestream từ webcam. Thao tác này rất phù hợp cho các ứng dụng thời gian thực như Zoom filter, video marketing, hoặc kiểm thử UI khi thay nền trực tiếp.

Phần code loop trên webcam sẽ xử lý segmentation mỗi khung hình và hiển thị kết quả ngay lập tức.

import cv2
import mediapipe as mp

mp_selfie = mp.solutions.selfie_segmentation
seg = mp_selfie.SelfieSegmentation(model_selection=1)

cap = cv2.VideoCapture(0)
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break

    rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    res = seg.process(rgb)
    mask = res.segmentation_mask > 0.5
    frame[~mask] = (255,255,255)  # nền trắng

    cv2.imshow('Tách người real-time', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Kết luận

Qua các bước trên, bạn đã thực hiện thành công quy trình tách đối tượng người ra khỏi ảnh nền đơn giản bằng các công cụ MediaPipe và OpenCV. Bạn đã học cách xử lý ảnh tĩnh, thay nền và thực hiện segmentation theo thời gian thực – phù hợp cho các dự án AI hoặc đồ án học thuật.

Nếu bạn muốn mình mở rộng hơn với các mô hình như Mask R‑CNN hoặc triển khai app web thay nền trực tuyến (Flask/Streamlit), hoặc làm thêm Colab Notebook chạy mẫu trực tiếp, hãy cho mình biết nhé!

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!