Tiện ích mở rộng Ultralytics cho VS Code#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
Tính năng và lợi ích#
✅ Bạn là data scientist hoặc kỹ sư machine learning đang xây dựng các ứng dụng computer vision với Ultralytics?
✅ Bạn có chán việc liên tục phải viết đi viết lại cùng một khối code không?
✅ Bạn có thường xuyên quên các tham số hoặc giá trị mặc định của các phương thức export, predict, train, track hoặc val không?
✅ Bạn muốn bắt đầu với Ultralytics và ước có một cách dễ hơn để tham khảo hoặc chạy các ví dụ code?
✅ Bạn muốn tăng tốc chu kỳ phát triển khi làm việc với Ultralytics?
Nếu bạn sử dụng Visual Studio Code và trả lời “có” cho bất kỳ câu hỏi nào ở trên, tiện ích mở rộng Ultralytics-snippets cho VS Code sẽ hỗ trợ bạn! Hãy đọc tiếp để tìm hiểu thêm về tiện ích mở rộng, cách cài đặt và cách sử dụng.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Lấy cảm hứng từ Cộng đồng Ultralytics#
Ý tưởng xây dựng tiện ích mở rộng này đến từ Cộng đồng Ultralytics. Các câu hỏi từ Cộng đồng về những chủ đề và ví dụ tương tự đã thúc đẩy quá trình phát triển dự án này. Ngoài ra, nhiều thành viên trong đội ngũ Ultralytics sử dụng VS Code để tăng tốc công việc của chính họ ⚡.
Tại sao là VS Code?#
Visual Studio Code cực kỳ phổ biến với các developer trên toàn thế giới và được xếp hạng phổ biến nhất trong Khảo sát Developer của Stack Overflow vào các năm 2021, 2022, 2023 và 2024. Với khả năng tùy biến cao, các tính năng tích hợp sẵn, khả năng tương thích rộng và khả năng mở rộng của VS Code, không có gì ngạc nhiên khi rất nhiều developer sử dụng công cụ này. Xét đến mức độ phổ biến trong cộng đồng developer nói chung cũng như trong các Cộng đồng Discord, Discourse, Reddit và GitHub của Ultralytics, việc xây dựng một tiện ích mở rộng VS Code để giúp tinh gọn workflow và nâng cao năng suất của bạn là hoàn toàn hợp lý.
Bạn muốn cho chúng tôi biết mình sử dụng công cụ nào để phát triển code? Hãy truy cập khảo sát cộng đồng trên Discourse và cho chúng tôi biết! Khi ở đó, bạn cũng có thể xem một số meme yêu thích của chúng tôi về computer vision, machine learning, AI và developer, hoặc đăng meme yêu thích của bạn!
Cài đặt tiện ích mở rộng#
Mọi môi trường code cho phép cài đặt tiện ích mở rộng VS Code đều có thể tương thích với tiện ích mở rộng Ultralytics-snippets. Sau khi phát hành tiện ích mở rộng, chúng tôi phát hiện rằng neovim có thể được cấu hình để tương thích với các tiện ích mở rộng VS Code. Để tìm hiểu thêm, hãy xem phần cài đặt neovim trong Readme của repository Ultralytics-Snippets.
Cài đặt trong VS Code#
-
Đi tới menu Extensions trong VS Code hoặc sử dụng phím tắt Ctrl+Shift ⇑+x, rồi tìm kiếm Ultralytics-snippets.
-
Nhấp vào nút Install.
Cài đặt từ VS Code Extension Marketplace#
-
Truy cập VS Code Extension Marketplace và tìm kiếm Ultralytics-snippets, hoặc truy cập trực tiếp trang tiện ích mở rộng trên VS Code marketplace.
-
Nhấp vào nút Install và cho phép trình duyệt khởi chạy một phiên VS Code.
-
Làm theo mọi lời nhắc để cài đặt tiện ích mở rộng.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Sử dụng tiện ích mở rộng Ultralytics-Snippets#
-
🧠 Hoàn thành code thông minh: Viết code nhanh hơn và chính xác hơn với các đề xuất hoàn thành code nâng cao được điều chỉnh cho API Ultralytics.
-
⌛ Tăng tốc độ phát triển: Tiết kiệm thời gian bằng cách loại bỏ các tác vụ code lặp lại và tận dụng các snippet khối code dựng sẵn.
-
🔬 Cải thiện chất lượng code: Viết code gọn gàng hơn, nhất quán hơn và không có lỗi với tính năng hoàn thành code thông minh.
-
💎 Tinh gọn workflow: Duy trì sự tập trung vào logic cốt lõi của dự án bằng cách tự động hóa các tác vụ phổ biến.
Tổng quan#
Tiện ích mở rộng chỉ hoạt động khi Language Mode được cấu hình cho Python 🐍. Điều này nhằm tránh việc chèn snippet khi bạn làm việc với bất kỳ loại file nào khác. Tất cả snippet đều có tiền tố bắt đầu bằng ultra; chỉ cần nhập ultra trong editor sau khi cài đặt tiện ích mở rộng, bạn sẽ thấy danh sách các snippet có thể sử dụng. Bạn cũng có thể mở Command Palette của VS Code bằng Ctrl+Shift ⇑+p và chạy lệnh Snippets: Insert Snippet.
Các trường trong snippet code#
Nhiều snippet có “field” với giá trị hoặc tên placeholder mặc định. Ví dụ, output từ phương thức predict có thể được lưu vào một biến Python có tên r, results, detections, preds hoặc bất kỳ tên nào khác do developer chọn, đó là lý do snippet có các “field”. Sau khi chèn snippet, hãy sử dụng Tab ⇥ trên bàn phím để nhanh chóng di chuyển con trỏ giữa các field. Khi một field được chọn, việc nhập tên biến mới sẽ thay đổi instance đó cũng như mọi instance khác của biến đó trong code của snippet!
After inserting snippet, renaming model as world_model updates all instances. Pressing Tab ⇥ moves to the next field, which opens a dropdown menu and allows for selection of a model scale, and moving to the next field provides another dropdown to choose either world or worldv2 model variant.
Tính năng hoàn thành snippet code#
Bạn không cần nhập toàn bộ tiền tố của snippet, thậm chí không cần bắt đầu nhập từ đầu snippet. Xem ví dụ trong hình bên dưới.
Các snippet được đặt tên theo cách mô tả rõ ràng nhất có thể, nhưng điều này đồng nghĩa với việc có thể phải nhập khá nhiều ký tự, khiến mục tiêu làm việc nhanh hơn trở nên phản tác dụng. May mắn là VS Code cho phép người dùng nhập ultra.example-yolo-predict, example-yolo-predict, yolo-predict hoặc thậm chí ex-yolo-p mà vẫn tìm đến tùy chọn snippet mong muốn! Nếu snippet thực sự cần dùng là ultra.example-yolo-predict-kwords, chỉ cần sử dụng các phím mũi tên ↑ hoặc ↓ để tô sáng snippet mong muốn rồi nhấn Enter ↵ hoặc Tab ⇥ để chèn đúng khối code.
Typing ex-yolo-p will still arrive at the correct snippet.
Danh mục snippet#
Đây là các danh mục snippet hiện có của tiện ích mở rộng Ultralytics-snippets. Các danh mục khác sẽ được bổ sung trong tương lai, vì vậy hãy nhớ kiểm tra các bản cập nhật và bật tính năng tự động cập nhật cho tiện ích mở rộng. Bạn cũng có thể yêu cầu bổ sung snippet nếu cho rằng còn thiếu snippet nào đó.
| Danh mục | Tiền tố bắt đầu | Mô tả |
|---|---|---|
| Ví dụ | ultra.examples | Code ví dụ giúp học hoặc bắt đầu sử dụng Ultralytics. Các ví dụ là bản sao hoặc tương tự code từ các trang tài liệu. |
| Kwargs | ultra.kwargs | Tăng tốc phát triển bằng cách thêm snippet cho các phương thức train, track, predict và val, kèm tất cả keyword argument và giá trị mặc định. |
| Imports | ultra.imports | Snippet để nhanh chóng import các object Ultralytics phổ biến. |
| Models | ultra.yolo | Chèn các khối code để khởi tạo nhiều model khác nhau (yolo, sam, rtdetr, v.v.), bao gồm các tùy chọn cấu hình dạng dropdown. |
| Kết quả | ultra.result | Các khối code cho những thao tác phổ biến khi làm việc với kết quả inference. |
| Utilities | ultra.util | Cung cấp quyền truy cập nhanh vào các utility phổ biến được tích hợp trong package Ultralytics; tìm hiểu thêm về các utility này trên trang Simple Utilities. |
Học qua ví dụ#
Các snippet ultra.examples rất hữu ích cho bất kỳ ai muốn học cách bắt đầu với những kiến thức cơ bản về làm việc với Ultralytics YOLO. Các snippet ví dụ được thiết kế để chạy ngay sau khi chèn (một số snippet cũng có tùy chọn dropdown). Ví dụ được minh họa trong animation ở đầu trang, trong đó sau khi chèn snippet, toàn bộ code được chọn và chạy tương tác bằng Shift ⇑+Enter ↵.
Giống như animation ở đầu trang minh họa, bạn có thể sử dụng snippet ultra.example-yolo-predict để chèn ví dụ code sau đây. Sau khi chèn, tùy chọn cấu hình duy nhất là scale của model, có thể là một trong các giá trị: n, s, m, l hoặc x.
from ultralytics import ASSETS, YOLO
model = YOLO("yolo26n.pt", task="detect")
results = model(source=ASSETS / "bus.jpg")
for result in results:
print(result.boxes.data)
# result.show() # uncomment to view each result imageTăng tốc phát triển#
Mục tiêu của các snippet khác ultra.examples là giúp việc phát triển khi làm việc với Ultralytics trở nên dễ dàng và nhanh chóng hơn. Một khối code phổ biến được sử dụng trong nhiều dự án là lặp qua danh sách Results được trả về khi sử dụng phương thức predict của model. Snippet ultra.result-loop có thể hỗ trợ việc này.
Sử dụng ultra.result-loop sẽ chèn đoạn code mặc định sau đây (bao gồm cả comment).
# reference https://docs.ultralytics.com/modes/predict#working-with-results
for result in results:
result.boxes.data # torch.Tensor arrayTuy nhiên, vì Ultralytics hỗ trợ nhiều task, khi làm việc với kết quả inference, bạn có thể muốn truy cập các thuộc tính Results khác, và đây là lúc các field của snippet phát huy tác dụng.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Keyword argument#
Có hơn 💯 keyword argument cho tất cả task và mode khác nhau của Ultralytics! Đây là một số lượng lớn cần ghi nhớ, và bạn có thể dễ dàng quên liệu argument là save_frame hay save_frames (nhân tiện, chắc chắn là save_frames). Đây là lúc các snippet ultra.kwargs có thể hỗ trợ!
Để chèn phương thức predict cùng tất cả inference argument, hãy sử dụng ultra.kwargs-predict; thao tác này sẽ chèn đoạn code sau đây (bao gồm cả comment).
model.predict(
source=src, # (str, optional) source directory for images or videos
imgsz=640, # (int | list) input images size as int or list[h,w] for predict
conf=0.25, # (float) minimum confidence threshold
iou=0.7, # (float) intersection over union (IoU) threshold for NMS
vid_stride=1, # (int) video frame-rate stride
stream_buffer=False, # (bool) buffer incoming frames in a queue (True) or only keep the most recent frame (False)
visualize=False, # (bool) save class activation heatmaps
augment=False, # (bool) apply image augmentation to prediction sources
agnostic_nms=False, # (bool) class-agnostic NMS
classes=None, # (int | list[int], optional) filter results by class, i.e. classes=0, or classes=[0,2,3]
retina_masks=False, # (bool) use high-resolution segmentation masks
embed=None, # (list[int], optional) return feature vectors/embeddings from given layers
show=False, # (bool) show predicted images and videos if environment allows
save=True, # (bool) save prediction results
save_frames=False, # (bool) save predicted individual video frames
save_txt=False, # (bool) save results as .txt file
save_conf=False, # (bool) save results with confidence scores
save_crop=False, # (bool) save cropped images with results
stream=False, # (bool) for processing long videos or numerous images with reduced memory usage by returning a generator
verbose=True, # (bool) enable/disable verbose inference logging in the terminal
)Snippet này có field cho tất cả keyword argument, đồng thời có field cho model và src trong trường hợp bạn đã sử dụng một biến khác trong code. Mỗi dòng chứa keyword argument đều có phần mô tả ngắn để tham khảo.
Tất cả snippet code#
Cách tốt nhất để tìm hiểu những snippet nào có sẵn là tải xuống, cài đặt tiện ích mở rộng và dùng thử! Nếu tò mò và muốn xem trước danh sách, bạn có thể truy cập repo hoặc trang tiện ích mở rộng trên VS Code marketplace để xem các bảng liệt kê tất cả snippet hiện có.
Kết luận#
Tiện ích mở rộng Ultralytics-Snippets cho VS Code được thiết kế để hỗ trợ data scientist và kỹ sư machine learning xây dựng các ứng dụng computer vision bằng Ultralytics YOLO hiệu quả hơn. Bằng cách cung cấp các snippet code dựng sẵn và ví dụ hữu ích, chúng tôi giúp bạn tập trung vào điều quan trọng nhất: tạo ra các giải pháp đổi mới. Vui lòng chia sẻ phản hồi bằng cách truy cập trang tiện ích mở rộng trên VS Code marketplace và để lại đánh giá. ⭐
FAQ#
Bạn có thể yêu cầu snippet mới thông qua Issues trong repo Ultralytics-Snippets.
Hoàn toàn miễn phí!
VS Code sử dụng tổ hợp phím Ctrl+Space để hiển thị thêm/ẩn bớt thông tin trong cửa sổ xem trước. Nếu bạn không thấy bản xem trước snippet khi nhập tiền tố snippet code, việc sử dụng tổ hợp phím này sẽ khôi phục bản xem trước.
Nếu bạn sử dụng VS Code và bắt đầu thấy thông báo nhắc cài đặt tiện ích mở rộng Ultralytics-snippets nhưng không muốn tiếp tục nhìn thấy thông báo này, có hai cách để tắt thông báo.
-
Cài đặt Ultralytics-snippets và thông báo sẽ không còn hiển thị 😆!
-
Bạn có thể sử dụng
yolo settings vscode_msg=Falseđể vô hiệu hóa thông báo hiển thị mà không cần cài đặt tiện ích mở rộng. Bạn có thể tìm hiểu thêm trên trang Ultralytics Settings nếu bạn chưa quen thuộc.
-
Truy cập repo Ultralytics-snippets và mở một Issue hoặc Pull Request!
Giống như mọi tiện ích mở rộng VS Code khác, bạn có thể gỡ cài đặt bằng cách đi tới menu Extensions trong VS Code. Tìm tiện ích mở rộng Ultralytics-snippets trong menu, nhấp vào biểu tượng bánh răng (⚙), rồi nhấp vào “Uninstall” để xóa tiện ích mở rộng.