Fast RCNN筆記1:TFFRCNN demo 調試 (這個版本比較久沒更新換endernewton繼續)


實現TFFRCNN demo過程中遇到的問題記錄(github地址:https://github.com/CharlesShang/TFFRCNN):

參考:1.https://blog.csdn.net/ssmixi/article/details/75147532

   2.https://blog.csdn.net/zichen7055/article/details/82316553

   3.https://blog.csdn.net/m_z_g_y/article/details/81203943

1.由於TFFRCNN這份代碼是python2.7 版本,所以要么全用Python2解釋器,要么用Python自帶工具2to3.py全部轉換為Python3版本

python 2to3.py -w 路徑(最好全部英文)

2.將fastrcnn目錄下demo copy到TFFRCNN目錄下,並在根目錄下建立model文件夾,將下載的VGGnet_fast_rcnn_iter_150000.ckpt復制到里面,

基本目錄架構如下

 

3.關於yaml moduleimport error,pip安裝pyyaml即可:

sudo pip3 install pyyaml -i http://pypi.mirrors.ustc.edu.cn/simple --trusted-host pypi.mirrors.ustc.edu.cn

4.cd lib路徑根據自己tensorflow版本和gcc修改make.sh文件,make 一下,如果后續出錯可以用

find lib -name "*.so" -delete

 

刪除編譯后的文件。(修改后文件如下:)

#!/usr/bin/env bash
TF_LIB=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_lib())')
TF_INC=$(python -c 'import tensorflow as tf; print(tf.sysconfig.get_include())')
echo $TF_INC

CUDA_PATH=/usr/local/cuda/

cd roi_pooling_layer

nvcc -std=c++11 -c -o roi_pooling_op.cu.o roi_pooling_op_gpu.cu.cc \
    -I $TF_INC -D GOOGLE_CUDA=1 -x cu -Xcompiler -fPIC -arch=sm_52

## if you install tf using already-built binary, or gcc version 4.x, uncomment the two lines below
#g++ -std=c++11 -shared -D_GLIBCXX_USE_CXX11_ABI=0 -o roi_pooling.so roi_pooling_op.cc \
#    roi_pooling_op.cu.o -I $TF_INC -fPIC -lcudart -L $CUDA_PATH/lib64

# for gcc5-built tf
g++ -std=c++11 -shared -o roi_pooling.so roi_pooling_op.cc -D_GLIBCXX_USE_CXX11_ABI=0 \
    roi_pooling_op.cu.o -I $TF_INC -L $TF_LIB -ltensorflow_framework -D GOOGLE_CUDA=1 \
    -fPIC $CXXFLAGS -lcudart -L $CUDA_PATH/lib64

cd ..

# add building psroi_pooling layer
cd psroi_pooling_layer
nvcc -std=c++11 -c -o psroi_pooling_op.cu.o psroi_pooling_op_gpu.cu.cc \
    -I $TF_INC -D GOOGLE_CUDA=1 -x cu -Xcompiler -fPIC -arch=sm_52

g++ -std=c++11 -shared -o psroi_pooling.so psroi_pooling_op.cc -D_GLIBCXX_USE_CXX11_ABI=0\
    psroi_pooling_op.cu.o -I $TF_INC -L $TF_LIB -ltensorflow_framework -D GOOGLE_CUDA=1 \
    -fPIC $CXXFLAGS -lcudart -L $CUDA_PATH/lib64

## if you install tf using already-built binary, or gcc version 4.x, uncomment the two lines below
#g++ -std=c++11 -shared -D_GLIBCXX_USE_CXX11_ABI=0 -o psroi_pooling.so psroi_pooling_op.cc \
#    psroi_pooling_op.cu.o -I $TF_INC -fPIC -lcudart -L $CUDA_PATH/lib64

cd ..

4.在根目錄下執行:

python demo.py --model model/VGGnet_fast_rcnn_iter_150000.ckpt

如果出現keyerror:b'Test',解決鏈接:https://github.com/CharlesShang/TFFRCNN/issues/14

需要修改rpn_msr下proposal_layer_tf.py 第70行,加上

cfg_key = cfg_key.decode("utf-8")

修改后如下:

5.運行后發現無結果,需要保存結果,修改demo.py

# for im_name in im_names:
    #     print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
    #     print('Demo for {:s}'.format(im_name))
    #     demo(sess, net, im_name)
    for im_name in im_names:
        print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
        print('Demo for {:s}'.format(im_name))
        demo(sess, net, im_name)
        plt.savefig(im_name)

    plt.show()

6.demo測試運行結果如下:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM