Cách huấn luyện tùy chỉnh Ultralytics YOLO26 cho tác vụ phân đoạn từng đối tượng
Tìm hiểu cách huấn luyện tùy chỉnh Ultralytics YOLO26 cho tác vụ phân đoạn từng đối tượng, trong đó model nhận diện và tách riêng từng đối tượng bằng mask ở cấp pixel.

Nhờ những tiến bộ công nghệ gần đây, nhiều hệ thống thông minh âm thầm nhưng có ảnh hưởng lớn đến cuộc sống của chúng ta được vận hành bằng AI. Chẳng hạn, khi camera tự động ghi lại hành vi vượt đèn đỏ của ô tô, hoặc khi hệ thống kiểm tra chất lượng tự động phát hiện lỗi sản xuất trên dây chuyền, AI đang xử lý công việc ở hậu trường.
Cụ thể, một nhánh của AI có tên thị giác máy tính cho phép máy diễn giải và hiểu hình ảnh cũng như video. Thị giác máy tính giúp hệ thống nhận diện đối tượng, theo dõi chuyển động và phân tích chi tiết hình ảnh theo thời gian thực, trở thành công nghệ thiết yếu cho các ứng dụng như giám sát giao thông, kiểm tra công nghiệp và robot.
Những khả năng này được hiện thực hóa nhờ các model thị giác máy tính như Ultralytics YOLO26, hỗ trợ nhiều tác vụ thị giác, bao gồm phát hiện đối tượng và phân đoạn instance. Phát hiện đối tượng xác định đối tượng bằng các hộp giới hạn đơn giản, còn phân đoạn instance tiến xa hơn bằng cách phác thảo từng đối tượng ở cấp pixel, cho phép tạo ra kết quả chính xác và đáng tin cậy hơn trong các tình huống thực tế.

Hình 1. Phân đoạn đối tượng trong ảnh bằng Ultralytics YOLO26
Các model như Ultralytics YOLO26 được huấn luyện trước và có thể nhận diện ngay các đối tượng thường gặp như người, ô tô và động vật. Tuy nhiên, chúng cũng có thể được huấn luyện tùy chỉnh cho những ứng dụng chuyên biệt hơn. Nói cách khác, model có thể học cách nhận biết hình dạng của đối tượng và phác thảo đối tượng một cách chính xác.
Trong bài viết này, chúng ta sẽ hướng dẫn cách huấn luyện tùy chỉnh Ultralytics YOLO26 cho tác vụ phân đoạn instance. Bắt đầu nào!
Phân đoạn instance là gì?#
Trước khi tìm hiểu cách huấn luyện model, hãy dừng lại một chút để hiểu phân đoạn instance thực sự là gì.
Phân đoạn instance là một tác vụ thị giác máy tính cho phép model tìm từng đối tượng riêng biệt trong ảnh và phác thảo chính xác hình dạng của đối tượng đó. Thay vì chỉ xác định rằng một đối tượng tồn tại, model phân tích từng pixel trong ảnh và quyết định pixel đó có thuộc về một đối tượng cụ thể hay không.
Nhờ vậy, model có thể tách các đối tượng ngay cả khi chúng chồng lấp hoặc ở rất gần nhau. Một khái niệm then chốt giúp dễ hình dung phân đoạn instance là mask.
Mask là đường viền ở cấp pixel chỉ bao phủ vùng của một đối tượng. Bạn có thể hình dung việc này giống như tô sáng đối tượng trong khi giữ nguyên mọi thứ xung quanh.
Mỗi đối tượng có mask riêng, giúp model phân biệt đối tượng này với đối tượng khác, ngay cả khi chúng cùng loại, chẳng hạn như hai chiếc ô tô hoặc hai người đứng cạnh nhau.

Hình 2. Minh họa phân đoạn instance
Để hiểu rõ hơn về phân đoạn instance, chúng ta có thể so sánh phương pháp này với các tác vụ thị giác máy tính phổ biến khác. Phát hiện đối tượng sử dụng hộp giới hạn, tức các hình chữ nhật đơn giản được vẽ quanh đối tượng. Hộp giới hạn nhanh và hữu ích, nhưng không thể hiện chính xác hình dạng của đối tượng.
Trong khi đó, phân đoạn ngữ nghĩa gán nhãn cho từng pixel trong ảnh theo danh mục, nhưng không phân biệt các đối tượng riêng biệt thuộc cùng một lớp. Phân đoạn instance kết hợp ưu điểm của cả hai phương pháp bằng cách xác định danh mục đối tượng và gán một mask riêng cho từng đối tượng.
Vì cung cấp thông tin chi tiết như vậy, phân đoạn instance đặc biệt hữu ích trong các ứng dụng thực tế như kiểm tra chất lượng tự động, chẩn đoán hình ảnh y tế và robot. Những tác vụ đòi hỏi phép đo chính xác, ranh giới rõ ràng hoặc khả năng tách đối tượng có thể tận dụng khả năng hiểu ảnh ở cấp pixel này.
Ultralytics YOLO26 hỗ trợ phân đoạn instance#
Ultralytics YOLO26 là model thị giác máy tính hiện đại, end-to-end, không cần non-maximum suppression (NMS), được thiết kế để xử lý các tác vụ thị giác thực tế nhanh chóng và hiệu quả. Model thuộc dòng model phát hiện Ultralytics YOLO, có thể xử lý ảnh và video theo thời gian thực đồng thời cho kết quả chính xác.
Ultralytics YOLO26 hỗ trợ nhiều tác vụ thị giác trong cùng một framework, bao gồm phát hiện đối tượng, ước tính tư thế, phân loại ảnh, phát hiện hộp giới hạn định hướng (phát hiện obb) và phân đoạn instance.
Ultralytics YOLO26 được huấn luyện trước, nghĩa là model đã học cách nhận diện các đối tượng phổ biến như người, phương tiện và vật dụng hằng ngày từ những bộ dữ liệu lớn, được sử dụng rộng rãi như COCO và ImageNet. Bạn có thể sử dụng model ngay mà không cần huấn luyện thêm.
Tuy nhiên, khi ứng dụng của bạn liên quan đến các đối tượng đặc thù, môi trường cụ thể hoặc điều kiện ánh sáng bất thường, huấn luyện model tùy chỉnh có thể cải thiện đáng kể kết quả. Bằng cách huấn luyện Ultralytics YOLO26 trên ảnh có nhãn của riêng mình, bạn có thể dạy model chính xác những gì cần tìm và cách phác thảo đối tượng chính xác hơn cho trường hợp sử dụng cụ thể.
Quy trình này còn được gọi là fine-tuning. Thay vì huấn luyện model từ đầu, fine-tuning bắt đầu với một model Ultralytics YOLO26 đã được huấn luyện trước rồi điều chỉnh model bằng dữ liệu của riêng bạn. Vì model đã hiểu các mẫu hình ảnh tổng quát như cạnh, hình dạng và kết cấu, model cần ít ảnh có nhãn hơn và ít thời gian hơn nhiều để học các đối tượng cụ thể của bạn.
Nói đơn giản, fine-tuning nhanh hơn, hiệu quả hơn và dễ tiếp cận hơn so với huấn luyện model từ đầu. Huấn luyện tùy chỉnh Ultralytics YOLO26 là lựa chọn thiết thực ngay cả với người mới bắt đầu hoặc các nhóm có dữ liệu và tài nguyên tính toán hạn chế.
Tìm hiểu các ứng dụng phân đoạn instance của Ultralytics YOLO26#
Vậy phân đoạn instance có thể phát huy tác dụng ở đâu? Phương pháp này hữu ích trong những tình huống cần phân biệt các đối tượng và hiểu chính xác hình dạng của chúng, đặc biệt khi các đối tượng nằm chen chúc hoặc chồng lấp.
Dưới đây là một số quy trình phổ biến mà phân đoạn instance tạo ra khác biệt rõ rệt:
- Ảnh chụp từ trên không và ảnh drone: Tác vụ này cho phép drone tách các đối tượng như tòa nhà, phương tiện và thảm thực vật trong ảnh chụp từ trên không để lập bản đồ, kiểm tra và khảo sát.
- Phân tích thể thao: Phân đoạn instance giúp phân tích chuyển động và tương tác của người chơi bằng cách tách riêng từng vận động viên khỏi hậu cảnh trong trận đấu hoặc buổi tập.
- Giám sát xây dựng và hạ tầng: Phân đoạn instance giúp xác định các cấu kiện, vết nứt hoặc khu vực hư hỏng trong tòa nhà, cầu đường để lập kế hoạch bảo trì.
- Y tế và chẩn đoán hình ảnh: Phân đoạn instance giúp phác thảo chính xác tế bào, mô hoặc dụng cụ y tế, hỗ trợ phân tích và chẩn đoán chính xác hơn.
- Nông nghiệp và giám sát môi trường: Phân đoạn instance có thể xác định và tách riêng cây trồng, trái cây hoặc bệnh cây, giúp ước tính sản lượng và áp dụng biện pháp xử lý có mục tiêu dễ dàng hơn.

Hình 3. Ví dụ về phân đoạn cỏ dại bằng YOLO26 (Nguồn)
Cách huấn luyện tùy chỉnh Ultralytics YOLO26 cho phân đoạn instance hoạt động#
Tiếp theo, hãy cùng tìm hiểu cách thức huấn luyện tùy chỉnh. Việc huấn luyện model có thể nghe có vẻ phức tạp về mặt kỹ thuật, nhưng quy trình tổng thể khá đơn giản.
Bạn có thể chuẩn bị ảnh, gán nhãn các đối tượng muốn model học, cấu hình một tệp cài đặt nhỏ, sau đó huấn luyện YOLO26 bằng gói Ultralytics Python. Gói Ultralytics Python là thư viện phần mềm cung cấp các công cụ sẵn dùng để huấn luyện, kiểm thử và triển khai model YOLO mà không cần xây dựng mọi thứ từ đầu.
Bước 1: Chuẩn bị bộ dữ liệu tùy chỉnh#
Bước đầu tiên là chuẩn bị dataset segmentation tùy chỉnh. Dataset đơn giản là tập hợp các hình ảnh thể hiện những đối tượng mà bạn muốn model học.
Hãy cố gắng đưa vào các hình ảnh phản ánh điều kiện thực tế, chẳng hạn như nhiều góc chụp, điều kiện ánh sáng, phông nền và kích thước đối tượng khác nhau. Hình ảnh càng đa dạng thì model của bạn càng hoạt động tốt.
Với bài toán phân đoạn đối tượng (instance segmentation), hình ảnh cũng cần có annotation. Annotation là quá trình gán nhãn các đối tượng trong từng hình ảnh để model biết cần học gì. Thay vì vẽ các bounding box đơn giản, bạn sẽ vẽ đường viền chi tiết (polygon) quanh từng đối tượng để đánh dấu chính xác hình dạng của chúng. Các đường viền này trở thành mask mà model học cách dự đoán.
Bạn có thể sử dụng một số công cụ annotation mã nguồn mở để tạo các nhãn này. Nhiều công cụ trong số đó có giao diện thân thiện với người dùng, cho phép bạn tải hình ảnh lên và vẽ trực tiếp đường viền của đối tượng lên hình.
Sau khi chuẩn bị xong hình ảnh và annotation, bạn có thể sắp xếp chúng vào các thư mục training và validation. Cách chia phổ biến là dùng 80% hình ảnh cho training và 20% cho validation, mặc dù tỷ lệ 70% cho training và 30% cho validation cũng thường được dùng, tùy thuộc vào kích thước dataset. Tập training giúp model học, còn tập validation được dùng để đo lường khả năng hoạt động của model trên những hình ảnh model chưa từng thấy.
Việc duy trì tỷ lệ chia cân bằng và đảm bảo cả hai thư mục đều chứa nhiều ví dụ đa dạng là rất quan trọng. Một dataset sạch, được gán nhãn đầy đủ, cùng với cách chia train và validation phù hợp sẽ tạo nền tảng cho một model instance segmentation mạnh.
Bước 2: Tạo file YAML cho dataset#
Sau khi chuẩn bị hình ảnh và annotation, bước tiếp theo là tạo file YAML cho dataset. File này cho biết vị trí dataset và các lớp đối tượng mà model cần học trong quá trình training.
Trong file này, bạn có thể xác định thư mục gốc của dataset, đường dẫn đến các thư mục chứa hình ảnh training và validation, cũng như danh sách tên lớp. Tên lớp phải được liệt kê theo đúng thứ tự của các số lớp trong file annotation để mọi thứ khớp chính xác.
Nếu có thắc mắc về định dạng chính xác, bạn có thể tham khảo tài liệu chính thức của Ultralytics để biết thêm chi tiết.
Bước 3: Cài đặt package Ultralytics Python#
Giờ đây, khi dataset và file YAML đã sẵn sàng, bước tiếp theo là cài đặt package Ultralytics Python.
Package này bao gồm các công cụ cần thiết để training, validation, chạy inference và export các model Ultralytics YOLO26. Package cung cấp cách làm việc với các model YOLO gọn nhẹ, không cần xây dựng pipeline training phức tạp từ đầu.
Trước khi cài đặt package Ultralytics Python, bạn cũng cần chọn nơi chạy code. Bạn có thể sử dụng package Ultralytics trong một số môi trường phát triển khác nhau, chẳng hạn như:
- Giao diện dòng lệnh (CLI): Đây là môi trường dựa trên văn bản, nơi bạn tương tác với máy tính bằng cách nhập lệnh. Thay vì nhấp vào nút hoặc điều hướng qua menu như trong giao diện đồ họa, bạn nhập hướng dẫn bằng văn bản để chạy chương trình và thực hiện tác vụ trực tiếp.
- Jupyter Notebooks: Môi trường tương tác cho phép bạn viết và chạy code theo từng phần nhỏ, đồng thời xem kết quả ngay lập tức. Môi trường này hữu ích cho việc thử nghiệm và học tập.
- Google Colab: Nền tảng notebook trên cloud không yêu cầu cài đặt cục bộ và cung cấp tùy chọn truy cập bộ xử lý đồ họa (GPUs). Đây thường là lựa chọn dễ dùng nhất cho người mới bắt đầu.
Sau khi chọn môi trường, bạn có thể cài đặt package Ultralytics Python. Để cài đặt, hãy chạy lệnh sau:
pip install ultralytics
Nếu bạn dùng môi trường dựa trên notebook như Google Colab hoặc Jupyter Notebook, hãy thêm dấu chấm than ở đầu lệnh. Nếu gặp sự cố khi cài đặt, bạn có thể tham khảo tài liệu Ultralytics hoặc hướng dẫn khắc phục sự cố để tìm các cách xử lý phổ biến và mẹo thiết lập môi trường.
Sau khi cài đặt, bạn sẽ sẵn sàng tải model segmentation Ultralytics YOLO26 pretrained và bắt đầu training.
Bước 4: Training Ultralytics YOLO26 cho instance segmentation#
Trước khi bắt đầu training, bạn cần chọn kích thước model. Các model Ultralytics YOLO26 có nhiều kích thước: Nano (n), Small (s), Medium (m), Large (l) và Extra Large (x).
Các model nhỏ hơn training nhanh hơn và chạy hiệu quả hơn trên bộ xử lý trung tâm (CPUs) hoặc thiết bị edge, trong khi các model lớn hơn thường có độ chính xác cao hơn nhưng cần nhiều bộ nhớ hơn và hưởng lợi từ tăng tốc GPU. Nếu mới bắt đầu hoặc làm việc với phần cứng hạn chế, phiên bản Nano (YOLO26n) là lựa chọn thiết thực.
Sau khi chọn kích thước model, bước tiếp theo là tải model segmentation pretrained và bắt đầu training model đó trên dataset tùy chỉnh. Để thực hiện, bạn cần chỉ định file model pretrained, đường dẫn đến file YAML của dataset, số epoch và kích thước hình ảnh như bên dưới.
from ultralytics import YOLO
model = YOLO("yolo26n-seg.pt")
results = model.train(data="path/to/file.yaml", epochs=100, imgsz=640)Số epoch xác định số lần model xử lý toàn bộ dataset training. Qua mỗi epoch, model đưa ra dự đoán, so sánh dự đoán với annotation chính xác, tính toán lỗi và cập nhật các tham số nội bộ để cải thiện hiệu suất.
Nếu quá trình training bắt đầu đúng cách, bạn sẽ thấy cấu hình model, quá trình quét dataset và tiến độ training hiển thị trong terminal hoặc notebook. Khi training tiếp diễn, các giá trị loss và metric đánh giá sẽ được cập nhật sau mỗi epoch, cho thấy model cải thiện theo thời gian.
Bước 5: Đánh giá hiệu suất của model đã training tùy chỉnh#
Sau khi hoàn tất quá trình training, bạn có thể xem lại và xác thực các metric hiệu suất của model. Trong Google Colab, bạn có thể mở thư mục “runs”, sau đó vào thư mục “segment” rồi đến thư mục “train”, nơi có các log hiển thị những chỉ số hiệu suất chính.
Với người dùng làm việc trong môi trường Python, kết quả training được lưu theo mặc định trong thư mục “runs/train/” bên trong thư mục làm việc hiện tại. Mỗi lần chạy training sẽ tạo một thư mục con mới, chẳng hạn như runs/train/exp hoặc runs/train/exp2, nơi bạn có thể tìm thấy log, weight đã lưu và các kết quả khác liên quan đến thí nghiệm đó.
Nếu sử dụng CLI, bạn có thể truy cập và quản lý các kết quả này bằng lệnh “yolo settings”. Lệnh này cho phép bạn xem hoặc sửa đổi đường dẫn và cấu hình liên quan đến log training và thông tin chi tiết của thí nghiệm.
Trong số các kết quả đã lưu, bạn cũng sẽ tìm thấy những biểu đồ được tạo trong quá trình training. Các biểu đồ này cho thấy model đã cải thiện ra sao theo thời gian. Ví dụ, biểu đồ thể hiện loss giảm khi model học và các metric đánh giá như precision, recall và độ chính xác trung bình tăng qua từng epoch.

Hình 4. Các dạng biểu đồ bạn có thể phân tích để đánh giá model (Nguồn)
Các xu hướng trực quan này giúp bạn hiểu liệu model đã được training thành công hay chưa và cải thiện đến mức nào từ đầu đến cuối quá trình training. Xem xét cả metric dạng số lẫn biểu đồ sẽ giúp bạn đánh giá rõ hơn hiệu suất của model instance segmentation trước khi chuyển sang thử nghiệm với hình ảnh mới.
Bước 6: Kiểm tra model và chạy inference#
Sau khi xác thực model, bước cuối cùng là kiểm tra model trên các hình ảnh mới. Quá trình này được gọi là inference, tức là dùng model đã training để đưa ra dự đoán trên dữ liệu chưa từng thấy.
Bạn có thể chạy inference trong Python như sau:
results = model.predict("path/to/image.jpg", save=True, conf=0.3)Trong ví dụ này, bạn có thể thay "path/to/image.jpg" bằng đường dẫn đến hình ảnh muốn kiểm tra.
Thiết lập “save=True” yêu cầu model tạo và lưu một hình ảnh mới, trong đó có các mask segmentation được dự đoán và vẽ chồng lên hình ảnh gốc.
Thiết lập “conf=0.3” điều chỉnh ngưỡng confidence, nghĩa là model chỉ hiển thị những dự đoán mà model có độ tin cậy ít nhất 30% là chính xác. Giảm giá trị này có thể làm tăng số lượng đối tượng được phát hiện, còn tăng giá trị sẽ khiến model chọn lọc hơn.
Sau khi chạy lệnh, model sẽ tạo một thư mục mới bên trong thư mục runs để lưu hình ảnh đầu ra. Bạn có thể mở hình ảnh đã lưu để kiểm tra trực quan mức độ bám sát đường biên đối tượng của các mask segmentation và xem các đối tượng chồng lấn có được tách chính xác hay không.
Kiểm tra model trên nhiều hình ảnh, phông nền và điều kiện ánh sáng khác nhau có thể giúp bạn hiểu rõ hơn về hiệu suất của model ngoài phạm vi dataset training. Khi kết quả ổn định và chính xác, model đã sẵn sàng để export và triển khai.
Bước 7: Export và triển khai model#
Sau khi kiểm tra model và xác nhận model hoạt động tốt, bước cuối cùng là export và triển khai model. Quá trình export chuyển đổi model Ultralytics YOLO26 đã training sang định dạng có thể chạy trong nhiều môi trường khác nhau, chẳng hạn như server production, thiết bị edge hoặc ứng dụng di động.
Ultralytics hỗ trợ nhiều định dạng export, cho phép bạn chọn định dạng phù hợp nhất với thiết lập triển khai. Ví dụ, bạn có thể export sang ONNX để có khả năng tương thích rộng trên nhiều nền tảng, TensorRT để tối ưu hiệu suất GPU trên phần cứng NVIDIA hoặc OpenVINO để triển khai hiệu quả dựa trên CPU trên thiết bị Intel. Các tích hợp này giúp chạy model bên ngoài môi trường training dễ dàng hơn và đạt hiệu suất thời gian thực cao.
Bạn có thể export model trong Python bằng lệnh sau:
model.export(format="onnx")Lệnh này chuyển đổi model đã training sang định dạng ONNX. Bạn có thể thay "onnx" bằng định dạng được hỗ trợ khác tùy theo nhu cầu triển khai.
Sau khi export, model có thể được tích hợp vào các ứng dụng như web service, hệ thống thị giác nhúng, nền tảng robot hoặc hệ thống kiểm tra công nghiệp. Ở giai đoạn này, model instance segmentation Ultralytics YOLO26 được training tùy chỉnh có thể chuyển từ thử nghiệm sang triển khai trong thực tế.
Điểm chính cần ghi nhớ#
Training tùy chỉnh Ultralytics YOLO26 cho instance segmentation cho phép bạn xây dựng model thực sự phù hợp với trường hợp sử dụng cụ thể. Bằng cách chuẩn bị dataset rõ ràng, thiết lập file YAML, training với weight segmentation pretrained và xem xét kết quả, bạn có thể dạy model phác thảo chính xác từng đối tượng ở cấp độ pixel. Sau khi kiểm tra và export, model YOLO26 của bạn có thể chuyển từ phát triển sang nhiều ứng dụng thực tế ở các quy mô khác nhau.
Hãy tham gia cộng đồng của chúng tôi và xem repository GitHub để tìm hiểu thêm về AI. Nếu bạn muốn xây dựng dự án AI thị giác của riêng mình, hãy xem các tùy chọn cấp phép của chúng tôi. Truy cập các trang giải pháp để tìm hiểu thêm về những ứng dụng như AI trong lĩnh vực chăm sóc sức khỏe và AI thị giác trong ngành bán lẻ.









