Skip to main content

Lightweight Nudity Detection

Project description

Looking for contributors/ maintainers for this repo: I have become busy with other stuff in the last years, still trying to maintain this repo as it is the current best OSS option for nudity detection, Looking for interested mainttainer, who can add/ work on more features for this repo (with my help of course)

NudeNet: lightweight Nudity detection

https://nudenet.notai.tech/ in-browser demo (the detector is run client side, i.e: in your browser, images are not sent to a server)

pip install --upgrade "nudenet>=3.4.2"
from nudenet import NudeDetector
detector = NudeDetector()
# the 320n model included with the package will be used

detector.detect('image.jpg') # Returns list of detections

detector.detect_batch(['image_1.jpg', 'image_2.jpg']) # Returns list of [list of detections]
  • Python package example in colab

  • detect and detect_batch accept file path(s), opencv image(s), image bytes(s), open(image_path, 'rb') (buffereader) objects

Available models

Model resolution trained based on onnx link pytorch link
320n 320x320 ultralytics yolov8n link link
640m 640x640 ultralytics yolov8m link link
# To use the 640m model, download the onnx file and pass the path to the model_path argument

detector = NudeDetector(model_path="downloaded_640m.onnx path", inference_resolution=640)
  • 320n is the default model and is included in the nudenet python package by default
detection_example = [
 {'class': 'BELLY_EXPOSED',
  'score': 0.799403190612793,
  'box': [64, 182, 49, 51]},
 {'class': 'FACE_FEMALE',
  'score': 0.7881264686584473,
  'box': [82, 66, 36, 43]},
 ]
nude_detector.censor('image.jpg') # returns censored image output path

# optional censor(self, image_path, classes=[], output_path=None) classes and output_path can be passed
all_labels = [
    "FEMALE_GENITALIA_COVERED",
    "FACE_FEMALE",
    "BUTTOCKS_EXPOSED",
    "FEMALE_BREAST_EXPOSED",
    "FEMALE_GENITALIA_EXPOSED",
    "MALE_BREAST_EXPOSED",
    "ANUS_EXPOSED",
    "FEET_EXPOSED",
    "BELLY_COVERED",
    "FEET_COVERED",
    "ARMPITS_COVERED",
    "ARMPITS_EXPOSED",
    "FACE_MALE",
    "BELLY_EXPOSED",
    "MALE_GENITALIA_EXPOSED",
    "ANUS_COVERED",
    "FEMALE_BREAST_COVERED",
    "BUTTOCKS_COVERED",
]

Docker

docker run -it -p8080:8080 ghcr.io/notai-tech/nudenet:latest
curl -F f1=@"images.jpeg" "http://localhost:8080/infer"

{"prediction": [[{"class": "BELLY_EXPOSED", "score": 0.8511635065078735, "box": [71, 182, 31, 50]}, {"class": "FACE_FEMALE", "score": 0.8033977150917053, "box": [83, 69, 21, 37]}, {"class": "FEMALE_BREAST_EXPOSED", "score": 0.7963727712631226, "box": [85, 137, 24, 38]}, {"class": "FEMALE_BREAST_EXPOSED", "score": 0.7709134817123413, "box": [63, 136, 20, 37]}, {"class": "ARMPITS_EXPOSED", "score": 0.7005534172058105, "box": [60, 127, 10, 20]}, {"class": "FEMALE_GENITALIA_EXPOSED", "score": 0.6804671287536621, "box": [81, 241, 14, 24]}]], "success": true}

Some interesting projects based on NudeNet

1 - by https://github.com/w-e-w, censor extension ps://github.com/notAI-tech/NudeNet/issues/131

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nudenet-3.4.2.tar.gz (10.6 MB view details)

Uploaded Source

Built Distribution

nudenet-3.4.2-py3-none-any.whl (10.6 MB view details)

Uploaded Python 3

File details

Details for the file nudenet-3.4.2.tar.gz.

File metadata

  • Download URL: nudenet-3.4.2.tar.gz
  • Upload date:
  • Size: 10.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for nudenet-3.4.2.tar.gz
Algorithm Hash digest
SHA256 b20645d5f06bbb10006e6d4dc8a9513cf684269bbcffb0557a3ed6831aa90d75
MD5 b10d633fbe94c118ea4e5422df219c8a
BLAKE2b-256 048f9e4862f004f648d240039ebffda2441d230741c164efaa25038051b56c60

See more details on using hashes here.

File details

Details for the file nudenet-3.4.2-py3-none-any.whl.

File metadata

  • Download URL: nudenet-3.4.2-py3-none-any.whl
  • Upload date:
  • Size: 10.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for nudenet-3.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5937dbd84e5d8e5de038f08ffea5a1bb50a08475776bf2b4795914ce0eaf0331
MD5 3b385d868192938c1225d570b670b04e
BLAKE2b-256 1cee1aa02d44ba958cc77e16ff1e41a0aac5e721037db7bf62b9c9d124917f87

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page