All Projects → notAI-tech → Nudenet

notAI-tech / Nudenet

Licence: gpl-3.0
Neural Nets for Nudity Detection and Censoring

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Nudenet

Artos
Adaptive Real-Time Object Detection System with HOG and CNN Features
Stars: ✭ 64 (-90.03%)
Mutual labels:  object-detection, machinelearning
Weighted Boxes Fusion
Set of methods to ensemble boxes from different object detection models, including implementation of "Weighted boxes fusion (WBF)" method.
Stars: ✭ 610 (-4.98%)
Mutual labels:  object-detection
Efficientdet
(Pretrained weights provided) EfficientDet: Scalable and Efficient Object Detection implementation by Signatrix GmbH
Stars: ✭ 565 (-11.99%)
Mutual labels:  object-detection
Smart construction
Head Person Helmet Detection on Construction Sites,基于目标检测工地安全帽和禁入危险区域识别系统,🚀😆附 YOLOv5 训练自己的数据集超详细教程🚀😆2021.3新增可视化界面❗❗
Stars: ✭ 586 (-8.72%)
Mutual labels:  object-detection
Yolov3 pytorch
Full implementation of YOLOv3 in PyTorch
Stars: ✭ 570 (-11.21%)
Mutual labels:  object-detection
Centermask2
Real-time Anchor-Free Instance Segmentation, in CVPR 2020
Stars: ✭ 596 (-7.17%)
Mutual labels:  object-detection
Keras Yolov3 Mobilenet
I transfer the backend of yolov3 into Mobilenetv1,VGG16,ResNet101 and ResNeXt101
Stars: ✭ 552 (-14.02%)
Mutual labels:  object-detection
Kl Loss
Bounding Box Regression with Uncertainty for Accurate Object Detection (CVPR'19)
Stars: ✭ 624 (-2.8%)
Mutual labels:  object-detection
Machinelearning
My blogs and code for machine learning. http://cnblogs.com/pinard
Stars: ✭ 5,984 (+832.09%)
Mutual labels:  machinelearning
Deep Learning For Hackers
Machine Learning tutorials with TensorFlow 2 and Keras in Python (Jupyter notebooks included) - (LSTMs, Hyperameter tuning, Data preprocessing, Bias-variance tradeoff, Anomaly Detection, Autoencoders, Time Series Forecasting, Object Detection, Sentiment Analysis, Intent Recognition with BERT)
Stars: ✭ 586 (-8.72%)
Mutual labels:  object-detection
Yolov3
Keras implementation of yolo v3 object detection.
Stars: ✭ 585 (-8.88%)
Mutual labels:  object-detection
Centernet2
Two-stage CenterNet
Stars: ✭ 496 (-22.74%)
Mutual labels:  object-detection
Simplecvreproduction
Reproduce simple cv project including attention module, classification, object detection, segmentation, keypoint detection, tracking 😄 etc.
Stars: ✭ 602 (-6.23%)
Mutual labels:  object-detection
Detectorch
Detectorch - detectron for PyTorch
Stars: ✭ 566 (-11.84%)
Mutual labels:  object-detection
Tf trt models
TensorFlow models accelerated with NVIDIA TensorRT
Stars: ✭ 621 (-3.27%)
Mutual labels:  object-detection
Cv paperdaily
CV 论文笔记
Stars: ✭ 555 (-13.55%)
Mutual labels:  object-detection
Vehicle counting tensorflow
🚘 "MORE THAN VEHICLE COUNTING!" This project provides prediction for speed, color and size of the vehicles with TensorFlow Object Counting API.
Stars: ✭ 582 (-9.35%)
Mutual labels:  object-detection
Photonix
This is a new web-based photo management application. Run it on your home server and it will let you find the right photo from your collection on any device. Smart filtering is made possible by object recognition, location awareness, color analysis and other ML algorithms.
Stars: ✭ 592 (-7.79%)
Mutual labels:  object-detection
Retinanet Examples
Fast and accurate object detection with end-to-end GPU optimization
Stars: ✭ 631 (-1.71%)
Mutual labels:  object-detection
Gaussian yolov3
Gaussian YOLOv3: An Accurate and Fast Object Detector Using Localization Uncertainty for Autonomous Driving (ICCV, 2019)
Stars: ✭ 622 (-3.12%)
Mutual labels:  object-detection

NudeNet: Neural Nets for Nudity Classification, Detection and selective censoring

DOI Upload Python package

Uncensored version of the following image can be found at https://i.imgur.com/rga6845.jpg (NSFW)

Classifier classes: |class name | Description | |--------|:--------------: |safe | Image/Video is not sexually explicit | |unsafe | Image/Video is sexually explicit|

Default Detector classes: |class name | Description | |--------|:-------------------------------------: |EXPOSED_ANUS | Exposed Anus; Any gender | |EXPOSED_ARMPITS | Exposed Armpits; Any gender | |COVERED_BELLY | Provocative, but covered Belly; Any gender | |EXPOSED_BELLY | Exposed Belly; Any gender | |COVERED_BUTTOCKS | Provocative, but covered Buttocks; Any gender | |EXPOSED_BUTTOCKS | Exposed Buttocks; Any gender | |FACE_F | Female Face| |FACE_M | Male Face| |COVERED_FEET |Covered Feet; Any gender | |EXPOSED_FEET | Exposed Feet; Any gender| |COVERED_BREAST_F | Provocative, but covered Breast; Female | |EXPOSED_BREAST_F | Exposed Breast; Female | |COVERED_GENITALIA_F |Provocative, but covered Genitalia; Female| |EXPOSED_GENITALIA_F |Exposed Genitalia; Female | |EXPOSED_BREAST_M |Exposed Breast; Male | |EXPOSED_GENITALIA_M |Exposed Genitalia; Male |

Base Detector classes: |class name | Description | |--------|:--------------: |EXPOSED_BELLY | Exposed Belly; Any gender | |EXPOSED_BUTTOCKS | Exposed Buttocks; Any gender | |EXPOSED_BREAST_F | Exposed Breast; Female | |EXPOSED_GENITALIA_F |Exposed Genitalia; Female | |EXPOSED_GENITALIA_M |Exposed Genitalia; Male | |EXPOSED_BREAST_M |Exposed Breast; Male |

As self-hostable API service

# Classifier
docker run -it -p8080:8080 notaitech/nudenet:classifier

# Detector
docker run -it -p8080:8080 notaitech/nudenet:detector

# See fastDeploy-file_client.py for running predictions via fastDeploy's REST endpoints 
wget https://raw.githubusercontent.com/notAI-tech/fastDeploy/master/cli/fastDeploy-file_client.py
# Single input
python fastDeploy-file_client.py --file PATH_TO_YOUR_IMAGE

# Client side batching
python fastDeploy-file_client.py --dir PATH_TO_FOLDER --ext jpg

Note: golang example https://github.com/notAI-tech/NudeNet/issues/63#issuecomment-729555360, thanks to Preetham Kamidi

As Python module

Installation:

pip install --upgrade nudenet

Classifier Usage:

# Import module
from nudenet import NudeClassifier

# initialize classifier (downloads the checkpoint file automatically the first time)
classifier = NudeClassifier()

# Classify single image
classifier.classify('path_to_image_1')
# Returns {'path_to_image_1': {'safe': PROBABILITY, 'unsafe': PROBABILITY}}
# Classify multiple images (batch prediction)
# batch_size is optional; defaults to 4
classifier.classify(['path_to_image_1', 'path_to_image_2'], batch_size=BATCH_SIZE)
# Returns {'path_to_image_1': {'safe': PROBABILITY, 'unsafe': PROBABILITY},
#          'path_to_image_2': {'safe': PROBABILITY, 'unsafe': PROBABILITY}}

# Classify video
# batch_size is optional; defaults to 4
classifier.classify_video('path_to_video', batch_size=BATCH_SIZE)
# Returns {"metadata": {"fps": FPS, "video_length": TOTAL_N_FRAMES, "video_path": 'path_to_video'},
#          "preds": {frame_i: {'safe': PROBABILITY, 'unsafe': PROBABILITY}, ....}}

Thanks to Johnny Urosevic, NudeClassifier is also available in tflite.

TFLite Classifier Usage:

# Import module
from nudenet import NudeClassifierLite

# initialize classifier (downloads the checkpoint file automatically the first time)
classifier_lite = NudeClassifierLite()

# Classify single image
classifier_lite.classify('path_to_image_1')
# Returns {'path_to_image_1': {'safe': PROBABILITY, 'unsafe': PROBABILITY}}
# Classify multiple images (batch prediction)
# batch_size is optional; defaults to 4
classifier_lite.classify(['path_to_image_1', 'path_to_image_2'])
# Returns {'path_to_image_1': {'safe': PROBABILITY, 'unsafe': PROBABILITY},
#          'path_to_image_2': {'safe': PROBABILITY, 'unsafe': PROBABILITY}}

Using the tflite classifier from flutter: https://github.com/ndaysinaiK/nude-test

Detector Usage:

# Import module
from nudenet import NudeDetector

# initialize detector (downloads the checkpoint file automatically the first time)
detector = NudeDetector() # detector = NudeDetector('base') for the "base" version of detector.

# Detect single image
detector.detect('path_to_image')
# fast mode is ~3x faster compared to default mode with slightly lower accuracy.
detector.detect('path_to_image', mode='fast')
# Returns [{'box': LIST_OF_COORDINATES, 'score': PROBABILITY, 'label': LABEL}, ...]

# Detect video
# batch_size is optional; defaults to 2
# show_progress is optional; defaults to True
detector.detect_video('path_to_video', batch_size=BATCH_SIZE, show_progress=BOOLEAN)
# fast mode is ~3x faster compared to default mode with slightly lower accuracy.
detector.detect_video('path_to_video', batch_size=BATCH_SIZE, show_progress=BOOLEAN, mode='fast')
# Returns {"metadata": {"fps": FPS, "video_length": TOTAL_N_FRAMES, "video_path": 'path_to_video'},
#          "preds": {frame_i: {'box': LIST_OF_COORDINATES, 'score': PROBABILITY, 'label': LABEL}, ...], ....}}



Notes:

  • detect_video and classify_video first identify the "unique" frames in a video and run predictions on them for significant performance improvement.
  • V1 of NudeDetector (available in master branch of this repo) was trained on 12000 images labelled by the good folks at cti-community.
  • V2 (current version) of NudeDetector is trained on 160,000 entirely auto-labelled (using classification heat maps and various other hybrid techniques) images.
  • The entire data for the classifier is available at https://archive.org/details/NudeNet_classifier_dataset_v1
  • A part of the auto-labelled data (Images are from the classifier dataset above) used to train the base Detector is available at https://github.com/notAI-tech/NudeNet/releases/download/v0/DETECTOR_AUTO_GENERATED_DATA.zip
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].