Ultralytics YOLO27:

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 확장 프로그램이 도움을 드릴 수 있습니다! 확장 프로그램, 설치 방법 및 사용 방법에 대해 자세히 알아보려면 계속 읽어 보세요.


Snippet Prediction Preview
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, RedditGitHub Communities에서의 인기를 고려하면, 워크플로를 간소화하고 생산성을 높이는 데 도움이 되는 VS Code 확장 프로그램을 구축하는 것이 합리적이었습니다.

코드 개발에 어떤 도구를 사용하는지 알려 주시겠어요? Discourse 커뮤니티 설문조사에 참여하여 알려 주세요! 방문하신 김에 컴퓨터 비전, 머신 러닝, AI 및 개발자 관련 저희가 가장 좋아하는 을 살펴보거나, 가장 좋아하는 밈을 직접 게시해 보세요!

확장 프로그램 설치#

참고

VS Code 확장 프로그램을 설치할 수 있는 모든 코드 환경은 Ultralytics-snippets 확장 프로그램과 호환되어야 합니다. 확장 프로그램을 게시한 후 neovim을 VS Code 확장 프로그램과 호환되도록 구성할 수 있다는 사실이 확인되었습니다. 자세한 내용은 Ultralytics-Snippets repository의 Readme에서 neovim 설치 섹션을 참조하세요.

VS Code에 설치하기#

  1. VS Code의 Extensions 메뉴로 이동하거나 Ctrl+Shift ⇑+x 단축키를 사용한 다음 Ultralytics-snippets를 검색하세요.

  2. Install 버튼을 클릭하세요.


VS Code extension menu

VS Code Extension Marketplace에서 설치하기#

  1. VS Code Extension Marketplace를 방문하여 Ultralytics-snippets를 검색하거나 VS Code marketplace의 확장 프로그램 페이지로 바로 이동하세요.

  2. Install 버튼을 클릭하고 브라우저에서 VS Code 세션을 시작하도록 허용하세요.

  3. 표시되는 안내에 따라 확장 프로그램을 설치하세요.


VS Code marketplace extension install
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 ⇥을 누르면 커서가 필드 사이를 빠르게 이동합니다. 필드를 선택한 상태에서 새 변수 이름을 입력하면 해당 인스턴스뿐만 아니라 해당 변수에 대한 스니펫 코드의 다른 모든 인스턴스도 변경됩니다!


Multi-update field and options
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 ⇥을 누르면 올바른 코드 블록이 삽입됩니다.


VS Code incomplete code snippet preview
Typing ex-yolo-p will still arrive at the correct snippet.

스니펫 카테고리#

다음은 Ultralytics-snippets 확장 프로그램에서 현재 사용할 수 있는 스니펫 카테고리입니다. 앞으로 더 추가될 예정이므로 업데이트를 확인하고 확장 프로그램의 자동 업데이트를 활성화하세요. 누락된 항목이 있다고 생각되면 추가 스니펫을 요청할 수도 있습니다.

카테고리시작 접두사설명
예시ultra.examplesUltralytics를 학습하거나 시작하는 데 도움이 되는 예제 코드입니다. 예제는 문서 페이지의 코드와 동일하거나 유사한 코드입니다.
Kwargsultra.kwargs모든 키워드 인수와 기본값이 포함된 train, track, predictval 메서드용 스니펫을 추가하여 개발 속도를 높이세요.
Importsultra.imports일반적인 Ultralytics 객체를 빠르게 가져오는 스니펫입니다.
Modelsultra.yolo다양한 모델(yolo, sam, rtdetr 등)을 초기화하는 코드 블록을 드롭다운 구성 옵션과 함께 삽입합니다.
Resultsultra.result추론 결과로 작업할 때 일반적으로 수행하는 작업을 위한 코드 블록입니다.
Utilitiesultra.utilUltralytics 패키지에 기본 제공되는 일반적인 유틸리티에 빠르게 액세스할 수 있으며, 자세한 내용은 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 속성이 있을 수 있으며, 이때 스니펫 필드가 유용합니다.


VS Code YOLO results visualization options
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.

키워드 인수#

다양한 Ultralytics taskmode에는 💯개가 넘는 키워드 인수가 있습니다! 기억해야 할 내용이 많기 때문에 인수가 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
)

이 스니펫에는 모든 키워드 인수에 대한 필드와 코드에서 다른 변수를 사용한 경우를 위한 modelsrc 필드도 있습니다. 키워드 인수가 포함된 각 줄에는 참조를 위한 간단한 설명이 포함되어 있습니다.

모든 코드 스니펫#

사용 가능한 스니펫을 확인하는 가장 좋은 방법은 확장 프로그램을 다운로드하고 설치한 후 직접 사용해 보는 것입니다! 미리 목록을 확인하려면 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 확장 프로그램을 설치하라는 메시지가 표시되기 시작했지만 더 이상 이 메시지를 보고 싶지 않다면, 메시지를 비활성화하는 두 가지 방법이 있습니다.

    1. Ultralytics-snippets를 설치하면 더 이상 메시지가 표시되지 않습니다 😆!

    2. yolo settings vscode_msg=False을 사용하면 확장 프로그램을 설치하지 않고도 해당 메시지가 표시되지 않도록 비활성화할 수 있습니다. 익숙하지 않은 경우 Ultralytics Settings 페이지에서 자세한 내용을 확인할 수 있습니다.

  • Ultralytics-snippets repo를 방문하여 Issue 또는 Pull Request를 생성하세요!

  • 다른 VS Code 확장 프로그램과 마찬가지로 VS Code의 Extensions 메뉴로 이동하여 제거할 수 있습니다. 메뉴에서 Ultralytics-snippets 확장 프로그램을 찾아 톱니바퀴 아이콘(⚙)을 클릭한 다음 "Uninstall"을 클릭하여 확장 프로그램을 제거하세요.


    VS Code extension menu

댓글