Ultralytics VS Code Uzantısı#
İzle: Ultralytics Visual Studio Code eklentisi nasıl kullanılır | Kullanıma hazır kod parçacıkları | Ultralytics YOLO 🎉
Özellikler ve Avantajlar#
✅ Ultralytics ile bilgisayarlı görü uygulamaları geliştiren bir veri bilimci veya makine öğrenimi mühendisi misin?
✅ Aynı kod bloklarını tekrar tekrar yazmaktan nefret mi ediyorsun?
✅ train, val, predict, export veya track yöntemlerinin argümanlarını ya da varsayılan değerlerini sürekli unutuyor musun?
✅ Ultralytics'i kullanmaya başlamak istiyor ve kod örneklerine başvurmanın ya da bu örnekleri çalıştırmanın daha kolay bir yolunu mu arıyorsun?
✅ Ultralytics ile çalışırken geliştirme döngünü hızlandırmak mı istiyorsun?
Visual Studio Code kullanıyor ve yukarıdakilerden herhangi birine 'evet' yanıtı verdiysen VS Code için Ultralytics-snippets uzantısı sana yardımcı olmak için burada! Uzantı, nasıl kurulacağı ve nasıl kullanılacağı hakkında daha fazla bilgi edinmek için okumaya devam et.
Ultralytics YOLO ile örnek kodu 20 saniyeden kısa sürede çalıştır! 🚀
Ultralytics Topluluğundan İlham Aldı#
Bu uzantıyı geliştirme fikri Ultralytics Topluluğundan geldi. Topluluğun benzer konulardaki soruları ve örnekleri bu projenin geliştirilmesine yön verdi. Ayrıca Ultralytics ekibinin pek çok üyesi kendi çalışmalarını hızlandırmak için VS Code kullanıyor ⚡.
Neden VS Code?#
Visual Studio Code dünya genelindeki geliştiriciler arasında son derece popülerdir ve Stack Overflow Geliştirici Anketi'nde 2021, 2022, 2023 ve 2024 yıllarında en popüler seçenek olarak sıralanmıştır. VS Code'un yüksek düzeyde özelleştirilebilir olması, yerleşik özellikleri, geniş uyumluluğu ve genişletilebilirliği göz önüne alındığında bu kadar çok geliştiricinin onu kullanması şaşırtıcı değil. Geniş geliştirici topluluğunda ve Ultralytics Discord, Discourse, Reddit ve GitHub topluluklarında bu kadar popüler olması, iş akışını kolaylaştırıp verimliliğini artırmaya yardımcı olacak bir VS Code uzantısı geliştirmeyi mantıklı kıldı.
Kod geliştirirken hangi araçları kullandığını bize bildirmek ister misin? Discourse topluluk anketimize göz at ve bize haber ver! Oradayken belki bilgisayarlı görü, makine öğrenimi, AI ve yazılım geliştiricilerle ilgili en sevdiğimiz memelerden bazılarına göz atabilir, hatta en sevdiğin memeyi paylaşabilirsin!
Uzantıyı Kurma#
VS Code uzantılarının kurulmasına izin veren tüm kod ortamlarının Ultralytics-snippets uzantısıyla uyumlu olması gerekir. Uzantı yayımlandıktan sonra neovim uygulamasının VS Code uzantılarıyla uyumlu hâle getirilebildiği keşfedildi. Daha fazla bilgi için Ultralytics-Snippets deposundaki Readme dosyasının neovim kurulum bölümüne bak.
VS Code'a Kurma#
-
VS Code'daki Uzantılar menüsüne git veya Ctrl+Shift ⇑+x kısayolunu kullanıp Ultralytics-snippets uzantısını ara.
-
Install düğmesine tıkla.
VS Code Uzantı Pazaryerinden Kurma#
-
VS Code Uzantı Pazaryerini ziyaret edip Ultralytics-snippets uzantısını ara veya doğrudan VS Code pazaryerindeki uzantı sayfasına git.
-
Install düğmesine tıkla ve tarayıcının bir VS Code oturumu başlatmasına izin ver.
-
Uzantıyı kurmak için görüntülenen istemleri izle.
Ultralytics-Snippets için Visual Studio Code Eklenti Pazaryeri sayfası
Ultralytics-Snippets Uzantısını Kullanma#
-
🧠 Akıllı Kod Tamamlama: Ultralytics API'sine göre uyarlanmış gelişmiş kod tamamlama önerileriyle daha hızlı ve isabetli kod yaz.
-
⌛ Daha Yüksek Geliştirme Hızı: Tekrarlayan kodlama işlerini ortadan kaldırıp önceden hazırlanmış kod parçacıklarından yararlanarak zaman kazan.
-
🔬 Daha İyi Kod Kalitesi: Akıllı kod tamamlama sayesinde daha temiz, tutarlı ve hatasız kod yaz.
-
💎 Kolaylaştırılmış İş Akışı: Yaygın işleri otomatikleştirerek projenin temel mantığına odaklan.
Genel Bakış#
Uzantı yalnızca Dil Modu Python olarak ayarlandığında çalışır 🐍. Böylece başka dosya türleri üzerinde çalışırken kod parçacıklarının eklenmesi önlenir. Tüm kod parçacıklarının öneki ultra ile başlar; uzantıyı yükledikten sonra düzenleyicide yalnızca ultra yazdığında, kullanabileceğin kod parçacıklarının listesi görüntülenir. Ayrıca, VS Code'daki Komut Paleti penceresini Ctrl+Shift ⇑+p kısayolunu kullanarak açabilir ve Snippets: Insert Snippet komutunu çalıştırabilirsin.
Kod Parçacığı Alanları#
Birçok kod parçacığında varsayılan yer tutucu değerleri veya adları içeren "alanlar" bulunur. Örneğin, predict yönteminin çıktısı r, results, detections, preds adlı bir Python değişkenine veya geliştiricinin seçeceği başka bir değişkene kaydedilebilir; bu nedenle kod parçacıklarında "alanlar" bulunur. Bir kod parçacığı eklendikten sonra klavyendeki Tab ⇥ tuşunu kullanırsan imlecin alanlar arasında hızla hareket eder. Bir alan seçildiğinde yeni bir değişken adı yazmak o alanın değerini değiştirir ve aynı değişkenin kod parçacığındaki diğer tüm kullanımlarını da günceller!
Kod parçacığını ekledikten sonra model adını world_model olarak değiştirmek tüm örnekleri günceller. Tab ⇥ tuşuna basınca bir sonraki alana geçilir; burada açılan menüden bir model ölçeği seçebilirsin. Sonraki alana geçtiğinde ise world veya worldv2 model varyantını seçebileceğin başka bir açılır menü görüntülenir.
Kod Parçacığı Tamamlama#
Kod parçacığının önekini tamamen yazman, hatta önekin başından itibaren yazmaya başlaman gerekmez. Aşağıdaki görseldeki örneğe bak.
Kod parçacıkları olabildiğince açıklayıcı biçimde adlandırılmıştır; ancak bu, yazılacak çok şey olabileceği ve amaç daha hızlı ilerlemekse bunun verimsiz olabileceği anlamına gelir. Neyse ki VS Code, amaçlanan kod parçacığı seçeneğine ulaşmak için ultra.example-yolo-predict, example-yolo-predict, yolo-predict veya hatta ex-yolo-p yazmana izin verir! İstediğin kod parçacığı aslında ultra.example-yolo-predict-kwords ise istediğin parçacığı vurgulamak için klavyendeki ok tuşlarını ↑ veya ↓ kullanıp doğru kod bloğunu eklemek üzere Enter ↵ veya Tab ⇥ tuşuna bas.
ex-yolo-p yazsan da doğru kod parçacığına yine ulaşırsın.
Kod Parçacığı Kategorileri#
Ultralytics-snippets uzantısında şu anda bulunan kod parçacığı kategorileri bunlardır. Gelecekte yenileri eklenecek; bu nedenle güncellemeleri kontrol etmeyi ve uzantı için otomatik güncellemeleri etkinleştirmeyi unutma. Eksik olduğunu düşündüğün kod parçacıklarının eklenmesini talep edebilirsin.
| Kategori | Başlangıç Öneki | Açıklama |
|---|---|---|
| Örnekler | ultra.examples | Ultralytics'i öğrenmeye veya kullanmaya başlamaya yardımcı olacak örnek kodlar. Örnekler, dokümantasyon sayfalarındaki kodların kopyalarıdır veya benzerleridir. |
| Anahtar Kelime Argümanları | ultra.kwargs | train, val, predict ve track yöntemleri için tüm anahtar kelime argümanlarını ve varsayılan değerleri içeren kod parçacıkları ekleyerek geliştirme sürecini hızlandır. |
| İçe Aktarmalar | ultra.imports | Yaygın Ultralytics nesnelerini hızla içe aktarmaya yönelik kod parçacıkları. |
| Modeller | ultra.yolo | Açılır menüde yapılandırma seçenekleri de sunan çeşitli modelleri başlatmak için kod blokları ekle (yolo, sam, rtdetr vb.). |
| Sonuçlar | ultra.result | Çıkarım sonuçlarıyla çalışırken kullanılan yaygın işlemlere yönelik kod blokları. |
| Yardımcı Araçlar | ultra.util | Ultralytics paketinde yerleşik olan yaygın yardımcı programlara hızlı erişim sağlar. Bu araçlar hakkında daha fazla bilgiyi Basit Yardımcı Programlar sayfasında bulabilirsin. |
Örneklerle Öğrenme#
ultra.examples kod parçacıkları, Ultralytics YOLO ile çalışmanın temellerini öğrenmeye başlamak isteyen herkes için çok kullanışlıdır. Örnek kod parçacıkları, eklendikten sonra çalıştırılmak üzere hazırlanmıştır (bazılarında açılır menü seçenekleri de bulunur). Bunun bir örneği bu sayfanın en üstündeki animasyonda gösterilmiştir: kod parçacığı eklendikten sonra tüm kod seçilir ve Shift ⇑+Enter ↵ kısayoluyla etkileşimli olarak çalıştırılır.
Bu sayfanın en üstündeki 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ırabileceğin tek seçenek model ölçeğidir; şu değerlerden biri olabilir: n, s, m, l veya 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() # her sonuç görüntüsünü görüntülemek için açıklama işaretini kaldırGeliştirmeyi Hızlandırma#
ultra.examples dışındaki kod parçacıklarının amacı, Ultralytics ile çalışırken geliştirmeyi daha kolay ve hızlı hâle getirmektir. Birçok projede kullanılan yaygın bir kod bloğu, modelin predict yöntemiyle döndürülen Results listesini yinelemektir. ultra.result-loop kod parçacığı bu konuda yardımcı olabilir.
ultra.result-loop kod parçacığını kullanmak, aşağıdaki varsayılan kodu (yorumlar dâhil) ekler.
# referans https://docs.ultralytics.com/modes/predict#working-with-results
for result in results:
result.boxes.data # torch.Tensor dizisiAncak Ultralytics çok sayıda görevi desteklediğinden, çıkarım sonuçlarıyla çalışırken erişmek isteyebileceğin başka Results özellikleri de vardır. Kod parçacığı alanları bu noktada çok işine yarar.
Sekmeyle boxes alanına geçtiğinde, gerektiği gibi başka bir özellik seçmene olanak tanıyan bir açılır menü görüntülenir.
Anahtar Kelime Argümanları#
Ultralytics'in çeşitli görevleri ve modları için 💯'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 (bu arada, kesinlikle save_frames). ultra.kwargs kod parçacıkları bu konuda yardımcı olabilir!
Tüm çıkarım argümanları dâhil olmak üzere predict yöntemini eklemek için ultra.kwargs-predict kullan; bu, aşağıdaki kodu (yorumlar dâhil) ekler.
model.predict(
source=src, # (str, optional) görseller veya videolar için kaynak dizini
imgsz=640, # (int | list) tahmin için giriş görsellerinin boyutu; int veya list[h,w] olarak
conf=0.25, # (float) minimum güven eşiği
iou=0.7, # (float) NMS için kesişim/birleşim (IoU) eşiği
vid_stride=1, # (int) video kare hızı adımı
stream_buffer=False, # (bool) gelen kareleri bir kuyrukta arabelleğe al (True) veya yalnızca en güncel kareyi tut (False)
visualize=False, # (bool) sınıf etkinleştirme ısı haritalarını kaydet
augment=False, # (bool) tahmin kaynaklarına görüntü artırma uygula
agnostic_nms=False, # (bool) sınıftan bağımsız NMS
classes=None, # (int | list[int], optional) sonuçları sınıfa göre filtrele; ör. classes=0 veya classes=[0,2,3]
retina_masks=False, # (bool) yüksek çözünürlüklü segmentasyon maskeleri kullan
embed=None, # (list[int], optional) belirtilen katmanlardan özellik vektörlerini/gömüleri döndür
show=False, # (bool) ortam izin veriyorsa tahmin edilen görselleri ve videoları göster
save=True, # (bool) tahmin sonuçlarını kaydet
save_frames=False, # (bool) tahmin edilen video karelerini ayrı ayrı kaydet
save_txt=False, # (bool) sonuçları .txt dosyası olarak kaydet
save_conf=False, # (bool) sonuçları güven puanlarıyla birlikte kaydet
save_crop=False, # (bool) sonuçlarla kırpılmış görselleri kaydet
stream=False, # (bool) uzun videoları veya çok sayıda görseli işlerken bellek kullanımını azaltmak için sonuçları bir üreteç olarak döndür
verbose=True, # (bool) terminalde ayrıntılı çıkarım günlüklerini etkinleştir/devre dışı bırak
)Bu kod parçacığında tüm anahtar kelime argümanları için alanların yanı sıra, kodunda farklı bir değişken kullandıysan model ve src için de alanlar bulunur. Anahtar kelime argümanı içeren her satırda başvuru için kısa bir açıklama yer alır.
Tüm Kod Parçacıkları#
Hangi kod parçacıklarının kullanılabilir olduğunu öğrenmenin en iyi yolu uzantıyı indirip kurmak ve denemektir! Merak ediyor ve listeye önceden göz atmak istiyorsan tüm kullanılabilir kod parçacıklarının tablolarını görmek için depoyu veya VS Code pazaryerindeki uzantı sayfasını ziyaret edebilirsin.
Sonuç#
VS Code için Ultralytics-Snippets uzantısı, veri bilimcilerin ve makine öğrenimi mühendislerinin Ultralytics YOLO ile bilgisayarlı görü uygulamalarını daha verimli geliştirmesine yardımcı olmak üzere tasarlanmıştır. Önceden hazırlanmış kod parçacıkları ve kullanışlı örnekler sunarak en önemli şeye, yenilikçi çözümler oluşturmaya odaklanmana yardımcı oluyoruz. Görüşlerini paylaşmak için VS Code pazaryerindeki uzantı sayfasını ziyaret edip yorum bırak. ⭐
Sık Sorulan Sorular#
Yeni kod parçacıklarını, Ultralytics-Snippets deposundaki Sorunlar bölümünden talep edebilirsin.
Tamamen ücretsiz!
VS Code, önizleme penceresinde daha fazla/daha az bilgi göstermek için Ctrl+Space tuş kombinasyonunu kullanır. Kod parçacığı ön eki yazarken kod parçacığı önizlemesini göremiyorsan bu tuş kombinasyonunu kullanarak önizlemeyi yeniden etkinleştirebilirsin.
VS Code kullanıyorsan ve Ultralytics-snippets uzantısını yüklemeni isteyen bir mesaj görmeye başladıysan ve bu mesajı artık görmek istemiyorsan, mesajı devre dışı bırakmanın iki yolu var.
-
Ultralytics-snippets'i yükle, mesaj bir daha gösterilmesin 😆!
-
Uzantıyı yüklemeden mesajın gösterilmesini devre dışı bırakmak için
yolo settings vscode_msg=Falsekullanabilirsin. Aşina değilsen Ultralytics Ayarları sayfasından daha fazla bilgi edinebilirsin.
-
Ultralytics-snippets deposunu ziyaret et ve bir Issue veya Pull Request aç!
Diğer VS Code uzantılarında olduğu gibi, VS Code'daki Uzantılar menüsüne giderek uzantıyı kaldırabilirsin. Menüde Ultralytics-snippets uzantısını bul, dişli simgesine (⚙) tıkla ve ardından uzantıyı kaldırmak için "Kaldır" seçeneğine tıkla.