Chuyển đến nội dung

Đếm đối tượng trong các khu vực khác nhau bằng Ultralytics YOLO 🚀

Đếm đối tượng trong vùng là gì?

Đếm đối tượng trong các khu vực bằng Ultralytics YOLO11 liên quan đến 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. Phương pháp này có giá trị để tối ưu hóa quy trình, tăng cường bảo mật và cải thiện hiệu quả trong các ứng dụng khác nhau.



Xem: Đếm đối tượng trong các khu vực khác nhau bằng Ultralytics YOLO11 | Giải pháp Ultralytics 🚀

Ưu điểm của Đếm Đối Tượng trong Vùng?

  • Độ chuẩn xác (Precision) và Độ chính xác (Accuracy): Đếm đối tượng trong các khu vực bằng thị giác máy tính nâng cao đảm bảo số lượng chính xác và chuẩn xác, giảm thiểu các lỗi thường liên quan đến đếm thủ công.
  • Cải thiện hiệu quả: Tự động đếm đối tượng giúp tăng cường hiệu quả hoạt động, cung cấp kết quả theo thời gian thực và hợp lý hóa các quy trình trên các ứng dụng khác nhau.
  • Tính Đa Dụng và Ứng Dụng: Tính linh hoạt của việc đếm đối tượng trong các khu vực làm cho nó có thể áp dụng trong nhiều lĩnh vực khác nhau, 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 ích và hiệu quả rộng rãi của nó.

Các ứng dụng thực tế

Bán lẻ Đường Phố Chợ
Đếm người trong các khu vực khác nhau bằng Ultralytics YOLO11 Đếm đám đông ở các khu vực khác nhau bằng Ultralytics YOLO11
Đếm người trong các khu vực khác nhau bằng Ultralytics YOLO11 Đếm đám đông ở các khu vực khác nhau bằng Ultralytics YOLO11

Ví dụ sử dụng

Đếm khu vực bằng Ultralytics YOLO

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="yolo11n.pt",  # model for counting in regions i.e yolo11s.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 windows

Mã ví dụ Ultralytics

Module đếm khu vực 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.

RegionCounter Các đối số

Đây là bảng với RegionCounter các đối số:

Đối số Loại Mặc định Mô tả
model str None Đường dẫn đến Tệp Mô hình Ultralytics YOLO.
region list '[(20, 400), (1260, 400)]' Danh sách các điểm xác định vùng đếm.

Hàm RegionCounter giải pháp 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 để sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml.
conf float 0.3 Đặt ngưỡng tin cậy cho các phát hiện; 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 kết quả dương tính giả.
iou float 0.5 Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện trù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ị kết quả theo dõi, cung cấp đầu ra trực quan về các đối tượng được theo dõi.
device str None Chỉ định thiết bị cho suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng lựa chọn giữa CPU, một GPU cụ thể hoặc các thiết bị tính toán khác để thực thi mô hình.

Ngoài ra, các cài đặt hiển thị sau được hỗ trợ:

Đối số Loại Mặc định Mô tả
show bool False Nếu True, hiển thị hình ảnh hoặc video đã 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 None or int None Chỉ định độ rộng đường của hộp giới hạn. Nếu None, độ rộng đường kẻ được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp tùy chỉnh trực quan để rõ ràng hơn.
show_conf bool True Hiển thị điểm tin cậy cho mỗi lần phát hiện cùng với nhãn. Cung cấp cái nhìn sâu sắc về độ chắc chắn của mô hình cho mỗi lần phát hiện.
show_labels bool True Hiển thị nhãn cho mỗi lần phát hiện trong đầu ra trực quan. Cung cấp sự 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

Đếm đối tượng trong các khu vực được chỉ định bằng Ultralytics YOLO11 là gì?

Đếm đối tượng trong các khu vực được chỉ định bằng Ultralytics YOLO11 liên quan đến việc phát hiện và đếm 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 nâng cao hiệu quả và độ chính xác trong các ứng dụng khác nhau như sản xuất, giám sát và theo dõi giao thông.

Làm cách nào để chạy script đếm đối tượng dựa trên khu vực bằng Ultralytics YOLO11?

Thực hiện theo các bước sau để chạy đếm đối tượng trong Ultralytics YOLO11:

  1. 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
    
  2. Thực thi script đếm khu vực:

    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 YOLO11 để đếm đối tượng trong các khu vực?

Sử dụng Ultralytics YOLO11 để đếm đối tượng trong các vùng mang lại một số lợi thế:

  1. Xử lý theo thời gian thực: Kiến trúc của YOLO11 cho phép suy luận nhanh, lý tưởng cho các ứng dụng yêu cầu kết quả đếm ngay lập tức.
  2. Đị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.
  3. 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 phân tích toàn diện.
  4. 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 Ultralytics Python API hoặc giao diện dòng lệnh.

Khám phá những lợi ích sâu sắc hơn 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 khu vực là gì?

Đếm đối tượng bằng Ultralytics YOLO11 có thể được áp dụng cho nhiều tình huống thực tế:

  • Phân tích bán lẻ: Đếm số lượng khách hàng trong các khu vực khác nhau của cửa hàng để 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 xe trong các đoạn đường hoặc giao lộ cụ thể.
  • Sản xuất: Theo dõi sản phẩm di chuyển qua các khu vực sản xuất khác nhau.
  • Hoạt động kho: Đế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 ở 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 để có thêm các khả năng giám sát dựa trên vùng.



📅 Đã tạo 1 năm trước ✏️ Cập nhật 4 tháng trước

Bình luận