yolov5-5.0版本代码详解----augmentations.py的augment_hsv函数
yolov5-5.0版本代码详解----augmentations.py的augment_hsv函数
1、用途
图片的hsv色域增强模块
2、调用位置
在datasets.py的LoadImagesAndLabels类的__getitem__函数(590行)调用
传入参数是hyp文件中的hsv三通道的系数
augment_hsv(img, hgain=hyp['hsv_h'], sgain=hyp['hsv_s'], vgain=hyp['hsv_v'])
3、代码注释
3.1 传入参数
def augment_hsv(im, hgain=0.5, sgain=0.5, vgain=0.5):"""参数:img: 待处理图片 BGRhgain: h通道色域参数 用于生成新的h通道,默认为0.5sgain: h通道色域参数 用于生成新的s通道,默认为0.5vgain: h通道色域参数 用于生成新的v通道,默认为0.5"""
3.2 HSV颜色空间增强
if hgain or sgain or vgain:# 随机取-1到1三个实数,乘以hyp中的hsv三通道的系数 用于生成新的hsv通道r = np.random.uniform(-1, 1, 3) * [hgain, sgain, vgain] + 1# 图像的通道拆分 h s vhue, sat, val = cv2.split(cv2.cvtColor(im, cv2.COLOR_BGR2HSV))dtype = im.dtype # uint8x = np.arange(0, 256, dtype=r.dtype)lut_hue = ((x * r[0]) % 180).astype(dtype) # 生成新的h通道lut_sat = np.clip(x * r[1], 0, 255).astype(dtype) # 生成新的s通道lut_val = np.clip(x * r[2], 0, 255).astype(dtype) # 生成新的v通道# 图像通道合并 img_hsv=h+s+v 随机调整hsv之后重新组合hsv通道# cv2.LUT(hue, lut_hue) 通道色域变换 输入变换前通道hue 和变换后通道lut_hueim_hsv = cv2.merge((cv2.LUT(hue, lut_hue), cv2.LUT(sat, lut_sat), cv2.LUT(val, lut_val)))# no return needed dst:输出图像cv2.cvtColor(im_hsv, cv2.COLOR_HSV2BGR, dst=im)
yolov5-5.0版本代码详解----augmentations.py的augment_hsv函数相关推荐
- 一、DeepSort C++版本代码详解-deepsort.cpp
本文源码基于开源项目:https://github.com/bianjingshan/MOT-deepsort.git 内容简介: 目前主流的目标跟踪算法都是基于Tracking by Detecti ...
- Yolov5代码详解——detect.py
首先执行扩展包的导入: import argparse import os import platform import sys from pathlib import Path import t ...
- Vue2.0 脚手架代码详解
参考作者:https://www.jianshu.com/p/2b661d01eaf8 只是为了方便个人学习. 来看一下脚手架创建后的项目目录 说明:在*.vue文件,template标签里写htm ...
- 版本代码详解:Alpha,Beta,Rc,GA,RTM,OEM等简称都代码什么意义
为什么80%的码农都做不了架构师?>>> Alpha:是内部测试版,一般不向外部发布,会有很多Bug.一般只有测试人员使用. Beta:也是测试版,这个阶段的版本会一直加入新的 ...
- 【PHP】PHP5.4.0版本ChangeLog详解(上)
前言 随着大量的框架使用composer和namespace,渐渐的线上环境也从之前的5.3变成了5.4或者5.5甚至5.6,随着7月份PHP7的发布,会有更多的公司采用新版本. 之前好久就想写这样的 ...
- Kaggle泰坦尼克号-决策树Top 3%-0基础代码详解
Titanic Disaster Kaggle,里的经典入门题目,因为在学决策树所以找了一个实例学习了一下,完全萌新零基础,所以基本每一句都做了注释. 原文链接:Titanic: Simple Dec ...
- yolov5的detect.py代码详解
目标检测系列之yolov5的detect.py代码详解 前言 哈喽呀!今天又是小白挑战读代码啊!所写的是目标检测系列之yolov5的detect.py代码详解.yolov5代码对应的是官网v6.1版本 ...
- jQuery选择器代码详解(一)——Sizzle方法
对jQuery的Sizzle各方法做了深入分析(同时也参考了一些网上资料)后,将结果分享给大家.我将采用连载的方式,对Sizzle使用的一些方法详细解释一下,每篇文章介绍一个方法. 若需要转载,请写明 ...
- python实现二分查找代码+详解
python实现二分查找代码+详解 一.规定函数值 函数输入值 li=[1,2,3,4,5,6,7,8,9]#输入的集合 val=4#要查找的值 函数内部值 left=0#代表集合中第一个值的位置 r ...
最新文章
- Python学习--not语句
- python爬虫自学网站_Python爬虫3步曲:5分钟学习用Python解析网页
- SpringMVC4集成ehcache
- NLP:基于snownlp库对文本实现提取文本关键词和文本摘要
- 小游戏专场:腾讯云Game-Tech技术沙龙上海站顺利落下帷幕
- 参与Apache顶级开源项目的N种方式,Apache Dubbo Samples SIG 成立!
- python3网络爬虫开发实战豆瓣_大牛程序员教你1天入门Python3 网络爬虫例子
- 从入门到头秃,2018年机器学习图书TOP10
- Python:Python全球生态主站,pip安装方法、集成安装方法、文件安装方法、第三方库自动安装脚本
- 接受字符串参数,返回一个元组,并分别统计字符串中大小写的个数
- vscode插件安装失败的解决方案
- css实现--三角形/箭头(上下左右)--详细原理
- 61家第三方收单机构、247家商业银行、70家农商银行及119家村镇银行收单机构号
- Oracle物化视图的刷新
- 技术族谱:预告片的制作思路
- 中国手机企业库存高达6000万,市场正常后或大规模降价促销
- 深度学习环境搭建超级详解(Miniconda、pytorch安装)
- 调查显示,“大辞职潮”对经理层打击最为严重,工作倦怠成为离职的关键原因 | 美通社头条...
- 使用A*算法求迷宫最短路径问题
- 数字身份认证已经成为数字身份的关键命题