Ultralytics VS Code 확장 프로그램#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
기능 및 이점#
✅ Ultralytics를 사용하여 컴퓨터 비전 애플리케이션을 구축하는 데이터 사이언티스트 또는 machine learning 엔지니어이신가요?
✅ 동일한 코드 블록을 반복해서 작성하는 것이 지겨우신가요?
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 커뮤니티에서 얻은 영감#
이 확장 프로그램을 구축하게 된 영감은 Ultralytics 커뮤니티에서 얻었습니다. 유사한 주제와 예제에 대한 커뮤니티의 질문들이 이 프로젝트의 개발을 촉진했습니다. 또한, 많은 Ultralytics 팀원들도 VS Code를 사용하여 자신의 작업을 가속화하고 있습니다 ⚡.
왜 VS Code인가요?#
Visual Studio Code는 전 세계 개발자들 사이에서 매우 인기가 높으며, Stack Overflow 개발자 설문조사에서 2021년, 2022년, 2023년, 2024년에 가장 인기 있는 도구로 선정되었습니다. VS Code는 높은 수준의 사용자 지정, 내장 기능, 광범위한 호환성 및 확장성을 제공하므로 수많은 개발자가 사용하는 것은 당연한 결과입니다. 더 넓은 개발자 커뮤니티뿐만 아니라 Ultralytics Discord, Discourse, Reddit, GitHub 커뮤니티에서의 인기를 고려할 때, 워크플로를 간소화하고 생산성을 높이는 데 도움이 되는 VS Code 확장을 만드는 것은 당연한 선택이었습니다.
코드 개발 시 어떤 도구를 사용하시는지 알려주고 싶으신가요? Discourse community poll을 방문하여 알려주세요! 방문하신 김에 저희가 엄선한 컴퓨터 비전, 머신러닝, AI 및 개발자 memes를 구경하시거나 가장 좋아하는 밈을 공유해 보세요!
확장 프로그램 설치하기#
VS Code 확장 프로그램 설치를 허용하는 모든 코드 환경은 Ultralytics-snippets 확장 프로그램과 호환되어야 합니다. 확장 프로그램 배포 후 neovim을(를) VS Code 확장 프로그램과 호환되도록 만들 수 있음이 발견되었습니다. 자세한 내용은 Ultralytics-Snippets 저장소의 Readme 중 neovim 설치 섹션을 참조하세요.
VS Code에 설치하기#
-
Extensions menu in VS Code로 이동하거나 단축키 Ctrl+Shift ⇑+x를 사용하여 Ultralytics-snippets를 검색하세요.
-
Install 버튼을 클릭하십시오.
VS Code 확장 프로그램 마켓플레이스에서 설치하기#
-
VS Code Extension Marketplace를 방문하여 Ultralytics-snippets를 검색하거나 extension page on the 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 확장 프로그램에서 현재 사용할 수 있는 스니펫 카테고리입니다. 향후 더 많은 기능이 추가될 예정이므로 업데이트를 확인하시고 확장 프로그램의 자동 업데이트를 활성화해 두세요. 누락되었다고 생각되는 추가 스니펫이 있는 경우 request additional snippets를 통해 요청할 수도 있습니다.
| 카테고리 | 시작 접두사 | 설명 |
|---|---|---|
| 예시 | ultra.examples | 학습을 돕거나 Ultralytics를 시작하기 위한 예제 코드입니다. 예제는 문서 페이지의 코드를 복사하거나 유사하게 구성되었습니다. |
| Kwargs | ultra.kwargs | 모든 키워드 인수와 기본값이 포함된 train, track, predict, val 메서드용 스니펫을 추가하여 개발 속도를 높이세요. |
| Imports | ultra.imports | 공통 Ultralytics 객체를 빠르게 가져오기 위한 스니펫입니다. |
| Models | ultra.yolo | 드롭다운 설정 옵션을 포함하여 다양한 models(yolo, sam, rtdetr 등)을 초기화하기 위한 코드 블록을 삽입합니다. |
| 결과 | ultra.result | working with inference results 시 공통 작업에 대한 코드 블록입니다. |
| 유틸리티 | ultra.util | Ultralytics 패키지에 내장된 공통 유틸리티에 빠르게 액세스할 수 있으며, 이에 대한 자세한 내용은 Simple Utilities page에서 확인할 수 있습니다. |
예제를 통한 학습#
ultra.examples 스니펫은 Ultralytics YOLO 작업의 기초를 시작하는 방법을 배우고자 하는 모든 사용자에게 매우 유용합니다. 예제 스니펫은 삽입되면 바로 실행되도록 만들어져 있습니다(일부 옵션에는 드롭다운 옵션도 포함되어 있음). 이에 대한 예시는 이 페이지 top의 애니메이션에 나와 있으며, 스니펫이 삽입된 후 모든 코드가 선택되고 Shift ⇑+Enter ↵를 사용하여 대화형으로 실행됩니다.
이 페이지 top의 애니메이션에서 볼 수 있듯이, 스니펫 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는 수많은 tasks를 지원하므로, working with inference results 시 액세스하고 싶은 다른 Results 속성이 있을 수 있으며, 이때 snippet fields가 강력한 기능을 발휘합니다.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
키워드 인수#
모든 다양한 Ultralytics tasks 및 modes에 대해 100개가 넘는 키워드 인수가 존재합니다! 기억해야 할 양이 너무 많아서 인수가 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나 extension page on the VS Code marketplace를 방문하여 사용 가능한 모든 스니펫 테이블을 볼 수 있습니다.
결론#
VS Code용 Ultralytics-Snippets 확장은 데이터 사이언티스트와 머신러닝 엔지니어가 Ultralytics YOLO를 사용하여 computer vision 애플리케이션을 더 효율적으로 구축할 수 있도록 지원하기 위해 설계되었습니다. 미리 빌드된 코드 스니펫과 유용한 예제를 제공함으로써, 가장 중요한 작업인 혁신적인 솔루션 생성에 집중할 수 있도록 돕습니다. extension page on the VS Code marketplace를 방문하여 리뷰를 남기고 피드백을 공유해 주세요. ⭐
FAQ#
새로운 스니펫을 요청하려면 어떻게 해야 하나요?#
새로운 스니펫은 Ultralytics-Snippets repo의 Issues를 사용하여 요청할 수 있습니다.
Ultralytics 확장 프로그램의 비용은 얼마인가요?#
100% 무료입니다!
코드 스니펫 미리보기가 보이지 않는 이유는 무엇인가요?#
VS Code는 Ctrl+Space 키 조합을 사용하여 미리보기 창에서 정보를 표시하거나 숨깁니다. 코드 스니펫 접두사를 입력할 때 스니펫 미리보기가 보이지 않는다면, 이 키 조합을 사용하여 미리보기를 복구하십시오.
Ultralytics에서 확장 프로그램 추천을 비활성화하려면 어떻게 해야 하나요?#
VS Code를 사용하면서 Ultralytics-snippets 확장 프로그램을 설치하라는 메시지가 나타나기 시작했고, 더 이상 이 메시지를 보고 싶지 않다면 두 가지 방법으로 메시지를 비활성화할 수 있습니다.
-
Ultralytics-snippets를 설치하면 더 이상 메시지가 표시되지 않습니다 😆!
-
확장 프로그램을 설치하지 않고도 메시지가 표시되지 않도록
yolo settings vscode_msg=False을(를) 사용할 수 있습니다. 잘 모르시겠다면 빠른 시작 페이지에서 Ultralytics 설정에 대해 자세히 알아보세요.
새로운 Ultralytics 코드 스니펫에 대한 아이디어가 있는데, 어떻게 추가할 수 있나요?#
Ultralytics-snippets repo를 방문하여 Issue나 Pull Request를 열어주세요!
Ultralytics-Snippets 확장 프로그램을 제거하려면 어떻게 해야 하나요?#
다른 VS Code 확장 프로그램과 마찬가지로, VS Code의 확장 프로그램 메뉴로 이동하여 제거할 수 있습니다. 메뉴에서 Ultralytics-snippets 확장 프로그램을 찾고 톱니바퀴 아이콘(⚙)을 클릭한 다음 "Uninstall"을 클릭하여 확장 프로그램을 제거하십시오.