Fitodex — APK para Android
Diagnóstico de enfermedades y deficiencias en hojas de lechuga a partir de una fotografía, dentro del teléfono: el clasificador, el corpus agronómico y el modelo de lenguaje viajan en el APK, así que funciona sin señal.
Cuando hay internet, en cambio, la app prefiere un servicio en la nube y le manda la fotografía y la pregunta, porque allí responde en segundos en lugar de minutos. Si no hay conexión, si el servicio no contesta o si negás el permiso de internet, responde en el teléfono y la fotografía no sale del dispositivo. El permiso es opcional y negarlo deja la app enteramente local.
Proyecto Final de Ingeniería Informática, ITBA (72.45). Valentina Marti Reta · Matías Sapino · Julieta Techenski.
El archivo
| Archivo | fitodex-1.0.7.apk |
| Tamaño | 3,934,242,360 B |
sha256 |
2c2fa2c89fca8a330e821170d81e006c90e68c5391ba45e46ce8f1090ac0b77d |
| Android mínimo | 7.0 (API 24) |
| ABI | arm64-v8a y x86_64 |
Cómo instalarlo desde el teléfono
Hacé lugar: Android necesita bastante más que el tamaño del archivo para instalarlo, y la primera consulta además copia los modelos fuera del APK.
Si tenés la versión 1.0.4, 1.0.5 o 1.0.6, instalá esta actualización encima: conserva la misma firma y el historial de consultas. Las versiones 1.0.0 y 1.0.1 usaban otra clave y requieren desinstalar primero; eso sí borra el historial.
Descargá
fitodex-1.0.7.apkdesde esta página. Si el navegador avisa que el archivo puede ser dañino, es lo que dice de cualquier APK: confirmá la descarga.Abrí la descarga desde el navegador, no desde un gestor de archivos: en Chrome, el menú Descargas y después el archivo. Android te va a pedir permitir la instalación desde esa fuente, que es el aviso normal para cualquier APK que no venga de la Play Store, y después Instalar.
Este paso importa: buscando el mismo archivo con un gestor de archivos, el instalador falla con «No se ha podido analizar el paquete». Medido en un Galaxy S9+ con Android 10, con el
sha256correcto; abriéndolo desde Chrome, instala.Abrí la app y tocá Permitir la cámara. A la izquierda del disparador está el botón de imágenes: tocándolo se abren las seis fotos de ejemplo para elegir una. También podés sacar una foto nueva con el disparador. Dos ejemplos se resuelven de punta a punta y cuatro muestran al sistema absteniéndose, que es lo que hace cuando no está seguro.
Las cuatro consultas que se abstienen contestan en segundos. Las dos que redactan una recomendación tardaron entre 9 y 17 minutos en un Galaxy S9+ de 2018: el modelo de lenguaje corre en el aparato, y el 98-99% de ese tiempo es él escribiendo.
Qué modelo lleva adentro
El APK empaqueta gemma-3-4b-it y gemma-3-1b-it. La app intenta el
grande y, si el teléfono no puede con él, cae al chico y lo dice en la propia
pantalla de resultado: «Este teléfono usó el modelo chico, cuya calidad no
está medida». En el S9+ de 2018 con 5,45 GiB de RAM entra el grande.
La comparación de calidad entre los dos modelos no se hizo, así que eso es lo que el proyecto puede afirmar y nada más.
Por cable, si preferís:
sha256sum fitodex-1.0.7.apk # tiene que dar el hash de arriba
adb uninstall ar.edu.itba.asesordebolsillo # si había una versión anterior
adb install fitodex-1.0.7.apk
Antes de usarlo
- No reemplaza a un agrónomo. Que una hoja se vea sana no descarta una enfermedad.
- Sólo diagnostica lechuga. Reconoce la espinaca de Malabar y avisa que no la contesta.
- Fuera de su conjunto de entrenamiento el clasificador se degrada mucho; la pantalla Alcance de la app lleva las cifras medidas y dice cuáles no se midieron.
- El servicio en la nube está apagado casi siempre, porque se paga por hora encendido y esto es un trabajo académico: se levanta para las demostraciones. Con el servicio apagado la app no falla, responde en el teléfono y lo dice en pantalla; es el comportamiento normal y no un error.
- Es un entregable académico, no un producto mantenido: no hay canal de actualizaciones ni compromiso de mantenimiento, y una versión nueva aparece sólo si un defecto deja el archivo inservible.
Licencias
Este archivo no está bajo una sola licencia, y por eso la ficha dice other:
- El código del proyecto es MIT.
- El modelo de lenguaje son los pesos de
gemma-3-4b-itygemma-3-1b-itde Google, que viajan adentro y se rigen por los Gemma Terms of Use, no por MIT. - Una de las seis fotos de ejemplo, la de tizón tardío en tomate, es del
dataset PlantVillage de Sharada P. Mohanty, David P. Hughes y Marcel
Salathé (Using deep learning for image-based plant disease detection,
Frontiers in Plant Science 7:1419, 2016), archivo
raw/color/Tomato___Late_blight/0003faa8-4b27-4c65-bf42-6d9e352ca1a5___RS_Late.B 4946.JPGde https://github.com/spMohanty/PlantVillage-Dataset. Se distribuye sin modificar bajo Creative Commons Atribución-CompartirIgual 3.0 (https://creativecommons.org/licenses/by-sa/3.0/). - Las otras cinco fotos son de los conjuntos con los que se entrenó el modelo, usadas con autorización de sus responsables para este trabajo académico.
Cómo se construyó
Las instrucciones de instalación, uso y compilación están en el repositorio del proyecto, junto al código que produjo este archivo.