こんにちは、エンジニアの平山です。

昨今のAIブームのなか、引きの強そうなタイトルで思い切って記事を書いてみます。 ちと長くなるのでざっくりですすめますよ。

はじめに

機械学習系の話題はテーマを絞り込まないとすぐに深い森に迷い込んでしまうので、一番最初にそこだけはっきりさせましょう。

本日のテーマです。

「ある条件に合致する画像かそうでないか、を判断できる機械を作る」

例えば、

「部屋全体を写している写真なのか、そうでないのか」という判定はRoomClipでは少し重要な気がします。 もちろん、そうでない写真、例えば何かの接写であっても「問題がある」というわけではないのですが、 ときに「部屋全体が写っている写真に絞り込みたい」と思うこともあります。 そういったことを「画像だけで」判定する方法は、 Deep Learning旺盛の昨今たくさーんありそうですが、本気でこれを組もうとするとなかなか厄介です。

なので、できるだけ簡便に、出来合いのものだけで、ちゃちゃちゃっと作ってみましょう。

Rekognition

さて、まずは改めてテーマに戻ります。 余計な部分を省いて眺めると、

「...合致する画像か、そうでないか、を判断...」

とあるので、これはいわゆる「2値分類」とか言われる領域とわかります。

要は「TRUE」か「FALSE」か、仕分けるだけ。この学習だけなら、Amazon Machine Learningで十分できそうです。さて残る問題は、「ある条件に合致する画像」という部分。画像に対して「条件」を作用させなくてはならない。つまり、画像側が同じ「条件」で表現されていなくてはならない。

これは少し困りました。

画像を入力としてある程度正規化された表現を得なくてはいけない。過去多くの場合はここで止まっていたと思います。が、現代は画像解析アプリケーションはゴマンとあるわけです。その一つがAmazon rekognition。これを使えば非常に簡単にAPIをつかって画像解析ができます。 例えば僕の部屋の画像を使うと、、、