yolo

YOLO系列的IOU、GIOU源码阅读

自古美人都是妖i 提交于 2019-11-30 12:05:26
#include "box.h" #include <stdio.h> #include <math.h> #include <stdlib.h> //#define DEBUG_NAN //#define DEBUG_PRINTS int nms_comparator(const void *pa, const void *pb) { detection a = *(detection *)pa; detection b = *(detection *)pb; float diff = 0; if(b.sort_class >= 0){ diff = a.prob[b.sort_class] - b.prob[b.sort_class]; } else { diff = a.objectness - b.objectness; } if(diff < 0) return 1; else if(diff > 0) return -1; return 0; } void do_nms_obj(detection *dets, int total, int classes, float thresh) { int i, j, k; k = total-1; for(i = 0; i <= k; ++i){ if(dets[i].objectness == 0){ detection

2019-06-02 Python-随手记

为君一笑 提交于 2019-11-30 11:27:22
1. python2 两个int整数相除,结果仍旧是整数,例如 3/4 0 因为自己clone的工程中需要用两个int相除得到float型的数,而自己的conda环境又是python2.7的,所以只能寻求其他解决方案。 解决路径如下 https://blog.csdn.net/yygydjkthh/article/details/39377265 解决方法: 在代码的第一行加入如下语句(注意一定是代码的第一行,不然会报错)即可: from __future__ import division 2. 跑yolo v3,识别视频,可以正常识别但是无法存储 报错信息如下: Traceback (most recent call last): File "yolo_video.py", line 75, in <module> detect_video(YOLO(**vars(FLAGS)), FLAGS.input, FLAGS.output) File "/home/sjt/Tensorflow/keras-yolo3/yolo.py", line 195, in detect_video image = Image.fromarray(frame) File "/home/sjt/anaconda2/envs/tf/lib/python2.7/site-packages/PIL

目标检测代码实战篇

主宰稳场 提交于 2019-11-29 22:02:57
关注『机器视觉CV』领取免费 GPU 算力 深度学习的三驾马车:数据、模型、算力。本文将从这三方面,实现 YOLO 目标检测,让自己的数据跑起来 数据 一个深度学习项目最好的初始状态是拥有漂亮的数据,但是一般情况下很难达到这种条件,往往需要根据自己项目的需求寻找相应的数据。对于目标检测项目来说,漂亮的数据应该是按照规范的标注。那么有数据却没有标注怎么办,我们推荐一款开源的标注工具 LabelImg ,有着方便的 GUI 界面,可以方便打开一个文件夹,对相应的图片做标注,标注完成以后,支持 PascalVOC 或者 YOLO 格式导出,非常的方便。 该项目开源在: https://github.com/tzutalin/labelImg 想尝试一下本项目,苦于没数据怎么办?有数据不想标注,想看一下本项目的效果怎么办?这都不是问题,文末联系我,为你准备了两份数据 ! 模型 目标检测分为 Two-stage 和 One-stage 顾名思义就是两步完成还是一步完成(发展历程就是从 Two-stage 到 One-stage 的过程) One-stage 和 Two-stage 各有千秋,One-stage 因为没有候选框生成步骤,所以速度会更快,速度更快意味着丧失了部分的精度,Two-stage 因为有候选框的选取过程,所以精度会更高,丧失部分精度,果然是鱼与熊掌不可兼得。 常见的

yolo v3 中的边框公式

落爺英雄遲暮 提交于 2019-11-29 20:59:30
转自: https://blog.csdn.net/u010397980/article/details/85058630 图为预测boundingbox的公式。 预测边框时cx, cy为相对于左上角的位置,每个小格的长度为1,图中此时cx=1,cy=1。 tx和ty分别经过sigmoid输出0-1之间的偏移量,与cx, cy相加后得到bounding box中心点的位置。 pw, ph是 手动设置 的anchor宽和高,tw, th分别与pw, ph作用后得到bounding box的宽和高。 这样就能得到预测boudingbox的x,y,w,h了,我们的目的是让预测的x,y,w,h和真实的groundtruth接近,于是我们就可以写loss了。 来源: https://www.cnblogs.com/HonsiaBlogs/p/11532095.html

How can I download a specific part of Coco Dataset?

我只是一个虾纸丫 提交于 2019-11-29 12:09:36
I am developing an object detection model to detect ships using YOLO. I want to use the COCO dataset. Is there a way to download only the images that have ships with the annotations? From what I personally know, if you're talking about the COCO dataset only, I don't think they have a category for "ships". The closest category they have is "boat". Here's the link to check the available categories: http://cocodataset.org/#overview BTW, there are ships inside the boat category too. If you want to just select images of a specific COCO category, you might want to do something like this (taken and

深度学习 专项课程 (四) —— Convolutional Neural Networks

别来无恙 提交于 2019-11-29 11:10:22
Coursera - Convolutional Neural Network - Andrew Ng 学习随笔 Part 1 Fundations of Convolutional Neural Network 一些常识:卷积意义基本性质. 尺寸计算 [ ((2xPad + Input) - Filter) / Stride + 1 ]. Valid Convolution :不加pad, filter全部在image里面 // Full Convolution : 从filter和image刚相交开始做卷积,白色部分为填0 // Same Convolution :当filter的中心(K)与image的边角重合时,开始做卷积运算, 这里的same还有一个意思,卷积之后输出的feature map尺寸保持不变(相对于输入图片). Strided Convolution. 还有Convolution和Cross-Correlation操作的区别(有没有Flipping),但是对于CNN无所谓(都是线性权值). Convolutions Over Volumn: filter的channel和输入channel保持一致,一个filter输出一个单通道图,多filter多通道输出 One Layer of a Convolutional Network: Simple

Faster R-CNN、SSD和YOLO

╄→гoц情女王★ 提交于 2019-11-29 06:31:10
最近做一些关于Faster R-CNN、SSD和YOLO模型选择和优化的项目,之前只了解Faster R-CNN系列目标检测方法,于是抽空梳理一下这几个检测模型。先上两张简单的精确度和运算量的对比图,有个粗略的了解,虽然图中缺了YOLO,参考价值仍然很大: 下面开始分别详述吧~ Faster R-CNN架构 传统目标检测方法大致分为如下三步: 深度学习特别是CNN的出现使得上述第二三步可以合并在一起做。Faster R-CNN步骤: (1)由输入图片产生的区域候选 (2)最后一层卷积输出的所有通道 (2)最后一层卷积输出的所有通道 pooling=> + (3)ROI pooling 候选区的产生 RPN的核心思想是使用卷积神经网络直接产生region proposal,使用的方法本质上就是滑动窗口。RPN的设计比较巧妙,RPN只需在最后的卷积层上滑动一遍,因为anchor机制和边框回归可以得到多尺度、多长宽比的region proposal,3*3滑窗对应的每个特征区域同时预测输入图像3种尺度(128,256,512),3种长宽比(1:1,1:2,2:1)的region proposal,这种映射的机制称为anchor: RPN 利用基网络对图像用一系列的卷积和池化操作进行特征提取,得到原始的feature maps(灰色区域),然后在原始的feature

Python实现YOLO目标检测

随声附和 提交于 2019-11-29 00:24:17
作者:R语言和Python学堂 链接:https://www.jianshu.com/p/35cfc959b37c 1. 什么是目标检测? YOLO目标检测的一个示例 啥是目标检测? 拿上图 (用YOLOv3检测) 来说, 目标检测 (Object Detection) 就是将图片中的物体用一个个矩形框框出来,并且识别出每个框中的物体是啥,而且最好的话是能够将图片的所有物体都框出来。 再来看下YOLOv3在视频上的效果: 总之,目标检测本质上包含两个任务: 物体识别 和 物体定位 。 2. 目标检测技术的概述 目前,基于深度学习(deep learning)的目标检测技术效果是最好的,这些技术模型可以分成三类: R-CNN系列,包括R-CNN,Fast R-CNN,以及Faster R-CNN Single Shot Detector (SSD) You Only Look Once (YOLO)系列,其中YOLOv3是今天的主角 下面来简单说一下这些模型,SSD这里就不介绍了,感兴趣的话可自行去了解。 R-CNN系列 Faster R-CNN的基本原理 上图是Faster R-CNN模型的原理简图,技术细节可参考下面所提及的相关文章。 R-CNN系列的演化路径为:R-CNN → Fast R-CNN → Faster R-CNN R-CNN 是第一个基于深度学习的目标检测模型

yolov3转openvino

做~自己de王妃 提交于 2019-11-28 19:48:49
C:\Users\Administrator\tensorflow-yolo-v3>python ./convert_weights.py --class_names D:\e_disk\material\luhui20180319\darknet\v3\darknet\cfg\coco.names --weights_file D:\e_disk\material\luhui20180319\darknet\v3\darknet\build\darknet\x64\yolov3.weights --ckpt_file C:\Users\Administrator\tensorflow-yolo-v3\yolov3.ckpt Model saved in path: C:\Users\Administrator\tensorflow-yolo-v3\yolov3.ckpt https://www.lizenghai.com/archives/28353.html 来源: https://blog.csdn.net/luhuillll/article/details/100120358

关于SSD和YOLO对小目标的思考

不想你离开。 提交于 2019-11-28 15:39:21
所谓的小目标,要看是绝对小目标(像素),和相对小目标(相对原图的长宽来看的)。大目标小目标只跟receptive field(感受野)有关,cnn本身可以检测任何尺度的物体。ssd对小目标检测不太适用,但R-FCN速度和鲁棒存在问题。 小目标分为很多种,背景单一还是比较好做的。有一篇小人脸检测用的是 fullyconvolutionalnetwork(FCN) + ResNet ,此篇论文检测小目标用了其周边的信息,如头发,肩膀。 小目标像素特征少,不明显,因此和大目标相比,小目标的检测率低,这个用任何算法上都是无法避免的。SSD,YOLO等单阶段多尺度算法,小目标检测需要高分辨率,但是SSD对小目标的检测是在浅层特征上进行,而深层的特征用来检测大目标,但是!深层的特征语义信息非常丰富,这是一个矛盾。例如底层conv4_3anchor设置的是0.1~0.2:30x60,对于720p的图像检测尺寸就有72个像素,还是太大了。事实上SSD的源码允许一个特征层做多个尺度的滑窗,将参数min_sizes里的每个元素初始化为一个列表,就可以在相应特征层中生成不同尺度的anchor,如果你设计的足够仔细,基本就可以覆盖足够小的目标了,不过此时anchor的数量估计会涨不少,速度也会降下来。 faster rcnn,yolo,ssd对小目标检测结果都不好