Meet YOLO26: next-gen vision AI.

Link to this sectionĐếm đối tượng trong các vùng với Ultralytics YOLO26#

Giải pháp RegionCounter trong Ultralytics YOLO26 theo dõi các đối tượng qua các khung hình video và đếm các đối tượng có tâm bbox nằm trong mỗi vùng bạn xác định trên từng khung hình. Mỗi vùng được vẽ trên khung hình với số đếm trực tiếp riêng, vì vậy bạn có thể giám sát nhiều khu vực, chẳng hạn như lối đi trong cửa hàng, làn đường hoặc khu vực sản xuất, chỉ với một lệnh gọi Python hoặc lệnh CLI duy nhất.



Watch: Object Counting in Different Regions using Ultralytics YOLO | Ultralytics Solutions

Link to this sectionTại sao nên sử dụng đếm theo vùng?#

  • Nhiều khu vực trong một lượt: Truyền một từ điển các đa giác được đặt tên và mỗi khu vực sẽ có số đếm độc lập được vẽ trên khung hình, do đó một luồng video có thể bao quát mọi khu vực bạn quan tâm.
  • Tích hợp sẵn tính năng theo dõi: Giải pháp chạy tính năng phát hiện YOLO26 và theo dõi đối tượng bên trong, vì vậy không cần đường ống theo dõi riêng biệt để thiết lập.
  • Số đếm có thể đọc theo lập trình: Mỗi khung hình được xử lý trả về một đối tượng kết quả với từ điển chứa số đếm của các vùng, sẵn sàng cho bảng điều khiển, cảnh báo hoặc ghi nhật ký.

Link to this sectionCác ứng dụng thực tế#

Bán lẻĐường phố thị trường
Ultralytics YOLO đếm người bên trong các vùng đa giác được vẽ trong một cửa hàng bán lẻSố đếm vùng Ultralytics YOLO phủ trên một con phố chợ đông đúc
Đếm người theo vùng bằng Ultralytics YOLOĐếm đám đông theo vùng bằng Ultralytics YOLO

Link to this sectionCách đếm đối tượng trong các vùng với Ultralytics YOLO#

Chạy giải pháp RegionCounter trên nguồn video từ CLI hoặc Python. Một vùng có thể là một danh sách các điểm (một khu vực đơn lẻ) hoặc một từ điển ánh xạ tên khu vực tới các danh sách điểm. Ví dụ Python dưới đây đếm các đối tượng trong hai vùng được đặt tên và ghi các khung hình đã xử lý vào một tệp video đầu ra:

Đếm theo vùng sử dụng Ultralytics YOLO
# Run a region counting example
yolo solutions region show=True

# Pass a source video
yolo solutions region source="path/to/video.mp4"

# Pass a custom region
yolo solutions region region="[(20, 400), (1080, 400), (1080, 360), (20, 360)]"

Link to this sectionCác đối số của RegionCounter()#

Dưới đây là bảng các tham số của RegionCounter:

Đối sốLoạiMặc địnhMô tả
modelstrNoneĐường dẫn đến tệp model Ultralytics YOLO.
regionlist hoặc dictNoneCác điểm xác định vùng quan tâm, có thể là danh sách các bộ (x, y) hoặc một dictionary ánh xạ tên vùng tới danh sách các điểm cho nhiều vùng (chỉ áp dụng cho RegionCounter). Khi là None, các giải pháp yêu cầu một vùng sẽ quay về giá trị mặc định được định nghĩa trước.

Giải pháp RegionCounter cho phép sử dụng các tham số theo dõi đối tượng:

Đối sốLoạiMặc địnhMô tả
trackerstr'botsort.yaml'Chỉ định thuật toán tracking cần sử dụng. Các tùy chọn tích hợp sẵn: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Thiết lập ngưỡng tin cậy cho các phát hiện; các giá trị thấp hơn cho phép nhiều đối tượng được theo dõi hơn nhưng có thể bao gồm các kết quả dương tính giả.
ioufloat0.7Thiết lập ngưỡng Intersection over Union (IoU) để lọc các phát hiện chồng lấp.
classeslistNoneLọc kết quả theo chỉ số lớp. Ví dụ, classes=[0, 2, 3] chỉ theo dõi các lớp đã chỉ định.
verboseboolTrueKiểm soát việc hiển thị 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.
devicestrNoneChỉ đị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 để thực thi model.

Ngoài ra, các cài đặt trực quan hóa sau đây cũng được hỗ trợ:

Đối sốLoạiMặc địnhMô tả
showboolFalseNếu True, hiển thị các hình ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích cho phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc kiểm thử.
line_widthint or NoneNoneChỉ định độ dày đường của bounding box. Nếu None, độ dày đường được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp khả năng tùy chỉnh trực quan để rõ ràng hơn.
show_confboolTrueHiển thị điểm số tin cậy (confidence score) cho mỗi phát hiện cùng với nhãn. Cung cấp thông tin chi tiết về độ chắc chắn của model đối với từng phát hiện.
show_labelsboolTrueHiển thị nhãn cho mỗi phát hiện trong đầu ra hình ảnh. Cung cấp khả năng nhận biết tức thì các đối tượng được phát hiện.

Link to this sectionCách thức hoạt động của đếm theo vùng#

Giải pháp RegionCounter biến mỗi vùng bạn truyền vào thành một đa giác, với ít nhất ba điểm cho mỗi vùng. Một danh sách điểm đơn thuần sẽ trở thành một khu vực duy nhất có tên Region#01, trong khi một từ điển sẽ giữ tên khu vực của riêng bạn; mỗi khu vực được vẽ bằng màu sắc riêng từ bảng màu Ultralytics. Sau đó, mỗi khung hình được xử lý theo ba bước:

  1. Tính năng theo dõi của YOLO26 phát hiện và bám sát mọi đối tượng trong khung hình
  2. Đối với mỗi đối tượng được theo dõi, giải pháp tính toán tâm bbox và kiểm tra xem đa giác vùng nào chứa nó
  3. Số đếm của mỗi vùng được vẽ tại tâm của nó và các số đếm được đặt lại trước khung hình tiếp theo

Vì các số đếm khởi động lại sau mỗi khung hình, số hiển thị trên một vùng là mức chiếm dụng hiện tại, nghĩa là số lượng đối tượng nằm bên trong nó ngay lúc đó, không phải tổng số tích lũy. Để đếm các đối tượng vượt qua ranh giới một cách tích lũy, hãy sử dụng giải pháp ObjectCounter thay thế.

Mỗi lệnh gọi cũng trả về một đối tượng kết quả, trong đó thuộc tính plot_im chứa khung hình đã được chú thích và từ điển region_counts ánh xạ tên các vùng tới số đếm của chúng, để bạn có thể đưa các con số này vào logic ứng dụng của riêng mình.

Link to this sectionKết luận#

Giải pháp RegionCounter của Ultralytics YOLO26 giám sát số lượng đối tượng trực tiếp trong bao nhiêu khu vực được đặt tên tùy thích chỉ với vài dòng mã. Để đi xa hơn, hãy đếm các trường hợp vượt qua ranh giới với đếm đối tượng, theo dõi các đối tượng bên trong một khu vực đơn lẻ với TrackZone, hoặc khám phá các Giải pháp Ultralytics khác.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionViệc đếm đối tượng trong các vùng hoạt động như thế nào trong Ultralytics YOLO26?#

Ultralytics YOLO26 đếm các đối tượng trong các vùng bằng cách theo dõi mọi đối tượng trong khung hình và kiểm tra xem tâm bbox của nó có nằm bên trong mỗi đa giác do người dùng xác định hay không. Số lượng hiển thị trên một vùng là mức chiếm dụng hiện tại cho khung hình đó, không phải là tổng tích lũy. Các tùy chọn cấu hình được liệt kê trong phần Các đối số RegionCounter() .

Link to this sectionLàm cách nào để tôi đếm các đối tượng trong nhiều vùng cùng một lúc?#

Truyền đối số region dưới dạng một từ điển ánh xạ tên khu vực tới các danh sách điểm, như trong ví dụ chính:

from ultralytics import solutions

region_points = {
    "region-01": [(50, 50), (250, 50), (250, 250), (50, 250)],
    "region-02": [(640, 640), (780, 640), (780, 720), (640, 720)],
}
regioncounter = solutions.RegionCounter(region=region_points, model="yolo26n.pt", show=True)

Mỗi khu vực được đặt tên sẽ được vẽ bằng màu sắc riêng với số đếm độc lập.

Link to this sectionLàm cách nào để tôi nhận số đếm vùng theo lập trình?#

Đối tượng được trả về bởi mỗi lệnh gọi regioncounter(im0) mang một từ điển region_counts ánh xạ tên các vùng tới số đếm của chúng, cùng với plot_im (khung hình được chú thích) và total_tracks (số lượng đối tượng được theo dõi). In đối tượng kết quả để kiểm tra tất cả các trường có sẵn.

Link to this sectionTôi có thể chỉ đếm các lớp đối tượng cụ thể trong một vùng không?#

Có. Truyền đối số classes với các chỉ số lớp cần giữ lại, ví dụ classes=[0] để chỉ đếm người với một model được huấn luyện trước trên tập COCO. Danh sách đầy đủ các đối số liên quan đến theo dõi nằm trong phần Các đối số RegionCounter() .

Link to this sectionSự khác biệt giữa RegionCounter và ObjectCounter là gì?#

RegionCounter cho biết có bao nhiêu đối tượng nằm bên trong mỗi khu vực đa giác trên khung hình hiện tại, trong khi ObjectCounter đếm các đối tượng tích lũy khi chúng vượt qua đường kẻ hoặc ranh giới vùng, theo dõi tổng số vào và ra. Sử dụng RegionCounter cho mức chiếm dụng trực tiếp của một hoặc nhiều khu vực và ObjectCounter cho việc đếm lượt vào và ra; các vùng dạng đường kẻ chỉ được hỗ trợ bởi ObjectCounter.

Bình luận