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 🎉
Các tính năng và lợi ích
✅ Bạn là một nhà khoa học dữ liệu hoặc kỹ sư machine learning đang xây dựng các ứng dụng thị giác máy tính với Ultralytics?
✅ Bạn có thấy chán nản khi phải viết đi viết lại cùng một khối mã không?
✅ Bạn có hay quên các tham số hoặc giá trị mặc định cho các phương thức export, predict, train, track hoặc val không?
✅ Bạn đang muốn bắt đầu với Ultralytics và ước mình có một cách dễ dàng hơn để tham chiếu hoặc chạy các ví dụ mã nguồn?
✅ 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, thì tiện ích mở rộng Ultralytics-snippets cho VS Code sẽ giúp bạn! Hãy tiếp tục đọc để tìm hiểu thêm về tiện ích này, cách cài đặt và cách sử dụng nó.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Lấy cảm hứng từ Cộng đồng Ultralytics
Cảm hứng để xây dựng tiện ích 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 sự phát triển của dự án này. Ngoài ra, nhiều thành viên trong đội ngũ Ultralytics cũng sử dụng VS Code để tăng tốc công việc của riêng họ ⚡.
Tại sao lại chọn VS Code?
Visual Studio Code cực kỳ phổ biến với các lập trình viên trên toàn thế giới và đã được xếp hạng phổ biến nhất theo Khảo sát Lập trình viên Stack Overflow trong các năm 2021, 2022, 2023 và 2024. Do mức độ 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 lập trình viên đang sử dụng nó. Với sự phổ biến trong cộng đồng lập trình viên rộng lớn và 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 giản quy trình làm việc và tăng 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 bạn sử dụng gì để lập trình? Hãy ghé thăm cuộc thăm dò ý kiến cộng đồng của chúng tôi trên Discourse và cho chúng tôi biết! Trong khi ở đó, có lẽ hãy xem qua một vài meme về thị giác máy tính, machine learning, AI và lập trình viên mà chúng tôi yêu thích, hoặc thậm chí đăng meme của riêng bạn!
Cài đặt Tiện ích mở rộng
Any code environment that will allow for installing VS Code extensions should be compatible with the Ultralytics-snippets extension. After publishing the extension, it was discovered that neovim can be made compatible with VS Code extensions. To learn more see the neovim install section of the Readme in the Ultralytics-Snippets repository.
Cài đặt trong VS Code
-
Điều hướng đến menu Tiện ích mở rộng trong VS Code hoặc sử dụng phím tắt Ctrl+Shift ⇑+x, và 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 đi thẳng đến trang tiện ích mở rộng trên chợ VS Code.
-
Nhấp vào nút Install và cho phép trình duyệt của bạn khởi chạy phiên VS Code.
-
Làm theo bất kỳ lời nhắc nào để 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
-
🧠 Intelligent Code Completion: Viết mã nhanh hơn và chính xác hơn với các gợi ý hoàn thiện mã nâng cao được điều chỉnh cho API Ultralytics.
-
⌛ Increased Development Speed: Tiết kiệm thời gian bằng cách loại bỏ các tác vụ lập trình lặp đi lặp lại và tận dụng các đoạn mã mẫu (snippets) được tạo sẵn.
-
🔬 Improved Code Quality: Viết mã sạch hơn, nhất quán hơn và không có lỗi với tính năng hoàn thiện mã thông minh.
-
💎 Streamlined Workflow: Giữ 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ụ thông thường.
Tổng quan
Tiện ích mở rộng sẽ chỉ hoạt động khi Chế độ Ngôn ngữ được cấu hình cho Python 🐍. Điều này nhằm tránh các đoạn mã (snippets) bị chèn nhầm khi làm việc trên các loại tệp khác. Tất cả các đoạn mã đều có tiền tố bắt đầu bằng ultra, và chỉ cần gõ ultra trong trình soạn thảo sau khi cài đặt tiện ích, một danh sách các đoạn mã khả thi sẽ được hiển thị. Bạn cũng có thể mở Command Palette của VS Code bằng cách sử dụng Ctrl+Shift ⇑+p và chạy lệnh Snippets: Insert Snippet.
Các trường (fields) trong Đoạn mã
Nhiều đoạn mã có các "trường" với các giá trị hoặc tên giữ chỗ mặc định. Ví dụ, đầu ra 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 mà lập trình viên chọn, đó là lý do tại sao các đoạn mã bao gồm các "trường". Sử dụng Tab ⇥ trên bàn phím sau khi đoạn mã được chèn, con trỏ của bạn sẽ di chuyển giữa các trường một cách nhanh chóng. Sau khi một trường được chọn, việc gõ một tên biến mới sẽ thay đổi trường đó, nhưng cũng đồng thời thay đổi mọi trường khác trong mã của đoạn đó cho cùng một biến!
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.
Hoàn thiện Đoạn mã
Bạn không bắt buộc phải gõ đầy đủ tiền tố của đoạn mã, hoặc thậm chí bắt đầu gõ từ đầu đoạn mã. Xem ví dụ trong hình ảnh bên dưới.
Các đoạn mã được đặt tên một cách mô tả nhất có thể, nhưng điều này có nghĩa là có thể có rất nhiều thứ để gõ và sẽ phản tác dụng nếu mục tiêu là di chuyển nhanh hơn. May mắn thay, VS Code cho phép người dùng gõ ultra.example-yolo-predict, example-yolo-predict, yolo-predict hoặc thậm chí ex-yolo-p và vẫn tìm thấy tùy chọn đoạn mã dự định! Nếu đoạn mã dự định thực sự là ultra.example-yolo-predict-kwords, thì chỉ cần sử dụng các phím mũi tên trên bàn phím ↑ hoặc ↓ để làm nổi bật đoạn mã mong muốn và nhấn Enter ↵ hoặc Tab ⇥ sẽ chèn khối mã chính xác.
Typing ex-yolo-p will still arrive at the correct snippet.
Danh mục Đoạn mã
Đây là các danh mục đoạn mã hiện có sẵn cho tiện ích Ultralytics-snippets. Nhiều danh mục hơn sẽ được thêm vào trong tương lai, vì vậy hãy đảm bảo 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 thêm các đoạn mã bổ sung nếu cảm thấy có bất kỳ thứ gì còn thiếu.
| Danh mục | Tiền tố bắt đầu | Mô tả |
|---|---|---|
| Ví dụ | ultra.examples | Mã ví dụ để hỗ trợ học tập hoặc bắt đầu với Ultralytics. Các ví dụ là bản sao hoặc tương tự với mã nguồn 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 các đoạn mã cho các phương thức train, track, predict và val với tất cả các tham số từ khóa và giá trị mặc định. |
| Imports | ultra.imports | Các đoạn mã để nhanh chóng import các đối tượng Ultralytics phổ biến. |
| Models | ultra.yolo | Chèn các khối mã để khởi tạo các models khác nhau (yolo, sam, rtdetr, v.v.), bao gồm các tùy chọn cấu hình trong menu thả xuống. |
| Kết quả (Results) | ultra.result | Các khối mã cho các thao tác phổ biến khi làm việc với kết quả suy luận (inference results). |
| Tiện ích | ultra.util | Cung cấp quyền truy cập nhanh vào các tiện ích phổ biến được tích hợp trong gói Ultralytics, tìm hiểu thêm về những tiện ích này trên trang Tiện ích Đơn giản. |
Học tập với Ví dụ
Các đoạn mã ultra.examples rất hữu ích cho bất kỳ ai đang muốn học cách bắt đầu với những điều cơ bản khi làm việc với Ultralytics YOLO. Các đoạn mã ví dụ được thiết kế để chạy ngay sau khi được chèn (một số cũng có các tùy chọn thả xuống). Một ví dụ về điều này được hiển thị tại hình ảnh động ở phần đầu của trang này, nơi sau khi đoạn mã được chèn, tất cả mã được chọn và chạy tương tác bằng cách sử dụng Shift ⇑+Enter ↵.
Giống như hình ảnh động hiển thị ở phần đầu của trang này, bạn có thể sử dụng đoạn mã ultra.example-yolo-predict để chèn ví dụ mã sau đây. Sau khi chèn, tùy chọn duy nhất có thể cấu hình là tỷ lệ mô hình, 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 đích của các đoạn mã khác ngoài ultra.examples là làm cho việc phát triển dễ dàng và nhanh chóng hơn khi làm việc với Ultralytics. Một khối mã phổ biến được sử dụng trong nhiều dự án là lặp qua danh sách Results được trả về từ việc sử dụng phương thức predict của mô hình. Đoạn mã ultra.result-loop có thể hỗ trợ việc này.
Sử dụng ultra.result-loop sẽ chèn mã mặc định sau (bao gồm cả các ghi chú).
# 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 tác vụ (tasks), khi làm việc với kết quả suy luận có các thuộc tính Results khác mà bạn có thể muốn truy cập, đó là lúc các trường đoạn mã phát huy sức mạnh.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Tham số Từ khóa
Có hơn 💯 tham số từ khóa cho tất cả các tác vụ (tasks) và chế độ (modes) khác nhau của Ultralytics! Đó là rất nhiều để ghi nhớ, và có thể dễ dàng quên liệu tham số là save_frame hay save_frames (nhân tiện, chắc chắn là save_frames). Đây là lúc các đoạn mã ultra.kwargs có thể giúp ích!
Để chèn phương thức predict, bao gồm tất cả tham số suy luận, hãy sử dụng ultra.kwargs-predict, thao tác này sẽ chèn mã sau (bao gồm cả các ghi chú).
model.predict(
source=src, # (str, optional) source directory for images or videos
imgsz=640, # (int | list) input images size as int or list[w,h] 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) visualize model features
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
)Đoạn mã này có các trường cho tất cả các tham số từ khóa, nhưng cũng cho model và src trong trường hợp bạn đã sử dụng một biến khác trong mã của mình. Trên mỗi dòng chứa tham số từ khóa, một mô tả ngắn gọn được bao gồm để tham khảo.
Tất cả các Đoạn mã
Cách tốt nhất để tìm hiểu những đoạn mã nào có sẵn là tải xuống và cài đặt tiện ích mở rộng và dùng thử! Nếu bạn tò mò và muốn xem trước danh sách, bạn có thể truy cập kho lưu trữ hoặc trang tiện ích mở rộng trên chợ VS Code để xem các bảng cho tất cả các đoạn mã khả thi.
Kết luận
Tiện ích mở rộng Ultralytics-Snippets cho VS Code được thiết kế để trao quyền cho các nhà khoa học dữ liệu và kỹ sư machine learning xây dựng các ứng dụng thị giác máy tính sử dụng Ultralytics YOLO hiệu quả hơn. Bằng cách cung cấp các đoạn mã được xây dựng sẵn và các ví dụ hữu ích, chúng tôi giúp bạn tập trung vào những gì quan trọng nhất: tạo ra các giải pháp sáng tạo. Vui lòng chia sẻ phản hồi của bạn bằng cách truy cập trang tiện ích mở rộng trên chợ VS Code và để lại đánh giá. ⭐
Câu hỏi thường gặp (FAQ)
Làm thế nào để tôi yêu cầu một đoạn mã mới?
Các đoạn mã mới có thể được yêu cầu bằng cách sử dụng Issues trên kho lưu trữ của Ultralytics-Snippets.
Tiện ích mở rộng Ultralytics tốn bao nhiêu chi phí?
Nó miễn phí 100%!
Tại sao tôi không thấy bản xem trước đoạn mã?
VS Code sử dụng tổ hợp phím Ctrl+Space để hiển thị thêm/ít thông tin hơn trong cửa sổ xem trước. Nếu bạn không thấy bản xem trước đoạn mã khi gõ tiền tố, việc sử dụng tổ hợp phím này sẽ khôi phục bản xem trước.
Làm thế nào để tôi tắt đề xuất tiện ích mở rộng trong Ultralytics?
Nếu bạn sử dụng VS Code và bắt đầu thấy tin nhắn nhắc cài đặt tiện ích mở rộng Ultralytics-snippets và bạn không muốn thấy tin nhắn đó nữa, có hai cách để tắt tin nhắn này.
-
Cài đặt Ultralytics-snippets và tin nhắn sẽ không còn xuất hiện nữa 😆!
-
Bạn có thể sử dụng
yolo settings vscode_msg Falseđể tắt tin nhắn mà không cần cài đặt tiện ích mở rộng. Bạn có thể tìm hiểu thêm về Cài đặt Ultralytics trên trang quickstart nếu bạn chưa quen.
Tôi có ý tưởng cho một đoạn mã Ultralytics mới, làm sao để tôi có thể thêm vào?
Ghé thăm kho lưu trữ Ultralytics-snippets và mở một Issue hoặc Pull Request!
Làm thế nào để tôi gỡ cài đặt Tiện ích mở rộng Ultralytics-Snippets?
Giống như bất kỳ tiện ích mở rộng VS Code nào khác, bạn có thể gỡ cài đặt nó bằng cách điều hướng đến menu Tiện ích mở rộng trong VS Code. Tìm tiện ích Ultralytics-snippets trong menu và nhấp vào biểu tượng bánh răng (⚙), sau đó nhấp vào "Uninstall" để xóa tiện ích.