注:このプロジェクトは維持されなくなり、最新のPytorch(0.4.0以降)と互換性がない場合があります。
これはYolov2のPytorch実装です。このプロジェクトは、主にDarkFlowとDarkNetに基づいています。
ポストプロセスとmultiprocessing.PoolにCython拡張機能を使用しました。Pool画像前処理に。 VOC2007で画像をテストするには、約13〜20msの費用がかかります。
YoloとYolov2の詳細については、彼らのプロジェクトページと論文を参照してください: Yolo9000:より良い、より速く、Joseph RedmonとAli Farhadiが強くなっています。
注1:これはまだ実験プロジェクトです。 VOC07テストマップは約0.71です( @cory8249で報告されたVOC07+12 Trainvalでトレーニングされています)。トレーニングの詳細については、Issue1とIssue23を参照してください。
注2: multiprocessing.Pool.imapを使用して独自のデータローダーを作成することをお勧めします。 Vocdatasetのdataloaderの例:Issue71。
注3: Pytorch 0.4:#59にアップグレードします
このリポジトリをクローンします
git clone [email protected]:longcw/yolo2-pytorch.git Reorgレイヤーを構築する( tf.extract_image_patches )
cd yolo2-pytorch
./make.sh訓練されたモデルYolo-Voc.weights.h5(リンクの更新)をダウンロードし、 demo.pyでモデルパスを設定します
デモpython demo.pyを実行します。
任意のデータセットでYolo2をトレーニングできます。ここでは、VOC2007/2012でトレーニングします。
トレーニング、検証、テストデータ、Vocdevkitをダウンロードします
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tarこれらすべてのタールをVOCdevkitという名前の1つのディレクトリに抽出します
tar xvf VOCtrainval_06-Nov-2007.tar
tar xvf VOCtest_06-Nov-2007.tar
tar xvf VOCdevkit_08-Jun-2007.tarこの基本構造が必要です
$VOCdevkit / # development kit
$VOCdevkit /VOCcode/ # VOC utility code
$VOCdevkit /VOC2007 # image sets, annotations, etc.
# ... and several other directories ...プログラムは、 yolo2-pytorch/dataのデータをデフォルトで読み込んでいるため、データパスを次のように設定できます。
cd yolo2-pytorch
mkdir data
cd data
ln -s $VOCdevkit VOCdevkit2007前処理されたdarknet19モデル(リンク更新)をダウンロードし、 yolo2-pytorch/cfgs/exps/darknet19_exp1.pyでパスを設定します。
(オプション)テンソルボードを使用したトレーニング。
Tensorboardを使用するには、 yolo2-pytorch/cfgs/config.pyでuse_tensorboard = Trueを設定し、tensorboardx(https://github.com/lanpa/tensorboard-pytorch)をインストールします。テンソルボードログはtraining/runsで保存されます。
トレーニングプログラムを実行: python train.py 。
yolo2-pytorch/cfgs/config.pyでtrained_modelのパスを設定します。
cd faster_rcnn_pytorch
mkdir output
python test.pyフォワードパスでは、ネットワークに4つの引数を提供する必要があります。
im_data画像データ。C x H x Wでなければなりません。C C画像の色チャネルに対応し、 HとWそれぞれ高さと幅です。utils/im_transform.pyで提供されるimcv2_recolor関数を使用して、画像を前処理します。また、画像が416 x 416ピクセルにサイズ変更されていることを確認してくださいgt_boxes numpyアレイのリスト。ここで、それぞれがサイズN x 4です。ここで、 N画像の機能の数です。各行の4つの値は、 x_bottom_left 、 y_bottom_left 、 x_top_right 、およびy_top_rightに対応する必要があります。gt_classes各配列には、 gt_boxesで提供される各境界ボックスのクラスに対応する整数値が含まれているnumpyアレイのリストdontcareリストのリストライセンス:MITライセンス(MIT)