Ultralytics Explorer API
Topluluk Notu ⚠️
İtibariyle ultralytics>=8.3.10
, Ultralytics explorer desteği kullanımdan kaldırılmıştır. Ama endişelenmeyin! Artık benzer ve hatta gelişmiş işlevselliğe şu yolla erişebilirsiniz Ultralytics HUBiş akışınızı kolaylaştırmak için tasarlanmış sezgisel kodsuz platformumuz. Ultralytics HUB ile tek bir satır kod yazmadan verilerinizi zahmetsizce keşfetmeye, görselleştirmeye ve yönetmeye devam edebilirsiniz. Mutlaka göz atın ve güçlü özelliklerinden yararlanın!🚀
Giriş
Explorer API, veri kümelerinizi keşfetmek için bir Python API'sidir. SQL sorguları, vektör benzerlik araması ve semantik arama kullanarak veri kümenizi filtrelemeyi ve aramayı destekler.
İzle: Ultralytics Explorer API'ye Genel Bakış
Kurulum
Explorer, bazı işlevleri için harici kütüphanelere bağlıdır. Bunlar kullanım sırasında otomatik olarak yüklenir. Bu bağımlılıkları manuel olarak yüklemek için aşağıdaki komutu kullanın:
Kullanım
from ultralytics import Explorer
# Create an Explorer object
explorer = Explorer(data="coco128.yaml", model="yolo11n.pt")
# Create embeddings for your dataset
explorer.create_embeddings_table()
# Search for similar images to a given image/images
dataframe = explorer.get_similar(img="path/to/image.jpg")
# Or search for similar images to a given index/indices
dataframe = explorer.get_similar(idx=0)
Not
Belirli bir veri kümesi ve model çifti için gömme tablosu yalnızca bir kez oluşturulur ve yeniden kullanılır. Bunlar, disk üzerinde ölçeklenen LanceDB 'yi kullanır, böylece COCO gibi büyük veri kümeleri için bellek tükenmeden katıştırmalar oluşturabilir ve yeniden kullanabilirsiniz.
Katıştırmalar tablosunu güncellemeye zorlamak isterseniz force=True
için create_embeddings_table
yöntem.
Gelişmiş analiz gerçekleştirmek için LanceDB tablo nesnesine doğrudan erişebilirsiniz. Embeddings Tablosu ile Çalışma bölümünde bu konuda daha fazla bilgi edinin
1. Benzerlik Arama
Benzerlik araması, verilen bir görüntüye benzer görüntüleri bulmak için kullanılan bir tekniktir. Benzer görüntülerin benzer gömülmelere sahip olacağı fikrine dayanır. Gömme tablosu oluşturulduktan sonra, anlamsal aramayı aşağıdaki yollardan herhangi biriyle çalıştırabilirsiniz:
- Veri kümesindeki belirli bir dizin veya dizin listesi üzerinde:
exp.get_similar(idx=[1,10], limit=10)
- Veri kümesinde olmayan herhangi bir görüntü veya görüntü listesi üzerinde:
exp.get_similar(img=["path/to/img1", "path/to/img2"], limit=10)
Birden fazla girdi olması durumunda, bunların gömülmelerinin toplamı kullanılır.
ile bir pandas veri çerçevesi elde edersiniz. limit
Girişe en çok benzeyen veri noktalarının sayısı ve bunların gömme uzayındaki mesafeleri. Bu veri kümesini daha fazla filtreleme yapmak için kullanabilirsiniz
Semantik Arama
from ultralytics import Explorer
# create an Explorer object
exp = Explorer(data="coco128.yaml", model="yolo11n.pt")
exp.create_embeddings_table()
similar = exp.get_similar(img="https://ultralytics.com/images/bus.jpg", limit=10)
print(similar.head())
# Search using multiple indices
similar = exp.get_similar(
img=["https://ultralytics.com/images/bus.jpg", "https://ultralytics.com/images/bus.jpg"],
limit=10,
)
print(similar.head())
from ultralytics import Explorer
# create an Explorer object
exp = Explorer(data="coco128.yaml", model="yolo11n.pt")
exp.create_embeddings_table()
similar = exp.get_similar(idx=1, limit=10)
print(similar.head())
# Search using multiple indices
similar = exp.get_similar(idx=[1, 10], limit=10)
print(similar.head())
Benzer Görüntüleri Çizme
Ayrıca benzer görüntüleri plot_similar
yöntemi. Bu yöntem, aşağıdaki gibi aynı argümanları alır get_similar
ve benzer görüntüleri bir ızgarada çizer.
Benzer Görüntüleri Çizme
2. Ask AI (Doğal Dil Sorgulama)
Bu, doğal dil kullanarak veri kümenizi nasıl filtrelemek istediğinizi yazmanıza olanak tanır. SQL sorguları yazma konusunda yetkin olmanız gerekmez. Yapay zeka destekli sorgu oluşturucumuz bunu kaputun altında otomatik olarak yapacaktır. Örneğin - "bana tam olarak bir kişi ve 2 köpek içeren 100 resim göster" diyebilirsiniz. Başka nesneler de olabilir" dediğinizde sorguyu dahili olarak oluşturacak ve size bu sonuçları gösterecektir. Not: Bu, kaputun altında LLM'leri kullanarak çalışır, bu nedenle sonuçlar olasılıksaldır ve bazen yanlış şeyler yapabilir
Yapay Zekaya Sor
from ultralytics import Explorer
from ultralytics.data.explorer import plot_query_result
# create an Explorer object
exp = Explorer(data="coco128.yaml", model="yolo11n.pt")
exp.create_embeddings_table()
df = exp.ask_ai("show me 100 images with exactly one person and 2 dogs. There can be other objects too")
print(df.head())
# plot the results
plt = plot_query_result(df)
plt.show()
3. SQL Sorgulama
Veri kümeniz üzerinde SQL sorguları çalıştırabilirsiniz. sql_query
yöntemini kullanır. Bu yöntem girdi olarak bir SQL sorgusu alır ve sonuçları içeren bir pandas veri çerçevesi döndürür.
SQL Sorgusu
SQL Sorgu Sonuçlarını Çizme
Ayrıca bir SQL sorgusunun sonuçlarını plot_sql_query
yöntemi. Bu yöntem, aşağıdaki gibi aynı argümanları alır sql_query
ve sonuçları bir ızgarada çizer.
SQL Sorgu Sonuçlarını Çizme
4. Gömüler Tablosu ile Çalışma
Gömüler tablosu ile doğrudan da çalışabilirsiniz. Katıştırmalar tablosu oluşturulduktan sonra, bu tabloya Explorer.table
İpucu
Explorer üzerinde çalışır LanceDB tabloları dahili olarak. Bu tabloya doğrudan erişmek için Explorer.table
nesnesini kullanabilir ve ham sorgular çalıştırabilir, ön ve son filtreleri aşağı itebilir vb.
Tablo ile neler yapabileceğinize dair bazı örnekler aşağıda verilmiştir:
Ham Katıştırmaları alın
Örnek
Ön ve son filtrelerle Gelişmiş Sorgulama
Örnek
Vektör Dizini Oluşturma
Büyük veri kümeleri kullanırken, daha hızlı sorgulama için özel bir vektör dizini de oluşturabilirsiniz. Bu işlem şu şekilde yapılır create_index
yöntemini LanceDB tablosunda kullanabilirsiniz.
Mevcut vektör indeksleri ve parametreleri hakkında daha fazla bilgiyi burada bulabilirsiniz Gelecekte, doğrudan Explorer API'den vektör indeksleri oluşturma desteği ekleyeceğiz.
5. Gömme Uygulamaları
Katıştırmalar tablosunu çeşitli keşif analizleri gerçekleştirmek için kullanabilirsiniz. İşte bazı örnekler:
Benzerlik Endeksi
Explorer ile birlikte gelir similarity_index
operasyon:
- Her bir veri noktasının veri kümesinin geri kalanıyla ne kadar benzer olduğunu tahmin etmeye çalışır.
- Bunu, kaç tane görüntü katıştırmasının aşağıdaki değerlerden daha yakın olduğunu sayarak yapar
max_dist
göz önünde bulundurularak, oluşturulan gömme uzayında mevcut görüntüyetop_k
bir seferde benzer görüntüler.
Aşağıdaki sütunlara sahip bir pandas veri çerçevesi döndürür:
idx
: Veri kümesindeki görüntünün indeksiim_file
: Görüntü dosyasının yolucount
: Veri kümesindeki aşağıdaki değerlerden daha yakın olan görüntülerin sayısımax_dist
geçerli görüntüyesim_im_files
: Yolların listesicount
benzer görüntüler
İpucu
Belirli bir veri kümesi için model, max_dist
& top_k
bir kez oluşturulan benzerlik indeksi yeniden kullanılacaktır. Veri kümeniz değiştiyse veya benzerlik indeksini yeniden oluşturmanız gerekiyorsa force=True
.
Benzerlik Endeksi
Veri kümesini filtrelemek üzere özel koşullar oluşturmak için benzerlik indeksini kullanabilirsiniz. Örneğin, aşağıdaki kodu kullanarak veri kümesindeki başka herhangi bir görüntüye benzemeyen görüntüleri filtreleyebilirsiniz:
Gömme Alanını Görselleştirin
Ayrıca seçtiğiniz çizim aracını kullanarak gömme alanını görselleştirebilirsiniz. Örneğin burada matplotlib kullanarak basit bir örnek verilmiştir:
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
# Reduce dimensions using PCA to 3 components for visualization in 3D
pca = PCA(n_components=3)
reduced_data = pca.fit_transform(embeddings)
# Create a 3D scatter plot using Matplotlib Axes3D
fig = plt.figure(figsize=(8, 6))
ax = fig.add_subplot(111, projection="3d")
# Scatter plot
ax.scatter(reduced_data[:, 0], reduced_data[:, 1], reduced_data[:, 2], alpha=0.5)
ax.set_title("3D Scatter Plot of Reduced 256-Dimensional Data (PCA)")
ax.set_xlabel("Component 1")
ax.set_ylabel("Component 2")
ax.set_zlabel("Component 3")
plt.show()
Explorer API'sini kullanarak kendi CV veri seti keşif raporlarınızı oluşturmaya başlayın. İlham almak için
Ultralytics Explorer Kullanılarak Oluşturulan Uygulamalar
Explorer API tabanlı GUI Demomuzu deneyin
Çok Yakında
- [ ] Veri kümelerinden belirli etiketleri birleştirin. Örnek - Tümünü içe aktar
person
COCO'dan etiketler vecar
Şehir Manzaraları etiketleri - [ ] Verilen eşikten daha yüksek benzerlik indeksine sahip görüntüleri kaldırın
- [ ] Girişleri birleştirdikten/kaldırdıktan sonra yeni veri kümelerini otomatik olarak kalıcı hale getirme
- [ ] Gelişmiş Veri Kümesi Görselleştirmeleri
SSS
Ultralytics Explorer API ne için kullanılır?
Ultralytics Explorer API, kapsamlı veri kümesi araştırması için tasarlanmıştır. Kullanıcıların SQL sorguları, vektör benzerlik araması ve semantik arama kullanarak veri kümelerini filtrelemesine ve aramasına olanak tanır. Bu güçlü Python API, büyük veri kümelerini işleyebilir ve Ultralytics modellerini kullanan çeşitli bilgisayarla görme görevleri için idealdir.
Ultralytics Explorer API'sini nasıl yükleyebilirim?
Ultralytics Explorer API'sini bağımlılıklarıyla birlikte yüklemek için aşağıdaki komutu kullanın:
Bu, Explorer API işlevselliği için gerekli tüm harici kütüphaneleri otomatik olarak yükleyecektir. Ek kurulum ayrıntıları için belgelerimizin kurulum bölümüne bakın.
Benzerlik araması için Ultralytics Explorer API'sini nasıl kullanabilirim?
Benzerlik aramaları yapmak için Ultralytics Explorer API'sini kullanarak bir katıştırmalar tablosu oluşturabilir ve benzer görüntüler için bu tabloyu sorgulayabilirsiniz. İşte temel bir örnek:
from ultralytics import Explorer
# Create an Explorer object
explorer = Explorer(data="coco128.yaml", model="yolo11n.pt")
explorer.create_embeddings_table()
# Search for similar images to a given image
similar_images_df = explorer.get_similar(img="path/to/image.jpg")
print(similar_images_df.head())
Daha fazla ayrıntı için lütfen Benzerlik Arama bölümünü ziyaret edin.
LanceDB'yi Ultralytics Explorer ile kullanmanın faydaları nelerdir?
Ultralytics Explorer tarafından kullanılan LanceDB, ölçeklenebilir, disk üzerinde gömme tabloları sağlar. Bu, COCO gibi büyük veri kümeleri için bellek tükenmeden katıştırmalar oluşturabilmenizi ve yeniden kullanabilmenizi sağlar. Bu tablolar yalnızca bir kez oluşturulur ve yeniden kullanılabilir, bu da veri işlemede verimliliği artırır.
Ultralytics Explorer API'sinde Yapay Zekaya Sor özelliği nasıl çalışır?
Yapay Zekaya Sor özelliği, kullanıcıların doğal dil sorgularını kullanarak veri kümelerini filtrelemelerine olanak tanır. Bu özellik, bu sorguları perde arkasında SQL sorgularına dönüştürmek için LLM'lerden yararlanır. İşte bir örnek:
from ultralytics import Explorer
# Create an Explorer object
explorer = Explorer(data="coco128.yaml", model="yolo11n.pt")
explorer.create_embeddings_table()
# Query with natural language
query_result = explorer.ask_ai("show me 100 images with exactly one person and 2 dogs. There can be other objects too")
print(query_result.head())
Daha fazla örnek için Yapay Zekaya Sor bölümüne göz atın.