Aprende a implementar un detector de desnudez usando PHP en Symfony 3.

Las aplicaciones públicas a menudo son víctimas de alborotadores que quieren ser divertidos subiendo contenido para adultos en un sitio web, por ejemplo, que está hecho para toda la familia (donde todos ingresan). Muchas empresas resuelven este problema contratando personas que verifiquen si las imágenes subidas tienen contenido obsceno. Esta es una solución agradable y aceptable para empresas con recursos, sin embargo, las nuevas empresas no pueden permitirse ese tipo de personal. Es por eso que hoy queremos compartir contigo una increíble biblioteca PHP que detecta (en su mayoría, no con una precisión del 100%) si una imagen contiene desnudos, etc. También te mostraremos cómo implementarla en tu proyecto Symfony 3.

Importante

El algoritmo de detección de desnudez implementado por la biblioteca no es a prueba de balas como muchos servicios que existen. A menos que use algún marco de aprendizaje profundo o CV, algunas imágenes pueden calificarse como no pornográficas (pueden fallar). La tasa de falsos positivos es baja con esta implementación, por lo que este script le ayuda a detectar imágenes claras de "pornografía" o "desnudos".

Si realmente desea una implementación a prueba de balas que funcione con redes neuronales, etc., es posible que desee utilizar un servicio de terceros (una API) que utilice redes neuronales. Tenemos una colección de 5 de las mejores API que puede utilizar para este objetivo .

1. Instalar el detector de desnudez

Para detectar si una imagen tiene desnudos, usaremos el Script PHP del Detector de desnudos. Nudity Detector es una biblioteca publicada en Packagist e instalable con composer. Originalmente, la biblioteca fue escrita por los chicos de FreebieStock que usaban un algoritmo asombroso ( explicación e información de detalles técnicos aquí ) y lo portaban a PHP.

Para instalar esta biblioteca usando Composer, ejecute el siguiente comando:

composer require necrox87/yii2-nudity-detector "dev-master"

Como puede ver, el paquete publicado en Packagist no maneja el control de versiones, ya que es solo una copia del proyecto PHP original en este repositorio . Para obtener más información sobre el paquete disponible en packagist, visite su repositorio aquí .

2. Uso del detector de desnudez

Como se mencionó, esta biblioteca es bastante fácil de usar y se puede usar tanto en controladores como en servicios Symfony, solo necesita usar la clase NudityDetector del espacio de nombres y eso es todo. Necesita crear una instancia de la clase de detector que reciba como primer argumento la ruta al archivo de imagen que desea analizar. Desde la instancia creada solo use el isPornmétodo para detectar si la imagen tiene contenido obsceno o no:

<?php

namespace AppBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;

// Referencia a la clase NudityDetector
use necrox87\NudityDetector\NudityDetector;

class DefaultController extends Controller
{
    public function homepageAction(Request $request)
    {
        // Ruta a un archivo de imagen que desea analizar
        $imagePath =  $this->get('kernel')->getRootDir() . '/../web/images/nude6.jpg';

        // Crea una instancia de NudityDetector
        $NudityChecker = new NudityDetector($imagePath);

        // El método isPorn verifica si la imagen proporcionada tiene contenido obsceno
        // y devuelve un booleano respectivamente
        if($NudityChecker->isPorn()){
            //¡La imagen tiene contenido para adultos!
        }else{
            // ¡La imagen es adecuada para toda la familia!
        }
        
        // Resto de tu código ...
    }
}

Como se mencionó al principio del artículo, el algoritmo puede fallar en algunos casos, sin embargo, con imágenes claras que contienen contenido obsceno, se aplicará el filtro. Si desea una solución perfecta, le recomendamos que verifique la solución utilizando una API de terceros .

Que te diviertas ❤️!


Interesado en la programación desde los 14 años, Carlos es un programador autodidacta, fundador y autor de la mayoría de los artículos de Our Code World.

Conviertete en un programador más sociable

Patrocinadores