viarias commited on
Commit
f0f266d
·
verified ·
1 Parent(s): 5be7361

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +0 -236
README.md CHANGED
@@ -1,236 +0,0 @@
1
- <h1>Clasificación del Uso Predial Usando Imágenes de GSV y Modelos de Lenguaje Visual</h1>
2
-
3
- <p align="center">
4
- <img src="https://img.shields.io/github/issues/chansoopark98/Tensorflow-Keras-Realtime-Segmentation">
5
- <img src="https://img.shields.io/github/forks/chansoopark98/Tensorflow-Keras-Realtime-Segmentation">
6
- <img src="https://img.shields.io/github/stars/chansoopark98/Tensorflow-Keras-Realtime-Segmentation">
7
- <img src="https://img.shields.io/github/license/chansoopark98/Tensorflow-Keras-Realtime-Segmentation">
8
- </p>
9
-
10
- <br>
11
-
12
- <p align="justify">
13
- <img alt="Python" src ="https://img.shields.io/badge/Python-3.13-3776AB.svg?&style=for-the-badge&logo=Python&logoColor=white"/>
14
- <img src ="https://img.shields.io/badge/Docker-0db7ed.svg?&style=for-the-badge&logo=Docker&logoColor=white"/>
15
- <img src ="https://img.shields.io/badge/HUggingface-EB8F00.svg?&style=for-the-badge&logo=Huggingface&logoColor=white"/>
16
- <img src ="https://img.shields.io/badge/JUpyter-5C3EE8.svg?&style=for-the-badge&logo=JUpyter&logoColor=white"/>
17
- <img src ="https://img.shields.io/badge/Numpy-013243.svg?&style=for-the-badge&logo=Numpy&logoColor=white"/>
18
- <br>
19
- <br>
20
- </p>
21
-
22
- <p align="justify">
23
- Este repositorio contiene un modelo de lenguaje visual que automatiza la clasificación del uso del suelo en Bogotá utilizando imágenes de Google Street View. El modelo utiliza una arquitectura de lenguaje visual avanzada (Kimi-VL) que no solo clasifica las imágenes en diferentes categorías de uso del suelo, sino que también proporciona un razonamiento detallado sobre su decisión.
24
- </p>
25
-
26
- # Contenido
27
-
28
- 1. Requerimientos
29
- 2. Instalacion
30
- 3. Uso
31
- - 3.1. Entrenamiento del Modelo
32
- - 3.2. Despliegue del Modelo
33
- 5. Dataset
34
- 6. Arquitectura del Modelo
35
- 7. Azure ML Deployment
36
- 8. Uso del API
37
-
38
- ## Estructura del Proyecto
39
-
40
- ```
41
- ├── data/ # solo visible en local por razones legales
42
- │ └── minisample_v1/
43
- │ ├── bodegas/
44
- │ ├── comerciales1-5/
45
- │ ├── dotacionales1/
46
- │ ├── mixto1-3/
47
- │ ├── otros/
48
- │ └── residenciales/
49
- ├── src/
50
- │ ├── data/ # Utilidades para carga de datos
51
- │ ├── model/ # Código para entrenamiento del modelo
52
- │ ├── deploy_to_azure.py # Script de despliegue en Azure ML
53
- │ └── score.py # Script de inferencia del modelo
54
- ├── pyproject.toml # Dependencias del proyecto
55
- └── README.md # Este archivo
56
-
57
- ```
58
-
59
- ## 1. Requirements
60
-
61
- - Python >= 3.13
62
- - Dependencias especificadas en pyproject.toml:
63
- - PyTorch
64
- - Transformers
65
- - Azure ML SDK
66
- - Otras librerías para procesamiento de datos
67
-
68
- ## 2. Instalación
69
-
70
- 1. Clona el repositorio:
71
- ```bash
72
- git clone <repository-url>
73
- cd bogota-land-use
74
- ```
75
-
76
- 2. Instala las dependencias usando uv:
77
- ```bash
78
- uv venv
79
- source .venv/bin/activate
80
- uv pip install -e .
81
- ```
82
-
83
- ## 3. Uso
84
-
85
- ### 3.1 Evaluación del Modelo
86
-
87
- Para evaluar imágenes usando el modelo:
88
-
89
- ```bash
90
- python src/model/train.py --image_paths path/to/image1.jpg path/to/image2.jpg
91
- ```
92
-
93
- El script realizará lo siguiente:
94
- 1. Cargar las imágenes especificadas
95
- 2. Utilizar el modelo Kimi-VL para analizar cada imagen
96
- 3. Proporcionar una clasificación detallada que incluye:
97
- - Categoría asignada
98
- - Nivel de confianza (Alto/Medio/Bajo)
99
- - Razonamiento paso a paso
100
- - Categorías alternativas relevantes
101
- 4. Guardar los resultados en formato JSON
102
-
103
- ### 3.2 Despliegue del Modelo
104
-
105
- Para desplegar el modelo entrenado en Azure ML:
106
-
107
- 1. Configura las credenciales de Azure:
108
-
109
- ```bash
110
- export AZURE_SUBSCRIPTION_ID="your-subscription-id"
111
- export AZURE_RESOURCE_GROUP="your-resource-group"
112
- export AZURE_ML_WORKSPACE="your-workspace-name"
113
- ```
114
-
115
- 2. Despliega el modelo:
116
- ```bash
117
- python src/deploy_to_azure.py
118
- ```
119
-
120
- ## 4. Dataset y Categorías
121
-
122
- El modelo clasifica las imágenes en 20 categorías detalladas:
123
-
124
- 1. **RESIDENCIALES**: Viviendas, casas, edificios PH's y condominios
125
- 2. **COMERCIALES 1**: Locales comerciales y establecimientos de compra-venta
126
- 3. **COMERCIALES 2**: Oficinas y servicios empresariales
127
- 4. **COMERCIALES 3**: Actividades artesanales y transformación local
128
- 5. **COMERCIALES 4**: Hoteles, moteles y restaurantes
129
- 6. **COMERCIALES 5**: Oficinas operativas y depósitos
130
- 7. **CENTROS COMERCIALES**: Complejos comerciales y malls
131
- 8. **BODEGAS**: Instalaciones de almacenamiento y uso industrial
132
- 9. **PARQUEADEROS**: Estacionamientos
133
- 10. **DOTACIONALES 1**: Servicios comunitarios
134
- 11. **DOTACIONALES 2**: Instituciones educativas
135
- 12. **DOTACIONALES 3**: Centros de salud y hospitales
136
- 13. **DOTACIONALES 4**: Edificios religiosos
137
- 14. **DOTACIONALES 5**: Instalaciones recreativas y culturales
138
- 15. **ESPECIALES**: Áreas militares, cementerios, aeropuertos
139
- 16. **MOLES**: Grandes edificaciones en construcción
140
- 17. **RURALES**: Estructuras rurales y agrícolas
141
- 18. **MIXTO 1**: Residencial con comercial tipo 1
142
- 19. **MIXTO 2**: Residencial con oficinas
143
- 20. **MIXTO 3**: Comercial con oficinas
144
-
145
- Cada categoría está claramente definida con criterios específicos que el modelo utiliza para su análisis y clasificación.
146
-
147
- ## 5. Arquitectura del Modelo
148
-
149
- El proyecto utiliza el modelo Kimi-VL (Visual Language) de Moonshot AI, una arquitectura avanzada de lenguaje visual que combina:
150
- - Procesamiento de imágenes de alta calidad
151
- - Comprensión del contexto visual detallada
152
- - Capacidad de razonamiento paso a paso
153
- - Generación de explicaciones en lenguaje natural
154
-
155
- El modelo:
156
- - Recibe imágenes a nivel de calle como entrada
157
- - Analiza las características arquitectónicas y contextuales
158
- - Proporciona una clasificación basada en razonamiento
159
- - Incluye niveles de confianza y categorías alternativas
160
- - Genera explicaciones detalladas de su decisión
161
-
162
- ## 6. Azure ML Deployment
163
-
164
- El modelo se despliega como un endpoint online gestionado en Azure ML. El proceso de despliegue:
165
-
166
- 1. **Registro del Modelo**:
167
- - El modelo Kimi-VL se registra en Azure ML workspace
168
- - Se incluyen todos los archivos necesarios para inferencia
169
-
170
- 2. **Configuración del Endpoint**:
171
- - Se crea un endpoint online con autenticación por clave
172
- - Se configura el ambiente de ejecución con las dependencias necesarias
173
-
174
- 3. **Despliegue del Modelo**:
175
- - Se utiliza una instancia Standard_DS3_v2 para el servicio
176
- - El modelo procesa las imágenes en lotes para mayor eficiencia
177
- - Incluye manejo automático de errores y logging
178
-
179
- 4. **Características del Servicio**:
180
- - API REST para inferencia en tiempo real
181
- - Procesamiento de imágenes en múltiples formatos
182
- - Respuestas detalladas con razonamiento
183
- - Escalado automático según la demanda
184
-
185
- ## 7. Uso del API
186
-
187
- Una vez desplegado, puedes enviar peticiones HTTP POST al endpoint con imágenes:
188
-
189
- ```python
190
- import requests
191
- import base64
192
- import json
193
-
194
- def encode_image(image_path):
195
- with open(image_path, "rb") as f:
196
- return base64.b64encode(f.read()).decode()
197
-
198
- # Prepare the request
199
- image_data = encode_image("path/to/image.jpg")
200
- data = {"image": image_data}
201
-
202
- # Send request to endpoint
203
- response = requests.post(
204
- "YOUR_ENDPOINT_URL",
205
- json=data,
206
- headers={"Authorization": f"Bearer {api_key}"}
207
- )
208
-
209
- # Get prediction
210
- result = response.json()
211
- print(f"Categoría predicha: {result['classification']}")
212
- print(f"Nivel de confianza: {result['confidence']}")
213
- print("\nRazonamiento:")
214
- for step, explanation in result['reasoning'].items():
215
- print(f"{step}: {explanation}")
216
-
217
- # Si hay categorías alternativas
218
- if 'alternative_categories' in result:
219
- print("\nCategorías alternativas relevantes:")
220
- for category in result['alternative_categories']:
221
- print(f"- {category}")
222
- ```
223
-
224
- La respuesta incluye:
225
- - La categoría asignada
226
- - Nivel de confianza (Alto/Medio/Bajo)
227
- - Razonamiento paso a paso
228
- - Categorías alternativas relevantes
229
-
230
- ## Licencia
231
-
232
- [Agrega aquí la información de tu licencia]
233
-
234
- ## Contribuidores
235
-
236
- [Agrega aquí información sobre los contribuidores]