Cách huấn luyện tùy chỉnh Ultralytics YOLO26 cho instance segmentation
Tìm hiểu cách huấn luyện tùy chỉnh Ultralytics YOLO26 cho phân đoạn thực thể (instance segmentation), nơi model nhận diện và tách biệt từng đối tượng riêng lẻ bằng cách sử dụ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 đóng vai trò thầm lặng nhưng đầy tác động trong cuộc sống của chúng ta đều được vận hành bởi AI. Ví dụ, khi một chiếc xe vượt đèn đỏ và camera tự động ghi lại vi phạm, hoặc khi một 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 chính là công nghệ đang thực hiện công việc đó ở phía sau.
Cụ thể, một nhánh của AI được gọi là computer vision cho phép máy móc diễn giải và hiểu được hình ảnh cũng như video. Computer vision cho phép các 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, điều này giúp nó trở nên 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 thông qua các computer vision models như Ultralytics YOLO26, hỗ trợ nhiều tác vụ thị giác khác nhau, bao gồm object detection và instance segmentation. Trong khi object detection xác định đối tượng bằng cách sử dụng các bounding box đơn giản, instance segmentation tiến xa hơn bằng cách phác thảo từng đối tượng ở cấp độ pixel, mang lại 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 các đối tượng trong một hình ảnh sử dụng Ultralytics YOLO26
Các model như Ultralytics YOLO26 được pretrained sẵn và có thể phân đoạn các đối tượng thông thường như con người, ô tô và động vật ngay khi sử dụng. Tuy nhiên, đối với các ứng dụng cụ thể hơn, chúng cũng có thể được custom-train. Nói cách khác, các model có thể học cách nhận diện hình dáng đối tượng và cách khoanh vùng chúng một cách chính xác.
Trong bài viết này, chúng ta sẽ thực hiện quy trình huấn luyện tùy chỉnh Ultralytics YOLO26 cho tác vụ phân đoạn cá thể. Hãy bắt đầu ngay thôi!
Instance segmentation là gì?#
Trước khi đi sâu vào việc training model, hãy lùi lại một bước và tìm hiểu xem instance segmentation thực sự có ý nghĩa gì.
Instance segmentation là một tác vụ computer vision cho phép model tìm thấy từng đối tượng riêng biệt trong hình ảnh và vạch rõ hình dạng chính xác của nó. Thay vì chỉ xác định rằng một đối tượng tồn tại, model xem xét mọi pixel trong hình ảnh và quyết định liệu pixel đó có thuộc về một đối tượng cụ thể hay không.
Điều này có nghĩa là model có thể tách biệt các đối tượng ngay cả khi chúng chồng chéo hoặc nằm rất sát nhau. Một khái niệm quan trọng giúp dễ dàng hình dung về instance segmentation chính là mask.
Một mask là đường bao cấp độ pixel chỉ che phủ khu vực của một đối tượng. Bạn có thể nghĩ về nó giống như việc tô màu lên đối tượng bằng bút dạ quang trong khi giữ nguyên mọi thứ khác không bị ảnh hưởng.
Mỗi đối tượng nhận được một mask riêng, cho phép model phân biệt đối tượng này với đối tượng kia, ngay cả khi chúng cùng loại, chẳng hạn như hai chiếc xe hoặc hai người đứng cạnh nhau.

Hình 2. Cái nhìn về instance segmentation
Để có cái nhìn rõ hơn về instance segmentation, chúng ta có thể so sánh nó với các computer vision tasks phổ biến khác. Object detection sử dụng các bounding box, vốn là các hình chữ nhật đơn giản được vẽ xung quanh đối tượng. Các bounding box có tốc độ nhanh và hữu ích, nhưng chúng không nắm bắt được hình dạng chính xác của đối tượng.
Trong khi đó, semantic segmentation gắn nhãn mọi pixel trong hình ảnh theo danh mục, nhưng không phân biệt giữa các đối tượng riêng lẻ cùng lớp. Instance segmentation kết hợp ưu điểm của cả hai phương pháp bằng cách xác định các danh mục đối tượng và gán một mask riêng cho từng đối tượng cá thể.
Vì instance segmentation cung cấp thông tin chi tiết như vậy, nó đặ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, hình ảnh y tế và robot. Các tác vụ đòi hỏi phép đo chính xác, đường biên chính xác hoặc phân tách đối tượng đều có thể hưởng lợi từ sự hiểu biết ở cấp độ pixel này.
Ultralytics YOLO26 hỗ trợ instance segmentation#
Ultralytics YOLO26 là một model computer vision end-to-end, không cần NMS, hiện đại, được thiết kế để xử lý các tác vụ thị giác thực tế một cách nhanh chóng và hiệu quả. Nó thuộc họ các model phát hiện Ultralytics YOLO, có khả năng xử lý hình ảnh và video theo thời gian thực trong khi vẫn mang lại kết quả chính xác.
Ultralytics YOLO26 hỗ trợ nhiều tác vụ thị giác máy tính trong một framework duy nhất, bao gồm object detection, pose estimation, image classification, oriented bounding box detection (obb detection) và instance segmentation.
Ngay khi sử dụng, Ultralytics YOLO26 đã được pretrained sẵn, nghĩa là nó đã học cách nhận diện các đối tượng phổ biến như con người, phương tiện và các vật dụng thường ngày từ các tập dữ liệu lớn, phổ biến như COCO dataset và ImageNet dataset. Bạn có thể bắt đầu sử dụng model ngay lập tức mà không cần training thêm.
Tuy nhiên, khi ứng dụng của bạn liên quan đến các đối tượng độc đáo, môi trường cụ thể hoặc điều kiện ánh sáng bất thường, custom model training có thể cải thiện đáng kể kết quả. Bằng cách train Ultralytics YOLO26 trên các hình ảnh được gán nhãn của riêng bạn, bạn có thể dạy model chính xác những gì cần tìm và cách khoanh vùng đối tượng chính xác hơn cho trường hợp sử dụng cụ thể của bạn.
Quá trình này còn được gọi là fine-tuning. Thay vì train một model từ đầu, fine-tuning bắt đầu với một model Ultralytics YOLO26 pretrained và tinh chỉnh nó một cách nhẹ nhàng bằng dữ liệu của riêng bạn. Vì model đã hiểu các mẫu thị giác chung như cạnh, hình khối và kết cấu, nên nó cần ít hình ảnh được gán nhãn hơn rất nhiều và ít thời gian hơn để học các đối tượng cụ thể của bạn.
Nói một cách đơn giản, fine-tuning nhanh hơn, hiệu quả hơn và dễ tiếp cận hơn soกับการ train một model từ gốc. Custom training Ultralytics YOLO26 là một lựa chọn thực tế ngay cả đối với người mới bắt đầu hoặc các nhóm làm việc với dữ liệu và tài nguyên tính toán hạn chế.
Khám phá các ứng dụng phân đoạn đối tượng của Ultralytics YOLO26#
Vậy, instance segmentation có thể tạo ra tác động ở đâu? Trong những tình huống cần thiết phải phân biệt các đối tượng và hiểu hình dạng chính xác của chúng, đặc biệt là khi mọi thứ trở nên đông đúc hoặc chồng chéo.
Dưới đây là một số quy trình làm việc phổ biến mà instance segmentation tạo ra sự khác biệt thực sự:
- Aerial and drone imaging: Tác vụ này cho phép drone tách biệt các đối tượng như tòa nhà, phương tiện và thảm thực vật trong hình ảnh trên không phục vụ cho việc lập bản đồ, kiểm tra và khảo sát.
- Phân tích thể thao: Instance segmentation giúp phân tích sự di chuyển và tương tác của vận động viên bằng cách tách riêng từng cá nhân vận động viên khỏi nền trong suốt các trận đấu hoặc buổi tập luyện.
- Giám sát cơ sở hạ tầng và xây dựng: Nó giúp xác định các yếu tố cấu trúc, vết nứt hoặc các khu vực bị hư hại trong các tòa nhà, cây cầu và đường xá để lập kế hoạch bảo trì.
- Chăm sóc sức khỏe và hình ảnh y tế: Instance segmentation giúp vạch rõ chính xác cá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: Nó có thể xác định và tách biệt các loại cây trồng, trái cây hoặc bệnh trên thực vật, giúp dễ dàng ước tính sản lượng và áp dụng các biện pháp xử lý mục tiêu.

Hình 3. Một ví dụ về việc phân đoạn cỏ dại sử dụng YOLO26 (Source)
Cách thức hoạt động của việc huấn luyện tùy chỉnh Ultralytics YOLO26 cho phân đoạn đối tượng#
Tiếp theo, hãy cùng thảo luận về cách hoạt động của huấn luyện tùy chỉnh. Mặc dù việc huấn luyện một model có vẻ mang tính kỹ thuật, nhưng quy trình tổng thể rất đơn giản.
Bạn có thể chuẩn bị hình ảnh, gán nhãn các đối tượng bạn muốn model học, cấu hình một tệp cài đặt nhỏ, và sau đó train YOLO26 bằng cách sử dụng Ultralytics Python package. Ultralytics Python package là một thư viện phần mềm cung cấp các công cụ sẵn sàng sử dụng để training, testing và deploying các YOLO model mà không cần phải xây dựng mọi thứ từ đầu.
Bước 1: Chuẩn bị tập dữ liệu tùy chỉnh#
Bước đầu tiên là chuẩn bị segmentation dataset tùy chỉnh của bạn. Một dataset đơn giản là một tập hợp các hình ảnh thể hiện các đối tượng bạn muốn model học.
Hãy cố gắng bao gồm các hình ảnh phản ánh các điều kiện thực tế, chẳng hạn như các góc độ, ánh sáng, nền và kích thước đối tượng khác nhau. Hình ảnh càng đa dạng, model của bạn càng hoạt động hiệu quả.
Đối với instance segmentation, hình ảnh của bạn cũng cần các chú thích (annotations). Gắn nhãn bao gồm việc dán nhãn các đối tượng trong mỗi hình ảnh để model biết cần học những gì. Thay vì vẽ các hình hộp đơn giản, bạn sẽ vẽ các đường bao chi tiết (đa giác) xung quanh từng đối tượng để đánh dấu hình dạng chính xác của nó. Những đường bao này trở thành các mask mà model học cách dự đoán.
Có một số công cụ gắn nhãn mã nguồn mở bạn có thể sử dụng để tạo các nhãn này. Nhiều công cụ trong số đó cung cấp giao diện thân thiện với người dùng, nơi bạn có thể tải lên hình ảnh và vẽ đường bao đối tượng trực tiếp trên đó.
Khi hình ảnh và chú thích đã sẵn sàng, bạn có thể tổ chức chúng vào các thư mục huấn luyện (training) và kiểm chứng (validation). Một cách phân chia điển hình là 80% hình ảnh cho huấn luyện và 20% cho kiểm chứng, mặc dù 70% cho huấn luyện và 30% cho kiểm chứng cũng phổ biến, tùy thuộc vào kích thước tập dữ liệu của bạn. Tập huấn luyện dạy cho model, trong khi tập kiểm chứng được sử dụng để đo lường mức độ hiệu quả của model trên những hình ảnh mà nó chưa từng thấy trước đây.
Việc giữ cho sự phân chia này 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 tập dữ liệu sạch, được gắn nhãn tốt với việc phân chia train/validation hợp lý tạo nên nền tảng của một model instance segmentation mạnh mẽ.
Bước 2: Tạo tệp YAML cho tập dữ liệu#
Sau khi chuẩn bị hình ảnh và chú thích, bước tiếp theo là tạo một tệp YAML cho tập dữ liệu. Tệp này làm nổi bật vị trí tập dữ liệu của bạn và những lớp đối tượng nào model nên học trong quá trình huấn luyện.
Trong tệp này, bạn có thể xác định thư mục gốc của tập dữ liệu, đường dẫn đến các thư mục hình ảnh huấn luyện và kiểm chứng, cùng danh sách các tên lớp. Tên các lớp phải được liệt kê theo cùng thứ tự với các số lớp được sử dụng trong tệp chú thích của bạn để mọi thứ khớp chính xác.
Nếu bạn có bất kỳ câu hỏi nào về định dạng chính xác, bạn có thể tham khảo official Ultralytics documentation để biết thêm chi tiết.
Bước 3: Cài đặt Ultralytics Python package#
Bây giờ tập dữ liệu và tệp YAML đã sẵn sàng, bước tiếp theo là cài đặt Ultralytics Python package.
Gói này bao gồm các công cụ cần thiết để train, validate, chạy inference và export các model Ultralytics YOLO26. Nó cung cấp một cách tối ưu để làm việc với các model YOLO mà không cần xây dựng các pipeline training phức tạp từ đầu.
Trước khi cài đặt Ultralytics Python package, điều quan trọng là phải chọn nơi bạn muốn chạy mã của mình. Bạn có thể làm việc với gói Ultralytics trong một số môi trường phát triển khác nhau, như:
- Command line interface (CLI): Đây là một 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 gõ lệnh. Thay vì nhấp vào các nút hoặc điều hướng menu như trong giao diện đồ họa, bạn nhập các hướng dẫn bằng văn bản để chạy chương trình và thực hiện các tác vụ trực tiếp.
- Jupyter Notebooks: Một môi trường tương tác nơi bạn viết và chạy mã theo các phần nhỏ và thấy kết quả ngay lập tức. Điều này rất hữu ích cho việc thử nghiệm và học tập.
- Google Colab: Một nền tảng notebook dựa trên cloud không yêu cầu cài đặt cục bộ và cung cấp quyền truy cập tùy chọn vào các đơn vị xử lý đồ họa (GPU). Đây thường là lựa chọn dễ dàng nhất cho người mới bắt đầu.
Khi bạn đã chọn môi trường, bạn có thể cài đặt Ultralytics Python package. Để cài đặt nó, hãy chạy lệnh sau:
pip install ultralytics
Nếu bạn đang sử dụng một 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 vào đầu câu lệnh. Nếu bạn gặp bất kỳ vấn đề cài đặt nào, bạn có thể tham khảo tài liệu Ultralytics hoặc troubleshooting guide để biết các bản sửa lỗi 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 load một segmentation model Ultralytics YOLO26 pretrained và bắt đầu quá trình training.
Bước 4: Huấn luyện Ultralytics YOLO26 cho phân đoạn đối tượng#
Trước khi bắt đầu training, bạn sẽ cần chọn kích thước model. Các model Ultralytics YOLO26 có sẵn ở nhiều kích thước khác nhau: Nano (n), Small (s), Medium (m), Large (l) và Extra Large (x).
Các model nhỏ hơn huấn luyện nhanh hơn và chạy hiệu quả hơn trên các CPU hoặc thiết bị edge, trong khi các model lớn hơn thường mang lại độ chính xác cao hơn nhưng đòi hỏi nhiều bộ nhớ hơn và hưởng lợi từ khả năng tăng tốc của GPU. Nếu bạn chỉ mới bắt đầu hoặc đang làm việc với phần cứng hạn chế, phiên bản Nano (YOLO26n) là một 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 một model phân đoạn đã được tiền huấn luyện và bắt đầu huấn luyện nó trên tập dữ liệu tùy chỉnh của bạn. Để làm như vậy, bạn cần chỉ định tệp model đã tiền huấn luyện, đường dẫn đến tệp YAML của tập dữ liệu, số epoch và kích thước hình ảnh như hiển thị 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 đi qua toàn bộ tập dữ liệu huấn luyện. Với mỗi epoch, model đưa ra các dự đoán, so sánh chúng với các chú thích đúng, tính toán lỗi và cập nhật các thông số nội bộ để cải thiện hiệu suất.
Nếu quá trình huấn luyện bắt đầu chính xác, bạn sẽ thấy cấu hình model, việc quét tập dữ liệu và tiến độ huấn luyện hiển thị trong terminal hoặc notebook của bạn. Khi quá trình huấn luyện tiếp tục, các giá trị mất mát (loss) và các chỉ số đánh giá sẽ cập nhật sau mỗi epoch, cho thấy model đang cải thiện như thế nào theo thời gian.
Bước 5: Đánh giá hiệu suất của model đã được huấn luyện tùy chỉnh#
Sau khi quá trình huấn luyện hoàn tất, bạn có thể xem lại và kiểm chứng các chỉ số hiệu suất của model. Trong Google Colab, bạn có thể điều hướng đến thư mục "runs", sau đó đến thư mục "segment", và cuối cùng là thư mục "train", nơi bạn sẽ tìm thấy các tệp nhật ký hiển thị các chỉ số hiệu suất chính.
Đối với người dùng làm việc trong môi trường Python, kết quả huấn luyện được lưu mặc định trong thư mục "runs/train/" trong thư mục làm việc hiện tại của bạn. Mỗi lần chạy huấn luyện 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 tệp nhật ký, trọng số đã lưu và các đầu ra khác liên quan đến thử nghiệm đó.
Nếu bạn đang 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 các đường dẫn và cấu hình liên quan đến nhật ký huấn luyện và chi tiết thử nghiệm.
Trong số các đầu ra đã lưu, bạn cũng sẽ tìm thấy các biểu đồ được tạo trong quá trình huấn luyện. Các biểu đồ này cho thấy cách model cải thiện theo thời gian. Ví dụ, chúng hiển thị cách loss giảm khi model học và cách các chỉ số đánh giá như precision, recall và mean average precision tăng lên theo các epoch.

Hình 4. Loại biểu đồ bạn có thể phân tích để đánh giá model của mình (Source)
Những xu hướng trực quan này có thể giúp bạn hiểu liệu model đã được huấn luyện thành công hay chưa và nó đã cải thiện bao nhiêu từ lúc bắt đầu đến khi kết thúc quá trình huấn luyện. Việc xem xét cả các chỉ số bằng số và các biểu đồ giúp bạn có cái nhìn rõ ràng hơn về mức độ hiệu quả của model instance segmentation của mình trước khi chuyển sang kiểm tra với các hình ảnh mới.
Bước 6: Kiểm tra model và chạy inference#
Sau khi kiểm chứng model, bước cuối cùng là kiểm tra nó trên các hình ảnh mới. Quá trình này được gọi là inference, đơn giản có nghĩa là sử dụng model đã được huấn luyện của bạn để đưa ra dự đoán trên dữ liệu chưa biết.
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, "path/to/image.jpg" có thể được thay thế bằng đường dẫn đến hình ảnh bạn muốn kiểm tra.
Cài đặt “save=True” yêu cầu model tạo và lưu trữ một hình ảnh mới bao gồm các mask phân đoạn dự đoán được vẽ lên trên hình ảnh gốc.
Cài đặt “conf=0.3” kiểm soát ngưỡng tự tin, nghĩa là model sẽ chỉ hiển thị các dự đoán mà nó tự tin chính xác ít nhất 30%. Giảm giá trị này có thể hiển thị nhiều phát hiện hơn, trong khi tăng nó sẽ làm cho model chọn lọc kỹ hơn.
Sau khi bạn chạy lệnh, model tạo một thư mục mới bên trong thư mục runs, nơi nó 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 độ hiệu quả của các mask phân đoạn theo đường biên đối tượng và liệu các đối tượng chồng chéo có được tách biệt chính xác hay không.
Kiểm tra model trên các hình ảnh, 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ề cách nó hoạt động bên ngoài tập dữ liệu huấn luyện. Khi các kết quả trông nhất quán và chính xác, model đã sẵn sàng để được xuất và triển khai.
Bước 7: Xuất và triển khai model#
Sau khi test model của bạn và xác nhận rằng nó hoạt động tốt, bước cuối cùng là export và deploy nó. Việc export sẽ chuyển đổi model Ultralytics YOLO26 đã được train của bạn thành một định dạng có thể chạy trong các môi trường khác nhau, chẳng hạn như production server, edge device hoặc mobile application.
Ultralytics hỗ trợ nhiều export formats, cho phép bạn chọn định dạng phù hợp nhất với thiết lập deployment của mình. Ví dụ, bạn có thể export sang ONNX để có khả năng tương thích rộng rãi trên các nền tảng, TensorRT để tối ưu hóa hiệu suất GPU trên phần cứng NVIDIA, hoặc OpenVINO để deployment dựa trên CPU hiệu quả trên các thiết bị Intel. Các tích hợp này giúp bạn dễ dàng chạy model của mình bên ngoài môi trường training và đạt được hiệu suất thời gian thực mạnh mẽ.
Bạn có thể xuất model của mình trong Python bằng lệnh sau:
model.export(format="onnx")Lệnh này chuyển đổi model đã huấn luyện của bạn thành định dạng ONNX. Bạn có thể thay thế "onnx" bằng các định dạng được hỗ trợ khác tùy thuộc vào nhu cầu triển khai của bạn.
Sau khi được export, model của bạn có thể được tích hợp vào các ứng dụng như dịch vụ web, 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, instance segmentation model Ultralytics YOLO26 được custom-train của bạn có thể chuyển từ thử nghiệm sang deployment thực tế.
Các điểm chính cần lưu ý#
Huấn luyện tùy chỉnh Ultralytics YOLO26 cho instance segmentation mang lại cho bạn sự linh hoạt để xây dựng một model thực sự phù hợp với trường hợp sử dụng cụ thể của mình. Bằng cách chuẩn bị một tập dữ liệu rõ ràng, thiết lập tệp YAML, huấn luyện với trọng số phân đoạn đã được tiền huấn luyện và xem xét các kết quả, bạn có thể dạy model vạch đường bao quanh từng đối tượng một cách chính xác ở cấp độ pixel. Sau khi được kiểm tra và xuất, model YOLO26 của bạn có thể chuyển từ phát triển sang các ứng dụng thực tế đa quy mô.
Hãy tham gia our community và xem qua GitHub repository của chúng tôi để khám phá thêm về AI. Nếu bạn đang muốn xây dựng dự án vision AI của riêng mình, hãy kiểm tra licensing options của chúng tôi. Khám phá thêm về các ứng dụng như AI in healthcare và vision AI in retail bằng cách truy cập các trang giải pháp của chúng tôi.






