Các Giải pháp của Ultralytics: Khai thác sức mạnh YOLO26 để Giải quyết các Vấn đề Thực tiễn

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 an ninh, giúp nâng cao hiệu quả và độ chính xác trong nhiều ngành công nghiệp khác nhau. Khám phá sức mạnh của YOLO26 cho các triển khai thực tế và đầy ấn tượng.

Hình thu nhỏ Giải pháp Ultralytics



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

Các Giải pháp

Dưới đây là danh sách các giải pháp Ultralytics được tuyển chọn mà bạn có thể sử dụng để tạo ra các dự án thị giác máy tính tuyệt vời.

  • Phân tích dữ liệu: Thực hiện phân tích dữ liệu toàn diện để khám phá các mô hình và đưa ra quyết định sáng suốt, tận dụng YOLO26 cho các phân tích mô tả, dự báo và đề xuất.
  • Tính toán Khoảng cách: Tính toán khoảng cách giữa các đối tượng sử dụng tâm của hộp bao trong YOLO26, rất cần thiết cho phân tích không gian.
  • Bản đồ nhiệt: Sử dụng bản đồ nhiệt phát hiện để 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 thực thể kết hợp Theo dõi đối tượng: Triển khai phân đoạn thực thể và theo dõi đối tượng với YOLO26 để đạt được ranh giới đối tượng chính xác và giám sát liên tục.
  • Suy luận Trực tiếp với Streamlit: Tận dụng sức mạnh của YOLO26 cho phát hiện đối tượng thời gian thực trực tiếp qua trình duyệt web của bạn với giao diện Streamlit thân thiện với người dùng.
  • Làm mờ đối tượng: Áp dụng làm mờ đối tượng sử dụng YOLO26 để bảo vệ quyền riêng tư trong xử lý hình ảnh và video.
  • Đếm đối tượng: Tìm hiểu cách thực hiện đếm đối tượng thời gian thực với YOLO26. Có được chuyên môn để đế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ể sử dụng YOLO26 để phát hiện chính xác trong các khu vực đa dạng.
  • Cắt đối tượng: Làm chủ việc cắt đối tượng với YOLO26 để trích xuất đối tượng chính xác từ hình ảnh và video.
  • Quản lý bãi đỗ xe: Tổ chức và điều hướng dòng xe cộ trong khu vực đỗ xe với 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 thiểu thời gian chờ đợi và cải thiện năng suất bằng cách sử dụng YOLO26.
  • Hệ thống báo động an ninh: Tạo hệ thống báo động an ninh với 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 để phù hợp với 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 các embedding của OpenAI CLIP với Meta FAISS, cho phép các truy vấn ngôn ngữ tự nhiên như "người cầm túi xách" hoặc "phương tiện đang chuyển động."
  • Ước tính tốc độ: Ước tính tốc độ đối tượng sử dụng YOLO26 và các kỹ thuật theo dõi đối tượng, rất quan trọng cho các ứng dụng như xe tự lái và giám sát giao thông.
  • Theo dõi đối tượng trong khu vực: Tìm hiểu cách theo dõi đối tượng trong các khu vực cụ thể của khung hình video sử dụng YOLO26 để giám sát chính xác và hiệu quả.
  • Ánh xạ đối tượng VisionEye View: Phát triển các hệ thống bắt chước sự tập trung của mắt người vào các đối tượng cụ thể, tăng cường khả năng phân biệt và ưu tiên 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 các bài tập sử dụng YOLO26. Tìm hiểu cách theo dõi và phân tích các bài tập thể dục khác nhau trong thời gian thực.

Các đối số của Giải pháp

Đối sốLoạiMặc địnhMô tả
modelstrNoneĐường dẫn đến một file model Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Danh sách các điểm xác định vùng đếm.
show_inboolTrueCờ để kiểm soát việc có hiển thị số lượng đối tượng đi vào trên luồng video hay không.
show_outboolTrueCờ để kiểm soát việc có hiển thị số lượng đối tượng đi ra trên luồng video hay không.
analytics_typestr'line'Loại biểu đồ, ví dụ: line, bar, area, hoặc pie.
colormapintcv2.COLORMAP_DEEPGREENColormap được sử dụng cho bản đồ nhiệt (heatmap).
json_filestrNoneĐường dẫn đến file JSON chứa tất cả dữ liệu tọa độ bãi đỗ xe.
up_anglefloat145.0Ngưỡng góc cho tư thế 'lên'.
kptslist[int]'[6, 8, 10]'Danh sách ba chỉ số keypoint được sử dụng để theo dõi quá trình tập luyện. Những keypoint này tương ứng với các khớp hoặc bộ phận cơ thể, chẳng hạn như vai, khuỷu tay và cổ tay, dùng cho các bài tập như hít đất, hít xà, squat và các bài tập 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 phạm vi 0.1 - 1.0.
crop_dirstr'cropped-detections'Tên thư mục để lưu trữ các kết quả phát hiện đã cắt.
recordsint5Tổng số lượng phát hiện để kích hoạt email thông báo từ hệ thống cảnh báo an ninh.
vision_pointtuple[int, int](20, 20)Điểm mà tại đó thị giác máy tính sẽ theo dõi các đối tượng và vẽ đường đi bằng cách sử dụng VisionEye Solution.
sourcestrNoneĐường dẫn đến nguồn đầu vào (video, RTSP, v.v.). Chỉ có thể sử dụng với giao diện dòng lệnh (CLI) của Solutions.
figsizetuple[int, int](12.8, 7.2)Kích thước hình ảnh cho các biểu đồ phân tích như bản đồ nhiệt hoặc đồ thị.
fpsfloat30.0Số khung hình trên giây được sử dụng để tính toán tốc độ.
max_histint5Số điểm lịch sử tối đa cần theo dõi trên mỗi đối tượng để tính toán tốc độ/hướng.
meter_per_pixelfloat0.05Hệ số tỷ lệ được sử 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ủ hình ảnh (được sử dụng trong cảnh báo).
datastr'images'Đường dẫn đến thư mục hình ảnh được sử dụng để tìm kiếm sự tương đồng.
Các đối số theo dõi

Các giải pháp cũng hỗ trợ một số đối số từ track, bao gồm các tham số như conf, line_width, tracker, model, show, verboseclasses.

Đối sốLoạiMặc địnhMô tả
trackerstr'botsort.yaml'Chỉ định thuật toán theo dõi cần sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml.
conffloat0.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ả.
ioufloat0.7Đặt 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 được chỉ định.
verboseboolTrueKiể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.
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 để chạy model.
Các đối số trực quan hóa

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

Đối sốLoạiMặc địnhMô tả
showboolFalseNế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_widthint or NoneNoneChỉ đị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_confboolTrueHiể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_labelsboolTrueHiể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.

Sử dụng SolutionAnnotator

Tất cả các Giải pháp Ultralytics sử dụng lớp riêng biệt SolutionAnnotator, mở rộng từ lớp Annotator chính, và có các phương thức sau:

Phương thứcKiểu trả vềMô tả
draw_region()NoneVẽ một vùng sử dụ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ị số liệu thống kê tổng thể cho quản lý bãi đỗ xe.
estimate_pose_angle()floatTính toán góc giữa ba điểm trong một tư thế đối tượng.
draw_specific_points()NoneVẽ các điểm chính cụ thể trên hình ảnh.
plot_workout_information()NoneVẽ một 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 tâm và kết nối chúng bằng một đường thẳng.
display_objects_labels()NoneChú thích các hộp bao với nhãn lớp đối tượng.
sweep_annotator()NoneTrực quan hóa một đường quét dọc và nhãn tùy chọn.
visioneye()NoneÁnh xạ và kết nối các tâm đối tượng với một điểm "mắt" trực quan.
adaptive_label()NoneVẽ một nhãn hình nền tròn hoặc chữ nhật ở trung tâm của một hộp bao.

Làm việc với SolutionResults

Except Similarity Search, each Solution call returns a list of SolutionResults objects.

  • Đối với đếm đối tượng, các 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

Đối tượng SolutionResults có các thuộc tính sau:

Thuộc tínhLoạiMô 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 dành riêng cho giải pháp.
in_countintTổng số đối tượng được phát hiện đi vào vùng xác định trong luồng video.
out_countintTổng số đối tượng được phát hiện đi ra khỏi vùng xác định trong luồng video.
classwise_countDict[str, int]Từ điển ghi lại số lượng đối tượng vào/ra theo lớp để phân tích nâng cao.
queue_countintSố lượng đố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 để quản lý hàng đợi).
workout_countintTổng số lần lặp lại bài tập hoàn thành trong quá trình theo dõi tập luyện.
workout_anglefloatGóc khớp hoặc góc tư thế được tính toán trong quá trình tập luyện để đánh giá kỹ thuật.
workout_stagestrGiai đoạn tập luyện hiện tại hoặc pha chuyển động (ví dụ: 'lên', 'xuống').
pixels_distancefloatKhoảng cách dựa trên pixel giữa hai đối tượng hoặc điểm, ví dụ: hộp bao. (Phù hợp để tính toán khoảng cách).
available_slotsintSố lượng chỗ trống trong khu vực được giám sát (phù hợp để quản lý bãi đỗ xe).
filled_slotsintSố lượng chỗ đã được lấp đầy trong khu vực được giám sát. (Phù hợp để quản lý bãi đỗ xe)
email_sentboolCho biết liệu 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 báo động an ninh).
total_tracksintTổng số quỹ đạo đố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 khu vực do người dùng xác định.
speed_dictDict[str, float]Từ điển theo dõi tốc độ đối tượng được tính toán, hữu ích cho phân tích vận tốc.
total_crop_objectsintTổng số hình ảnh đối tượng được cắt tạo ra bởi giải pháp ObjectCropper.
speedDict[str, float]Từ điển chứa các chỉ số 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 lớp SolutionResults.

Sử dụng các giải pháp thông 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, bao gồm:

Count, Crop, Blur, Workout, Heatmap, Isegment, Visioneye, Speed, Queue, Analytics, Inference, Trackzone

Cú pháp

yolo SOLUTIONS SOLUTION_NAME ARGS
  • SOLUTIONS là một từ khóa bắt buộc.
  • SOLUTION_NAME là một trong các giá trị: ['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye'].
  • ARGS (tùy chọn) là các cặp arg=value tùy chỉnh, ví dụ như show_in=True, để ghi đè lên các cài đặt 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 vào 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 đã nắm vững một khía cạnh cụ thể của Ultralytics YOLO mà 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ệc viết một hướng dẫn là một cách tuyệt vời để đóng góp lại cho cộng đồng và giúp chúng tôi làm cho tài liệu của mình trở nên toàn diện và 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 các quy tắc về cách mở một Pull Request (PR) 🛠️. Chúng tôi rất mong chờ những đóng góp của bạn!

Hãy cùng hợp tác để làm cho hệ sinh thái Ultralytics YOLO trở nên mạnh mẽ và linh hoạt hơn 🙏!

Câu hỏi thường gặp (FAQ)

Làm thế nào tôi có thể sử dụng Ultralytics YOLO để đếm đối tượng trong thời gian thực?

Ultralytics YOLO26 có thể được sử dụng để đếm đối tượng theo thời gian thực bằng cách tận dụng các khả năng phát hiện đối tượng tiên tiến. Bạn có thể làm theo hướng dẫn chi tiết của chúng tôi về Đếm đối tượng để 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, tải model của bạn và xử lý các khung hình video để đếm đối tượng một cách động.

Lợi ích của việc sử dụng Ultralytics YOLO cho các hệ thống an ninh là gì?

Ultralytics YOLO26 cải thiện các hệ thống an ninh bằng cách cung cấp tính năng phát hiện đối tượng và cơ chế cảnh báo theo thời gian thực. Bằng cách sử dụng YOLO26, bạn có thể tạo một hệ thống báo động an ninh 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 báo động an ninh với YOLO26 để giám sát an ninh hiệu quả.

Ultralytics YOLO có thể cải thiện các hệ thống quản lý hàng đợi như thế nào?

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 số người trong hàng, từ đó giúp giảm thời gian chờ đợi và tối ưu hóa hiệu suất dịch vụ. Hãy làm theo hướng dẫn chi tiết của chúng tôi về Quản lý hàng đợi để tìm hiểu cách triển khai YOLO26 nhằm giám sát và phân tích hàng đợi hiệu quả.

Ultralytics YOLO có thể được sử dụng để theo dõi quá trình tập luyện không?

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

Ultralytics YOLO giúp ích như thế nào trong việc tạo bản đồ nhiệt (heatmap) cho trực quan hóa dữ liệu?

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 các vùng hoạt động cao hoặc vùng quan tâm. Tính năng này đặc biệt hữu ích trong việc hiểu các mô hình và xu hướng trong các tác vụ thị giác máy tính khác nhau. 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