2026.06.19
AIで紡ぐ、旅の思い出記録アプリ
AaaS Tech Labの細井です。
AI画像認識・LLM・AI画像生成の技術を活用し、旅の思い出を時間・場所・出来事・感情とともに深く振り返ることができるアプリケーション「旅の思い出記録アプリ」を開発しました。なお、本アプリケーションは一般公開していない個人開発のものとなります。
このアプリケーションでは、ユーザーが旅先で撮影した写真をアップロードするだけで、AIが写真のシチュエーションや位置情報を解析し、当時の天気データなども巻き込んで理解し、それらの情報からAIが生成した質問に回答することで、小説のような日記やタイムラインを自動で生成します。
本コラムでは、開発に至った背景や、その技術的な仕組みについてご紹介します。
背景
皆さんは旅の思い出をどのように残していますか?
残し方にはスマホのアルバム、SNS投稿、フォトフレームなど、さまざまな方法があると思いますが、私自身は思い出を振り返りたいときは手軽なスマホのアルバムを見返すばかりになってしまっています。
また、私は旅行に行ったら記憶が鮮明なうちにカレンダーアプリなどに日記を書くようにしています。早く書くことで当時起きた些細な出来事や感情を残すことができ、数年後に読み直したときにより鮮明に思い出を引き出せるからです。とはいえ、日記を0から書くのは手間がかかりますし、文章を書くのが苦手な私の日記は小学生の読書感想文のようになってしまいがちです。
そこで、スマホのアルバムをただ眺める以上の振り返りができ、時間・場所・出来事・感情をまとめて物語のように振り返られるプラットフォームを、AIの力で実現したいと考えました。
概要
ユーザー体験フローはシンプルです。スタート画面で旅のタイトル(例:出雲の旅)を入力し、写真をドラッグ&ドロップするだけで、思い出の紐解きが始まります。
記事画像
アップロード後、AIが写真とそれに紐づく位置情報と日時から状況・ロケーションを理解し、思い出を深掘りする「インタビュー(質問)」を生成します。ユーザーがその質問に答えることで、AIが当時の五感や感情を理解し、時間・場所・出来事・感情を織り込んだ日記文章や、3D地図が出力されます。
仕組み
今回構築したプロトタイプアプリケーションのフロントエンドはReact(Vite)と3D表現のためのThree.js、バックエンドはFastAPIとOpenAI GPT-5.5を組み合わせて構築しています。 純粋に思い出に向き合えるインターフェース構築を目指し、あえて「AIデザイン感・チャットボット感」を前面に出さない設計を心がけました。
また、旅の思い出を多角的に結ぶため、画像データ(日時・緯度経度などのEXIF情報)だけでなく、外部の「Weather Forecast API」から当時の気温や降水量データも取得しているのが特徴です。
コアとなるAIワークフローのステップは大きく分けて3つあります。
Step 1:写真の理解と撮影場所の特定
GPT-5.5によって写真のシチュエーション、日時、緯度経度をマルチモーダルに理解します。また、位置情報をもとに逆ジオコーディング(Nominatim)を行い、具体的な施設名やスポット名を特定します。
Step 2:思い出深掘り質問の生成(インタビュー)
AIが写真の内容を理解した上で、「この写真は日御碕の灯台の近くで撮ったものですか?どんな設定で撮影しましたか?」といった、当時の記憶や感情を刺激する質問を自動生成します。
記事画像
Step 3:コンテキストの統合と日記生成
画像から読み取った情報、インタビューの回答、当時の天気データをプロンプトとして統合し、GPT-5.5により日記文章を生成します。例えば、天気APIのデータから「少し冷たい空気の中〜」といった、当時の空気感を再現するような感覚表現に落とし込んで文章を綴ります。
デモンストレーションと生成結果
実際に、検証として島根県・出雲への旅行写真(海岸、出雲そば、道の駅、神社、水族館など)を入力し、インタビューに回答した後の画面がこちらです。
Map:アップロード写真とOpenStreetMapから取得した地図タイルをThree.jsで3Dレンダリングしています。画面上を流れていく雲と合わせて、旅行タイトルの雲風文字(ChatGPT Images 2.0による画像生成)も空中に描画しています。
記事画像
記事画像
Timeline:写真を時系列に表示。スポット名はAIが特定したものであり、訂正したい場合は手入力も可能です。
記事画像
Diary:「Generate」ボタンを押すと日記文章の生成が開始します。時系列に、出来事やインタビュー回答を踏まえた感情表現も織り交ぜた文章が生成されます。「岩の上の小さな鳥居は、波音の中でも不思議と凛として見えた。」のような単なる行動記録ではなく、当時の五感(音、匂い、温度)が情緒的な文章として表現されるような指示を裏で与えています。
記事画像
Album:写真一覧を見ることができると共に、高度な画像生成の実験的トライとして、ChatGPT Images 2.0による「コミック生成」、「パノラマ画像生成」も実装しました。シェアしたくなるペラ1漫画の生成を目的とし、デモの例では選択した3枚の写真から5コマのコミックを生成。
記事画像
ChatGPT Images 2.0のテキスト描画精度、WEB検索含めた推論機能の強みを活かすためにあえて日本語文を多く画像内に含める指示を固定し、生成ごとの一貫性を保つために、固定文と変動文を組みあわせてプロンプトを生成しています。
記事画像
また、思い出を印象付けるための工夫としてパノラマ画像生成にも挑戦。3枚の画像を1枚に盛り込むというやや無茶なトライだったが、破綻のない自然な画像が生成され、旅を楽しく振り返るアプローチとして非常に好感触でした。
記事画像
Interview:デモには含めていませんが、日記文章をさらにブラッシュアップしたいときのために、追加のインタビュー機能も実装しています。AIが深ぼった質問を提示するため、当時の感情をより深く引き出す機能として使用できます。
さいごに
今回の開発を進めていく中では、Codexアプリの内蔵ブラウザやComputer Use機能を用いて画面上で直接指示・修正していくという、非常にモダンな開発プロセスも体験できました。
そうして形にしたこのアプリは、写真や位置情報といったデジタルデータに、人間の「感情・五感」とAIの「表現力」を掛け合わせることで、ただのデータ管理を超えた新しい「思い出のアーカイブ体験」が開拓できたと感じています。
思い出の残し方は十人十色です。今後はさらに一人ひとりの好みに合わせたカスタマイズ機能なども視野に入れ、愛着を持てるアプリ体験へと進化させていきたいと考えています。