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 커뮤니티에서 영감을 받음

이 확장 프로그램을 개발하게 된 영감은 Ultralytics 커뮤니티에서 얻었습니다. 커뮤니티에서 제기된 유사한 주제와 예제에 관한 질문들이 이 프로젝트의 개발 원동력이 되었습니다. 또한, 많은 Ultralytics 팀원들이 각자의 업무 속도를 높이기 위해 VS Code를 사용합니다 ⚡.

왜 VS Code인가요?

Visual Studio Code는 전 세계 개발자들에게 매우 인기가 높으며, 2021, 2022, 20232024 Stack Overflow 개발자 설문조사에서 가장 인기 있는 IDE로 선정되었습니다. 높은 수준의 사용자 지정 기능, 내장된 기능, 광범위한 호환성 및 확장성 덕분에 많은 개발자가 이 도구를 사용하는 것은 놀라운 일이 아닙니다. 더 넓은 개발자 커뮤니티와 Ultralytics Discord, Discourse, RedditGitHub 커뮤니티에서의 인기를 고려할 때, 워크플로를 간소화하고 생산성을 높이는 데 도움이 되는 VS Code 확장 프로그램을 만드는 것은 매우 타당한 선택이었습니다.

코드 개발에 무엇을 사용하시는지 알려주시겠어요? Discourse 커뮤니티 설문조사 페이지로 이동하여 알려주세요! 그곳에서 우리가 좋아하는 컴퓨터 비전, 머신러닝, AI 및 개발자 밈(memes)을 확인하거나 가장 좋아하는 밈을 게시해 보세요!

확장 프로그램 설치하기

참고

Any code environment that will allow for installing VS Code extensions should be compatible with the Ultralytics-snippets extension. After publishing the extension, it was discovered that neovim can be made compatible with VS Code extensions. To learn more see the neovim install section of the Readme in the Ultralytics-Snippets repository.

VS Code에서 설치하기

  1. VS Code의 확장 프로그램 메뉴로 이동하거나 단축키 Ctrl+Shift ⇑+x를 사용하여 Ultralytics-snippets를 검색하십시오.

  2. Install 버튼을 클릭하십시오.


VS Code extension menu

VS Code 확장 프로그램 마켓플레이스에서 설치하기

  1. VS Code 확장 프로그램 마켓플레이스를 방문하여 Ultralytics-snippets를 검색하거나 바로 VS Code 마켓플레이스의 확장 프로그램 페이지로 이동하십시오.

  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추론 결과 작업 시의 일반적인 작업을 위한 코드 블록입니다.
유틸리티ultra.utilUltralytics 패키지에 내장된 일반 유틸리티에 빠르게 액세스할 수 있도록 제공합니다. 이에 대한 자세한 내용은 간단한 유틸리티 페이지에서 확인하십시오.

예제를 통한 학습

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

개발 가속화

The aim for snippets other than the ultra.examples are for making development easier and quicker when working with Ultralytics. A common code block to be used in many projects, is to iterate the list of Results returned from using the model predict method. The ultra.result-loop snippet can help with this.

예시

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 속성이 있을 수 있으며, 이때 스니펫 필드가 강력한 기능을 발휘합니다.


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 작업모드에 대한 💯 개 이상의 키워드 인수가 있습니다! 외우기에는 너무 많으며, 인수가 save_frame인지 save_frames인지 잊어버리기 쉽습니다(참고로 save_frames가 맞습니다). 바로 이때 ultra.kwargs 스니펫이 도움이 될 수 있습니다!

예시

To insert the predict method, including all inference arguments, use ultra.kwargs-predict, which will insert the following code (including comments).

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
)

이 스니펫에는 모든 키워드 인수를 위한 필드가 있을 뿐만 아니라, 코드에서 다른 변수를 사용했을 경우를 대비해 modelsrc를 위한 필드도 있습니다. 키워드 인수가 포함된 각 줄에는 참조를 위한 간략한 설명이 포함되어 있습니다.

모든 코드 스니펫

사용 가능한 스니펫을 확인하는 가장 좋은 방법은 확장 프로그램을 다운로드하여 직접 설치하고 사용해 보는 것입니다! 미리 목록을 확인하고 싶다면 저장소 또는 VS Code 마켓플레이스의 확장 프로그램 페이지를 방문하여 사용 가능한 모든 스니펫에 대한 표를 확인하십시오.

결론

VS Code용 Ultralytics-Snippets 확장 프로그램은 데이터 과학자와 머신러닝 엔지니어가 Ultralytics YOLO를 사용하여 컴퓨터 비전 애플리케이션을 더 효율적으로 구축할 수 있도록 설계되었습니다. 사전 구축된 코드 스니펫과 유용한 예제를 제공함으로써 가장 중요한 혁신적인 솔루션 창출에 집중할 수 있도록 돕습니다. VS Code 마켓플레이스의 확장 프로그램 페이지를 방문하여 리뷰를 남기고 의견을 공유해 주세요. ⭐

FAQ

새 스니펫을 어떻게 요청하나요?

새 스니펫은 Ultralytics-Snippets 저장소의 이슈(Issues)를 통해 요청할 수 있습니다.

Ultralytics 확장 프로그램의 비용은 얼마인가요?

100% 무료입니다!

코드 스니펫 미리보기가 보이지 않는 이유는 무엇인가요?

VS Code는 Ctrl+Space 키 조합을 사용하여 미리보기 창에서 더 많거나 적은 정보를 표시합니다. 코드 스니펫 접두사를 입력할 때 스니펫 미리보기가 보이지 않는다면, 이 키 조합을 사용하면 미리보기가 복구될 것입니다.

Ultralytics에서 확장 프로그램 추천을 어떻게 비활성화하나요?

VS Code를 사용 중인데 Ultralytics-snippets 확장 프로그램을 설치하라는 메시지가 표시되기 시작했고 더 이상 보고 싶지 않다면, 이 메시지를 비활성화하는 두 가지 방법이 있습니다.

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

  2. You can be using yolo settings vscode_msg False to disable the message from showing without having to install the extension. You can learn more about the Ultralytics Settings on the quickstart page if you're unfamiliar.

새로운 Ultralytics 코드 스니펫에 대한 아이디어가 있는데, 어떻게 추가할 수 있나요?

Ultralytics-snippets 저장소를 방문하여 이슈를 열거나 풀 리퀘스트(Pull Request)를 보내주십시오!

Ultralytics-Snippets 확장 프로그램은 어떻게 제거하나요?

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


VS Code extension menu

댓글