Đếm đối tượng sử dụng Ultralytics YOLO26
Đếm đối tượng là gì?
Việc đếm đối tượng với Ultralytics YOLO26 bao gồm việc nhận dạng và đếm chính xác các đối tượng cụ thể trong video và luồng camera. YOLO26 vượt trội trong các ứng dụng thời gian thực, cung cấp khả năng đếm đối tượng hiệu quả và chính xác cho nhiều kịch bản khác nhau như phân tích đám đông và giám sát, nhờ vào các thuật toán tiên tiến và khả năng deep learning của nó.
Watch: How to Perform Real-Time Object Counting with Ultralytics YOLO26 🚀
Ưu điểm của đếm đối tượng
- Tối ưu hóa tài nguyên: Đếm đối tượng tạo điều kiện quản lý tài nguyên hiệu quả bằng cách cung cấp các số liệu đếm chính xác, tối ưu hóa việc phân bổ tài nguyên trong các ứng dụng như quản lý hàng tồn kho.
- Tăng cường bảo mật: Đếm đối tượng tăng cường an ninh và giám sát bằng cách theo dõi và đếm chính xác các thực thể, hỗ trợ phát hiện mối đe dọa chủ động.
- Ra quyết định dựa trên thông tin: Đếm đối tượng cung cấp những thông tin chi tiết có giá trị cho việc ra quyết định, tối ưu hóa các quy trình trong bán lẻ, quản lý giao thông và nhiều lĩnh vực khác.
Ứng dụng trong thế giới thực
| Logistics | Nuôi trồng thủy sản |
|---|---|
![]() | ![]() |
| Đếm gói hàng trên băng chuyền sử dụng Ultralytics YOLO26 | Đếm cá dưới biển sử dụng Ultralytics YOLO26 |
# Run a counting example
yolo solutions count show=True
# Pass a source video
yolo solutions count source="path/to/video.mp4"
# Pass region coordinates
yolo solutions count region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"Đối số region chấp nhận hai điểm (cho một đường thẳng) hoặc một đa giác có ba điểm trở lên. Xác định các tọa độ theo thứ tự cần kết nối để bộ đếm biết chính xác nơi các đối tượng đi vào và đi ra.
Các đối số của ObjectCounter
Dưới đây là bảng các đối số của ObjectCounter:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
model | str | None | Đường dẫn đến một file model Ultralytics YOLO. |
show_in | bool | True | Cờ để kiểm soát việc có hiển thị số lượng đối tượng đi vào trên luồng video hay không. |
show_out | bool | True | Cờ để kiểm soát việc có hiển thị số lượng đối tượng đi ra trên luồng video hay không. |
region | list | '[(20, 400), (1260, 400)]' | Danh sách các điểm xác định vùng đếm. |
Giải pháp ObjectCounter cho phép sử dụng một số đối số track:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Chỉ định thuật toán theo dõi cần sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml. |
conf | float | 0.1 | Đặt ngưỡng tin cậy cho các phát hiện; các giá trị thấp hơn cho phép theo dõi nhiều đối tượng hơn nhưng có thể bao gồm cả các kết quả dương tính giả. |
iou | float | 0.7 | Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện chồng lấp. |
classes | list | None | Lọc kết quả theo chỉ số lớp. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các lớp được chỉ định. |
verbose | bool | True | Kiểm soát việc hiển thị các kết quả theo dõi, cung cấp đầu ra trực quan của các đối tượng được theo dõi. |
device | str | None | Chỉ định thiết bị thực hiện suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng chọn giữa CPU, một GPU cụ thể hoặc các thiết bị tính toán khác để chạy model. |
Ngoài ra, các đối số trực quan hóa được liệt kê dưới đây cũng được hỗ trợ:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
show | bool | False | Nếu True, hiển thị các ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích để có phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc thử nghiệm. |
line_width | int or None | None | Chỉ định độ dày đường kẻ của khung bao. Nếu là None, độ dày đường kẻ sẽ tự động được điều chỉnh dựa trên kích thước ảnh. Cung cấp khả năng tùy chỉnh trực quan để đảm bảo độ rõ nét. |
show_conf | bool | True | Hiển thị điểm tin cậy cho mỗi kết quả phát hiện bên cạnh nhãn. Cung cấp cái nhìn sâu sắc về độ chắc chắn của model cho mỗi kết quả phát hiện. |
show_labels | bool | True | Hiển thị nhãn cho mỗi kết quả phát hiện trong đầu ra trực quan. Cung cấp hiểu biết ngay lập tức về các đối tượng được phát hiện. |
Câu hỏi thường gặp (FAQ)
Làm thế nào để đếm đối tượng trong video sử dụng Ultralytics YOLO26?
Để đếm đối tượng trong video sử dụng Ultralytics YOLO26, bạn có thể làm theo các bước sau:
- Nhập các thư viện cần thiết (
cv2,ultralytics). - Xác định vùng đếm (ví dụ: đa giác, đường thẳng, v.v.).
- Thiết lập trình quay video và khởi tạo bộ đếm đối tượng.
- Xử lý từng khung hình để theo dõi đối tượng và đếm chúng trong vùng đã xác định.
Đây là một ví dụ đơn giản để đếm trong một vùng:
import cv2
from ultralytics import solutions
def count_objects_in_region(video_path, output_video_path, model_path):
"""Count objects in a specific region within a video."""
cap = cv2.VideoCapture(video_path)
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
counter = solutions.ObjectCounter(show=True, region=region_points, model=model_path)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = counter(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
count_objects_in_region("path/to/video.mp4", "output_video.avi", "yolo26n.pt")Để có các cấu hình và tùy chọn nâng cao hơn, hãy xem giải pháp RegionCounter để đếm đối tượng trong nhiều vùng cùng một lúc.
Ưu điểm của việc sử dụng Ultralytics YOLO26 để đếm đối tượng là gì?
Sử dụng Ultralytics YOLO26 để đếm đối tượng mang lại một số ưu điểm:
- Tối ưu hóa tài nguyên: Nó tạo điều kiện quản lý tài nguyên hiệu quả bằng cách cung cấp các số liệu đếm chính xác, giúp tối ưu hóa việc phân bổ tài nguyên trong các ngành như quản lý hàng tồn kho.
- Tăng cường bảo mật: Nó tăng cường an ninh và giám sát bằng cách theo dõi và đếm chính xác các thực thể, hỗ trợ việc phát hiện mối đe dọa chủ động và hệ thống an ninh.
- Ra quyết định dựa trên thông tin: Nó cung cấp những thông tin chi tiết có giá trị cho việc ra quyết định, tối ưu hóa các quy trình trong các lĩnh vực như bán lẻ, quản lý giao thông và nhiều lĩnh vực khác.
- Xử lý thời gian thực: Kiến trúc của YOLO26 cho phép real-time inference, làm cho nó phù hợp với các luồng video trực tiếp và các ứng dụng đòi hỏi độ trễ thấp.
Để xem các ví dụ triển khai và ứng dụng thực tế, hãy khám phá giải pháp TrackZone để theo dõi các đối tượng trong các khu vực cụ thể.
Làm thế nào để tôi có thể đếm các lớp đối tượng cụ thể bằng Ultralytics YOLO26?
Để đếm các lớp đối tượng cụ thể bằng Ultralytics YOLO26, bạn cần chỉ định các lớp bạn quan tâm trong giai đoạn theo dõi. Dưới đây là một ví dụ Python:
import cv2
from ultralytics import solutions
def count_specific_classes(video_path, output_video_path, model_path, classes_to_count):
"""Count specific classes of objects in a video."""
cap = cv2.VideoCapture(video_path)
assert cap.isOpened(), "Error reading video file"
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter(output_video_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
line_points = [(20, 400), (1080, 400)]
counter = solutions.ObjectCounter(show=True, region=line_points, model=model_path, classes=classes_to_count)
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = counter(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
count_specific_classes("path/to/video.mp4", "output_specific_classes.avi", "yolo26n.pt", [0, 2])Trong ví dụ này, classes_to_count=[0, 2] nghĩa là nó đếm các đối tượng thuộc lớp 0 và 2 (ví dụ: người và xe hơi trong bộ dữ liệu COCO). Bạn có thể tìm thêm thông tin về chỉ số lớp trong tài liệu bộ dữ liệu COCO.
Tại sao tôi nên sử dụng YOLO26 thay vì các mô hình object detection khác cho các ứng dụng thời gian thực?
Ultralytics YOLO26 cung cấp một số ưu điểm so với các mô hình object detection khác như Faster R-CNN, SSD và các phiên bản YOLO trước đó:
- Tốc độ và hiệu quả: YOLO26 cung cấp khả năng xử lý thời gian thực, làm cho nó trở nên lý tưởng cho các ứng dụng yêu cầu suy luận tốc độ cao, chẳng hạn như giám sát và xe tự lái.
- Độ chính xác: Nó cung cấp độ chính xác tiên tiến cho các tác vụ object detection và theo dõi, giảm số lượng kết quả dương tính giả và cải thiện độ tin cậy tổng thể của hệ thống.
- Dễ dàng tích hợp: YOLO26 cung cấp sự tích hợp liền mạch với nhiều nền tảng và thiết bị khác nhau, bao gồm thiết bị di động và edge devices, điều này rất quan trọng đối với các ứng dụng AI hiện đại.
- Tính linh hoạt: Hỗ trợ nhiều tác vụ khác nhau như object detection, segmentation và theo dõi với các mô hình có thể cấu hình để đáp ứng các yêu cầu sử dụng cụ thể.
Xem Tài liệu YOLO26 của Ultralytics để tìm hiểu sâu hơn về các tính năng và so sánh hiệu suất.
Tôi có thể sử dụng YOLO26 cho các ứng dụng nâng cao như phân tích đám đông và quản lý giao thông không?
Có, Ultralytics YOLO26 hoàn toàn phù hợp cho các ứng dụng nâng cao như phân tích đám đông và quản lý giao thông nhờ khả năng phát hiện thời gian thực, khả năng mở rộng và tính linh hoạt trong tích hợp. Các tính năng nâng cao của nó cho phép theo dõi, đếm và phân loại đối tượng với độ chính xác cao trong môi trường năng động. Các trường hợp sử dụng ví dụ bao gồm:
- Phân tích đám đông: Giám sát và quản lý các cuộc tụ họp lớn, đảm bảo an toàn và tối ưu hóa lưu lượng đám đông với đếm dựa trên vùng.
- Quản lý giao thông: Theo dõi và đếm phương tiện, phân tích các kiểu giao thông và quản lý ùn tắc trong thời gian thực với các khả năng ước tính tốc độ.
- Phân tích bán lẻ: Phân tích các kiểu di chuyển của khách hàng và tương tác sản phẩm để tối ưu hóa bố trí cửa hàng và cải thiện trải nghiệm khách hàng.
- Tự động hóa công nghiệp: Đếm các sản phẩm trên băng chuyền và giám sát dây chuyền sản xuất để kiểm soát chất lượng và cải thiện hiệu quả.
Đối với các ứng dụng chuyên biệt hơn, hãy khám phá Ultralytics Solutions để có một bộ công cụ toàn diện được thiết kế cho các thách thức thị giác máy tính trong thế giới thực.

