Creați o aplicație mobilă pentru contorizarea caloriilor utilizând recunoașterea vizuală Watson

aplicație

În acest model de cod, vom crea o aplicație mobilă de contor de calorii folosind Apache Cordova, Node.js și Watson Visual Recognition. Această aplicație mobilă extrage informații nutriționale din imaginile capturate ale produselor alimentare.

În prezent, această aplicație mobilă rulează numai pe Android, dar poate fi ușor portată pe iOS.

  1. Utilizatorul interacționează cu aplicația mobilă și captează o imagine.
  2. Imaginea este transmisă aplicației server care utilizează Serviciul de recunoaștere vizuală Watson pentru a analiza imaginile și API Nutritionix pentru a furniza informații nutriționale.
  3. Datele sunt returnate în aplicația mobilă pentru afișare.
  • Recunoaștere vizuală Watson: Recunoașterea vizuală înțelege conținutul imaginilor - conceptele vizuale etichetează imaginea, găsesc fețe umane, vârsta și sexul aproximativ și găsesc imagini similare într-o colecție.
  • Mobil: sistemele de implicare folosesc din ce în ce mai mult tehnologia mobilă ca platformă de livrare.
  • API Nutritionix: Cea mai mare bază de date verificată de informații nutriționale.
  • Node.js: un runtime JavaScript asincron condus de evenimente, conceput pentru a crea aplicații scalabile.

Priveste filmarea

NOTĂ: Serviciul de recunoaștere vizuală Watson necesar pentru acest model există doar în regiunea SUA-Sud/Dallas (începând cu data de 30.11.18). Veți putea implementa și/sau utiliza acest cod numai acolo.

Acest model de cod conține mai multe piese. Serverul aplicației comunică cu serviciul de recunoaștere vizuală Watson. Aplicația mobilă este construită local și rulează pe telefonul Android.

Implementați aplicația server pe IBM Cloud

Apăsați butonul Deploy to IBM Cloud de mai sus și apoi faceți clic pe Deploy .

În Toolchains, faceți clic pe Livrare conductă pentru a viziona în timp ce aplicația este implementată.

  1. Pentru a vedea aplicația și serviciile create și configurate pentru acest model de cod, utilizați tabloul de bord IBM Cloud. Aplicația este numită watson-contor de calorii cu un sufix unic. Următoarele servicii sunt create și ușor identificate de prefixul wcc:
    • wcc-vizual-recunoaștere

Notă: Notați ruta URL-ului contor de calorii watson - va fi necesară pentru o utilizare ulterioară în aplicația mobilă.

Pentru a finaliza instalarea, efectuați următorii pași:

Efectuați 4a sau 4b.

1. Clonați repo

Clonați local repo watson-counter-counter. Într-un terminal, executați:

2. Obțineți un ID API și o cheie Nutritionix

Datele Nutritionix sunt utilizate pentru a aduna informații nutriționale ale unei imagini analizate. Instrucțiunile pentru obținerea unei chei pot fi găsite la Nutritionix.com.

Notă: Notați ID-ul API și cheia - acestea vor fi necesare pentru o utilizare ulterioară în aplicația mobilă.

3. Actualizați valorile de configurare pentru aplicația mobilă

Editați mobile/www/config.json și actualizați setarea cu valorile recuperate anterior.

4a. Instalați dependențe pentru a crea aplicația mobilă

Construirea aplicației mobile necesită câteva dependențe pe care le puteți instala manual, sau puteți utiliza Docker sărind pentru a Rula construirea aplicației mobile în containerul Docker

Folosind dependențe instalate manual

Pentru acest model de cod, va trebui să instalați condițiile preliminare, urmând documentația respectivă:

  • Kit de dezvoltare Java (JDK)
  • Node.js și npm (npm versiunea 4.5.0 sau o versiune ulterioară)
  • Android Studio, care include instrumente Android și vă oferă acces la SDK-uri Android
  • Cordova
  • Gradle

Va trebui să instalați SDK-ul specific adecvat dispozitivului dvs. mobil. Din Android Studio, descărcați și instalați nivelul API dorit pentru SDK. Folosim Android API Nivelul 23, deoarece acest lucru este acceptat pe majoritatea telefoanelor începând cu ianuarie 2018. Pentru a face acest lucru:

  • Lansați Android Studio și acceptați toate valorile implicite.
  • Faceți clic pe pictograma Manager SDK din bara de instrumente.
  • Navigați la Aspect și comportament -> Setări sistem -> SDK Android
  • Selectați nivelul API Android la alegere (Android 6.0 recomandat (Marshmallow) (nivelul API 23) și mai mare).
  • Faceți clic pe aplicați pentru a descărca și instala.

Notă: mobilul/config.xml este configurat pentru a crea pentru Android API Nivelul 23. Ajustați acest lucru dacă doriți să creați pentru un alt API:

După ce ați finalizat toate instalările și configurările necesare, ar trebui să aveți următoarele variabile de mediu setate corespunzător pentru platforma dvs.:

  • JAVA_HOME
  • ANDROID_HOME
  • CALE

Notă: Pentru ajutor suplimentar la setarea acestor variabile de mediu, consultați secțiunea de depanare de mai jos.

4b. Rulați construirea aplicației mobile în containerul Docker

Dacă rulați Docker, creați aplicația mobilă într-un container Docker.

Fie descărcați imaginea:

Sau construiți local:

Acum creați următorul alias pentru cordova și comenzile pentru cordova vor rula în interiorul containerului. Utilizați cordova_build în locul scottdangelo/cordova_build dacă ați construit containerul local.

Notă: mobilul/config.xml este configurat pentru a crea pentru Android API Nivelul 23. Ajustați acest lucru dacă doriți să creați pentru un alt API:

5. Adăugați platformă și pluginuri Android

Începeți prin adăugarea platformei Android ca țintă pentru aplicația dvs. mobilă.

Asigurați-vă că totul a fost instalat corect:

În cele din urmă, instalați pluginurile cerute de aplicație:

6. Configurați dispozitivul Android

Pentru a rula aplicația pe dispozitivul dvs. Android, va trebui să fiți pregătit să transferați fișierul .apk al aplicației pe dispozitivul dvs. (creat în pasul următor). Există mai multe modalități prin care dezvoltatorii pot realiza acest lucru.

Android Studio se va ocupa de transferul dvs. dacă conectați dispozitivul Android la computer și va activa atât opțiunile pentru dezvoltatori, cât și depanarea web .

Notă: Vă rugăm să consultați documentația de pe telefonul dvs. specific pentru a seta aceste opțiuni.

Pentru utilizatorii de Mac, Android File Transfer va facilita transferurile de fișiere simple între computer și dispozitivul Android.

7. Construiți și rulați aplicația mobilă

Un fișier .apk ar trebui să apară la watson-calorie-counter/mobile/platforme/android/app/build/outputs/apk/debug /, care conține aplicația Android.

Apoi, puteți transfera manual fișierul .apk pe dispozitivul dvs. și îl puteți rula singur, sau dacă dispozitivul dvs. este legat (așa cum este descris în pasul anterior), atunci puteți rula:

Cu toate acestea, un container Docker nu are acces la dispozitivele USB ale gazdei dvs., cu excepția cazului în care permiteți în mod explicit trecerea acestora. Puteți expune dispozitivul la containerul Docker și permiteți Cordova să facă transferul pentru dvs. Pentru a realiza acest lucru, va trebui să știți prin ce dispozitiv USB treceți. Descoperiți dispozitivele USB pe o mașină Linux cu lsusb .

De exemplu, în acest caz, știu că dispozitivul meu Android este Bus 001, Device 002:

Pot apoi să trec dispozitivul în container folosind --device =/dev/bus/usb// și să permit Cordova să îl acceseze. Noul alias pentru comanda cordova ar fi atunci:

Atunci putem rula:

În acest moment, aplicația numită Calorie Counter ar trebui să fie pe dispozitivul dvs. mobil. Utilizați pictograma camerei pentru a face o fotografie a unui produs alimentar și permiteți-i lui Watson să analizeze imaginea și să obțină rezultatele caloriilor.

  • Cordova a rulat eroarea Android: Eșec [INSTALL_FAILED_UPDATE_INCOMPATIBLE]

Aplicația Calorie Counter este deja instalată pe telefonul dvs. și este incompatibilă cu versiunea pe care încercați să o rulați acum. Dezinstalați versiunea curentă și încercați din nou.

  • Cordova a rulat eroare Android: Nu a fost specificată nicio țintă și nu s-au găsit dispozitive, implementarea pe emulator

Asigurați-vă că telefonul dvs. este conectat la computer și că îl puteți accesa din utilitarul de transfer de fișiere Android (consultați pasul # 6 de mai sus).

  • Cum se determină valorile adecvate pentru variabilele de mediu:

Deschideți Android Studio și navigați la Fișier -> Structura proiectului -> Locație SDK. Această valoare a locației va servi ca bază pentru variabilele de mediu. De exemplu, dacă locația este/users/joe/Android/sdk, atunci:

  • Eroare: Eroare de server, cod de stare: 502, cod de eroare: 10001, mesaj: Eroare broker de service: "Este permisă o singură cheie gratuită pentru fiecare organizație. Contactați proprietarul organizației dvs. pentru a obține cheia.">

Este permisă o singură cheie gratuită pentru fiecare organizație. Legarea serviciului la o aplicație declanșează un proces care încearcă să aloce o nouă cheie, care va fi respinsă. Dacă aveți deja o instanță de recunoaștere vizuală și o cheie asociată, puteți lega instanța respectivă de aplicația dvs. sau puteți actualiza cheia API din codul serverului dvs. pentru a spune aplicației ce cheie să utilizeze.

  • Când utilizați Docker, prima comandă cordova eșuează cu:

Testați dacă aveți aliasul potrivit cu:

Dacă nu vedeți aliasul cordova =. ieșire din 4b, executați din nou comanda alias de mai sus.

  • Demo pe Youtube: vizionați videoclipul.
  • Watson Node.js SDK: Vizitați biblioteca Node.js pentru a accesa serviciile IBM Watson.
  • Exemplu de cod: Identificați obiectele dintr-o imagine cu serviciul Watson Visual Recognition.
  • Modele de cod de inteligență artificială: Ți-a plăcut acest model de cod? Consultați celelalte modele de cod AI.
  • Listă de redare cu model de cod AI și date: Marcează lista noastră de redare cu toate videoclipurile noastre cu model de cod
  • Cu Watson: Doriți să vă duceți aplicația Watson la nivelul următor? Doriți să utilizați activele mărcii Watson? Alăturați-vă programului With Watson pentru a beneficia de resurse exclusive de marcă, marketing și tehnologie pentru a amplifica și accelera soluția comercială încorporată Watson.

Acest model de cod este licențiat în baza licenței software Apache, versiunea 2. Obiectele de cod terță parte invocate în cadrul acestui model de cod sunt licențiate de furnizorii lor respectivi în conformitate cu propriile lor licențe separate. Contribuțiile sunt supuse certificatului de origine al dezvoltatorului, versiunea 1.1 (DCO) și licenței software Apache, versiunea 2.

Despre

O aplicație mobilă care utilizează recunoașterea vizuală Watson pentru a oferi analize nutriționale ale imaginilor cu alimente capturate.