【车道线检测(0)】卷首语
车道线检测领域,早期的LaneNet、CondLaneNet等模型。现在在精度、实时性、复杂场景适应性等方面有了更多进展。
Head(输出头)的设计角度分类
在车道线检测任务中,Head(输出头)的设计角度直接影响模型的性能、灵活性和适用场景。根据技术思路的不同,可以将现有方法分为以下几类:
1. 基于分割的Head(Segmentation-based)
核心思想:将车道线检测视为像素级语义分割任务,输出二值掩码或实例分割图,再通过后处理(如聚类、拟合)得到车道线几何。
代表方法:
- LaneNet(2018):使用U-Net分割车道线,通过DBSCAN聚类区分不同实例。
- SCNN(Spatial CNN, 2018):引入空间卷积增强车道线连续性。
优点:
- 结构简单,易于实现。
- 对小曲率车道线效果较好。
缺点:
- 后处理复杂(如聚类、曲线拟合),实时性差。
- 难以建模车道线拓扑关系(如交叉口)。
改进方向:
- 动态卷积(如CondLaneNet):用条件卷积减少后处理依赖。 CondLaneNet 虽然直接回归车道线坐标,但本质上仍属于“基于分割的Head”范畴,这是由其技术实现和训练策略决定的。head需要有分割分支:对特征图进行逐像素分类,输出车道线存在的概率(二值分割掩码)。基于分割结果,在车道线区域应用动态卷积核,回归车道线的精确坐标点(即从分割到坐标的细化)。必须先生成分割掩码,才能确定哪些区域需要进一步回归坐标。这与传统分割后处理(如DBSCAN聚类+多项式拟合)的逻辑一致,只是用条件卷积替代了后处理。“Our method first generates a lane segmentation map, then applies conditional convolution to predict the lane points.”
- 图结构后处理:将分割结果转化为图结构优化拓扑推理。
2. 基于锚点的Head(Anchor-based)
核心思想:借鉴目标检测中的锚框(Anchor)机制,在图像或BEV空间预定义一组锚点或锚线,回归车道线的位置和形状。
代表方法:
- Line-CNN(2019):在图像空间预定义水平锚线,回归车道线偏移。
- LSTR(2020):用Transformer解码器生成车道线锚点。
优点:
- 输出结构化(如参数化曲线),适合下游规划。
- 实时性较好(端到端回归)。
缺点:
- 锚点设计依赖先验(如固定角度或位置),灵活性不足。
- 对复杂车道线(如螺旋形)适应性差。
改进方向:
- 可学习锚点(如CLRNet):通过级联回归逐步优化锚点位置。 锚点回归(如CLRNet):预定义锚线,直接回归偏移量。
- 稀疏锚点+稠密插值:减少锚点数量,提升效率。
3. 基于参数化曲线的Head(Parametric-curve-based)
核心思想:直接回归车道线的参数化方程(如三次样条、多项式),输出系数而非像素点。
代表方法:
- PolyLaneNet(2020):回归多项式系数,拟合车道线。
- LaneATT(2021):基于注意力机制选择关键点,拟合曲线。
优点:
- 输出紧凑(少量参数),适合嵌入式部署。
- 天然支持车道线平滑性约束。
缺点:
- 高曲率车道线需高阶多项式,易过拟合。
- 难以处理非连续车道线(如虚线)。
改进方向:
- 分段参数化:将车道线拆分为多段低阶曲线。
- 贝塞尔曲线:用控制点建模复杂几何(如U型弯道)。
4. 基于点集的Head(Point-set-based)
核心思想:将车道线建模为有序点集,直接回归每个点的坐标,无需预设几何形式。
代表方法:
- LaneGAP(2023):通过点-图自回归生成车道线点集。 点集回归(如LaneGAP):通过序列模型(如Transformer)直接生成有序点集。
- LaneRT(2024):扩散模型逐步去噪生成点集。
优点:
- 灵活性最高,可适应任意形状车道线。
- 支持拓扑建模(如通过图网络连接点集)。
缺点:
- 训练难度大(需处理点集顺序一致性)。
- 计算成本较高(如扩散模型需多步迭代)。
改进方向:
- 序列化预测(如RNN/LSTM):按顺序生成点集。
- 稀疏点+插值:减少回归点数量,提升效率。
5. 基于BEV的Head(BEV-based)
核心思想:在鸟瞰图(BEV)空间检测车道线,避免透视变换的几何失真。
代表方法:
- PersFormer(2023):通过Transformer实现图像到BEV的端到端映射。
- HDMapNet(2022):在BEV空间输出矢量化的车道线。
优点:
- 统一2D/3D检测,适合自动驾驶规划。
- 对上下坡、弯曲车道更鲁棒。
缺点:
- BEV生成依赖相机标定或深度估计。
- 计算复杂度较高。
改进方向:
- 轻量化BEV(如Fast-BEV):降低BEV构建的计算成本。
- 时序融合:多帧BEV增强遮挡区域的检测。
6. 基于Occupancy的Head(Occupancy-based)
核心思想:将车道线检测视为3D占据预测的子任务,输出体素化的可行驶区域。
代表方法:
- Tesla Occupancy Networks(2022):占据栅格隐含车道线信息。
- OpenOccupancy(2023):联合预测车道线占据和语义。
优点:
- 天然支持多任务(障碍物+车道线+可行驶区域)。
- 对遮挡鲁棒性强。
缺点:
- 输出非结构化,需后处理提取车道线。
- 计算资源需求高。
改进方向:
- 矢量化解码器:从占据栅格中提取结构化车道线。
- 稀疏Occupancy:降低内存占用。
技术路线对比总结
Head类型 | 输出形式 | 优势 | 劣势 | 适用场景 |
---|---|---|---|---|
分割 | 像素级掩码 | 简单直观 | 后处理复杂 | 低算力设备 |
锚点 | 参数化锚线 | 实时性较好 | 灵活性低 | 结构化道路 |
参数化曲线 | 多项式系数 | 输出紧凑 | 高曲率适应性差 | 嵌入式系统 |
点集 | 有序坐标点 | 灵活性高 | 训练难度大 | 复杂拓扑场景 |
BEV | BEV空间矢量 | 几何一致性 | 依赖标定 | 自动驾驶 |
Occupancy | 3D占据栅格 | 多任务统一 | 计算成本高 | 全场景感知 |
选型建议
- 需要实时性 → 锚点或参数化曲线(如CLRNet)。
- 需要拓扑建模 → 点集或BEV(如LaneGAP/PersFormer)。
- 复杂场景鲁棒性 → Occupancy或扩散模型(如LaneRT)。
- 轻量化部署 → 动态卷积(CondLaneNet)或量化版分割模型。
当前最前沿的技术集中在点集生成(扩散模型)和BEV+Occupancy融合方向,值得持续关注。
2. 当前SOTA车道线检测算法
(1) LaneGAP(2023, NeurIPS)
- 核心思想:将车道线检测建模为点-图自动回归(Point-Graph Auto-Regression),结合图神经网络(GNN)建模车道拓扑。
- 优势:
- 直接输出矢量化的车道线,支持复杂拓扑(如交叉口、合流车道)。
- 在OpenLane和ONCE-3DLanes数据集上达到SOTA。
- 适用场景:高精地图生成、L4级自动驾驶。
- 代码:GitHub - LaneGAP
(2) PersFormer(2023, ICCV)
- 核心思想:基于Transformer的透视空间到BEV(鸟瞰图)的端到端车道线检测。
- 优势:
- 统一处理2D/3D车道线检测,在弯曲车道和上下坡场景中表现优异。
- 在Apollo 3D Lane数据集上F1-score达92.1%。
- 适用场景:3D车道线检测、复杂道路几何建模。
- 代码:GitHub - PersFormer
(3) CLRNet(2023, CVPR)
- 核心思想:级联车道线细化网络(Cascade Lane Regression Network),通过多阶段逐步优化车道线坐标。
- 优势:
- 在CULane和TuSimple数据集上刷新记录(F1-score 97.3%)。
- 实时性高(50 FPS on RTX 3090)。
- 适用场景:ADAS、实时车道保持系统。
- 代码:GitHub - CLRNet
(4) LaneRT(2024, ArXiv)
- 核心思想:基于**扩散模型(Diffusion Models)**的车道线检测,增强遮挡和极端光照下的鲁棒性。
- 优势:
- 在遮挡场景下比传统方法高15%的召回率。
- 支持多模态输入(相机+LiDAR)。
- 适用场景:城市复杂道路、恶劣天气条件。
- 论文:LaneRT: Diffusion-Based Lane Detection
2. 不同场景下的算法选型建议
场景需求 | 推荐算法 | 理由 |
---|---|---|
高精度+拓扑建模 | LaneGAP | 唯一支持车道线拓扑推理的SOTA方法,适合高精地图生成。 |
实时性+ADAS | CLRNet | 速度与精度平衡最佳,适合车载嵌入式设备。 |
3D车道线检测 | PersFormer | 透视空间到BEV的端到端转换,解决上下坡和弯曲车道问题。 |
遮挡/极端天气鲁棒性 | LaneRT | 扩散模型对噪声和缺失数据具有强鲁棒性。 |
轻量化部署 | LaneX(2024) | 量化后模型仅2MB,适合MCU级芯片(如特斯拉HW3.0)。 |
3. 未来趋势
- 多模态融合:LiDAR+相机+雷达的联合车道线检测(如UniLane)。
- 自监督学习:减少对标注数据的依赖(如LaneSSL)。
- Occupancy替代:特斯拉Occupancy Networks的扩展可能替代传统车道线检测。
4. 实践建议
- 快速验证:从CLRNet或PersFormer开始(代码开源、预模型丰富)。
- 工业部署:考虑LaneX或量化后的CLRNet(低算力需求)。
- 研究前沿:关注**扩散模型(LaneRT)和拓扑感知(LaneGAP)**方向。
相关文章:
【车道线检测(0)】卷首语
车道线检测领域,早期的LaneNet、CondLaneNet等模型。现在在精度、实时性、复杂场景适应性等方面有了更多进展。 Head(输出头)的设计角度分类 在车道线检测任务中,Head(输出头)的设计角度直接影响模型的…...
记一次某网络安全比赛三阶段webserver应急响应解题过程
0X01 任务说明 0X02 靶机介绍 Webserver(Web服务器)是一种软件或硬件设备,用于接收、处理并响应来自客户端(如浏览器)的HTTP请求,提供网页、图片、视频等静态或动态内容,是互联网基础设施的核心…...
AI 越狱技术剖析:原理、影响与防范
一、AI 越狱技术概述 AI 越狱是指通过特定技术手段,绕过人工智能模型(尤其是大型语言模型)的安全防护机制,使其生成通常被禁止的内容。这种行为类似于传统计算机系统中的“越狱”,旨在突破模型的限制,以实…...
项目进度延误的十大原因及应对方案
项目进度延误主要源于以下十大原因:目标不明确、需求频繁变更、资源配置不足或不合理、沟通不畅、风险管理不足、缺乏有效的项目监控、技术难题未及时解决、团队协作效率低下、决策链过长、外部因素影响。其中,需求频繁变更是导致延误的关键因素之一&…...
瑞友客户端登录GS_ERP时,报错: 由于安全许可证服务器不能提供许可证,连接被中断的解决方法
瑞友客户端登录GS_ERP时,报错:由于安全许可证服务器不能提供许可证,连接被中断的解决方法 瑞友客户端登录GS_ERP时, 报错:由于安全许可证服务器不能提供许可证,连接被中断的解决方法是由于远程桌面连接协议…...
android wifi通过命令行打开2.4G热点
android系统支持2G和5G,但车机系统应用只支持5G,但是需要测试2.4G的射频 方法如下: 1、adb shell 进去,su 指定root权限,确保热点处于关闭状态 2、开启热点为www99999, 密码为12345678, wpa2的加密协议 cm…...
truncate,drop,delete分析
truncate,drop,delete对比分析 特性 TRUNCATE DROP DELETE **操作对象** 表中的所有数据 整个表及其所有数据 表中的特定数据 **是否保留表结构** 是 否 是 **是否可恢复** 不可恢复 不可恢复 可恢复 **性能** 高 高 低(逐行删除) …...
vue+flask图书知识图谱推荐系统
文章结尾部分有CSDN官方提供的学长 联系方式名片 文章结尾部分有CSDN官方提供的学长 联系方式名片 关注B站,有好处! 编号: F025 架构: vueflaskneo4jmysql 亮点:协同过滤推荐算法知识图谱可视化 支持爬取图书数据,数据超过万条&am…...
什么是微前端?有什么好处?有哪一些方案?
微前端(Micro Frontends) 微前端是一种架构理念,借鉴了微服务的思想,将一个大型的前端应用拆分为多个独立、自治的子应用,每个子应用可以由不同团队、使用不同技术栈独立开发和部署,最终聚合为一个整体产品…...
prompts提示词经典模板
prompts.py 中的提示词模板详解 文件中定义了两个核心提示词模板:REASON_PROMPT 和 RELEVANT_EXTRACTION_PROMPT。这两个模板在 DeepResearcher 的推理过程中扮演着关键角色。下面我将详细解析这两个模板的结构和功能。 REASON_PROMPT 详解 REASON_PROMPT 是用于指…...
pytorch软件封装
封装代码,通过传入文件名,即可输出类别信息 上一章节,我们做了关于动物图像的分类,接下来我们把程序封装,然后进行预测。 单张图片的predict文件 predict.py 按着路径,导入单张图片做预测from torchvis…...
DAY02:【pytorch】计算图与动态图机制
一、引言 在深度学习框架中,计算图是理解自动求导和模型优化的核心概念。无论是PyTorch的动态图机制,还是TensorFlow早期的静态图模式,计算图都扮演着关键角色。本文将深入解析计算图的基本原理,并结合PyTorch代码演示动态图的运…...
基于元学习(Meta-Learning)的恶意流量检测
元学习(Meta-Learning),即“学会学习”(Learning to Learn),通过让模型从多个相关任务中提取通用知识,实现对新任务的快速适应。在恶意流量检测领域,元学习的核心价值在于从少量攻击样本中泛化出检测规则,尤其适用于新型攻击、定向APT攻击等数据稀缺场景。 一、元学习…...
JavaScript:游戏开发的利器
在近年来的科技迅速发展中,JavaScript 已逐渐成为游戏开发领域中最受欢迎的编程语言之一。它的跨平台特性、广泛的社区支持、丰富的库和框架使得开发者能够快速、有效地创建各种类型的游戏。本文将深入探讨 JavaScript 在游戏开发中的优势。 一、跨平台支持 JavaSc…...
玩转Docker | 使用Docker搭建pinry图片展示系统
玩转Docker | 使用Docker搭建pinry图片展示系统 前言一、Pinry介绍Pinry 简介Pinry 特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署pinry服务下载镜像创建容器检查容器状态检查服务端口安全设置四、访问pinry应用五、pinry基本使用5.1 注册pinry账号…...
DAPP实战篇:使用web3.js实现前端输入钱包地址查询该地址的USDT余额——前端篇
专栏:区块链入门到放弃查看目录-CSDN博客文章浏览阅读385次。为了方便查看将本专栏的所有内容列出目录,按照顺序查看即可。后续也会在此规划一下后续内容,因此如果遇到不能点击的,代表还没有更新。声明:文中所出观点大多数源于笔者多年开发经验所总结,如果你想要知道区块…...
企业信息化-系统架构师(九十八)
1在对一个软件系统进行设计与确认后,需要进行架构复审,架构复审目的标识潜在风险,及早发现架构的缺陷和漏洞,在架构复审过程中,主要由()决定架构满足需求,质量需求是否在设计中体现。…...
【C++算法】54.链表_合并 K 个升序链表
文章目录 题目链接:题目描述:解法C 算法代码: 题目链接: 23. 合并 K 个升序链表 题目描述: 解法 解法一:暴力解法 每个链表的平均长度为n,有k个链表,时间复杂度O(nk^2) 合并两个有序…...
阿里云CDN应对DDoS攻击策略
阿里云CDN遭遇DDoS攻击时,可通过以下综合措施进行应对,保障服务的稳定性和可用性: 1. 启用阿里云DDoS防护服务 阿里云提供专业的DDoS防护服务,通过流量清洗中心过滤恶意流量,确保合法请求正常传输。该服务支持按需选…...
MySQL8的索引跳跃扫描原理
#MySQL 8 的索引跳跃扫描(Index Skip Scan)原理 1. 什么是索引跳跃扫描?索引跳跃扫描(Index Skip Scan)是 MySQL 8.0.13 引入的一种优化技术,允许在某些情况下跳过联合索引的最左前缀字段,仍然…...
centos 启动nginx 服务器
✅ 如果你是通过 yum 安装的 Nginx(推荐方式): 🔹 启动 Nginx: sudo systemctl start nginx 🔹 设置开机自启(建议开启): sudo systemctl enable nginx ὓ…...
格式化输出
% 符号相关 数据类型代码 %s:字符串 示例:print("名字是 %s" % "Tom") → 名字是 Tom%c:字符/ASCII码 示例:print("%c" % 65) → A%d/%i:有符号整数 示例:print("年龄…...
[leetcode]动态规划:斐波那契数列
一.线性dp 1.0什么是线性dp 线性DP就是指状态的转移具有线性递推关系,每个状态只依赖之前的状态,按照线性顺序一步步递推下去。 1.1斐波那契数列问题 #include <iostream> #include <vector> using namespace std; int main() { in…...
HackMyVM - todd记录
HackMyVM - toddhttps://mp.weixin.qq.com/s/E_-hepdfY-0veilL1fl2QA...
【spark认任务提交】配置优先级顺序
配置优先级顺序 Spark-submit 命令行参数 (最高优先级)代码中通过 SparkConf 设置的参数 (在应用程序中直接设置)spark-defaults.conf 文件中的配置 实际应用中的建议 固定配置:将集群级别的默认配置放在 spark-defaults.conf 中应用特定配置:将应用特…...
如何建立高效的会议机制
建立高效的会议机制需做到:明确会议目标、制定并提前分发议程、控制会议时长、确保有效沟通与反馈、及时跟进执行情况。其中,明确会议目标是核心关键,它直接决定了会议的方向与效率。只有明确目标,会议才不会偏离初衷,…...
spark Core-RDD转换算子
1. map算子:对RDD中的数据逐条进行映射转换,可实现类型或值的转换。函数签名为 def map[U: ClassTag](f: T > U): RDD[U] 。 2. mapPartitions算子:以分区为单位处理数据,可进行任意处理。与 map 相比, map 是分区内…...
【图像处理】C++实现通用Raw图转Unpack14的高效方法
一、需求背景 在图像处理领域,我们经常需要处理各种位深的原始数据(如Raw8、Unpack10等)。某些高端相机或传感器会输出14位精度的图像数据,但受传输限制,实际存储时可能采用低位深打包。本文将实现一个通用转换函数&a…...
Vue3的Composition API与React Hooks有什么异同?
Vue3的一个重大更新点就是支持Composition API,而且也被业界称为hooks,那么Vue3的“Hooks”与React的Hooks有这么区别呢? 一、核心相似点 1. 逻辑复用与代码组织 都解决了传统类组件或选项式 API 中逻辑分散的问题,允许将相关逻…...
Gerrit的安装与使用说明(Ubuntu)
#本页面按192.168.60.148服务器举例进行安装配置 1.权限配置 ## 使用root或者有sudo权限用户执行 # 创建gerrit用户 sudo useradd gerrit # 设置gerrit用户的密码 sudo passwd gerrit # 增加sudo权限 sudo visudo 在root ALL(ALL:ALL) ALL行下添加如下内容 gerrit ALL(ALL:…...
如何在Git历史中抹掉中文信息并翻译成英文
如何在Git历史中抹掉中文信息并翻译成英文 在软件开发和版本控制领域,维护一个清晰、一致的代码历史记录是至关重要的。然而,有时我们可能会遇到需要修改历史提交的情况,比如删除敏感信息或修正错误。本文将详细探讨如何在Git历史中抹掉中文…...
Ubuntu利用docker将ONNX模型转换为RK3588模型
1.安装docker 下载教程 1.拉取镜像 方法一:通过命令拉取 # 下载官方Docker镜像sudo docker pull registry.cn-hangzhou.aliyuncs.com/rockchip/rknn-toolkit2:v2.3.0 方法二:通过rknn-toolkit2自带的直接安装 2.开始工作 创建工作目录并复制ONNX模型…...
Go:入门
文章目录 Hello, World命令行参数找出重复行GIF动画获取一个URL并发获取多个URL一个 Web 服务器其他 Hello, World Hello world package main import "fmt" func main() {fmt.Println("Hello, 世界") }package main表明这是一个可独立执行的程序包&#…...
深入理解 ResponseBodyAdvice 及其应用
ResponseBodyAdvice 是 Spring MVC 提供的一个强大接口,允许你在响应体被写入 HTTP 响应之前对其进行全局处理。 下面我将全面介绍它的工作原理、使用场景和最佳实践。 基本概念 接口定义 public interface ResponseBodyAdvice<T> {boolean supports(Metho…...
SpringBoot对接火山引擎大模型api实现图片识别与分析
文章目录 一、前言二、创建应用三、后端1.SDK集成2.调用Rest API 四、前端 一、前言 Spring AI实战初体验——实现可切换模型AI聊天助手-CSDN博客 如上,在上一篇博客,我们已经实现了spring ai对接本地大模型实现了聊天机器人,但是目前有个新…...
Java ---成员,局部变量与就近原则
成员变量 声明在类内部,但在方法、构造器或代码块之外的变量。 属于类的实例(对象)或类本身(静态变量)。 实例变量(非静态成员变量): public class Person {private String name…...
基于libevent写一个服务器(附带源码)
使用libevent搭建服务器 服务器源码二级目录 使用开源框架,目的是减少程序员对一些精细的操作的误操作,也是为了让程序员能更好的对接业务而不是底层api的使用。 为何使用libevent,因为libevent开源已经有十几年了,能很好的承受数…...
2.2.3 Spark Standalone集群
搭建Spark Standalone集群需要完成多个步骤。首先,配置主机名、IP地址映射、关闭防火墙和SeLinux,并设置免密登录。接着,配置JDK和Hadoop环境,并在所有节点上分发配置。然后,下载并安装Spark,配置环境变量和…...
每天记录一道Java面试题---day38
说说类加载器双亲委派模型 回答重点 AppClassLoader的父加载器是ExtClassLoader,ExtClassLoader的父加载器是BootStrapClassLoader。JVM在加载一个类时,会调用AppClassLoader的laodClass方法来加载这个类,不过在这个方法中,会先…...
[ctfshow web入门] web33
信息收集 相较于上一题,这题多了双引号的过滤。我猜测这一题的主要目的可能是为了不让使用$_GET[a]之类的语句,但是$_GET[a]也是一样的 没有括号可以使用include,没有引号可以使用$_GET 可以参考[ctfshow web入门] web32,其中的所…...
【时时三省】(C语言基础)用switch语句实现多分支选择结构
山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 if语句只有两个分支可供选择,而实际问题中常常需要用到多分支的选择。例如,学生成绩分类(85分以上为A等,70 ~ 84分为B等,60 ~ 69分为C等)&…...
为您的 Web 应用选择最佳文档阅读器
为显示选择合适的文档查看器是开发 Web 应用过程中至关重要的一步。文档查看器应能在提供功能性的同时,确保用户体验的流畅性。 开发人员必须评估多种因素,以确保效率、性能和兼容性。本文将帮助您了解影响用户文档浏览体验成功与否的关键指标。 渲染质…...
js逆向入门图灵爬虫练习平台第六题
地址:aHR0cHM6Ly9zdHUudHVsaW5ncHl0b24uY24vcHJvYmxlbS1kZXRhaWwvNi8 观察可以发现请求头有有字段加密和响应结果加密 查看启动器 开始断点调试 直接复制里面的js内容,测试函数...
招商蛇口 | 回归生活本身,革新CID的143㎡改善标准
时光流转,城市向前。在西安这片千年文脉的沃土之上,招商蛇口已深耕11载,用21座标杆作品,为17000余户家庭筑就理想栖居。从曲江到高新,从城市更新到人居焕新,每一座作品都是对“美好生活承载者”使命的践行。…...
第6课:分布式多智能体系统架构
分布式多智能体系统架构:从算力协同到微服务部署的工程化实践 一、引言:当智能体规模突破百级:分布式架构为何成为必选项? 在多智能体系统(MAS)从“实验室Demo”走向“工业级应用”的过程中,传…...
Vue3 Teleport 深度解析与面试技巧
Vue3 Teleport 深度解析与面试技巧 一、Teleport 核心价值解析 1.1 诞生背景与设计哲学 DOM层级困境:传统组件树与视觉层级的矛盾样式污染问题:z-index层级管理的世纪难题逻辑解耦需求:业务逻辑与DOM结构的正交性要求 1.2 核心能力矩阵 能…...
断言与反射——以golang为例
断言 x.(T) 检查x的动态类型是否是T,其中x必须是接口值。 简单使用 func main() {var x interface{}x 100value1, ok : x.(int)if ok {fmt.Println(value1)}value2, ok : x.(string)if ok {//未打印fmt.Println(value2)} }需要注意如果不接受第二个参数就是OK,这…...
react函数组件中,className字符串、style对象如何在父子组件之间传递
一、需要传递的样式在父组件的scss文件中提前写好 子组件的dom解析后: 二、向子组件直接传递style对象...
WHAT - React Portal 机制:将子组件渲染到 DOM 的指定节点
文章目录 适合场景基本语法示例:Modal 弹窗1. 创建一个简单的 Modal.tsx2. 在 App 中使用 为什么要用 Portal?TypeScript 中 Portal 类型定义? 适合场景 React Portal 是 React 提供的一种机制,让你可以将子组件渲染到 DOM 的指定…...
企业绿电消纳比例不达标?安科瑞微电网智慧能源平台助力企业低碳转型
方案配置支持请联系安科瑞电气周女士 企业绿电消纳政策是国家推动能源转型和实现“双碳”目标的重要抓手,近年来政策体系逐步完善。企业通过建设“源网荷储”一体化项目、虚拟电厂等技术,提升绿电消纳能力。 一、安科瑞提供解决方案 深耕用电业务&…...