カテゴリー
ネットのサービス

Gamedetect.io – ゲーム画面の画像からゲーム名を当てるサービス

GameDetect.io のフォームにビデオゲームの画面写真を与えると、JSON でそれがどのゲームに似ているかを返してくれます。

適当な画像をアップロードすると、以下のような形でゲームタイトルとそのゲームである確からしさを戻してきます。


{
"filename":"dragonquest5.jpg",
"predictions":[
{
"label":"stardew valley",
"probability":0.568226
},
{
"label":"the legend of zelda a link to the past",
"probability":0.15813187
},
{
"label":"super mario maker",
"probability":0.031073814
},
{
"label":"factorio",
"probability":0.027034273
},
{
"label":"don t starve together",
"probability":0.020903632
}
],
"speed_ms":1113
}

Tensorflow と Golang によって実装されており、学習データとしてはTwitch のゲーム配信画面をスクレイプしたものを使っています。ゲーム実況にはゲームのタイトル情報とゲーム画面があるので、これを正答として学習させ、モデルを作っているのですね。

そのような作りなので、回答で出てくる候補のゲームはTwitch で今最も多く中継されているゲームトップ100 からだけとなっています。(冒頭で試したドラクエ5 の画面では、Stardew Valley やゼルダなど画面の似ているものが出てしまっていますね。)

カテゴリー
ネットのサービス

NSFW画像検知APIの優劣比較

NSFW(Not safe for work = 職場閲覧不適)画像、わかりやすい言い方だとエロ画像ですが、画像を渡すとその画像がエロかどうか判定してくれる API というの、結構たくさんあるんですね。

なぜこの種のAPIに需要があるかというと、ユーザー投稿型のwebサービス運営において、広く見せられないような画像を投稿されることが運用の大きな障害となるからでしょうね。悪意のあるユーザーや考えなしのユーザーによって法に触れたりサービスのイメージが悪化するような画像を投稿され、さらにそのことがソーシャルメディアで喧伝されたりすれば、サイトの評判に関わります。

Facebook や twitter のような超大手なら、画像の判定もいくらでも内製できるでしょうが、そうでない小さなサービスでは、多少お金を払ってでも簡易に判定を外部に任せたいところでしょう。

…と、書いていたら、Tumblr が(おそらく Apple に iPhone アプリを禁止された影響で)アダルトな投稿を禁じるという方針転換を発表し、同時に開始したアダルト画像のフィルタリングの誤判定がひどいらしいので、NSFW 判定は多数のエンジニアを抱える大手でも難しい分野なのでしょう。

そんな画像検知のAPI を、Aditya Ananthram さんが、API の検出精度を実験したり、価格を比較したりしてくれています。

調査対象のAPIはなんと11個。このまとまったリストだけでも、取っ掛かりとしてはありがたいですね。

また、セーフ/アウトのアウトの種類もいろいろあるようで、API によっても分類は異なりそうですが、以下のようなカテゴリ分けで判定を試みています。

  • Explicit Nudity (露骨なヌード)
  • Suggestive Nudity (思わせぶりなヌード – 隠すところは隠しているが… みたいなやつ)
  • Porn/sexual act (ポルノ/性行為)
  • Simulated/Animated porn (CGやアニメのポルノ)
  • Gore/Violence (流血/暴力)
  • Safe for Work (職場で問題ない)

実験するにあたって、当然、本物の NSFW 画像が必要となります。ブログ記事自体は必要なところはボカシが入っていて、SFW(safe for work = 職場安全)ですけど、中にGoogle Documents へのリンクがあり、リンク先には今回使用された、正しく分類されたデータが入っています。追試とかしたい方は注意してください。

カテゴリごとに強いAPIはありますが、Google のものがおおむね良い成績を上げたそうで、さすがというところでしょうか。また、Gore/Violence や Safe for Work というカテゴリはどのAPIでも判定は難しいようで、各APIでも誤判定が多かったそうです。このへんは元のテストデータにしても正解かどうか意見がわかれそうですし、「職場で問題ないかどうか」なんて普遍的にわかるものでもないですからね。

擬陽性・偽陰性の多寡を並べたグラフ(Overall Comparison セクション内)や、呼び出し回数に対する価格(Pricing セクション内)などもまとめられているのでこれらを併せて比較することで、予算と精度からどのAPIを調べてみるといいかの手がかりが得られそうです。

カテゴリー
データ

米Yahoo!の株価/為替APIが停止

アメリカの株価や各通貨の交換レートが取得できる、米Yahoo! の finance API が、エラーを返すようになっていました。どうやら 2017-10-31 からこの状態になっているようです。

止まったのは REST API と、CSV によるダウンロードの両方。こういうエラーメッセージが帰ってきます。

このサービスは利用規約に違反して使われていたことにわたしたちは気づきました。そのため、サービスは終了しました。今後の市況や株価データのリサーチには finance.yahoo.com をお使いください

It has come to our attention that this service is being used in violation of the Yahoo Terms of Service. As such, the service is being discontinued. For all future markets and equities data research, please refer to finance.yahoo.com.

株価や為替のデータが無料で参照できる API として、オープンソースのツールなどもこの API を多く使っていたため、遮断から後で動かなくなったサイトや、困っているエンドユーザーが多いようです。Github で CSV ダウンロードのURLを検索すると、2万件以上ヒットしました。

ニュースサイトでも、「Yahoo のAPIが返事しないので…」というエラーを出してるところがありました。こんな感じで、API を使って表示しているサイトでエラーやデータ無しの状況が広がっていそうです。

米Yahoo のユーザーサポートページでは、APIの復活を望むコメントが寄せられ、それへの投票が呼びかけられています。

リアルタイム性の高い株価データは、高価な元データをYahoo! が購入し、それを無料で10年以上も配っていたわけで、メディアとしてAOLと統合された Yahoo! には維持が難しかったのかもしれません。

予告なしに突然止まったことに憤る人も多いですが、ビジネスとして仕方が無かったのかもしれません。

代替

reddit や Hacker News でいくつか替わりに使えそうな、無料あるいは無料枠のあるサービスやAPIが紹介されています。

株価に関しては、

為替に関しては、

などの名前が上がっています。呼び出し回数の上限があったり、数分前のデータだったりと、無料なだけにいろいろ制約があるかもしれません。まあ、それほど重要な使い方をしているなら、有料のAPIを購読しなさいということですね。

# 本当に取れるかは確認してません