Ultralytics VS Code Uzantısı#
Watch: How to use Ultralytics Visual Studio Code Extension | Ready-to-Use Code Snippets | Ultralytics YOLO 🎉
Özellikler ve Avantajlar#
✅ Ultralytics ile bilgisayarlı görü uygulamaları geliştiren bir veri bilimci veya machine learning mühendisi misin?
✅ Aynı kod bloklarını tekrar tekrar yazmaktan nefret mi ediyorsun?
✅ export, predict, train, track veya val yöntemlerinin argümanlarını ya da varsayılan değerlerini sürekli unutanlardan mısın?
✅ Ultralytics ile çalışmaya başlamak istiyor ve kod örneklerine başvurmak veya bunları çalıştırmak için daha kolay bir yolun olmasını mı diliyorsun?
✅ Ultralytics ile çalışırken geliştirme döngünü hızlandırmak mı istiyorsun?
Visual Studio Code kullanıyorsan ve yukarıdakilerden herhangi birine 'evet' cevabını verdiysen, VS Code için Ultralytics-snippets uzantısı sana yardımcı olmak için burada! Uzantı hakkında daha fazla bilgi edinmek, nasıl kurulacağını ve nasıl kullanılacağını öğrenmek için okumaya devam et.
Run example code using Ultralytics YOLO in under 20 seconds! 🚀
Ultralytics Topluluğundan İlham Alındı#
Bu uzantıyı oluşturma ilhamı Ultralytics Topluluğundan geldi. Topluluğun benzer konular ve örnekler etrafındaki soruları, bu projenin geliştirilmesine güç verdi. Ayrıca, Ultralytics ekibinin birçok üyesi de kendi işlerini hızlandırmak için VS Code kullanıyor ⚡.
Neden VS Code?#
Visual Studio Code, dünya genelinde geliştiriciler arasında son derece popülerdir ve Stack Overflow Geliştirici Anketi tarafından 2021, 2022, 2023 ve 2024 yıllarında en popüler olarak derecelendirilmiştir. VS Code'un yüksek düzeyde özelleştirilebilir olması, yerleşik özellikleri, geniş uyumluluğu ve genişletilebilirliği sayesinde pek çok geliştiricinin onu kullanması şaşırtıcı değildir. Daha geniş geliştirici topluluğundaki ve Ultralytics Discord, Discourse, Reddit ile GitHub Topluluklarındaki popülaritesi göz önüne alındığında, iş akışını kolaylaştırmaya ve üretkenliği artırmaya yardımcı olacak bir VS Code eklentisi oluşturmak mantıklıydı.
Kod geliştirirken ne kullandığını bize bildirmek ister misin? Discourse community poll sayfasına gidip bize bildirebilirsin! Oradayken en sevdiğimiz bilgisayarlı görü, makine öğrenimi, AI ve geliştirici memes öğelerinden bazılarına göz atabilir veya hatta kendi favorini paylaşabilirsin!
Uzantıyı Kurma#
VS Code eklentilerinin yüklenmesine izin veren herhangi bir kod ortamı, Ultralytics-snippets eklentisiyle uyumlu olmalıdır. Eklenti yayınlandıktan sonra, neovim uygulamasının VS Code eklentileriyle uyumlu hale getirilebileceği keşfedildi. Daha fazla bilgi edinmek için Ultralytics-Snippets deposundaki Readme dosyasının neovim yükleme bölümüne göz at.
VS Code içinde Kurulum#
-
Extensions menu in VS Code konumuna git veya Ctrl+Shift ⇑+x kısayolunu kullan ve Ultralytics-snippets araması yap.
-
Install butonuna tıkla.
VS Code Uzantı Marketinden Kurulum#
-
VS Code Extension Marketplace adresini ziyaret et ve Ultralytics-snippets ara ya da doğrudan extension page on the VS Code marketplace sayfasına git.
-
Install butonuna tıkla ve tarayıcının bir VS Code oturumu başlatmasına izin ver.
-
Uzantıyı kurmak için çıkan yönergeleri izle.
Visual Studio Code Extension Marketplace page for Ultralytics-Snippets
Ultralytics-Snippets Uzantısını Kullanma#
-
🧠 Akıllı Kod Tamamlama: Ultralytics API'sine özel gelişmiş kod tamamlama önerileri ile kodu daha hızlı ve daha doğru bir şekilde yaz.
-
⌛ Artan Geliştirme Hızı: Tekrarlayan kodlama görevlerini ortadan kaldırarak ve önceden oluşturulmuş kod bloğu parçacıklarından yararlanarak zamandan tasarruf et.
-
🔬 İyileştirilmiş Kod Kalitesi: Akıllı kod tamamlama ile daha temiz, daha tutarlı ve hatasız kod yaz.
-
💎 Kolaylaştırılmış İş Akışı: Yaygın görevleri otomatikleştirerek projenin temel mantığına odaklan.
Genel Bakış#
Eklenti yalnızca Language Mode Python 🐍 için yapılandırıldığında çalışacaktır. Bu, diğer dosya türleri üzerinde çalışırken kod parçacıklarının eklenmesini önlemek içindir. Tüm kod parçacıklarının ultra ile başlayan bir öneki vardır ve eklentiyi yükledikten sonra düzenleyicinde basitçe ultra yazmak, kullanılacak olası kod parçacıklarının bir listesini görüntüleyecektir. Ayrıca Ctrl+Shift ⇑+p tuşlarını kullanarak VS Code Command Palette öğesini açabilir ve Snippets: Insert Snippet komutunu çalıştırabilirsin.
Kod Parçacığı Alanları#
Birçok kod parçacığının varsayılan yer tutucu değerlerine veya adlarına sahip "alanları" vardır. Örneğin, predict yönteminden gelen çıktı r, results, detections, preds veya bir geliştiricinin seçtiği herhangi bir adla adlandırılmış bir Python değişkenine kaydedilebilir; bu nedenle kod parçacıkları "alanlar" içerir. Bir kod parçacığı eklendikten sonra klavyendeki Tab ⇥ tuşunu kullanarak imlecin alanlar arasında hızlıca hareket eder. Bir alan seçildiğinde, yeni bir değişken adı yazmak o örneği ve ayrıca o değişken için kod parçacığı kodundaki diğer tüm örnekleri değiştirecektir!
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.
Kod Parçacığı Tamamlamaları#
Parçacığın tam önekini yazman veya parçacığa başından itibaren başlaman gerekmez. Aşağıdaki resimdeki örneğe bak.
Kod parçacıkları olabildiğince açıklayıcı bir şekilde adlandırılmıştır, ancak bu durum yazılacak çok şey olabileceği anlamına gelir ve amaç daha hızlı hareket etmekse bu durum verimsiz olur. Neyse ki VS Code, kullanıcıların ultra.example-yolo-predict, example-yolo-predict, yolo-predict veya hatta ex-yolo-p yazmasına ve yine de amaçlanan kod parçacığı seçeneğine ulaşmasına izin verir! Hedeflenen kod parçacığı aslında ultra.example-yolo-predict-kwords ise, istenen kod parçacığını vurgulamak için klavye oklarını ↑ veya ↓ kullanmak ve Enter ↵ ya da Tab ⇥ tuşuna basmak doğru kod bloğunu ekleyecektir.
Typing ex-yolo-p will still arrive at the correct snippet.
Parçacık Kategorileri#
Bunlar, Ultralytics-snippets eklentisi için mevcut olan güncel kod parçacığı kategorileridir. Gelecekte daha fazlası eklenecektir, bu nedenle güncellemeleri kontrol ettiğinden ve eklenti için otomatik güncellemeleri etkinleştirdiğinden emin ol. Eksik olduğunu düşündüğün request additional snippets öğelerinin eklenmesini de talep edebilirsin.
| Kategori | Başlangıç Öneki | Açıklama |
|---|---|---|
| Örnekler | ultra.examples | Ultralytics'i öğrenmeye yardımcı olacak veya başlangıç yapmanı sağlayacak örnek kodlar. Örnekler, dokümantasyon sayfalarındaki kodların aynısı veya benzerleridir. |
| Kwargs | ultra.kwargs | train, track, predict ve val yöntemleri için tüm anahtar kelime argümanları ve varsayılan değerlerle birlikte kod parçacıkları ekleyerek geliştirmeyi hızlandır. |
| İçe Aktarmalar | ultra.imports | Yaygın Ultralytics nesnelerini hızlıca içe aktarmak için parçacıklar. |
| Modeller | ultra.yolo | Açılır menü yapılandırma seçenekleri dahil olmak üzere çeşitli models (yolo, sam, rtdetr vb.) başlatmak için kod blokları ekle. |
| Sonuçlar | ultra.result | working with inference results ile çalışırken sık kullanılan işlemler için kod blokları. |
| Yardımcı Araçlar | ultra.util | Ultralytics paketinde yerleşik olarak bulunan yaygın araçlara hızlı erişim sağlar, bunlar hakkında daha fazla bilgiyi Simple Utilities page sayfasında öğrenebilirsin. |
Örneklerle Öğrenme#
ultra.examples kod parçacıkları, Ultralytics YOLO ile çalışmanın temellerine nasıl başlayacağını öğrenmek isteyen herkes için çok yararlıdır. Örnek kod parçacıklarının eklendikten sonra çalıştırılması amaçlanmıştır (bazılarında açılır menü seçenekleri de vardır). Bunun bir örneği, kod parçacığı eklendikten sonra tüm kodun seçildiği ve Shift ⇑+Enter ↵ kullanılarak interaktif olarak çalıştırıldığı bu sayfanın top kısmındaki animasyonda gösterilmektedir.
Bu sayfanın top kısmındaki animasyonda gösterildiği gibi, aşağıdaki kod örneğini eklemek için ultra.example-yolo-predict kod parçacığını kullanabilirsin. Eklendikten sonra, yapılandırılabilen tek seçenek n, s, m, l veya x seçeneklerinden herhangi biri olabilen model ölçeğidir.
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 imageGeliştirmeyi Hızlandırma#
ultra.examples dışındaki küçük kod parçacıklarının amacı, Ultralytics ile çalışırken geliştirmeyi daha kolay ve hızlı hale getirmektir. Birçok projede kullanılacak yaygın bir kod bloğu, model predict yöntemi kullanılarak döndürülen Results listesini yinelemektir. ultra.result-loop kod parçacığı bu konuda yardımcı olabilir.
ultra.result-loop kullanılması aşağıdaki varsayılan kodu (yorumlar dahil) ekleyecektir.
# reference https://docs.ultralytics.com/modes/predict/#working-with-results
for result in results:
result.boxes.data # torch.Tensor arrayAncak Ultralytics çok sayıda tasks desteklediğinden, working with inference results ile çalışırken erişmek isteyebileceğin diğer Results öznitelikleri de vardır; snippet fields tam olarak burada güçlü hale gelir.
Once tabbed to the boxes field, a dropdown menu appears to allow selection of another attribute as required.
Anahtar Kelime Argümanları#
Çeşitli Ultralytics tasks ve modes için 100'den fazla anahtar kelime argümanı var! Hatırlanması gereken çok şey var ve argümanın save_frame mi yoksa save_frames mü olduğunu unutmak kolay olabilir (bu arada kesinlikle save_frames). ultra.kwargs kod parçacıkları işte burada yardımcı olabilir!
Tüm çıkarım argümanları dahil olmak üzere predict yöntemini eklemek için, aşağıdaki kodu (yorumlar dahil) ekleyecek olan ultra.kwargs-predict kullan.
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
)Bu kod parçacığı, tüm anahtar kelime argümanları için alanlara sahiptir, ancak kodunda farklı bir değişken kullandığın durumlarda model ve src için de alanlar içerir. Bir anahtar kelime argümanı içeren her satırda, referans olması için kısa bir açıklama yer alır.
Tüm Kod Parçacıkları#
Hangi kod parçacıklarının mevcut olduğunu öğrenmenin en iyi yolu, eklentiyi indirip yüklemek ve denemektir! Merak ediyorsan ve listeden önceden göz atmak istiyorsan, mevcut tüm kod parçacıklarının tablolarını görüntülemek için repo adresini veya extension page on the VS Code marketplace sayfasını ziyaret edebilirsin.
Sonuç#
VS Code için Ultralytics-Snippets eklentisi; veri bilimcilerin ve makine öğrenimi mühendislerinin Ultralytics YOLO kullanarak computer vision uygulamalarını daha verimli bir şekilde geliştirmelerini sağlamak için tasarlanmıştır. Hazır kod parçacıkları ve faydalı örnekler sağlayarak en önemli şeye odaklanmana yardımcı oluyoruz: yenilikçi çözümler yaratmak. Lütfen extension page on the VS Code marketplace adresini ziyaret edip bir değerlendirme bırakarak geri bildirimini paylaş. ⭐
SSS#
Nasıl yeni bir parçacık talep edebilirim?#
Yeni kod parçacıkları, Ultralytics-Snippets repo üzerindeki Issues kullanılarak talep edilebilir.
Ultralytics-Extension ne kadar maliyetli?#
%100 ücretsiz!
Neden bir kod parçacığı önizlemesi göremiyorum?#
VS Code, önizleme penceresinde daha fazla/az bilgi göstermek için Ctrl+Space tuş kombinasyonunu kullanır. Bir kod parçacığı öneki yazdığında bir parçacık önizlemesi görmüyorsan, bu tuş kombinasyonunu kullanmak önizlemeyi geri getirecektir.
Ultralytics'teki uzantı önerisini nasıl devre dışı bırakabilirim?#
VS Code kullanıyorsan ve Ultralytics-snippets uzantısını kurmanı isteyen bir mesaj görmeye başladıysan ve artık bu mesajı görmek istemiyorsan, bu mesajı devre dışı bırakmanın iki yolu vardır.
-
Ultralytics-snippets'ı kur ve mesaj artık gösterilmeyecektir 😆!
-
Eklentiyi yüklemek zorunda kalmadan mesajın görünmesini devre dışı bırakmak için
yolo settings vscode_msg=Falsekullanabilirsin. Bilmiyorsan, hızlı başlangıç sayfasından Ultralytics Ayarları hakkında daha fazla bilgi edinebilirsin.
Yeni bir Ultralytics kod parçacığı fikrim var, nasıl ekletebilirim?#
Ultralytics-snippets repo adresini ziyaret et ve bir Issue veya Pull Request aç!
Ultralytics-Snippets Uzantısını nasıl kaldırabilirim?#
Diğer tüm VS Code uzantıları gibi, VS Code'daki Uzantılar menüsüne giderek kaldırabilirsin. Menüde Ultralytics-snippets uzantısını bul, dişli simgesine (⚙) tıkla ve ardından uzantıyı kaldırmak için "Uninstall"a tıkla.