YOLO Vision 2026:

Các giải pháp Ultralytics: Tận dụng YOLO26 để Giải quyết các Vấn đề Thực tiễn#

Ultralytics Solutions cung cấp các ứng dụng tiên tiến của mô hình 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à accuracy 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 ứng dụng thiết thực và có tác động lớn.

Ultralytics Solutions Thumbnail



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ác giải pháp Ultralytics được tuyển chọn có thể được sử dụng để tạo ra các dự án computer vision tuyệt vời.

  • Analytics: Thực hiện phân tích dữ liệu toàn diện để khám phá các mẫu 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ự đoán và quy định.
  • Distance Calculation: Tính toán khoảng cách giữa các đối tượng bằng cách sử dụng tâm bounding box trong YOLO26, rất quan trọng đối với phân tích không gian.
  • Heatmaps: Tận 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ụ computer vision.
  • Instance Segmentation with Object Tracking: Triển khai instance segmentation và theo dõi đối tượng bằng YOLO26 để đạt được ranh giới đối tượng chính xác và giám sát liên tục.
  • Live Inference with Streamlit: Tận dụng sức mạnh của YOLO26 để object detection 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.
  • Object Blurring: Áp dụng tính năng làm mờ đối tượng bằng cách sử dụng YOLO26 để bảo vệ quyền riêng tư trong quá trình xử lý hình ảnh và video.
  • Object Counting: 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.
  • Object Counting in Regions: Đếm các đối tượng trong các vùng cụ thể bằng cách sử dụng YOLO26 để phát hiện chính xác trong các khu vực khác nhau.
  • Object Cropping: Làm chủ việc cắt xén đố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.
  • Parking Management: Tổ chức và điều hướng luồng phương tiện trong các 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.
  • Queue Management: 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.
  • Security Alarm System: Tạo hệ thống báo động bảo mật với YOLO26 để kích hoạt cảnh báo khi phát hiện các đố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.
  • Similarity Search: Cho phép truy xuất hình ảnh thông minh bằng cách kết hợp các nhúng OpenAI CLIP với tìm kiếm độ tương đồng cô-sin, cho phép thực hiện các truy vấn bằng 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".
  • Speed Estimation: Ước tính tốc độ đối tượng bằng cách 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ự hành và giám sát giao thông.
  • Track Objects in Zone: Tìm hiểu cách theo dõi các đối tượng trong các vùng cụ thể của khung hình video bằng cách sử dụng YOLO26 để giám sát chính xác và hiệu quả.
  • VisionEye View Objects Mapping: 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ể, nâng cao khả năng phân biệt và ưu tiên chi tiết của máy tính.
  • Workouts Monitoring: Khám phá cách giám sát các bài tập thể dục bằng YOLO26. Tìm hiểu cách theo dõi và phân tích các quy trình 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 tệp model Ultralytics YOLO.
regionlist hoặc dictNoneCác điểm xác định vùng quan tâm (ROI), có thể là một danh sách các tuple (x, y) hoặc một từ điển ánh xạ tên vùng tới danh sách đ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ề sử dụng giá trị mặc định được định nghĩa sẵn.
show_inboolTrueCờ để kiểm soát việc hiển thị số lượng đếm vào trên luồng video.
show_outboolTrueCờ để kiểm soát việc hiển thị số lượng đếm ra trên luồng video.
analytics_typestr'line'Loại đồ thị, tức là line, bar, area hoặc pie.
colormapintcv2.COLORMAP_DEEPGREENBản đồ màu (colormap) để sử dụng cho bản đồ nhiệt.
line_widthint2Độ dày đường viền cho các khung, keypoints và số lượng mà giải pháp vẽ ra.
verboseboolTrueBật nhật ký theo từng khung hình của giải pháp về hình dạng đầu vào, số lượng lớp và tốc độ xử lý. Bản thân lệnh gọi tracking luôn ở chế độ im lặng.
json_filestrNoneĐường dẫn đến tệp 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ố điểm then chốt được sử dụng để giám sát tập luyện. Các điểm then chốt này tương ứng với các khớp hoặc bộ phận cơ thể, như vai, khuỷu tay và cổ tay, cho các bài tập như hít đất, hít xà, squat và tập bụng.
down_angleint90Ngưỡng góc cho tư thế 'xuống'.
blur_ratiofloat0.5Điều chỉnh tỷ lệ phần trăm cường độ làm mờ, với các giá trị nằm trong khoảng 0.1 - 1.0.
crop_dirstr'cropped-detections'Tên thư mục để lưu trữ các phát hiện đã cắt.
recordsint5Tổng số lượng phát hiện để kích hoạt email với hệ thống báo động an ninh.
vision_pointtuple[int, int](20, 20)Điểm mà tại đó thị giác sẽ theo dõi các đối tượng và vẽ đường đi sử dụng Giải pháp VisionEye.
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[float, float](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 cho các tính toán tốc độ.
max_histint5Số điểm lịch sử tối đa để theo dõi cho mỗi đối tượng cho các 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ủ trực quan (được sử dụng trong các cảnh báo).
datastr'images'Đường dẫn đến thư mục hình ảnh được sử dụng để tìm kiếm tương đồng.
imgszint640Kích thước hình ảnh đầu vào cho suy luận model.
Các đối số theo dõi (Track args)

Solutions chuyển tiếp một số đối số của chúng tới track, cụ thể là tracker, conf, iou, classesdevice.

Đối sốLoạiMặ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 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.7Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện trùng lặp.
classeslistNoneLọc kết quả theo chỉ mục lớp. Ví dụ: classes=[0, 2, 3] chỉ theo dõi các lớp được chỉ định.
devicestrNoneChỉ định thiết bị để 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, GPU cụ thể hoặc các thiết bị tính toán khác để thực thi mô hình.
Các đối số trực quan hóa (Visualization args)

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

Đối sốLoạiMặc địnhMô tả
showboolFalseNếu là 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 để nhận 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ử.
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.

Cách sử dụng SolutionAnnotator#

Tất cả Ultralytics Solutions đều sử dụng lớp riêng biệt SolutionAnnotator, mở rộng lớp chính Annotator, 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 đã chỉ định.
display_analytics()NoneHiển thị số liệu thống kê tổng thể cho việc quản lý bãi đỗ xe.
estimate_pose_angle()floatTính toán góc giữa ba điểm trong tư thế của đối tượng.
draw_specific_kpts()np.ndarrayVẽ các điểm mấu chốt cụ thể trên hình ảnh.
plot_workout_information()intVẽ 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 để theo dõi quá trình tập luyện.
plot_distance_and_line()NoneHiển thị khoảng cách giữa các trọng tâm và kết nối chúng bằng một đường thẳng.
display_objects_labels()NoneChú thích các bounding box với nhãn lớp đối tượng.
sweep_annotator()NoneHiển thị trực quan đường quét dọc và nhãn tùy chọn.
visioneye()NoneÁnh xạ và kết nối các trọng tâm đố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 ở tâm của bounding box.

Làm việc với SolutionResults#

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

  • Đối với việc đếm đối tượng, kết quả bao gồm in_count, out_count, và classwise_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 đang đi vào vùng xác định trong luồng video.
out_countintTổng số đối tượng được phát hiện đang đ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 lớp để phục vụ phân tích nâng cao.
queue_countintSố lượng đối tượng hiện đang nằm trong hàng đợi hoặc khu vực chờ đã xác định trước (phù hợp cho quản lý hàng đợi).
workout_countlist[int]Số lần lặp lại bài tập cho mỗi lượt theo dõi từ AI Gym (một mục cho mỗi cá nhân hiện đang được theo dõi).
workout_anglelist[float]Góc tập luyện cho mỗi lượt theo dõi từ AI Gym (một mục cho mỗi cá nhân hiện đang được theo dõi).
workout_stagelist[str]Giai đoạn tập luyện hiện tại cho mỗi lượt theo dõi từ AI Gym (một mục cho mỗi cá nhân hiện đang được theo dõi).
pixels_distancefloatKhoảng cách dựa trên pixel giữa hai đối tượng hoặc điểm, ví dụ: bounding box. (Phù hợp để tính toán khoảng cách).
available_slotsintSố lượng vị trí trống trong một khu vực được giám sát (phù hợp cho quản lý bãi đỗ xe).
filled_slotsintSố lượng vị trí đã có xe trong một khu vực được giám sát. (phù hợp cho 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 cảnh báo an ninh).
total_tracksintTổng số lượt theo dõi đố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]Dictionary theo từng lượt theo dõi chứa 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ắt được tạo bởi giải pháp ObjectCropper.
speedDict[str, float]Dictionary 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 về lớp SolutionResults.

Sử dụng Solutions qua CLI#

Thông tin lệnh

Hầu hết các Solutions đều 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à 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', '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, để ghi đè 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 cho Solutions của chúng tôi#

Chúng tôi hoan nghênh sự đó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 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ế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 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 nguyên tắc về cách mở Pull Request (PR) 🛠️. Chúng tôi rất mong nhận được đó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#

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

  • Ultralytics YOLO26 nâng cao các hệ thống bảo mật bằng cách cung cấp tính năng phát hiện đối tượng thời gian thực và các cơ chế cảnh báo. Bằng cách áp dụng YOLO26, bạn có thể tạo một hệ thống báo động bảo mật kích hoạt cảnh báo khi các đối tượng mới được phát hiện trong khu vực giám sát. Tìm hiểu cách thiết lập Security Alarm System 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 mọi người trong hàng đợi, từ đó giúp giảm thời gian chờ đợi và tối ưu hóa hiệu quả dịch vụ. Hãy làm theo hướng dẫn chi tiết của chúng tôi về Queue Management để 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ả.

  • Có, Ultralytics YOLO26 có thể được sử dụng hiệu quả để giám sát các bài tập thể dục bằng cách theo dõi và phân tích các quy trình tập luyện trong 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 của chúng tôi về Workouts Monitoring để tìm hiểu cách thiết lập hệ thống giám sát tập luyện hỗ trợ bởi AI bằng cách sử dụ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 cho trước, làm nổi bật các vùng có hoạt động cao hoặc đáng chú ý. Tính năng này rất hữu ích trong việc hiểu các mẫu và xu hướng trong nhiều tác vụ computer vision khác nhau. Tìm hiểu thêm về việc tạo và sử dụng Heatmaps với YOLO26 để phân tích và trực quan hóa dữ liệu toàn diện.

Bình luận