gamma变换图像增强

数据集中往往会出现这些对比度和亮度不统一的场景,例如:有些场景采光好,效果明显;有些整体场景昏暗,整体亮度低,对比度低;还有一些场景例如黑暗中的灯光,周围环境暗灯光亮,整体亮度低局部亮度高,对比度高。



采用的对比度与亮度图像增强算法来自于gamma变换,
有点:图像调整变得非常自然,不易失真。
代码如下:


import cv2
import numpy as npdef gamma_trans(img, gamma):'''首先归一化到0-1范围,然后gamma作为指数值求出新的像素值再还原'''gamma_table = [np.power(x / 255.0, gamma) * 255.0 for x in range(256)]gamma_table = np.round(np.array(gamma_table)).astype(np.uint8)return cv2.LUT(img, gamma_table)  # 作为一个查表的映射img = cv2.imread(path_org)
img3 = gamma_trans(img,0.75)

增强后的效果(第一张原图):

在yolov5中添加图像增强

在github上下载yolov5源码包;
然后再utils目录下的datasets.py文件

def load_image(self, i):的函数中添加数据增强的函数:

如:

def gamma_trans(img, gamma):'''首先归一化到0-1范围,然后gamma作为指数值求出新的像素值再还原'''gamma_table = [np.power(x / 255.0, gamma) * 255.0 for x in range(256)]gamma_table = np.round(np.array(gamma_table)).astype(np.uint8)return cv2.LUT(img, gamma_table)  # 作为一个查表的映射def load_image(self, i):# print("!!!!!!%%%%")# loads 1 image from dataset index 'i', returns im, original hw, resized hwim = self.imgs[i]if im is None:  # not cached in ramnpy = self.img_npy[i]if npy and npy.exists():  # load npyim = np.load(npy)else:  # read imagepath = self.img_files[i]im = cv2.imread(path)  # BGRassert im is not None, 'Image Not Found ' + path# gamma变换数据增强im = gamma_trans(im, random.uniform(0.5, 2.0))

修改后完整datasets.py代码;

# YOLOv5 												

【yolov5系列】 为yolov5网络增加亮度数据增强方法相关推荐

  1. 基于图像的数据增强方法发展现状综述

    基于图像的数据增强方法发展现状综述 人工智能技术与咨询 2022-03-22 20:57 点击蓝字 · 关注我们 来源:< 计算机科学与应用> ,作者冯晓硕等 关键词: 数据增强:图像数据 ...

  2. Open3d系列 | 2. Open3d实现点云数据增强

    如有错误,恳请指出. 在计算机视觉领域中,基于图像已经提出了一系列的数据增强方法.常见图像数据增强方式有平移.缩放.旋转等仿射变换,还有对比度变换等等.那么,对于点云来说,同样可以进行平移缩放与旋转. ...

  3. 计算机视觉数据增强方法汇总

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 前言: 在计算机视觉方向,数据增强的本质是人为地引入人视觉上的先验知识,可以很好地提升模型的性能,目前 ...

  4. 只讲关键点之兼容100+种关键点检测数据增强方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨DefTruth 编辑丨极市平台 本文介绍了已有的几种关键点检测数据增强的方法,将其的优缺点进行 ...

  5. 一篇就够!数据增强方法综述

    作者 | 太子长琴 整理 | NewBeeNLP 数据增强(Data Augmentation, DA)缓解了深度学习中数据不足的场景,在图像领域首先得到广泛使用,进而延伸到 NLP 领域,并在许多任 ...

  6. 水下目标检测之数据集和数据增强方法

    水下目标检测之数据集和数据增强方法 通过之前对yolov5的简单学习,发现yolov5的训练和调试都比较方便,因此希望将其运用到水下目标检测的任务中.那么首要任务就是寻找比较合适的数据集作为训练样本, ...

  7. 各种 AI 数据增强方法,都在这儿了

    来源 | 算法进阶 责编 | 寇雪芹 头图 | 下载于视觉中国 数据.算法.算力是人工智能发展的三要素.数据决定了Ai模型学习的上限,数据规模越大.质量越高,模型就能够拥有更好的泛化能力. 然而在实际 ...

  8. 【技术综述】深度学习中的数据增强方法都有哪些?

    很多实际的项目,我们都难以有充足的数据来完成任务,要保证完美的完成任务,有两件事情需要做好:(1)寻找更多的数据.(2)充分利用已有的数据进行数据增强,今天就来说说数据增强. 作者 | 言有三 编辑 ...

  9. [综述类] 一文道尽深度学习中的数据增强方法(上)

    今天带来一次有关于深度学习中的数据增强方法的分享. 00 什么是数据增强 在深度学习项目中,寻找数据花费了相当多的时间.但在很多实际的项目中,我们难以找到充足的数据来完成任务. 为了要保证完美地完成项 ...

最新文章

  1. python 使用sort()函数和正则表达式(lambda)对os.listdir()获取的文件夹文件列表进行重新排序 乱序排序
  2. Django(part45)--forms模块
  3. SAP Spartacus build error之后的retrigger方式
  4. 音速索尼克 怪人_如何使用AI玩刺猬索尼克。 真干净!
  5. Django基础之中间件
  6. Duplicate property mapping of contactPhone found in
  7. matlab中表示拉普拉斯分布_神奇的正态分布
  8. 求职历程之-----我的求职信
  9. matlab 加权回归估计_Matlab:地理加权回归基本操作
  10. windows10 快捷代码
  11. 【网易互娱模拟笔试】解题记录
  12. xp给指定计算机共享,WinXP系统设置访问共享提示指定网络名不可用怎么解决
  13. MIMO的信道容量以及实现
  14. 简一论币:8.14 晚间BTC行情分析及操作建议
  15. 乔任梁离世3个月, 徐璐狠心关评论只发了10条微博, 这一条令人心疼
  16. 这个充电宝不仅支持无线充,关键还小
  17. win10matlab2016启动卡,教你解决win10专业版开机卡死的方法
  18. RecyclerView --- 分割线
  19. 如何撰写一篇好的英文论文(感谢导师的指导,学到很多)
  20. 算法学习-零子数组,最大连续子数组

热门文章

  1. 项目管理中绩效考核如果实施(3)(转)
  2. android 省市区三级联动选择器
  3. 华硕飞行堡垒7开启虚拟化
  4. 前台和后台的数据交互
  5. a标签与button按钮
  6. BZOJ1296(SCOI2009)[粉刷匠]--背包+DP
  7. excel数据透视表中插入一列新数据
  8. php使用redis缓存
  9. 通信软件设计基础(第2版)pdf分享
  10. 一本通 1255:迷宫问题