最近開発の案件が立て込んでいて趣味の開発ができていませんでした。ひさびさの更新です。
今回は去年開発用に買ったゲーミングPCを使ってAIを動かしてみようと思います。
↑半導体不足で値上がりしてますね… NVIDIA GeForce RTX 3070が搭載されています。
一応カメラです。
Openposeっていう姿勢推定をやっていきます。
これはPCにwebカメラをつないで取り込んだ画像から姿勢を検知して線(リンク)を重ねていくというものです。
こんな感じです。
まずはpytorchをインストールしていきます。
通常は
https://pytorch.org/get-started/locally/ からスペックにあわせてインストールしていくんですが、今回は pip install torch===1.7.1+cu110 torchvision===0.8.2+cu110 torchaudio===0.7.2 -f https://download.pytorch.org/whl/torch_stable.html でやりました。
オープンソースのAIを使うとよくあるんですが、バージョンの組み合わせが悪いと全然動かないので注意してください。ちなみにpythonは3.9.12でやってます。
続いてopen-poseです。
git clone https://github.com/Hzzone/pytorch-openpose.git
cd pytorch-openpose
pip install -r requirements.txt
準備としてモデルは
https://www.dropbox.com/sh/7xbup2qsn7vvjxo/AABWFksdlgOMXR_r5v3RwKRYa?dl=0 にあるので
body_pose_model.pthとhand_pose_model.pthをダウンロードしmodelフォルダへ格納してください。
demo_camera.pyを実行するとOpencvを使ってウェブカメラからキャプチャを取るのですが、
OMP: Error #15: Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the program. That is dangerous, since it can degrade performance or cause incorrect results. The best thing to do is to ensure that only a single OpenMP runtime is linked into the process, e.g. by avoiding static linking of the OpenMP runtime in any library. As an unsafe, unsupported, undocumented workaround you can set the environment variable KMP_DUPLICATE_LIB_OK=TRUE to allow the program to continue to execute, but that may cause crashes or silently produce incorrect results. For more information, please see http://www.intel.com/software/products/support/.
下記の様なエラーが出たらdemo_camera.pyの6行目にこれを足してください。
import os
os.environ['KMP_DUPLICATE_LIB_OK']='True'
またもしNo module named 'torch.ao.quantization'というエラーがでたら、 from torch.ao.quantization from torch.quantizationというライブラリのインポートを from torch.quantizationへ書き換えてください。※数ファイルあった様な…
Torch device: NVIDIA GeForce RTX 3070 Laptop GPUとグラボの型番が出たらOKですが、
かなりもっさりしました。グラボがあってもしばらくキャプチャ画像がでてきません…
CPUだけじゃ動かないかもしれないですね…
PCにグラボが搭載されていましたがマイニングぐらいしかしてませんでした。
今後はAIもいろいろチャレンジしていきたいなと思ってます!!