Как программно распознавать контент для взрослых?


В настоящее время я разрабатываю веб-сайт для клиента. Он состоит из пользователей, которые могут загружать фотографии для показа в галерее на сайте.

Проблема, с которой мы сталкиваемся, заключается в том, что когда пользователь загружает изображение, его, очевидно, необходимо будет проверить, чтобы убедиться, что оно безопасно для веб-сайта (никаких порнографических или откровенных изображений). Однако мой клиент не хотел бы вручную принимать каждое загружаемое изображение, так как это отнимет много времени, а изображения пользователей не будут мгновенно будьте в сети.

Я пишу свой код на PHP. Если понадобится, я мог бы перейти на ASP.net или C#. Есть ли какой-нибудь способ, которым это можно сделать?

Author: halfer, 2013-01-18

6 answers

Существует библиотека JavaScript, называемая nude.js который предназначен для этого, хотя я никогда им не пользовался. Вот демонстрация его использования.

Существует также пОДМЕтальщик порнофильмов.

Другой вариант - "передать на аутсорсинг" работу по модерации, используя что-то вроде Механический Турок Амазонки, которая является краудсорсинговой платформой, которая " позволяет компьютерным программам координировать использование человеческого интеллекта для выполнения задач, которые компьютеры не в состоянии сделать". Таким образом, вы в основном заплатили бы небольшую сумму за элемент модерации и наняли бы стороннего человека для модерации контента для вас.

Единственное другое решение, которое я могу придумать, - это сделать изображения модерируемыми пользователями, где пользователи могут помечать неподходящие сообщения/изображения для модерации, и если никто не хочет их модерировать вручную, их можно просто удалить после определенного количества флагов.

Вот несколько других интересных ссылок на тема:

 12
Author: Brett Gregson, 2017-05-23 11:54:44

Если вы ищете решение на основе API, вы можете проверить Sightengine.com

Это автоматизированное решение для обнаружения таких вещей, как контент для взрослых, насилие, знаменитости и т.д. На изображениях и видео.

Вот пример на PHP с использованием SDK:

<?php
$client = new SightengineClient('YourApplicationID', 'YourAPIKey');

$output = $client>check('nudity')>image('https://sightengine.com/assets/img/examples/example2.jpg');

Затем вывод вернет классификацию:

{ "status": "success", "request": { "id": "req_VjyxevVQYXQZ1HMbnwtn", "timestamp": 1471762434.0244, "operations": 1 }, "nudity": { "raw": 0.000757, "partial": 0.000763, "safe": 0.999243 }, "media": { "id": "med_KWmB2GQZ29N4MVpVdq5K", "uri": "https://sightengine.com/assets/img/examples/example2.jpg" } }

Ознакомьтесь с документацией для получения более подробной информации: https://sightengine.com/docs/#nudity-detection (отказ от ответственности: я там работаю)

 1
Author: agrandiere, 2017-05-11 12:14:30

Существует бесплатный API, который обнаруживает контент для взрослых (порно, нагота, NSFW).

Https://market.mashape.com/purelabs/sensitive-image-detection

Мы использовали его в нашей производственной среде, и я бы сказал, что пока он работает довольно хорошо. Хотя есть некоторые ложные обнаружения, похоже, они предпочитают помечать изображение как небезопасное, если они не уверены.

 0
Author: DenisL, 2016-08-26 19:50:37

Все зависит от уровня точности, который вы ищете, простого определения тона кожи (например nude.js ), вероятно, даст вам точность 60-80 % на большом наборе образцов, для чего-то более точного, чем это, скажем, 90-95%, вам понадобится какая-то специализированная система компьютерного зрения с развивающейся моделью, которая со временем пересматривается. Для последнего вы, возможно, захотите проверить http://clarifai.com или https://scanii.com (над которым я работаю)

 0
Author: Rafael Ferreira, 2016-09-06 03:52:25

Приведенный ниже пример не дает вам 100% точных результатов, но он должен хоть немного помочь вам и работает из коробки.

<?php
$url = 'http://server.com/image.png';
$data = json_decode(file_get_contents('http://api.rest7.com/v1/detect_nudity.php?url=' . $url));

if (@$data->success !== 1)
{
    die('Failed');
}
echo 'Contains nudity? ' . $data->nudity . '<br>';
echo 'Nudity percentage: ' . $data->nudity_percentage . '<br>';
 0
Author: Jack, 2017-06-17 14:30:45

В Microsoft Azure есть очень классный API под названием Компьютерное зрение , который вы можете использовать бесплатно (либо через пользовательский интерфейс, либо программно) и содержит тонны документации, в том числе для PHP.

У него есть некоторые удивительно точные (а иногда и юмористические) результаты.

Помимо обнаружения взрослого и "пикантного" материала, он будет читать текст, угадывать ваш возраст, определять основные цвета и т. Д. и т. Д.

Вы можете попробовать это на azure.microsoft.com.

Пример вывода из "пикантного" изображения:

FEATURE NAME:               VALUE:
Description                 { "tags": [ "person", "man", "young", "woman", "holding",
                              "surfing", "board", "hair", "laying", "boy", "standing", 
                              "water", "cutting", "white", "beach", "people", "bed" ], 
                              "captions": [ { "text": "a man and a woman taking a selfie", 
                              "confidence": 0.133149087 } ] }
Tags                        [ { "name": "person", "confidence": 0.9997446 }, 
                              { "name": "man", "confidence": 0.9587285 }, 
                              { "name": "wall", "confidence": 0.9546831 }, 
                              { "name": "swimsuit", "confidence": 0.499717563 } ]
Image format                "Jpeg"
Image dimensions            1328 x 2000
Clip art type               0
Line drawing type           0
Black and white             false
Adult content               true
Adult score                 0.9845981
Racy                        true
Racy score                  0.964191854
Categories                  [ { "name": "people_baby", "score": 0.4921875 } ]
Faces                       [ { "age": 37, "gender": "Female",
                                "faceRectangle": { "top": 317, "left": 1554, 
                                                   "width": 232, "height": 232 } } ]
Dominant color background   "Brown"
Dominant color foreground   "Black"
Accent Color                #0D8CBE
 0
Author: ashleedawg, 2018-03-07 14:00:27