Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay

8 công cụ và thuật toán theo dõi đối tượng mã nguồn mở hàng đầu

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 thời gian thực. Tìm hiểu cách thức hoạt động của từng công cụ và cách chọn công cụ phù hợp với dự án của bạn.

Khi một chiếc xe vượt đèn đỏ và hệ thống tự động gửi biên lai phạt cho người lái, hoặc khi một cầu thủ bóng đá rê bóng trên sân và camera theo dõi chuyển động một cách mượt mà, trí tuệ nhân tạo (AI) đang âm thầm hoạt động ở hậu trường. Cụ thể, các hệ thống này dựa trên thị giác máy tính , một lĩnh vực con 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.

Trong lĩnh vực thị giác máy tính, một trong những nhiệm vụ quan trọng đằng sau các ứng dụng này là theo dõi đối tượng . Nó được sử dụng để xác định các đối tượng trong mỗi khung hình của video và sau đó theo dõi các đối tượng đó khi chúng di chuyển, chồng chéo với các đối tượng khác hoặc thay đổi hướng.

Hiện nay có rất nhiều công cụ và thuật toán theo dõi đối tượng , mỗi công cụ được thiết kế cho các trường hợp sử dụng, nhu cầu hiệu năng và mức độ phức tạp khác nhau. Một số tập trung vào tốc độ và có thể... track Một số hệ thống xử lý hàng chục đối tượng trong thời gian thực, trong khi những hệ thống 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 khó khăn như bị che khuất, chuyển động nhanh hoặc ánh sáng yếu.

Cụ thể, các dự án mã nguồn mở đã đóng vai trò quan trọng trong việc thúc đẩy lĩnh vực này. Bởi vì mã nguồn của chúng được công khai, các nhà phát triển và nhà nghiên cứu có thể nghiên cứu cách chúng 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. Tính mở này đã giúp việc theo dõi đối tượng phát triển nhanh chóng và dễ dàng tích hợp vào các hệ thống thực tế.

Trong bài viết này, chúng ta sẽ cùng khám phá tám công cụ và thuật toán theo dõi đối tượng mã nguồn mở phổ biến. Bắt đầu nào!

Theo dõi đối tượng là gì?

Hãy tưởng tượng một tình huống: một nhân viên bảo vệ đang xem đoạn phim camera giám sát của một bãi đậu xe. Anh ta quyết định để mắt đến một chiếc xe màu đỏ. Khi xem video, anh ta ghi nhớ hình ảnh chiếc xe đó và tiếp tục theo dõi nó đến bất cứ đâu, ngay cả khi có những chiếc xe khác đi ngang qua hoặc người đi bộ chắn trước mặt.

Tính năng theo dõi đối tượng bằng trí tuệ nhân tạo cũng tương tự, nhưng hoạt động tự động và trên quy mô lớn. Nói cách khác, theo dõi đối tượng 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ì tính nhất quán của đối tượng đó từ khung hình này sang khung hình khác. 

Trong nhiều hệ thống, quá trình này bắt đầu bằng việc phát hiện đối tượng , 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 mỗi 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 chéo lên nhau, hệ thống theo dõi sẽ liên kết các phát hiện giữa các khung hình để biết đối tượng nào là đối tượng nào và vị trí của mỗi đối tượng theo thời gian.

Hình 1. Tổng quan về theo dõi đối tượng ( Nguồn )

Có hai loại theo dõi phổ biến: theo dõi đối tượng đơn (SOT), tập trung vào một đối tượng chính (như theo dõi quả bóng trong video thể thao), và theo dõi nhiều đối tượng (MOT), theo dõi nhiều đối tượng cùng một 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ô tại một giao lộ đông đúc). 

Bất kể loại theo dõi nào, hầu hết các hệ thống đều dựa trên ba thành phần cốt lõi: một bộ dò tìm để xác định đối tượng trong mỗi khung hình, một mô hình chuyển động để dự đoán cách các đối tượng đó có khả năng di chuyển và một bước đối sánh để kết nối các phát hiện mới với các đối tượng đã được theo dõi trước đó. Các thành 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.

Nhu cầu về các công cụ theo dõi đối tượng mã nguồn mở

Trước khi đi sâu vào chi tiết, bạn có thể tự hỏi: điều gì khiến các công cụ và thuật toán theo dõi đối tượng mã nguồn mở trở nên đặc biệt đến vậy?

Các công cụ mã nguồn mở đóng vai trò quan trọng trong việc giúp việc theo dõi đối tượng trở nên dễ sử dụng và phổ biến hơn. Vì mã nguồn mở, các nhà phát triển và nhà nghiên cứu có thể xem chính xác cách thức hoạt động của trình theo dõi, học hỏi từ đó và điều chỉnh nó cho các dự án của riêng họ 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ụ theo dõi mã nguồn mở được duy trì bởi những người đóng góp 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à giữ cho các công cụ luôn phù hợp với các nghiên cứu mới nhất. Sự hợp tác liên tục này giúp chúng duy trì độ tin cậy và tính hữu dụng trong nhiều ứ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, các công ty khởi nghiệp và các nhóm nhỏ có thể thử nghiệm, tạo nguyên 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ý.

8 công cụ và thuật toán theo dõi đối tượng mã nguồn mở hàng đầu

Hiện nay có rất nhiều lựa chọn mã nguồn mở để xây dựng hệ thống theo dõi. Một số là các thuật toán hoặc mô hình theo dõi mà bạn có thể tích hợp trực tiếp vào quy trình của mình, trong khi những cái khác là các thư viện và khung phần mềm giúp dễ dàng chạy, quản lý và tích hợp các mô hình đó. Chúng bao gồm mọi thứ, từ logic theo dõi cốt lõi đến các công cụ hỗ trợ cần thiết trong một dự án thực tế. 

Tiếp theo, chúng ta hãy cùng xem xét tám công cụ và thuật toán theo dõi đối tượng mã nguồn mở phổ biến.

1. Ultralytics YOLO các mô hình và Ultralytics Python Bưu kiện

Một trong những lựa chọn dễ dàng và thiết thực nhất để theo dõi đối tượng là sử dụng mô hình YOLO Ultralytics kết hợp với gói Python Ultralytics . Ultralytics YOLO Các mô hình như Ultralytics YOLO11Ultralytics YOLO26 sắp ra mắt là các mô hình thị giác máy tính hỗ trợ nhiều tác vụ thị giác, bao gồm phát hiện đối tượng, phân đoạn đối tượng, ước tính tư thế và theo dõi đối tượng.

Hình 2. Một ví dụ về cách sử dụng YOLO11 ĐẾN detect Và track các đối tượng. ( Nguồn )

Điều thú vị là bản thân các mô hình lại không... track các đối tượng trải dài trên nhiều khung hình. Thay vào đó, Ultralytics Python gói, một thư viện giúp đơn giản hóa việc chạy và triển khai. Ultralytics YOLO các mô hình, giúp việc theo dõi trở nên khả thi bằng cách kết hợp YOLO Khả năng phát hiện từng khung hình của hệ thống với các thuật toán theo dõi đa đối tượng chuyên dụng như BoT-SORT và ByteTrack. 

Với khả năng theo dõi tích hợp, Ultralytics gói và Ultralytics YOLO các mô hình có thể được sử dụng để detect Hệ thống sẽ nhận diện các đối tượng trong mỗi khung hình và gán cho chúng các ID nhất quán để có thể theo dõi chúng khi chúng di chuyển, chồng chéo, rời khỏi khung hình và quay trở lại sau đó. Phương pháp này ngày càng được áp dụng rộng rãi trong các lĩnh vực như sản xuất và bán lẻ, cho phép 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 trong cửa hàng.

2. OpenCV người theo dõi

OpenCV là một thư viện thị giác máy tính khổng lồ bao gồm một bộ sưu tập các thuật toán theo dõi đối tượng. Thư viện này được phát triển và duy trì bởi... OpenCV cộng đồng từ năm 1999. 

Thay vì dựa vào học sâu, hầu hết các công cụ theo dõi này sử dụng các phương pháp thị giác máy tính truyền thống như bộ lọc tương quan và kỹ thuật dựa trên nhân (theo dõi một đối tượng bằng cách so khớp hình ảnh trực quan của nó, chẳng hạn như màu sắc và kết cấu, từ khung hình này sang khung hình khác, thay vì học các đặc điểm bằng mạng nơ-ron). 

Khi sử dụng các thuật toán này, thông thường bạn có thể chọn đối tượng mình muốn trước tiên. track và trình theo dõi liên tục tìm kiếm vùng hình ảnh tương tự 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 cách sử dụng OpenCV ( Nguồn )

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 theo dõi dựa trên học sâu 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ì chúng nhẹ, nhanh và dễ chạy. Ngoài ra, vì các trình theo dõi này hoạt động hiệu quả trên CPU và thường không yêu cầu bộ nhớ ngoài (ví dụ: bộ nhớ ảo). GPU Chúng rất phù hợp cho các thí nghiệm nhanh, học tập trên lớp và các dự án sở thích. 

3. ByteTrack

ByteTrack là một trong những thuật toán mã nguồn mở phổ biến nhất用于 theo dõi nhiều đối tượng. Thay vì chỉ khớp với những phát hiện mà mô hình rất chắc chắn, nó cũng sử dụng cả những phát hiện 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ó giữ được track ByteTrack được sử dụng để nhận diện các vật thể khó quan sát 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. Nhờ tốc độ và độ tin cậy cao, 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 suất thời gian thực và nhận dạng nhất quán là rất quan trọng. 

Như đã đề cập trước đó, nếu bạn đang sử dụng Ultralytics YOLO các mô hình phát hiện, việc kích hoạt ByteTrack rất dễ dàng thông qua Ultralytics Python Gói này có thể được sử dụng độc lập trong các quy trình tùy chỉnh, phù hợp với mọi thứ, từ các nguyên mẫu nghiên cứu đến các hệ thống sản xuất được viết bằng C++.

4. DeepSORT

Một thuật toán khác được sử dụng rộng rãi để theo dõi nhiều đối tượng 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 sử dụng phương pháp theo dõi bằng cách phát hiện. Tuy nhiên, SORT dựa vào bộ lọc Kalman , một mô hình toán học ước tính vị trí tương lai của một đối tượng dựa trên chuyển động trong quá khứ của nó, để dự đoán vị trí tiếp theo mà mỗi đối tượng có khả năng di chuyển đến.

Sau đó, thuật toán sẽ so khớp các phát hiện mới với các đường đi hiện có, chủ yếu dựa trên vị trí và sự chồng lấp của khung giới hạn. Điều này giúp SORT hoạt động nhanh và nhẹ, nhưng nó có thể gặp khó khăn khi các đối tượng chồng chéo, giao nhau hoặc tạm thời biến mất khỏi tầm nhìn.

DeepSORT cải tiến SORT bằng cách bổ sung thông tin về hình dạng vào quá trình theo dõi. Bên cạnh chuyển động và vị trí, nó sử dụng mô hình nhận dạng lại (re-id) dựa trên học sâu để học cách các đối tượng trông như thế nào. Điều này cho phép trình theo dõi nhận ra cùng một đối tượng trong nhiều khung hình, ngay cả khi chuyển động không đủ để phân biệt nó với các đối tượng khác.

Do đó, 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 chồng chéo lên nhau hoặc bị che khuất trong giây lát. Tuy nhiên, hiện nay nó được coi là một phương pháp cơ bản kinh điển, và các phương pháp theo dõi mới hơn thường đạt được hiệu suất tốt hơn trong các tình huống phức tạp hơn.

5. Norfair

Norfair là một thư viện theo dõi nhẹ được thiết kế để linh hoạt, thay vì ép buộc bạn vào một quy trình theo dõi cố định. Nó có thể thêm tính năng theo dõi lên trên hầu hết mọi bộ dò, miễn là đầu ra của bộ dò 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 của hộp giới hạn, điểm đặc trưng hoặc dữ liệu tọa độ tùy chỉnh.

Hình 4. Theo dõi vật thể trong thế giới thực bằng Norfair ( Nguồn )

Tính linh hoạt này làm cho nó đặc biệt hiệu quả đố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 mà các công cụ theo dõi đa đối tượng 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 phát hiện được khớp nối giữa 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 theo dõi. Norfair thường được sử dụng trong robot học, phân tích chuyển động thể thao, điều hướng máy bay không người lái và các ứng dụng phụ thuộc nhiều vào việc theo dõi các điểm mốc hoặc điểm mấu chốt về tư thế.

6. MMTracking

MMTracking là một bộ công cụ theo dõi mã nguồn mở từ nhóm OpenMMLab, nhóm cũng đứng sau các thư viện thị giác máy tính được sử dụng rộng rãi như MMDetection. Được xây dựng trên nền tảng MMDetection, nó cung cấp một khung linh hoạt để phát triển và thử nghiệm các hệ thống theo dõi.

Một trong những điểm mạnh lớn nhất của nó là thiết kế dạng mô-đun. Thay vì ràng buộc bạn vào một quy trình duy nhất, MMTracking cho phép bạn cấu hình và thay thế các thành phần khác nhau, chẳng hạn như bộ dò, mô-đun theo dõi và trong một số thiết lập là mô hình nhận dạng lại. Nhờ tính linh hoạt này, nó đặc biệt phổ biến trong các dự án nghiên cứu và dự án nâng cao, nơi các nhóm muốn đánh giá hiệu suất phương pháp, thử nghiệm các ý tưởng mới hoặc tinh chỉnh các quy trình theo dõi.

7. FairMOT

FairMOT là một khung theo dõi nhiều đối tượng được thiết kế để track Nhiều đối tượng cùng một lúc. Không giống như các quy trình theo dõi bằng phát hiện truyền thống, vốn thực hiện phát hiện trước rồi mới liên kết các đối tượng giữa các khung hình như một bước riêng biệt, FairMOT học cả phát hiện và nhận dạng lại cùng nhau trong một mạng duy nhất. 

Hình 5. Cách thức hoạt động của khung FairMOT ( Nguồn )

Cấu hình kết nối này giúp nó duy trì danh tính nhất quán hơn, đặc biệt là trong những khu vực đông người, nơi mọi người thường chồng chéo hoặc di chuyển nhanh. FairMOT thường được sử dụng trong các tình huống như theo dõi người đi bộ và giám sát đám đông, và nó cũng được áp dụng trong các lĩnh vực 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 đối tượng trong thời gian thực là rất quan trọng.

8. SiamMask

SiamMask là một phương pháp theo dõi đối tượng đơn lẻ, tiến xa hơn nhiều so với các công cụ theo dõi khác bằng cách tạo ra mặt nạ phân đoạn cùng với khung bao quanh. Nói một cách đơn giản, nó không chỉ vẽ một hình chữ nhật xung quanh đối tượng 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 đối tượng 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à phân đoạn đối tượng bằng SiamMask ( Nguồn )

Phương pháp này sử dụng thiết kế theo dõi Siamese, trong đó bộ theo dõi trước tiên lấy một vùng tham chiếu nhỏ của mục tiêu từ khung hình đầu tiên, thường được gọi là mẫu. Sau đó, trong mỗi khung hình mới, nó tìm kiếm trong một vùng lớn hơn và tìm ra vị trí có độ tương đồng cao nhất với mẫu đó. 

SiamMask được xây dựng dựa trên ý tưởng so khớp này. Nó cũng dự đoán một mặt nạ ở cấp độ pixel cho đối tượng mục tiêu, vì vậy bạn sẽ nhận được cả vị trí của đối tượng và đường viền chính xác hơn khi video phát.

Các yếu tố quan trọng cần cân nhắc khi lựa chọn công cụ theo dõi đối tượng

Với nhiều lựa chọn công cụ theo dõi đối tượng mã nguồn mở hiện có trong lĩnh vực trí tuệ nhân tạo, lựa chọn tốt nhất cho dự án thị giác máy tính của bạn phụ thuộc vào yêu cầu cụ thể của trường hợp sử dụng. Dưới đây là một số yếu tố cần xem xét:

  • Độ chính xác: Điều này đặc biệt quan trọng trong các cảnh đông đúc hoặc có cấu trúc hình ảnh phức tạp, nơi hệ thống thị giác cần duy trì độ chính xác của nhận dạng ngay cả khi có sự chồng chéo, 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 tuyệt đối.
  • Dễ dàng tích hợp: Một số công cụ theo dõi đối tượng rất dễ sử dụng và hoạt động chỉ với vài dòng mã, trong khi những công cụ khác yêu cầu thiết lập, cấu hình hoặc quy trình tùy chỉnh phức tạp hơn.
  • Các ràng buộc triển khai: Môi trường mục tiêu, chẳng hạn như GPU Máy chủ, thiết bị biên hoặc phần cứng di động có thể quyết định phương pháp theo dõi nào là khả thi.
  • Khả năng mở rộng: Nếu hệ thống của bạn cần... track Khi xử lý nhiều đối tượng cùng lúc hoặc nhiều luồng video, trình theo dõi cần phải mở rộng quy mô hiệu quả mà không làm giảm hiệu năng đáng kể.

Mỗi công cụ hoặc thuật toán theo dõi đối tượng đều phục vụ một mục đích khác nhau. Cuối cùng, sự lựa chọn đúng đắn phụ thuộc vào các yêu cầu cụ thể của bạn, các ràng buộc về thời gian chạy, các chỉ số hiệu suất và mức độ tùy chỉnh mà dự án của bạn yêu cầu đối với phương pháp theo dõi. 

Những điều cần nhớ

Công nghệ theo dõi đối tượng đã phát triển từ các kỹ thuật thủ công ban đầu đến các hệ thống học sâu hiện đại ngày nay, có khả năng 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ở là động lực chính 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 quy trình theo dõi phức tạp mà không cần giấy phép hạn chế hoặc cơ sở hạ tầng cồng kềnh. 

Hãy truy cập cộng đồngkho lưu trữ GitHub 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ệpthị giác máy tính trong sản xuất . Tìm hiểu các tùy chọn cấp phép của chúng tôi và bắt đầu xây dựng mô hình thị giác của riêng bạn.

Hãy cùng nhau xây dựng tương lai
của AI!

Bắt đầu hành trình của bạn với tương lai của học máy

Bắt đầu miễn phí