注意:此项目不再维护,并且可能与最新的Pytorch不兼容(0.4.0之后)。
这是Yolov2的Pytorch实施。该项目主要基于DarkFlow和Darknet。
我使用了Cython扩展程序进行后处理和multiprocessing.Pool图像预处理。在VOC2007中测试图像的成本约为13〜20ms。
有关Yolo和Yolov2的详细信息,请参阅其项目页面和论文: Yolo9000:更好,更快,更强壮的Joseph Redmon和Ali Farhadi 。
注1:这仍然是一个实验项目。 VOC07测试地图约为0.71(在VOC07+12 TrainVal上进行了培训, @Cory8249报告)。有关培训的更多详细信息,请参见第1期和第23期。
注2:我建议使用torch.utils.data.dataset编写自己的数据加载程序,因为multiprocessing.Pool.imap也不会停止,即使没有足够的内存空间。 VOCDATASET的dataloader的一个示例:第71期。
注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.Wewights.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的目录中
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 and install 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对应于图像的颜色通道, H和W分别为高度和宽度。utils/im_transform.py中提供的imcv2_recolor函数来预处理图像。另外,确保图像已大小为416 x 416像素gt_boxes一个numpy数组的列表,其中每个阵列的大小为N x 4 ,其中N是图像中的功能数量。每行的四个值应对应于x_bottom_left , y_bottom_left , x_top_right和y_top_right 。gt_classes numpy数组的列表,其中每个数组包含一个与gt_boxes中提供的每个边界框相对应的整数值dontcare列表列表许可证:麻省理工学院许可证(麻省理工学院)