Termnial上で conda create -n pose python=3.6 jupyter
(pose) % conda activate pose
(pose) % cd ${CONDA_PREFIX} (pose) % mkdir -p ./etc/conda/{,de}activate.d (pose) % touch ./etc/conda/*/{,de}activate.d/env_path.sh
${CONDA_PREFIX}/etc/conda/activate/env_path.sh |
|
${CONDA_PREFIX}/etc/conda/deactivate/env_path.sh |
|
(pose) % conda deactivate (base) % conda activate pose (pose) %上記の deactivate.d/env_path.sh は環境変数PATH_BACKが定義されていない場合も正しく動作するはずである。しかし、設定を間違えた場合は環境変数PATHがおかしくなるので、その場合は一旦shellも終了してから新しいshellを起動し、仮想環境poseに切り換えること。
(pose) % conda deactivate (base) % exit ← shellを終了する(PATH変数がおかしくなっているので) [新しいターミナルで] (base) % conda activate pose (pose) %ちなみに私の手元のMacではPath変数は次のように変化する。
(base) % conda activate pose2 (pose2) % echo $path /Users/nitta/anaconda3/envs/pose2/bin /usr/local/bin /usr/bin /bin /usr/sbin /sbin /Library/TeX/texbin /Library/Apple/usr/bin /Library/Frameworks/Mono.framework/Versions/Current/Commands /Users/nitta/anaconda3/envs/pose2/bin /opt/anaconda3/condabin /Users/nitta/bin (pose2) % conda deactivate (base) % echo $path /usr/local/bin /usr/bin /bin /usr/sbin /sbin /Library/TeX/texbin /Library/Apple/usr/bin /Library/Frameworks/Mono.framework/Versions/Current/Commands /Users/nitta/anaconda3/envs/pose2/bin /opt/anaconda3/condabin /Users/nitta/bin
(pose) % pip install tensorflow==1.5
(pose) % git clone https://www.github.com/ildoonet/tf-pose-estimation (pose) % cd tf-pose-estimation (pose) % pip install -r requirements.txt
(pose) % cd models/graph/cmu (pose) % bash download.sh (pose) % cd ../../..
(pose) % brew install swig (pose) % cd tf_pose/pafprocess (pose) % swig -python -c++ pafprocess.i && python setup.py build_ext --inplace (pose) % cd ../..
_pafprocess.cpython-36m-darwin.so が作成された。
[注意]もしも上記の path 再設定の定義をしていないと python3.8用ができて、あとでimportに失敗する。 もしかしたら、下記で python3の部分を pytho3.6 としておけばpython3.6用が生成されたかもしれないが、 上記の設定が正しいと思うのでこれ以上追求しない。
(pose) % brew install swig (pose) % cd tf_pose/pafprocess (pose) % swig -python -c++ pafprocess.i && python3 setup.py build_ext --inplace (pose) % cd ../..tf_pose/pafprocess/_pafprocess.cpython-38-darwin.so ができる。この38はpythonのバージョンではないか?それならばまずい。 python → 2.7.16 python3 → 3.8.5 python3.6 &raa; 3.6.10 conda でpythonの仮想環境を指定したときに、どれも 3.6 が見えるようになってもらいたい。
(pose) % pip install opencv-python==3.4.0.14
[注意] opencvは現在version 4.x だが、version 3.x である必要があるのでバージョンを指定してインストールする。インストールできるバージョンのチェック方法は以下の通り。
[インストール済みのパージョンを調べる] pip list | grep opencv-python pip show opencv-python [インストール可能なパージョンを調べる] pip install opencv-python==
[エラーへの対処方法] pip uninstall tensorflow pip install tensorflow==1.14
tf_pose/estimator.py で以下をコメントアウトする。 14行目 import 文 315-328行目 if文
diff -c estimator.org.py estimator.py |
|
(pose) % python run.py --model=mobilenet_thin --resize=432x368 --image=images/p1.jpgpython3.6でうごいていることに注意。 正常に動作した。