рд╡реАрдУрд╕реА рдЕрдиреНрд╡реЗрд╖рдг рдЙрджрд╛рд╣рд░рдг┬╢
ф╕нцЦЗ | эХЬъ╡ньЦ┤ | цЧецЬмшкЮ | ╨а╤Г╤Б╤Б╨║╨╕╨╣ | Deutsch | Fran├зais | Espa├▒ol | Portugu├кs | рд╣рд┐рдиреНрджреА | ╪з┘Д╪╣╪▒╪и┘К╪й
рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ Ultralytics рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдПрдкреАрдЖрдИ рдиреЛрдЯрдмреБрдХ! рдпрд╣ рдиреЛрдЯрдмреБрдХ рдЙрдкрдпреЛрдЧ рдкреНрд░рд╛рд░рдВрдн рдХрд░рдиреЗ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╡рд┐рднрд┐рдиреНрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддреА рд╣реИ Ultralytics рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЦреЛрдЬ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдЖрдк рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рд╡реЗрдХреНрдЯрд░ рдЦреЛрдЬ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рд▓реЗрдмрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
рд╣рдо рдЖрд╢рд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рдиреЛрдЯрдмреБрдХ рдХреЗ рд╕рдВрд╕рд╛рдзрди рдЗрд╕рдХрд╛ рдЕрдзрд┐рдХрддрдо рд▓рд╛рдн рдЙрдард╛рдиреЗ рдореЗрдВ рдЖрдкрдХреА рдорджрдж рдХрд░реЗрдВрдЧреЗ Ultralytics. рдХреГрдкрдпрд╛ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдбреЙрдХреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ , рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП GitHub рдкрд░ рдПрдХ рдореБрджреНрджрд╛ рдЙрдард╛рдПрдВ, рдФрд░ рдкреНрд░рд╢реНрдиреЛрдВ рдФрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдбрд┐рд╕реНрдХреЙрд░реНрдб рд╕рдореБрджрд╛рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ!
рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ yolo explorer
Exlorer API рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд
рднрд░ pip install ultralytics
рдФрд░ рдЪрд▓рд╛рдПрдВ yolo explorer
рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдЕрдкрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЕрдВрджрд░ рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ рдХрд╕реНрдЯрдо рдХреНрд╡реЗрд░реА рдФрд░ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЦреЛрдЬ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП!
рд╕реЗрдЯрдЕрдк┬╢
рдкрд┐рдк рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ ultralytics
рдФрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдФрд░ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдФрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
%pip рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ ultralytics[рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░] OpenAI рдЖрдпрд╛рдд ultralytics ultralyticsрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВрдЪреЗрдХ()
рд╕реЗ ultralyticsрдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдЖрдпрд╛рдд рдХрд░реЗрдВ
рд╕рдорд╛рдирддрд╛ рдЦреЛрдЬ┬╢
рдПрдореНрдмреЗрдбрд┐рдВрдЧ рд╕реНрдкреЗрд╕ рдореЗрдВ рдЙрдирдХреА рджреВрд░реА рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рд╕рдорд╛рди рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╡реЗрдХреНрдЯрд░ рд╕рдорд╛рдирддрд╛ рдЦреЛрдЬ рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдмрд╕ рджрд┐рдП рдЧрдП рдбреЗрдЯрд╛рд╕реЗрдЯ-рдореЙрдбрд▓ рдЬреЛрдбрд╝реА рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдВред рдЗрд╕рдХреА рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
exp = рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ ("VOC.yaml", рдореЙрдбрд▓ ="yolov8n.pt")exp.create_embeddings_table()
рдПрдХ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЖрдк рдирд┐рдореНрди рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░реАрдХреЗ рд╕реЗ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЦреЛрдЬ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
- рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рджрд┐рдП рдЧрдП рд╕реВрдЪрдХрд╛рдВрдХ/рд╕реВрдЪрдХрд╛рдВрдХреЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рдЬреИрд╕реЗ -
exp.get_similar(idx=[1,10], limit=10)
- рдХрд┐рд╕реА рднреА рдЫрд╡рд┐/рдЫрд╡рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рдЬреЛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдирд╣реАрдВ рд╣реИ -
exp.get_similar(img=["path/to/img1", "path/to/img2"], limit=10)
рдХрдИ рдЗрдирдкреБрдЯ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдирдХреЗ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХреЗ рдПрдЧреНрд░реАрдЧреЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдкрдХреЛ рдПрдХ рдкрд╛рдВрдбрд╛ рдбреЗрдЯрд╛рдлреНрд░реЗрдо рдорд┐рд▓рддрд╛ рд╣реИ limit
рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдорд╛рди рдбреЗрдЯрд╛ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрдирдкреБрдЯ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИ, рд╕рд╛рде рд╣реА рдПрдореНрдмреЗрдбрд┐рдВрдЧ рд╕реНрдкреЗрд╕ рдореЗрдВ рдЙрдирдХреА рджреВрд░реА рдХреЗ рд╕рд╛рдеред рдЖрдк рдЖрдЧреЗ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рдорд╛рди = рдНрдХреНрд╕реНрдк.get_similar(idx = 1, рд╕реАрдорд╛ = 10) рд╕рдорд╛рдиредрд╕рд┐рд░()
рдЖрдк рднреА рдЗрд╕реА рддрд░рд╣ рдХреЗ рдирдореВрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реАрдзреЗ рд╕рд╛рдЬрд┐рд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ plot_similar
рдпреВрдЯрд┐рд▓
рдНрдХреНрд╕реНрдк.plot_similar(idx = 6500, рд╕реАрдорд╛ = 20) # exp.plot_similar (idx = [100,101], рд╕реАрдорд╛ = 10) # idxs рдпрд╛ imgs рдХреА рд╕реВрдЪреА рднреА рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдНрдХреНрд╕реНрдк.plot_similar(img="https://ultralytics.com/images/bus.jpg", limit=10, labels=False) # рдХрд┐рд╕реА рднреА рдмрд╛рд╣рд░реА рдЗрдореЗрдЬ рдХреЛ рдкрд╛рд╕ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
2. рдПрдЖрдИ рд╕реЗ рдкреВрдЫреЗрдВ: рдкреНрд░рд╛рдХреГрддрд┐рдХ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдЦреЛрдЬреЗрдВ рдпрд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░реЗрдВ┬╢
рдЖрдк рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЙрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдХреЗрдд рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрд▓рдПрд▓рдПрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИ, рдпрд╣ рд╣рдореЗрд╢рд╛ рдЗрд╕реЗ рд╕рд╣реА рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдпрд╣ рдХреЛрдИ рдирд╣реАрдВ рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдбреАрдПрдл = рдНрдХреНрд╕реНрдк.ask_ai("рдореБрдЭреЗ рдХрдо рд╕реЗ рдХрдо 2 рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде 10 рд╕реЗ рдЕрдзрд┐рдХ рд╡рд╕реНрддреБрдУрдВ рд╡рд╛рд▓реА рдЫрд╡рд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдПрдВ")рдбреАрдПрдлредрд╕рд┐рд░(5)
рдЗрди рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкреНрд▓реЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ plot_query_result
рдпреВрдЯрд┐рд▓
рдЙрджрд╛рд╣рд░рдг:
plt = plot_query_result(exp.ask_ai("show me 10 images containing exactly 2 persons"))
Image.fromarray(plt)
# рд╕реЗ рдкреНрд▓реЙрдЯ ultralytics.data.explorer PIL рдЖрдпрд╛рдд рд╕реЗ plot_query_result рдЖрдпрд╛рдд рдЫрд╡рд┐plt = plot_query_result(exp.ask_ai("рдореБрдЭреЗ 10 рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рд╡рд╛рд▓реА 2 рдЫрд╡рд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдПрдВ"))рдЫрд╡рд┐редFromarray (PLT)
3. рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкрд░ SQL рдХреНрд╡реЗрд░реА рдЪрд▓рд╛рдПрдБ! ┬╢
рдХрднреА-рдХрднреА рдЖрдк рдЕрдкрдиреЗ рдбреЗрдЯрд╛рд╕реЗрдЯ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдЖрдкрдХреЛ SQL рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдХрд┐рд╕реА рднреА рдкреНрд░рд╛рд░реВрдк рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ:
- "WHERE" рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реА рдХреНрд╡реЗрд░реАрдЬрд╝ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреА. рдЗрд╕реЗ рд╢реЙрд░реНрдЯ-рд╣реИрдВрдб рдХреНрд╡реЗрд░реА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЛрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
- рдЖрдк рдкреВрд░реНрдг рдХреНрд╡реЗрд░реАрдЬрд╝ рднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдБ рдЖрдк рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреМрди рд╕реЗ рдХреЙрд▓рдо рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбрд▓ рдкреНрд░рджрд░реНрд╢рди рдФрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
- рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдкрдХрд╛ рдореЙрдбрд▓ рдЙрди рдЫрд╡рд┐рдпреЛрдВ рдкрд░ рд╕рдВрдШрд░реНрд╖ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдордиреБрд╖реНрдп рдФрд░ рдХреБрддреНрддреЗ рд╣реИрдВред рдЖрдк рдЙрди рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдПрдХ рдХреНрд╡реЗрд░реА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдХрдо рд╕реЗ рдХрдо 2 рдЗрдВрд╕рд╛рди рдФрд░ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдХреБрддреНрддрд╛ рд╣реИред
рдЖрдк рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП SQL рдХреНрд╡реЗрд░реА рдФрд░ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдЦреЛрдЬ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ
рддрд╛рд▓рд┐рдХрд╛ = рдНрдХреНрд╕реНрдк.sql_query("рдЬрд╣рд╛рдВ '% рд╡реНрдпрдХреНрддрд┐, рд╡реНрдпрдХреНрддрд┐%' рдЬреИрд╕реЗ рд▓реЗрдмрд▓ рдФрд░ '%dog%' рд╕реАрдорд╛ 10 рдЬреИрд╕реЗ рд▓реЗрдмрд▓")рддрд╛рд▓рд┐рдХрд╛
рд╕рдорд╛рдирддрд╛ рдЦреЛрдЬ рдХреА рддрд░рд╣, рдЖрдкрдХреЛ рд╕реАрдзреЗ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд▓реЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рднреА рдорд┐рд▓рддреА рд╣реИ exp.plot_sql_query
рдНрдХреНрд╕реНрдк.plot_sql_query("рдЬрд╣рд╛рдВ '% рд╡реНрдпрдХреНрддрд┐, рд╡реНрдпрдХреНрддрд┐%' рдЬреИрд╕реЗ рд▓реЗрдмрд▓ рдФрд░ '%dog%' рд╕реАрдорд╛ 10 рдЬреИрд╕реЗ рд▓реЗрдмрд▓", рд▓реЗрдмрд▓ = рд╕рддреНрдп)
3. рдПрдореНрдмреЗрдбрд┐рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ (рдЙрдиреНрдирдд)┬╢ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдп рдХрд░рдирд╛
рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд▓рд╛рдВрд╕рдбреАрдмреА рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рддрд╛рд▓рд┐рдХрд╛рдПрдБред рдЖрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕реАрдзреЗ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ Explorer.table
рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд░реЗрдВ рдФрд░ рдХрдЪреНрдЪреЗ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдЪрд▓рд╛рдПрдВ, рдкреНрд░реА рдФрд░ рдкреЛрд╕реНрдЯ рдлрд╝рд┐рд▓реНрдЯрд░ рдЖрджрд┐ рдХреЛ рдиреАрдЪреЗ рдзрдХреЗрд▓реЗрдВред
рддрд╛рд▓рд┐рдХрд╛ = рдНрдХреНрд╕реНрдк.рдЯреЗрдмрд▓
рдЯреЗрдмрд▓редрд░реВрдкрд░реЗрдЦрд╛
рдХрдЪреНрдЪреЗ рдкреНрд░рд╢реНрди рдЪрд▓рд╛рдПрдБ┬╢
рд╡реЗрдХреНрдЯрд░ рдЦреЛрдЬ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдирд┐рдХрдЯрддрдо рд╡реИрдХреНрдЯрд░ рдвреВрдВрдврддрд╛ рд╣реИред рдПрдХ рд╕рд┐рдлрд╛рд░рд┐рд╢ рдкреНрд░рдгрд╛рд▓реА рдпрд╛ рдЦреЛрдЬ рдЗрдВрдЬрди рдореЗрдВ, рдЖрдк рдЕрдкрдиреЗ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗ рдЧрдП рд╕рдорд╛рди рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрд▓рдПрд▓рдПрдо рдФрд░ рдЕрдиреНрдп рдПрдЖрдИ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдХреЛ рдХреБрдЫ рдореЙрдбрд▓реЛрдВ рд╕реЗ рдЙрддреНрдкрдиреНрди рдПрдореНрдмреЗрдбрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рд╕рдмрд╕реЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЛ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдЙрдЪреНрдЪ-рдЖрдпрд╛рдореА рд╡реЗрдХреНрдЯрд░ рд╕реНрдкреЗрд╕ рдореЗрдВ рдПрдХ рдЦреЛрдЬ, рдХреНрд╡реЗрд░реА рд╡реЗрдХреНрдЯрд░ рдХреЗ рдХреЗ-рдирд┐рдХрдЯрддрдо-рдкрдбрд╝реЛрд╕рд┐рдпреЛрдВ (рдХреЗрдПрдирдПрди) рдХреЛ рдвреВрдВрдврдирд╛ рд╣реИред
рдкрд░рд┐рдорд╛рдгрд╛рддреНтАНрдордХ рд▓рд╛рдВрд╕рдбреАрдмреА рдореЗрдВ, рдПрдХ рдореАрдЯреНрд░рд┐рдХ рд╡реИрдХреНрдЯрд░ рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рдмреАрдЪ рдХреА рджреВрд░реА рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореАрдЯреНрд░рд┐рдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ:
- L2
- рдХреЛрдЬреНтАНрдпрд╛
- рдмрд┐рдВрджреБ рд▓рдЧрд╛рдирд╛ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдХреА рд╕рдорд╛рдирддрд╛ рдЦреЛрдЬ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ L2 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИред рдЖрдк рд╕реАрдзреЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рдХреНрд╡реЗрд░реА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд▓рд╛рдВрд╕ рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдбреЙрдХреНрд╕ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд▓рд╛рдВрд╕рдбреАрдмреА рдЯреЗрдмрд▓ рдСрдкреНрд╕ рдкрд░ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА
dummy_img_embedding = [рдореИрдВ рдХреЗ рд▓рд┐рдП рдореИрдВ рд╢реНрд░реЗрдгреА рдореЗрдВ (256)]рддрд╛рд▓рд┐рдХрд╛ред search(dummy_img_embedding) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредрд╕реАрдорд╛(5).to_pandas()
рд▓реЛрдХрдкреНрд░рд┐рдп рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рдЕрдВрддрд░-рд░реВрдкрд╛рдВрддрд░рдг┬╢
рдбреАрдПрдл = рддрд╛рд▓рд┐рдХрд╛редto_pandas()
pa_table = рддрд╛рд▓рд┐рдХрд╛редto_arrow()
рдПрдореНрдмреЗрдбрд┐рдВрдЧ┬╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
рдЖрдк рд▓рд╛рдВрд╕рдбреАрдмреА рдЯреЗрдмрд▓ рд╕реЗ рдХрдЪреНрдЪреЗ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЫрд╡рд┐ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХреЙрд▓рдо рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХреА рдЬрд╛рддреА рд╣реИрдВ vector
рдЖрдпрд╛рдд numpy рдХреЗ рд░реВрдк рдореЗрдВ рдПрдирдкреАembeddings = рддрд╛рд▓рд┐рдХрд╛.to_pandas()["рд╡реЗрдХреНрдЯрд░"]редtolist()embeddings = np.рд╕рд░рдгреА (рдПрдореНрдмреЗрдбрд┐рдВрдЧ)
рд╕реНрдХреИрдЯрд░рдкреНрд▓реЙрдЯ┬╢
рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЙрдиреНрд╣реЗрдВ рдЖрдпрд╛рдореАрддрд╛ рдореЗрдВ рдХрдореА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ 2 рдбреА рд╕реНрдкреЗрд╕ рдореЗрдВ рдкреНрд▓реЙрдЯ рдХрд░рдирд╛ рд╣реИред рдЖрдЗрдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ
!рдкрд╛рдЗрдк рд╕реНрдерд╛рдкрд┐рдд scikit-learn --q
%matplotlib рдЗрдирд▓рд╛рдЗрди Sklearn.decomposition рд╕реЗ np рдХреЗ рд░реВрдк рдореЗрдВ nP рдЖрдпрд╛рдд рдХрд░реЗрдВ PCAрдЖрдпрд╛рдд matplotlib.pyplot mpl_toolkits.mplot3d рдЖрдпрд╛рдд рд╕реЗ pltрдХреЗ рд░реВрдк рдореЗрдВ Axes3D# 3D рдореЗрдВ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП PCA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдпрд╛рдореЛрдВ рдХреЛ 3 рдШрдЯрдХреЛрдВ рддрдХ рдХрдо рдХрд░реЗрдВPCA = PCA(n_ рдШрдЯрдХ = 3) reduced_data = рдкреАрд╕реАрдПредfit_transform(рдПрдореНрдмреЗрдбрд┐рдВрдЧ)# Matplotlib рдХреЗ Axes3D рдЕрдВрдЬреАрд░ = plt рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ 3D рд╕реНрдХреИрдЯрд░ рдкреНрд▓реЙрдЯ рдмрдирд╛рдПрдВ редрдЪрд┐рддреНрд░ (рдЕрдВрдЬреАрд░ = (8, 6)) рдХреБрд▓реНрд╣рд╛рдбрд╝реА = рдЕрдВрдЬреАрд░редadd_subplot(111, рдкреНрд░рдХреНрд╖реЗрдкрдг = '3 рдбреА')# рд╕реНрдХреИрдЯрд░ рдкреНрд▓реЙрдЯрдХреБрд▓реНрд╣рд╛рдбрд╝реАредрд╕реНрдХреИрдЯрд░(reduced_data[:, 0], reduced_data[:, 1], reduced_data[:, 2], рдЕрд▓реНрдлрд╛ = 0.5) рдХреБрд▓реНрд╣рд╛рдбрд╝реАредset_title ('3 рдбреА рд╕реНрдХреИрдЯрд░ рдкреНрд▓реЙрдЯ рдСрдл рд░рд┐рдбреНрдпреВрд╕реНрдб 256-рдбрд╛рдпрдореЗрдВрд╢рдирд▓ рдбреЗрдЯрд╛ (рдкреАрд╕реАрдП)') рдХреБрд▓реНрд╣рд╛рдбрд╝реАредset_xlabel('рдШрдЯрдХ 1') рдХреБрд▓реНрд╣рд╛рдбрд╝реАредset_ylabel('рдШрдЯрдХ 2') рдХреБрд▓реНрд╣рд╛рдбрд╝реАредset_zlabel('рдШрдЯрдХ 3') plt.рд╢реЛ()
4. рд╕рдорд╛рдирддрд╛ рд╕реВрдЪрдХрд╛рдВрдХ┬╢
рдпрд╣рд╛рдВ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рддрд╛рд▓рд┐рдХрд╛ рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рдСрдкрд░реЗрд╢рди рдХрд╛ рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ рдПрдХ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ similarity_index
рдкрд░рд┐рдЪрд╛рд▓рди-
- рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╢реЗрд╖ рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛ рдмрд┐рдВрджреБ рдХрд┐рддрдирд╛ рд╕рдорд╛рди рд╣реИред
- рдпрд╣ рдЧрд┐рдирддреА рдХрд░рдХреЗ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рддрдиреЗ рдЫрд╡рд┐ рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХрд░реАрдм рдЭреВрда рдмреЛрд▓рддреЗ рд╣реИрдВ
max_dist
рдЙрддреНрдкрдиреНрди рдПрдореНрдмреЗрдбрд┐рдВрдЧ рд╕реНрдерд╛рди рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдЫрд╡рд┐ рдХреЗ рд▓рд┐рдП, рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реБрдПtop_k
рдПрдХ рд╕рдордп рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рдЫрд╡рд┐рдпрд╛рдВред
рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдбреЗрдЯрд╛рд╕реЗрдЯ рдХреЗ рд▓рд┐рдП, рдореЙрдбрд▓, max_dist
& top_k
рдПрдХ рдмрд╛рд░ рдЙрддреНрдкрдиреНрди рд╕рдорд╛рдирддрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХрд╛ рдбреЗрдЯрд╛рд╕реЗрдЯ рдмрджрд▓ рдЧрдпрд╛ рд╣реИ, рдпрд╛ рдЖрдкрдХреЛ рдмрд╕ рд╕рдорд╛рдирддрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ force=True
.
рд╡реЗрдХреНрдЯрд░ рдФрд░ рдПрд╕рдХреНрдпреВрдПрд▓ рдЦреЛрдЬ рдХреЗ рд╕рдорд╛рди, рдпрд╣ рднреА рд╕реАрдзреЗ рдЗрд╕реЗ рдкреНрд▓реЙрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИред рдЖрдЗрдП рдкрд╣рд▓реЗ рдкреНрд▓реЙрдЯ рдХреЛ рджреЗрдЦреЗрдВ
рдНрдХреНрд╕реНрдк.plot_similarity_index(max_dist = 0.2, top_k = 0.01)
рдЕрдм рдЖрдЗрдП рдСрдкрд░реЗрд╢рди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рджреЗрдЦреЗрдВ
рдЖрдпрд╛рдд numpy рдХреЗ рд░реВрдк рдореЗрдВ рдПрдирдкреАsim_idx = exp.similarity_index(max_dist=0.2, top_k=0.01, рдмрд▓ = рдЧрд▓рдд)
sim_idx
рдЖрдЗрдП рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд╡реЗрд░реА рдмрдирд╛рдПрдВ рдХрд┐ рдХрд┐рди рдбреЗрдЯрд╛ рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ 30 рд╕реЗ рдЕрдзрд┐рдХ рдХреА рд╕рдорд╛рдирддрд╛ рдЧрдгрдирд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рд╕рдорд╛рди рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдкреНрд▓реЙрдЯ рдХрд░реЗрдВред
рдПрдирдкреАsim_count = рдПрдирдкреА рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдпрд╛рдд numpyредрд╕рд░рдгреА(sim_idx["рдЧрд┐рдирддреА"])sim_idx['im_file'][sim_count > 30]
рдЖрдкрдХреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП
рдНрдХреНрд╕реНрдк.plot_similar(idx=[7146, 14035]) # 2 рдЫрд╡рд┐рдпреЛрдВ рдХреА рдФрд╕рдд рдПрдореНрдмреЗрдбрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
2024-01-07 рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 2024-01-25
рд▓реЗрдЦрдХ: рд░рд┐рдЬрд╡рд╛рдирдореБрдирд╡реНрд╡рд░ (1), рдЖрдпреБрд╖рдПрдХреНрд╕реЗрд▓ (2), рдЧреНрд▓реЗрди-рдЬреЛрдЪрд░ (1)