Flask와 TensorFlow를 이용한 얼굴 이미지 추론
3895 단어 pillowFlask파이썬TensorFlownumpy
소개
TensorFlow
의 MNIST CNN
튜토리얼을 개조하여 얼굴 이미지를 학습하고 추론했습니다. Flask
로부터 추론을 실시해, 결과를 표시해 보겠습니다. 개요
Flask
학습 모델 가져오기
face_deep.py
를 가져옵니다. import face_deep
추론
.jpeg
모두를 추론 대상으로 하고 있습니다. @app.route('/predict/<folder>/<item>')
def predict(folder, item):
"""画像の推論."""
if folder not in ['train', 'test']:
abort(404)
filename_list = sorted(glob.glob(os.path.join(DATA_PATH, folder, item, '*.jpeg')))
Pillow
로 로드하고 크기 조정, 회색조 및 값을 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)
face_deep.py
의 predict
에 입력합니다. [ 99 0 0 0 0 0 0 0 0 0]
와 같은 확률을 포함한 배열이 이미지분 반환됩니다. percent_list = face_deep.predict(image_list, dtype='int')
color
는 대상 이미지의 추론 결과가 올바르면 True
잘못되면 False
로 주어집니다. filename
에서 템플릿에서 이미지 링크를 만들 수 있습니다. percent
에서 템플릿에서 이미지의 클래스별 확률을 표시합니다. 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)
템플릿
color
에 의해, 정답의 경우는 청색의 table-primary
실수의 경우는 적색의 table-danger
를 설정하고 있습니다. {% 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>
{% for percent in row.percent %}
<td scope="row">{{ percent }}%</td>
결론
Flask
를 사용하여 얼굴 이미지의 추론 결과를 표시했습니다. Reference
이 문제에 관하여(Flask와 TensorFlow를 이용한 얼굴 이미지 추론), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/maeda_mikio/items/a0e611249b74efa0e186텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)