YOLO

YOLO是用来检测 Pascal VOC 2012 数据集目标的系统。他能检测到20 pascal 物体种类:
  • person
  • bird, cat, cow, dog, horse, sheep
  • aeroplane, bicycle, boat, bus, car, motorbike, train
  • bottle, chair, dining table, potted plant, sofa, tv/monitor
工作原理:
所有的预先检测系统都重构了分类器或者定位器来进行检测。他们将一幅在不同位置和大小的图放到模型中。图中的高得分区被认为是检测目标。
但是yolo使用了一个完全不同的方式。我们将简单的卷积网络放到一整幅图像中。这个网络将图像分成不同的区域并且预测边界框和每个区域的概率。这些边界框由预测概率加权。

最后我们可以通过一些阈值,以便只看到高得分区域。
several advandges:................

使用预先训练好的模型进行检测:
已经存在cfg/目录。可以下载已经训练好的权重。
wget http://pjreddie.com/media/files/yolo.weights./darknet yolo test cfg/yolo.cfg yolo.weights data/dog.jpg

在data/文件夹下面已经存在一些示例图像。假设你的weight file在base目录下:
./darknet yolo test cfg/yolo.cfg yolo.weights data/dog.jpg
多个图像的输入检测:
迷你模型:
tiny-yolo.cfg基于Darknet参考网络。 您应该已经在cfg /子目录中具有配置文件。 在此下载预训练的权重(103 MB)。 然后你可以运行模型!
wget http://pjreddie.com/media/files/tiny-yolo.weights./darknet yolo test cfg/tiny-yolo.cfg tiny-yolo.weights data/person.jpg

yolo模型的比较:
yolo.cfg基于提取网络。以45fps处理图像,权重文件基于2007train/val+2012train/val训练。
tiny-yolo。cfg小的多,基于darknet参考网络。以155fps处理图像,权重文件基于2007train/val+2012train/val训练。

阈值调整:
./darknet yolo test cfg/yolo.cfg yolo.weights data/dog.jpg -thresh 0

自己训练图像:
下面是如何让它在Pascal VOC数据集上工作。

step1:download database
train data will be in VOCdevkit/ subdirectory

step2: generate Labels
like:
using ./scripts/voc_label.py to generate labels
these labels will be set in
VOCdevkit/VOC2007/labels/ and VOCdevkit/VOC2012/labels/
cat 2007_* 2012_train.txt > train.txt -------you can choose pictures you like

step3:
现在去你的Darknet目录。 我们将必须更改yolo的train子例程以将其指向您的VOC数据副本.
src/yolo.c
18 char *train_images = "/home/pjreddie/data/voc/test/train.txt";19 char *backup_directory = "/home/pjreddie/backup/";

train_images应该指向刚刚生成的train.txt文件,backup_directory应该指向一个目录,您希望在训练期间存储备份权重文件。编辑完毕后,make

step4:
下载已经训练好的卷积权重

step5:
./darknet yolo train cfg/yolo.train.cfg extraction.conv.weights

你可能感兴趣的:(yolo)