All Projects → TechnikEmpire → NsfwSqueezenet

TechnikEmpire / NsfwSqueezenet

Licence: MPL-2.0 license
Caffe Squeezenet model for binary classification of pornographic/non-pornographic material

Projects that are alternatives of or similar to NsfwSqueezenet

neuralBlack
A Multi-Class Brain Tumor Classifier using Convolutional Neural Network with 99% Accuracy achieved by applying the method of Transfer Learning using Python and Pytorch Deep Learning Framework
Stars: ✭ 36 (-36.84%)
Mutual labels:  accuracy
porn-description-generator
Generates new porn descriptions based on an edited dataset of xhamster video descriptions uploaded between 2007-2016.
Stars: ✭ 40 (-29.82%)
Mutual labels:  pornography
bsec bme680 linux
Read the BME680 sensor with the BSEC library on Linux (e.g. Raspberry Pi)
Stars: ✭ 78 (+36.84%)
Mutual labels:  accuracy
Computer-Vision-Project
The goal of this project was to develop a Face Recognition application using a Local Binary Pattern approach and, using the same approach, develop a real time Face Recognition application.
Stars: ✭ 20 (-64.91%)
Mutual labels:  accuracy
ESP8266TimerInterrupt
This library enables you to use Interrupt from Hardware Timers on an ESP8266-based board. It now supports 16 ISR-based timers, while consuming only 1 hardware Timer. Timers' interval is very long (ulong millisecs). The most important feature is they're ISR-based timers. Therefore, their executions are not blocked by bad-behaving functions or tas…
Stars: ✭ 85 (+49.12%)
Mutual labels:  accuracy
TimerInterrupt
This library enables you to use Interrupt from Hardware Timers on an Arduino, such as Nano, UNO, Mega, etc. It now supports 16 ISR-based timers, while consuming only 1 hardware Timer. Timers' interval is very long (ulong millisecs). The most important feature is they're ISR-based timers. Therefore, their executions are not blocked by bad-behavin…
Stars: ✭ 76 (+33.33%)
Mutual labels:  accuracy
Music-Genre-Classification
Genre Classification using Convolutional Neural Networks
Stars: ✭ 27 (-52.63%)
Mutual labels:  accuracy
pytorch-android
[EXPERIMENTAL] Demo of using PyTorch 1.0 inside an Android app. Test with your own deep neural network such as ResNet18/SqueezeNet/MobileNet v2 and a phone camera.
Stars: ✭ 105 (+84.21%)
Mutual labels:  squeezenet
ohsome-quality-analyst
Data quality estimations for OpenStreetMap
Stars: ✭ 28 (-50.88%)
Mutual labels:  accuracy
pytorch Squeezenet
Implementation of Squeezenet in pytorch, pretrained models on Cifar 10 data to come
Stars: ✭ 86 (+50.88%)
Mutual labels:  squeezenet
Seeker
Accurately Locate Smartphones using Social Engineering
Stars: ✭ 2,772 (+4763.16%)
Mutual labels:  accuracy
STM32 TimerInterrupt
This library enables you to use Interrupt from Hardware Timers on an STM32F/L/H/G/WB/MP1-based board. These STM32F/L/H/G/WB/MP1 Hardware Timers, using Interrupt, still work even if other functions are blocking. Moreover, they are much more precise (certainly depending on clock frequency accuracy) than other software timers using millis() or micr…
Stars: ✭ 27 (-52.63%)
Mutual labels:  accuracy
SAMD TimerInterrupt
This library enables you to use Interrupt from Hardware Timers on an SAMD-based board. These SAMD Hardware Timers, using Interrupt, still work even if other functions are blocking. Moreover, they are much more precise (certainly depending on clock frequency accuracy) than other software timers using millis() or micros(). That's mandatory if you …
Stars: ✭ 28 (-50.88%)
Mutual labels:  accuracy
DoubleFloats.jl
math with more good bits
Stars: ✭ 102 (+78.95%)
Mutual labels:  accuracy
MobilePose
Light-weight Single Person Pose Estimator
Stars: ✭ 588 (+931.58%)
Mutual labels:  squeezenet
Deep-Compression.Pytorch
Unofficial Pytorch implementation of Deep Compression in CIFAR10
Stars: ✭ 29 (-49.12%)
Mutual labels:  accuracy
samp-plugin-timerfix
High accuracy timing events for SA-MP servers.
Stars: ✭ 18 (-68.42%)
Mutual labels:  accuracy
DL.EyeSight
Mainly use SSD, YOLO and other models to solve the target detection problem in image and video !
Stars: ✭ 48 (-15.79%)
Mutual labels:  squeezenet
Simplified SqueezeNet
An improved version of SqueezeNet networks https://github.com/DeepScale/SqueezeNet
Stars: ✭ 38 (-33.33%)
Mutual labels:  squeezenet
speech-recognition-evaluation
Evaluate results from ASR/Speech-to-Text quickly
Stars: ✭ 25 (-56.14%)
Mutual labels:  accuracy

NsfwSqueezenet

Caffe Squeezenet model for binary classification of pornographic/non-pornographic material

Important Update

The model herein, especially the accuracies shown, are not accurate. Though I'm not quite sure how, my best guess is that the model is heavily overfit. Since publishing this, I have tested this model against small sets of plain nudity and other pornographic images and the model does extremely poorly. Yahoo NSFW drops compared to the stats below as well, just ot as significantly as this model. Live and learn! Anyway I'm archiving this cause of it. Just be advised.

Original Readme

The model has a single output, which consists of float values indicating the probability of the input belonging to one of two classes, ranging from 0.0 to 1.0. The first class, 0, is non-pornography, and the second class, 1, is pornography. Therefore, you can simply take the second index of the output (class 1 probability) as your result.

This project was inspired by Open NSFW. Open NSFW has excellent accuracy but is computationally expensive. While we don't quite meet the accuracy of OpenNSFW... This model is now slightly more accurate than Yahoo's Open NSFW. As a bonus, this model executes ~3x faster. On modern hardware, I can run classification with this model at ~3msec on the CPU, including preprocessing.

On a set of 24,000 images (12K per class), the final results for this model vs Yahoo's are:

Squeezenet Cutoff = 0.895677871187031
Classifier with type Squeezenet classified pornographic images with an accuracy of 99.2422285369844%.
Classifier with type Squeezenet classified non-pornographic images with an accuracy of 98.9925083957634%.
Classifier with type Squeezenet has an overall accuracy of 99.1173684663739%.

ResNet Cutoff = 0.3
Classifier with type ResNet classified pornographic images with an accuracy of 98.622233703608%.
Classifier with type ResNet classified non-pornographic images with an accuracy of 98.9150090415913%.
Classifier with type ResNet has an overall accuracy of 98.7686213725997%.

This model is sufficient enough for real time video classification (modern hardware) at ~13.8x normal playback speed (cinema framerate), or ~333FPS. On a less efficient DNN configuration, you can see a demonstration of this here, but only at ~3.5x normal playback speed. Making this model work at 333Hz on the CPU like I did is an exercise left to the reader.

It is my hope that you'll use this model to do something good. The development of this model and things like it takes a heavy toll. I am of the opinion that this particular problem is now conquered and am making this available so neither you or anyone else will have to revisit such work again.

Todo

  • Right now this model performs very well with pornographic imagery, but still doesn't perform quite as well with plain nudity or suggestive imagery. The model can benefit from adding plain nudity, devoid of sexual actions, to the training input.

Notice

Everything except the file nsfw_squeezenet.caffemodel is a derivative of SqueezeNet 1.1 and thus is under the original copyright holder's license, the BSD 2-clause license.

nsfw_squeezenet.caffemodel is licensed under the Mozilla Public License v2.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].