駅乃みちか

https://github.com/yahoo/open_nsfw

Yahoo のポルノ検出ニューラルネットワークを見かけたので、サッと API 化できるように Docker でまとめてみた。Docker Hub に上がっているので、docker が入っているマシンであれば、以下の1行を貼り付けるだけですぐに動かしてみることが出来る。

docker run -p 8080:80 -d -t kkosuge/open_nsfw_server:latest

アクセスしてみると、以下のようにNSFWっぽさのスコアを取得できる。

curl http://localhost:8080/nsfw_score?image_url=https://storage.kksg.net/screenshot/20161020130337.png
{
score: 0.0004231430939398706
}

1に近いほどやばいので、あの絵のポルノ度はとても低いらしい。(当たり前だが) ちなみに「エロ画像」でググって一番上に出てきた画像を与えてみると、見事にポルノ判定された。

http://localhost:8080/nsfw_score?image_url=http://livedoor.4.blogimg.jp/iyashimanga/imgs/a/2/a21f8ea7.jpg
{
score: 0.9476298689842224
}

この Yahoo open nsfw model の学習やらパラメータ調整は各自やってくださいとのことらしいが、大まかにやばいやつを検出する目的ならすぐにでも使えそう。

この Docker Image のソースはこちらです。とても適当。 https://github.com/kkosuge/open_nsfw_server

自動ポルノ検出は重要な課題

画像が性的に見えるか見えないかというのはアドネットワーク、特に Google AdSense を利用している人々にとっては重要な問題です。性的すぎる絵が1枚アップロードされていただけでサイトごと広告配信が停止されてしまうことがよくある。広告が停止するとサーバーコストをペイすることができず、路頭に迷うことになる。 このようなポリシー違反の早期発見のため運営者各社はバイトの人間に監視させていたりなどいろいろやっているが、自分にもそういう問題が降りかかることがままあり、なんとか低コストでポリシー違反の画像を素早く検知する方法が重要な課題になっていた。

ポルノ検出に機械学習が有効なのはすでに知られているとおりで、Google の Cloud Vision API では有害コンテンツ検知というサービスが提供されている。しかし1000枚ごとに$2.50という料金設定は用途によってはちょっと高い。そして、完璧ではない。

AdSense スペシャリストの判断する性的ラインはとても低い

なにかもっと安くていいソリューションあったらおしえてくれさい