Ultralytics YOLO27:

Các giải pháp của Ultralytics: Ứng dụng YOLO26 để giải quyết các vấn đề trong thực tế#

Các giải pháp của Ultralytics cung cấp những ứng dụng tiên tiến của các model YOLO, mang đến các giải pháp thực tế như đếm đối tượng, làm mờ và hệ thống bảo mật, nâng cao hiệu quả và độ chính xác trong nhiều ngành. Khám phá sức mạnh của YOLO26 qua các triển khai thực tiễn, tạo ra tác động rõ rệt.

Hình thu nhỏ các giải pháp của Ultralytics



Watch: How to Run Ultralytics Solutions from the Command Line (CLI) | Ultralytics YOLO26 🚀

Giải pháp#

Dưới đây là danh sách được tuyển chọn các giải pháp của Ultralytics có thể dùng để xây dựng những dự án thị giác máy tính ấn tượng.

  • Phân tích: Thực hiện phân tích dữ liệu toàn diện để phát hiện các pattern và đưa ra quyết định dựa trên thông tin, khai thác YOLO26 cho phân tích mô tả, dự đoán và đề xuất.
  • Tính khoảng cách: Tính khoảng cách giữa các đối tượng bằng centroid của bounding box trong YOLO26, yếu tố thiết yếu cho phân tích không gian.
  • Bản đồ nhiệt: Sử dụng bản đồ nhiệt detection để trực quan hóa cường độ dữ liệu trên một ma trận, cung cấp thông tin chi tiết rõ ràng trong các tác vụ thị giác máy tính.
  • Phân đoạn instance với theo dõi đối tượng: Triển khai phân đoạn instance và theo dõi đối tượng bằng YOLO26 để xác định ranh giới đối tượng chính xác và giám sát liên tục.
  • Inference trực tiếp với Streamlit: Khai thác sức mạnh của YOLO26 để thực hiện detection đối tượng theo thời gian thực trực tiếp trên trình duyệt web thông qua giao diện Streamlit thân thiện với người dùng.
  • Làm mờ đối tượng: Áp dụng tính năng làm mờ đối tượng bằng YOLO26 để bảo vệ quyền riêng tư khi xử lý hình ảnh và video.
  • Đếm đối tượng: Tìm hiểu cách đếm đối tượng theo thời gian thực bằng YOLO26. Nắm vững kỹ thuật đếm chính xác các đối tượng trong luồng video trực tiếp.
  • Đếm đối tượng trong các vùng: Đếm đối tượng trong các vùng cụ thể bằng YOLO26 để detection chính xác ở nhiều khu vực khác nhau.
  • Cắt đối tượng: Làm chủ việc cắt đối tượng bằng YOLO26 để trích xuất chính xác các đối tượng từ hình ảnh và video.
  • Quản lý bãi đỗ xe: Tổ chức và điều hướng luồng phương tiện trong khu vực đỗ xe bằng YOLO26, tối ưu hóa việc sử dụng không gian và trải nghiệm người dùng.
  • Quản lý hàng đợi: Triển khai các hệ thống quản lý hàng đợi hiệu quả để giảm thời gian chờ và cải thiện năng suất bằng YOLO26.
  • Hệ thống cảnh báo bảo mật: Tạo hệ thống cảnh báo bảo mật bằng YOLO26, kích hoạt cảnh báo khi phát hiện đối tượng mới. Tùy chỉnh hệ thống theo nhu cầu cụ thể của bạn.
  • Tìm kiếm tương đồng: Cho phép truy xuất hình ảnh thông minh bằng cách kết hợp embedding của OpenAI CLIP với tìm kiếm độ tương đồng cosine, hỗ trợ các truy vấn ngôn ngữ tự nhiên như "người đang cầm túi" hoặc "phương tiện đang di chuyển."
  • Ước tính tốc độ: Ước tính tốc độ đối tượng bằng YOLO26 và các kỹ thuật theo dõi đối tượng, rất quan trọng đối với các ứng dụng như phương tiện tự hành và giám sát giao thông.
  • Theo dõi đối tượng trong vùng: Tìm hiểu cách theo dõi đối tượng trong các zone cụ thể của khung hình video bằng YOLO26 để giám sát chính xác và hiệu quả.
  • Lập bản đồ đối tượng theo góc nhìn VisionEye: Phát triển các hệ thống mô phỏng khả năng tập trung của mắt người vào những đối tượng cụ thể, nâng cao khả năng nhận biết và ưu tiên các chi tiết của máy tính.
  • Giám sát bài tập: Khám phá cách giám sát bài tập bằng YOLO26. Tìm hiểu cách theo dõi và phân tích nhiều bài tập thể chất khác nhau theo thời gian thực.

Các tham số của giải pháp#

Đối sốKiểuMặc địnhMô tả
modelstrNoneĐường dẫn đến file model Ultralytics YOLO.
regionlist hoặc dictNoneCác điểm xác định vùng quan tâm, có thể là một list các tuple (x, y) hoặc một dictionary ánh xạ tên vùng với list điểm cho nhiều vùng (chỉ dành cho RegionCounter). Khi None, các solution yêu cầu vùng sẽ sử dụng vùng mặc định được định nghĩa sẵn.
show_inboolTrueCờ điều khiển việc hiển thị số lượng vào trên luồng video.
show_outboolTrueCờ điều khiển việc hiển thị số lượng ra trên luồng video.
analytics_typestr'line'Loại biểu đồ, tức là line, bar, area hoặc pie.
colormapintcv2.COLORMAP_DEEPGREENColormap dùng cho heatmap.
line_widthint2Độ dày đường kẻ cho các box, keypoint và số lượng mà solution vẽ.
verboseboolTrueBật log theo từng frame của solution, gồm kích thước input, số lượng class và tốc độ xử lý. Riêng lệnh tracking luôn ở chế độ im lặng.
json_filestrNoneĐường dẫn đến file JSON chứa toàn bộ dữ liệu tọa độ bãi đỗ xe.
up_anglefloat145.0Ngưỡng góc cho tư thế 'lên'.
kptslist[int]'[6, 8, 10]'List gồm ba chỉ số keypoint được dùng để theo dõi bài tập. Các keypoint này tương ứng với khớp hoặc bộ phận cơ thể, chẳng hạn như vai, khuỷu tay và cổ tay, cho các bài tập như chống đẩy, kéo xà, squat và tập cơ bụng.
down_angleint90Ngưỡng góc cho tư thế 'xuống'.
blur_ratiofloat0.5Điều chỉnh phần trăm cường độ làm mờ, với các giá trị trong khoảng 0.1 - 1.0.
crop_dirstr'cropped-detections'Tên thư mục dùng để lưu các detection đã crop.
recordsint5Tổng số detection cần đạt để kích hoạt email cùng hệ thống cảnh báo an ninh.
vision_pointtuple[int, int](20, 20)Điểm mà VisionEye Solution sẽ dùng để tracking đối tượng và vẽ path.
sourcestrNoneĐường dẫn đến nguồn input (video, RTSP, v.v.). Chỉ có thể sử dụng với giao diện dòng lệnh Solutions (CLI).
figsizetuple[float, float](12.8, 7.2)Kích thước figure cho các biểu đồ phân tích như heatmap hoặc graph.
fpsfloat30.0Số frame mỗi giây được dùng để tính tốc độ.
max_histint5Số điểm lịch sử tối đa cần tracking trên mỗi đối tượng để tính tốc độ/hướng.
meter_per_pixelfloat0.05Hệ số scale dùng để chuyển đổi khoảng cách pixel sang đơn vị thực tế.
max_speedint120Giới hạn tốc độ tối đa trong các lớp phủ trực quan (được dùng trong alert).
datastr'images'Đường dẫn đến thư mục ảnh được dùng cho tìm kiếm độ tương đồng.
imgszint640Kích thước ảnh input cho inference của model.
Tham số theo dõi

Solutions chuyển tiếp các đối số inference và tracking bên dưới đến model.track().

Đối sốKiểuMặc địnhMô tả
trackerstr'botsort.yaml'Chỉ định thuật toán theo dõi 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.25Thiết lập ngưỡng độ tin cậy cho các detection; 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 false positive.
ioufloat0.7Thiết lập ngưỡng Intersection over Union (IoU) để lọc các detection chồng lấn.
classeslistNoneLọc kết quả theo chỉ số class. Ví dụ, classes=[0, 2, 3] chỉ theo dõi các class được chỉ định.
devicestrNoneChỉ định thiết bị dùng cho inference (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 model.
imgszint or tuple640Kích thước ảnh inference mục tiêu: một số nguyên cho ảnh vuông hoặc một cặp (height, width). Các hình dạng được điều chỉnh theo stride của model.
max_detint300Số lượng detection tối đa được giữ lại trên mỗi frame trước khi tracking, giới hạn các đối tượng mà một solution xử lý trong các scene đông đúc.
quantizeint or strNoneĐộ chính xác inference: 16 (FP16) hoặc 32/không thiết lập (FP32) đối với các model PyTorch và TorchScript; các định dạng khác tính toán ở độ chính xác mà artifact và runtime của chúng chọn. Thay thế cờ half đã bị loại bỏ.
Tham số trực quan hóa

Bạn có thể sử dụng show_conf, show_labels và các tham số khác đã đề cập để tùy chỉnh việc trực quan hóa.

Đối sốKiểuMặc địnhMô tả
showboolFalseNếu True, hiển thị image hoặc video đã được annotate trong một cửa sổ. Hữu ích để nhận phản hồi trực quan ngay lập tức trong quá trình development hoặc testing.
show_confboolTrueHiển thị score confidence cho mỗi detection bên cạnh label. Cung cấp thông tin về mức độ chắc chắn của model đối với từng detection.
show_labelsboolTrueHiển thị label cho mỗi detection trong output trực quan. Cung cấp nhận biết tức thì về các object được phát hiện.

Sử dụng SolutionAnnotator#

Tất cả các giải pháp của Ultralytics đều sử dụng class riêng biệt SolutionAnnotator, mở rộng class chính Annotator, và có các method sau:

MethodKiểu trả vềMô tả
draw_region()NoneVẽ một vùng bằng các điểm, màu sắc và độ dày được chỉ định.
queue_counts_display()NoneHiển thị số lượng hàng đợi trong vùng được chỉ định.
display_analytics()NoneHiển thị các thống kê tổng quan về việc quản lý bãi đỗ xe.
estimate_pose_angle()floatTính góc giữa ba điểm trong pose của đối tượng.
draw_specific_kpts()np.ndarrayVẽ các keypoint cụ thể trên hình ảnh.
plot_workout_information()intVẽ hộp văn bản có nhãn trên hình ảnh.
plot_angle_and_count_and_stage()NoneTrực quan hóa góc, số bước và giai đoạn để giám sát bài tập.
plot_distance_and_line()NoneHiển thị khoảng cách giữa các centroid và nối chúng bằng một đường thẳng.
display_objects_labels()NoneGắn nhãn class đối tượng vào các bounding box.
sweep_annotator()NoneTrực quan hóa đường quét dọc và nhãn tùy chọn.
visioneye()NoneLập bản đồ và nối các centroid của đối tượng với một điểm "mắt" trực quan.
adaptive_label()NoneVẽ nhãn nền hình tròn hoặc hình chữ nhật ở giữa bounding box.

Làm việc với SolutionResults#

Ngoại trừ Similarity Search, mỗi lệnh gọi Solution đều trả về một object SolutionResults.

  • Đối với việc đếm đối tượng, kết quả bao gồm in_count, out_countclasswise_count.
SolutionResults
import cv2

from ultralytics import solutions

im0 = cv2.imread("path/to/img")

region_points = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

counter = solutions.ObjectCounter(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo26n.pt",  # model="yolo26n-obb.pt" for object counting with OBB model.
    # classes=[0, 2],  # count specific classes i.e. person and car with COCO pretrained model.
    # tracker="botsort.yaml"  # Choose trackers i.e "bytetrack.yaml"
)
results = counter(im0)
print(results.in_count)  # display in_counts
print(results.out_count)  # display out_counts
print(results.classwise_count)  # display classwise_count

Object SolutionResults có các thuộc tính sau:

Thuộc tínhKiểuMô tả
plot_imnp.ndarrayHình ảnh với các lớp phủ trực quan như số lượng, hiệu ứng làm mờ hoặc các cải tiến riêng của giải pháp.
in_countintTổng số đối tượng được detection khi đi vào vùng đã xác định trong luồng video.
out_countintTổng số đối tượng được detection khi đi ra khỏi vùng đã xác định trong luồng video.
classwise_countDict[str, int]Dictionary ghi lại số lượng đối tượng vào/ra theo từng class cho các phân tích nâng cao.
queue_countintSố đối tượng hiện đang ở trong hàng đợi hoặc khu vực chờ được xác định trước (phù hợp cho quản lý hàng đợi).
workout_countlist[int]Số lần lặp bài tập theo từng track từ AI Gym (mỗi cá nhân đang được theo dõi có một mục).
workout_anglelist[float]Góc bài tập theo từng track từ AI Gym (mỗi cá nhân đang được theo dõi có một mục).
workout_stagelist[str]Giai đoạn bài tập hiện tại theo từng track từ AI Gym (mỗi cá nhân đang được theo dõi có một mục).
pixels_distancefloatKhoảng cách tính theo pixel giữa hai đối tượng hoặc điểm, ví dụ như bounding box. (Phù hợp cho việc tính khoảng cách).
available_slotsintSố vị trí còn trống trong khu vực được giám sát (phù hợp cho quản lý bãi đỗ xe).
filled_slotsintSố vị trí đã sử dụng trong khu vực được giám sát. (phù hợp cho quản lý bãi đỗ xe)
email_sentboolCho biết email thông báo hoặc cảnh báo đã được gửi thành công hay chưa (phù hợp cho hệ thống cảnh báo bảo mật).
total_tracksintTổng số track đối tượng duy nhất được quan sát trong quá trình phân tích video.
region_countsDict[str, int]Số lượng đối tượng trong các vùng hoặc zone do người dùng xác định.
speed_dictDict[str, float]Dictionary tốc độ đối tượng được tính theo từng track, hữu ích cho phân tích vận tốc.
total_crop_objectsintTổng số hình ảnh đối tượng đã cắt được tạo bởi giải pháp ObjectCropper.
speedDict[str, float]Dictionary chứa các metric hiệu suất cho việc theo dõi và xử lý giải pháp.

Để biết thêm chi tiết, hãy tham khảo tài liệu về class SolutionResults.

Sử dụng giải pháp qua CLI#

Thông tin lệnh

Hầu hết các giải pháp có thể được sử dụng trực tiếp thông qua giao diện dòng lệnh.

Cú pháp

yolo SOLUTIONS SOLUTION_NAME ARGS
  • SOLUTIONS là keyword bắt buộc.
  • SOLUTION_NAME là một trong các giá trị sau: ['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye', 'region', 'security', 'parking'].
  • ARGS (tùy chọn) là các cặp arg=value tùy chỉnh, chẳng hạn như show_in=True, dùng để ghi đè các thiết lập mặc định.
yolo solutions count show=True # for object counting

yolo solutions count source="path/to/video.mp4" # specify video file path

Đóng góp cho các giải pháp của chúng tôi#

Chúng tôi hoan nghênh những đóng góp từ cộng đồng! Nếu bạn đã thành thạo một khía cạnh cụ thể của Ultralytics YOLO nhưng khía cạnh đó chưa được đề cập trong các giải pháp của chúng tôi, chúng tôi khuyến khích bạn chia sẻ chuyên môn của mình. Viết một hướng dẫn là cách tuyệt vời để đóng góp cho cộng đồng và giúp chúng tôi làm cho tài liệu toàn diện, thân thiện với người dùng hơn.

Để bắt đầu, vui lòng đọc Hướng dẫn đóng góp của chúng tôi để biết hướng dẫn về cách mở một Pull Request (PR) 🛠️. Chúng tôi mong đợi những đóng góp của bạn!

Hãy cùng nhau làm cho hệ sinh thái Ultralytics YOLO mạnh mẽ và linh hoạt hơn 🙏!

FAQ#

  • Ultralytics YOLO26 có thể được sử dụng để đếm đối tượng theo thời gian thực bằng cách khai thác các khả năng detection đối tượng tiên tiến. Bạn có thể làm theo hướng dẫn chi tiết về Đếm đối tượng của chúng tôi để thiết lập YOLO26 cho việc phân tích luồng video trực tiếp. Chỉ cần cài đặt YOLO26, load model và xử lý các frame video để đếm đối tượng một cách linh hoạt.

  • Ultralytics YOLO26 nâng cao các hệ thống bảo mật bằng cách cung cấp detection đối tượng theo thời gian thực và cơ chế cảnh báo. Bằng cách sử dụng YOLO26, bạn có thể tạo một hệ thống cảnh báo bảo mật, kích hoạt cảnh báo khi phát hiện đối tượng mới trong khu vực giám sát. Tìm hiểu cách thiết lập Hệ thống cảnh báo bảo mật với YOLO26 để giám sát bảo mật mạnh mẽ.

  • Ultralytics YOLO26 có thể cải thiện đáng kể các hệ thống quản lý hàng đợi bằng cách đếm và theo dõi chính xác người trong hàng, qua đó giúp giảm thời gian chờ và tối ưu hóa hiệu quả dịch vụ. Làm theo hướng dẫn chi tiết về Quản lý hàng đợi của chúng tôi để tìm hiểu cách triển khai YOLO26 cho việc giám sát và phân tích hàng đợi hiệu quả.

  • Có, Ultralytics YOLO26 có thể được sử dụng hiệu quả để giám sát bài tập bằng cách theo dõi và phân tích các bài tập thể chất theo thời gian thực. Điều này cho phép đánh giá chính xác tư thế và hiệu suất tập luyện. Khám phá hướng dẫn về Giám sát bài tập của chúng tôi để tìm hiểu cách thiết lập hệ thống giám sát bài tập được hỗ trợ bởi AI bằng YOLO26.

  • Ultralytics YOLO26 có thể tạo bản đồ nhiệt để trực quan hóa cường độ dữ liệu trên một khu vực nhất định, làm nổi bật những vùng có mức độ hoạt động hoặc mức độ quan tâm cao. Tính năng này đặc biệt hữu ích để tìm hiểu các pattern và xu hướng trong nhiều tác vụ thị giác máy tính. Tìm hiểu thêm về cách tạo và sử dụng Bản đồ nhiệt với YOLO26 để phân tích và trực quan hóa dữ liệu toàn diện.

Bình luận