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.
108 lines
3.7 KiB
108 lines
3.7 KiB
# open_nsfw_android
|
|
[](https://jitpack.io/#devzwy/open_nsfw_android) [](https://github.com/devzwy/open_nsfw_android) [](https://www.apache.org/licenses/LICENSE-2.0)
|
|
[](https://github.com/devzwy/open_nsfw_android) [](https://github.com/devzwy/KUtils) [](https://github.com/devzwy/open_nsfw_android) [](https://github.com/devzwy/open_nsfw_android) 
|
|
|
|
### 色情图片离线识别,基于TensorFlow实现。识别只需200ms,可断网测试,成功率99%,调用只要一行代码,从雅虎的开源项目open_nsfw移植,tflite(6M)为训练好的模型(已量化),该模型文件可用于iOS、java、C++等平台,Python使用生成的tfLite文件检测图片的速度远远快于使用原模型.
|
|
### 页面最底部有测试Demo和效果图片,请勿在公共场所打开。
|
|
|
|
### 使用
|
|
- Add it in your root build.gradle at the end of repositories:
|
|
```
|
|
allprojects {
|
|
repositories {
|
|
...
|
|
maven { url 'https://jitpack.io' }
|
|
}
|
|
}
|
|
```
|
|
|
|
- Add the dependency [](https://jitpack.io/#devzwy/open_nsfw_android)
|
|
|
|
```
|
|
dependencies {
|
|
//versionCode:上面小icon中最新版本号
|
|
implementation 'com.github.devzwy:open_nsfw_android:[versionCode]'
|
|
}
|
|
|
|
```
|
|
- 扫描时报如下错误
|
|
```
|
|
java.lang.NullPointerException: Attempt to invoke virtual method 'com.zwy.nsfw.api.NsfwBean com.zwy.nsfw.Classifier.run(android.graphics.Bitmap)' on a null object reference
|
|
```
|
|
__请添加__
|
|
```
|
|
android {
|
|
...
|
|
aaptOptions {
|
|
noCompress "tflite"
|
|
}
|
|
}
|
|
```
|
|
|
|
|
|
- 使用
|
|
|
|
```
|
|
val nsfwHelper = NSFWHelper.init(NSFWConfig(assets))
|
|
val nsfwBean = nsfwHelper?.scanBitmap(bitmap)!!
|
|
nsfwBean.sfw
|
|
nsfwBean.nsfw
|
|
if(nsfwBean.nsfw>0.3){
|
|
Log.e("NSFW","图片涉黄")
|
|
}
|
|
```
|
|
- kotlin可直接使用File.getNsfwScore(mAssetManager: AssetManager): NsfwBean 或 Bitmap.getNsfwScore(mAssetManager: AssetManager): NsfwBean 直接获取鉴定结果(NSFWHelper 1.2.9版本开始支持),比如:
|
|
|
|
```
|
|
val bitmap = BitmapFactory.decodeFile(path)
|
|
|
|
val nsfwScore = bitmap.getNsfwScore(assets)
|
|
|
|
if(nsfwBean.nsfw>0.3){
|
|
|
|
Log.e("NSFW","图片涉黄")
|
|
|
|
}
|
|
```
|
|
或
|
|
```
|
|
val file = File(lm.path)
|
|
|
|
val nsfwScore = file.getNsfwScore(assets)
|
|
|
|
if(nsfwBean.nsfw>0.3){
|
|
|
|
Log.e("NSFW","图片涉黄")
|
|
|
|
}
|
|
|
|
```
|
|
|
|
### [点我下载apk](https://fir.im/nsfw)
|
|
|
|
### 扫码下载
|
|
|
|

|
|
|
|
### Demo运行结果:
|
|
## 提示:下面的图片不要在公共场所打开!!!
|
|
|
|
## 提示:下面的图片不要在公共场所打开!!!
|
|
|
|
## 提示:下面的图片不要在公共场所打开!!!
|
|
|
|
## 提示:下面的图片不要在公共场所打开!!!
|
|
|
|
## 提示:下面的图片不要在公共场所打开!!!
|
|
|
|
## 提示:下面的图片不要在公共场所打开!!!
|
|
|
|
## 提示:下面的图片不要在公共场所打开!!!
|
|
|
|
## 提示:下面的图片不要在公共场所打开!!!
|
|
|
|
## 提示:下面的图片不要在公共场所打开!!!
|
|
|
|
|
|
|
|

|
|
|