六月 北京 | 高性能计算之GPU CUDA培训

6月22-24日三天密集式学习  快速带你入门阅读全文>

正文共1328个字,3张图,预计阅读时间6分钟。

训练Object Detection模型SSD完毕之后进入test阶段,每张图像在进入输入层之前需要进行resize操作,以满足CNN模型对输入层size的要求。本文首先介绍了Caffe实现的SSD模型对输入图像的变换规定,引出了OpenCV中的resize方法,最后介绍该方法中的插值参数cv.INTER_LINEAR和该插值方法的原理。

caffe_ssd

caffe_ssd在test阶段,对图像的变换设置如下:

 1test_transform_param = { 2'mean_value': [104, 117, 123], 3'force_color': True, 4'resize_param': { 5        'prob': 1, 6        'resize_mode': P.Resize.WARP, 7        'height': resize_height, 8        'width': resize_width, 9        'interp_mode': [P.Resize.LINEAR],10        },11}

以上设定来自ssd_coco.py。

1、'mean_value': [104, 117, 123]是ImageNet图像BGR三个通道的均值。每张图像分别需要减去相应通道的均值,实现中心化。

2、'force_color': True强制采用彩色BGR图像模式,防止灰度图像维度与SSD模型输入层维度不一致。

3、resize_param属性在caffe.proto的ResizeParameter中有说明。

 1// Message that stores parameters used by data transformer for resize policy 2message ResizeParameter { 3//Probability of using this resize policy 4optional float prob = 1 [default = 1]; 5enum Resize_mode { 6WARP = 1; 7FIT_SMALL_SIZE = 2; 8FIT_LARGE_SIZE_AND_PAD = 3; 9}10optional Resize_mode resize_mode = 2 [default = WARP];11optional uint32 height = 3 [default = 0];12optional uint32 width = 4 [default = 0];13// A parameter used to update bbox in FIT_SMALL_SIZE mode.14optional uint32 height_scale = 8 [default = 0];15optional uint32 width_scale = 9 [default = 0];16enum Pad_mode {17CONSTANT = 1;18MIRRORED = 2;19REPEAT_NEAREST = 3;20}21// Padding mode for BE_SMALL_SIZE_AND_PAD mode and object centering22optional Pad_mode pad_mode = 5 [default = CONSTANT];23// if specified can be repeated once (would fill all the channels)24// or can be repeated the same number of times as channels25// (would use it them to the corresponding channel)26repeated float pad_value = 6;27enum Interp_mode { //Same as in OpenCV28LINEAR = 1;29AREA = 2;30NEAREST = 3;31CUBIC = 4;32LANCZOS4 = 5;33 }34//interpolation for for resizing35repeated Interp_mode interp_mode = 7;36}

其中的interp_mode采用LINEAR模式对图像进行Resize操作,与Opencv中的resize一致。

接下来,我们具体介绍一下OpenCV中的resize方法。

resize方法的签名

 1C++:    2void cv::resize (InputArray src, 3OutputArray             dst, 4Size                      dsize, 5double                  fx = 0, 6double                  fy = 0, 7int                       interpolation = INTER_LINEAR 8)        9Python:   10dst =   cv.resize(src, dsize[, dst[, fx[, fy[, interpolation]]]])

参数说明:

 1src 输入图像. 2dst 输出图像; 其size为dsize,或由src.size()、fx与fy计算而得; dst类型与src保持一致.    3dsize 输出图像的size; 如果设为0,或(0, 0), 计算方式为: 4

OpenCV的resize方法与双线性插值相关推荐

  1. python cv2.resize_Python OpenCV 图像缩放 cv2.resize 方法

    今天是持续写作的第 42 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 本篇博客只学习一个方法,cv2.resize 即图像缩放. 取经之旅第 9 天 铺垫知识 resize 方 ...

  2. Python OpenCV 图像缩放 cv2.resize 方法

    今天是持续写作的第 42 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 本篇博客只学习一个方法,cv2.resize 即图像缩放. 取经之旅第 9 天 铺垫知识 resize 方 ...

  3. 手写数字图片数据之python读取保存、二值化、灰度化图片+opencv处理图片的方法

    python 读取.保存.二值化.灰度化图片+opencv处理图片的方法 进行手写数字的图片预测的时候碰到了这样的问题. 先说说处理图片有三种方式 一.matplotlib 二.PIL 三.openc ...

  4. opencv学习—简单方法用于斑马线检测(Python)

    opencv学习-简单方法用于斑马线检测(Python) 目录 opencv学习-简单方法用于斑马线检测(Python) 1.读取原图像并将图像灰度化 2.通过高斯滤波去除噪声信息 3.阈值分割 4. ...

  5. 别魔改网络了,Google研究员:模型精度不高,是因为你的Resize方法不够好!

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨小马 编辑丨极市平台 导读 尽管近年来卷积神经网络很大地促进了计算机视觉的发展,但一个重要方面很 ...

  6. python连接opencv库_python环境下安装opencv库的方法

    注意:安装opencv之前需要先安装numpy,matplotlib等 一.安装方法 方法一.在线安装 1.先安装opencv-python pip install opencv-python --u ...

  7. 别魔改网络了,Google研究员:模型精度不高,是因为你的Resize方法不够好

    作者丨小马 编辑丨极市平台 本文原创首发于极市平台公众号,转载请获得授权并标明出处. [写在前面] 尽管近年来卷积神经网络很大地促进了计算机视觉的发展,但一个重要方面很少被关注:图像大小对被训练的任务 ...

  8. OpenCV使用Shi-Tomasi方法检测拐角的实例(附完整代码)

    OpenCV使用Shi-Tomasi方法检测拐角的实例 OpenCV使用Shi-Tomasi方法检测拐角的实例 OpenCV使用Shi-Tomasi方法检测拐角的实例 #include "o ...

  9. OpenCV使用Harris-Stephens方法检测角点的实例(附完整代码)

    OpenCV使用Harris-Stephens方法检测角点的实例 OpenCV使用Harris-Stephens方法检测角点的实例 OpenCV使用Harris-Stephens方法检测角点的实例 # ...

最新文章

  1. Delphi下利用WinIo模拟鼠标键盘详解
  2. OpenGL 镜面反射 IBL
  3. 如何在线创建索引或者重构索引
  4. cudnn.deterministic = True 固定随机种子
  5. 不用也要知道的几种算法(PHP版本)
  6. 亲测可用——PostgresSQL安装教程
  7. 卸载 趋势科技防毒墙网络版
  8. JAVA——斐波那契数列(递归)
  9. 网吧游戏服务器制作教程,网吧服务器系统环境部署
  10. 路由器和交换机的基本配置
  11. JavaScript重写alert方法
  12. C# winform 快速导入excel 到datagridview
  13. 一文了解:微服务及其演进史
  14. 用计算机求锐角三角形的度数,三角函数超入门(2)锐角三角形的三角比
  15. megaface 数据集组成,介绍,Identification/Verification逻辑
  16. 求测此项目成败与否,财运如何?
  17. 终端软件测试风险,终端的性能测试分析
  18. 【笔记】文献阅读[YOLOV3]-An Incremental Improvement
  19. 气相色谱仪的原理及其组成介绍
  20. Low Power之CPF/UPF

热门文章

  1. java中简单的if语句_java中if语句的写法
  2. 多元样条函数及其应用_B样条算法(B-spline)
  3. 百度统计 java 实现思路_211本+985硕+计算机专业投面百度,坐等一周迎来三面,已拿offer...
  4. python 计算s= 12+ 22+ 32 +... + (10*n+2)
  5. LeetCode Contains Duplicate III
  6. 临死之前我要写一本《中国哲学史——以自然主义和人道主义的矛盾为视角》...
  7. 分子机制研究的五个层次,你的研究在哪个层次--转载
  8. jumpserver(0.3.2版本)开源跳板机系统部署
  9. js判断设备、浏览器类型
  10. 【转】Linux下gcc编译生成动态链接库*.so文件并调用它