bbox

opencv-python给图片添加半透明mask

浪尽此生 提交于 2019-12-29 23:52:59
示例中,mask为矩形框,如果是不规则点的分割mask,可以使用cv2.fillPoly()函数代替cv2.rectangle(). 原始图片: import numpy as np import os import cv2 def put_mask ( img_path , output_fold ) : # 1.读取图片 image = cv2 . imread ( img_path ) # 2.获取标签 # 一般的标签格式 bbox = [x, y, w, h] bbox = [ 192 , 364 , 267 , 37 ] # 3.画出mask zeros = np . zeros ( ( image . shape ) ) bbox = [ int ( b ) for b in bbox ] bbox [ 2 ] = bbox [ 2 ] + bbox [ 0 ] bbox [ 3 ] = bbox [ 3 ] + bbox [ 1 ] zeros_mask = cv2 . rectangle ( zeros , ( bbox [ 0 ] , bbox [ 1 ] ) , ( bbox [ 2 ] , bbox [ 3 ] ) , color = ( 0 , 0 , 255 ) , thickness = - 1 ) #thickness=-1 表示矩形框内颜色填充 #

按指定的尺寸修改Pocal Voc数据中的GT的尺寸

送分小仙女□ 提交于 2019-12-25 01:26:22
import os import xml.etree.ElementTree as ET #程序功能:批量修改VOC数据集中xml标签文件的标签名称 def changelabelname(inputpath): listdir = os.listdir(inputpath) for file in listdir: if file.endswith('xml'): file = os.path.join(inputpath,file) print(file) tree = ET.parse(file) root = tree.getroot() for object1 in root.findall('object'): for bboxs in object1.findall('bndbox'): xmin=ymin=xmax=ymax=0 xmin_ori=ymin_ori=xmax_ori=ymax_ori=0 for bbox_xmin in bboxs.findall('xmin'): xmin_ori=int(bbox_xmin.text) xmin=int(bbox_xmin.text)-250 for bbox_ymin in bboxs.findall('ymin'): ymin_ori=int(bbox_ymin.text) ymin=int(bbox

faster-rcnn

时间秒杀一切 提交于 2019-12-18 20:36:19
转载链接: http://blog.csdn.net/zy1034092330/article/details/62044941 参考博客:http://blog.csdn.net/WoPawn/article/details/52223282?locationNum=7 进经过RCNN和Fast RCNN的积淀,Ross B. Girshick在2016年提出了新的Faster RCNN,在结构上,Faster RCN已经将特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显。 图1 Faster CNN基本结构(来自原论文) 缩进依作者看来,如图1,Faster RCNN其实可以分为4个主要内容: Conv layers。作为一种CNN网络目标检测方法,Faster RCNN首先使用一组基础的conv+relu+pooling层提取image的feature maps。该feature maps被共享用于后续RPN层和全连接层。 Region Proposal Networks。RPN网络用于生成region proposals

(Few-shot Detection)Review: Comparison Network for one-shot Conditional object detection

送分小仙女□ 提交于 2019-12-15 07:06:03
本篇文章思路比较简单,作者认为,One-shot Learning只检测与query image相似的目标,是一种有条件的检测任务,适合引入贝叶斯条件概率理论。 网络的大致模型: (a) 表示以前做One-shot conditional detection任务的常用做法,采用selective windows设计一个固定的metric 方法;(b)表示LSTD的做法,对RPN和分类器都采用features来做fine-tune;(c)OSCD的思想是,改变RPN为条件RPN,bbx和分类都是条件生成 这种做法,作者认为有三个好处: class agnostic 只计算原图和query image的相似性,并不关心query image的类别; training-free 在测试阶段不需要更新网络参数 overcome forgetting 由于是metric learning,所以训练后的参数是固定的 网络的具体模型: 先采用一个Siamese network进行特征采样,然后将两个特征融合输入C-RPN中计算ROI的相似度和bbox,再把相似的regoin用作C-Classifier做相似度计算和bbox计算 用于复现的话,可以看下面连个伪代码: 来源: CSDN 作者: bryce1010 链接: https://blog.csdn.net/Fire_to_cheat_

基于SSD的目标检测模型

落爺英雄遲暮 提交于 2019-12-12 13:08:59
简介 Single Shot MultiBox Detector (SSD) 是一种单阶段的目标检测器。与两阶段的检测方法不同,单阶段目标检测并不进行区域推荐,而是直接从特征图回归出目标的边界框和分类概率。SSD 运用了这种单阶段检测的思想,并且对其进行改进:在不同尺度的特征图上检测对应尺度的目标。如下图所示,SSD 在六个尺度的特征图上进行了不同层级的预测。每个层级由两个3x3卷积分别对目标类别和边界框偏移进行回归。因此对于每个类别,SSD 的六个层级一共会产生 38x38x4 + 19x19x6 + 10x10x6 + 5x5x6 + 3x3x4 + 1x1x4 = 8732 个检测结果。 SSD 可以方便地插入到任何一种标准卷积网络中,比如 VGG、ResNet 或者 MobileNet,这些网络被称作检测器的基网络。在这个示例中我们使用 MobileNet。 在训练时还会对图片进行数据增强,包括随机扰动、扩张、翻转和裁剪: 扰动: 扰动图片亮度、对比度、饱和度和色相。 扩张: 将原始图片放进一张使用像素均值填充(随后会在减均值操作中减掉)的扩张图中,再对此图进行裁剪、缩放和翻转。 翻转: 水平翻转。 裁剪: 根据缩放比例、长宽比例两个参数生成若干候选框,再依据这些候选框和标注框的面积交并比(IoU)挑选出符合要求的裁剪结果。 参考链接 参考论文:https://arxiv

【代码解读】yolov3测试过程

夙愿已清 提交于 2019-12-11 05:32:42
yolov3项目完整的代码_tensorflow版本 一 分析yolov3的测试部分 首先看一下整体的测试代码:Image_demo.py 写了一些注释: import cv2 import numpy as np import core . utils as utils import tensorflow as tf from PIL import Image ###############——————————第1部分:参数定义——————————————############## return_elements = [ "input/input_data:0" , "pred_sbbox/concat_2:0" , "pred_mbbox/concat_2:0" , "pred_lbbox/concat_2:0" ] #加载pb文件的时候,需要 输入节点和输出节点的 tensor返回值, #参考:https://blog.csdn.net/fu6543210/article/details/80343345 pb_file = "./yolov3_coco.pb" image_path = "./docs/images/road.jpeg" num_classes = 80 input_size = 416 graph = tf . Graph ( ) #计算图

(one-shot detection)Review: Comparison Network for one-shot Conditional object detection

大憨熊 提交于 2019-12-10 18:53:40
本篇文章思路比较简单,作者认为,One-shot Learning只检测与query image相似的目标,是一种有条件的检测任务,适合引入贝叶斯条件概率理论。 网络的大致模型: (a) 表示以前做One-shot conditional detection任务的常用做法,采用selective windows设计一个固定的metric 方法;(b)表示LSTD的做法,对RPN和分类器都采用features来做fine-tune;(c)OSCD的思想是,改变RPN为条件RPN,bbx和分类都是条件生成 这种做法,作者认为有三个好处: class agnostic 只计算原图和query image的相似性,并不关心query image的类别; training-free 在测试阶段不需要更新网络参数 overcome forgetting 由于是metric learning,所以训练后的参数是固定的 网络的具体模型: 先采用一个Siamese network进行特征采样,然后将两个特征融合输入C-RPN中计算ROI的相似度和bbox,再把相似的regoin用作C-Classifier做相似度计算和bbox计算 用于复现的话,可以看下面连个伪代码: 来源: CSDN 作者: bryce1010 链接: https://blog.csdn.net/Fire_to_cheat_

Cascade R-CNN 集联RCNN最全论文解析!只需一文!全面掌握!

邮差的信 提交于 2019-12-10 09:43:12
Cascade R-CNN 文章目录 Cascade R-CNN @[toc] 概述 相关工作 IoU及阈值关系 Cascade R-CNN 级联结构分析 Stage过程的分布变化 Cascade R-CNN Detection实现 实验分析 Quality Mismatch Ablation Experiments Comparison with *Iterative BBox* and *Intergral Loss* Comparison with the state-of-the-art 总结 红色字体部分解析 概述 本文主要针对的是目标检测问题中IoU阈值选择的问题,提出了一种muti-stage的architecture,称之为Cascade,主要思路为:在R-CNN结构系列的train和inference阶段,利用不断提高的IoU阈值,在保证样本数不减少的情况下,用一个stage的输出去训练下一个stage ,每个stage做重采样保证高质量低噪声的数据样本,提高检测器的训练质量。 IoU阈值*u*设置的对抗性: 1) u 设置得太高,虽然正样本proposals包含较少的background,但是相应的训练样本的数量也会减少,容易引发过拟合; 2) u 设置得太低,虽然样本数量有了保证,但是正样本proposals包含更多的background

Faster RCNN Tensorflow在测试得到result.txt文件

こ雲淡風輕ζ 提交于 2019-12-05 16:59:22
需要准备三个路径: 1、一个是进行测试时所使用的那些图片,找到其路径 2、result.txt所在的路径 3、生成图像的存放路径 1 #!/usr/bin/env python 2 3 4 from __future__ import absolute_import 5 from __future__ import division 6 from __future__ import print_function 7 8 import _init_paths 9 from model.config import cfg 10 from model.test import im_detect 11 from model.nms_wrapper import nms 12 13 from utils.timer import Timer 14 import tensorflow as tf 15 import matplotlib.pyplot as plt 16 from PIL import Image 17 import numpy as np 18 import os, cv2 19 import argparse 20 21 22 from nets.vgg16 import vgg16 23 from nets.resnet_v1 import resnetv1 24 25

yolo系列阅读笔记(v1-v3)

只谈情不闲聊 提交于 2019-12-04 11:28:54
yolov1 模型输出的概率建模 图片首先被分割为S*S的网格(grid cell)。如果一个bbox的中心落在一个网格里,则该网格负责检测该物体。(对于pascal数据集,S定为7) 每个网格预测B个bbox及其confidence score,confidence定义为Pr(Object)∗IOU。 若该网格内没有物体,score应当是0;否则score被希望等于IOU(即如果网格不包含目标中心,则Pr(Object)=0,否则=1)。这个score反应了置信度,此处置信度是指模型预测的box是否真的包含目标(即第一项)以及模型自己认为box的准确度(即第二项)。 每个bbox包含5个预测值,分别为x,y,w,h和score。(x,y)坐标是box中心相对于网格边界(?),(w,h)是相对于整幅图像。score代预测box与真实值的iou。(iou不是能通过xywh直接算出来吗?) 每个cell同时还预测C个类别概率,即 \[ \begin{equation} \operatorname{Pr}\left(\text { Class }_{i} | \text { Object }\right) \end{equation} \] 根据条件概率公式,有: \[ \operatorname{Pr}\left(\text { Class }_{i} \text { |Object