天天看點

黃圖識别-open nsfw

大楷簡介:

open nsfw是一款開源的黃圖識别的模型。對的,隻是模型。并且有有python的代碼作為預測圖檔是否黃圖。

https://github.com/yahoo/open_nsfw 這裡網址。

open nsfw是雅虎開源項目caffeonspark,使用深度學習訓練得到caffe模型。nsfw翻譯為不可在工作中看的圖檔。主要是針對黃圖的,恐怖,血腥圖檔不能識别。

1 快速開始

這個步驟來自原github的原文,是使用docker來使用的。docker自己安裝好,很好安裝的。docker簡單來說是把環境打包成一個鏡像,我們可以通過下載下傳鏡像來運作打包的程式等。這是我的了解,因為以前沒接觸過docker。docker的好處就是,不用自己配置複雜的環境。

#從url下載下傳docker命名問caffe:cpu
docker build -t caffe:cpu https://raw.githubusercontent.com/BVLC/caffe/master/docker/standalone/cpu/Dockerfile

#檢測caffe的版本,這裡可以看到docker run caffe:cpu 這個語句就是docker的運作語句,後面可以更指令,就和linux其他指令一樣
docker run caffe:cpu caffe --version

#運作模型
cd open_nsfw
docker run --volume=$(pwd):/workspace caffe:cpu \
python ./classify_nsfw.py \
--model_def nsfw_model/deploy.prototxt \
--pretrained_model nsfw_model/resnet_50_1by2_nsfw.caffemodel \
test_image.jpg
NSFW score:   
           

docker我是沒有成功,原因是docker build的後面的url不可用。

在說下,nsfw score的分,官網說的很明确,0.8以上基本都是黃圖,0.2以下基本都是非黃圖,在此之間都可能是黃圖,這可以給黃圖分級别。

2在ubuntu搭建open nsfw的環境

這裡主要是caffe的安裝,參考http://caffe.berkeleyvision.org/installation.html官網

前提條件,系統ubuntu16 ,caffe就是官網下的最新版

我這裡安裝目錄統一為/home/wangqi/

1安裝caffe

1安裝依賴

這個指令是更新一下apt-get

sudo apt-get update

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler

sudo apt-get install –no-install-recommends libboost-all-dev

sudo apt-get install libatlas-base-dev

sudo apt-get install libhdf5-serial-dev

2安裝python與pip

sudo apt-get install python-dev

sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

安裝pip

export PATH=”$PATH:/usr/local/bin/python

sudo apt install python-pip

3配置caffe

git clone https://github.com/BVLC/caffe.git

如果沒有git,還需要安裝git:

apt-get install git

進入caffe目錄的python目錄,看自己caffe下載下傳在哪裡的

然後在運作,通過pip安裝依賴包

cd /home/wangqi/caffe/python

for req in (catrequirements.txt);dopipinstall req; done

在進入caffe的主目錄,修改編譯的配置檔案

cp Makefile.config.example Makefile.config

因為是虛拟機,這裡cpu 模式,是以需要吧CPU_ONLY:=1前面的注釋去掉

并修改配置路徑

CPU_ONLY := 1

INCLUDE_DIRS := (PYTHONINCLUDE)/usr/local/include/usr/include/hdf5/serialLIBRARYDIRS:= (PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

黃圖識别-open nsfw
黃圖識别-open nsfw

配置好之後以此輸入如下指令,但是在make pycaffe的時候會報錯,解決方法移步解決錯誤解決2

make pycaffe

make all

make test

make runtest

make預設是單核編譯,如果想加快速度,也有資源的話請加上-j4

make -j4

安裝錯誤,重新安裝的時候,一定要make clean清理

4之後配置python caffe,這裡是caffe的安裝目錄下python目錄哈

export PYTHONPATH=/home/wangqi/caffe/python:$PYTHONPATH

這一部相當于是把caffe放入pathon的path,這樣在python中才能使用import caffe。如果沒有報錯如下:

黃圖識别-open nsfw

5驗證

輸入python指令,然後在指令行輸入inport caffe,如果能引用沒有報錯,說明caffe已經安裝好。

黃圖識别-open nsfw

6安裝open nsfw

git方式下載下傳open nsfw

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

cd open_nsfw

我這裡在open_nsfw建立一個pic目錄,通過rz上傳了幾張圖檔進入,然後在open_nsfw的安裝目錄執行一下指令。

比如圖檔-原圖下面有一點點露點的,不敢發,就截圖了。

黃圖識别-open nsfw

python ./classify_nsfw.py \

–model_def nsfw_model/deploy.prototxt \

–pretrained_model nsfw_model/resnet_50_1by2_nsfw.caffemodel \

./pic/h9.jpg

“`

計算結果如下:

黃圖識别-open nsfw

來一張正常點的圖

黃圖識别-open nsfw

得分為:

黃圖識别-open nsfw

總的來說,識别能力還是挺高的,一些擦邊球都可以識别。有些漫畫識别能力不太好,有一些内涵漫畫識别能力不強,比如圖檔中隻有4條腿這種。

3錯誤整理

錯誤解決2

配置caffe的python環境時make pycaffe提示fatal error: numpy/arrayobject.h No such file or directory解決方法

重裝numpy:

sudo pip uninstall numpy

sudo pip install numpy

是沒有用的。。。

解決的辦法就是:

sudo apt-get install python-numpy

這裡沒有顯示安裝cuda,BLAS等。

還有就是centos裡面安裝caffe巨難裝,特别惱火。下次目标為在centos安裝成功caffe,陸續部署caffeonspark,把open nsfw做成接口。

繼續閱讀