Link to this sectionTiệ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 🎉
Link to this sectionTính năng và Lợi ích#
✅ Bạn có phải là nhà khoa học dữ liệu hoặc kỹ sư machine learning đang xây dựng các ứng dụng computer vision với Ultralytics không?
✅ 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 code không?
✅ Bạn có thường xuyên quên các đối 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 rằng mình có một cách dễ dàng hơn để tham khảo hoặc chạy các ví dụ code?
✅ Bạn muốn tăng tốc quy trình 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 Ultralytics-snippets cho VS Code ở đây để giúp bạn! Hãy đọc tiếp để 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! 🚀
Link to this sectionLấ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 xoay quanh các 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ọ ⚡.
Link to this sectionTại sao lại là 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 trong Khảo sát Lập trình viên của Stack Overflow vào các năm 2021, 2022, 2023, và 2024. Nhờ mức độ tùy biến cao, các tính năng tích hợp, khả năng tương thích rộng rãi 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 VS Code để giúp hợp lý hóa quy trình làm việc và tăng năng suất của bạn là rất hợp lý.
Bạn muốn cho chúng tôi biết bạn sử dụng công cụ gì để phát triển code? Hãy truy cập cuộc thăm dò cộng đồng trên Discourse của chúng tôi và cho chúng tôi biết! Trong khi ở đó, có lẽ bạn hãy xem qua một số meme về computer vision, machine learning, AI và lập trình yêu thích của chúng tôi, hoặc thậm chí đăng meme yêu thích của bạn!
Link to this sectionCài đặt Tiện ích#
Bất kỳ môi trường code nào cho phép cài đặt các tiện ích VS Code đều sẽ tương thích với tiện ích Ultralytics-snippets. Sau khi xuất bản tiện ích, người ta phát hiện ra rằng neovim cũng có thể được làm cho tương thích với các tiện ích VS Code. Để tìm hiểu thêm, hãy xem phần cài đặt neovim trong Readme của kho lưu trữ Ultralytics-Snippets.
Link to this sectionCài đặt trong VS Code#
-
Điều hướng đến menu Tiện ích 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.
Link to this sectionCà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 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 một phiên VS Code.
-
Làm theo bất kỳ lời nhắc nào để cài đặt tiện ích.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Link to this sectionSử dụng Tiện ích Ultralytics-Snippets#
-
🧠 Intelligent Code Completion: Viết code nhanh hơn và chính xác hơn với các gợi ý hoàn thiện code nâng cao phù hợp với API của 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 khối snippet code được dựng sẵn.
-
🔬 Improved Code Quality: Viết code 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 code 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.
Link to this sectionTổng quan#
Tiện ích sẽ chỉ hoạt động khi Language Mode được cấu hình cho Python 🐍. Điều này là để tránh các snippet bị chèn khi làm việc trên bất kỳ loại tệp nào khác. Tất cả các snippet đều có tiền tố bắt đầu bằng ultra, và chỉ cần gõ ultra trong trình soạn thảo của bạn sau khi cài đặt tiện ích, một danh sách các snippet có thể sử dụng sẽ 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.
Link to this sectionCác trường Snippet Code#
Nhiều snippet 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 là 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 snippet bao gồm các "trường". Sử dụng phím Tab ⇥ trên bàn phím sau khi một snippet được chèn, con trỏ của bạn sẽ di chuyển nhanh chóng giữa các trường. Khi một trường được chọn, việc nhập tên biến mới sẽ thay đổi trường đó, nhưng cũng thay đổi mọi trường khác trong code snippet cho 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.
Link to this sectionHoàn thiện Snippet Code#
Bạn không bắt buộc phải nhập đầy đủ tiền tố của snippet, hoặc thậm chí bắt đầu nhập từ đầu snippet. Xem ví dụ trong hình ảnh bên dưới.
Các snippet được đặt tên theo 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ứ để nhập và điều đó sẽ phản tác dụng nếu mục tiêu là di chuyển nhanh hơn. Rất may 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 và vẫn truy cập được tùy chọn snippet mong muốn! Nếu snippet 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 ↑ hoặc ↓ trên bàn phím của bạn để làm nổi bật snippet mong muốn và nhấn Enter ↵ hoặc Tab ⇥ sẽ chèn đúng khối code đó.
Typing ex-yolo-p will still arrive at the correct snippet.
Link to this sectionCác Danh mục Snippet#
Đây là các danh mục snippet 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ập nhật và bật tự động cập nhật cho tiện ích. Bạn cũng có thể yêu cầu các snippet bổ sung nếu bạn cảm thấy có bất kỳ snippet nào còn thiếu.
| Danh mục | Tiền tố Bắt đầu | Mô tả |
|---|---|---|
| Ví dụ | ultra.examples | Ví dụ code để giúp tìm hiểu hoặc bắt đầu với Ultralytics. Các ví dụ là bản sao hoặc tương tự như 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 các snippet cho các phương thức train, track, predict, và val với tất cả các đối số từ khóa và giá trị mặc định. |
| Imports | ultra.imports | Các snippet để nhập nhanh các đối tượng Ultralytics phổ biến. |
| Models | ultra.yolo | Chèn các khối code để khởi tạo các mô hình 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ả | ultra.result | Các khối code cho các thao tác phổ biến khi làm việc với kết quả suy luận. |
| 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ề chúng trên trang Tiện ích Đơn giản. |
Link to this sectionHọc tập với 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ề cách làm việc với Ultralytics YOLO. Các snippet ví dụ nhằm mục đích 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 hoạt ảnh ở đầu trang này, nơi sau khi snippet được chèn, tất cả code được chọn và chạy tương tác bằng cách sử dụng Shift ⇑+Enter ↵.
Giống như hoạt ảnh hiển thị ở đầu trang này, bạn có thể sử dụng snippet ultra.example-yolo-predict để chèn ví dụ code sau. Sau khi chèn, tùy chọn có thể cấu hình duy nhất là cho quy mô 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 imageLink to this sectionTăng tốc Phát triển#
Mục đích của các snippet không phải là ultra.examples là làm cho việc phát triển trở nên dễ dàng và nhanh chóng hơn khi làm việc với Ultralytics. 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ề từ việc sử dụng phương thức predict của mô hình. Snippet ultra.result-loop có thể giúp ích cho việc này.
Sử dụng ultra.result-loop sẽ chèn code mặc định sau (bao gồm cả các bình luận).
# 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ụ, 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, đây là nơi các trường snippet sẽ trở nên mạnh mẽ.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Link to this sectionCác đối số Từ khóa#
Có hơn 💯 đối số từ khóa cho tất cả các tác vụ và chế độ khác nhau của Ultralytics! Đó là rất nhiều để nhớ, và rất dễ quên nếu đối số là save_frame hay save_frames (nhân tiện, đó chắc chắn là save_frames). Đây là nơi các snippet ultra.kwargs có thể giúp ích!
Để chèn phương thức predict, bao gồm tất cả các đối số suy luận, hãy sử dụng ultra.kwargs-predict, thao tác này sẽ chèn code sau (bao gồm cả các bình luận).
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) 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
)Snippet này có các trường cho tất cả các đối số từ khóa, nhưng cũng cho cả model và src trong trường hợp bạn đã sử dụng một biến khác trong code của mình. Trên mỗi dòng chứa đối số từ khóa, một mô tả ngắn gọn được bao gồm để tham khảo.
Link to this sectionTấ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 và cài đặt tiện ích rồi 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 repo hoặc trang tiện ích trên chợ VS Code để xem các bảng cho tất cả các snippet có sẵn.
Link to this sectionKết luận#
Tiện ích 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 computer vision sử dụng Ultralytics YOLO hiệu quả hơn. Bằng cách cung cấp các snippet code 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 trên chợ VS Code và để lại đánh giá. ⭐
Link to this sectionCâu hỏi thường gặp#
Link to this sectionLàm thế nào để yêu cầu một snippet mới?#
Các snippet mới có thể được yêu cầu bằng cách sử dụng mục Issues trên repo của Ultralytics-Snippets.
Link to this sectionChi phí của Tiện ích Ultralytics là bao nhiêu?#
Nó miễn phí 100%!
Link to this sectionTại sao tôi không thấy bản xem trước snippet code?#
VS Code sử dụng tổ hợp phím Ctrl+Space để hiển thị thêm/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.
Link to this sectionLàm thế nào để tắt đề xuất tiện ích trong Ultralytics?#
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 Ultralytics-snippets mà không muốn thấy thông báo đó nữa, có hai cách để tắt thông báo này.
-
Cài đặt Ultralytics-snippets và thông báo sẽ không còn hiển thị nữa 😆!
-
Bạn có thể sử dụng
yolo settings vscode_msg=Falseđể tắt thông báo mà không cần phải cài đặt tiện ích. 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.
Link to this sectionTôi có ý tưởng cho một snippet code Ultralytics mới, làm cách nào để thêm nó vào?#
Truy cập repo Ultralytics-snippets và mở một Issue hoặc Pull Request!
Link to this sectionLàm thế nào để gỡ cài đặt Tiện ích Ultralytics-Snippets?#
Giống như bất kỳ tiện ích 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 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 (⚙) rồi nhấp vào "Uninstall" để xóa tiện ích.