【剑指offer】常用的数据增强的方法
系列文章目录
BN层详解
梯度消失和梯度爆炸
交叉熵损失函数
反向传播
1*1卷积的作用
文章目录
- 系列文章目录
- 常用的数据增强的方法
- 示例代码
常用的数据增强的方法
数据增强是指通过对原始数据进行一系列变换来生成更多的训练数据,从而提高模型的泛化能力。常用的数据增强方法包括:
- 随机裁剪:随机从原图中裁剪一部分区域,然后将其缩放到指定大小。这种方法可以增加模型对不同物体的感知能力,同时也可以减少过拟合。
- 随机旋转:随机将原图旋转一定角度,以生成不同角度的样本。这种方法可以提高模型对旋转物体的识别能力。
- 随机缩放:随机将原图缩放到不同尺寸,以生成不同大小的样本。这种方法可以提高模型对不同大小物体的识别能力。
- 随机翻转:随机将原图水平或垂直翻转,以生成不同方向的样本。这种方法可以提高模型对不同方向物体的识别能力。
- 随机扰动:在原图中添加噪声或扰动,以生成更多的样本。这种方法可以提高模型对噪声和扰动的鲁棒性。
- 随机变换颜色:随机改变原图的颜色,如亮度、对比度、饱和度等,以生成更多的样本。这种方法可以提高模型对不同光照条件的识别能力。
- 模板匹配:在原图中使用不同的模板进行匹配,以生成更多的样本。这种方法可以提高模型对不同物体形态的识别能力。
- 数据混合:将多个不同的图片进行混合,以生成更多的样本。这种方法可以提高模型对不同物体组合的识别能力。
总之,数据增强方法可以提高模型的泛化能力,从而提高模型的准确率。在实际应用中,常常需要根据具体的任务和数据集,选择合适的数据增强方法。
示例代码
以下是一些使用Python实现的数据增强方法示例代码:
- 随机裁剪
import random
from PIL import Imagedef random_crop(image, crop_size):width, height = image.sizex = random.randint(0, width - crop_size)y = random.randint(0, height - crop_size)crop = image.crop((x, y, x + crop_size, y + crop_size))return crop
- 随机旋转
import random
from PIL import Imagedef random_rotate(image, angle_range):angle = random.uniform(-angle_range, angle_range)rotated = image.rotate(angle)return rotated
- 随机缩放
import random
from PIL import Imagedef random_scale(image, scale_range):scale = random.uniform(*scale_range)width, height = image.sizenew_width = int(width * scale)new_height = int(height * scale)resized = image.resize((new_width, new_height))return resized
- 随机翻转
import random
from PIL import Imagedef random_flip(image):if random.random() < 0.5:flipped = image.transpose(Image.FLIP_LEFT_RIGHT)else:flipped = image.transpose(Image.FLIP_TOP_BOTTOM)return flipped
- 随机扰动
import random
from PIL import Image, ImageFilterdef random_noise(image, noise_range):noise = random.uniform(*noise_range)noised = image.filter(ImageFilter.GaussianBlur(radius=noise))return noised
- 随机变换颜色
import random
from PIL import Image, ImageEnhancedef random_color(image, color_range):factor = random.uniform(*color_range)enhancer = ImageEnhance.Color(image)colored = enhancer.enhance(factor)return colored
- 模板匹配
import random
from PIL import Imagedef random_template_match(image, template_list):template = random.choice(template_list)result = cv2.matchTemplate(image, template, cv2.TM_CCOEFF_NORMED)_, _, _, max_loc = cv2.minMaxLoc(result)x, y = max_locw, h = template.shape[::-1]matched = image.crop((x, y, x + w, y + h))return matched
- 数据混合
import random
from PIL import Imagedef random_mix(images):mixed = images[0]for image in images[1:]:mixed = Image.blend(mixed, image, 0.5)return mixed
以上代码仅为示例,实际应用时需要根据具体的任务和数据集进行调整和修改。
测试方式,以随机裁剪为例:
# 读取图片
image = Image.open('Figures/Ali.jpg')
# 随机裁剪
img_new = random_crop(image,200)
# 保存图片
img_new.save('Figures/new_image.jpg')
相关文章:
【剑指offer】常用的数据增强的方法
系列文章目录 BN层详解 梯度消失和梯度爆炸 交叉熵损失函数 反向传播 1*1卷积的作用 文章目录 系列文章目录常用的数据增强的方法示例代码 常用的数据增强的方法 数据增强是指通过对原始数据进行一系列变换来生成更多的训练数据,从而提高模型的泛化能力。常用的数…...
/lib/lsb/init-functions文件解析
零、背景 在玩AppArmor的时候涉及到了/etc/init.d/apparmor(无论是sudo /etc/init.d/apparmor start还是sudo systemctl start apparmor.service),而这个文件又涉及到了另一个文件、也就是本文的主角:/lib/lsb/init-functions。 …...

【ChatGPT】ChatGPT-5 强到什么地步?
Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员,2024届电子信息研究生 目录 ChatGPT-5 强到什么地步? 技术 深度学习模型的升级 更好的预测能力 自适应学习能力 特点 语言理解能力更强 自我修正和优化 更广泛的应用领域 应用 对话系统 智能写作…...

[ARM+Linux] 基于全志h616外设开发笔记
修改用户密码 配置网络 nmcli dev wifi 命令扫描周围WIFI热点 nmcli dev wifi connect xxx password xxx 命令连接WiFi 查看ip地址的指令: ifconfig ip addr show wlan0 SSH登录 这是企业开发调试必用方式,比串口来说不用接线,前提是接入网络…...

如何实现24小时客户服务
许多企业都有着这样的愿望:在不增加客服人员的同时能实现24小时客户服务。 那么有没有什么方法可以实现这一想法呢?在想解决方案之前我们可以先来谈谈客服的作用。 客服的作用主要为以下2点: 帮助用户更快地了解产品(减轻产品的…...
查询数据库空间(mysql和oracle)
Mysql版 1、查看所有数据库容量大小 -- 查看所有数据库容量大小 SELECTtable_schema AS 数据库,sum( table_rows ) AS 记录数,sum(TRUNCATE ( data_length / 1024 / 1024, 2 )) AS 数据容量(MB),sum(TRUNCATE ( index_length / 1024 / 1024, 2 )) AS 索引容量(MB) FROMinfor…...
为什么 SQLite 一定要用 C 语言来开发?
SQLite 是一种专门为在 Unix 和类 Unix 操作系统上运行的 Linux 服务器应用程序而设计的数据库管理系统,是一种轻量级的关系型数据库管理系统,它适用于许多嵌入式设备和物联网设备。它使用 C 语言编写,并且是一个开源项目。 简单易用&#x…...

TensorFlow Lite,ML Kit 和 Flutter 移动深度学习:6~11
原文:Mobile Deep Learning with TensorFlow Lite, ML Kit and Flutter 协议:CC BY-NC-SA 4.0 译者:飞龙 本文来自【ApacheCN 深度学习 译文集】,采用译后编辑(MTPE)流程来尽可能提升效率。 不要担心自己的…...

你的GPT跟ChatGPT可能只差了一个DPU
“人类永远不会嫌网络太快,就像永远不会嫌高铁太快,你只会嫌它慢,希望它更快些。” 一个月内,百度、阿里、腾讯、商汤、讯飞、360等国内大厂扎堆发布“中国版 GPT ”,这家的名字还没记清楚,另一家的又蹦了出…...

springboot服务端接口外网远程调试,并实现HTTP服务监听 - 内网穿透
文章目录 前言1. 本地环境搭建1.1 环境参数1.2 搭建springboot服务项目 2. 内网穿透2.1 安装配置cpolar内网穿透2.1.1 windows系统2.1.2 linux系统 2.2 创建隧道映射本地端口2.3 测试公网地址 3. 固定公网地址3.1 保留一个二级子域名3.2 配置二级子域名3.2 测试使用固定公网地址…...
NumPy的应用-1
准备工作 在Python中使用NumPy时,需要先安装NumPy。可以使用以下命令来安装NumPy: pip install numpy安装完成后,在Python中引入NumPy: import numpy as np安装完成并引入NumPy后,我们可以开始使用NumPy进行数据分析…...
k8s的yaml文件中kind类型详解
在Kubernetes(k8s)的YAML语法中,kind是一种重要的关键字,它用于指定Kubernetes资源的类型。根据Kubernetes官方文档,以下是kind可能的取值: Deployment:用于定义应用程序的声明式更新。Statefu…...
第三天:C语言控制结构
目录 1. 条件语句 2. 循环语句 3. 实例:计算阶乘 在前两天的学习中,您已经掌握了C语言的基本知识。今天,我们将学习C语言的控制结构,包括条件语句和循环语句。通过控制结构,您可以实现程序的分支和循环,…...

访问若依vue版后端api接口
访问若依vue版后端api接口 如何使用Talend API Tester进行访问若依vue-前后端分离版的后端api接口? 方法一: 写好一个后台api接口,启动项目 直接使用Talend API Tester进行访问后台api出现如下错误,原因是因为若依系统有jwt认证…...

另一种迁移xxl-job任务的方法,适合不满足数据迁移条件
以为多个项目组同时使用一个xxl-job,同时涉及到版本提升,由此不太满足数据库数据迁移,所以这里提供另一种解决办法 使用工具:postman,json转excel,excel 核心:excel拼接: 1.使用f12抓取xxl任务访…...

Redis缓存穿透、击穿、雪崩面试题详解
缓存穿透 问题: 指的是客户端请求的数据在缓存中找不到,数据库中也没有存储,客户端还不断的发起请求。这样每次都无法在数据库查询到,缓存中永远没有这个数据。 这样的话,客户端一直去访问,会给后端数据…...

【网络安全】本地提权漏洞分析
0. 前言 CVE-2023-21752 是 2023 年开年微软第一个有 exploit 的漏洞,原本以为有利用代码会很好分析,但是结果花费了很长时间,难点主要了两个:漏洞点定位和漏洞利用代码分析,欢迎指正。 1. 漏洞简介 根据官方信息&a…...

电脑端(PC)按键精灵——3.其他命令
电脑端(PC)按键精灵——3.其他命令 前两节说了安装、键盘和鼠标命令,这一章说下其他命令 按键精灵小白入门详细教程: 电脑端(PC)按键精灵—小白入门 详细教程 命令介绍 1. Delay 延时 简介 //1秒=1000毫秒, 1分钟=60000毫秒,…...

Hudi集成Flink-写入方式
文章目录 一、CDC 入湖1.1、[开启binlog](https://blog.csdn.net/wuxintdrh/article/details/130142601)1.2、创建测试表1.2.1、创建mysql表1.2.2、将 binlog 日志 写入 kafka1、使用 mysql-cdc 监听 binlog2、kafka 作为 sink表3、写入sink 表 1.2.3、将 kakfa 数据写入hudi1、…...

深度探索list
1.list的基本组成 list是一个双向链表,它的基本组成就是 成员作用prev指针指向上一个元素next指针指向下一个元素data用来保存数据 2.list的迭代器 由于人们一般习惯于:迭代器是找到下一个元素,迭代器–是找到上一个元素。在双向链表list中…...
Qt Widget类解析与代码注释
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码,写上注释 当然可以!这段代码是 Qt …...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...

代码规范和架构【立芯理论一】(2025.06.08)
1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...

Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...

一些实用的chrome扩展0x01
简介 浏览器扩展程序有助于自动化任务、查找隐藏的漏洞、隐藏自身痕迹。以下列出了一些必备扩展程序,无论是测试应用程序、搜寻漏洞还是收集情报,它们都能提升工作流程。 FoxyProxy 代理管理工具,此扩展简化了使用代理(如 Burp…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...