You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
赵文文 a504e74169 新增nsfw模型快速下载地址 5 years ago
.github Update FUNDING.yml 5 years ago
.idea 1.3.6 5 years ago
app 修复远端仓库无法正常依赖的问题,升级到1.3.9 5 years ago
gradle/wrapper 更新demo 5 years ago
img 更新说明文档 5 years ago
nsfw 修复远端仓库无法正常依赖的问题,升级到1.3.9 5 years ago
nsfw_initializer 修复远端仓库无法正常依赖的问题,升级到1.3.9 5 years ago
.gitattributes Update .gitattributes 6 years ago
.gitignore Match GitHub usage protocol 6 years ago
LICENSE 修复远端仓库无法正常依赖的问题,升级到1.3.9 5 years ago
README.md 新增nsfw模型快速下载地址 5 years ago
README_EN.md 新增nsfw模型快速下载地址 5 years ago
build.gradle 修复远端仓库无法正常依赖的问题,升级到1.3.9 5 years ago
gradle.properties 优化模型支持GPU加速 5 years ago
gradlew 重构库,升级到1.3.0 5 years ago
gradlew.bat first commit. 6 years ago
settings.gradle 1.3.6 5 years ago

README.md

open_nsfw_android

Download Plugin on redmine.org

English Doc

色情图片离线识别,基于TensorFlow实现。识别只需20ms,可断网测试,成功率99%,调用只要一行代码,从雅虎的开源项目open_nsfw移植,该模型文件可用于iOS、java、C++等平台

iOS请参考:issues13

Python参考:NSFW-PythonPython-TensorflowLite-ApiPython-Tensorflow-Api

Java参考:Tensorflow-Api

C++参考:TensorflowLite-Api

JavaScript参考JS相关文档

其中Python、C++均有两种数据喂入的方式,可根据需求选择pb模型或tfLite文件,详细请参考上面的链接.Java的目前只能加载pb模型。其他的平台可自行百度

本项目移除测试图片,请下载Demo后自行配图测试

测试图片

图片

开始使用(从1.3.9版本开始,依赖从JetPack移动到Maven仓库,可直接在项目中依赖,无需添加jetpack支持)

  • 开启tflite文件支持
  android {
        aaptOptions {
            noCompress "tflite"
        }
  }
  • 引入依赖(lastVersion更换为最新版本,最新版本为右边图片中的数字👉 Download )
    //可选 快速初始化扫描器,可免去初始化代码
    implementation 'com.zwy.nsfw:nsfw_initializer:lastVersion'
    //必须 扫描器核心文件
    implementation 'com.zwy.nsfw:nsfw:lastVersion'
    //必须 tensorflow 支持库
    implementation 'org.tensorflow:tensorflow-lite:2.1.0'
    implementation 'org.tensorflow:tensorflow-lite-gpu:2.1.0'
  • 初始化

模型下载

    //方式一,将模型文件放在Assets根目录下并命名为nsfw.tflite
    NSFWHelper.init(context = this@Application)

    //方式二,适用于产品对apk大小控制严格,无法将模型文件直接放在apk中,可在用户打开Apk后台静默下载后指定模型路径进行初始化
    NSFWHelper.init(modelPath = "模型文件存放路径")

    //方式三,将模型文件放在Assets根目录下并命名为nsfw.tflite,引用该库可免去初始化代码
    implementation 'com.zwy.nsfw:nsfw_initializer:lastVersion'

  • 使用:
    //val mNSFWScoreBean:NSFWScoreBean =  File.getNSFWScore()
    //val mNSFWScoreBean:NSFWScoreBean =  Bitmap.getNSFWScore()
    //val mNSFWScoreBean:NSFWScoreBean = NSFWHelper.getNSFWScore(bitmap)

    mNSFWScoreBean.sfw   ... 非涉黄数值 数值越大约安全
    mNSFWScoreBean.nsfw   ... 涉黄数值  数值越大约危险
    mNSFWScoreBean.timeConsumingToLoadData  ... 装载数据耗时  单位ms
    mNSFWScoreBean.timeConsumingToScanData  ... 扫描图片耗时  单位ms

安卓手机直接点我安装

扫码下载

图片