Đếm đối tượng trong các vùng khác nhau sử dụng Ultralytics YOLO 🚀
Đếm đối tượng trong các vùng là gì?
Đếm đối tượng trong các vùng với Ultralytics YOLO26 bao gồm việc xác định chính xác số lượng đối tượng trong các khu vực được chỉ định bằng cách sử dụng thị giác máy tính tiên tiến. Cách tiếp cận này rất có giá trị để tối ưu hóa quy trình, tăng cường an ninh và cải thiện hiệu quả trong nhiều ứng dụng khác nhau.
Watch: Object Counting in Different Regions using Ultralytics YOLO26 | Ultralytics Solutions 🚀
Ưu điểm của việc đếm đối tượng trong các vùng
- Precision và Độ chính xác: Đếm đối tượng trong các vùng với thị giác máy tính tiên tiến đảm bảo số lượng chính xác, giảm thiểu các lỗi thường gặp liên quan đến việc đếm thủ công.
- Cải thiện hiệu suất: Việc đếm đối tượng tự động giúp nâng cao hiệu quả vận hành, cung cấp kết quả thời gian thực và hợp lý hóa các quy trình trên nhiều ứng dụng khác nhau.
- Tính linh hoạt và Ứng dụng: Tính linh hoạt của việc đếm đối tượng trong các vùng làm cho nó có thể áp dụng trên nhiều lĩnh vực, từ sản xuất và giám sát đến theo dõi giao thông, góp phần vào tính hữu dụng và hiệu quả rộng rãi của nó.
Ứng dụng trong thế giới thực
| Bán lẻ | Đường phố thương mại |
|---|---|
![]() | ![]() |
| Đếm người trong vùng khác nhau sử dụng Ultralytics YOLO26 | Đếm đám đông trong vùng khác nhau sử dụng Ultralytics YOLO26 |
Ví dụ sử dụng
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Pass region as list
# region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]
# Pass region as dictionary
region_points = {
"region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
"region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
}
# Video writer
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("region_counting.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize region counter object
regioncounter = solutions.RegionCounter(
show=True, # display the frame
region=region_points, # pass region points
model="yolo26n.pt", # model for counting in regions, e.g., yolo26s.pt
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = regioncounter(im0)
# print(results) # access the output
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windowsMô-đun đếm vùng của Ultralytics có sẵn trong phần ví dụ của chúng tôi. Bạn có thể khám phá ví dụ này để tùy chỉnh mã và sửa đổi nó cho phù hợp với trường hợp sử dụng cụ thể của bạn.
Các tham số của RegionCounter
Dưới đây là bảng với các tham số của RegionCounter:
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
model | str | None | Đường dẫn đến một file model Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Danh sách các điểm xác định vùng đếm. |
Giải pháp RegionCounter cho phép sử dụng các tham số theo dõi đối tượng:
| Đố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 cài đặt trực quan hóa sau đâ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)
Đếm đối tượng trong các vùng được chỉ định sử dụng Ultralytics YOLO26 là gì?
Đếm đối tượng trong các vùng được chỉ định với Ultralytics YOLO26 bao gồm việc phát hiện và liệt kê số lượng đối tượng trong các khu vực được xác định bằng cách sử dụng thị giác máy tính tiên tiến. Phương pháp chính xác này giúp nâng cao hiệu quả và độ chính xác trên nhiều ứng dụng khác nhau như sản xuất, giám sát và theo dõi giao thông.
Làm thế nào để chạy tập lệnh đếm đối tượng dựa trên vùng với Ultralytics YOLO26?
Thực hiện theo các bước sau để chạy đếm đối tượng trong Ultralytics YOLO26:
-
Sao chép kho lưu trữ Ultralytics và điều hướng đến thư mục:
git clone https://github.com/ultralytics/ultralytics cd ultralytics/examples/YOLOv8-Region-Counter -
Thực thi tập lệnh đếm vùng:
python yolov8_region_counter.py --source "path/to/video.mp4" --save-img
Để biết thêm các tùy chọn, hãy truy cập phần Ví dụ sử dụng.
Tại sao tôi nên sử dụng Ultralytics YOLO26 để đếm đối tượng trong các vùng?
Sử dụng Ultralytics YOLO26 để đếm đối tượng trong các vùng mang lại một số ưu điểm:
- Xử lý thời gian thực: Kiến trúc của YOLO26 cho phép suy luận nhanh, làm cho nó trở nên lý tưởng cho các ứng dụng yêu cầu kết quả đếm tức thì.
- Định nghĩa vùng linh hoạt: Giải pháp cho phép bạn xác định nhiều vùng tùy chỉnh dưới dạng đa giác, hình chữ nhật hoặc đường thẳng để phù hợp với nhu cầu giám sát cụ thể của bạn.
- Hỗ trợ đa lớp: Đếm đồng thời các loại đối tượng khác nhau trong cùng một vùng, cung cấp số liệu phân tích toàn diện.
- Khả năng tích hợp: Dễ dàng tích hợp với các hệ thống hiện có thông qua Python API của Ultralytics hoặc giao diện dòng lệnh.
Khám phá sâu hơn các lợi ích trong phần Ưu điểm.
Một số ứng dụng thực tế của việc đếm đối tượng trong các vùng là gì?
Đếm đối tượng với Ultralytics YOLO26 có thể được áp dụng vào nhiều kịch bản thực tế:
- Phân tích bán lẻ: Đếm khách hàng trong các khu vực cửa hàng khác nhau để tối ưu hóa bố cục và nhân sự.
- Quản lý giao thông: Giám sát lưu lượng phương tiện tại các đoạn đường hoặc giao lộ cụ thể.
- Sản xuất: Theo dõi các sản phẩm di chuyển qua các khu vực sản xuất khác nhau.
- Vận hành kho hàng: Đếm các mặt hàng tồn kho trong các khu vực lưu trữ được chỉ định.
- An toàn công cộng: Giám sát mật độ đám đông trong các khu vực cụ thể trong các sự kiện.
Khám phá thêm các ví dụ trong phần Ứng dụng thực tế và giải pháp TrackZone để biết thêm các khả năng giám sát dựa trên vùng.

