YOLOXとは
YOLOシリーズがたくさん出ている中、2021年7月に最新のYOLOXが出ました。
YOLOXに関する論文はこちら (現在プレプリントです。)
また、GitHubはこちら
YOLOは物体認識のアルゴリズムです。
リアルタイムに動かすことを前提としており、非常に動作が軽量であり(認識だけならスマホでも動かすことができます)、システムの応用性もあり、IoT装置にも多く取り入れられています。
物体認識アルゴリズムと聞くと少し難しそうですが、簡単に想像できるのは、カメラの顔や目の自動フォーカスです。
ここが顔ですよと視覚が現れると思いますが、それが他の物体でも適応され、そしてそれぞれが何なのかを分類することができます。
YOLOはたくさんのシリーズがあり、YOLO, YOLOv2, YOLOv3, YOLOv4, YOLOv5, YOLOXと出てきています。
また、動作環境もPythonだけでなく、MATLABでも使うことができるなど、自分の使っているプラットフォームに適応させることができます。
YOLOXはYOLOv3からのシステムとは異なり、YOLO(最初に出版された方法)でのシステムとなっており、動作も早く、また正確性もかなり向上しているとのことです。
詳しくは他のブログサイトでも書かれています。
YOLOXのインストール方法
GitHubのサイトにもインストール方法が記載されていますが、英語なのと、仮想環境を使った方法では書かれていないので、今回はAnacondaで仮想環境を使って行う方法です。
WindowsとMacの両方で、YOLOXのマニュアル通りにインストールするとエラーが連発しました。
今後もバージョンによって、エラーが変わってきたりするので、その都度調べてください。
macのターミナルでcondaコマンドを使う方法は以下から
WindowsではAnaconda Promptを使うと良いかと思います。
ターミナル(Anaconda Prompt)を開き、文字が並んでいる黒いウィンドウができます。
最終行の左に(base)となっているかと思います。
現在、仮想環境には入っていない状態です。
仮想環境なしでもYOLOXは動作できますが、他のパッケージとの環境が交差してしまうので、仮想環境を作ることをお勧めします。
まず以下のコードを入力し、仮想環境を作成します。
conda create -n YoloX python=3.8
YoloXは仮想環境名で、これでなくても大丈夫です。
また、pythonのバージョンはpython=3.8で指定できます。
その後以下のコードで仮想環境に入ります。
conda activate YoloX
これで、左の(base)が(YoloX)になっていたら成功です。
CUDAのインストール
まず、機械学習のライブラリを初めてインストールする方で、YOLOの学習をGPUで行うおうとする方はCUDAをインストールしましょう。
(CPUでの学習はありえないほど時間がかかるのでおすすめしません。ただ、Apple Silicon搭載のPCではGPUを使うことは現在できません。)
CUDAは公式サイトからダウンロードできます。
CUDAのバージョンは、PyTorchで対応しているCUDAのバージョンを確認してから、そのバージョンをインストールするといいと思います。
PyTorchの公式サイト
過去のバージョンをインストールするには、Download nowを押した後の画面で、下の方のResourcesのArchive of Previous CUDA Releasesでインストールすることができます。
最新バージョンでもできるかもしれませんが、取り合えず、PyTorchに合わせておけば問題なく動かすことができると思います。
インストールされているかはwindowsで、「システム環境変数の編集」を開き、詳細設定>環境変数と開き、
CUDA_PATHからはじまるパスがあるか確認しましょう。
Vの後の数字がバージョンを示しています。
PyTorchのインストール
まず、インストールする前に、pipの更新をしておきましょう。
Anaconda Promptで仮想環境に入り、以下のコマンドを実行します。
python -m pip install --upgrade pip
PyTorchの公式サイトに行き、自分の環境に合ったインストール方法を選びましょう。
しかし、ここで問題となるのが、Packageの欄で、ここではpipを選択しましょう。
condaでインストールするとその後でエラーが出てしまいます。
Run this Commandのコマンドをコピペして、仮想環境にインストールします。
インストールが終わったら、以下のコマンドでPyTorchがインストールされているか確認しましょう。
pip list
この中に、torchが入っていればOKです!!!
一応動作確認として、pythonを起動し、以下のコマンドを実行してみましょう。
import torch
print(torch.cuda.is_available())
出力でTrueと出れば問題なくインストールできており、torchをGPUで動かす準備が整ったということになります。
(Macに導入する際やGPUがないパソコンには、Folseと出てきますが、imortが出てきたら大丈夫です)
エラーが出たらもう一度、インストールを見直してみましょう。
YOLOXに関わるパッケージのinnsuto-ru
GitHubからYOLOXの諸々のファイルをダウンロード(クローン)します。
Gitコマンドが使える人は、以下のコードでクローンできます。
git clone git@github.com:Megvii-BaseDetection/YOLOX.git
その後、クローンしたフォルダにアクセスし、必要なパッケージをインストールします。
まず、クローンしたYOLOXのフォルダにある、requirements.txtの中身を以下のように書き換えます。
# TODO: Update with exact module version
numpy
#torch>=1.7
opencv_python
loguru
tqdm
#torchvision
thop
ninja
tabulate
# verified versions
# pycocotools corresponds to https://github.com/ppwwyyxx/cocoapi
#pycocotools>=2.0.2
#onnx==1.8.1
onnxruntime==1.8.0
onnx-simplifier==0.3.5
どうやら、pycocotoolsなどはこのコマンドで入れることができないようです。
これが終わったら、requirements.txtを保存して、下のコマンドをターミナル(Anaconda prompt)で実行します。
cd YOLOX
pip3 install -r requirements.txt
pip3 install cython pycocotools
ダウンロードしたYOLOXのフォルダには”requirements.txt”というファイルがあり、ここに必要なパッケージが入っているので、これを読み取り専用で開き、記載されているパッケージをインストールするコマンドが二つ目のコマンドです。
pip3 install cython pycocotools
このコマンドによって、cythonとpycocotoolsをインストールすることができます。
どうやらこれらは別途インストールする必要があるようです。
このコマンドを実行すると、以下のエラーが出る人もいるかと思います。
building 'pycocotools._mask' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
Microsoft C++ Build Toolsがpycocotoolsには必要だそうです。(Mac版がないのに、Macでもエラーが出る。)
WIndowsの人は一応インストールしておくと良いでしょう。
これをインストールし、さらに以下のコードで再度インストールを試みてください。
pip3 install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"
それでもうまくいかない場合には、以下のコマンドで入れましょう。
conda install -c conda-forge pycocotools
基本的には今回のパッケージ等はpipでインストールしていますが、こればっかりはインストールできないので、condaでインストールするという最終手段を使います。
次に、yolox_x.pthをダウンロードします。
リンクを押すとすぐにダウンロードが始まります。
ダウンロードしたファイルをgithubからクローンしたYOLOXのフォルダに入れましょう。
これでデモの認識に使うモデルをダウンロードし、任意の場所に置くことができます。
tools/demo.pyの上部に下記をプログラムに追記し、yoloxフォルダへアクセスできるようにします。
#demo.pyの中身に書き込みましょう。
import sys
import os
sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
これを行わないと、yoloxのパッケージがありませんというエラーが出されます。
その後、ターミナルで以下のコマンドを実行しましょう。
これで、デモ動作ができているかどうかを確認することができます。
python tools/demo.py image -n yolox-x -c yolox_x.pth --path assets/dog.jpg --conf 0.25 --nms 0.45 --tsize 640 --save_result --device gpu
#gpuで動かさない場合には、gpuをcpuに書き換えてください。
–device gpu は 状況に応じて –device cpuに書き換えてください。
これで、YOLOX/YOLOX_outputs/yolox_x/vis_res/20……..の中に以下の画像が入っていればよいです。
おまけ
パソコンどれを使えばいいのかわからない方へ、パソコン購入相談をココナラでやることにしました!
あなたの要望に合わせてパソコンを選び、提案します パソコン選びに困っている方々へ!様々な目的に対応できます!パソコンを選んだり、アドバイスすることが多く多くの友人からパソコンの相談やったら儲かるのにと言われました。
それに感化されて一旦やってみようと思いました!
パソコンの利用目的に合わせて、そしてパソコンの予算に合わせて購入をご提案します。
特に機械学習に用いるパソコンを多く選び、使ってきています。
そして、希望があればパソコンを今後買う時にどこに注目すると良いかもアドバイスしていきたいと思います。
今まで選んだことあるパソコンとして、研究室の解析用パソコン、実用パソコン、ゲーム配信用パソコン、大学の新入生用のパソコン、建築学科用のCADが使えるパソコン、とりあえずのパソコンなど。
MacとWindowsの両方使っているので、どちらのお話、ご提案もできます!
ぜひ利用してみてください