Converti mon propre modèle Keras CNN tensorflow Lite. Résultats de la détection dans tensorflow Lite Demo App mauvaise

voix
0

Je travaille avec un Keras CNN pour la classification de l' image que je me suis construit. Résultats de détection sur ma machine PC sont très bien pour l' instant (environ 290 sur 300 images de test détectés correctement). Maintenant , je dois obtenir mon modèle fonctionnant sur un téléphone Android. J'ai installé l' App Demo TFLite sur mon téléphone. Jusqu'à présent , il fonctionne bien avec le modèle pré - installé ainsi qu'avec certains modèles aléatoires que j'ai trouvé pré - entraîné en ligne. Malheureusement, si je convertir le modèle ne TFLite il affichera des résultats erronés de détection.

Maintenant , pour convertir mon Keras (.h5-file) à TFLite (.tflite-file) J'ai suivi la description sur le site officiel tensorflow site, en utilisant ce code:

# Convert to TensorFlow Lite model.
converter = tf.lite.TFLiteConverter.from_keras_model_file(keras_file)
tflite_model = converter.convert()
open(converted_model.tflite, wb).write(tflite_model)

Comme je l' ai dit plus haut, le juste créé keras modèle ( keras_file) je convertir à TFLite fonctionne parfaitement bien sur les tests, mais le modèle TFLite-ne. Pour être exact. Pour des fins de test , il y a actuellement 4 catégories possibles pour détecter. Dans 3 des 4 cas , l'application va me montrer un mauvais résultat de la détection, en disant qu'il est certain à 100%. Je pensais qu'il pourrait y avoir un problème avec le fichier d'étiquette que j'ai créé. Mais il n'y a pas de système pour trouver (comme peut - être l'ordre des chaînes dans le fichier sont mauvais ou quelque chose). Donc , je suis presque certain que l'étiquette fichier est OK.

Maintenant, ce que je l'ai fait sur l'application Android:

  • (Comme indiqué dans le descriptif ) modifier le classificateur à ImageClassifierFloatInception.
  • Créez le fichier d'étiquette contenant 4 cordes pour mes 4 catégories
  • Modifier la taille de l'image
  • Modifiez la valeur de retour getNumBytesPerChannel()à 4, pour correspondre à ma catégorie comptage

spécifications:

  • windows 10
  • Tf-nuit-gpu 1.13.0a20181125 (tensorflow-gpu 1.12.0 ne soutiendra pas la méthode de conversion)
  • S6 Galaxy sur Android 7.0

Est-ce que je manque quelque chose? Si vous avez besoin de plus amples informations, je suis heureux de vous fournir.

Stephan

Créé 27/11/2018 à 15:20
source utilisateur
Dans d'autres langues...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more