YOLO训练Pedestrain
Pedestrain
使用darknet训练:
1. Inria
创建 yolo-inria.cfg
从cfg/yolo-voc.2.0.cfg拷贝一份,修改batch=64, subdivisions=8, classes=1, 修改最后一个卷积层为filter=30。
cp cfg/yolo-voc.2.0.cfg cfg/yolo-inria.cfg
创建data/inria.names
里面只有一行:person
为每个图片创建label文件,形式如下:
每个图片对应一个label文件,一个行人对应一行,object-class全为0。文件分别放在/home/guru_ge/dataset/INRIAPerson/Train/labels目录和/home/guru_ge/dataset/INRIAPerson/Test/labels目录。
<object-class> <x> <y> <width> <height>
创建train.txt, test.txt
所有训练图片的路径,每行一张图片,位置在/home/guru_ge/dataset/INRIAPerson/。
data/obj/img1.jpg
data/obj/img2.jpg
data/obj/img3.jpg创建data/inria.data
修改train.txt, test.txt位置:
classes= 1
train = /home/guru_ge/dataset/INRIAPerson/train.txt
valid = /home/guru_ge/dataset/INRIAPerson/test.txt
names = data/obj.names
backup = backup/
下载在ImageNet上预训练的darknet19模型
wget http://pjreddie.com/media/files/darknet19_448.conv.23
开始训练
./darknet detector train data/inria.data cfg/yolo-inria.cfg darknet19_448.conv.23 -gpus 0
结果
在INRIA测试集上评测结果:
./darknet detector map cfg/inria.data cfg/yolo-inria.cfg backup/yolo-inria.backup -gpus 0
class_id = 0, name = person, ap = 88.85 %
for thresh = 0.24, precision = 0.95, recall = 0.86, F1-score = 0.90
for thresh = 0.24, TP = 509, FP = 29, FN = 80, average IoU = 76.81 %mean average precision (mAP) = 0.888518, or 88.85 %
Total Detection Time: 4.000000 Seconds
测试图片:
./darknet detector test cfg/inria.data cfg/yolo-inria.cfg backup/yolo-inria.backup -gpus 0
跑另外一个视频:
./darknet detector demo cfg/inria.data cfg/yolo-inria.cfg backup/yolo-inria.backup MOT16-06.mp4 -gpus 0
效果:
大小:
416 x 416
速度:
CPU FPS: 0.2
GPU FPS: 90
问题:
小目标检测不到
2. caltech
训练:
./darknet detector train cfg/caltech.data cfg/yolo-caltech.cfg darknet19_448.conv.23 -gpus 0 -dont_show
每5帧提取一张,训练集45651张图片,测试集4406张图片。batch_size为64,迭代3万次左右开始收敛:
评估:
./darknet detector map cfg/caltech.data cfg/yolo-caltech.cfg backup_caltech/yolo-caltech_40000.weights -gpus 0
detections_count = 24968, unique_truth_count = 6465
class_id = 0, name = person, 8 ap = 22.66 %
for thresh = 0.24, precision = 0.41, recall = 0.22, F1-score = 0.29
for thresh = 0.24, TP = 1431, FP = 2053, FN = 5034, average IoU = 27.87 %mean average precision (mAP) = 0.226584, or 22.66 %
Total Detection Time: 137.000000 Seconds
问题:
从map上看表现很差,只有22.66,这可能是因为这个数据集人太小,并且标注中还包含了一些被遮挡的目标,干扰了检测结果。
我们还测试了使用inria数据集训练的模型在caltech上的结果,表现还要更差:
detections_count = 17643, unique_truth_count = 6465
class_id = 0, name = person, 3 ap = 9.09 %
for thresh = 0.24, precision = 0.48, recall = 0.05, F1-score = 0.09
for thresh = 0.24, TP = 315, FP = 340, FN = 6150, average IoU = 35.57 %mean average precision (mAP) = 0.090909, or 9.09 %
Total Detection Time: 46.000000 Seconds
./darknet detector demo cfg/caltech.data cfg/yolo-caltech.cfg yolo-caltech_30000.weights
使用caltech训练结果,小目标的检测更准确了,但也存在了误检的问题,这可能是标注中还包含了一些被遮挡的行人,导致训练的模型将这些遮挡物也认为是行人,出现了误检。
YOLO训练Pedestrain的更多相关文章
- YOLO训练自己的数据集的一些心得
YOLO训练自己的数据集 YOLO-darknet训练自己的数据 [Darknet][yolo v2]训练自己数据集的一些心得----VOC格式 YOLO模型训练可视化训练过程中的中间参数 项目开源代 ...
- Yolo训练自定义目标检测
Yolo训练自定义目标检测 参考darknet:https://pjreddie.com/darknet/yolo/ 1. 下载darknet 在 https://github.com/pjreddi ...
- yolo训练数据集
最近了解了下yolov3的训练数据集部分,总结了以下操作步骤:(基于pytorch框架,请预先装好pytorch的相关组件) 1.下载ImageLabel软件对图片进行兴趣区域标记,每张图片对应一个x ...
- darknet53 yolo 下的识别训练
[目录] 一. 安装Darknet(仅CPU下) 2 1.1在CPU下安装Darknet方式 2 1.2在GPU下安装Darknet方式 4 二. YOLO.V3训练官网数据集(VOC数据集/COCO ...
- 【计算机视觉】【神经网络与深度学习】YOLO v2 detection训练自己的数据2
1. 前言 关于用yolo训练自己VOC格式数据的博文真的不少,但是当我按照他们的方法一步一步走下去的时候发现出了其他作者没有提及的问题.这里就我自己的经验讲讲如何训练自己的数据集. 2.数据集 这里 ...
- 小白也能弄得懂的目标检测YOLO系列之YOLOv1网络训练
上期给大家介绍了YOLO模型的检测系统和具体实现,YOLO是如何进行目标定位和目标分类的,这期主要给大家介绍YOLO是如何进行网络训练的,话不多说,马上开始! 前言: 输入图片首先被分成S*S个网格c ...
- YOLO V4的模型训练
1.YOLO V4模型训练的基本思路 所有机器学习涉及模型训练,一般都有训练集.验证集.测试集,因此需要准备数据集.有了数据集,再调用训练的算法,获取训练的结果.v3.v4模型训练方法相同. 2.YO ...
- YOLO: Real-Time Object Detection
YOLO detection darknet框架使用 YOLO 训练自己的数据步骤,宁广涵详细步骤说明
- YOLOv3训练自己的数据
1. 下载预训练权重文件 YOLOv3使用在Imagenet上预训练好的模型参数(文件名称: darknet53.conv.74,大小76MB)基础上继续训练. darknet53.conv.74下 ...
随机推荐
- 使用官方组件下载图片,保存到MySQL数据库,保存到MongoDB数据库
需要学习的地方,使用官方组件下载图片的用法,保存item到MySQL数据库 需要提前创建好MySQL数据库,根据item.py文件中的字段信息创建相应的数据表 1.items.py文件 from sc ...
- openoffice启动服务并将office文件转换为pdf文件
1.首先下载最新版的openoffice工具,安装完成之后安装服务,, win+r打开命令提示符 输入cmd,cd C:\Program Files (x86)\OpenOffice 4\progra ...
- Codeforces 939D - Love Rescue
传送门:http://codeforces.com/contest/939/problem/D 本题是一个数据结构问题——并查集(Disjoint Set). 给出两个长度相同,且仅由小写字母组成的字 ...
- 【codeforces 801A】Vicious Keyboard
[题目链接]:http://codeforces.com/contest/801/problem/A [题意] 一个字符串只由VK组成; 让你修改一个字符; 使得剩下的字符串里面子串VK的个数最大; ...
- 【ACM】nyoj_106_背包问题_201308152026
背包问题时间限制:3000 ms | 内存限制:65535 KB 难度:3描述 现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1<=v,w<=10 ...
- N天学习一个Linux命令之grep
前言任何系统都会出问题,出了问题一般怎么排查BUG?这个时候程序中记录的异常日志以及关键节点的日志就非常重要了,面对一大堆的日志文件,怎么找出我们需要的有用信息呢?linux中可以使用grep命令查找 ...
- Java对二叉搜索树进行插入、查找、遍历、最大值和最小值的操作
1.首先,须要一个节点对象的类.这些对象包括数据.数据代表存储的内容,并且还有指向节点的两个子节点的引用 class Node { public int iData; public double dD ...
- JS 缓冲运动 带运动的留言本 小案例
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
- HDU 5241 上海大都会 F题
留意到,每一种语言的情况其实是独立的,也就是说,每一种语言的集合的包含的情况都是符合要求的.一种语言在图上可以有32种情况(由数据2知),所以,总的数就是32^n import java.util.* ...
- [Java]LeetCode57 Insert Interval
Given a set of non-overlapping intervals, insert a new interval into the intervals (merge if necessa ...