NTTドコモR&Dの技術ブログです。

インターン体験記 in 画像認識チーム

こんにちは!NTTドコモ サービスイノベーション部の画像認識チームです。

NTTドコモでは、8/28~9/8に現場受け入れ型インターンシップを実施しました。今回のインターンシップは、リモートと現地のハイブリッドの実施となり、参加者はチームに配属された後、2週間の業務体験をしていただきました。 今回は、インターンシップに参加された藤井さんに感想を書いて頂いたのでご紹介したいと思います。

はじめに

8月28日~9月8日の現場受け入れ型インターンシップに参加した藤井 野枝子です。 大学の研究室では、Vision-Languageモデルを用いた日本語の画像キャプション生成に関する研究に取り組んでいます。

この記事では、インターンシップで取り組んだ 「動画サービスの広告位置最適化に向けた検証」 の体験談について記載させて頂きます。

参加目的

インターンシップに参加した目的は、大きく分けて二つあります。

1. 研究開発を体験し、実際にエンジニアとして働くイメージを掴むこと

以前からドコモの研究開発の業務に興味を抱いており、このインターンシップを通じて、職場の雰囲気や業務の様子、エンジニアとしての役割への理解を深めたいと思い、インターンシップに応募しました。

2. 今まで大学で培ってきた知識やスキルがどのように社会実装できるのかを確かめること

私は大学での研究やサークル活動を通してプログラミングをはじめとする様々な知識やスキルを磨いてきました。そのため、実際の開発案件に携わるエンジニアの方々との交流を通して、自分では気づかなかった自分の新たな強みや弱みを見つけ、今後の自己成長課題を明らかにしたいと考えました。

インターンシップにおける取り組み内容

2週間のインターシップでは、動画配信サービスで提供されている動画に対して、どこに広告を挿入すれば利用者の視聴体験を損なわないかを解析するというテーマに取り組みました。

初めに本テーマの背景について説明し、次にインターンを通じて取り組んだ内容や検証結果、最後に今後の展望について紹介したいと思います。

0. 背景

近年利用されている動画配信サービスでは、配信動画の合間に広告が挿入されることがあります。

しかし、広告の位置を手動で設定するのには多くの手間がかかり、現在、ほとんどの動画内の広告は下の図のように等間隔にしか配置されていません。そのため、広告挿入のタイミングが悪くなり、お客様の視聴体験を損なう可能性があります。

そこで、以下の図のように広告挿入のタイミングをAIで自動最適化することで、この課題を解決しようと試みました。

つまり、等間隔に広告が配置されている動画に対し、AIを用いることで、広告の位置のタイミングを良くします。これによりお客様の視聴体験が向上するだけでなく、広告のインプレッションも向上するため、サービスとしての価値が増加すると考えられます。

では、最適な広告の挿入位置とはどこでしょうか? 今回のインターンでは仮設として、「動画のシーン分割を行い、その切れ目が最適な広告の挿入位置である」と考えました。 そこで、この2週間の業務体験では「動画のシーン分割」に取り組みました。

1. 構築したシーン分割手法の紹介

今回構築したシーン分割手法の概要を以下の図に示します。 この手法で行っていることは主に「動画のフレーム同士の比較」です。

《動画のフレームとは》 動画はパラパラ漫画のように、大量の静止画像を連続して流していくことで、動きのある映像として見えています。この静止画像を『フレーム』と呼び、今回はその静止画像同士を比較することでシーンの分割を試みました。

では、各段階で具体的に何をやっているのか見てみましょう。

① 隣り合うフレーム同士を比較してカット点を取得

①では各フレームの前後を比較してカット点を取得します。 具体的には 1秒1フレームで動画を読み込み、下図のように各フレームを一つ後のフレームと比較します。

フレームの同士の比較にはimgsimを利用しました。imgsimは異なる画像の特徴ベクトル間の類似度の差が計算できるライブラリです。学習にはAugNetと呼ばれるディープラーニング学習パラダイムを用いています。そしてimgsimを利用すると、以下の図のように画像同士の類似度が計算でき、値が高いほど異なる画像であることを示すことができます。

その差があらかじめ設定した閾値を超えた時にカット点としてフレームを取得しました。

しかし、 ①のカット点検出だけではカメラ、つまり視点の切り替わりに対応できず、シーンの分割までは適応できませんでした。その問題を解決する為に、①の出力に対し、②の手法を試しました。

② ①で得られたカット点において、近隣のカット点同士を比較して似た色味のカットを同じシーンとして取得

②では、①で得られたカット点に対し、周りのカット点同士を比較します。これにより、似た色味のカットを同じシーンとして、①の出力の中から適切なシーンのはじまりを見つけることができます。比較は①と同様、imgsimを利用して画像類似度を計算し、閾値処理で同じシーンか判断しました。

しかし、②の手法ではカット点を1対1でしか比較していないため、会話シーンのような交互にカメラが切り替わるようなシーンには対応できないという問題点がありました。

そこで②の出力に対し、③の手法を試しました。

③ 時間関係を考慮してシーンを丸め込む

③では一定区間において同様のシーンが繰り返される場合は1つのシーンとして丸め込みます。具体的には、一枚のフレームとその後一分間に含まれるフレームをそれぞれ比較し、imgsimによる類似度を測りシーンを丸めこみます。

2. 実際のドラマで検証してみた

1で紹介した①→②→③の三段階の手法を用いて、実際に配信されているドラマに対し、検証を行いました。検証では、今回のインターンで構築した手法により分割された10個のシーンの冒頭を広告挿入位置として提示します。なお、検証で用いた動画データには、広告挿入位置5点の正解データが含まれています。

結果として、Recall 60%、 Precision 30%となりました。数値だけ見ると精度としては高く無いように思えますが、実際に動画を見てみると、本手法で切り出したフレームの中で正解データに入っていなくてもシーンの区切れ目に近いフレームも存在し、社員の方からも十分使えるレベルだという感想をいただけました。

3. 今後の課題

今回のインターンシップでは「動画サービスの広告位置最適化に向けた検証」に取り組みましたが、今回用いた手法にはまだまだ課題が存在します。

例えば、実際は同じシーンであっても、人物から物へのカメラの切り替わりがシーン転換として認識されてしまうという点です。

また、本手法を用いたシーン分割では動画のジャンルによって精度の結果に違いが生じました。 以下の図はt-SNEという次元圧縮法を用いて各動画のフレームを二次元グラフに落とし込んだものです。このグラフでは色味が似ているフレーム同士は近くにプロットされます。

上図から、恋愛ドラマは画面全体にエフェクトがかかることが多く、同じシーンのフレーム画像が類似しやすいことが分かると思います。しかし、 サスペンスドラマは全体的に画面が暗いためシーンの判別が難しく、上図でもプロットのばらつきが大きくなります。またバラエティ番組はカメラの切り替えが多く、登場人物や画面に映る文字も多いため同じシーンを判別しにくいという結果になりました。 そのため、どのようなジャンルのドラマにも対応できるような汎用性の高い手法を考える必要があると言えます。

インターンシップを振り返って

- 参加した感想

現場受け入れ型インターンではとても学びの多い貴重な2週間を過ごすことができました。

まず、第一に自身の考えを説明し、意見やアドバイスを頂くことの重要性を学ぶことができました。インターン中は毎日、朝と夕方にミーティングを行い、その日の予定や進捗報告について話し合う時間を設けていただきました。そのおかげで、「自身の取り組みを説明する」という段階を踏むことができ自分の考えを整理することができました。また、問題解決のための効果的な手法や関連する研究を教えていただくことで、知識の幅が広がるだけでなく、一人では気付けなかったその問題の新たな側面も見つけることができました。

そして第二に、こまめなタスク管理が問題解決に大きく貢献することを学びました。私は毎日、その日行う手法とそのメリット・デメリットを明らかにし、問題点及び解決案をノートにまとめるようにしていました。そのため、行き詰まっても問題点をすぐに洗い出せるため、円滑に進捗を生むことができたと実感しています。

- 参加目的を果たせたか

当初の参加目的に関しては、インターンではSI部の雰囲気や実際の業務だけでなく、 リモートワークを通して様々な「働き方」を知ることができたので、入社した後、どのように働けるのかのイメージが明確になりました。

また、動画を扱うのは初めてだったのですが、様々な画像処理の知識やツールを教えてくださり、フレームごとの分割やフレーム同士の類似度の比較などの画像処理を行うことができました。しかし、業務を行なっていく上で手間取ることも多くあり、画像処理技術に関するライブラリやアルゴリズムの知識をもっと培う必要があると感じました。このインターンを通して得た技術を今後の大学での研究に活かしたいと考えています。

インターンシップを振り返って、この経験は多くの知識やスキルを得られた素晴らしい機会だったと深く感じています。本インターンに興味を持った方は、ぜひ参加してみてください。

最後に

インターン生として受け入れてくださった、加藤さん、福島さん、春山さん、中村さんに深く感謝申し上げます。とても充実した2週間を過ごすことができました。インターン中は毎朝と夕方に相談の機会を設けていただき、毎日フィードバックを提供してくださったおかげで、2週間という短い期間で様々な手法に取り組むことができました。本当にありがとうございました。