Giải pháp Ultralytics: Ứng dụng YOLO11 để giải quyết các vấn đề thực tế
Các Giải pháp Ultralytics cung cấp các ứng dụng tiên tiến của mô hình YOLO, cung cấp các giải pháp thực tế như đếm đối tượng, làm mờ và hệ thống an ninh, nâng cao hiệu quả và độ chính xác trong các ngành công nghiệp khác nhau. Khám phá sức mạnh của YOLO11 cho các triển khai thực tế, có tác động.
Xem: Cách Chạy Các Giải Pháp Ultralytics từ Dòng Lệnh (CLI) | Ultralytics YOLO11 🚀
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 thị giác máy tính tuyệt vời.
- Đếm đối tượng (Object Counting): Tìm hiểu cách thực hiện đếm đối tượng theo thời gian thực với YOLO11. Có được kiến thức chuyên môn để đếm chính xác các đối tượng trong luồng video trực tiếp.
- Cắt đối tượng (Object Cropping): Nắm vững việc cắt đối tượng bằng YOLO11 để trích xuất chính xác các đối tượng từ hình ảnh và video.
- Làm mờ đối tượng (Object Blurring): Áp dụng làm mờ đối tượng bằng YOLO11 để bảo vệ quyền riêng tư trong xử lý hình ảnh và video.
- Workouts Monitoring: Khám phá cách theo dõi quá trình tập luyện bằng YOLO11. Tìm hiểu cách theo dõi và phân tích các thói quen tập thể dục khác nhau trong thời gian thực.
- Đếm đối tượng trong vùng (Objects Counting in Regions): Đếm các đối tượng trong các vùng cụ thể bằng YOLO11 để phát hiện chính xác ở các khu vực khác nhau.
- Hệ thống báo động an ninh: Tạo một hệ thống báo động an ninh với YOLO11, hệ thống này sẽ 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.
- Bản đồ nhiệt (Heatmaps): 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ể hiện với theo dõi đối tượng: Triển khai phân đoạn thể hiện và theo dõi đối tượng với YOLO11 để đạt được ranh giới đối tượng chính xác và giám sát liên tục.
- VisionEye View Objects Mapping: 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 các đối tượng cụ thể, nâng cao khả năng nhận biết và ưu tiên chi tiết của máy tính.
- Ước tính tốc độ: Ước tính tốc độ đối tượng bằng cách sử dụng YOLO11 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ư xe tự hành và giám sát giao thông.
- Tính toán khoảng cách: Tính toán khoảng cách giữa các đối tượng bằng cách sử dụng tâm của bounding box trong YOLO11, điều này rất cần thiết cho phân tích không gian.
- 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 YOLO11.
- Quản lý bãi đỗ xe (Parking Management): Tổ chức và điều hướng luồng xe trong khu vực đỗ xe bằng YOLO11, tối ưu hóa việc sử dụng không gian và trải nghiệm người dùng.
- Phân tích: Tiến hành 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 YOLO11 để phân tích mô tả, dự đoán và chỉ định.
- Suy luận trực tiếp với Streamlit: Tận dụng sức mạnh của YOLO11 để phát hiện đối tượng theo thời gian thực trực tiếp thông 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.
- Theo dõi đối tượng trong vùng: 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 YOLO11 để giám sát chính xác và hiệu quả.
- Tìm kiếm tương tự 🚀 MỚI: Kích hoạt truy xuất hình ảnh thông minh bằng cách kết hợp các embedding OpenAI CLIP với Meta FAISS, cho phép các truy vấn bằng ngôn ngữ tự nhiên như "người đang cầm túi" hoặc "các phương tiện đang di chuyển".
Đối số Giải pháp
Đối số | Loại | Mặc định | Mô tả |
---|---|---|---|
model |
str |
None |
Đường dẫn đến Tệp Mô hình 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 trong 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 đếm được 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_JET |
Bảng màu để sử dụng cho bản đồ nhiệt. |
json_file |
str |
None |
Đường dẫn đến tệp JSON chứa tất cả dữ liệu tọa độ đỗ xe. |
up_angle |
float |
145.0 |
Ngưỡng góc cho tư thế 'lên'. |
kpts |
list[int, int, int] |
'[6, 8, 10]' |
Danh sách các điểm chính được sử dụng để theo dõi quá trình tập luyện. Các điểm chính 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, cho các bài tập như chống đẩy, kéo xà, squat, tập cơ bụng. |
down_angle |
float |
90.0 |
Ngưỡng góc cho tư thế 'xuống'. |
blur_ratio |
float |
0.5 |
Điều chỉnh tỷ lệ phần trăm cường độ 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 phát hiện đã cắt. |
records |
int |
5 |
Tổng số lần phát hiện để kích hoạt email với hệ thống báo động an ninh. |
vision_point |
tuple[int, int] |
(20, 20) |
Điểm mà tầm nhìn sẽ theo dõi các đối tượng và vẽ đường dẫn bằng Giải pháp VisionEye. |
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 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 để 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 thành đơn vị thế giới thực. |
max_speed |
int |
120 |
Giới hạn tốc độ tối đa trong lớp phủ trực quan (đượ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 cho tìm kiếm tương tự. |
Theo dõi các đối số
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 để sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml . |
conf |
float |
0.3 |
Đặt ngưỡng tin cậy cho các phát hiện; 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 kết quả dương tính giả. |
iou |
float |
0.5 |
Đặt ngưỡng Intersection over Union (IoU) để lọc các phát hiện trù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ị kết quả theo dõi, cung cấp đầu ra trực quan về các đối tượng được theo dõi. |
device |
str |
None |
Chỉ định thiết bị cho 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, một GPU cụ thể hoặc các thiết bị tính toán khác để thực thi mô hình. |
Visualization args
Bạn có thể sử dụng show_conf
, show_labels
, và các tham số được đề cập khác để tùy chỉnh khả năng trình diễn.
Đối số | Loại | Mặc định | Mô tả |
---|---|---|---|
show |
bool |
False |
Nếu True , hiển thị hình ảnh hoặc video đã 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 |
None or int |
None |
Chỉ định độ rộng đường của hộp giới hạn. Nếu None , độ rộng đường kẻ được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp tùy chỉnh trực quan để rõ ràng hơn. |
show_conf |
bool |
True |
Hiển thị điểm tin cậy cho mỗi lần phát hiện cùng với nhãn. Cung cấp cái nhìn sâu sắc về độ chắc chắn của mô hình cho mỗi lần phát hiện. |
show_labels |
bool |
True |
Hiển thị nhãn cho mỗi lần phát hiện trong đầu ra trực quan. Cung cấp sự 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 đều sử dụng class riêng biệt SolutionAnnotator
, mở rộng phần chính Annotator
class và có các phương thức sau:
Phương thức | Loại trả về | Mô tả |
---|---|---|
draw_region() |
None |
Vẽ một vùng bằng cách 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 khu vực được chỉ định. |
display_analytics() |
None |
Hiển thị số liệu thống kê tổng thể để quản lý bãi đậu xe. |
estimate_pose_angle() |
float |
Tính toán góc giữa ba điểm trong tư thế của một đố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 để theo dõi quá trình tập luyện. |
plot_distance_and_line() |
None |
Hiển thị khoảng cách giữa các centroid 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 giới hạn bằng nhãn lớp đối tượng. |
sweep_annotator() |
None |
Visualize một đường quét dọc và nhãn tùy chọn. |
visioneye() |
None |
Ánh xạ và kết nối tâm của đối tượng với một điểm "mắt" trực quan. |
adaptive_label() |
None |
Vẽ nhãn hình dạng nền tròn hoặc hình chữ nhật ở trung tâm của một hộp giới hạn. |
Làm việc với SolutionResults
Ngoại trừ Similarity Search
, mỗi lời gọi Solution trả về một danh sách các SolutionResults
đối tượng.
- Đố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="yolo11n.pt", # model="yolo11n-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
SolutionResults
đối tượng có các thuộc tính sau:
Thuộc tính | Loại | Mô tả |
---|---|---|
plot_im |
np.ndarray |
Hình ảnh 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 được 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 được 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 từng lớp để phân tích nâng cao. |
queue_count |
int |
Số lượng đối tượng hiện có trong một hàng đợi hoặc khu vực chờ được xác định trước (phù hợp cho việc 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 bài tập. |
workout_angle |
float |
Tính toán góc khớp hoặc góc dáng trong quá trình tập luyện để đánh giá tư thế. |
workout_stage |
str |
Giai đoạn tập luyện hoặc giai đoạn vận động hiện tại (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ụ: bounding box (phù hợp cho việc tính toán khoảng cách). |
available_slots |
int |
Số lượng chỗ trống chưa được chiếm dụng trong một khu vực được giám sát (phù hợp cho việc quản lý bãi đỗ xe). |
filled_slots |
int |
Số lượng chỗ trống đã được chiếm dụng trong một khu vực được giám sát (phù hợp cho việc 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 (thích hợp cho báo động an ninh). |
total_tracks |
int |
Tổng số các đối tượng được theo dõi 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 khu vực hoặc vùng do người dùng xác định. |
speed_dict |
Dict[str, float] |
Từ điển theo dõi tốc độ đối tượng đã tính toán, hữu ích cho việc phân tích vận tốc. |
total_crop_objects |
int |
Tổng số ả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 số liệu hiệu suất để theo dõi và xử lý giải pháp. |
Để biết thêm chi tiết, hãy tham khảo SolutionResults
tài liệu về class.
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, bao gồm:
Count
, Crop
, Blur
, Workout
, Heatmap
, Isegment
, Visioneye
, Speed
, Queue
, Analytics
, Inference
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 số:
['count', 'crop', 'blur', 'workout', 'heatmap', 'isegment', 'queue', 'speed', 'analytics', 'trackzone', 'inference', 'visioneye']
. - ARGS (tùy chọn) là các cặp tùy chỉnh
arg=value
, 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 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ể nào đó 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ẻ kiến thức 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 cho cộng đồng và giúp chúng tôi làm cho tài liệu của mình toàn diện và thân thiện hơn với người dùng.
Để 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 chờ những đóng góp của bạn!
Hãy cùng nhau xây dựng hệ sinh thái Ultralytics YOLO mạnh mẽ và đa năng hơn 🙏!
Câu hỏi thường gặp
Làm cách nào tôi có thể sử dụng Ultralytics YOLO để đếm đối tượng theo thời gian thực?
Ultralytics YOLO11 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 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ề Đếm đối tượng để thiết lập YOLO11 cho phân tích luồng video trực tiếp. Chỉ cần cài đặt YOLO11, 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 linh hoạt.
Những lợi ích của việc sử dụng Ultralytics YOLO cho các hệ thống an ninh là gì?
Ultralytics YOLO11 tăng cường hệ thống an ninh bằng cách cung cấp khả năng phát hiện đối tượng theo thời gian thực và cơ chế cảnh báo. Bằng cách sử dụng YOLO11, 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 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 Hệ thống báo động an ninh với YOLO11 để giám sát an ninh mạnh mẽ.
Ultralytics YOLO có thể cải thiện hệ thống quản lý hàng đợi như thế nào?
Ultralytics YOLO11 có thể cải thiện đáng kể 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 đợi, do đó 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ề Quản lý hàng đợi để tìm hiểu cách triển khai YOLO11 để theo dõi 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 YOLO11 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 thói quen tập thể dục trong thời gian thực. Điều này cho phép đánh giá chính xác hình thức và hiệu suất tập luyện. 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 hỗ trợ bởi AI bằng YOLO11.
Ultralytics YOLO giúp tạo bản đồ nhiệt (heatmap) để trực quan hóa dữ liệu như thế nào?
Ultralytics YOLO11 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 khu vực có hoạt động hoặc mối quan tâm cao. Tính năng này đặc biệt hữu ích trong việc hiểu các mẫu 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 YOLO11 để phân tích và trực quan hóa dữ liệu toàn diện.