当前位置: 首页 > news >正文

卷积神经网络(五)---图像增强的方法

        前面的部分专注于卷积神经网络的层结构介绍,同时还介绍了到目前为止比较出名的卷积神经网络,接着使用比较复杂的卷积神经网络提高了 MNIST 数据集的准确率。下面将从另外的角度——图像增强的方面入手,提高模型的准确率和泛化能力。

        一直以来,图像识别这一计算机视觉的核心问题都面临很多挑战,同一个物体在不同情况下都会得出不同的结论。        

        对于一张照片,我们看到的是一些物体,而对于计算机而言,它看到的是一些像素点,如图 4.23所示。

         如果拍摄照片的照相机位置发生了改变,那么拍得的图片对于我们而言,变化很小,但是对于计算机而言,图片的像素变化是很大的。拍照时的光照条件也是很重要的一个影响因素:光照太弱,照片里的物体会和背景融为一体,它们的像素点就会很接近,计算机就无法正确识别出物体,如图4.24所示。

        除此之外,物体本身的变形也会对计算机识别造成障碍,比如一只猫是趴着的,计 算机能够识别它,但如果猫换了一个姿势,变成躺着的状态,那么计算机就无法识别了,如图 4.25所示。

        最后,物体本身会隐藏在一些遮蔽物中,这样物体只呈现局部的信息,计算机也难以识别,如图4.26所示。

        针对这些问题,我们希望能够对原始图片进行增强,在一定程度上解决部分问题在 PyTorch 中已经内置了一些图像增强的方法,不需要再繁琐地去实现,只需要简单的调用。 

        torchvision.transforms 包括所有图像增强的方法。

  • 第一个函数是 Scale,对图片的尺度进行缩小和放大;
  • 第二个函数是 CenterCrop,对图像正中心进行给定大小的裁剪;
  • 第三个函数是 RandomCrop,对图片进行给定大小的随记裁剪;
  • 第四个函数是 RandomHorizaontalFlip,对图片进行概率为 0.5 的随机水平翻转;
  • 第五个函数是 RandomSizedCrop,首先对图片进行随机尺寸的裁剪,然后对裁剪的图片进行一个随机比例的缩放,最后将图片变成给定的大小,这在 InceptionNet 中比较流行;
  • 最后一个是 Pad,对图片进行边界零填充。

        上面介绍了 PyTorch 内置的一些图像增强的方法,还有更多的增强方法,可以使用 OpenCV或者 PIL 等第三方图形库实现。在网络的训练中图像增强是一种常见、默认的做法,对多任务进行图像增强之后都能够在一定程度上提升任务的准确率。

http://www.lryc.cn/news/410046.html

相关文章:

  • 矩阵常见分解算法及其在SLAM中的应用
  • 【排序】快速排序详解
  • 贪心算法总结(2)
  • 弘景光电:技术实力与创新驱动并进
  • 2024年7月23日~2024年7月29日周报
  • M3U8流视频数据爬虫
  • 保护您的数字财富:模块化沙箱在源代码防泄露中的突破
  • FFmpeg源码:avio_r8、avio_rl16、avio_rl24、avio_rl32、avio_rl64函数分析
  • 如何使用 API 查看极狐GitLab 镜像仓库中的镜像?
  • 软件-vscode-plantUML-IDEA
  • ES6语法详解,面试必会,通俗易懂版
  • CTFshow--Web--代码审计
  • Java语言程序设计——篇十(1)
  • Qt对比MFC优势
  • RuntimeError: No CUDA GPUs are available
  • URL参数中携带中文?分享 1 段优质 JS 代码片段!
  • sass的使用
  • 【足球走地软件】走地数据分析预测【大模型篇】走地预测软件实战分享
  • 现在有什么赛道可以干到退休?
  • c程序杂谈系列(职责链模式与if_else)
  • 前端开发技术之CSS(层叠样式表)
  • go语言day20 使用gin框架获取参数 使用自定义的logger记录日志
  • DHCP笔记
  • TCP为什么需要四次挥手?
  • MySQL 索引相关基本概念
  • Neutralinojs教程项目实战初体验(踩坑指南),干翻 electron
  • 【轻松拿捏】Java-List、Set、Map 之间的区别是什么?
  • 用户史订单查询业务
  • 第8节课:CSS布局与样式——掌握盒模型与定位的艺术
  • electron 主进程和渲染进程