Top 8 công cụ và thuật toán theo dõi đối tượng mã nguồn mở
Khám phá 8 công cụ theo dõi đối tượng mã nguồn mở hàng đầu để phân tích video theo thời gian thực. Xem cách mỗi công cụ hoạt động và cách chọn công cụ phù hợp cho dự án của bạn.

Khi một chiếc xe vượt đèn đỏ và một phiếu phạt tự động được gửi tới tài xế, hay một cầu thủ bóng đá dẫn bóng trên sân và camera theo sát chuyển động một cách mượt mà, đó là lúc AI đang lặng lẽ vận hành ở phía sau. Cụ thể, các hệ thống này dựa vào computer vision, một phân ngành của AI cho phép máy móc nhìn, diễn giải và hiểu thông tin hình ảnh từ thế giới thực.
Trong computer vision, một trong những tác vụ then chốt đằng sau các ứng dụng này là object tracking. Nó được dùng để nhận diện các đối tượng trong từng khung hình của video và sau đó theo dõi chúng khi chúng di chuyển, chồng lấn với đối tượng khác hoặc thay đổi hướng.
Hiện nay có rất nhiều object tracking tools và thuật toán, mỗi loại được thiết kế cho các trường hợp sử dụng, nhu cầu hiệu năng và độ phức tạp khác nhau. Một số tập trung vào tốc độ và có thể theo dõi hàng chục đối tượng trong thời gian thực, trong khi những loại khác ưu tiên độ chính xác hoặc tính ổn định lâu dài trong các điều kiện đầy thử thách như bị che khuất, chuyển động nhanh hoặc thiếu sáng.
Cụ thể, các open-source projects đã đóng vai trò lớn trong việc thúc đẩy lĩnh vực này. Vì mã nguồn của chúng được công khai, các nhà phát triển và nghiên cứu có thể tìm hiểu cách thức hoạt động, cải tiến các phương pháp hiện có và điều chỉnh chúng cho các ứng dụng mới. Sự cởi mở này đã giúp object tracking phát triển nhanh chóng và dễ dàng tích hợp hơn vào các hệ thống thực tế.
Trong bài viết này, chúng ta sẽ khám phá tám công cụ và thuật toán object tracking mã nguồn mở phổ biến. Hãy cùng bắt đầu nhé!
Link to this sectionObject tracking là gì?#
Hãy xem xét một kịch bản khi nhân viên bảo vệ đang xem hình ảnh CCTV của một bãi đậu xe. Anh ta quyết định để mắt tới một chiếc xe màu đỏ. Khi video phát, anh ta gắn nhãn cho chiếc xe đó trong tâm trí và tiếp tục theo dõi nó bất kể nó đi đâu, ngay cả khi những chiếc xe khác chạy qua hoặc có người đi bộ phía trước nó.
Object tracking dựa trên AI cũng tương tự như vậy, nhưng nó vận hành một cách tự động và trên quy mô lớn. Nói cách khác, object tracking là quá trình theo dõi một đối tượng khi nó di chuyển qua các khung hình của video và duy trì danh tính của nó nhất quán từ khung hình này sang khung hình tiếp theo.
Trong nhiều hệ thống, quá trình này bắt đầu với object detection, giúp tìm và gắn nhãn các đối tượng như người, phương tiện hoặc biển báo giao thông trong từng khung hình. Sau đó, khi các đối tượng này di chuyển, xuất hiện, biến mất hoặc chồng lấn, hệ thống tracking sẽ liên kết các kết quả detection qua các khung hình để biết đối tượng nào là đối tượng nào và mỗi đối tượng đi đâu theo thời gian.

Hình 1. Một cái nhìn về object tracking (Source)
Có hai loại tracking phổ biến: single object tracking (SOT), tập trung vào một đối tượng chính (như chỉ theo dõi quả bóng trong video thể thao), và multi-object tracking (MOT), theo dõi nhiều đối tượng cùng lúc và gán cho mỗi đối tượng một ID duy nhất (như theo dõi tất cả các xe tại một ngã tư đông đúc).
Bất kể loại tracking nào, hầu hết các hệ thống đều dựa vào ba thành phần cốt lõi: detector để tìm đối tượng trong mỗi khung hình, motion model để dự đoán cách các đối tượng đó có khả năng di chuyển, và bước đối sánh để kết nối các detection mới với các đối tượng đã được theo dõi trước đó. Những phần này biến video thô thành thông tin có ý nghĩa về cách các đối tượng di chuyển và tương tác theo thời gian.
Link to this sectionNhu cầu về các công cụ object tracking mã nguồn mở#
Trước khi đi sâu vào chi tiết, có thể bạn đang tự hỏi: điều gì làm cho các công cụ và thuật toán object tracking mã nguồn mở trở nên đặc biệt?
Các công cụ mã nguồn mở đã đóng vai trò lớn trong việc giúp object tracking trở nên dễ sử dụng và phổ biến rộng rãi hơn. Vì mã nguồn được mở, các nhà phát triển và nghiên cứu có thể thấy chính xác cách một tracker hoạt động, học hỏi từ nó và điều chỉnh nó cho các dự án của riêng mình thay vì coi nó như một hộp đen.
Chúng cũng được hưởng lợi từ các cộng đồng mạnh mẽ. Nhiều công cụ tracking mã nguồn mở được duy trì bởi các cộng tác viên tích cực, những người bổ sung các tính năng mới, cải thiện tốc độ và độ chính xác, sửa lỗi và đảm bảo các công cụ luôn bắt kịp các nghiên cứu mới nhất. Sự cộng tác liên tục này giúp chúng duy trì độ tin cậy và hữu ích trên các ứng dụng khác nhau.
Chi phí là một lý do quan trọng khác khiến chúng trở nên quan trọng. Vì các công cụ mã nguồn mở là miễn phí, sinh viên, startup và các nhóm nhỏ có thể thử nghiệm, tạo mẫu và xây dựng các hệ thống thực tế mà không cần lo lắng về phí bản quyền hoặc chi phí đăng ký.
Link to this sectionTop 8 công cụ và thuật toán theo dõi đối tượng mã nguồn mở#
Hiện nay có rất nhiều tùy chọn mã nguồn mở để xây dựng các hệ thống tracking. Một số là các thuật toán hoặc model tracking mà bạn có thể cắm trực tiếp vào pipeline của mình, trong khi những cái khác là các thư viện và framework giúp việc chạy, quản lý và tích hợp các model đó trở nên dễ dàng hơn. Cùng nhau, chúng bao quát mọi thứ từ logic tracking cốt lõi đến các công cụ bổ trợ bạn cần trong một dự án thực tế.
Tiếp theo, hãy cùng xem qua tám công cụ và thuật toán object tracking mã nguồn mở phổ biến.
Link to this sectionCác model Ultralytics YOLO và gói Python Ultralytics#
Một trong những lựa chọn dễ dàng và thiết thực nhất cho object tracking là sử dụng Ultralytics YOLO models kết hợp với Ultralytics Python package. Các model Ultralytics YOLO như Ultralytics YOLO11 và Ultralytics YOLO26 sắp ra mắt là các computer vision model hỗ trợ nhiều tác vụ thị giác, bao gồm object detection, instance segmentation, pose estimation và object tracking.

Hình 2. Ví dụ về việc sử dụng YOLO11 để detect và track đối tượng. (Source)
Điều thú vị là bản thân các model này không theo dõi đối tượng qua các khung hình. Thay vào đó, gói Python Ultralytics, một thư viện giúp đơn giản hóa việc chạy và triển khai các model Ultralytics YOLO, giúp thực hiện tracking bằng cách kết hợp kết quả detection từng khung hình của YOLO với các thuật toán multi-object tracking chuyên dụng như BoT-SORT và ByteTrack.
Với khả năng tracking tích hợp, gói Ultralytics và các model Ultralytics YOLO có thể được sử dụng để phát hiện đối tượng trong từng khung hình và sau đó gán các ID nhất quán để có thể theo dõi chúng khi chúng di chuyển, chồng lấn, rời khỏi khung hình và quay lại sau đó. Cách tiếp cận này đang ngày càng được áp dụng trong các lĩnh vực như sản xuất và bán lẻ, cho phép thực hiện các ứng dụng như quy trình kiểm tra lỗi, theo dõi luồng hàng tồn kho và theo dõi khách hàng tại cửa hàng.
Link to this sectionCác tracker OpenCV#
OpenCV là một thư viện computer vision rộng lớn bao gồm một tập hợp các thuật toán object tracking. Thư viện này đã được cộng đồng OpenCV phát triển và duy trì từ năm 1999.
Thay vì dựa vào deep learning, hầu hết các tracker này sử dụng các phương pháp computer vision truyền thống như bộ lọc tương quan (correlation filters) và các kỹ thuật dựa trên kernel (theo dõi đối tượng bằng cách đối sánh ngoại hình trực quan, như màu sắc và kết cấu, từ khung hình này sang khung hình tiếp theo, thay vì học đặc trưng bằng mạng thần kinh).
Khi sử dụng các thuật toán này, bạn thường có thể chọn đối tượng muốn theo dõi trước, và tracker sẽ liên tục tìm kiếm vùng hình ảnh tương đồng nhất trong các khung hình tiếp theo khi đối tượng di chuyển.

Hình 3. Theo dõi đối tượng bằng OpenCV (Source)
Mặc dù các phương pháp này có thể không mạnh mẽ bằng các hệ thống tracking dựa trên deep learning hiện đại trong các cảnh phức tạp hoặc đông đúc, chúng vẫn được sử dụng rộng rãi vì nhẹ, nhanh và dễ chạy. Ngoài ra, vì các tracker này chạy hiệu quả trên CPU và thường không yêu cầu GPU, chúng hoạt động tốt cho các thử nghiệm nhanh, học tập trên lớp và các dự án sở thích.
Link to this sectionByteTrack#
ByteTrack là một trong những thuật toán mã nguồn mở phổ biến nhất cho multi-object tracking. Thay vì chỉ đối sánh các detection mà model rất tự tin, nó còn tận dụng các detection có độ tin cậy thấp hơn mà nhiều hệ thống thường bỏ qua.
Điều này giúp nó theo dõi các đối tượng khó nhìn thấy trong thời gian ngắn, chẳng hạn như khi chúng bị che khuất một phần, ở xa hoặc di chuyển nhanh. Vì nhanh và đáng tin cậy, ByteTrack thường được sử dụng trong các ứng dụng như phân tích giao thông, theo dõi người đi bộ và giám sát bán lẻ, nơi hiệu năng thời gian thực và ID nhất quán là quan trọng.
Như đã đề cập trước đó, nếu bạn đang sử dụng các model Ultralytics YOLO để detection, rất dễ dàng để kích hoạt ByteTrack thông qua gói Python Ultralytics. Nhưng nó cũng có thể được sử dụng độc lập trong các pipeline tùy chỉnh, làm cho nó phù hợp cho mọi thứ từ nguyên mẫu nghiên cứu đến các hệ thống sản xuất được viết bằng C++.
Link to this sectionDeepSORT#
Một thuật toán khác được sử dụng rộng rãi cho multi-object tracking là DeepSORT, viết tắt của Deep Simple Online and Real-Time Tracking. Đây là phiên bản nâng cao của SORT, viết tắt của Simple Online and Real-Time Tracking.
Tương tự như ByteTrack, SORT tuân theo phương pháp tracking-by-detection. Tuy nhiên, SORT dựa vào một Kalman filter, một mô hình toán học dự đoán vị trí tương lai của đối tượng dựa trên chuyển động trong quá khứ, để dự đoán nơi mỗi đối tượng có khả năng di chuyển tiếp theo.
Sau đó, nó đối sánh các detection mới với các track hiện có, chủ yếu dựa trên vị trí và sự chồng lấn bounding-box. Điều này làm cho SORT nhanh và nhẹ, nhưng nó có thể gặp khó khăn khi các đối tượng chồng lấn, cắt ngang đường đi của nhau hoặc biến mất khỏi tầm nhìn trong thời gian ngắn.
DeepSORT cải tiến SORT bằng cách thêm thông tin ngoại hình vào quá trình tracking. Ngoài chuyển động và vị trí, nó sử dụng một model re-identification hoặc re-id dựa trên deep learning để học cách các đối tượng trông như thế nào. Điều này cho phép tracker nhận ra cùng một đối tượng qua các khung hình, ngay cả khi chuyển động không đủ để phân biệt nó với những đối tượng khác.
Vì lý do này, DeepSORT thường được sử dụng trong các ứng dụng như giám sát và theo dõi đám đông, nơi mọi người thường xuyên chồng lấn hoặc bị che khuất trong thời gian ngắn. Tuy nhiên, ngày nay nó được coi là một baseline cổ điển, và các phương pháp tracking mới hơn thường đạt hiệu năng tốt hơn trong các cảnh đầy thử thách.
Link to this sectionNorfair#
Norfair là một thư viện tracking nhẹ được thiết kế để linh hoạt, thay vì buộc bạn vào một pipeline tracking cố định. Nó có thể thêm tracking trên hầu hết mọi detector, miễn là kết quả đầu ra của detector có thể được biểu diễn dưới dạng một tập hợp các điểm, chẳng hạn như tâm bounding-box, keypoint hoặc dữ liệu tọa độ tùy chỉnh.

Hình 4. Theo dõi đối tượng thực tế sử dụng Norfair (Source)
Sự linh hoạt này làm cho nó đặc biệt có tác động đối với các dự án liên quan đến đầu vào bất thường hoặc các mô hình chuyển động năng động nơi các công cụ multi-object tracking tiêu chuẩn có thể không đáp ứng được. Thư viện này cũng cung cấp các hàm khoảng cách tích hợp để kiểm soát cách các detection được đối sánh qua các khung hình.
Các hàm khoảng cách này đo lường mức độ tương đồng giữa hai điểm hoặc đối tượng, cho phép người dùng kiểm soát hoàn toàn logic tracking. Norfair thường được sử dụng trong robot, phân tích chuyển động thể thao, điều hướng drone và các ứng dụng dựa nhiều vào việc theo dõi các điểm mốc tư thế hoặc keypoint.
Link to this sectionMMTracking#
MMTracking là một hộp công cụ tracking mã nguồn mở từ đội ngũ OpenMMLab, những người cũng đứng sau các thư viện computer vision phổ biến như MMDetection. Được xây dựng trên nền tảng MMDetection, nó cung cấp một framework linh hoạt để phát triển và thử nghiệm các hệ thống tracking.
Một trong những thế mạnh lớn nhất của nó là thiết kế dạng module. Thay vì khóa bạn vào một pipeline duy nhất, MMTracking cho phép bạn cấu hình và hoán đổi các thành phần khác nhau, chẳng hạn như detector, module tracking và trong một số thiết lập là model re-identification. Chính sự linh hoạt này khiến nó đặc biệt phổ biến trong nghiên cứu và các dự án nâng cao, nơi các nhóm muốn benchmark phương pháp, kiểm tra các ý tưởng mới hoặc tinh chỉnh các pipeline tracking.
Link to this sectionFairMOT#
FairMOT là một framework multiple-object tracking được thiết kế để theo dõi nhiều đối tượng cùng một lúc. Không giống như các pipeline tracking-by-detection truyền thống chạy detection trước rồi sau đó liên kết các đối tượng qua các khung hình như một bước riêng biệt, FairMOT học việc detection và re-identification cùng nhau trong một mạng duy nhất.

Hình 5. Cách framework FairMOT hoạt động (Source)
Thiết lập chung này giúp nó duy trì danh tính nhất quán hơn, đặc biệt là trong các cảnh đông đúc nơi mọi người thường chồng lấn hoặc di chuyển nhanh. FairMOT thường được sử dụng trong các kịch bản như theo dõi người đi bộ và giám sát đám đông, đồng thời cũng được áp dụng trong các bối cảnh như phân tích bán lẻ và giám sát giao thông, nơi việc theo dõi nhiều mục tiêu trong thời gian thực là rất quan trọng.
Link to this sectionSiamMask#
SiamMask là một phương pháp single-object tracking đi xa hơn nhiều tracker khác bằng cách tạo ra một segmentation mask cùng với một bounding box. Đơn giản mà nói, nó không chỉ vẽ một hình chữ nhật xung quanh mục tiêu. Nó còn phác thảo hình dạng của đối tượng ở cấp độ pixel, điều này có thể hữu ích khi mục tiêu thay đổi hình dạng, xoay hoặc bị che khuất một phần.

Hình 6. Theo dõi và segment đối tượng sử dụng SiamMask (Source)
Phương pháp này sử dụng thiết kế Siamese tracking, bao gồm việc tracker lấy một khung nhìn tham chiếu nhỏ của mục tiêu từ khung hình đầu tiên, thường được gọi là template. Sau đó, trong mỗi khung hình mới, nó tìm kiếm một vùng lớn hơn và tìm ra vị trí có độ tương đồng cao nhất với template đó.
SiamMask xây dựng dựa trên ý tưởng dựa trên đối sánh này. Nó cũng dự đoán một mask cấp độ pixel cho mục tiêu, vì vậy bạn nhận được cả vị trí của đối tượng và một đường viền chính xác hơn khi video phát.
Link to this sectionCác yếu tố chính khi chọn một công cụ object tracking#
Với nhiều tùy chọn cho các công cụ object tracking mã nguồn mở hiện nay trong không gian AI, tùy chọn tốt nhất cho dự án computer vision của bạn phụ thuộc vào những gì trường hợp sử dụng cụ thể của bạn yêu cầu. Dưới đây là một số yếu tố cần xem xét:
- Độ chính xác: Điều này quan trọng nhất trong các cảnh đông đúc hoặc phức tạp về mặt thị giác, nơi hệ thống thị giác cần duy trì ID ổn định ngay cả khi bị chồng lấn, che khuất hoặc chuyển động nhanh.
- Tốc độ: Đối với các ứng dụng thời gian thực như robot, giám sát giao thông và phân tích thể thao, khả năng phản hồi có thể quan trọng hơn độ chính xác hoàn hảo.
- Tính dễ tích hợp: Một số công cụ object tracking rất dễ cắm-và-chạy và hoạt động chỉ với vài dòng mã, trong khi những công cụ khác đòi hỏi nhiều thiết lập, cấu hình hoặc công việc pipeline tùy chỉnh hơn.
- Ràng buộc triển khai: Môi trường mục tiêu, chẳng hạn như máy chủ GPU, thiết bị biên (edge devices) hoặc phần cứng di động, có thể quyết định cách tiếp cận tracking nào là thiết thực.
- Khả năng mở rộng: Nếu hệ thống của bạn cần theo dõi nhiều đối tượng cùng lúc hoặc xử lý nhiều luồng video, tracker cần phải mở rộng hiệu quả mà không làm giảm đáng kể hiệu năng.
Mỗi công cụ hoặc thuật toán object tracking phục vụ một mục đích khác nhau. Cuối cùng, lựa chọn đúng đắn phụ thuộc vào các yêu cầu cụ thể, ràng buộc thời gian chạy, các chỉ số hiệu năng và mức độ tùy biến mà dự án của bạn yêu cầu đối với cách tiếp cận tracking.
Link to this sectionCác điểm chính cần lưu ý#
Object tracking đã phát triển từ các kỹ thuật thủ công ban đầu thành các hệ thống deep learning hiện đại nhất hiện nay, diễn giải chuyển động, danh tính và hành vi với độ chính xác ấn tượng. Các công cụ mã nguồn mở đã trở thành động lực thúc đẩy sự tiến bộ này. Chúng dân chủ hóa quyền truy cập vào các thuật toán mạnh mẽ, khuyến khích thử nghiệm và cho phép các nhà nghiên cứu xây dựng các pipeline tracking phức tạp mà không bị hạn chế bởi bản quyền hoặc cơ sở hạ tầng nặng nề.
Hãy xem cộng đồng và GitHub repository của chúng tôi để tìm hiểu thêm về AI. Khám phá các trang giải pháp của chúng tôi về AI trong nông nghiệp và computer vision trong sản xuất. Khám phá các tùy chọn cấp phép của chúng tôi và bắt đầu xây dựng model thị giác của riêng bạn.






