タグ: 機械学習

  • [2022年12月更新]YOLOXのインストール方法

    [2022年12月更新]YOLOXのインストール方法

    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の両方使っているので、どちらのお話、ご提案もできます!

    ぜひ利用してみてください

  • 【2022年12月更新】YOLOv5のインストール方法[物体認識ツール]

    【2022年12月更新】YOLOv5のインストール方法[物体認識ツール]

    YOLOv5とは

    YOLOは物体検出を行うアルゴリズムです。YOLOはYou Look Only Onseの頭文字をとっています。
    物体のトラッキングとはまた少し違い、オブジェクトと、それがなんなのかを検出することができます。

    YOLOのHPより引用(https://pjreddie.com/darknet/yolo/)

    自動運転などでは、人なのか、ペットなのか、車なのかといった、人間がものを判断するように物体を検出、分類します。

    分類するアルゴリズムは複雑なので、ここでは説明は省きますが、調べてみると非常に多くのサイトで解説されています。

    現在YOLOは大体隔年ぐらいのペースで新しいバージョンが出ており、今ではYOLO v1~YOLOv5、そして、2021年8月に新しいバージョンであるYOLO Xが公表されました。
    バージョンによって何が違うのかは、細かい部分で大きな変更がありますが、基本的には新しくなるにつれて精度がよくなっていきます。

    今回は十分な精度かつ、現在かなり情報が多くなり、導入しやすくなったYOLO v5のインストールと動作確認までのステップを紹介していきたいと思います。

    インストール環境

    OS : Windows 10 (macOS Montereyでもできました)
    Python : 3.9.7 (3.6以降)
    CUDA : 11.3

    インストール方法

    仮想環境の作成

    Anacondaを用いて、仮想環境を作成します。
    Anacondaをインストールしていない人は、インストールしましょう。

    YOLOv5をインストールする際にはかなり多くのパッケージがあるので、仮想環境でインストールをお勧めします。
    仮想環境の名前はなんでもいいのですが、今回は”Yolov5_env”とします。
    anaconda promptで以下のコマンドを入力します。

    conda create -n Yolov5_env python=3.9

    これで仮想環境が作成されるはずです。
    仮想環境に以下のコマンドで入ります。

    conda activate Yolov5_env

    CUDAのインストール

    まず、機械学習のライブラリを初めてインストールする方で、YOLOの学習をGPUで行うおうとする方はCUDAをインストールしましょう。(CPUでの学習はありえないほど時間がかかるのでおすすめしません)
    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が出てきたら大丈夫です)
    エラーが出たらもう一度、インストールを見直してみましょう。

    YOLOv5のインストール

    GitHubからYOLOv5のファイルをダウンロード(クローン)します。

    git clone https://github.com/ultralytics/yolov5

    gitコマンドが使えない方は、gitをインストールするか、YOLOv5のGitHubからファイルをダウンロードします。

    次に、以下のコマンドをAnaconda promptの仮想環境で実行します。

    cd yolov5
    pip install -r requirements.txt

    最初のコマンドは、GitHubでダウンロードしたyolov5のフォルダに移動するコマンドで、gitコマンドでインストールした人はこれで大丈夫ですが、直接サイトからダウンロードしたかたはそのディレクトリに頑張って移動しましょう。

    ダウンロードしたyolov5のフォルダには”requirements.txt”というファイルがあり、ここに必要なパッケージが入っているので、これを読み取り専用で開き、記載されているパッケージをインストールするコマンドが二つ目のコマンドです。

    インストールが終了したらどんなパッケージがインストールされたか確認しましょう。

    pip list 

    かなり多くのパッケージがインストールされたと思います。
    一旦これでYOLOv5のインストールは完了です。

    動作

    動作確認として、元々yolov5のフォルダに入っているデータで確かめてみましょう。
    Anaconda promptで仮想環境に入り、cdコマンドでyolov5のフォルダに移動します。

    そして、以下のコマンドを実行します。

    python detect.py --source ./data/images/ --weights yolov5s.pt --conf 0.4

    detect.pyがyoloを使って、物体認識するプログラムです。
    sourceで物体認識してほしい素材があるフォルダのパスを指定します。
    今回はyolov5に入っているimagesの画像を用いました。

    weightsでどのモデルを使用するかを選択します。
    今回はyolov5.ptを用います。

    confではどれぐらいの尤度(Likelihood)で物体を認識するかを示します。
    これに関しては、機械学習を勉強する際によく出てくる言葉です。
    わからなければこのままで問題ないと思います。

    実行すると、yolov5のフォルダのruns\detect\expに認識された画像が入っていると思います。
    このようにしてYOLOv5では物体認識が行われます。

    直面したエラー

    ModuleNotFoundError: No module named ‘torch’

    Yoloを動かそうとしたときにこのようなエラーが出ることがあります。
    これはPyTorchが利用できていない、モジュールが見つからないというようなエラーです。

    このエラーが出た際には、まず仮想環境でtorchがインストールされているかどうか確認しましょう。

    pip list

    ここにtorchがなければPyTorchをインストールしましょう。
    あるけれどうまくいかない、よくわからないというときは、pythonを起動し、PyTorchをインポート、利用できているかみましょう。

    import torch
    torch.cuda.is_acailable()

    利用できる際には、Trueと返され、うまくいかないときは、上記のエラーが表示されるかと思います。

    エラーの原因として考えられる一つとして、PyTorchをcondaコマンドでインストールしているという可能性があります。
    PyTorchはcondaコマンドでインストールしているけど、他のパッケージはpipコマンドでインストールしていると上記のエラーが出てしまうことがあります。

    その際には、condaコマンドでtorchをアンインストールし、pipコマンドでインストールしなおしましょう。

    モジュールが見つからない問題は、インストールする際のコマンドがpipなのか、condaなのかごっちゃになっている可能性があります。
    今回はpipで統一していますが、常にどのコマンドでインストールしているか気にするといいでしょう。

    リンク集

    Anaconda
    CUDA
    PyTorch
    YOLOv5 GitHub
    YOLOホームページ

    おまけ

    パソコンどれを使えばいいのかわからない方へ、パソコン購入相談をココナラでやることにしました!

    あなたの要望に合わせてパソコンを選び、提案します パソコン選びに困っている方々へ!様々な目的に対応できます!

    パソコンを選んだり、アドバイスすることが多く多くの友人からパソコンの相談やったら儲かるのにと言われました。
    それに感化されて一旦やってみようと思いました!

    パソコンの利用目的に合わせて、そしてパソコンの予算に合わせて購入をご提案します。
    特に機械学習に用いるパソコンを多く選び、使ってきています。

    そして、希望があればパソコンを今後買う時にどこに注目すると良いかもアドバイスしていきたいと思います。

    今まで選んだことあるパソコンとして、研究室の解析用パソコン、実用パソコン、ゲーム配信用パソコン、大学の新入生用のパソコン、建築学科用のCADが使えるパソコン、とりあえずのパソコンなど。

    MacとWindowsの両方使っているので、どちらのお話、ご提案もできます!

    ぜひ利用してみてください!

  • labelImgのインストール方法[2022年12月更新]

    labelImgのインストール方法[2022年12月更新]

    物体クラスタリングを行う上で、元々ある学習モデルだけでなく、自分が作った学習モデルも使いたくなる時があると思います。

    物体クラスタリングで有名なツールとして、YOLOがありますが、その学習データーを作る際に、labelImg(大文字でLABELIMG)は非常に有用なツールとなります。

    そのlabelImgのインストール方法についてご紹介します。

    環境

    OS : Windows 10 (macOS Montereyでもできました)
    Python :3.9.7 (3.6以降)

    インストール方法

    Anacondaを用いて、仮想環境を作り、そこでインストールする方法をおすすめします。
    それによって、他の環境に影響を与えることなく、インストールすることができます。

    仮想環境の名前はわかれば良いので、なんでも良いのですが、今回は”labelimg_env”にします。
    以下のコマンドをAnaconda promptで実行しましょう。

    conda create -n labelimg_env python=3.9

    今回はpython3.9でインストールしていますが、3.6以降であれば特に問題はないかと思います。

    次に、pipとsetuptoolsの更新をおこなっておきましょう。
    これを行うことによって、謎のエラーを防げます(多分)。

    python -m pip install --upgrade pip setuptools

    そして、labelImgをインストールします。

    pip install labelImg

    インストールされたか確認は以下のコマンドで確認できます。

    pip list

    この中に、labelImgがあれば成功です。

    起動

    まず、仮想環境に入ります。

    conda activate labelimg_env

    labelImgを起動します。

    labelImg

    別のウィンドウで画面がひらけばOKです!!

    あとがき

    LabelImgはPyQt5によって、GUIが作られています。
    pythonのバージョンが3.6以降がいいのは、PyQt5のバージョンでPython 3.6以降を必須としているからです(現状)。

    基本的には最新バージョンで問題ないかと思います。