Amazon Rekognitionのオブジェクト認識で画像の大きさがどのように影響するか確認してみた #reinvent

reinvent2016_eyecatch

はじめに

清水です。re:Invent2016で発表された新サービスAmazon Rekognitionでは、画像ファイルを入力として認識結果が返されます。 Rekognitionでオブジェクト認識をする際に、この入力となる画像ファイルの「大きさ」、つまり解像度や画素がどのように影響するのか、例えば小さめの画像でも上手くオブジェクト/シーンの認識ができるかどうかが気になりましたので、確認してみました。

やってみた

確認方法

実際にAmazon Rekognitionに異なる解像度の画像ファイルを入力させて、結果を比較してみます。

確認に使用したファイルはAmazon RekognitionのDemoページ、Object and scene detectionにあるスケボーの画像です。

rekognition-resolution-001

画像ファイルを確認して見たところ、解像度は1200x800でした。ここから元の画像を縮小して、75%から10%の以下それぞれの画像ファイルを作成、Rekognitionに入力して認識結果を比較してみます。

  • 75% : 900x600
  • 50% : 600x400
  • 25% : 300x200
  • 15% : 180x120
  • 10% : 120x80

なお、Rekognitionでは入力画像のサイズは幅、高さともに80ピクセル以上である必要があります。これより小さい画像を入力してしまうと、以下のようにエラーがでますので注意しましょう。

rekognition-resolution-002

結果

各解像度でのRekognitionでの認識結果を以下の表にまとめます。デフォルトの認識率50%以上の要素を集計しています。また表はoriginalの解像度の認識率の大きい順にソートしています。

この画像の特徴である(と私は考えている)、「スケボー」については、25%(300x200)以下の解像度では認識されない(=50%以下の認識率)となっています。他にも車関係の多くの認識要素についても、25%(300x200)以下で認識率が下がっていることがわかります。

25%(300x200)以下の解像度でも認識できているものは、道や交差点と言った大域的に見れる要素が多いかと思います。補足項目として実際に入力した低解像度の画像も例示しますが、このぐらいの解像度になると人の目で見ても細かいものは認識が難しいので、おおよそ人間が認識できるものまでは、Rekognitionも認識できる、という捉え方で大丈夫ではないかと思います。

またBoardwalk(遊歩道)など道に関する要素の一部は、解像度を50%(600x400)まで小さくすることで少し認識率が上がる結果となったのも興味深い点です。

original (1200x800) 75%(900x600) 50%(600x400) 25%(300x200) 15%(180x120) 10%(120x80)
Person 99.25 99.25 99.19 51.68 58.43 53.18
People 99.25 99.25 99.19
Human 99.24 99.24 99.18
Skateboard 99.24 99.24 99.26
Sport 99.24 99.24 99.26
Parking Lot 97.44 97.37 97.66 50.74
Parking 97.44 97.37 97.66 50.74
Automobile 87.81 78.24 78.32
Car 87.81 78.24 78.32
Vehicle 87.81 78.24 78.32
Sedan 82.21 77.37 78.32
Boardwalk 78.63 83.71 86.49 62.11 51.61
Path 78.63 83.71 86.49 62.11 51.61 50.71
Pavement 78.63 83.71 86.49 62.11 51.61
Sidewalk 78.63 83.71 86.49 62.11 51.61
Walkway 78.63 83.71 86.49 62.11 51.61 50.71
Intersection 76.64 75.07 75.76 90.4 82.95 67.04
Road 76.64 75.07 75.76 90.4 82.95 87.71
Coupe 71.48 57.57 60.67
Sports Car 71.48 57.57 60.67
Building 67.84 66.34 53.76 59.99 53.29 52.38
City 62.92 61.79 63.82 56.5 55.86 61.35
Downtown 62.92 63.05 71.31 72.21 84.67 61.35
Urban 62.92 61.79 63.82 56.5 55.86 52.9
Neighborhood 62.04 63.05 71.31 72.21 84.67 51.14
Town 62.04 63.05 71.31 72.21 84.67 87.71
Suv 61.25 51.35 52.92
Street 56.25 56.35 55.82 68.71 56.31 87.71
Metropolis 53.99 54.06 53.63 50.69 50.86
Housing 52.98 52.55 51.83
Office Building 52.36 52.67 59.99 53.29 52.38
Engine 51.11
Machine 51.11
Motor 51.11
Apartment Building 51.06 51.2 58.33 51.14
High Rise 51.06 51.2 58.33 51.14
Pedestrian 50.65 50.55 51.05 51.68 58.43 53.18
Architecture 50.85
Court 50.85
Freeway 52.21
Highway 52.21
Jaguar Car 54.17 74.8
License Plate 51.76 56.21
License 51.76 56.21
Mustang 56.97
Text 51.76 56.21

補足 − 実際に入力した低解像度の入力ファイル

25%(300x200)

15%(180x120)

10%(120x80)

まとめ

画像解析サービスであるAmazon Rekognitionのオブジェクト認識で画像の解像度がどのように影響するか、サンプルとして例示されているスケボーをしている画像を用いて複数解像度の画像ファイルを作成し、実際に認識させてみました。

結果としては、ほとんどの要素は解像度が高いオリジナルの画像の方が認識率が高い結果となりました。しかし一部の項目については解像度をある程度まで落としたほうが認識率が上がるという興味深い点もありました。また人が見ても認識しづらいぐらいの小ささになると、Rekognitionでも認識されない(認識率が低くなる結果になりました。

異なる傾向の画像でのオブジェクト認識や表情分析、顔の類似度比較においても解像度の違いが影響するのか、また他にも画像サイズを小さくすることで認識にかかる時間が減少するのか、など異なる視点での確認も進めていきたいと思います。

AWS Cloud Roadshow 2017 福岡