「ネットのサービス」カテゴリーアーカイブ

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を調べてみるといいかの手がかりが得られそうです。

これが2018年のウェブサイト

Websites in 2018は、最近のウェブサイトのトレンドを忠実に表したサイトです。ただしコンテンツはありません。

「最近のウェブサイトあるある」を再現しているわけですが、新しいサイトを訪れるたびに、いかに色々な注意書きやら何やらを見せられ、それに応じないといけなくなっているか、という問題点が鮮やかに指摘されていていいデモだと思います。これが当たり前になっていくのは残念だと思いますが、今後どうすればいいんでしょうね。

英語のままでもわかりやすいかと思いますが、ソースコードに「ローカライズはご自由に」とあるので、日本語に翻訳しました。2018年のウェブサイト

via Hacker News

invaderz – 遺伝的アルゴリズムで動きを変えるインベーダー風ゲーム

victorqribeiro/invaderzは、上から襲い掛かるインベーダーを砲台で撃ち落とす JavaScript のゲームです。

一回に6匹降りてくるインベーダーを、地上に近づけないように撃ち落とす必要があります。合計で5匹が地上にたどり着いたら、ゲームオーバーとなります。また、6匹の攻撃が終わると、新たに次の6匹が登場します。

攻めてくるインベーダーの形はランダムに打たれたドットのパターンなのですが、このドットの形に応じて、どのように動くのかが表されています。

設定によると、撃ち落とされた瞬間のインベーダーは、母船に対して「どこまで侵攻できたか」の情報をアップロードし、次の世代では、優秀な結果を残したインベーダーの形を掛け合わせた攻撃隊が編成されます。

この次の世代を生産する時に、優秀だった個体からランダムに上下半分ずつや左右半分ずつの形をコピーしたりして新しい世代を作ることで、これまで良い結果を出したインベーダーの特徴を併せ持つ世代が作られる、ということになります。(この際に、10%の割合で突然変異も起こります) この当たりはソースコードの Genetics.js を見るとなんとなくわかります。

動くデモも公開されていますが、今はアクセスしづらくなっているようです。ソースコードを持ってくれば手元で簡単に動かすことはできました。

30世代ほど遊んでみましたが、後半になると確かにインベーダーの動きが左右に大きくなり、狙った弾を避けている(避けているように見える、だけですが)ことは増えます。ただ、進化の度合いはかなりゆっくりかなと。何百世代とやるととても優秀になるかもしれませんが、5回失敗すると終わりなのでそこまでもっていくのは大変そうです。

いろんな人が育てた結果が共有されたりすると、面白い避け方をするインベーダーがたくさん作られるかもしれないですね。

シューティングゲームなんて、結局のところコンピューターはいくらでも反応速度を上げられるため、本気でやられたら人間が勝てるものではないのですけど、こちらの打った手を学習して相手の攻撃が変わる、というギミックで、プレイするユーザー毎に違うゲーム体験を作ったりできるということはあるのかも、と思いました。

via Hacker News

Draw on this website – 世界中からみんなでお絵描きサービス

Draw on this websiteは、昨日公開された、ブラウザ上に用意された巨大な一枚の紙。閲覧者のみんなが自由に落書きできるというwebサービスです。

すでにカオス状態ですね。

当初は描いた後5分で消えてしまうという黒の無料インクが使えたのですが、アクセス急増したためか、無料インクは今使えない状態になっています。

$0.99(円) 払うと10000ピクセル描ける有料の「永遠インク (forever ink)」を買えば、まだお絵描きに参加できますが、さてどうなるか。見ていると有料のカラーインクで書いてる人はいますね。100円(0.88ドル)ぐらいなら、課金サービスに慣れた人が多い今、払って参加する人も結構いるということかもしれません。

今話題になっている間が稼ぎ時というか、もしサイトの人気が続くようでも、宣伝とか政治色の強いメッセージなどで埋まってしまうのではという気もしますが、どうなることでしょう。

via The Verge

voicecoder.net – Alexaの音声でカスタマイズできるゲーム

Voice Coder、「音声でコーディングを学ぼう」とあるこのプロジェクトは、Amazon Alexa を使って初歩のプログラミングを学べる、というサービス/スキルです。

Alexa スキルと連動させたブラウザゲームにおいて、横スクロールゲームで背景画像を切り替えたり、自機が地面や障害物、アイテムと衝突した際に起こるイベントを切り替えたり(ライフが減る、音が鳴る、ポイントが増える、など)を、音声で指示することができます。

と、動画のデモでは動いているのですが、実際に自分で使おうとすると、Alexaスキルがうまく動いていないのか、アクセスコードを話してくれず、自分でプログラミングを試すことはできませんでした。

元のゲームのパラメータを音声で変えられる、と言ってしまえばそれだけで、「音声でプログラミング」は言い過ぎかもしれません。ですが、スマートフォンで文字を書いたり、パソコンでキーボードを打ったりすることが身についてない小さな子供でも、このような音声インタフェースなら使うことができます。ゲームもプログラムで動いていて、それを変更することができるんだ、という体験をさせるにはいいのかもしれません。

via Hacker News

映画のワンシーンのような画像解析ごっこができるブラウザゲーム Enhance.computer

ENHANCE.COMPUTERは、ウェブブラウザで遊べるシンプルなゲーム。

“Begin Investigation”をクリックして調査を開始すると、ノイズが載った画像が右側に表示されます。

この画像のどこかに隠されたコードを、カウントダウンされる時間内に探し出すのがゲームの目的です。

コードを探すには、”Zoom in”/”Zoom out”で拡大縮小、”Move”で上下左右に画像を動かし、「コードはここだ」と思ったら”Enhance”。ただ、この指示はボタンを押したりコマンドを入力したりではなく、画面(マイク)に向かって叫ぶことで行います。

こちらのツイートは、作者によるプレイイメージ。

https://twitter.com/nicolehe/status/1029721756049666048

元ネタは映画

多数の映画の中に、このような、誰へともなく指示すると画像から何かが見つかる、というシーケンスがあり、そのようなシーンをまとめた動画(Let’s Enhance)もあります。主人公が”Enhance”といえば、たいていの画像から手掛かりは見つかってしまいます。

このENHANCE.COMPUTERを使うことで、こういった映画の主人公の行動を、自宅や会社でも再現できる、というわけですね。

via The Next Web