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.
![]()
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ại | Mặc định | Mô tả |
|---|---|---|---|
model | str | None | Đường dẫn đến một file model Ultralytics YOLO. |
region | list | '[(20, 400), (1260, 400)]' | Danh sách các điểm xác định vùng đếm. |
show_in | bool | True | Cờ để 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_out | bool | True | Cờ để 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_type | str | 'line' | Loại biểu đồ, ví dụ: line, bar, area, hoặc pie. |
colormap | int | cv2.COLORMAP_DEEPGREEN | Colormap được sử dụng cho bản đồ nhiệt (heatmap). |
json_file | str | None | Đường dẫn đến file JSON chứa tất cả dữ liệu tọa độ bãi đỗ xe. |
up_angle | float | 145.0 | Ngưỡng góc cho tư thế 'lên'. |
kpts | list[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_angle | int | 90 | Ngưỡng góc cho tư thế 'xuống'. |
blur_ratio | float | 0.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_dir | str | 'cropped-detections' | Tên thư mục để lưu trữ các kết quả phát hiện đã cắt. |
records | int | 5 | Tổ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_point | tuple[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. |
source | str | None | Đườ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. |
figsize | tuple[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ị. |
fps | float | 30.0 | Số khung hình trên giây được sử dụng để tính toán tốc độ. |
max_hist | int | 5 | Số đ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_pixel | float | 0.05 | Hệ số tỷ lệ được sử dụng để chuyển đổi khoảng cách pixel sang đơn vị thực tế. |
max_speed | int | 120 | Giớ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). |
data | str | '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 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, verbose và classes.
| Đối số | Loại | Mặc định | Mô tả |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Chỉ định thuật toán theo dõi cần sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml. |
conf | float | 0.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ả. |
iou | float | 0.7 | Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện chồ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ị 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. |
device | str | None | Chỉ đị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. |
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ại | Mặc định | Mô tả |
|---|---|---|---|
show | bool | False | Nế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_width | int or None | None | Chỉ đị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_conf | bool | True | Hiể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_labels | bool | True | Hiể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ức | Kiểu trả về | Mô tả |
|---|---|---|
draw_region() | None | Vẽ một vùng sử dụng các điểm, màu sắc và độ dày được chỉ định. |
queue_counts_display() | None | Hiển thị số lượng hàng đợi trong vùng được chỉ định. |
display_analytics() | None | Hiển thị số liệu thống kê tổng thể cho quản lý bãi đỗ xe. |
estimate_pose_angle() | float | Tính toán góc giữa ba điểm trong một tư thế đối tượng. |
draw_specific_points() | None | Vẽ các điểm chính cụ thể trên hình ảnh. |
plot_workout_information() | None | Vẽ một hộp văn bản có nhãn trên hình ảnh. |
plot_angle_and_count_and_stage() | None | Trự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() | None | Hiể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() | None | Chú thích các hộp bao với nhãn lớp đối tượng. |
sweep_annotator() | None | Trự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() | None | Vẽ 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_countvàclasswise_count.
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ính | Loại | Mô tả |
|---|---|---|
plot_im | np.ndarray | Hì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_count | int | Tổng số đối tượng được phát hiện đi vào vùng xác định trong luồng video. |
out_count | int | Tổng số đối tượng được phát hiện đi ra khỏi vùng xác định trong luồng video. |
classwise_count | Dict[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_count | int | Số 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_count | int | Tổ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_angle | float | Gó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_stage | str | Giai đoạn tập luyện hiện tại hoặc pha chuyển động (ví dụ: 'lên', 'xuống'). |
pixels_distance | float | Khoả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_slots | int | Số lượng chỗ trống trong khu vực được giám sát (phù hợp để quản lý bãi đỗ xe). |
filled_slots | int | Số 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_sent | bool | Cho 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_tracks | int | Tổng số quỹ đạo đối tượng duy nhất được quan sát trong quá trình phân tích video. |
region_counts | Dict[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_dict | Dict[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_objects | int | Tổng số hình ảnh đối tượng được cắt tạo ra bởi giải pháp ObjectCropper. |
speed | Dict[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
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=valuetù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.