---
title: '小小树莓派鉴黄初体验 OpenNSFW on RPi'
pubDate: 2018-05-20
tags:
  - 'caffe'
description: '小小树莓派鉴黄初体验 OpenNSFW on RPi'
---

**_OpenNSFW是雅虎数年前已经训练好的一个鉴黄模型（是的只是模型而已，素材请自行解决）。既然已经在小树莓派上搭建好了Caffe，那么何不试试基于Caffe的鉴黄模型？_**

## Caffe环境

关于树莓派（64位的，32位可参考）Caffe环境的搭建，[之前的一遍文章](https://www.jianyujianyu.com/raspberry-pi-3bplus-64-ubuntu-caffe/)已经谈过，可以去参考一下。

另外，需要把Caffe的Python接口也编译了，即pycaffe环境：

```
# 在caffe目录下执行
make pycaffe -j4
```

然后记得往PYTHONPATH里面添加此库：

```
vim ~/.zshrc
vim ~/.bashrc
export PYTHONPATH=/path/to/caffe/python:$PYTHONPATH
```

检验pycaffe库是否配置正确：在python中import一下，如下即可。

![](https://source.mkshell.com/15268225142053.jpg)

如果在编译pycaffe、添加了PYTHONPATH后，在import时出现`No module named xxxx`的情况，原因是python库还没装好，方法：

1. 在`caffe/python`目录下执行`pip install -r requirements.txt`
2. 使用apt安装确实的python包

## OpenNSFW

找个地方克隆下这个关键的模型，由于该模型略大，因此git-clone还是会挺久的，有障碍的话可以直接下载zip包。

```
git clone https://github.com/yahoo/open_nsfw.git
```

克隆或者解压后进入目录，然后准备一下素材图片：

![](https://source.mkshell.com/15268331210324.jpg)

然后执行命令：

```
python ./classify_nsfw.py --model_def nsfw_model/deploy.prototxt --pretrained_model nsfw_model/resnet_50_1by2_nsfw.caffemodel INPUT_IMAGE_PATH
```

把其中的`INPUT_IMAGE_PATH`改成图片路径即可，比如此处换成`test1.png`即可，就会得到该图片涉黄的概率：

![test1](https://source.mkshell.com/test1.png)

![](https://source.mkshell.com/15268332814413.jpg)

从结果中看出，XX得分是0.6067，个人可以将它理解为XX概率，即60%的XX概率。

再举个例子（抱歉，重码！）：

![test2](https://source.mkshell.com/test2.png)

![](https://source.mkshell.com/15268333550838.jpg)

幸好重码，不然涉黄分数都高达0.8488了。。

再来举个反例试试吧（这次就不用打码了）：

![test3](https://source.mkshell.com/test3.png)

得分：

![](https://source.mkshell.com/15268336242410.jpg)

小到不敢相信，诚不欺我！！

## 初体验总结

试了一下，图像检测的时候资源耗用也没有想象中那么高，似乎也就几百M内存，以及一点点计算资源，连树莓派这样的小机器都能在数秒内检测完。相信结合其他东西会更好玩。

_先这样吧_

若有错误之处请指出，更多地关注[煎鱼](http://www.jianyujianyu.com)。
