Mask-RCNN を使用して独自のデータセットをトレーニングします。この記事を読むだけで十分です。データセットの作成から、Mask-RCNN の再生方法をステップごとに説明します (ナニー レベルのチュートリアル)

1.labelmeをインストールする 

深層学習アルゴリズムなどのニューラル ネットワーク ベースのアルゴリズムはすべてデータ駆動型であり、データの品質は最終モデルの品質に影響します。Mask-RCNN を使用する場合、最初に行うことはデータ セットにラベルを付けることです。 wedefault あなたはanaconda環境を設定しました。設定していない場合は、他の人のブログを参照できます。設定されたconda環境に仮想環境を作成します。ターミナルで次のコマンドを入力し、ラベル付けツールlabelmeをインストールします:

pip install labelme

pip install pyqt5

pip install pillow==4.0.0

2. アノテーション付きデータセット

次のステップでは、データのラベル付けを開始します。ターミナルに次のコードを入力すると、ラベル付けツールが自動的に開きます。

labelme

次に、次の図に示すように、2 番目の項目を選択してフォルダーを開きます。

8879cc39540048369cca55e90b316781.png

データ画像が保存されているフォルダーを選択し、右クリックして画像を 1 つずつラベル付けします。そして、ラベル情報を入力します。マークを付けた後、D をクリックして次のマークに切り替えると、保存インターフェイスが表示されます。元の画像が保存されているフォルダーに直接保存するだけです。すべての写真をマークし、次のすべての json ファイルを取得したら、ターミナルを閉じます。

7c48b9f175724c0ead1958161f07282a.png

 3. Jsonファイルのバッチ処理

現在の .json にはマークした情報が含まれていますが、まだコードで直接読み取れるデータ形式ではないため、ディープ ラーニング コードが異なる場合は、コードの記述方法に応じてデータ ストレージの形式を決定する必要があります以下は上記のマスクです。rcnn を例として、データを必要な形式に変更します。.json ファイルが保存されているフォルダーの下に新しい .txt ファイルを作成し、次の内容を入力します。

@echo off
for %%i in (*.json) do labelme_json_to_dataset "%%i"
pause

保存後、ファイル拡張子を .bat に変更し、ファイルの保存形式を変更するスクリプトに変更し、保存後にダブルクリックして実行します。実行後しばらく待つと以下のフォルダが出来上がります。

59d8b6b0d1374804b28906d87df601f2.png

以下のようにフォルダーを作成します。

2442036c00ca464a97551b185c534adf.png

 

 

 

 

labelme_json フォルダーには、前の手順で取得したフォルダーが保存されます。

json フォルダーには、マークされた .json ファイルが保存されます。

pic フォルダーには元の写真が保存されます。

上記の 3 つのフォルダーに保存されているものは、直接コピーして貼り付けることができます。ここでちょっとした裏技を紹介します。コンピューター上のファイルの並べ替えでは、ファイルの種類ごとに並べ替えることを選択できるため、コピーと貼り付けが容易になります。

cv2_mask は、前の手順で取得したフォルダーに生成されたサフィックス .png のマスク ファイルを保存します。おおよその内容は次のとおりです。

4632b27dfead40b4a44b58450908ef6f.png

 

.png ファイルを 1 つずつフォルダーにコピーして名前を変更するのは面倒なので、ここではバッチ操作用の Python スクリプト copy.py ファイルを作成します。

import os 
import shutil

for dir_name in os.listdir('./labelme_json'):
    pic_name = dir_name[:-5] + '.png'
    from_dir = './labelme_json/'+dir_name+'./label.png'
    to_dir = './cv2_mask/'+pic_name
    shutil.copyfile(from_dir, to_dir)
        
    print (from_dir)
    print (to_dir)

上記の file.py ファイルを次のディレクトリに保存して実行します。

e3bbc2f388a84dfcb23f1d2a07dc2698.png

 

この時点でデータセットは完成です。 

 

4.Mask-RCNN ソースコードをダウンロードする

変更されたコードをダウンロードし (コードを変更したい場合は、qq グループ: 817442229 を追加するか、ブロガーの qq: 2425113371 を直接追加して無料で入手できます)、作成したデータ セットの名前を mydata に変更して、これに配置します。フォルダーに直接使用することも、公式バージョンのコードをダウンロードすることもできますが、公式バージョンを使用するには、コードを深く理解する必要があります。公式バージョンのソース コードの github リンクは以下に添付されています。初心者は、私から直接ソースコード: https://github.com/matterport /Mask_RCNN/releases/tag/v2.0

5. 環境構築

ディープラーニングをやっている人なら conda というツールをよく知っていると思いますが、ここでは仮想環境を管理するツール conda がインストールされているものとして説明します。ベース直下に新しい仮想環境を作成します このソースコードは長い時間をかけて開発されています Pythonのバージョンが高すぎると将来的に問題が発生します 環境構築にはpython2を使用するのが最善ですが、ここでは python3 バージョンを使用してビルドします。直接フォローしていただいても構いません。python3 を使用しても問題ありません。環境を設定した後、ソース コードを変更する必要があります (これについては後で詳しく説明します)。

conda create -n MaskRCNN python=3.6

作成後、次のコマンドを使用して環境をアクティブ化します。

source activate MaskRCNN

ここでは、ubuntu システムの下にあるはずです。

conda activate MaskRCNN

次に、この環境に tensorflow をインストールします。ここで tensorflow が高すぎたり低すぎたりすることはできないことに注意してください。私はバージョン 1.5.0 を使用しています。バージョンを指定しないでください。バージョンを指定しない場合は、デフォルトで最高のバージョンがダウンロードされます、そして次のような質問があります。

pip install tensorflow==1.5.0

ここから GPU バージョンをダウンロードすることもできます。GPU バージョンは CPU よりもはるかに高速に実行されますが、tensorflow の GPU バージョンは cuda および cudnn と対応する関係があります。GPU バージョンを使用したい場合は、cuda を再インストールする必要がある場合がありますそしてクン:

pip install tensorflow-gpu==1.5.0

ここでの対応する cuda バージョンは 9.0 です。pytorch公式 Web サイトで対応する pytorch バージョンを確認し、pytorch を使用して cuda と cudnn をインストールします。

conda install pytorch==1.1.0 torchvision==0.3.0 cudatoolkit=9.0 -c pytorch

次のコードを使用して、インストールが成功したかどうかを確認できます。

import torch
print(torch.cuda.is_available())
print(torch.backends.cudnn.is_available())
print(torch.cuda_version)
print(torch.backends.cudnn.version())

実行結果に 2 つの true が出力された場合、構成が成功したことを意味します。最後の 2 行では、バージョン上の理由によりエラーが報告される場合がありますが、問題ではありません。無視して続行してください。

次に、keras をインストールします。keras のバージョンは tensorflow に対応している必要があることに注意してください。

pip install keras==2.1.6

ダウンロードが遅すぎる場合は、ソースの変更を検討してください。上記のコードの後に​​、-i を使用してソースを変更します。たとえば、他のパッケージをインストールするときにも同じことができ、これは非常に便利です。

pip install keras==2.1.6 -i https://pypi.tuna.tsinghua.edu.cn/simple

インストール後、pycharm でコード フォルダーを開き、下のターミナルをクリックします。ここで、次のコードを使用して、requirements.txt 内の必要なパッケージをすべてインストールできます。

pip install -r requirements.txt

ダウンロード後に問題なくコードが実行できれば、環境と設定は完了です。ただし、ブロガーが失敗するため、失敗する可能性が高くなります...この方法が失敗した場合は、requirements.txt 内のパッケージを 1 つずつインストールする必要があります。

pip install numpy
pip install scipy
pip install Pillow
pip install cython
pip install matplotlib
pip install scikit-image
pip install opencv-python
pip install h5py
pip install imgaug
pip install IPython[all]

上記のコードを 1 行ずつ実行します。一致しないパッケージのバージョンは tensorflow に影響を与える可能性があるため、各パッケージがインストールされた後にテスト コードを実行して、tensorflow が引き続き正常に動作するかどうかをテストすることをお勧めします。以下はテスト コードです:

import tensorflow as tf
import keras
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()

requirements.txt のパッケージがインストールされていないときに上記のコードがエラーを報告する場合は、tensorflow と numpy のバージョンが対応していないために問題が発生している可能性があります。私が使用している numpy のバージョンは 1.16.0 です。これはすべてのパッケージを実行するための最小バージョンであり、tensorflow 1.5.0 と互換性があります。

pip install numpy==1.16.0

numpy のバージョンが変更されてもエラーが報告される場合は、python3 のエンコード形式に問題がある可能性があります。次の図に示すように、topology.py の下にすべての .decode('utf8') を追加してください。

02a4b87ec396462b9811b73a6dd07452.png

opencv-python をインストールするとき、デフォルトのダウンロードは最新バージョンであり、cv の最新バージョンは tensorflow==1.5.0 と互換性がないため、エラーが報告される可能性が高くなります。

pip install opencv-python==4.3.0.38

上記のパッケージをインストールした後、コードを実行すると警告が表示される場合があります。

9945aba1219445bcb9c4c70bf8fd6281.png

 この警告が表示される理由は、scikit-image のバージョンに互換性がないためです。次のコマンドを使用して再インストールしてください。

pip install -U scikit-image==0.16.2

他の警告については無関係なので無視してかまいませんが、赤色のエラー レポートは非​​常に不快に見えるため、コードの先頭に次の内容を追加してブロックできます。

# 版本不兼容报错,直接忽略
import warnings
warnings.filterwarnings("ignore")

6. ダウンロードしたソースコードを変更します。

1. train_test.py の 57 行目を修正し、カテゴリ数 +1 に変更します。

539fd28fdaf64d57bbab43aaf766cd18.png

2. train_test.py の 121 行目をコメントアウトし、カテゴリの数だけ書き換えます (各行の第 2 パラメータはシリアル番号、第 3 パラメータはカテゴリ名)。

f1a86160ee9041cb8593addd9dcfd96e.png

 3. train_test.py の 178 ~ 182 行目を独自のパスに変更します。ここでは相対パスが使用されています。データセットが前述の方法で配置されている場合は、ここで変更する必要はありません。

e0a17ccf10774f58b450de1464c20bdb.png

 4. config.py の DETECTION_MIN_CONFIDENCE を変更し、この値を小さくして、より多くの予測結果を取得します。

698d6403452c4ce4bdb0271f5a42140f.png

5. train_test.py の 61 ~ 62 行目を変更して画像サイズを指定します。

536e940a95554597914c173d3bb4b8a0.png

 6. train_test.py の 160 ~ 163 行目を変更します。

404025274657452e85b2ffecc68d7e4f.png

残りのパラメータは変更する必要がありません。完了したら、train_test ファイルを実行してトレーニングを開始します。

7、テストコード

テストコードの実行 pycocotools をインストールするには、次を実行します。

pip install pycocotools

次のエラーが発生した場合:

a1a4fecc07f9471f867aa5efbccc87f2.png

 これは、Microsoft Visual C++ 14.0 が存在しないことを意味します。次のアドレスにアクセスしてインストールしてください。

https://my.visualstudio.com/Downloads?q=build%20tools

ビルド ツールを検索し、DVD 形式でビルド ツールをダウンロードします。

6ae1d524e57b49609a63a90ad279e77f.pngダウンロードが完了したらインストールしてください。ただし、このメソッドは大量のメモリを消費します。ターミナルで実行する、より直接的なメソッドです。

conda install libpython m2w64-toolchain -c msys2

具体的な内容については、以下を参照してください。

https://blog.csdn.net/qzzzxiaosheng/article/details/125119006

おすすめ

転載: blog.csdn.net/ekekex/article/details/130171832
おすすめ