用不可描述的圖片做可以描述的事情
用不可描述的圖片做可以描述的事情
寫在前面:不要找我要訓練資料,我是遵紀守法的好公民,訓練資料已經刪除。
幾天前看到 GitHub 上用於 黃圖鑑別的資料 , 就 down 回來做了個黃圖鑑別的模型,現模型已開源: nsfw 。線上demo
資料
訓練資料共五個類別:
porn - pornography images hentai - hentai images, but also includes pornographic drawings sexy - sexually explicit images, but not pornography. Think nude photos, playboy, bikini, beach volleyball, etc. neutral - safe for work neutral images of everyday things and people drawings - safe for work drawings (including anime)
訓練資料的數量如下:
drawing: 18251 hentai: 42649 netural: 44677 porn: 108114 sexy: 17253
使用
可以直接下載程式碼和訓練好的模型來用 下載程式碼和模型
git clone https://github.com/rockyzhengwu/nsfw.git
訓練好的模型在 /data/
目錄下。
cd nsfw python nsfw_predict.py /tmp/test/test.jpeg
輸出結果:
{'class': 'sexy', 'probability': {'drawings': 0.008320281, 'hentai': 0.0011919827, 'neutral': 0.13077603, 'porn': 0.13146976, 'sexy': 0.72824186}}
class
: 圖片所屬列表 probability
: 各類別所屬的概率得分
也可以使用 Tensorflow Serving 部署,詳情可以檢視 nsfw
模型
模型部分採用 Resnet ,主要參考了 Tensorflow 官方的程式碼 做了少許修改。詳情見 resnet
目錄下。 嘗試了微調和訓練一個相對簡單的新模型,微調的效果並不好,反而速度會慢很多。我想是因為這些圖片和ImageNet 資料集相差太大的緣故。最終釋出的模型使用Resnet-32, 準確率 90% 。
如有建議可郵件: [email protected]