インストール
iinfer はクライアントとサーバーの両方の環境を構築する必要があります。
- もちろん1台のPCで両方の環境を構築することも可能です。
なおサーバー環境の動作確認状況は下記のとおりです。
Ubuntu(Host) |
Ubuntu(Docker) |
Windows(Host) |
Windows(WSL2+Docker) |
|
CPU |
確認済 |
確認済 |
確認済 |
確認済 |
GPU |
<多分動く> |
<多分動く> |
確認済 |
確認済 |
クライアント環境構築
まず最初に iinfer をインストールします。
iinfer はPython3.8以上で動作します。
これがクライアントとして動作します。
1.iinfer のインストール
Windowsの場合
python3 -m venv .venv .venv\\Scripts\\activate pip install --upgrade pip pip install iinfer
Ubuntuの場合
python3 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install iinfer eval "$(register-python-argcomplete iinfer)"
サーバー(Ubuntu)環境構築する場合
iinfer を使用して各種AIフレームワークをインストールしたDockerイメージを構築することが出来ます。
物体検知を実行するための手順を解説します。
1.Dockerイメージを構築
- iinfer -m install -c server <Option> コマンドで推論サーバーを構築できます。
--install_mmdet オプションは mmdetection のみをDockerイメージに含めるための指定です。
--install_mmdet オプションを使用しない場合は、デフォルトのフレームワークがインストールされます。 コマンドリファレンス(installモード) を参照してください。
--install_tag mmdet は、作成するイメージ名やコンテナ名、 iinfer 推論サーバーの名前に使用されるタグ名です。
$ iinfer -m install -c server --install_mmdet --install_tag mmdet
上記のコマンドを実行すると、以下のようなDockerイメージが作成されます。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hamacom/iinfer 0.5.6_mmdet 4a501392d33e About a minute ago 9.54GB ubuntu/redis latest 4603cee0d86e About a minute ago 110MB
また、実行時のディレクトリに docker-compose.yml が作成されますので、下記のコマンドで推論サーバーを起動できます。
$ docker-compose up -d Creating network "ubuntu_backend" with driver "bridge" Creating iinfer_server_mmdet ... done Creating redis ... done
続けて顔認識の推論サーバーを下記のコマンドで構築してみます。
$ iinfer -m install -c server --install_insightface --install_tag face
作成されたDockerイメージは以下のようになります。
$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE hamacom/iinfer 0.5.6_mmdet 4a501392d33e 8 minutes ago 9.54GB hamacom/iinfer 0.5.6_face 43fcfe20c33f About a minute ago 1.91GB ubuntu/redis latest 4603cee0d86e 8 minutes ago 110MB
推論サーバーを再起動させます。
$ docker-compose down Stopping redis ... done Stopping iinfer_server_mmdet ... done Removing redis ... done Removing iinfer_server_mmdet ... done Removing network ubuntu_backend $ $ docker-compose up -d Creating network "ubuntu_backend" with driver "bridge" Creating iinfer_server_mmdet ... done Creating iinfer_server_face ... done Creating redis ... done
iinfer -m server -c list -f コマンドで推論サーバーの一覧を表示できます。
$ iinfer -m server -c list -f | svname | recive_cnt | sccess_cnt | warn_cnt | error_cnt | |-------------------|--------------|--------------|------------|-------------| | server_mmdet | 0 | 0 | 0 | 0 | | server_face | 0 | 0 | 0 | 0 | 0.020 seconds.
2.推論サーバーに接続する
iinfer -m client -c deploy_list <Option> コマンドで推論サーバー接続を試してみます。
--svname server_mmdet コマンドで推論サーバー名を指定しています。
$ iinfer -m client -c deploy_list --svname server_mmdet
サーバー(WSL2+Docker)環境構築する場合
Windows環境ではWSL2を使用してUbuntu環境を構築することが出来ます。
以下の手順で推論サーバーを構築してみます。
Ubuntuイメージインストール(cmdプロンプトで実行 : ubuntuユーザーを作成する)
wsl --install -d Ubuntu-20.04
Ubuntu初期設定(bash上で実行)
cd /etc/apt sudo sed -i.bak -e "s/http:\/\/archive\.ubuntu\.com/http:\/\/jp\.archive\.ubuntu\.com/g" sources.list sudo apt update sudo apt install -y language-pack-ja manpages-ja manpages-ja-dev sudo update-locale LANG=ja_JP.UTF-8 sudo apt install -y linux-tools-5.4.0-77-generic hwdata sudo update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/5.4.0-77-generic/usbip 20
Dockerインストール(bash上で実行)
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common cd ~/ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable" sudo apt update apt-cache policy docker-ce sudo apt install -y docker-ce docker-compose sudo usermod -aG docker ubuntu exit
Dockerインストール済みWSL2イメージ生成(cmdプロンプトで実行)
wsl --shutdown wsl --export Ubuntu-20.04 Ubuntu_wsl2_docker-20.04.tar wsl --unregister Ubuntu-20.04 mkdir Ubuntu_docker-20.04 wsl --import Ubuntu_docker-20.04 Ubuntu_docker-20.04 Ubuntu_wsl2_docker-20.04.tar --version 2
Dockerインストール済みWSL2イメージ生成(cmdプロンプトで実行)
wsl -d Ubuntu_docker-20.04 -u ubuntu
サーバー(GPU)環境構築する場合
サーバー環境にGPUを搭載した場合、GPU環境を構築することが出来ます。
なおこの手順はNVIDIA製のGPUを使用する場合の手順です。
1.CUDA + cuDNNのインストール
- Windowsの場合 Build Tools for Visual Studio 2022 をインストールします。
- インストールするモジュールは以下の通りです。環境によって必要なものが異なる場合があります。
C++ 2022 再配布可能パッケージの更新プログラム
C++ Build Tools コア機能
MSVC v143 - VS 2022 C++ x64/x86 ビルドツール
Windows ユニバーサル CRT
Windows 10 SDK
Windows用 C++ CMakeツール
CUDA対応GPUであるかどうかを こちら で確認します。
下記のコマンドでGPUドライバとCUDA Toolkitのバージョンを確認します。
$ nvidia-smi $ /usr/local/cuda/bin/nvcc --version
- cuDNNをインストールします。
Windowsの場合、zipファイルなのでファイルを解凍します。
Windowsの場合、解凍したファイルには、 bin 、 include 、 lib の3つのフォルダがあります。
Windowsの場合、3つのフォルダをCUDA Toolkitのインストールディレクトリ( CUDA_PATH` に設定されていたパス)の中にコピーします。
Windowsの場合、bin フォルダの中に cudnn64_XXX.dll ( XXX はバージョン)ファイルがあることを確認して、次のコマンドでエラーにならないことを確認します。
where cudnn64_XXX.dll
- Windwosの場合 Could not locate zlibwapi.dll. Please make sure it is in your library path! というエラーが出る場合は、以下の手順を行ってください。
C:Program FilesNVIDIA CorporationNsight System 2022.4.2host-windows-x64` フォルダ又は類似のフォルダにある `zlib.dll ファイルを %CUDA_PATH%bin フォルダにコピーします。
コピーした zlib.dll ファイルを zlibwapi.dll に名前を変更します。
Dockerを使用する( iinfer -m install -c server コマンドを使用する )場合、docker-composeのバージョンを1.28以降にします。
docker-composeのバージョンを確認します。
docker-compose --version
docker-composeのバージョンが1.28以降でない場合、以下のコマンドでバージョンをアップデートします。
sudo rm -rf /usr/bin/docker-compose sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Dockerを使用する( iinfer -m install -c server コマンドを使用する )場合、NVIDIA Container Toolkitをインストールします。
distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get update sudo apt-get install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker
ここでUbuntuの再起動を行うこと。
2.GPU対応版のサーバーインストール
下記のコマンドでインストールできます。
$ iinfer -m install -c server --install_use_gpu
3.GPU対応版のフレームワークインストール
Dockerを使用せずに、GPU対応版のフレームワークをインストールする場合、下記のコマンドでインストールできます。
$ iinfer -m install -c mmdet --install_use_gpu $ iinfer -m install -c mmpretrain --install_use_gpu $ iinfer -m install -c mmcls --install_use_gpu $ iinfer -m install -c insightface --install_use_gpu $ iinfer -m install -c onnx --install_use_gpu