こんにちは! CTO室アプリ統括部の西 紗記子と申します。
今回、ヤフオク!でマルチビュー機能がリリースされました(iOS, Android)。
この機能はヤフーで研究開発された多視点画像と呼ばれる技術を用いています。今回は技術の仕組みや、ヤフオク!に導入するまでの話をいたします!
マルチビュー機能とは
ヤフオク!でくるっと商品を回せる多視点画像が利用出来るようになりました。この機能をご使用いただくことで商品をくるくる回しながら購入の検討ができます。
詳しい使い方はこちらの動画でご覧ください!
技術背景
マルチビュー機能は複数の視点から撮影された画像をつなぎ合わせることで、くるっと商品を回せる多視点画像を実現しています。しかし、商品の写真をただ回りながら撮影しだけでは、綺麗につなぎ合わせることはできません。そこで、コンピュータービジョンのカメラキャリブレーションという技術を用いて課題を解決しています。
撮影したカメラの位置や姿勢を数値化し、撮影の際の姿勢を擬似的に変更することでターンテーブルに乗せて撮影したかのような多視点画像に変換しています。
今までにもくるっと綺麗に商品を回転して見られるサービスはあったかもしれません。しかし、それらはサービス側が事前にターンテーブルを使用して撮影されたものであったり、カメラレーンを組んで撮影が行われたものではなかったでしょうか?
ヤフーの多視点画像は特別な撮影機材は一切必要なく、スマホ1台あればご利用いただけるオリジナル技術です。
具体的な処理フロー
1. 特徴検出・マッチング
入力された画像群のそれぞれに対して特徴点の検出と特徴量の計算を行います。そして計算された特徴量からそれぞれの組み合わせでマッチングを行います。
2. カメラキャリブレーション
マッチングの結果からそれぞれのカメラパラメータを計算します。ここでのカメラパラメータは外部パラメータ(回転・並進)を指します。
3. 注視点の計算
今回はエピポーラ幾何を用いて2視点から被写体をタップしてもらうことで計算しています。AR技術のフレームワークに搭載されている機能を使って決定することも可能です。
4. 画像処理
2のカメラパラメータと3の注視点から擬似的なカメラパラメータを計算します。この擬似的なカメラパラメータを用いて射影変換を行い、くるっと綺麗に回る多視点画像を生成します。
C向けのサービスに導入されるために
カメラキャリブレーションには膨大な計算リソースがかかるためリアルタイムな提供が難しく、C向けのサービスには導入が進まないという問題がありました。
そこで、AR技術のフレームワーク(ARKit, ARCore)を用いることで1と2の部分を短縮し、アプリケーションでの提供を実現しました。また、画像処理も端末のGPUで処理するようシェーダー(Metal, OpenGLES)を実装しているため処理時間もかなり短縮されています。
おわりに
多視点画像とヤフオク!に導入したマルチビュー機能を紹介いたしました。テキストと画像だけでは想像できない部分も多々あると思いますので、ぜひヤフオク!アプリをインストールして多視点画像付きの商品を出品してみてください!
【ヤフオク!アプリをダウンロードしてマルチビュー機能を使ってみる】
最後に少し個人的な話になりますが、この技術は8年前のヤフー社内ハッカソン(社内版Hack Day)で生まれ、最優秀賞をいただいた技術です。当時(2013年)はスマホ1台でこの技術が実現できる日がくるなんて夢にも思っておりませんでした。
この8年の間にハードウエアが進化し、こうしてユーザーの皆様に研究開発した技術を届けられることを本当に幸せに思います。
また、ここまでこれたのはずっと周りで支えてくださった皆様のおかげです。当時のメンバー、一緒に開発してくださった皆様、背中を押してくださった上司の方々、ヤフオク!の皆様、今まで関わってくださった全ての皆様に感謝申し上げます。
関連リンク
- ヤフオク!アプリ、商品の正面から側面まで撮影し、出品画像をさまざまな角度で閲覧できる「マルチビュー機能」を提供開始(プレスリリース)
- ヤフオク!アプリに新機能「マルチビュー機能」が登場!(ヤフオク!トピックス)
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました
- 西 紗記子
- CTO室 アプリ統括部 エンジニア