Đế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 |
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:
-
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 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ế:
- 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.
- Đị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 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 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.