source code

RandomResizedCrop,默认scale=(0.08, 1.0)
0.08意味着在100×100的图像中,最小的crop_img约为28×28

get_params函数中,输入参数imgPIL Imageimg.size对应(w, h)

计算img的面积

area = img.size[0] * img.size[1]

[0.08 * area, 1.0 * area]采样crop_img的面积

target_area = random.uniform(*scale) * area

[3/4, 4/3]采样crop_img的宽高比

aspect_ratio = random.uniform(*ratio)

由此可以建立关于wh的方程组

w * h = target_area
w / h = aspect_ratio

解得

w = int(round(math.sqrt(target_area * aspect_ratio)))
h = int(round(math.sqrt(target_area / aspect_ratio)))

以50%的概率交换wh,因为宽高比的定义为
w / h = aspect_ratioh / w = aspect_ratio均可

if random.random() < 0.5:w, h = h, w

检查crop_imgwh是否超出img的范围,如果未超出范围,则获得一组(i, j, h, w)

if w <= img.size[0] and h <= img.size[1]:i = random.randint(0, img.size[1] - h)j = random.randint(0, img.size[0] - w)return i, j, h, w

如果超出范围,则重新做一遍,这一系列步骤总共尝试10次,对应for attempt in range(10):

如果10次尝试都失败了,则计算img的短边,然后center crop一个正方形

w = min(img.size[0], img.size[1])
i = (img.size[1] - w) // 2
j = (img.size[0] - w) // 2
return i, j, w, w

最后根据(i, h, h, w)裁剪出crop_img,然后resize为指定大小

RandomResizedCrop相关推荐

  1. pytorch randomresizedcrop

    class torchvision.transforms.RandomResizedCrop(size,scale=(0.08,1.0),ratio=(0.75,1.33),interpolation ...

  2. pytorch中T.RandomResizedCrop()等图像操作转换的效果

    https://blog.csdn.net/qq_32425195/article/details/84998030

  3. pytorch常用代码

    20211228 https://mp.weixin.qq.com/s/4breleAhCh6_9tvMK3WDaw 常用代码段 本文代码基于 PyTorch 1.x 版本,需要用到以下包: impo ...

  4. 旷视MegEngine数据加载与处理

    旷视MegEngine数据加载与处理 在网络训练与测试中,数据的加载和预处理往往会耗费大量的精力. MegEngine 提供了一系列接口来规范化这些处理工作. 利用 Dataset 封装一个数据集 数 ...

  5. PyTorch迁移学习

    PyTorch迁移学习 实际中,基本没有人会从零开始(随机初始化)训练一个完整的卷积网络,因为相对于网络,很难得到一个足够大的数据集[网络很深, 需要足够大数据集].通常的做法是在一个很大的数据集上进 ...

  6. Kaggle上的犬种识别(ImageNet Dogs)

    Kaggle上的犬种识别(ImageNet Dogs) Dog Breed Identification (ImageNet Dogs) on Kaggle 在本节中,将解决在Kaggle竞赛中的犬种 ...

  7. 基于Kaggle的图像分类(CIFAR-10)

    基于Kaggle的图像分类(CIFAR-10) Image Classification (CIFAR-10) on Kaggle 一直在使用Gluon's data package数据包直接获得张量 ...

  8. 基于深度学习的口罩识别与检测PyTorch实现

    基于深度学习的口罩识别与检测PyTorch实现 1. 设计思路 1.1 两阶段检测器:先检测人脸,然后将人脸进行分类,戴口罩与不戴口罩. 1.2 一阶段检测器:直接训练口罩检测器,训练样本为人脸的标注 ...

  9. CV算法复现(分类算法6/6):MobileNet(2017年V1,2018年V2,2019年V3,谷歌)

    致谢:霹雳吧啦Wz:霹雳吧啦Wz的个人空间_哔哩哔哩_Bilibili 目录 致谢:霹雳吧啦Wz:霹雳吧啦Wz的个人空间_哔哩哔哩_Bilibili 1 本次要点 1.1 pytorch框架语法 2 ...

最新文章

  1. HTML中嵌套的子frame如何访问父页面中的函数?
  2. poj3050【dfs】
  3. 【LeetCode 剑指offer刷题】树题16:Kth Smallest Element in a BST
  4. 不扯淡学数据库实践联系理论-课程
  5. 4kyu Twice linear
  6. python能print中文吗_win10中文版,python的print不能打印中文字符?
  7. php网站入门鹿泉银山,01PHP编程新手入门第一步
  8. wxWidgets:wxPixelData< Image, PixelFormat >类模板用法
  9. 深度学习导论(3)PyTorch基础
  10. html5与css3都要学吗,前端要学css3吗?
  11. 怎么样把c语言转变为汇编语言,如何把汇编语言转换成C语言
  12. Cilium创建pod network源码解析
  13. BZOJ3312: [Usaco2013 Nov]No Change
  14. mysql大事务commit快_MYSQL事务他快你慢,都是你自己惹的祸
  15. Android系统进程Zygote启动过程的源代码分析(3)
  16. verilog之按键消抖的理解
  17. 程序员有了孩子,老大叫玲玲,老二叫玲依,老三叫...
  18. 【递归,Java从入门到精通第五版pdf百度云
  19. 自然语言处理技术的一些应用
  20. 用计算机和电视机组成家庭影院,如何让我的电脑连上我的家庭影院?

热门文章

  1. 【leetcode】108. 将有序数组转换为二叉搜索树
  2. 信息系统建设服务和能力评估和计算机信息系统集成CS资质的区别
  3. Windows7搭建FTP服务器详细教程
  4. 大学计算机期末总结范文,大学计算机课期末总结.doc
  5. 外贸企业oa移动办公管理系统
  6. JavaSwing_4.5: JMenuBar(菜单栏)
  7. 网络舆情怎么分析研判的方案
  8. FilterConfig的用法是什么
  9. 计算机应用基础——计算机软件(三)
  10. Python常用轮子下载网站