LoginSignup
3

More than 1 year has passed since last update.

アダルト画像を完全無料で検出するAPI

Last updated at Posted at 2023-01-14

前置き

アダルト画像を検出するAPIは大抵リクエスト数に制限があり、完全に利用するのは難しいですよね。
そこでGitHubを漁っていたら完全無料で検出を行えるAPIを見つけたので紹介していきたいと思います。
注意ですがローカルの画像は検出できません。URL形式の画像リンクのみ検出可能です。

API説明

【API名】
 nsfw_api

【簡単な概要】
Caffe用のモデルを提供するopen_nsfwに依存した、画像がアダルトコンテンツを含むか予測するREST APIである。
質を向上させることを目的とせず、無料で必要とする多くの人に提供することを目標としている。

API導入方法

事前準備

【Dockerダウンロード】
dockerをダウンロード、インストールする必要があります。(※インストール済みの場合は次へ)
ここでダウンロード方法については割愛しますが、下記のサイトで丁寧に説明されています。
https://sukkiri.jp/technologies/virtualizers/docker/docker-win_install.html
 

【WindowsユーザーはPC電源オプションを変更】
DockerではPCの電源オプションの設定によっては、不具合が生じる場合があるので、事前に設定を変更しておきましょう。
変更箇所は「高速スタートアップ」に関する箇所ですが、記事の趣旨とずれてしまうので下記サイトを参考にしてみてください。
https://mameco0127.hatenablog.com/entry/2020/12/09/184030

Docker起動

Dockerを起動しておきましょう。
またまたWindowsユーザーですが、起動後に「Docker Desktop starting...」が表示されたまま変化のない場合は下記の記事を参考に解決してみてください。
https://qiita.com/azumi_/items/c544f9b44e1cdb8c6fe0

コンテナを生成

コマンドプロンプト上で下記のように入力し、コンテナを生成します。

cmd
>>docker run -it -p 127.0.0.1:5000:5000/tcp --env PORT=5000 eugencepoi/nsfw_api:latest

いくらたっても完了しない場合は、新たに別のコマンドプロンプトを開き、

別のcmdにて
>>docker ps

と入力してみてください。

結果1
>>docker ps
CONTAINER ID   IMAGE                       COMMAND                
〇〇〇       eugencepoi/nsfw_api:latest  "/bin/sh -c 'gunicor…" ...省略
結果2
>>docker ps
CONTAINER ID    IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES

【結果1の場合】
結果内に「eugencepoi/nsfw_api:latest」というイメージが入っていれば生成は完了しているので、全てのコマンドプロンプトは閉じてOKです!
【結果2の場合】
結果内に列名のみが出力された場合は、まだ生成を完了していないか、エラーが発生している可能性が高いです。

検出実行

①適当なブラウザを開いてください。
②アドレスバーに下記の様に入力してください。

アドレスバー
http://localhost:5000/?url=〇〇〇

「〇〇〇」の部分は画像のURLを入れてください。
前置きでも説明した通り、〇〇〇の部分は画像リンクのみ対応しています。
そしてEnterしてアクセスすると...

結果
{"score":0.052383366972208023,"url":"〇〇〇"}

このような結果が表示されます。
scoreの部分が判定結果になり、「0 ~ 1」の間の数値が返ってきます。
返ってきた数値が0に近ければアダルト画像である可能性は低く、1に近ければアダルト画像である可能性が高いという判定です。

参考

下記のリンク先が今回紹介したAPIのGithubリポジトリです。
https://github.com/EugenCepoi/nsfw_api

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3