Ultralytics API ΠΏΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ°
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
API Explorer - ΡΡΠΎ Python API Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠ²ΠΎΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ . ΠΠ½ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΈ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π²Π΅ΠΊΡΠΎΡΠ½ΠΎΠΌΡ ΡΡ ΠΎΠ΄ΡΡΠ²Ρ ΠΈ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠΈΡΠΊ.
Π‘ΠΌΠΎΡΡΠΈ: Ultralytics ΠΠ±Π·ΠΎΡ API Explorer
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
Explorer Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ Π²Π½Π΅ΡΠ½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΄Π»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ²ΠΎΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ. ΠΠ½ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ. Π§ΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΡΡ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΡΠΈ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅
from ultralytics import Explorer
# Create an Explorer object
explorer = Explorer(data='coco128.yaml', model='yolov8n.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)
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅
Π’Π°Π±Π»ΠΈΡΠ° Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ Π΄Π»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ°ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. ΠΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ LanceDB, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΡΡΡ Π½Π° Π΄ΠΈΡΠΊΠ΅, ΡΠ°ΠΊ ΡΡΠΎ ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΡ Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ COCO, Π½Π΅ ΠΈΡΡΠ΅ΡΠΏΡΠ²Π°Ρ ΠΏΠ°ΠΌΡΡΠΈ.
ΠΡΠ»ΠΈ ΡΡ Ρ
ΠΎΡΠ΅ΡΡ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ force=True
Π½Π° create_embeddings_table
ΠΌΠ΅ΡΠΎΠ΄.
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΡΠΌΠΎΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠ°Π±Π»ΠΈΡΡ LanceDB, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉ Π°Π½Π°Π»ΠΈΠ·. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ "Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ Embeddings".
1. ΠΠΎΠΈΡΠΊ ΡΡ ΠΎΠ΄ΡΡΠ²Π°
ΠΠΎΠΈΡΠΊ ΠΏΠΎ ΡΡ ΠΎΠ΄ΡΡΠ²Ρ - ΡΡΠΎ ΡΠ΅Ρ Π½ΠΈΠΊΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π½Π° Π·Π°Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ. ΠΠ½Π° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΈΠ΄Π΅Π΅, ΡΡΠΎ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΡΠ΄ΡΡ ΠΈΠΌΠ΅ΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΈΡΠ° Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½Π°, ΡΡ ΡΠΌΠΎΠΆΠ΅ΡΡ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠΈΡΠΊ Π»ΡΠ±ΡΠΌ ΠΈΠ· ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²:
- ΠΠ° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ ΠΈΠ½Π΄Π΅ΠΊΡΠ΅ ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΊΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² Π² Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ
:
exp.get_similar(idx=[1,10], limit=10)
- ΠΠ° Π»ΡΠ±ΠΎΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ»ΠΈ ΡΠΏΠΈΡΠΊΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅Ρ Π² Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ
:
exp.get_similar(img=["path/to/img1", "path/to/img2"], limit=10)
ΠΡΠ»ΠΈ Π²Ρ ΠΎΠ΄ΠΎΠ² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ, ΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠΎΠ²ΠΎΠΊΡΠΏΠ½ΠΎΡΡΡ ΠΈΡ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ.
Π’Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠ΅ΠΉΠΌ Π΄Π°Π½Π½ΡΡ
pandas Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ limit
ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠΎΡΠ΅ΠΊ Π΄Π°Π½Π½ΡΡ
, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΡ
ΠΎΠΆΠΈΡ
Π½Π° Π²Ρ
ΠΎΠ΄Π½ΡΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΡ
ΡΠ°ΡΡΡΠΎΡΠ½ΠΈΠ΅ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ. Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
Π΄Π»Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ
Π‘Π΅ΠΌΠ°Π½ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΏΠΎΠΈΡΠΊ
from ultralytics import Explorer
# create an Explorer object
exp = Explorer(data='coco128.yaml', model='yolov8n.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='yolov8n.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())
ΠΠ°Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
Π’Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΠΏΠΎΡ
ΠΎΠΆΠΈΡ
ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ plot_similar
ΠΌΠ΅ΡΠΎΠ΄. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ ΠΆΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΡΠΎ ΠΈ get_similar
ΠΈ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΠΏΠΎΡ
ΠΎΠΆΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅ΡΠΊΡ.
ΠΠ°Π½Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
2. Π‘ΠΏΡΠΎΡΠΈ ΠΠ (Π·Π°ΠΏΡΠΎΡ Π½Π° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅)
ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ΅Π±Π΅ Π½Π°ΠΏΠΈΡΠ°ΡΡ, ΠΊΠ°ΠΊ ΡΡ Ρ ΠΎΡΠ΅ΡΡ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ·ΡΠΊ. Π’Π΅Π±Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠ°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΡΠΊΠ°Π·Π°ΡΡ: "ΠΠΎΠΊΠ°ΠΆΠΈΡΠ΅ ΠΌΠ½Π΅ 100 ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ Π΅ΡΡΡ ΡΠΎΠ²Π½ΠΎ ΠΎΠ΄ΠΈΠ½ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ ΠΈ 2 ΡΠΎΠ±Π°ΠΊΠΈ. Π’Π°ΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ", ΠΈ ΠΎΠ½ ΡΠ°ΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ ΠΈ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ ΡΠ΅Π±Π΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ. ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: Π ΡΡΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ LLM ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ΄ΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠ½ΡΠΌΠΈ ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠ³ΡΡ ΠΎΡΠΈΠ±Π°ΡΡΡΡ.
Π‘ΠΏΡΠΎΡΠΈ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡ
from ultralytics import Explorer
from ultralytics.data.explorer import plot_query_result
# create an Explorer object
exp = Explorer(data='coco128.yaml', model='yolov8n.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
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ SQL-Π·Π°ΠΏΡΠΎΡΡ ΠΊ ΡΠ²ΠΎΠ΅ΠΌΡ Π½Π°Π±ΠΎΡΡ Π΄Π°Π½Π½ΡΡ
, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ sql_query
ΠΠ΅ΡΠΎΠ΄. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π° Π²Ρ
ΠΎΠ΄ SQL-Π·Π°ΠΏΡΠΎΡ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ pandas dataframe Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°ΠΌΠΈ.
SQL-Π·Π°ΠΏΡΠΎΡ
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ²
Π’Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΡΡΡΠΎΠΈΡΡ Π³ΡΠ°ΡΠΈΠΊ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² SQL-Π·Π°ΠΏΡΠΎΡΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ plot_sql_query
ΠΌΠ΅ΡΠΎΠ΄. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ΅ ΠΆΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ, ΡΡΠΎ ΠΈ sql_query
ΠΈ Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ΅ΡΠΊΠΈ.
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠΎΠ² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² SQL-Π·Π°ΠΏΡΠΎΡΠΎΠ²
4. Π Π°Π±ΠΎΡΠ° Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ
Π’Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΠ°Π±Π»ΠΈΡΠ΅ΠΉ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±Π»ΠΈΡΠ° Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ·Π΄Π°Π½Π°, ΡΡ ΡΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΊ Π½Π΅ΠΉ Π΄ΠΎΡΡΡΠΏ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Explorer.table
ΠΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π½Π° LanceDB Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ. Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΈΡΠ΅ Π½Π°ΠΏΡΡΠΌΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Explorer.table
ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠΉ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ, Π½Π°ΠΆΠΈΠΌΠ°ΠΉ ΠΏΡΠ΅- ΠΈ ΠΏΠΎΡΡΡΠΈΠ»ΡΡΡΡ ΠΈ Ρ.Π΄.
ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΎΠ»Π°:
ΠΠΎΠ»ΡΡΠΈ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠ΅ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΡ
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠΎΠ΄Π²ΠΈΠ½ΡΡΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ Ρ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΡΠΈΠ»ΡΡΡΠ°ΠΌΠΈ
ΠΡΠΈΠΌΠ΅Ρ
Π‘ΠΎΠ·Π΄Π°ΠΉ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±ΠΎΠ»ΡΡΠΈΡ
Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ
ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΉ ΠΈΠ½Π΄Π΅ΠΊΡ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π±ΡΡΡΡΠΎΠ³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ create_index
ΠΌΠ΅ΡΠΎΠ΄ Π½Π° ΡΠ°Π±Π»ΠΈΡΠ΅ LanceDB.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ ΡΠΈΠΏΠΎΠ² ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π·Π΄Π΅ΡΡ Π Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΌΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² ΠΏΡΡΠΌΠΎ ΠΈΠ· API Explorer.
5. ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π±Π»ΠΈΡΡ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ Π°Π½Π°Π»ΠΈΠ·ΠΎΠ². ΠΠΎΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ²:
ΠΠ½Π΄Π΅ΠΊΡ ΡΡ ΠΎΠ΄ΡΡΠ²Π°
Explorer ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Ρ similarity_index
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ:
- ΠΠ½ ΠΏΡΡΠ°Π΅ΡΡΡ ΠΎΡΠ΅Π½ΠΈΡΡ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΎΡΠΊΠ° Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡ ΠΎΠΆΠ° Π½Π° ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅.
- ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΎΠ½ ΠΏΠΎΠ΄ΡΡΠΈΡΡΠ²Π°Π΅Ρ, ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²ΠΊΡΠ°ΠΏΠ»Π΅Π½ΠΈΠΉ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π»Π΅ΠΆΠ°Ρ Π±Π»ΠΈΠΆΠ΅, ΡΠ΅ΠΌ
max_dist
ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ, ΡΡΠΈΡΡΠ²Π°Ρtop_k
ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·.
ΠΠ½Π° Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΡΡΠ΅ΠΉΠΌ Π΄Π°Π½Π½ΡΡ pandas ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌΠΈ:
idx
: ΠΠ½Π΄Π΅ΠΊΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡim_file
: ΠΡΡΡ ΠΊ ΡΠ°ΠΉΠ»Ρ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌcount
: ΠΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ Π² Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π±Π»ΠΈΠΆΠ΅, ΡΠ΅ΠΌmax_dist
ΠΊ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡsim_im_files
: Π‘ΠΏΠΈΡΠΎΠΊ ΠΏΡΡΠ΅ΠΉ ΠΊcount
ΠΠΎΡ ΠΎΠΆΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΊΠΎΠ½Π΅ΡΠ½ΠΈΠΊ
ΠΠ»Ρ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° Π΄Π°Π½Π½ΡΡ
ΠΌΠΎΠ΄Π΅Π»Ρ, max_dist
& top_k
ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΠ΄Π½Π°ΠΆΠ΄Ρ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡ
ΠΎΠ΄ΡΡΠ²Π° Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ. Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΡΠ²ΠΎΠΉ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ
ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΡΡ ΠΈΠ»ΠΈ ΡΠ΅Π±Π΅ ΠΏΡΠΎΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡ
ΠΎΠ΄ΡΡΠ²Π°, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ force=True
.
ΠΠ½Π΄Π΅ΠΊΡ ΡΡ ΠΎΠ΄ΡΡΠ²Π°
Π’Ρ ΠΌΠΎΠΆΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡ ΠΎΠ΄ΡΡΠ²Π° Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π½Π°Π±ΠΎΡ Π΄Π°Π½Π½ΡΡ . ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡ ΠΌΠΎΠΆΠ΅ΡΡ ΠΎΡΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΠΎΡ ΠΎΠΆΠΈ Π½ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎ Π΄ΡΡΠ³ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π² Π½Π°Π±ΠΎΡΠ΅ Π΄Π°Π½Π½ΡΡ , ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ
Π’Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΡ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΠΎΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ Π³ΡΠ°ΡΠΈΠΊΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ matplotlib:
import numpy as np
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 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()
ΠΠ°ΡΠ½ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΡΡΠ΅ΡΡ ΠΎΠ± ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ CV, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ API Explorer. ΠΠ»Ρ Π²Π΄ΠΎΡ Π½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈ
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Ultralytics Explorer
ΠΠΎΠΏΡΠΎΠ±ΡΠΉ Π½Π°ΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ API Explorer
Π‘ΠΊΠΎΡΠΎ Π±ΡΠ΄Π΅Ρ
- [ ] ΠΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΠΌΠ΅ΡΠΊΠΈ ΠΈΠ· Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ
. ΠΡΠΈΠΌΠ΅Ρ - ΠΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅
person
ΠΡΠΈΠΊΠ΅ΡΠΊΠΈ ΠΎΡ COCO ΠΈcar
ΠΡΠΈΠΊΠ΅ΡΠΊΠΈ Ρ Π³ΠΎΡΠΎΠ΄ΡΠΊΠΈΡ ΠΏΠ΅ΠΉΠ·Π°ΠΆΠ΅ΠΉ - [ ] Π£Π΄Π°Π»ΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΠ½Π΄Π΅ΠΊΡ ΡΡ ΠΎΠ΄ΡΡΠ²Π° ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΠ΅ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠ³Π°.
- [ ] ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΡΡ Π½Π°Π±ΠΎΡΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΠ»ΠΈΡΠ½ΠΈΡ/ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ
- [ ] Π Π°ΡΡΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°Π½Π½ΡΡ
Π‘ΠΎΠ·Π΄Π°Π½ΠΎ 2024-01-07, ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΎ 2024-04-27
ΠΠ²ΡΠΎΡΡ: glenn-jocher (8), 0xSynapse (1), RizwanMunawar (2), AyushExel (2)