YOLO Vision 2026:

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 có phải là nhà khoa học dữ liệu hay 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ó 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 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ó.


Snippet Prediction Preview
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 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ọ ⚡.

Tại sao lại là VS Code?#

Visual Studio Code vô cùng phổ biến với các lập trình viên trên toàn thế giới và đã 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, 20232024. 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à tính 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 rộng lớn hơn và trong các cộng đồng Discord, Discourse, RedditGitHub của Ultralytics, việc xây dựng một extension cho 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à điều hoàn toàn hợp lý.

Bạn muốn cho chúng tôi biết bạn sử dụng gì để viết mã không? Hãy truy cập khảo sát cộng đồng trên Discourse của chúng tôi và cho chúng tôi biết nhé! Trong khi ở đó, bạn có thể xem một số meme về computer vision, 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 yêu thích của chính bạn!

Cài đặt Tiện ích#

Lưu ý

Bất kỳ môi trường mã hóa nào cho phép cài đặt các extension của VS Code đều nên tương thích với extension Ultralytics-snippets. Sau khi phát hành extension này, người ta phát hiện ra rằng neovim có thể được làm cho tương thích với các extension của VS Code. Để tìm hiểu thêm, hãy xem phần cài đặt neovim trong file Readme tại kho lưu trữ Ultralytics-Snippets.

Cài đặt trong VS Code#

  1. Điều hướng đến menu Extensions trong VS Code hoặc sử dụng phím tắt Ctrl+Shift ⇑+x, sau đó tìm kiếm Ultralytics-snippets.

  2. Nhấp vào nút Install.


VS Code extension menu

Cài đặt từ VS Code Extension Marketplace#

  1. Truy cập VS Code Extension Marketplace và tìm kiếm Ultralytics-snippets hoặc đi thẳng đến trang extension trên chợ ứng dụng VS Code.

  2. 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.

  3. Làm theo bất kỳ lời nhắc nào để cài đặt tiện ích.


VS Code marketplace extension install
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets

Sử 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.

Tổng quan#

Extension sẽ chỉ hoạt động khi Language Mode được cấu hình cho Python 🐍. Điều này nhằm tránh việc 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à việc chỉ cần gõ ultra trong trình soạn thảo của bạn sau khi cài đặt extension sẽ hiển thị 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 cách sử dụng Ctrl+Shift ⇑+p và chạy lệnh Snippets: Insert Snippet.

Cá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 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 của bạn 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 gõ một tên biến mới sẽ thay đổi lần xuất hiện đó, đồng thời cũng thay đổi mọi lần xuất hiện khác trong mã snippet cho biến đó!


Multi-update field and options
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 Snippet Code#

Các phím tắt _Thậm chí Ngắn hơn_

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ả rõ ràng nhất có thể, nhưng điều này có nghĩa là có thể có rất nhiều thứ để gõ và điều đó sẽ phản tác dụng nếu mục đích 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 đến được tùy chọn snippet mong muốn! Nếu snippet mong muốn thực sự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 để làm nổi bật snippet mong muốn và nhấn Enter ↵ hoặc Tab ⇥ sẽ chèn đúng khối mã.


VS Code incomplete code snippet preview
Typing ex-yolo-p will still arrive at the correct snippet.

Các Danh mục Snippet#

Đây là các danh mục snippet hiện tại có sẵn cho extension Ultralytics-snippets. Nhiều danh mục hơn sẽ được thêm vào 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 extension. Bạn cũng có thể yêu cầu bổ sung các snippet nếu bạn cảm thấy có bất kỳ snippet nào còn thiếu.

Danh mụcTiền tố Bắt đầuMô tả
Ví dụultra.examplesVí 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.
Kwargsultra.kwargsTă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, predictval với tất cả các đối số từ khóa và giá trị mặc định.
Importsultra.importsCác snippet để nhập nhanh các đối tượng Ultralytics phổ biến.
Modelsultra.yoloChèn các khối mã để khởi tạo các model khác nhau (yolo, sam, rtdetr, v.v.), bao gồm các tùy chọn cấu hình dạng thả xuống.
Kết quảultra.resultCá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.
Tiện íchultra.utilCung cấp quyền truy cập nhanh vào các tiện ích phổ biến được tích hợp sẵn trong gói Ultralytics, tìm hiểu thêm về các tiện ích này trên trang Tiện ích Đơn giản.

Học tập với Ví dụ#

Các snippet ultra.examples rất hữu ích cho bất kỳ ai muốn tìm hiểu 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 snippet ví dụ được thiết kế để chạy ngay sau khi 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 thể hiện ở hoạt ảnh ở phần đầu của trang này, nơi sau khi snippet đượ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 ↵.

Ví dụ

Giống như hoạt ảnh hiển thị ở phần đầu của trang này, bạn có thể sử dụng snippet ultra.example-yolo-predict để chèn ví dụ mã sau. Sau khi chèn, tùy chọn duy nhất có thể cấu hình là tỷ lệ của model, có thể là bất kỳ tỷ lệ nào sau đây: 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 image

Tăng tốc Phát triển#

Mục đích của các snippet khác ngoài ultra.examples là giúp 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 mã phổ biến được sử dụng trong nhiều dự án là lặp qua danh sách các Results được trả về từ việc sử dụng phương thức predict của model. Snippet ultra.result-loop có thể hỗ trợ việc này.

Ví dụ

Sử dụng ultra.result-loop sẽ chèn đoạn mã mặc định sau (bao gồm cả các chú thích).

# reference https://docs.ultralytics.com/modes/predict#working-with-results

for result in results:
    result.boxes.data  # torch.Tensor array

Tuy 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, đó là lúc các trường snippet phát huy sức mạnh.


VS Code YOLO results visualization options
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.

Các đối số Từ khóa#

Có hơn 💯 đối số từ khóa cho tất cả các tác vụchế độ khác nhau của Ultralytics! Đó là rất nhiều thứ phải ghi nhớ, và rất dễ quên xem đối số là save_frame hay save_frames (nhân tiện, chắc chắn nó là save_frames). Đây là lúc các snippet ultra.kwargs có thể trợ giúp!

Ví dụ

Để 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, điều này sẽ chèn đoạn mã sau (bao gồm cả các chú thích).

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ó các trường cho tất cả các đối số từ khóa, nhưng cũng có cho modelsrc 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 đối số từ khóa, một mô tả ngắn gọn được bao gồm để tham khảo.

Tất cả Snippet Code#

Cách tốt nhất để tìm hiểu xem có những snippet nào khả dụng là tải xuống, cài đặt extension 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 extension trên chợ ứng dụng VS Code để xem các bảng chứa tất cả các snippet khả dụng.

Kết luận#

Extension Ultralytics-Snippets cho VS Code được thiết kế nhằm 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 bằng Ultralytics YOLO một cách 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 đổi mới. Vui lòng chia sẻ phản hồi của bạn bằng cách truy cập trang extension trên chợ ứng dụng VS Code và để lại đánh giá. ⭐

Câu hỏi thường gặp#

  • Các snippet mới có thể được yêu cầu bằng cách sử dụng mục Issues trên kho lưu trữ của Ultralytics-Snippets.

  • Nó miễn phí 100%!

  • 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.

  • 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.

    1. Cài đặt Ultralytics-snippets và thông báo sẽ không còn hiển thị nữa 😆!

    2. Bạn có thể sử dụng yolo settings vscode_msg=False để tắt thông báo hiển thị mà không cần phải cài đặt extension. 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.

  • Truy cập kho lưu trữ của Ultralytics-snippets và mở một Issue hoặc Pull Request!

  • 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.


    VS Code extension menu

Bình luận