Ultralytics VS Code 확장 프로그램#
시청: Ultralytics Visual Studio Code 확장 프로그램 사용 방법 | 바로 사용 가능한 코드 스니펫 | Ultralytics YOLO 🎉
기능 및 장점#
✅ Ultralytics로 컴퓨터 비전 애플리케이션을 개발하는 데이터 과학자 또는 머신러닝 엔지니어이신가요?
✅ 같은 코드 블록을 반복해서 작성하는 일이 번거로우신가요?
✅ train, val, predict, export 또는 track 메서드의 인수나 기본값을 자주 잊으시나요?
✅ Ultralytics를 시작하려고 하며 코드 예제를 더 쉽게 참조하거나 실행할 방법을 찾고 계신가요?
✅ Ultralytics를 사용할 때 개발 주기를 단축하고 싶으신가요?
Visual Studio Code를 사용하고 위 항목 중 하나라도 '예'라고 답했다면, VS Code용 Ultralytics-snippets 확장 프로그램이 도움을 드립니다! 확장 프로그램과 설치 및 사용 방법에 대해 계속 읽어보세요.
20초 이내에 Ultralytics YOLO를 사용해 예제 코드를 실행하세요! 🚀
Ultralytics 커뮤니티에서 얻은 영감#
이 확장 프로그램은 Ultralytics 커뮤니티에서 영감을 얻어 개발되었습니다. 비슷한 주제와 예제에 관한 커뮤니티의 질문이 이 프로젝트 개발의 원동력이 되었습니다. 또한 Ultralytics 팀의 많은 구성원이 자신의 업무를 효율적으로 처리하기 위해 VS Code를 사용합니다 ⚡.
왜 VS Code인가요?#
Visual Studio Code는 전 세계 개발자 사이에서 큰 인기를 얻고 있으며 Stack Overflow Developer Survey에서 2021, 2022, 2023, 2024년에 가장 인기 있는 도구로 선정되었습니다. 높은 수준의 사용자 지정 기능, 내장 기능, 폭넓은 호환성 및 확장성을 고려하면 많은 개발자가 VS Code를 사용하는 것도 놀라운 일이 아닙니다. 개발자 커뮤니티 전반과 Ultralytics의 Discord, Discourse, Reddit, GitHub 커뮤니티에서 폭넓게 사용되는 만큼, 워크플로를 간소화하고 생산성을 높일 수 있도록 VS Code 확장 프로그램을 개발하는 것은 자연스러운 선택이었습니다.
코드 개발에 어떤 도구를 사용하는지 알려주시겠어요? Discourse의 커뮤니티 설문조사에 참여해 알려주세요! 방문하신 김에 컴퓨터 비전, 머신러닝, AI 및 개발자 관련 밈을 살펴보거나 가장 좋아하는 밈을 게시해 보세요!
확장 프로그램 설치#
VS Code 확장 프로그램을 설치할 수 있는 코드 환경이라면 Ultralytics-snippets 확장 프로그램과 호환되어야 합니다. 확장 프로그램을 게시한 후 neovim을 VS Code 확장 프로그램과 호환되도록 설정할 수 있다는 사실을 확인했습니다. 자세한 내용은 Ultralytics-Snippets 저장소의 Readme에서 neovim 설치 섹션을 참조하세요.
VS Code에 설치하기#
-
VS Code의 확장 프로그램 메뉴로 이동하거나 바로 가기 Ctrl+Shift ⇑+x를 사용한 다음 Ultralytics-snippets를 검색하세요.
-
Install 버튼을 클릭하세요.
VS Code 확장 프로그램 마켓플레이스에서 설치하기#
-
VS Code 확장 프로그램 마켓플레이스를 방문해 Ultralytics-snippets를 검색하거나 VS Code 마켓플레이스의 확장 프로그램 페이지로 바로 이동하세요.
-
Install 버튼을 클릭하고 브라우저에서 VS Code 세션을 실행하도록 허용하세요.
-
안내에 따라 확장 프로그램을 설치하세요.
Ultralytics-Snippets의 Visual Studio Code 확장 프로그램 마켓플레이스 페이지
Ultralytics-Snippets 확장 프로그램 사용하기#
-
🧠 지능형 코드 완성: Ultralytics API에 맞춤화된 고급 코드 완성 제안으로 더 빠르고 정확하게 코드를 작성하세요.
-
⌛ 개발 속도 향상: 반복적인 코딩 작업을 줄이고 미리 작성된 코드 블록 스니펫을 활용해 시간을 절약하세요.
-
🔬 코드 품질 개선: 지능형 코드 완성 기능으로 더 깔끔하고 일관되며 오류 없는 코드를 작성하세요.
-
💎 간소화된 워크플로: 일반적인 작업을 자동화해 프로젝트의 핵심 로직에 집중하세요.
개요#
확장 프로그램은 언어 모드가 Python으로 설정된 경우에만 작동합니다 🐍. 이는 다른 파일 형식에서 작업할 때 스니펫이 삽입되는 것을 방지하기 위한 것입니다. 모든 스니펫의 접두사는 ultra로 시작하며, 확장 프로그램을 설치한 후 편집기에서 ultra를 입력하기만 하면 사용할 수 있는 스니펫 목록이 표시됩니다. Ctrl+Shift ⇑+p를 사용해 VS Code 명령 팔레트를 열고 Snippets: Insert Snippet 명령을 실행할 수도 있습니다.
코드 스니펫 필드#
많은 스니펫에는 기본 플레이스홀더 값이나 이름이 설정된 "필드"가 있습니다. 예를 들어 predict 메서드의 출력은 r, results, detections, preds 또는 개발자가 원하는 다른 이름의 Python 변수에 저장할 수 있으므로 스니펫에는 "필드"가 포함됩니다. 스니펫을 삽입한 후 키보드에서 Tab ⇥를 누르면 커서가 각 필드 사이를 빠르게 이동합니다. 필드를 선택한 상태에서 새 변수 이름을 입력하면 해당 항목뿐 아니라 스니펫 코드에서 해당 변수가 사용된 모든 항목도 변경됩니다!
스니펫을 삽입한 후 model의 이름을 변경하면 world_model 모든 인스턴스가 업데이트됩니다. Tab ⇥을 누르면 다음 필드로 이동합니다. 이때 드롭다운 메뉴가 열려 모델 스케일을 선택할 수 있으며, 다음 필드로 이동하면 world 또는 worldv2 모델 변형을 선택할 수 있는 또 다른 드롭다운이 표시됩니다.
코드 스니펫 자동 완성#
스니펫의 전체 접두사를 입력하거나 접두사의 첫 부분부터 입력할 필요는 없습니다. 아래 이미지에서 예제를 확인하세요.
스니펫 이름은 가능한 한 설명적으로 지정되어 있지만, 그만큼 입력할 내용이 많아져 더 빠르게 작업하려는 목표에 역효과를 낼 수 있습니다. 다행히 VS Code에서는 ultra.example-yolo-predict, example-yolo-predict, yolo-predict 또는 ex-yolo-p만 입력해도 원하는 스니펫 옵션을 찾을 수 있습니다! 원하는 스니펫이 실제로 ultra.example-yolo-predict-kwords라면 키보드 화살표 ↑ 또는 ↓로 원하는 스니펫을 강조 표시한 후 Enter ↵ 또는 Tab ⇥을 눌러 올바른 코드 블록을 삽입하면 됩니다.
ex-yolo-p를 입력해도 올바른 스니펫을 여전히 사용할 수 있습니다.
스니펫 카테고리#
다음은 Ultralytics-snippets 확장 프로그램에서 현재 사용할 수 있는 스니펫 카테고리입니다. 앞으로 더 추가될 예정이므로 업데이트를 확인하고 확장 프로그램 자동 업데이트를 활성화하세요. 누락된 항목이 있다고 생각되면 추가 스니펫을 요청할 수도 있습니다.
| 카테고리 | 시작 접두사 | 설명 |
|---|---|---|
| 예제 | ultra.examples | Ultralytics를 배우거나 시작하는 데 도움이 되는 예제 코드입니다. 예제는 문서 페이지에 있는 코드의 복사본이거나 유사한 코드입니다. |
| 키워드 인수 | ultra.kwargs | 모든 키워드 인수와 기본값이 포함된 train, val, predict, track 메서드 스니펫을 추가해 개발 속도를 높이세요. |
| 가져오기 | ultra.imports | 일반적인 Ultralytics 객체를 빠르게 가져오는 스니펫입니다. |
| 모델 | ultra.yolo | 드롭다운 구성 옵션이 포함된 다양한 모델(yolo, sam, rtdetr 등)을 초기화하는 코드 블록을 삽입합니다. |
| 결과 | ultra.result | 추론 결과 작업을 위한 일반적인 작업의 코드 블록입니다. |
| 유틸리티 | 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() # 각 결과 이미지를 보려면 주석을 해제하세요개발 속도 높이기#
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는 다양한 작업을 지원하므로 추론 결과 작업 시 액세스하려는 다른 Results 속성이 있을 수 있습니다. 이때 스니펫 필드가 유용합니다.
boxes 필드로 탭 이동하면 필요에 따라 다른 속성을 선택할 수 있는 드롭다운 메뉴가 표시됩니다.
키워드 인수#
다양한 Ultralytics 작업과 모드에는 💯개가 넘는 키워드 인수가 있습니다! 기억해야 할 내용이 많아 인수가 save_frame인지 save_frames인지 헷갈리기 쉽습니다(참고로 정답은 save_frames입니다). 이때 ultra.kwargs 스니펫이 도움이 됩니다!
모든 추론 인수를 포함한 predict 메서드를 삽입하려면 ultra.kwargs-predict를 사용하세요. 그러면 다음 코드(주석 포함)가 삽입됩니다.
model.predict(
source=src, # (str, optional) 이미지 또는 동영상의 소스 디렉터리
imgsz=640, # (int | list) predict용 입력 이미지 크기(int 또는 list[h,w])
conf=0.25, # (float) 최소 신뢰도 임계값
iou=0.7, # (float) NMS의 교집합 대비 합집합(IoU) 임계값
vid_stride=1, # (int) 동영상 프레임 레이트 스트라이드
stream_buffer=False, # (bool) 입력 프레임을 대기열에 버퍼링(True)하거나 가장 최근 프레임만 유지(False)
visualize=False, # (bool) 클래스 활성화 히트맵 저장
augment=False, # (bool) 예측 소스에 이미지 증강 적용
agnostic_nms=False, # (bool) 클래스 비종속 NMS
classes=None, # (int | list[int], optional) 클래스로 결과 필터링(예: classes=0 또는 classes=[0,2,3])
retina_masks=False, # (bool) 고해상도 세그멘테이션 마스크 사용
embed=None, # (list[int], optional) 지정된 레이어에서 특징 벡터/임베딩 반환
show=False, # (bool) 환경에서 허용하는 경우 예측된 이미지와 동영상 표시
save=True, # (bool) 예측 결과 저장
save_frames=False, # (bool) 예측된 개별 동영상 프레임 저장
save_txt=False, # (bool) 결과를 .txt 파일로 저장
save_conf=False, # (bool) 신뢰도 점수와 함께 결과 저장
save_crop=False, # (bool) 결과가 포함된 잘라낸 이미지 저장
stream=False, # (bool) 생성기를 반환하여 메모리 사용량을 줄인 상태로 긴 동영상 또는 많은 이미지 처리
verbose=True, # (bool) 터미널에서 상세 추론 로그 활성화/비활성화
)이 스니펫에는 모든 키워드 인수의 필드뿐 아니라 코드에서 다른 변수를 사용한 경우를 위한 model 및 src 필드도 있습니다. 키워드 인수가 포함된 각 줄에는 참고할 수 있도록 간단한 설명이 포함되어 있습니다.
모든 코드 스니펫#
사용할 수 있는 스니펫을 확인하는 가장 좋은 방법은 확장 프로그램을 다운로드하고 설치한 후 직접 사용해 보는 것입니다! 먼저 목록을 살펴보고 싶다면 저장소 또는 VS Code 마켓플레이스의 확장 프로그램 페이지를 방문해 사용 가능한 모든 스니펫의 표를 확인하세요.
결론#
VS Code용 Ultralytics-Snippets 확장 프로그램은 데이터 과학자와 머신러닝 엔지니어가 Ultralytics YOLO를 사용해 컴퓨터 비전 애플리케이션을 더욱 효율적으로 개발할 수 있도록 지원합니다. 미리 작성된 코드 스니펫과 유용한 예제를 제공하여 가장 중요한 일인 혁신적인 솔루션 개발에 집중할 수 있도록 돕습니다. VS Code 마켓플레이스의 확장 프로그램 페이지를 방문해 리뷰를 남기고 의견을 공유해 주세요. ⭐
자주 묻는 질문#
Ultralytics-Snippets 저장소의 Issues를 통해 새 스니펫을 요청할 수 있습니다.
100% 무료입니다!
VS Code에서는 Ctrl+Space 키 조합을 사용하여 미리보기 창에 표시되는 정보를 더 많이 또는 적게 볼 수 있습니다. 코드 스니펫 접두사를 입력할 때 스니펫 미리보기가 표시되지 않는다면 이 키 조합을 사용하여 미리보기를 다시 표시할 수 있습니다.
VS Code를 사용하면서 Ultralytics-snippets 확장 프로그램 설치를 요청하는 메시지가 표시되기 시작했으며 더 이상 이 메시지를 보고 싶지 않다면, 메시지를 비활성화하는 방법은 두 가지입니다.
-
Ultralytics-snippets를 설치하면 메시지가 더 이상 표시되지 않습니다 😆!
-
확장 프로그램을 설치하지 않고
yolo settings vscode_msg=False을 사용하여 메시지가 표시되지 않도록 설정할 수 있습니다. 익숙하지 않다면 Ultralytics 설정 페이지에서 자세히 알아보세요.
-
Ultralytics-snippets 저장소를 방문하여 Issue 또는 Pull Request를 열어주세요!
다른 VS Code 확장 프로그램과 마찬가지로 VS Code의 Extensions 메뉴에서 제거할 수 있습니다. 메뉴에서 Ultralytics-snippets 확장 프로그램을 찾아 톱니바퀴 아이콘(⚙)을 클릭한 다음 "Uninstall"을 클릭하여 확장 프로그램을 제거하세요.