项目介绍:Private Detector
项目概述
Private Detector是Bumble公司开发的一个图像分类模型,专门用于识别不雅图像。该项目以开源的方式提供给公众,使得更广泛的社区能够使用和微调他们自己的Private Detector模型。用户可以下载预训练的模型,包括冻结模型和检查点,进行进一步的研究和开发。
模型设计
Private Detector模型基于EfficientNet-v2架构,并通过Bumble公司内部不雅图像数据集进行训练。用户可以在提供的压缩文件private_detector.zip
中找到保存的模型文件saved_model/
。这个模型的训练和设计信息可以在Bumble的白皮书中获取更多细节。
推断过程
项目提供了一个简单的推断示例文件inference.py
,用于帮助用户快速开始。该模型作为SavedModel提供,因而可以采用多种方式部署。在首次进行推断之前,用户需要在系统上安装Python和Conda,然后使用environment.yaml
文件来安装必要的包,接着通过命令行执行推断脚本。
推断的运行方法如下:
conda env create -f environment.yaml
conda activate private_detector
python3 inference.py \
--model saved_model/ \
--image_paths \
Yes_samples/1.jpg \
Yes_samples/2.jpg \
Yes_samples/3.jpg \
Yes_samples/4.jpg \
Yes_samples/5.jpg \
No_samples/1.jpg \
No_samples/2.jpg \
No_samples/3.jpg \
No_samples/4.jpg \
No_samples/5.jpg \
使用示例输出
推断结果以概率形式展示,表示模型对于输入图像是否为不雅内容的判断。例如:
Probability: 93.71% - Yes_samples/1.jpg
Probability: 9.76% - No_samples/1.jpg
服务部署
用户可以参考TensorFlow Serving的示例来进行服务部署。这允许模型作为服务运行,从而更好地集成到生产环境中。
额外训练
用户可以通过自己的数据对模型进行微调。微调过程中需要使用private_detector.zip
中的检查点文件。用户需要设置一个JSON文件,列出每个类的图像路径:
{
"Yes": {
"path": "/your/path/to/Yes.txt",
"label": 0
},
"No": {
"path": "/your/path/to/No.txt",
"label": 1
}
}
创建训练环境并开始再训练:
conda env create -f environment.yaml
conda activate private_detector
python3 ./train.py \
--train_json /your/path/to/train_classes.json \
--eval_json /your/path/to/eval_classes.json \
--checkpoint_dir saved_checkpoint/ \
--train_id retrained_private_detector
再训练的脚本提供了一系列参数可供调整,比如训练轮数、批量大小和学习率等,以适应不同的训练数据和需求。
综上,Private Detector项目通过开放源码使得不雅图像检测技术的应用变得更加广泛,同时支持用户个性化的调整和再训练,推动互联网环境的安全性提升,特别是为女性用户提供更友好的体验。