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

无需复杂正则:SLS 新脱敏函数让隐私保护更简单高效

作者:孙玉梅

背景

AI 时代海量交互数据推动智能应用快速发展,但其中的个人隐私信息也带来严峻的安全挑战。数据脱敏已从可选项转变为企业合规经营的必需品。

  • 合规需求日趋严格:随着 GDPR(通用数据保护条例)、《数据安全法》、《个人信息保护法》等法律法规的相继出台,个人身份信息、财务记录、医疗数据等敏感信息一旦泄露,企业不仅面临天价罚款,更会遭遇信任危机。
  • 安全保障刻不容缓:通过定期敏感数据扫描和脱敏处理,可有效防止未授权访问和数据泄露,提升数据治理水平和系统整体安全性。

SLS 现有脱敏方案:多元化的数据保护体系

阿里云日志服务(SLS)早已构建了完善的数据脱敏处理体系,提供了 3 种灵活的采集+脱敏 Pipeline 组合流程,满足不同业务场景的需求:

image

🔹 Logtail 端侧脱敏

  • 处理插件模式:通过配置数据脱敏插件,基于正则匹配完成敏感字段的精准替换
  • SPL 语句模式:通过多级处理语句配置 SPL 解析,实现灵活的端侧脱敏处理

🔹 Logtail + Ingest Processorer 联合脱敏

  • Logtail 端专注数据采集,Ingest Processorer 承担脱敏处理,避免端侧资源过度占用
  • 通过 SPL 语句使用 regexp_replace 正则表达式函数,在服务侧完成高性能脱敏处理

🔹 SDK + Ingest Processorer 组合脱敏

  • 基于 SDK 接口调用完成日志写入
  • 通过 IngestProcessor 里设置脱敏语句(也是使用 regexp_replace 正则表达式函数),脱敏处理在日志服务中完成,不占用端侧资源

关于这些脱敏方案的详细配置和最佳实践方案,可参考文章:云上数据安全保护:敏感日志扫描与脱敏实践详解 [ 1]

升级之路:mask 函数简化脱敏操作

上述三种脱敏方案已能满足绝大部分场景的需求,其核心能力主要基于正则表达式匹配。然而,尽管正则表达式功能强大,但在处理日益复杂的数据场景时,其固有的局限性也逐渐凸显:

⚡ 配置复杂度激增: 处理十多种敏感信息类型需要编写数十个复杂正则表达式,维护成本呈指数级增长。

⚡ 性能瓶颈凸显: 多重嵌套的正则表达式操作会严重拖慢实时处理性能。

⚡ 场景适配困难: JSON、URI、纯文本的混合日志格式中,难以用统一正则配置高效处理。

为此,SLS 推出全新的脱敏函数(mask)。

mask 函数脱敏方案介绍

mask 函数能够对结构化和非结构化日志中的海量敏感数据进行精准识别和脱敏。该函数目前已在 SLS 数据处理器(Ingest Processor)中上线,后续将逐步扩展到 LoongCollector 等更多应用场景,为用户提供更加便捷、高效、智能的数据脱敏体验。下面介绍如何在 SLS IngestProcessor 中使用 mask 脱敏函数。

mask 脱敏函数

函数语法

mask(field, varchar params)
  • 参数说明:

image

模式介绍:

keyword 模式:智能识别任意文本中符合"key":"value"、'key':'value'或key=value 等常见 KV 对格式的敏感信息。

buildin 模式:支持邮箱、手机号(国内)、身份证、固话(国内)、IP、信用卡 6 种内置规则。

  • SPL 使用示例
* | extend content =  mask(content,'[
  {"mode":"buildin", "types" : ["EMAIL", "PHONE"]},
  {"mode":"keyword", "keys":["userName"], "maskChar":"*", "keepPrefix":2,"keepSuffix":1},
]')

数据处理器

IngestProcessor [ 2] 可以对数据进行预处理,例如数据过滤、字段提取、字段扩展、数据脱敏等场景。下图是使用数据处理器对原始数据,利用 SPL 配置脱敏函数规则,对 IP 地址进行脱敏处理的示例图。

image

性能对比

我们在 SLS Ingestion 端到端环境中与正则脱敏方式进行了对比测试。

  • 测试数据规模:数据包大小从 70KB 到 7MB
  • 脱敏复杂度:分别配置 1 个 keyword、3 个 keyword、100 多 keyword + 6 个 buildin 规则
  • 性能指标:平均处理延迟(ms)

测试结果如下:

image

mask 脱敏函数相比正则方式具有更高的处理效率,特别适用于大数据量和复杂脱敏需求的场景。

使用案例

声明:下述案例中所有原始日志均为 AI 模拟构造的数据。

案例一:交易数据脱敏实践

在金融科技、区块链等场景下,交易日志往往以复杂的嵌套 JSON 格式记录,其中包含了大量的用户钱包地址、IP、电话号码等高度敏感信息。mask 函数的 keyword 模式可以精准地深入 JSON 结构,对指定字段进行脱敏,同时保持日志的整体结构和可读性。

需求

DeFi 平台每日处理数万笔链上交易,每笔交易都会生成包含用户钱包地址、交易哈希、用户画像等敏感信息的详细日志。为了满足数据保护法规要求,同时保证业务分析和故障排查的需要,需要对交易确认日志中的 钱包地址、地址信息、来源 IP、手机号、交易哈希等敏感字段进行脱敏,保留前后各 3 位字符以便业务追溯。

  • 原始日志:
2025-08-20 18:04:40,998 INFO  blockchain-event-poller-3 [10.0.1.20] [com.service.listener.TransactionStatusListener:65] [TransactionStatusListener#handleSuccessfulTransaction]{"message":"On-chain transaction successfully confirmed","confirmationDetails":{"transactionHash":"0x2baf892e9a164b1979","status":"success","blockNumber":45101239,"gasUsed":189543,"effectiveGasPrice":"58.2 Gwei","userProfileSnapshot":{"wallet":"0x71C7656EC7a5f6d8A7C4","sourceIp":"203.0.113.55","phone":"19901012345","address":"上海市浦东新区文明路1000号","birthday":null}}}

脱敏配置

  • SPL:使用 keyword 模式,一次性处理多个敏感字段
*| extend content =  mask(content,'[
           {"mode":"keyword","keys":["wallet","address","sourceIp","phone","transactionHash","sourceIp"], "maskChar":"*","keepPrefix":3,"keepSuffix":3}
         ]')
  • 配置数据处理器

image

脱敏效果

如下是脱敏后的 logstore 中日志展示,可以看到通过一条配置精准脱敏了所有敏感字段,既保护了用户隐私安全,又保留了完整的业务逻辑和可追溯性。

image

案例二:大模型交互日志脱敏

大模型交互日志是典型的非结构化数据,用户输入内容完全不可控,可能包含各类 PII 信息。传统的脱敏方案在面对如此多样化、非结构化的文本时,往往需要维护数十个正则表达式,不仅准确率低,还极易出现遗漏。mask 函数的 buildin 模式此时便能大显身手,仅需在函数中配置开启的脱敏 types,即可自动发现并脱敏文本中符合内置规范的各类敏感数据,为 AI 应用提供强大的安全屏障。

需求

智能客服平台每日处理超过 10 万次用户咨询,用户经常在求助时无意中透露手机号、身份证、银行卡等敏感信息。需要自动识别并脱敏用户输入中的手机号、邮箱、 IP 地址、身份证号和信用卡号等敏感信息,在保护隐私的同时保留语义完整性,为后续的 AI 训练和分析提供安全、可用的数据。

  • 原始日志:这是一条用户向 AI 客服求助的完整对话记录,包含了几乎所有常见的 PII 类型
你好,我需要紧急帮助!我是你们平台的长期付费用户,我的账户好像被锁定了,而且一笔年度会员续费失败了。我非常着急,因为我今晚需要使用你们的高级功能来完成一个项目
以下是我的全部信息,请你们的系统管理员或技术支持立刻为我核实并解决问题:
姓名 张伟
注册手机号是 19901012345
注册邮箱是 zhangwei.service@example.com
我最近一次登录的IP地址 203.0.113.55
身份证号是 110105199003070033
用于支付的信用卡信息如下:
信用卡类型 Visa
卡号是 4539-1488-0343-6467
持卡人姓名 ZHANG WEI
有效期 12/25
CVV码 123
请尽快处理,万分感谢!我真的非常需要你们的帮助!

脱敏配置

  • SPL 配置:使用 buildin 模式,智能识别多种敏感信息类型。
  • 配置说明:
    • 第一条规则:对 IP 地址和邮箱进行完全脱敏(默认用*全部替换)
    • 第二条规则:对手机号、身份证号、信用卡号进行部分脱敏,保留前 3 位后 4 位
* | extend content =  mask(content,'[
             {"mode":"buildin","types":["IP_ADDRESS","EMAIL","LANDLINE_PHONE"]},
             {"mode":"buildin","types":["PHONE","IDCARD","CREDIT_CARD"], "maskChar":"*","keepPrefix":3,"keepSuffix":4}
            ]')

脱敏效果

通过内置的脱敏规则,智能识别并脱敏了文本中的敏感信息,在完全保护用户隐私的同时,保持了对话内容的语义完整性和可读性。

image

案例三:Nginx日志中敏感URI参数脱敏实践

访问日志详细记录了用户的每一次访问行为,是故障排查、性能优化和安全审计的重要依据。然而,URI 参数中往往包含用户 ID、会话 Token、API 密钥等高度敏感信息,是数据泄露的高危区域。用户 ID、会话 Token 等参数往往直接暴露在 URL 中。mask 的 keyword 模式能精准识别 key=value 格式,对 URI 中的特定参数进行定向“打码”。

需求

某电商平台的 API 网关每日处理数千万次请求,现需要对 URI 里的 uid 和 token 参数进行脱敏,保留前后各 2 位字符。

  • 原始日志:这是一条典型的 API 访问日志 URI,包含了用户身份信息和会话认证信息
uri: "uid=user12345&token=bf81639a41d604&from=web"

脱敏配置

使用 keyword 模式,定位 URI 参数进行选择性脱敏。

image

脱敏效果

image

实现了选择性精准脱敏,敏感参数被安全隐藏,非敏感参数完整保留,在保护隐私的同时最大化保持了日志的分析价值。

  • uid 参数:从 user12345 脱敏为 us*******45。
  • token 参数:从 bf81639a41d604 脱敏为 bf**********04,防止会话劫持。
  • from 参数:保持 web 不变,维持业务分析价值。

相关链接:

[1] 云上数据安全保护:敏感日志扫描与脱敏实践详解

https://developer.aliyun.com/article/1645590

[2] IngestProcessor

https://help.aliyun.com/zh/sls/sls-write-processor/

点击此处,了解更多产品详情。

相关文章:

无需复杂正则:SLS 新脱敏函数让隐私保护更简单高效

AI 时代海量交互数据推动智能应用快速发展,但其中的个人隐私信息也带来严峻的安全挑战。数据脱敏已从可选项转变为企业合规经营的必需品。作者:孙玉梅 背景 AI 时代海量交互数据推动智能应用快速发展,但其中的个人隐私信息也带来严峻的安全挑战。数据脱敏已从可选项转变为企…...

DRAM、SRAM、NAND Flash、NOR Flash、EEPROM、MRAM存储器你分得清吗?

DRAM、SRAM、NAND Flash、NOR Flash、EEPROM、MRAM存储器,这些是计算机和电子设备中最核心的几种存储器技术。 首先,我们可以从两个最根本的特性来对它们进行初步区分:​​易失性 (Volatile)​​:断电后数据是否丢失。​​读写特性​​:是像内存一样可以​​按字节随机读写…...

【初赛】最短路 次短路 k短路 - Slayer

最短路、次短路、k短路算法总结与C++代码示例 一、最短路算法 1. Dijkstra算法(单源最短路,非负权图)适用场景:有向/无向图,边权非负,求单源最短路径 时间复杂度:O(m log n)( n 为顶点数,m 为边数,使用优先队列+邻接表)2. Bellman-Ford 算法(单源最短路,支持负权图…...

hyperv 管理的 ubuntu 虚拟机压缩磁盘

1. 删除所有检查点,必须全部删除2. 多次执行 fstrim 命令sudo fstrim -av /: 488 GiB (498240180224 bytes) trimmed on /dev/sda2sudo fstrim -av /: 122 MiB (126992384 bytes) trimmed on /dev/sda2sudo fstrim -av /: 0 B (0 bytes) trimmed on /dev/sda2直到出现 0 B (0 …...

PLC结构化文本设计模式——适配器模式(Adapter Pattern)

PLC Structured Text Design Patterns PLC结构化文本设计模式——适配器模式(Adapter Pattern) 介绍 适配器模式(Adapter Pattern)充当两个不兼容接口之间的桥梁,属于结构型设计模式。它通过一个中间件(适配器)将一个类的接口转换成客户期望的另一个接口,使原本不能一起…...

【实战记录】使用 wp-cli 恢复/修改 WordPress 密码

内容概览:使用 wp-cli 修改 WordPress 密码 docker 常规操作(文件复制、执行 bash 等)也是好久没写博客了,突发奇想想在自己的 WordPress 站点写一篇博文。 然后我惊讶的发现,我忘记密码了,更糟糕的是,出于安全考虑,我启用了这个:汗流浃背了家人们(非常推荐各位安装一…...

Spring Boot 下 Druid 连接池:多维度优化打造卓越性能

大家好,我是凯哥Java 本文标签:Spring Boot、Druid连接池、数据库连接池优化、性能监控 本文聚焦 Spring Boot 中 Druid 连接池的极致优化,从基础环境搭建、核心参数调优、监控体系构建、安全增强、连接泄漏检测等多方面展开,给出详细策略与高级技巧,还提供避坑指南,助力…...

讨好型人格自救指南:重建健康自我与关系

讨好型人格自救指南:重建健康自我与关系<script src="https://cdn.tailwindcss.com"></script><script>tailwind.config = {theme: {extend: {colors: {primary: #B8860B,secondary: #DAA520,accent: #F4E4BC,neutral: #2C2C2C,base-100: #FEFDFB…...

vue3使用vue3-pdf-app预览pdf文档

引入第三方组件库npm i vue3-pdf-app@1.0.3vue3 创建组件<template><VuePdfApp :style="`width: ${viewerWidth}; height: ${viewerHeight};`":pdf="src" @pages-rendered="pagesRendered" :config="config"></VuePdf…...

使用lvgl/lv_port_pc_visual_studio在PC上运行LVGL模拟器

本文使用lvgl/lv_port_pc_visual_studio项目,在PC上成功运行了LVGL模拟器,包含详细的步骤。前言 我看的韦东山的LVGL教程,第一章都是在PC上跑模拟器。 在LVGL的文档中,官方推荐了数个IDE。我首先尝试了VS Code,研究了半天都编译不过。又尝试了教程中提供的CodeBlocks的方法…...

深入解析:Spring Boot 深入剖析:SpringApplicationRunListener

深入解析:Spring Boot 深入剖析:SpringApplicationRunListenerpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&qu…...

Hutool 调用第三方接口报错

报错信息 java.lang.reflect.InaccessibleObjectException: Unable to make field protected java.lang.String java.net.HttpURLConnection.method accessible: module java.base does not "opens java.net" to unnamed module @28c4711cat java.base/java.lang.ref…...

丑东西经济学:全面分析

```html丑东西经济学:全面分析<script src="https://cdn.tailwindcss.com"></script>:root { --primary: #8B5A3C; --secondary: #D4A574; --accent: #2E1F15; --neutral: #F5F1EC; --base-100: #FEFCF8; --base-content: #1A1A1A } body { font-family…...

Python turtle 海龟画图入门指南

Python海龟画图入门指南 Python海龟画图(Turtle Graphics)是一个非常适合编程初学者的图形绘制库,它基于Logo编程语言的概念,通过控制一个"海龟"在屏幕上移动来绘制图形。 海龟画图基础知识 1. 基本概念海龟(Turtle):一个可以在画布上移动的箭头(默认形状为箭头,…...

uni-app中v-if使用”异常”

在vue中如果想实现通过某些条件渲染不同内容,其中使用比较多的就是v-if,它会根据你传入的东西是否为真值来决定要不要显示当前内容块,但是最近在uni-app中使用的时候发现了一点小问题,一起看看是什么问题吧。前情 最近又接手一个全新多端项目,包括抖音/快手/微信/支付宝/安…...

二叉树遍历

1.广度优先遍历 2.深度优先遍历 1.前序遍历 根结点--左子树--右子树 void pre(int p){printf("%d\n",p);if(tree[p].l)pre(tree[p].l);if(tree[p].r)pre(tree[p].r); }2.中序遍历 左子树--根结点--右子树 void in(int p){if(tree[p].l)in(tree[p].l);printf("%d…...

Python Socket网络编程(3)

class类里面先执行__new__,然后__init__ 单例模式线程安全单例模式点击查看代码 import threadingclass Singleton:instance = Nonelock = threading.Rlock()def __new__(cls, *args, **kwargs):if cls.instance:return cls.instancewith cls.lock:if cls.instance:return cls…...

实用指南:有关gitlab14.x版本在内网环境下无法添加webhooks的解决方法

实用指南:有关gitlab14.x版本在内网环境下无法添加webhooks的解决方法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier …...

如何创建可引导的 macOS Tahoe 安装介质

如何创建可引导的 macOS Tahoe 安装介质如何创建可引导的 macOS 安装介质 如何创建可引导的 macOS 安装器 | 如何制作 macOS USB 启动盘 请访问原文链接:https://sysin.org/blog/macos-createinstallmedia/ 查看最新版。原创作品,转载请保留出处。 作者主页:sysin.orgmacOS …...

强类型、类型安全

说 C++ 是类型安全的强类型语言,这句话其实不完全准确。更精确的说法是,C++ 是一门静态类型、强类型但并非完全类型安全的语言。 我们先来理解一下你提到的两个概念,以及它们在C++中的具体体现。 强类型(Strongly-typed) 强类型主要指的是,在语言中,不同类型的数据之间操…...

完整教程:数据结构——逻辑结构物理结构

完整教程:数据结构——逻辑结构&物理结构pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !i…...

前端面试

题目 JS和TS区别类型JS:动态类型,变量类型在运行时确定,无需显示声明类型。 TS:静态类型,支持类型注解和编译时类型检查,可提前发现错误。编译与运行JS:直接由浏览器或者node.js,无需编译 TS:需要通过编译器(tsc)转换为JS代码后才能运行。语法扩展JS:仅支持基础的ECMAScrip…...

外置Tomcat启动Springboot项目后,请求参数中文乱码的问题解决 - yjry

首先按照常规的排查流程逐个进行配置,都是无效果的: 1、检查了tomcat的conf/server.xml里Connector标签有无配置URIEncoding="UTF-8",添加了配置,无效; 2、tomcat/bin/catalina.bat,添加了JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"配置,无效;…...

JSON字符串转换List对象列表 JSONArray toJavaList

JSON字符串转换List对象列表 JSONArray toJavaListJSON字符串转换List对象列表 JSONArray toJavaListpackage com.example.core.mydemo.java3.jsonDemo;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.example.core.mydemo.json2…...

gradle项目多模块中主模块加载子模块中的sqlmapper文件方法

gradle项目多模块中主模块加载子模块中的sqlmapper文件方法gradle项目多模块中主模块加载子模块中的sqlmapper文件方法 1.子模块 build.gradlesourceSets.main.resources { srcDirs = ["src/main/resources", "src/main/java"] // 包含Java目录下的XML…...

MCP - 使用 fastmcp 编写 Client 调用 MCP Serverr - Streamable HTTP (四)

xx源代码: mcp_server_tool_registry.zip...

全面理解MySQL架构

一条SQL查询执行的流程客户端 连接工具(Navacat,SQLyog,JDBC)都是客户端,主要用于发送执行SQL语句的请求 服务端 服务端可以分为server层和存储引擎层 server层 负责处理SQL语句, 解析, 优化, 缓存等. 负责权限管理, 用户认证等 提供了复制, 备份, 恢复等高级功能 Server层…...

Figma EX 125.7.5 UI原型设计

** 描述** Figma是一款专业的UI原型设计软件,Figma能够帮助团队创建、测试和发布更好的设计,Figma支持Windows和macOS 等多个平台,软件注意自适应屏幕大小、历史记录、导入Sketch文件等功能。它是一个真正为设计师而开发的设计软件,软件可以让网络设计变得简单。它能够创建…...

啥是CPU

啥是CPU?CPU即为中央处理器,一般决定CPU性能的参数有:频率,核心,线程,指令集频率决定了在相同架构下单CPU核心的运行速度,#核心数量一般决定了CPU处理多任务的能力,现在的绝大部分CPU都是多个核心组合成的线程则决定了核心和内存交换数据的速度某些CPU可能为了降低功耗…...

C# Avalonia 15- Animation- CodeAnimation

C# Avalonia 15- Animation- CodeAnimation例子展现了两种设置动画的方法,各位自行选择。CodeAnimation.axaml代码<Window xmlns="https://github.com/avaloniaui"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schema…...

vue3 使用 docx-preview 预览 Word文档

引入第三方库npm i docx-previewvue3创建组件<template><div><!-- 用于渲染文档的容器 --><div ref="previewContainer" class="preview-wrapper"></div></div> </template><script setup>import {define…...

数据库原理-第三章——SQL

Structured Query Language数据查询 Select数据操纵 Insert、Delete、Update数据定义 Create、Drop、Alter数据控制 Grant、Revoke事务处理 begin transaction、commit、rollback指针、游标控制(CCL) DECLARE CURSOR、FETCH INTO、UPDATE、WHERE CURRENT数据库的数据类型数值…...

ubuntu 18.04安装mysql 8.0.41

环境Os:ubuntu 18.04 desktop桌面版mysql:mysql:8.0.41 glibc2.17 查看操作系统信息root@db:~# ldd --version ldd (Ubuntu GLIBC 2.27-3ubuntu1) 2.27 Copyright (C) 2018 Free Software Foundation, Inc. This is free software; see the source for copying conditions. Th…...

Topaz Photo AI Pro 4.0.4 AI图片智能降噪(win版)

描述 Topaz Photo AI是一款专业的人工智能图片降噪软件,得益于Topaz公司AI算法,这款照片修复软件可以在修复照片的同时运用人工智能算法AI模型计算图片模糊部分,自动修复图片受损的细节,以增强图片画质。利用未来的技术锐化、消除噪点并提高照片的分辨率。Topaz Photo AI 可…...

阿里云基础设施 AI Tech Day AI 原生,智构未来——AI 原生架构与企业实践专场

本次技术沙龙聚焦企业 AI 应用规模化实战痛点分享 Serverless、AI 网关、可观测、AI 消息队列产品解决方案和企业真实实践,与企业共同探讨如何通过向更先进的架构演进来适应 AI 时代的快速变化,为迎接新的增长机会做好准备。活动简介云为 AI 提供了坚实的基础设施支撑。聚焦阿…...

实用指南:LINUX910 CENTOS8 新建虚拟机;重设root密码/时间同步

实用指南:LINUX910 CENTOS8 新建虚拟机;重设root密码/时间同步pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New&qu…...

零基础学习PYthon记录

变量会变化的 , 描述事物的状态 变量接收某个值定义变量 变量名 赋值符号 变量值 name = "david" print(name)不能使用关键字定义变量 定义的变量要有某种意义(看到变量名就要知道是干什么用的) 用下划线区分两个单词david_height = 180 print(david_height)常量固定…...

C++ std::unordered_set

std::unordered_set 是 C++ STL 中的无序关联容器,其核心特性是存储唯一元素且不保证元素顺序,底层基于哈希表实现,因此插入、查找、删除操作的平均时间复杂度为 O(1)。与 std::set(红黑树实现)相比,它更适合对查找速度有高要求且无需元素有序的场景。 1、底层数据结构与…...

如何将一个项目同时提交到GitHub和Gitee(码云)上

要将本地的一个项目同时提交到 GitHub 和 Gitee,可以通过配置多个远程仓库来实现,以下是具体步骤: 前提条件 确保你已经在 GitHub 和 Gitee 上分别创建了空的远程仓库,并且本地已经安装配置好了 Git,能够正常使用 Git 命令行进行操作。 操作步骤初始化本地仓库(如果还未初…...

基于Matlab的LeNet-5车牌字符识别系统实现

一、网络结构改进方案输入层调整输入尺寸:将LeNet-5原始输入尺寸(3232)调整为车牌字符标准尺寸(2828或4848) 通道扩展:增加颜色通道(RGB→灰度需归一化,或保留RGB通道)卷积层优化 layers = [imageInputLayer([28 28 1]) % 输入层convolution2dLayer(5, 6, Padding, sa…...

MATLAB的交通标志牌识别实现

MATLAB的交通标志牌识别实现,使用了颜色分割、形态学处理、模板匹配等核心技术一、核心识别流程设计图像预处理 灰度化与去噪 色彩空间转换(RGB→HSV/Lab) 颜色阈值分割(红色/蓝色/黄色区域提取) 几何特征提取 边缘检测(Canny算子) 形态学操作(腐蚀+膨胀) 轮廓分析(筛…...

Python常见的数据结构和代码示例

概述 Python 中常见的数据结构可以分为内置数据结构和扩展数据结构(主要来自第三方库)两类,以下是详细介绍: 一、内置数据结构(Python 自带) 这些是 Python 解释器原生支持的数据结构,无需额外导入模块。 1. 列表(List)特点:有序、可变(可修改)、允许重复元素,可存…...

Grafana 中文入门教程 | 构建你的第一个仪表盘

在大厂工作久了,时常对一些工具的存在觉得理所当然。 比如说,需要计算资源的时候,一个配置文件就可以要来两百台虚拟化好的机子。需要试下缓存?点下鼠标就可以要到几十个配置好的 Redis 结点。 最省心的是,这些工具都已经根据工作流配置好了:鉴权、优化、网络连接等等通通…...

Gitee DevOps:中国开发者效率革命的数字引擎

Gitee DevOps:中国开发者效率革命的数字引擎 在数字化转型浪潮席卷全球的当下,中国软件产业正面临前所未有的效率挑战。传统开发模式中的人工干预、碎片化工具链和低效协作已成为制约企业创新速度的关键瓶颈。Gitee DevOps作为本土领先的一站式开发运维平台,通过全流程自动化…...

Topaz Photo AI Pro 4.0.4 AI图片智能降噪

描述 Topaz Photo AI是一款专业的人工智能图片降噪软件,得益于Topaz公司AI算法,这款照片修复软件可以在修复照片的同时运用人工智能算法AI模型计算图片模糊部分,自动修复图片受损的细节,以增强图片画质。利用未来的技术锐化、消除噪点并提高照片的分辨率。Topaz Photo AI 可…...

C++ std::map

std::map 是 C++ STL 中最常用的有序键值对容器,其核心功能是存储唯一键(key)与对应值(value)的映射关系,并自动按键的顺序排序。底层基于红黑树(自平衡二叉搜索树)实现,这使得它在键的查找、插入、删除等操作上保持稳定的高效性。 1、底层数据结构与核心特性 1.1 底层…...

易基因:Nat Genet/IF29:董朝斌团队ChIP-seq等揭示作物株型穗型发育调控新机制 助力表观遗传育种驯化改良(顶刊佳作)

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 近日,中国农业大学玉米生物育种全国重点实验室董朝斌教授为第一及共同通讯作者,美国加州大学伯克利分校George Chuck研究员为共同通讯作者,在国际遗传学Top期刊《Nature Genetics》发表了题为“A regulator…...

Edge浏览器网页长截图

长截图步骤1.在Edge浏览器中打开目标网页(需确保网页完全加载后再截图,否则可能截取不完整)‌‌2.按下‌Ctrl+Shift+S‌组合键3.选择截屏模式‌为捕获整页‌(自动滚动并截取整个网页,生成一张长图)‌‌4.截图后可直接复制或保存为图片文件...

Python TensorFlow的CNN-LSTM-GRU集成模型在边缘物联网数据IoT电动汽车充电站入侵检测应用

全文链接:https://tecdat.cn/?p=43881原文出处:拓端抖音号@拓端tecdat随着物联网(IoT)技术在电动汽车充电站(EVCS)中的普及,充电站不仅成为智能交通的关键节点,更因连接电网、用户设备与管理系统,成为网络攻击的重点目标。传统入侵检测系统(IDS)要么难以处理IoT环境…...

C++多线程编程—线程控制、同步与互斥详解

本文将深入探讨C++多线程编程中的核心概念:线程控制、同步与互斥。 1.线程控制:join 与 detach当我们创建一个线程(std::thread)后,我们必须明确在这个线程对象销毁之前,如何管理它所代表的执行线程。这就是 join 和 detach 的用武之地。join()作用:阻塞当前线程(通常是…...