attempt to KNN model the image
Browse files
app.py
CHANGED
|
@@ -182,6 +182,23 @@ def main():
|
|
| 182 |
file_name=f"streetview_{lat}_{lng}.jpg",
|
| 183 |
mime="image/jpeg"
|
| 184 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 185 |
|
| 186 |
except Exception as e:
|
| 187 |
st.error(f"Error displaying image: {str(e)}")
|
|
|
|
| 182 |
file_name=f"streetview_{lat}_{lng}.jpg",
|
| 183 |
mime="image/jpeg"
|
| 184 |
)
|
| 185 |
+
|
| 186 |
+
# Process image
|
| 187 |
+
with st.spinner('Processing image...'):
|
| 188 |
+
processed_image = process_image(image, preprocess)
|
| 189 |
+
processed_image = processed_image.to(device)
|
| 190 |
+
|
| 191 |
+
# Encode into CLIP vector
|
| 192 |
+
with torch.no_grad():
|
| 193 |
+
vec = model.encode_image(processed_image)
|
| 194 |
+
|
| 195 |
+
# Normalize vector
|
| 196 |
+
vec /= vec.norm(dim=-1, keepdim=True)
|
| 197 |
+
if debug: st.write(vec.shape)
|
| 198 |
+
vec = vec.numpy()
|
| 199 |
+
k = 40
|
| 200 |
+
for cat in categories:
|
| 201 |
+
st.write(cat, f'rating = {knn_get_score(knn, k, cat, vec):.1f}')
|
| 202 |
|
| 203 |
except Exception as e:
|
| 204 |
st.error(f"Error displaying image: {str(e)}")
|