JoJosmin commited on
Commit
07e5bed
ยท
verified ยท
1 Parent(s): e861a23

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -17
app.py CHANGED
@@ -85,28 +85,29 @@ def segment_clothing(img, clothes=["Hat", "Upper-clothes", "Skirt", "Pants", "Dr
85
  img_with_alpha.putalpha(final_mask)
86
 
87
  return img_with_alpha.convert("RGB"), final_mask, detected_categories # Return detected categories
88
-
89
- def find_similar_images(query_embedding, collection, top_k=5):
90
- # ๋ชจ๋“  ์ž„๋ฒ ๋”ฉ์„ ๊ฐ€์ ธ์˜ด
91
- all_embeddings = collection.get(include=['embeddings'])['embeddings']
92
- database_embeddings = np.array(all_embeddings)
93
 
94
- # ์œ ์‚ฌ๋„ ๊ณ„์‚ฐ
95
- similarities = np.dot(database_embeddings, query_embedding.T).squeeze()
96
- top_indices = np.argsort(similarities)[::-1][:top_k]
 
 
 
 
97
 
98
- # ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ด
99
- all_data = collection.get(include=['metadatas'])['metadatas']
100
-
101
- top_metadatas = [all_data[idx] for idx in top_indices]
102
 
103
- results = []
104
- for idx, metadata in enumerate(top_metadatas):
105
- results.append({
 
106
  'info': metadata,
107
- 'similarity': similarities[top_indices[idx]]
108
  })
109
- return results
 
 
110
 
111
 
112
 
 
85
  img_with_alpha.putalpha(final_mask)
86
 
87
  return img_with_alpha.convert("RGB"), final_mask, detected_categories # Return detected categories
 
 
 
 
 
88
 
89
+ def find_similar_images(query_embedding, collection, top_k=5):
90
+ # ChromaDB์˜ query ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์‚ฌํ•œ ํ•ญ๋ชฉ ๊ฒ€์ƒ‰
91
+ results = collection.query(
92
+ query_embeddings=[query_embedding],
93
+ n_results=top_k,
94
+ include=['metadatas', 'distances'] # ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์œ ์‚ฌ๋„ ๊ฐ’์„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜
95
+ )
96
 
97
+ # ๊ฒฐ๊ณผ์—์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์™€ ์œ ์‚ฌ๋„๋ฅผ ์ถ”์ถœ
98
+ top_metadatas = results['metadatas'][0] # ๊ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ
99
+ top_distances = results['distances'][0] # ๊ฐ ์œ ์‚ฌ๋„ (๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์œ ์‚ฌํ•จ)
 
100
 
101
+ # ๊ฒฐ๊ณผ๋ฅผ ๊ตฌ์กฐํ™”
102
+ structured_results = []
103
+ for metadata, distance in zip(top_metadatas, top_distances):
104
+ structured_results.append({
105
  'info': metadata,
106
+ 'similarity': 1 - distance # ๊ฑฐ๋ฆฌ๋ฅผ ์œ ์‚ฌ๋„๋กœ ๋ณ€ํ™˜ (1์— ๊ฐ€๊นŒ์šธ์ˆ˜๋ก ์œ ์‚ฌ)
107
  })
108
+
109
+ return structured_results
110
+
111
 
112
 
113