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ó.
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, 2023 và 2024. 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, Reddit và GitHub 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
-
Đ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 Cài đặt.
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 vào trang tiện ích mở rộng trên VS Code Marketplace.
-
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.
-
Làm theo mọi hướng dẫn để cài đặt tiện ích mở rộng.
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 đó!
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ã.
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, predict và val 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.
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ụ 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ả 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 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.
-
Cài đặt Ultralytics-snippets và thông báo sẽ không còn hiển thị nữa 😆!
-
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.