--Modification du tutoriel MNIST CNN de TensorFlow pour apprendre et déduire les images faciales.
--Cette fois, j'effectuerai l'inférence à partir de Flask et afficherai le résultat.

Flask
face_deep.py précédemment créé.import face_deep
―― Nous permettons de faire des inférences avec des images de formation et des images de test.
--Tous les .jpeg du dossier sont ciblés pour l'inférence.
@app.route('/predict/<folder>/<item>')
def predict(folder, item):
    """Inférence d'image."""
    if folder not in ['train', 'test']:
        abort(404)
    filename_list = sorted(glob.glob(os.path.join(DATA_PATH, folder, item, '*.jpeg')))
--Chaque image est lue avec «Oreiller» et redimensionnée, en niveaux de gris et la valeur est modifiée de «0-255» à «0-1».
    image_list = []
    for filename in filename_list:
        face = Image.open(filename)
        face = face.resize((IMG_ROWS, IMG_COLS), Image.LANCZOS)
        face = face.convert('L')
        face = np.array(face, dtype=np.float32) / 255.0
        face = np.ravel(face)
        image_list.append(face)
--Recueillez chaque image et entrez-la dans predict of face_deep.py
--Comme pour le résultat de l'inférence, un tableau contenant une probabilité telle que «[99 0 0 0 0 0 0 0 0 0]» est renvoyé pour chaque image.
    percent_list = face_deep.predict(image_list, dtype='int')
color est donné comme True si le résultat de l'inférence de l'image cible est correct et "False" s'il est incorrect.
--Avec filename, vous pouvez créer un lien d'image à partir du modèle.
--Avec percent, le modèle affiche la probabilité de chaque classe d'image.    rows = []
    for filename, percent in zip(filename_list, percent_list):
        color = CLASSES.index(item) in [index for index, value in enumerate(percent) if value == max(percent)]
        row = {'filename': os.path.basename(filename), 'percent': percent, 'color': color}
        rows.append(row)
    return render_template('predict.html', folder=folder, item=item, headers=CLASSES, rows=rows)
--Par la "couleur" ci-dessus, le bleu "table-primaire" est défini si la réponse est correcte, et le rouge "table-danger" est défini si la réponse est incorrecte.
          {% if row.color %}
          <tr class="table-primary">
          {% else %}
          <tr class="table-danger">
          {% endif %}
size.            <td>
                <figure class="figure">
                  <img src="/data/{{ folder }}/{{ item }}/{{ row.filename }}?size=100" />
                  <figcaption class="figure-caption">{{ row.filename }}</figcaption>
                </figure>
            </td>
--La probabilité pour chaque classe de chaque image est affichée.
            {% for percent in row.percent %}
            <td scope="row">{{ percent }}%</td>
Flask, le résultat de l'inférence de l'image du visage était affiché.Recommended Posts