目錄
背景:
由於pavement-crack-detection增加了caffe的layer層,所以不能直接使用官方caffe cpu鏡像。所以要使用它提供的代碼重新編譯caffe。
代碼地址:
https://github.com/fyangneil/pavement-crack-detection
鏡像製作:
本鏡像基於caffe官方鏡像製作。
- 拉取 官方鏡像:
docker pull bvlc/caffe:cpu
- 運行一個容器:
docker run -tdi --name=bvlccpu1 -v /home/ps/NewDisk1/HIT_workspace/lxc/qiang/dockerworkpace/workir/:/workir/ bvlc/caffe:cpu
- 安裝vim:
apt-get update
apt-get install vim
- 安裝openblas,官方鏡像沒有安裝openblas。
apt install liblapack-dev liblapack3 libopenblas-base libopenblas-dev
- 拉取代碼
git clone https://github.com/fyangneil/pavement-crack-detection.git
- 修改Makefile.config,取消CPU_ONLY 和OPENCV_VERSION 前面的註釋:
< CPU_ONLY := 1
---
> # CPU_ONLY := 1
< OPENCV_VERSION := 3
---
> # OPENCV_VERSION := 3
- 修改src/caffe/layers/sigmoid_cross_entropy_loss_layer.cpp:
In src/caffe/layers/sigmoid_cross_entropy_loss_layer.cpp try removing lines:
#ifdef CPU_ONLY STUB_GPU_BACKWARD(SigmoidCrossEntropyWeightedLossLayer, Backward); #endif
it may helps. #把這一行註釋掉
- 編譯caffe
make -j8
make pycaffe
- 修改:examples/fphb/solve_fphb_crack.py,修改成使用cpu執行
caffe.set_mode_gpu()修改爲caffe.set_mode_cpu()
caffe.set_device(3) 註釋掉
- 安裝:參考train步驟準備數據集
https://github.com/fyangneil/pavement-crack-detection#evaluate-result
上面的步驟鏡像已經制作完成,鏡像上傳到了阿里雲。
拉取鏡像:
docker pull registry.cn-hangzhou.aliyuncs.com/myrepo_lq/mycaffe:cpuv1
使用鏡像:
- 啓動一個容器
docker run -tdi --name=mycaffecpu1 mycaffe:cpuv1
- pavment源代碼目錄在/opt下(pavment可以放到任意目錄)
/opt/cpu_pavement-crack-detection
- 按照train步驟準備數據集(data目錄和5stage-vgg.caffemodel)後就可以運行
https://github.com/fyangneil/pavement-crack-detection#evaluate-result