/ Модель

Характеристики

Лицензия
Apache 2.0
Библиотека
timm
Опубликована
26 янв 2023

google-safesearch-mini-v2

Классификация изображенийИзображение → label3 профессии

Классификатор изображений на InceptionResNetV2 для фильтрации откровенного контента и модерации наборов данных.

52скачиваний за 30 дней5лайковвеса обновлены6 сен 2023

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

Google Safesearch Mini V2 — классификатор изображений для выявления откровенного контента, разработанный Fred Zhang. Модель построена на архитектуре InceptionResNetV2 и обучена на наборе примерно из 3,4 миллиона изображений из Google Images, Reddit, Kaggle и Imgur; часть данных была создана аугментацией. Карточка сообщает о точности 97% на обучающей и валидационной выборках.

Модель предназначена для фильтрации изображений в социальных сетях и наборах данных по признаку безопасного или откровенного содержания. Автор отмечает, что классификатор ошибочно принимал шерсть коричневой кошки за человеческую кожу и дообучал его на дополнительных наборах данных. Заявленная точность относится к указанным выборкам и не гарантирует такой же результат на новых данных. Репозиторий содержит веса PyTorch и распространяется по лицензии Apache-2.0.

Сценарии применения

  • фильтрация откровенных изображений в пользовательских публикациях
  • автоматическая предварительная модерация изображений в социальных сетях
  • отсев изображений с откровенным содержанием из обучающих наборов данных

Ограничения

Автор сообщает об ошибке классификации шерсти коричневой кошки как человеческой кожи; заявленные 97% точности получены на обучающей и валидационной выборках и не характеризуют качество на любых новых данных.

Для каких профессий подходит3

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Safesearch v3.1 was released

Google Safesearch Mini V2 is an ultra-precise multi-class image classifier that accurately detects explicit content

Google Safesearch Mini V2 took a different approach to its training than V1; it used the InceptionResNetV2 architecture and a dataset of roughly 3,400,000 images randomly sourced from the internet, some of which were generated via data argumentation. The training and validation data are sourced from Google Images, Reddit, Kaggle, and Imgur, and were classified as safe or nsfw by companies, Google SafeSearch, and moderators.

After training the model for 5 epochs with cross entropy loss and evaluating it on both the training and validation sets to identify images with predicted probabilities below 0.90, some necessary corrections were made to the curated dataset and the model was trained for an additional 8 epochs. Next, I tested the model on various cases that it may struggle to classify and observed that it was mistaking the fur of a brown cat for human skin. To improve the accuracy, I fine-tuned the model with 15 additional datasets from Kaggle for one epoch, and then trained it for the last epoch with a combination of training and test data. This resulted in 97% accuracy on both training and validation data.

A safesearch filter is not only a great tool for moderating social media, but it also can be used to filter datasets. Compared to stable diffusion safety checkers, this model offers a major advantage - users can save 1.0 GB of RAM and disk space.

PyTorch

pip install --upgrade torchvision
import torch, os
from torchvision import transforms
from PIL import Image
import urllib.request
import timm

image_path = "https://www.allaboutcats.ca/wp-content/uploads/sites/235/2022/03/shutterstock_320462102-2500-e1647917149997.jpg"
device = "cuda"

def preprocess_image(image_path):
  # Define image pre-processing transforms
    transform = transforms.Compose([
      transforms.Resize(299),
      transforms.CenterCrop(299),
      transforms.ToTensor(),
      transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
    ])
    if image_path.startswith('http://') or image_path.startswith('https://'):
        import requests
        from io import BytesIO
        response = requests.get(image_path)
        img = Image.open(BytesIO(response.content)).convert('RGB')
    else:
        img = Image.open(image_path).convert('RGB')
    img = transform(img).unsqueeze(0)
    img = img.cuda() if device.lower() == "cuda" else img.cpu()
    return img

def eval():
    model = timm.create_model("hf_hub:FredZhang7/google-safesearch-mini-v2", pretrained=True)
    model.to(device)
    img = preprocess_image(image_path)

    with torch.no_grad():
        out = model(img)
        _, predicted = torch.max(out.data, 1)
        classes = {
            0: 'nsfw_gore',
            1: 'nsfw_suggestive',
            2: 'safe'
        }
        print('\n\033[1;31m' + classes[predicted.item()] + '\033[0m' if predicted.item() != 2 else '\033[1;32m' + classes[predicted.item()] + '\033[0m\n')

if __name__ == '__main__':
    eval()

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · timm · image-classification

Можно запустить

Подбираем GPU…

Ревизия весов
af30939

0 моделей