2018年1月23日リンクをコピーTwitterに直接画像をツイートできるようになったのは2011年。以来、Twitterを楽しむ上で不可欠な要素になりました。Twitter上には、毎日数百万を超える画像がアップロードされていますが、それぞれのサイズも解像度も異なるため、UI上で各画像を最適な形で表示できるように処理を行うことが課題になっていました。皆さんのタイムライン上の画像は、一貫性があり、より多くのツイートを目にできるようにトリミングされています。今回は、Twitterがどの画像をトリミングし、画像のどの部分を表示するか、どのように決めているのかをご案内します。以前は、顔認識技術を利用し、画像の中でもっともわかりやすい顔を中心にトリミングを行っていました。これはもっともわかりやすい方法ではありましたが、全ての画像に顔が含まれているわけではないため、ベストな方法とは言えませんでした。使用していた顔認識技術では顔を見逃すことや、間違って顔として認識することもありました。顔が含まれていない画像の場合、画像の中心を基点にトリミングを行えば良いとも考えましたが、この方法でも表示される画像がベストの状態には見えませんでした。既存の顔認識技術では、適切にオブジェクトや猫をトリミングできない。画像を適切に表示するためのトリミングのベストな方法は、視覚的に目立つ部分を把握すること(視覚的顕著性)だと考えました。人が画像を見た時に一番初めに目がいく部分を捉えることです。研究者の皆さんはこの視覚的顕著性について、人の目の動きを画像のピクセル単位で記録し研究しています。一般的に、人は顔、文字、動物、また明暗のコントラストがはっきりしたものに目がいきやすいようです。Twitterはニューラルネットワークや他のアルゴリズムにこのデータを学ばせることで、人の目が何を見るかを予測させています。基本的には、この予測値を使い、人の目がいきやすい部分を中心にトリミングしています。機械学習の進歩により、視覚的顕著性の予測技術の精度は向上しました。[2]しかし、顕著性予測に使われるニューラルネットワークは、Twitterにアップロードされる各画像をトリミングし、リアルタイムで支障なく共有できるようにするためには遅すぎるという問題がありました。一方で、Twitterにはピクセルレベルでの細かい分析は必要ありません。そこで、ニューラルネットワークを最適化すると同時に、画像のサイズと必要のない計算要件を減らすという2つの方法を用いました。この小さなネットワークとともに、一連の画像の予測用に大規模なネットワークの集合体を使います。この予測は、サードパーティの視覚的顕著性データとともに、より小さく、高速なネットワークの訓練に使用されます。単純化アプローチを用いて、コスト効率は良いもののパフォーマンスにあまり寄与しなかったニューラルネットワークの特徴マップを繰り返し省きました。どの特徴マップを単純化するかという判断は、各特徴マップのための浮動小数点演算を計算し、計算結果をもとに省くとパフォーマンスが悪くなる特徴マップを評価します。単純化アプローチの詳細はこちら(英語)をご覧ください。[4].これら2つの手法により、画像を適切に切り取る時間がデフォルトの実装やその他の最適化手法に比べて10倍速くすることが可能になりました。その結果、Twitterは画像がアップロードされてすぐに、リアルタイムで視覚的顕著性を把握できます。この機能向上はすべての利用者の皆さんを対象に、twitter.com、iOS/Androidのアプリでご利用できます。以下の図解はTwitter上で画像がどの様に切り取られているかを機能向上の前後でご紹介しています。利用規約Twitterのサービスをご利用になると、Cookieの使用に同意したものとみなされます。Cookieはアナリティクス、カスタマイズ、広告などに使われます。