はじめに
こんにちは、Gunosy Tech Labの森本です。 Gunosyではグノシー、ニュースパス、ルクラなどのニュースアプリを開発しています。 私が所属している組織であるGunosy Tech Labではニュース配信の推薦ロジックなどのアルゴリズム改善を主に担当しています。ニュース配信の一部アルゴリズムではAWS Rekognitionという画像、ビデオ分析のできるサービスを利用しています。 そこで本記事ではAWS Rekognitionをどのように活用しているかの事例を紹介します。
活用事例1. 顔画像クロップ
ニュースアプリを起動すると図のように複数のニュース記事が表示されます。
著名な方たちのサムネイルがある記事では顔画像が中心に表示されるように調整しています。それを実現するためDetectFacesという機能を利用し最適な顔画像クロップを実現できるようにしています。顔画像に対しDetectFacesを実行すると次のような結果が得られます。
{ "BoundingBox": { "Width": 0.11198179423809052, "Height": 0.09012963622808456, "Left": 0.6680529117584229, "Top": 0.5012796521186829 }, "Confidence": 99.99972534179688, "Pose": { "Roll": 10.784440040588379, "Yaw": 8.664962768554688, "Pitch": -8.15328311920166 }, "Quality": { "Brightness": 88.9176254272461, "Sharpness": 96.61495208740234 } }
クロップでは主にWidth, Height, Left, Topを使用します。例えばx軸の顔の中心座標は 画像横サイズ*Left+(画像横サイズ*Width)/2
の様に算出できます。
ただし人物が複数いる場合、顔が画像の隅にいる場合などイレギュラーなパターンにも対応する必要があります。
https://docs.aws.amazon.com/rekognition/latest/dg/API_DetectFaces.html
活用事例2. DetectModerationLabelsの活用
DetectModerationLabelsでは暴力的な画像や肌の多い露出を検出できます。一部のアプリではDetectModerationLabelsを利用しスコアリングに活用しています。 DetectModerationLabelsでは下記表に示すラベルを検出できます。
https://docs.aws.amazon.com/rekognition/latest/dg/moderation.html https://docs.aws.amazon.com/rekognition/latest/dg/API_DetectModerationLabels.html
相撲画像に対してDetectModerationLabelsを利用するとNudityとして判断されます。
"Confidence": 95.17472839355469, "Name": "Nudity", "ParentName": "Explicit Nudity"
このようなケースもあるため用途に応じた利用が求められます。
活用事例3. 記事統合基盤
先に紹介したように弊社ではグノシー、ニュースパス、ルクラなどのニュースアプリを開発しています。以前はそれぞれの開発基盤で記事データを別々に管理していましたが、近年記事データを統合する基盤が整いつつあります。別々に管理していると同一記事に対し複数回AWS RekognitionのAPIを利用し不要なコストが発生する可能性があります。統合基盤があるとこのような自体を防ぐことができる、健全なシステム運用を実現できます。またアプリ横断的にデータを管理できるのでニュース配信アルゴリズムの改善速度も高まりつつあります。機械学習でプロダクトの価値を高めたい人にとって最適な環境ですね。
おわりに
簡単ではありますが、AWS Rekognitionを活用した例を紹介しました。弊社ではこれまで自然言語処理の観点から推薦アルゴリズムを改善していくという活動がメインでしたが、現在は画像の特徴も活用していく取り組みも活発になってきました。また動画コンテンツもアプリユーザーに人気があるため、動画コンテンツにフォーカスしたアルゴリズム改善も力を入れる必要があります。このような取り組みを行いたい方はぜひ連絡ください!