Skip to content

画像のみでPFCバランスを出力するwebアプリ

Notifications You must be signed in to change notification settings

Koki-Kazaore/PFC-BALANCE

Repository files navigation

PFC-BALANCE

1. プログラムの概要

プログラムのコンセプトを一言で表すと,「写真をとるだけでPFC管理」である.
簡単なフロー図を以下に示す.自分の食べた料理の画像を入力することにより,身体づくりにおいて必要不可欠である三大栄養素のP(Protein),F(Fat),C(Carbo)を,機械学習を用いて含有量を出力する.さらに,それらの摂取栄養量をデータベースに格納することによって,ユーザーごとにPFCのバランスシートを確認することができ,どの栄養素が足りていないかを瞬時に確認することができる.

概要フロー図\label{overview-flow-diagram}

プログラムの開発背景としては,高校時代から身体づくりにおける栄養の重要性に関心を持っており,今でもPFCの三大栄養素には特に意識して食事をするよう心掛けているという点が大きい.ただ,自分の摂取した料理やその料理に含まれる栄養素を毎回調べて記録するという作業は非常に面倒な側面もあり,栄養を管理する上で継続できない原因にもなり得る.
そこで,自分の食べた料理の写真を撮り,それをアップロードすることにより,自動でPFC管理をすることができるツールがあれば便利ではないかという思いから開発に取り組んだ.

2. プログラムの特徴

本プログラムでは,身体づくりやボディメイクを目的としているユーザーに対して,栄養面からそれらをサポートすることができるといった点が最も大きな特徴である.摂取栄養を記録することが億劫な性格のユーザーでも,簡単に記録することができるため続けやすく,また,記録することが目的でなかったとしても,食べている料理のPFCバランスを,写真を撮ることですぐに確認することができる.

3. 開発環境

OS

Windows 11

使用技術

Webページ:HTML/CSS/JavaScript
機械学習・バックエンド:Python(3.9.2)
フレームワーク:Flask
データベース:SQLite

4. 操作方法

トップページ

トップページでは,右上にある新規登録ページ,ログインページに遷移することができる.画面中央下のアップロードボタンについては,ログインできていない場合は強制的にログインページに遷移される. ログイン前トップページ

ユーザー登録機能

ユーザー登録ではユーザーネームとパスワードを登録する.この際に,登録するユーザーネームが既に使用されている場合や,パスワードが単調なものである場合はエラーを返す仕様になっている.また,パスワードはハッシュ関数を用いて暗号化しているため,セキュリティ面も配慮している.

ログイン機能

ログイン画面で入力されるユーザーネームとパスワードが,データベースに登録されているものと完全に一致するかを検証し,一致しない場合はエラー画面を返す.

料理の写真アップロード機能

「ファイルの選択」ボタンを押すことで,自分の写真をアップロードすることができる.「Post」ボタンを押すと⑤の機械学習によるPFC出力画面に進む.

ユーザー登録画面 ログイン画面
新規登録 ログイン
料理の写真アップロード画面
写真アップロード

機械学習による料理の推測とPFC出力

上記にて入力された画像と,あらかじめ学習しておいた料理のデータを比較し,写真が何の料理かを判定する.PFCやカロリーについては機械学習とは関係ないため,事前にデータベースに登録している情報を出力している. PFC

バランスシート表示機能

上記によってアップロードされた料理やそのPFCを元に,その割合を赤色の三角形で表示する.適切なPFCバランスについては青色の三角形で表示され,その2つの三角形を重ねて表示することで自分のPFCバランスと適切なPFCバランスを簡単に比較することができる.
なお,PFCはデータベースに保存されているため,一度ログアウトしたとしても,再度ログインすれば確認することができる. バランスシート

ログアウト機能

ログインしている状態の時のみ表示される右上のログアウトボタンからログアウトし,トップページに戻ることができる.

5. ローカル環境セットアップ

comming soon

About

画像のみでPFCバランスを出力するwebアプリ

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published