Chuyển đến nội dung

Tiện ích mở rộng Ultralytics VS Code



Xem: Cách sử dụng Tiện ích mở rộng Ultralytics Visual Studio Code | Đoạn mã Sẵn sàng Sử dụng | Ultralytics YOLO 🎉

Tính năng và Lợi ích

✅ Bạn có phải là nhà khoa học dữ liệu hoặc kỹ sư máy học đang xây dựng các ứng dụng thị giác máy tính với Ultralytics không?

✅ Bạn có ghét việc viết đi viết lại các đoạn mã giống nhau không?

✅ Bạn có luô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 có một cách dễ dàng hơn để tham khảo hoặc chạy các ví dụ mã?

✅ Bạn muốn tăng tốc chu kỳ phát triển của mình 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 đọ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 nó.


Xem trước dự đoán Snippet
Chạy mã ví dụ bằng Ultralytics YOLO trong vòng chưa đầy 20 giây! 🚀

Được truyền cảm hứng từ Cộng đồng Ultralytics

Cảm hứ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 xung quanh các chủ đề và ví dụ tương tự đã thúc đẩy sự phát triển của dự án này. Ngoài ra, vì một số thành viên của Nhóm Ultralytics cũng sử dụng VS Code, chúng tôi cũng sử dụng nó như một công cụ để tăng tốc công việc của mình ⚡.

Tại sao nên dùng VS Code?

Visual Studio Code cực kỳ phổ biến với các nhà phát triển trên toàn thế giới và được xếp hạng phổ biến nhất bởi Khảo sát Nhà phát triển Stack Overflow vào 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, 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 nhà phát triển đang sử dụng nó. Với sự phổ biến trong cộng đồng nhà phát triển 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 tiện ích mở rộng 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 hợp lý.

Bạn muốn cho chúng tôi biết bạn sử dụng gì để phát triển mã không? Hãy truy cập cuộc thăm dò cộng đồng Discourse của chúng tôi và cho chúng tôi biết! Trong khi bạn ở đó, có thể xem một số meme về thị giác máy tính, máy học, AI và nhà phát triển 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!

Cài đặt Tiện ích mở rộng

Lưu ý

Bất kỳ môi trường mã nào cho phép cài đặt các tiện ích mở rộng VS Code đều tương thích với tiện ích mở rộng Ultralytics-snippets. Sau khi xuất bản tiện ích mở rộng, 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 tiện ích mở rộng VS Code. Để tìm hiểu thêm, hãy xem neovim phần cài đặt của Tệp Readme trong kho lưu trữ Ultralytics-Snippets.

Cài đặt trong VS Code

  1. Đ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.

  2. Nhấp vào nút Cài đặt.


Menu tiện ích mở rộng VS Code

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 truy cập trực tiếp vào trang tiện ích mở rộng trên VS Code Marketplace.

  2. Nhấp vào nút Cài đặt và cho phép trình duyệt của bạn khởi chạy phiên VS Code.

  3. Làm theo mọi hướng dẫn để cài đặt tiện ích mở rộng.


Cài đặt tiện ích mở rộng từ marketplace của VS Code
Trang Visual Studio Code Extension Marketplace cho Ultralytics-Snippets

Sử dụng Tiện ích mở rộng Ultralytics-Snippets

  • 🧠 Hoàn thiện 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 thiện code nâng cao được điều chỉnh cho Ultralytics API.

  • 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ụ viết code lặp đi lặp lại và tận dụng các đoạn code dựng sẵn.

  • 🔬 Cải thiện chất lượng code: Viết code sạch hơn, nhất quán hơn và không có lỗi với khả năng hoàn thiện code thông minh.

  • 💎 Quy trình làm việc hợp lý: 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 định cấu hình cho Python 🐍. Điều này là để tránh các đoạn mã được 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 đ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 của bạn sau khi cài đặt tiện ích mở rộng, sẽ hiển thị danh sách các đoạn mã có thể sử dụng. Bạn cũng có thể mở VS Code Bảng lệnh bằng cách sử dụng Ctrl+Shift ⇑+p và chạy lệnh Snippets: Insert Snippet.

Các trường Đoạn mã

Nhiều đoạn mã có "trường" với các giá trị hoặc tên giữ chỗ mặc định. Ví dụ: đầu ra từ 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à nhà phát triển chọn, đó là lý do tại sao các đoạn mã bao gồm "trường". Sử dụng Tab ⇥ trên bàn phím của bạn sau khi một đoạn mã đượ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 một tên biến mới sẽ thay đổi phiên bản đó, nhưng cũng là mọi phiên bản khác trong mã đoạn mã cho biến đó!


Trường và tùy chọn cập nhật nhiều lần
Sau khi chèn đoạn mã, đổi tên model thành world_model cập nhật tất cả các instance. Nhấn Tab ⇥ di chuyển đến trường tiếp theo, thao tác này sẽ mở một menu thả xuống và cho phép chọn tỷ lệ mô hình, đồng thời di chuyển đến trường tiếp theo sẽ cung cấp một danh sách thả xuống khác để chọn world hoặc worldv2 biến thể mô hình.

Hoàn thành Đoạn mã

Các phím tắt thậm chí còn ngắn hơn

Không bắt buộc phải nhập toàn bộ tiền tố của đoạn mã hoặc thậm chí bắt đầu nhập từ đầu đoạn mã. Xem ví dụ trong hình bên dưới.

Các đoạn mã đượ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ể phải nhập rất nhiều 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 nhập ultra.example-yolo-predict, example-yolo-predict, yolo-predict, hoặc thậm chí ex-yolo-p và vẫn có thể tìm thấy tùy chọn đoạn mã dự định! Nếu đoạn mã dự định là thực sự 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 để tô sáng đoạn mã mong muốn và nhấn Enter ↵ hoặc Tab ⇥ sẽ chèn đúng khối mã.


Ví dụ về Snippet chưa hoàn chỉnh
Nhập ex-yolo-p vẫn sẽ đi đến đúng đoạn mã.

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 mở rộng Ultralytics-snippets. Sẽ có thêm các danh mục khác đượ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ự độ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ã nếu bạn cảm thấy có bất kỳ đoạn mã nào bị thiếu.

Danh mục Tiền tố bắt đầu Mô tả
Ví dụ ultra.examples Mã ví dụ để 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ư mã 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, predictval với tất cả các đối số từ khóa và giá trị mặc định.
Nhập ultra.imports Các đoạn mã để nhanh chóng nhập các đối tượng Ultralytics thông thường.
Mô hình ultra.yolo Chèn các khối mã để khởi tạo các mô hình (yolo, sam, rtdetr, v.v.), bao gồm các tùy chọn cấu hình thả xuống.
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.
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.

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

Hàm ultra.examples các đoạn mã 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 đoạn mã ví dụ được dự định chạy sau khi được chèn (một số 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 động ở trên cùng của trang này, sau khi đoạn mã được chèn, tất cả mã sẽ được chọn và chạy tương tác bằng cách sử dụng Shift ⇑+Enter ↵.

Ví dụ

Giống như hình ảnh động hiển thị ở trên cùng 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. Sau khi chèn, tùy chọn cấu hình duy nhất là cho tỷ lệ mô hình, có thể là một trong các tùy chọn sau: n, s, m, l, hoặc x.

from ultralytics import ASSETS, YOLO

model = YOLO("yolo11n.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

Đẩy nhanh Quá trình Phát triển

Mục đích của các đoạn mã khác với ultra.examples là để giúp 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 lại danh sách Results được trả về từ việc sử dụng mô hình predict phương pháp. Các ultra.result-loop đoạn mã có thể giúp ích cho việc này.

Ví dụ

Sử dụng ultra.result-loop sẽ chèn mã mặc định sau (bao gồm cả nhận xét).

# 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ợ rất nhiều nhiệm vụ, khi làm việc với kết quả suy luận có những Results thuộc tính khác mà bạn có thể muốn truy cập, đó là lý do vì sao các trường snippet sẽ rất hữu ích.


Tùy chọn lặp kết quả
Khi nhấn tab vào boxes trường, một menu thả xuống sẽ xuất hiện để bạn chọn một thuộc tính khác nếu cần.

Đối số Từ khóa

Có hơn 💯 đối số từ khóa cho tất cả các Ultralytics khác nhau nhiệm vụcác chế độ! Có quá nhiều thứ cần nhớ, và thật dễ quên nếu đối số là save_frame hoặc save_frames (chắc chắn là save_frames như vậy). Đây là lúc các ultra.kwargs snippet có thể giúp ích!

Ví dụ

Để chèn predict phương thức, bao gồm tất cả các đối số suy luận, hãy sử dụng ultra.kwargs-predict, phương thức này sẽ chèn đoạn mã sau (bao gồm cả cá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[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
)

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

Tất cả các Đoạn mã

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 mở rộng và dùng thử! Nếu bạn tò mò và muốn xem danh sách trước, 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 cho tất cả các snippet có sẵn.

Kết luận

Tiện ích mở rộng Ultralytics-Snippets cho VS Code được thiết kế để giúp các nhà khoa học dữ liệu và kỹ sư học máy xây dựng các ứng dụng thị giác máy tính bằng Ultralytics YOLO hiệu quả hơn. Bằng cách cung cấp các đoạn mã 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 VS Code marketplace và để lại đánh giá. ⭐

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

Làm cách nào để yêu cầu một đoạn mã mới?

Bạn có thể yêu cầu các snippet mới bằng cách sử dụng Issues trên repo Ultralytics-Snippets.

Chi phí của Tiện ích mở rộng Ultralytics là bao nhiêu?

Hoàn toàn miễn phí!

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 snippet khi bạn nhập tiền tố snippet mã, thì việc sử dụng tổ hợp phím này sẽ khôi phục bản xem trước.

Làm cách nào để 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 thông báo nhắc bạn cài đặt tiện ích mở rộng Ultralytics-snippets và 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ể đang sử dụng yolo settings vscode_msg False để tắt 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 về Cài đặt Ultralytics trên trang hướng dẫn nhanh nếu bạn chưa quen.

Tôi có một ý tưởng cho một đoạn mã Ultralytics mới, làm cách nào để thêm nó?

Hãy truy cập Ultralytics-snippets repo và mở một Issue hoặc Pull Request!

Làm cách nào để 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 Extensions trong VS Code. Tìm tiện ích mở rộng 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 mở rộng.


Menu tiện ích mở rộng VS Code



📅 Đã tạo 1 năm trước ✏️ Cập nhật 4 tháng trước

Bình luận