運行openpose測試代碼(demo/picture_demo.py)時出現報錯:
File "/xxx/pytorch_Realtime_Multi-Person_Pose_Estimation/lib/utils/paf_to_pose.py", line 7, in <module>
from lib.pafprocess import pafprocess
ImportError: cannot import name 'pafprocess'
解決過程:
1)查看lib\pafprocess中的文件,發現是c++代碼,需要先對其進行編譯。
2)編譯c++代碼,在終端執行:
cd lib/pafprocess
sh make.sh
報錯:
需要安裝swig:【https://blog.csdn.net/shanglianlm/article/details/88797529】
a)下載pcre-8.41:https://blog.csdn.net/shanglianlm/article/details/88797529
下載swig:https://sourceforge.net/projects/swig/files/swig/
b)安裝pcre
tar -zxvf pcre-8.41.tar.gz
chmod -R 777 pcre-8.41
cd pcre-8.41/
./configure
make
sudo make install
c)安裝swig到默認目錄
tar -xzvf swig-4.0.1.tar.gz
cd swig-4.0.1
./configure
make
sudo make install
d)查看swig版本
swig -version
報錯:swig: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
執行:ldd $(which swig)
手動添加鏈接:ln -s /usr/local/lib/libpcre.so.1 /lib
完畢後再次運行:swig -version
3)再次在終端執行:
cd lib/pafprocess
sh make.sh
即可編譯成功,發現lib\pafprocess路徑下多出了pafprocess.py、_pafprocess.cpython-36m-x86_64-linux-gnu.so等文件。
4)運行demo/picture_demo.py
報錯:
File "/xxx/BehaviorDetection/pytorch_Realtime_Multi-Person_Pose_Estimation/lib/pafprocess/pafprocess.py", line 13, in <module>
from . import _pafprocess
ImportError: cannot import name '_pafprocess'
解決:將/xxx/BehaviorDetection/pytorch_Realtime_Multi-Person_Pose_Estimation/lib/pafprocess/目錄下的_pafprocess.cpython-36m-x86_64-linux-gnu.so名字改爲:_pafprocess.so即可成功。