iPhoneで撮影した写真をトリミングする処理を追加しました。
現在はアプリの画面デザインを考えている途中なので、引き続きアプリ制作を続けます。
また、今週からは水増し画像の準備など、ファインチューニングの準備を進めていきます。
iPhoneで撮影した写真をトリミングする処理を追加しました。
現在はアプリの画面デザインを考えている途中なので、引き続きアプリ制作を続けます。
また、今週からは水増し画像の準備など、ファインチューニングの準備を進めていきます。
引き続きアプリ制作を進めました。
以下、実装した機能です。
・iPhoneで写真を撮る
↓
・撮った画像をサーバーに送る
↓
・推定結果を受け取る
↓
・糖度を表示する
今後は写真を撮った後にトリミングをする機能を実装して、画面のデザインを整えていきます。
①API
FastAPIで糖度を推定するAPIを作りました。
送られてきた画像からヒストグラムの抽出と画像の調整をしてから糖度推定を行っています。
作成したAPIをAWSのEC2でデプロイしました。
アプリケーションサーバーにはuvicornを使っていて、Webサーバーは導入していないので、今後Nginxなどを試してみます。
動かしてみた画像です。
糖度が帰ってきています。
Macのターミナルからcurlコマンドを打っても値が帰ってきました。
②フロント
Swiftから画像をPOSTして糖度を取得するプログラムを作成しています。
Alamofireというライブラリを使ってHTTP通信を行なっていましたが、値にnilが帰ってきてしまうため、別の方法を試しています。
①デプロイについて
LambdaとAPI Gatewayを使って簡単なプログラムのデプロイを試しました。
Lambdaに則った記述ルールでは通信できたのですが、FastAPIを使ったときにうまくいきませんでした。
Lambdaでのデプロイに想定以上に手間取ってしまったため、デプロイにはGCEかAWSのEC2を使い、アプリ開発やファインチューニングが一通り済んだあとでLambdaでのデプロイを試したいと思います。
②FastAPI
現在はFastAPIを使ってAPIの中身を作っています。
モデルにMobileNetV2を使ったサンプルプログラムをローカルで実行しました。
桃の画像を入力すると、マッチ棒(10.82%)という結果が出ています。
このプログラムのモデルを桃の糖度推定モデルに置き換えてAPIを作成していきます。
また、中間発表では糖度を推定する機能のみを持たせるという説明をしましたが、フロントから画像だけを送った後にAPIでヒストグラムを抽出した方が作るのに時間がかからず処理もはやいと考えたため、構成を少し変えようと思います。