yolo

YOLO_v1

自古美人都是妖i 提交于 2019-11-28 15:21:56
目标检测算法可以分为两类: 一类是基于region proposal的R-CNN系列算法(R-CNN,Fast R-CNN, Faster R-CNN),它们是two-stage的。要先使用启发式方法(selective search)或者CNN网络(RPN)产生region proposal,然后再在region proposal上做分类与回归。精确度高,速度低。 另一类是YOLO,SSD这类one-stage算法,仅仅使用一个CNN网络直接预测不同目标的类别与位置。精确度低,速度快。 采用滑动窗口的目标检测算法思路很简单,将检测问题转化为了图像分类问题。原理是采用不同大小和比例(宽高比)的窗口在整张图片上按照一定步长进行华东,然后对这些窗口对应的区域做图像分类,这样就可以实现对整张图片的检测。缺点是不知道要检测的目标大小,所以要设置不同大小和比例的窗口去滑动,还要采取合适的步长,这样会产生很多的子区域,并且都要经过分类器去做预测,这需要很大的计算量,所以你的分类器不能太复杂,因为要保证速度。解决思路之一就是减少要分类的子区域,这就是R-CNN的一个改进策略,其采用了selective search方法来找到最有可能包含目标的子区域(Region Proposal),其实可以看成采用启发式方法过滤掉很多子区域,这会提升效率。 如果用的是CNN分类器,滑动窗口非常耗时

yolo 学习系列(五):K-means维度聚类

扶醉桌前 提交于 2019-11-28 07:22:47
yolo 学习系列(五):K-means维度聚类 《深度学习:手把手教你做目标检测(YOLO、SSD)》视频教程 1. 维度聚类 1.1 聚类目的 在Ubuntu系统下运行voc_label.py生成训练集和测试集列表文件,在Windows下生成的会有编码错误 当使用自己的数据集进行 YOLO 训练时,首先要做的就是讲 anchors 更换为自己的宽高尺寸,默认的是 VOC/COCO 数据集中 20/80 类目标的宽高尺寸。 维度聚类就是利用训练集迭代找出该数据集的候选框宽高尺寸。 先放结果 * * * * * * * * * * * * * * * * * n_anchors = 5 * * * * * * * * * * * * * * * * * k - means result: ( 9.503125000000356 , 8.046875000000572 ) k - means result: ( 4.367264851484575 , 6.158106435643181 ) k - means result: ( 7.935546874999882 , 4.897786458333437 ) k - means result: ( 6.179457720588269 , 7.807674632352704 ) k - means result: ( 3

深度学习框架YOLOv3的C++调用

泪湿孤枕 提交于 2019-11-28 07:18:19
深度学习框架YOLOv3的C++调用 深度学习框架YOLOv3的C++调用 (1)tensorflow版本的YOLOv3的C++调用(失败) (2)darknet版本的YOLOv3的C++调用一(失败) (3)darknet版本的YOLOv3的C++调用二(成功) 深度学习框架YOLOv3的C++调用 因为项目需要,我需要用C++调用YOLOv3来进行物体检测,本文记录了我尝试的几种调用方法,可能都有些旁门左道的感觉,大佬们不要见笑哈。 (1)tensorflow版本的YOLOv3的C++调用(失败) 首先按照下面步骤把tensorflow版本的YOLOv3跑起来 (1)下载项目代码 git clone https://github.com/qqwweee/keras-yolo3.git (2)下载完成后进到项目目录里: cd keras-yolo3 (3)YOLO官网下载weights文件或者执行: wget https://pjreddie.com/media/files/yolov3.weights (4)转换YOLO的weights文件格式为Keras的格式: python convert.py yolov3.cfg yolov3.weights model_data/yolo.h5 (5) 缺什么装什么,其中注意:ImportError: No module named

yolo v3做行人检测+alexnet做上衣颜色识别

╄→гoц情女王★ 提交于 2019-11-28 05:29:22
参考链接: 1) alexnet做上衣颜色识别 2) keras训练自己的数据集 前言: 本项目是基于yolo v3已经训练好的coco数据集的模型进行行人检测的,然后将检测出来的结果传入到alexnet训练好的上衣颜色识别模型做识别。alexnet训练上衣颜色的数据集可以采用 RAP数据集 进行训练,后面会详细说rap数据集的坑。最终结果是:alexnet的val准确率大概在76%左右【这个感觉可以改成VGG16试一下,效果可能会更好】,每一帧做测试的时候需要400多秒. requirement: ubuntu14.04【ps:ubuntu 16.04更好,因为支持cuda9.0】 python3.6.1 keras2.1.2 tensorflow-gpu==1.4.1 一.步骤说明: 1)先按照 keras版的yolov3 的视频代码,框出行人的位置 2)训练上衣颜色识别的模型,原版的【参考链接2】是识别上衣颜色+上衣类别,我需要删掉上衣类别这个网络模型,然后进行训练 3)将第一步得到的行人的位置传入第二步训练好的模型中,然后返回到Yolo v3的视频检测中继续跑 二.对于RAP数据集的坑: 首先RAP数据集的label是mat文件,这就比较棘手了,还好 github上 有转化为xml格式的代码,直接拿来用 也可以直接用我写的,统计了颜色种类+每种上衣颜色的数量 1

OpenCV+yolov3实现目标检测(C++,Python)

我与影子孤独终老i 提交于 2019-11-28 05:27:22
版权声明:本文为博主原创文章,未经博主允许不得转载(pan_jinquan) https://blog.csdn.net/guyuealian/article/details/84098461 </div> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css"> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-3019150162.css"> <div class="htmledit_views" id="content_views"> <h1 id="OpenCV%E4%BD%BF%E7%94%A8YOLO%E5%AE%9E%E7%8E%B0%E7%9B%AE%E6%A0%87%E6%A3%80%E6%B5%8B"><a name="t0"></a>OpenCV+yolov3实现目标检测(C++,Python)</h1> 转载地址 : https://blog.csdn.net/guyuealian/article/details/84098461 目标检测算法主要分为两类

Keras_Yolov3 实现人脸检测

廉价感情. 提交于 2019-11-28 05:25:43
目录 1. 实验环境的搭建 2. 人脸数据集的介绍及准备 3. 相关代码的修改及调整 4. 算法模型的fine-tuning 5. 模型检测结果 6. 图片的批量测试代码 一.实验环境的搭建 本次实验所需要的环境配置如下: Python=3.5、tensorflow-gpu==1.4.0、Keras 环境的安装: 1. 创建虚拟环境(需安装anaconda) conda create -n keras-yolo python=3.5 2. 启动虚拟环境,并且安装对应的实验环境 source activate keras-yolo pip install tensorflow-gpu==1.4 pip install keras pip install pillow pip install opencv-python pip install matplotlib (为了加快package的安装速度,可在指令后面增加清华的source: pip install ***** -i https://pypi.tuna.tsinghua.edu.cn/simple ) 3. 将代码从github上下载下来保存至自己的project文件夹下 git clone https://github.com/qqwweee/keras-yolo3.git 4. 跑demo,测试环境是否搭建好 5.

使用YOLOv2训练行人检测模型

纵然是瞬间 提交于 2019-11-28 05:21:09
关于训练YOLO v2模型过程中的经验总结。 数据集: 考虑到自己收集图片并标注,工作量较大,当前主要将包含行人的图片从已有的数据集PASCAL VOC中抽取出来,按照\VOCdevkit\VOC2007\ImageSets\Main中相应类别的txt文件,提取person_train.txt、person_val.txt、person_test.txt、person_trainval.txt中的正样本文件(包括JPEGImages中的图片和Annotations中的xml标注文件); 新建文件夹VOC_person,在其下建立文件夹Annotations、ImageSets、JPEGImages(如下图所示),将提取的图片和标注xml文件分别放置JPEGImages和Annotations中,在ImageSets中建立文件夹Main。 。 生成ImageSets\Main里的四个txt文件 通过xml名字(或图片名),生成四个txt文件,即:test.txt train.txt trainval.txt val.txt txt文件中的内容为: 000002 000005 000028 即图片名字(无后缀),test.txt是测试集,train.txt是训练集,val.txt是验证集, trainval.txt是训练和验证集.VOC2007中,trainval大概是整个数据集的50

使用YOLOv3 训练行人检测模型

北城余情 提交于 2019-11-28 05:20:51
使用YOLO进行目标检测在保证速度的前提下能有较好的准确性,这篇文章是在yolov3的代码基础上进行修改为行人检测,由原来的20个分类改为识别person,使用tiny-yolo的进行训练和检测,最后能达到还不错的效果。 1.数据集制作 收集图片并标注,这是一件工作量较大的事情,所以我们直接使用了PASCAL VOC2007的数据集,抽取其中带有行人的图片。 具体过程如下: 1.1 创建相应的文件夹 在yolo代码里的scripts/目录下创建VOC_person文件夹,在其文件夹下创建 Annotations、ImageSets、JPEGImages 文件夹,在ImageSets文件夹下建立 Main 文件夹。这里顺便说下这三个文件夹的作用: Annotations -- Annotations文件夹中存放的是xml格式的标签文件,每一个xml文件都对应于JPEGImages文件夹中的一张图片; ImageSets -- ImageSets存放的是每一种类型的challenge对应的图像数据。在ImageSets下有Main文件夹,存放的是图像物体识别的数据,总共分为20类; JPEGImages -- JPEGImages文件夹中包含了PASCAL VOC所提供的所有的图片信息,包括了训练图片和测试图片。 1.2 拷贝相应的文件 提取VOC2007/ImageSets/Main

YOLOv3只检测人

瘦欲@ 提交于 2019-11-28 05:19:33
解决办法: 修改源码只输出人一类。实际上会检测另外79类。 重新训练。 参考文献: (法一,简单高效)yolov3 修改 只识别一类(person) - Limbos的博客 - CSDN博客 https://blog.csdn.net/limbos/article/details/81949591 (法二,麻烦完美)yolov3算法检测单类物体 - z649431508的博客 - CSDN博客 https://blog.csdn.net/z649431508/article/details/82191036 文献1是针对C下的YOLOv3,本文针对Python Keras下的YOLOv3: 法一: 修改 yolo.py 第135行,添加如下代码即可: #Just detect person if predicted_class != 'person' : continue 法二: 一、源码地址 qqwweee/keras-yolo3: A Keras implementation of YOLOv3 (Tensorflow backend) https://github.com/qqwweee/keras-yolo3 二、预训练权重 https://pjreddie.com/media/files/yolov3.weights 三、数据集 https://download.csdn

深度学习数据处理

守給你的承諾、 提交于 2019-11-28 03:45:00
一 数据格式的转换脚本 1 将DOTA(HBB)数据集格式转换为yolo数据 """ #2019.4.4: 将DOTA(HBB)数据集格式转换成YOLO数据集格式 欠缺将标签保存的Txt文档保存 """ import cv2 import os from collections import defaultdict imagepath="/data/maq/DataSet/pytorch_yolov3/guigang/images" labeltxt_DOTA="/data/maq/DataSet/pytorch_yolov3/guigang/labels_dota_hbb4" labeltxt_YOLO="/data/maq/DataSet/pytorch_yolov3/guigang/labels" def readsingletxt_all_dotalabel(imagepath,labelspath,outputfile): img = cv2.imread(imagepath) size = img.shape f = open(labelspath, 'r') lines = f.readlines() file_label = open(outputfile, "a") for line in lines: line = line.split(" ")