推荐:TensorFlow实现的Yahoo开源NSFW模型
项目介绍
本项目是基于TensorFlow重写的Yahoo开源NSFW分类器。NSFW(Not Safe For Work)分类器主要用于检测图像是否包含不适宜在工作场合展示的内容,如色情、暴力等。通过将原始的Caffe模型权重转换为TensorFlow格式,本项目提供了一个高效、易用的图像分类工具。
项目技术分析
技术栈
- TensorFlow 1.x: 项目使用TensorFlow 1.x版本进行模型实现和推理。
- Python 3.6: 代码兼容Python 3.6版本。
- Caffe to TensorFlow: 通过Caffe to TensorFlow工具,将原始的Caffe模型权重转换为TensorFlow格式。
模型实现
模型实现位于model.py
文件中,用户可以通过classify_nsfw.py
脚本对图像进行分类。模型支持两种图像加载机制:
- Yahoo: 复现Yahoo原始的图像加载和预处理流程,确保与原始实现结果一致。
- TensorFlow: 完全使用TensorFlow进行图像加载,减少外部依赖。
输入类型
模型支持两种输入类型:
- Tensor: 使用浮点张量作为输入,形状为
[None, 224, 224, 3]
。 - Base64 JPEG: 使用Base64编码的JPEG字符串作为输入,形状为
[None, ]
。
项目及技术应用场景
应用场景
- 内容审核: 适用于社交媒体、论坛、博客等平台,自动检测并过滤不适宜的内容。
- 企业内部管理: 帮助企业监控内部通信和共享内容,确保工作环境的安全和合规。
- 在线教育: 过滤不适宜的图像内容,保护学生免受不良信息的影响。
技术应用
- 云端部署: 通过
export_savedmodel.py
脚本,可以将模型导出为SavedModel
格式,便于在Google Cloud ML Engine或TensorFlow Serving上部署。 - 移动端部署: 使用
export_tflite.py
脚本,可以将模型导出为TFLite格式,便于在移动设备或IoT设备上进行推理。 - 图优化:
export_graph.py
脚本可以导出优化后的TensorFlow图和检查点,适用于Android、iOS等平台的部署。
项目特点
- 跨平台兼容: 支持TensorFlow 1.x和Python 3.6,确保广泛的兼容性。
- 灵活的图像加载机制: 提供两种图像加载机制,用户可以根据需求选择最合适的加载方式。
- 多种部署选项: 支持云端、移动端和IoT设备的部署,满足不同场景的需求。
- 高效推理: 通过优化后的TensorFlow图,提高推理速度和效率。
总结
本项目提供了一个高效、灵活的NSFW图像分类工具,适用于多种应用场景。无论是在内容审核、企业管理还是在线教育中,本项目都能帮助用户快速、准确地检测不适宜的内容。欢迎大家使用并贡献代码,共同完善这一开源项目!