🌸

Flutter×GCP:化粧品分析AIエージェントの開発

に公開

こんにちは☀️ Nishikaデータサイエンティストの山口です🦌

「この化粧品、自分の肌に合うかな?」「どの商品を選べばいいんだろう?」—多くの人が感じる化粧品選びの悩み。この記事では、AIを活用してその悩みを解決するアプリ開発の取り組みについてご紹介します。

ある調査によると、男性化粧品の市場(2024年時点)は2019年比で2倍近くに伸びており、性別に関わらず化粧品の利用が急速に拡大しています。
参考:https://prtimes.jp/main/html/rd/p/000000252.000036691.html

化粧品はドラッグストアやネットで気軽に購入できる一方で、(私もですが)なんとなく購入した乳液や美容液などを購入して肌につけて、肌が赤くなったり、腫れやかゆみが生じることもあります。
市場拡大及び肌トラブルの点から、自分に合った化粧品を選ぶことの重要性が高くなっていると考えます。
参考:https://www2.nikkakyo.org/upload/plcenter/283_305.pdf

ここで、化粧品メーカーの視点を想像すると、ユーザーの肌の悩みや使用している商品の実態を把握することができれば、ユーザーに合った製品の開発・レコメンドにも繋がると考えます。(BigQuery等へデータを貯めて置き、ユーザー属性ごとに悩みや利用履歴を Looker/Looker Studioで 可視化するだけでも有用なのではないかと思います。)

上記課題を解決するために向けて、友人とプライベートで、AIエージェントの開発を実施しています。
直接肌に触れるため、一般的なテキスト生成タスクと比較しても、正しい情報を提供することが重要だと考えているのですが、そのあたりで困難に感じた点とともに、開発中のAIエージェントについて紹介させていただきます!

開発中のAIエージェント

開発中のAIエージェントについて以下に提示いたします。

IN / OUT 画面イメージについて

UI/UXについては以下の図の通りになります。
IN_OUT

後述いたしますが、画面はFlutterで作成しており、GCPのCloud RunとHTTP通信をすることで、
分析結果を得ております。

システムアーキテクチャと技術スタック

アプリケーションのアーキテクチャは以下のようになっています:
アーキテクチャ

処理について

  1. フロントエンド (Flutter)

    • 将来的なクロスプラットフォーム開発を想定し、iOS/Android両方に対応できるFlutterを採用
    • Firebase Authenticationによるセキュアなログイン認証
    • ユーザープロフィール入力機能
    • バックエンドから受け取った分析結果を画面に表示
  2. データストレージ (Firebase Storage)

    • 化粧品の画像データやバーコード情報をCloud Storageに保存
    • ユーザープロフィールや画像はFirestore上で管理
    • リアルタイムデータベースを活用した分析リクエストのステータス管理
  3. バックエンド (GCP)

    • Cloud Runとして実行(FlutterアプリとHTTP通信)
    • Vision APIを介したOCR(光学文字認識)
    • Vertex AI APIを介したGeminiモデルへのアクセス
    • カスタムプロンプトエンジニアリングによる化粧品成分分析の精度向上

このアーキテクチャにより、ユーザーはスマートフォンで簡単にバーコードと化粧品をスキャンするだけで、自分の肌タイプや悩みに合わせた分析結果をリアルタイムで受け取ることができます。

実際の使用シナリオ

ケーススタディ:乾燥肌の30代男性

田中さん(仮名)は30代前半の乾燥肌に悩む男性です。はじめて美容液を購入したのですが、自分に合っているかわからず、悩んでいました。

  1. アプリでのプロフィール登録

    • 年齢:33歳
    • 性別:男性
    • 肌タイプ:乾燥肌
    • 肌の悩み:乾燥、小じわ
    • 避けたい成分:アルコール、香料
    • 求める効果:保湿、エイジングケア
  2. 化粧品のスキャン

    • ドラッグストアで購入した美容液のバーコードと製品画像をアプリでスキャン
  3. AIによる分析結果

    • 成分分析:「セラミド」「ヒアルロン酸」などの保湿成分を含む
    • 注意点:香料が含まれており、敏感肌の方は注意が必要
    • 代替案:同じメーカーの敏感肌向けシリーズも選択肢として提案
  4. 利用効果

    • 自分の肌質に合った製品を科学的根拠に基づいて選択できた
    • 化粧品購入の失敗を減らし、コスト効率が向上
    • 肌トラブルのリスクを軽減

このように、AIエージェントは単なる成分チェックだけでなく、ユーザー個人の肌質や悩みに合わせた総合的な分析を提供します。

課題:AIの精度向上に向けて💪

アプリ開発において様々な課題がありますが、現在最も注力しているのは分析精度の向上です。現状では主にGeminiが持つ知識ベースのみで回答を生成しており、以下のような具体的な課題に直面しています:

1. 製品認識の正確性

  • バーコードと製品画像から製品情報(製品名やメーカー)を特定する際に、ハルシネーションが発生することがあります
  • 具体例:実際のOCR結果には記載されていない成分を、AIが「含まれている」と誤って返してしまう

2. マスターデータの不足

  • 理論的には、バーコードさえわかれば製品名や成分情報を正確に把握できるはずです
  • しかし、バーコードと化粧品成分情報を紐づけた、商用利用として自由に利用できるデータベース(マスタ)が存在しません
  • バーコードから製品を検索できるウェブサービスはありますが、そのAPIやデータを自由に利用できるわけではなく、プライバシーポリシー上も問題がありそうです

3. パーソナライズされた分析結果の生成

  • 単に製品情報を表示するだけでなく、ユーザープロフィール(肌質、年齢、悩みなど)に基づいた適合性分析を行う必要があります
  • この部分はAIにとって特に難しく、個人差を考慮した正確な判断が求められます

このような課題に対して、技術的にどう対応していくかが現在の最大の焦点となっています。

精度向上への具体的なロードマップ

現在の課題を解決し、AIエージェントの精度を向上させるために考えられる戦略としては以下が考えられます。

短期的な改善案

  1. ベクトル検索の導入

    • 肌質、化粧品成分、効能のエンベディングを作成し、Vertex AI Vector Searchに格納
    • 類似成分や効能の検索精度を向上させ、ハルシネーション(幻覚)を低減
  2. Fine-tuning(FT)モデルの開発

    • 化粧品成分と肌質の関係に特化したGeminiのファインチューニング

中長期的な戦略

  1. 業界連携による知識ベースの構築

    • 化粧品メーカーと皮膚科学会との協力関係を構築する。
    • バーコードと製品情報を紐づけた独自データベースの開発
    • 徐々に取り扱える製品数を増やしていく。
  2. ユーザーフィードバックループの実装

    • 分析結果に対するユーザー評価機能の追加
    • フィードバックを活用した継続的なモデル改善プロセスの確立
    • A/Bテストによる改善効果の定量的測定

まとめ

今回は、化粧品分析を行うスマホアプリについてご紹介させていただきました!
第2回 AI Agent Hackathon with Google Cloudに向けて取り組んでいるのですが、もう少し時間があるので、上述のような機能改善に取り組んでいければと思います!

最後までお読みいただき、ありがとうございました🦒

Nishikaについて

Nishikaは2019年に創業、「テクノロジーですべての人が誇りを持てる社会の実現」をビジョンに掲げ、「テクノロジーを、普段テクノロジーからは縁の遠い人にとっても当たり前の存在としていき、皆の仕事の付加価値・業務効率を向上させることに貢献したい」と考え、活動しています。
AIプロダクト事業/AIコンサルティング・開発事業/AI人材事業を手掛け、AIコンサルティング・開発事業では「生成AIを使うと何が嬉しいのか、通り一遍ではない使い方を知りたい」という段階のお客様から、伴走してご支援するアプローチを強みとしています。

We're hiring!

Nishikaテックチームでは、「テクノロジーを、普段テクノロジーからは縁の遠い人にとっても当たり前の存在としていく」を目指し、音声AIプロダクトの開発・生成AIを活用した課題解決ソリューションの構築を行なっています。
興味をお持ちいただけた方は、以下リンクからご応募お待ちしています。インターンも募集しております!
https://info.nishika.com/recruit

Nishika Tech Blog

Discussion