Ultralytics VS Code 확장 프로그램#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
기능 및 이점#
✅ Ultralytics를 사용하여 컴퓨터 비전 애플리케이션을 구축하는 데이터 과학자 또는 머신 러닝 엔지니어이신가요?
✅ 동일한 코드 블록을 반복해서 작성하는 것이 싫으신가요?
✅ export, predict, train, track 또는 val 메서드의 인수나 기본값을 자주 잊으시나요?
✅ Ultralytics를 시작하려고 하며 코드 예제를 참조하거나 실행할 더 쉬운 방법을 찾고 계신가요?
✅ Ultralytics로 작업할 때 개발 주기를 단축하고 싶으신가요?
Visual Studio Code를 사용하면서 위 질문 중 하나라도 '예'라고 답하셨다면 VS Code용 Ultralytics-snippets 확장 프로그램이 도움을 드릴 수 있습니다! 확장 프로그램, 설치 방법 및 사용 방법에 대해 자세히 알아보려면 계속 읽어 보세요.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Ultralytics Community에서 얻은 영감#
이 확장 프로그램을 구축하게 된 영감은 Ultralytics Community에서 얻었습니다. 유사한 주제와 예제에 관한 Community의 질문이 이 프로젝트의 개발을 이끌었습니다. 또한 많은 Ultralytics 팀원들이 자체 작업을 가속화하기 위해 VS Code를 사용하고 있습니다 ⚡.
왜 VS Code인가요?#
Visual Studio Code는 전 세계 개발자들에게 매우 인기 있으며, Stack Overflow Developer Survey에서 2021년, 2022년, 2023년 및 2024년에 가장 인기 있는 도구로 선정되었습니다. VS Code는 높은 수준의 사용자 지정 기능, 기본 제공 기능, 폭넓은 호환성 및 확장성을 제공하므로 많은 개발자가 사용하는 것은 놀라운 일이 아닙니다. 더 넓은 개발자 커뮤니티와 Ultralytics Discord, Discourse, Reddit 및 GitHub Communities에서의 인기를 고려하면, 워크플로를 간소화하고 생산성을 높이는 데 도움이 되는 VS Code 확장 프로그램을 구축하는 것이 합리적이었습니다.
코드 개발에 어떤 도구를 사용하는지 알려 주시겠어요? Discourse 커뮤니티 설문조사에 참여하여 알려 주세요! 방문하신 김에 컴퓨터 비전, 머신 러닝, AI 및 개발자 관련 저희가 가장 좋아하는 밈을 살펴보거나, 가장 좋아하는 밈을 직접 게시해 보세요!
확장 프로그램 설치#
VS Code 확장 프로그램을 설치할 수 있는 모든 코드 환경은 Ultralytics-snippets 확장 프로그램과 호환되어야 합니다. 확장 프로그램을 게시한 후 neovim을 VS Code 확장 프로그램과 호환되도록 구성할 수 있다는 사실이 확인되었습니다. 자세한 내용은 Ultralytics-Snippets repository의 Readme에서 neovim 설치 섹션을 참조하세요.
VS Code에 설치하기#
-
VS Code의 Extensions 메뉴로 이동하거나 Ctrl+Shift ⇑+x 단축키를 사용한 다음 Ultralytics-snippets를 검색하세요.
-
Install 버튼을 클릭하세요.
VS Code Extension Marketplace에서 설치하기#
-
VS Code Extension Marketplace를 방문하여 Ultralytics-snippets를 검색하거나 VS Code marketplace의 확장 프로그램 페이지로 바로 이동하세요.
-
Install 버튼을 클릭하고 브라우저에서 VS Code 세션을 시작하도록 허용하세요.
-
표시되는 안내에 따라 확장 프로그램을 설치하세요.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Ultralytics-Snippets 확장 프로그램 사용하기#
-
🧠 지능형 코드 완성: Ultralytics API에 맞춤화된 고급 코드 완성 제안을 통해 더 빠르고 정확하게 코드를 작성하세요.
-
⌛ 개발 속도 향상: 반복적인 코딩 작업을 없애고 미리 작성된 코드 블록 스니펫을 활용하여 시간을 절약하세요.
-
🔬 코드 품질 개선: 지능형 코드 완성을 통해 더 깔끔하고 일관되며 오류가 없는 코드를 작성하세요.
-
💎 간소화된 워크플로: 일반적인 작업을 자동화하여 프로젝트의 핵심 로직에 집중하세요.
개요#
확장 프로그램은 Language Mode가 Python 🐍으로 구성된 경우에만 작동합니다. 이는 다른 파일 형식으로 작업할 때 스니펫이 삽입되는 것을 방지하기 위한 것입니다. 모든 스니펫의 접두사는 ultra로 시작하며, 확장 프로그램을 설치한 후 편집기에 ultra를 입력하기만 하면 사용할 수 있는 스니펫 목록이 표시됩니다. Ctrl+Shift ⇑+p를 사용하여 VS Code Command Palette를 열고 Snippets: Insert Snippet 명령을 실행할 수도 있습니다.
코드 스니펫 필드#
많은 스니펫에는 기본 자리 표시자 값이나 이름이 있는 "필드"가 포함되어 있습니다. 예를 들어 predict 메서드의 출력은 r, results, detections, preds 또는 개발자가 선택한 다른 이름의 Python 변수에 저장할 수 있으므로 스니펫에 "필드"가 포함됩니다. 스니펫을 삽입한 후 키보드에서 Tab ⇥을 누르면 커서가 필드 사이를 빠르게 이동합니다. 필드를 선택한 상태에서 새 변수 이름을 입력하면 해당 인스턴스뿐만 아니라 해당 변수에 대한 스니펫 코드의 다른 모든 인스턴스도 변경됩니다!
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.
코드 스니펫 완성#
스니펫의 전체 접두사를 입력하거나 스니펫의 시작 부분부터 입력할 필요도 없습니다. 아래 이미지의 예제를 참조하세요.
스니펫은 가능한 한 설명적인 이름으로 지정되어 있지만, 이는 입력해야 할 내용이 많을 수 있음을 의미하며, 더 빠르게 작업하려는 목적에 오히려 역효과가 날 수 있습니다. 다행히 VS Code에서는 ultra.example-yolo-predict, example-yolo-predict, yolo-predict 또는 ex-yolo-p을 입력해도 원하는 스니펫 옵션에 도달할 수 있습니다! 원하는 스니펫이 실제로 ultra.example-yolo-predict-kwords인 경우 키보드의 ↑ 또는 ↓ 화살표로 원하는 스니펫을 강조 표시한 후 Enter ↵ 또는 Tab ⇥을 누르면 올바른 코드 블록이 삽입됩니다.
Typing ex-yolo-p will still arrive at the correct snippet.
스니펫 카테고리#
다음은 Ultralytics-snippets 확장 프로그램에서 현재 사용할 수 있는 스니펫 카테고리입니다. 앞으로 더 추가될 예정이므로 업데이트를 확인하고 확장 프로그램의 자동 업데이트를 활성화하세요. 누락된 항목이 있다고 생각되면 추가 스니펫을 요청할 수도 있습니다.
| 카테고리 | 시작 접두사 | 설명 |
|---|---|---|
| 예시 | ultra.examples | Ultralytics를 학습하거나 시작하는 데 도움이 되는 예제 코드입니다. 예제는 문서 페이지의 코드와 동일하거나 유사한 코드입니다. |
| Kwargs | ultra.kwargs | 모든 키워드 인수와 기본값이 포함된 train, track, predict 및 val 메서드용 스니펫을 추가하여 개발 속도를 높이세요. |
| Imports | ultra.imports | 일반적인 Ultralytics 객체를 빠르게 가져오는 스니펫입니다. |
| Models | ultra.yolo | 다양한 모델(yolo, sam, rtdetr 등)을 초기화하는 코드 블록을 드롭다운 구성 옵션과 함께 삽입합니다. |
| Results | ultra.result | 추론 결과로 작업할 때 일반적으로 수행하는 작업을 위한 코드 블록입니다. |
| Utilities | ultra.util | Ultralytics 패키지에 기본 제공되는 일반적인 유틸리티에 빠르게 액세스할 수 있으며, 자세한 내용은 Simple Utilities 페이지에서 확인할 수 있습니다. |
예제로 학습하기#
ultra.examples 스니펫은 Ultralytics YOLO 사용의 기본 사항을 시작하는 방법을 학습하려는 모든 사용자에게 매우 유용합니다. 예제 스니펫은 삽입 후 한 번 실행하도록 설계되어 있습니다(일부에는 드롭다운 옵션도 있습니다). 이 페이지 상단의 애니메이션에 그 예가 나와 있으며, 스니펫을 삽입한 후 모든 코드가 선택되고 Shift ⇑+Enter ↵를 사용하여 대화형으로 실행됩니다.
이 페이지의 상단에 표시된 애니메이션과 마찬가지로 ultra.example-yolo-predict 스니펫을 사용하여 다음 코드 예제를 삽입할 수 있습니다. 삽입한 후 구성할 수 있는 유일한 옵션은 모델 스케일이며, 다음 중 하나를 선택할 수 있습니다: n, s, m, l 또는 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개발 가속화#
ultra.examples 이외의 스니펫은 Ultralytics로 작업할 때 개발을 더 쉽고 빠르게 만드는 것을 목표로 합니다. 여러 프로젝트에서 사용되는 일반적인 코드 블록은 모델의 predict 메서드를 사용하여 반환된 Results 목록을 반복 처리하는 것입니다. ultra.result-loop 스니펫이 이 작업에 도움을 줄 수 있습니다.
ultra.result-loop을 사용하면 다음 기본 코드가 삽입됩니다(주석 포함).
# reference https://docs.ultralytics.com/modes/predict#working-with-results
for result in results:
result.boxes.data # torch.Tensor array그러나 Ultralytics는 다양한 task를 지원하므로 추론 결과로 작업할 때 액세스하려는 다른 Results 속성이 있을 수 있으며, 이때 스니펫 필드가 유용합니다.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
키워드 인수#
다양한 Ultralytics task와 mode에는 💯개가 넘는 키워드 인수가 있습니다! 기억해야 할 내용이 많기 때문에 인수가 save_frame인지 save_frames인지 잊기 쉽습니다(참고로 확실히 save_frames입니다). 이때 ultra.kwargs 스니펫이 도움을 줄 수 있습니다!
모든 추론 인수를 포함한 predict 메서드를 삽입하려면 ultra.kwargs-predict를 사용하세요. 그러면 다음 코드가 삽입됩니다(주석 포함).
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
)이 스니펫에는 모든 키워드 인수에 대한 필드와 코드에서 다른 변수를 사용한 경우를 위한 model 및 src 필드도 있습니다. 키워드 인수가 포함된 각 줄에는 참조를 위한 간단한 설명이 포함되어 있습니다.
모든 코드 스니펫#
사용 가능한 스니펫을 확인하는 가장 좋은 방법은 확장 프로그램을 다운로드하고 설치한 후 직접 사용해 보는 것입니다! 미리 목록을 확인하려면 repo 또는 VS Code marketplace의 확장 프로그램 페이지를 방문하여 사용 가능한 모든 스니펫의 표를 확인할 수 있습니다.
결론#
VS Code용 Ultralytics-Snippets 확장 프로그램은 데이터 과학자와 머신 러닝 엔지니어가 Ultralytics YOLO를 사용하여 컴퓨터 비전 애플리케이션을 더욱 효율적으로 구축할 수 있도록 지원합니다. 미리 작성된 코드 스니펫과 유용한 예제를 제공하여 가장 중요한 작업인 혁신적인 솔루션 개발에 집중할 수 있도록 돕습니다. VS Code marketplace의 확장 프로그램 페이지를 방문하여 리뷰를 남기고 의견을 공유해 주세요. ⭐
FAQ#
Ultralytics-Snippets repo의 Issues를 통해 새 스니펫을 요청할 수 있습니다.
100% 무료입니다!
VS Code에서는 미리 보기 창에 더 많거나 적은 정보를 표시하기 위해 Ctrl+Space 키 조합을 사용합니다. 코드 스니펫 접두사를 입력할 때 스니펫 미리 보기가 표시되지 않는다면 이 키 조합으로 미리 보기를 복원할 수 있습니다.
VS Code를 사용 중이며 Ultralytics-snippets 확장 프로그램을 설치하라는 메시지가 표시되기 시작했지만 더 이상 이 메시지를 보고 싶지 않다면, 메시지를 비활성화하는 두 가지 방법이 있습니다.
-
Ultralytics-snippets를 설치하면 더 이상 메시지가 표시되지 않습니다 😆!
-
yolo settings vscode_msg=False을 사용하면 확장 프로그램을 설치하지 않고도 해당 메시지가 표시되지 않도록 비활성화할 수 있습니다. 익숙하지 않은 경우 Ultralytics Settings 페이지에서 자세한 내용을 확인할 수 있습니다.
-
Ultralytics-snippets repo를 방문하여 Issue 또는 Pull Request를 생성하세요!
다른 VS Code 확장 프로그램과 마찬가지로 VS Code의 Extensions 메뉴로 이동하여 제거할 수 있습니다. 메뉴에서 Ultralytics-snippets 확장 프로그램을 찾아 톱니바퀴 아이콘(⚙)을 클릭한 다음 "Uninstall"을 클릭하여 확장 프로그램을 제거하세요.