見出し画像

動画解析 × Gemini × Streamlit Gemini君、SNSの投稿考えてくれない?

「SNSを使って、インフルエンサーになりたい!」なんて思ったことはありませんか?

ですが、SNSは投稿内容(動画だったり、文章だったり、面白さだったり)を考えるのが大変かなと思います。では、最近の生成AIを使えば、ある程度自動的に投稿内容を考えてくれて、楽してインフルエンサーになれるのでしょうか?今回は、そんな不純なモチベーションから始まったお話です。

みなさん、こんにちは!
エンタープライズ第一本部 ES技術統括室の平林と柴田です。

私たちが所属する部署では、各メンバーがさまざまな先進技術の検証を実施しており、私たちはチームで動画解析×生成AIをテーマに技術調査をしています。私たちにとって身近な動画というコンテンツに、昨今話題沸騰中のChatGPTなどの生成AIを組み合わせることで、いったいどんな面白いことができるのだろうかという研究をしているのですが、今回はその成果として、Gemini APIとStreamlitを使った動画解析簡易アプリを作ったので紹介します!

そもそも Geminiとは? Streamlit とは?

Gemini は Google が開発した生成AI です。近年、ChatGPTを代表としたさまざまな生成AIモデルが登場していますが、その中でもGemini の特徴は多様なデータ形式に対応していることです。テキスト、画像、動画、音声といったさまざまな形のデータを処理することができ、今回は動画解析という用途にうまくハマったので利用することにしました。

Streamlit は Python だけでWebアプリや機械学習アプリを作ることができるフレームワークの1つです。他の一般的なアプリ作成で必要なHTMLやCSSの知識が不要である点が大きな魅力のフレームワークです。私たちは仕事上Pythonを使う機会が多いので、今回はStreamlitを使ってみることにしました。

今回は、Gemini 1.5 Pro モデルとStreamlitを使って、動画を解析し、解析結果を表示する簡易アプリを作りました。

Streamlit×Gemini APIによるSNS投稿生成アプリの紹介

今回、私たちが作ったのは、投稿する動画をGeminiに与えることで、若者がSNSで投稿する風の文章を取得するアプリです。素敵な動画を撮影した際、現在の若者がどんな表現で投稿をするのか、それをGeminiを使ってシステム化したものがこのアプリです!投稿内容としては、投稿タイトル・文章・ハッシュタグの3つを生成するアプリを作成しました。処理の大まかな流れは以下の通りです。

1. 動画をアップロードする。
2. Gemini APIを使い、投稿タイトルを生成させる。
3. 投稿タイトルと同様に、文章、ハッシュタグも生成させる。
4. 各出力結果からタイトル、文章、ハッシュタグを抽出する。
5. Streamlitを使い、抽出結果を画面に表示する。

早速、作成したアプリによる動作例を紹介します!

作成したアプリの出力結果

中華料理の動画

入力動画①:パン 食物 料理 - Free video on Pixabay

はじめに、中華鍋で野菜を炒めている動画を入力しました。動画内で登場している”料理”や”炒める”といったキーワードはもちろんですが、”中華”という料理のジャンルまで、しっかり認識できていることがわかります。そして、文章としてもフランクな表現で若者風にGeminiが寄せているのがわかりますね。

かわいい子猫の動画

入力動画②:かわいい猫 面白い猫 子猫 - Free video on Pixabay

次に猫が毛づくろいをしている動画を上げてみたところ、こちらの例ではタイトル案が複数出力されました。外見的な特徴や、毛づくろい、あくびといった行動も動画からしっかり抽出できていました!良かった良かった…と思っていたのですが、実際に動画を確認するとあくびをしているシーンはなく、猫が口を開けて上を向く動作をあくびだと検出してしまったようでした…解析結果にはまだ不十分なところもありそうです。個人的にはハッシュタグの「バンダナ猫」というワードが大好きです(笑)

金閣寺の動画

入力動画③:寺院 池 庭園 - Free video on Pixabay

最後に、雪の日の金閣寺を撮影した動画をアップロードしてみました。建物が金閣寺であることをしっかりと認識できており、そこから京都、旅行といったキーワードにも結び付けられています。文脈に合わせた絵文字の使い分けもできていそうです。

まとめ

今回の取り組みを通じて、Geminiが想定以上に精度高く動画の内容を認識できていることに驚きました。しかしこのアプリを作って動かしてみると、実は意図したとおりの解析ができていなかったり、最終的な出力形式がおかしくなってしまったりと、いろいろな課題がまだまだありそうでした。これらの課題を解決するために、指示を出すための文章を改良するなど、これからも引き続き検討・技術検証続けていきます!

また面白い成果物ができたら、みなさんにお届けしたいと思いますので、乞うご期待ください!