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

计算机视觉中的多模态融合:技术原理与工业实践

计算机视觉中的多模态融合技术原理与工业实践摘要随着传感器技术的进步和算法的发展多模态融合已成为计算机视觉领域的重要方向。在工业场景中单一模态如可见光往往无法满足复杂环境下的检测需求而融合多种传感器数据红外、激光雷达、深度相机等可以显著提升系统的鲁棒性和准确性。本文系统阐述多模态融合的技术原理包括数据级融合、特征级融合、决策级融合三种主流方案并结合电力巡检、自动驾驶、工业质检等实际案例分享工程落地的经验和挑战。关键词多模态融合、红外视觉、激光雷达、传感器融合、工业 AI1. 引言1.1 为什么需要多模态融合场景 1电力巡检可见光清晰看到设备外观但无法检测温度异常红外可检测发热缺陷但空间分辨率低融合后精确定位发热设备同时识别设备类型场景 2自动驾驶摄像头丰富的纹理信息但受光照影响大激光雷达精确的深度信息但无法识别颜色毫米波雷达穿透雨雾但分辨率低融合后全天候、全场景感知场景 3工业质检可见光表面缺陷检测3D 结构光尺寸测量、凹凸检测X 射线内部缺陷检测融合后全方位质量检测1.2 多模态融合的挑战1. 时空对齐不同传感器的坐标系不同采样频率不同相机 30Hz激光雷达 10Hz需要精确的时间同步和空间标定2. 数据异构可见光RGB 三通道2D 图像红外单通道灰度图激光雷达3D 点云如何有效融合异构数据3. 不确定性建模每个传感器都有噪声和误差如何评估各模态的置信度动态调整融合权重4. 计算复杂度多模态数据量大实时性要求高需要在精度和速度之间权衡2. 多模态融合技术2.1 融合层次数据级融合Early Fusion传感器 A 数据 ─┐ ├→ 融合 → 模型 → 输出 传感器 B 数据 ─┘特点原始数据直接融合保留最多信息对对齐精度要求高计算量大适用场景传感器数据类型相近如 RGB-D需要充分利用底层信息计算资源充足特征级融合Intermediate Fusion传感器 A 数据 → 特征提取 A ─┐ ├→ 融合 → 输出 传感器 B 数据 → 特征提取 B ─┘特点各自提取特征后融合降低数据维度对对齐精度要求适中灵活性高适用场景传感器数据类型差异大需要平衡精度和效率最常用方案决策级融合Late Fusion传感器 A 数据 → 模型 A → 决策 A ─┐ ├→ 融合 → 最终决策 传感器 B 数据 → 模型 B → 决策 B ─┘特点独立处理最后融合决策各模态完全独立容错性好可能丢失跨模态信息适用场景传感器高度异构需要容错能力各模态已有成熟模型2.2 特征级融合详解1. 拼接融合ConcatenationclassConcatFusion(nn.Module):def__init__(self,rgb_dim512,depth_dim256,fused_dim1024):super().__init__()self.fusionnn.Sequential(nn.Linear(rgb_dimdepth_dim,fused_dim),nn.ReLU(),nn.BatchNorm1d(fused_dim))defforward(self,rgb_features,depth_features):# 直接拼接fusedtorch.cat([rgb_features,depth_features],dim1)returnself.fusion(fused)优点简单直接保留所有信息缺点特征维度高可能包含冗余2. 注意力融合Attention FusionclassAttentionFusion(nn.Module):def__init__(self,modal_dims,fused_dim512):super().__init__()self.modal_dimsmodal_dims self.attention_weightsnn.ModuleList([nn.Sequential(nn.Linear(dim,64),nn.ReLU(),nn.Linear(64,1))fordiminmodal_dims])self.fusionnn.Linear(sum(modal_dims),fused_dim)defforward(self,modal_features):# 计算各模态的注意力权重weights[]fori,featuresinenumerate(modal_features):wself.attention_weights[i](features)weights.append(w)# Softmax 归一化weightstorch.softmax(torch.cat(weights,dim1),dim1)# 加权融合weighted_features[]fori,featuresinenumerate(modal_features):weighted_features.append(features*weights[:,i:i1])fusedtorch.cat(weighted_features,dim1)returnself.fusion(fused)优点自适应学习各模态重要性缺点需要足够训练数据3. 门控融合Gated FusionclassGatedFusion(nn.Module):def__init__(self,modal_dims,fused_dim512):super().__init__()self.gatesnn.ModuleList([nn.Sequential(nn.Linear(dim,128),nn.Sigmoid(),nn.Linear(128,fused_dim))fordiminmodal_dims])self.outputnn.Linear(fused_dim*len(modal_dims),fused_dim)defforward(self,modal_features):# 门控机制gated_features[]fori,featuresinenumerate(modal_features):gateself.gates[i](features)gated_features.append(gate)fusedtorch.cat(gated_features,dim1)returnself.output(fused)优点可以学习模态间的交互缺点参数较多2.3 跨模态 Transformer最新进展使用 Transformer 进行跨模态融合classCrossModalTransformer(nn.Module):def__init__(self,modal_dims,num_heads8,num_layers4):super().__init__()# 投影到统一维度self.projectionsnn.ModuleList([nn.Linear(dim,512)fordiminmodal_dims])# 位置编码self.pos_encoderPositionalEncoding(512)# Transformer 编码器encoder_layernn.TransformerEncoderLayer(d_model512,nheadnum_heads,dim_feedforward2048,dropout0.1)self.transformernn.TransformerEncoder(encoder_layer,num_layersnum_layers)# 输出头self.headnn.Linear(512,num_classes)defforward(self,modal_inputs):# 投影projected[proj(x)forproj,xinzip(self.projections,modal_inputs)]# 拼接序列sequencetorch.cat(projected,dim0)# 位置编码sequenceself.pos_encoder(sequence)# Transformer 编码encodedself.transformer(sequence)# 全局池化pooledencoded.mean(dim0)# 分类returnself.head(pooled)优势自注意力机制捕获长距离依赖灵活处理不同长度的输入可扩展到多模态3. 可见光 红外融合3.1 应用场景电力巡检检测发热缺陷红外识别设备类型可见光精确定位融合安防监控白天可见光为主夜晚红外为主全天候监控消防救援穿透烟雾红外识别环境可见光搜救定位3.2 数据对齐时间同步classTemporalSynchronizer:def__init__(self,rgb_fps30,ir_fps30):self.rgb_fpsrgb_fps self.ir_fpsir_fps self.buffer_rgbdeque(maxlen10)self.buffer_irdeque(maxlen10)defadd_frame(self,modality,frame,timestamp):添加帧到缓冲区ifmodalityrgb:self.buffer_rgb.append((timestamp,frame))else:self.buffer_ir.append((timestamp,frame))defget_synchronized_pair(self):获取时间同步的帧对ifnotself.buffer_rgbornotself.buffer_ir:returnNone# 找到时间最接近的帧对min_difffloat(inf)best_pairNoneforrgb_ts,rgb_frameinself.buffer_rgb:forir_ts,ir_frameinself.buffer_ir:diffabs(rgb_ts-ir_ts)ifdiffmin_diff:min_diffdiff best_pair(rgb_frame,ir_frame)# 时间差33ms1 帧认为同步ifmin_diff0.033:returnbest_pairreturnNone空间对齐classSpatialAligner:def__init__(self,calibration_file):# 加载标定参数withopen(calibration_file,r)asf:paramsjson.load(f)self.rgb_intrinsicsnp.array(params[rgb_intrinsics])self.ir_intrinsicsnp.array(params[ir_intrinsics])self.rotationnp.array(params[rotation])self.translationnp.array(params[translation])defalign_ir_to_rgb(self,ir_image):将红外图像对齐到可见光坐标系# 去畸变ir_undistortedcv2.undistort(ir_image,self.ir_intrinsics,self.ir_distortion)# 旋转变换ir_rotatedcv2.warpPerspective(ir_undistorted,self.rotation_matrix,(ir_image.shape[1],ir_image.shape[0]))# 平移变换ir_alignedcv2.warpAffine(ir_rotated,self.translation_matrix,(ir_image.shape[1],ir_image.shape[0]))returnir_aligned3.3 融合模型双分支网络classDualBranchFusion(nn.Module):def__init__(self,num_classes10):super().__init__()# RGB 分支self.rgb_backboneresnet50(pretrainedTrue)self.rgb_featuresnn.Linear(2048,512)# 红外分支self.ir_backboneresnet50(pretrainedFalse)self.ir_featuresnn.Linear(2048,512)# 融合模块self.fusionAttentionFusion([512,512],fused_dim512)# 分类头self.classifiernn.Sequential(nn.Linear(512,256),nn.ReLU(),nn.Dropout(0.5),nn.Linear(256,num_classes))defforward(self,rgb_image,ir_image):# 分别提取特征rgb_featself.rgb_backbone(rgb_image)rgb_featself.rgb_features(rgb_feat)ir_featself.ir_backbone(ir_image)ir_featself.ir_features(ir_feat)# 融合fusedself.fusion([rgb_feat,ir_feat])# 分类returnself.classifier(fused)效果对比输入模态mAP夜间 mAP可见光85.2%62.3%红外78.5%81.2%融合88.6%86.9%4. 视觉 激光雷达融合4.1 应用场景自动驾驶3D 目标检测车道线检测可行驶区域分割机器人导航SLAM 定位避障路径规划智慧物流包裹体积测量货架检测无人搬运4.2 点云处理点云预处理classPointCloudProcessor:def__init__(self,max_range100,min_range1):self.max_rangemax_range self.min_rangemin_rangedeffilter_by_range(self,points):距离滤波distancesnp.linalg.norm(points[:,:3],axis1)mask(distancesself.min_range)(distancesself.max_range)returnpoints[mask]defvoxel_downsample(self,points,voxel_size0.1):体素下采样voxel_grid{}forpointinpoints:voxel_keytuple(np.floor(point[:3]/voxel_size).astype(int))ifvoxel_keynotinvoxel_grid:voxel_grid[voxel_key][]voxel_grid[voxel_key].append(point)# 每个体素取中心点downsampled[]forvoxel_pointsinvoxel_grid.values():centernp.mean(voxel_points,axis0)downsampled.append(center)returnnp.array(downsampled)defto_bird_eye_view(self,points,resolution0.1):转换为鸟瞰图# 创建 BEV 网格x_rangenp.arange(-50,50,resolution)y_rangenp.arange(-50,50,resolution)bev_mapnp.zeros((len(x_range),len(y_range),3))forpointinpoints:x_idxint((point[0]50)/resolution)y_idxint((point[1]50)/resolution)if0x_idxlen(x_range)and0y_idxlen(y_range):# 高度编码为 RGBbev_map[x_idx,y_idx,0]min(point[2]/10,1)# R: 高度bev_map[x_idx,y_idx,1]point[3]# G: 强度bev_map[x_idx,y_idx,2]1# B: 密度returnbev_map4.3 融合方案PointPaintingclassPointPainting:将图像语义信息绘制到点云上def__init__(self,image_segmentation_model):self.seg_modelimage_segmentation_modeldefpaint(self,points,image,calib): points: 点云 (N, 4) image: 图像 (H, W, 3) calib: 标定参数 # 将点云投影到图像平面image_coordsself.project_to_image(points,calib)# 获取图像语义分割结果seg_mapself.seg_model.predict(image)# 为每个点分配语义标签painted_points[]fori,(point,img_coord)inenumerate(zip(points,image_coords)):x,yint(img_coord[0]),int(img_coord[1])if0ximage.shape[1]and0yimage.shape[0]:semantic_labelseg_map[y,x]painted_pointnp.append(point,semantic_label)painted_points.append(painted_point)returnnp.array(painted_points)defproject_to_image(self,points,calib):点云投影到图像# 激光雷达坐标系 → 相机坐标系points_camcalib.lidar_to_cam(points[:,:3])# 相机坐标系 → 图像坐标系points_imgcalib.cam_to_img(points_cam)returnpoints_img[:,:2]效果纯点云 3D 检测mAP 72%PointPaintingmAP 78%提升 6%5. 工程实践建议5.1 传感器选型考虑因素精度要求环境条件光照、天气成本预算计算资源安装空间推荐组合场景推荐配置预算电力巡检可见光 红外中自动驾驶摄像头×8 激光雷达 毫米波×5高室内机器人RGB-D 相机 2D 激光雷达低工业质检可见光 3D 结构光中5.2 标定流程外参标定# 使用标定板1. 打印棋盘格标定板2. 从不同角度拍摄标定板3. 同时采集各传感器数据4. 使用标定工具计算外参# 推荐工具- 相机 - 激光雷达calibration_toolkit - 相机 - 相机OpenCV stereo_calibrate - 多传感器Kalibr在线标定classOnlineCalibration:在线标定参数优化def__init__(self,initial_params):self.paramsinitial_params self.optimizertorch.optim.Adam([self.params],lr0.001)defoptimize(self,rgb_image,ir_image,point_cloud):使用梯度下降优化标定参数forstepinrange(100):# 投影点云到图像projectedself.project(point_cloud,self.params)# 计算投影误差errorself.compute_projection_error(projected,rgb_image)# 反向传播self.optimizer.zero_grad()error.backward()self.optimizer.step()returnself.params5.3 性能优化数据加载优化classMultiModalDataLoader:def__init__(self,dataset,batch_size,num_workers4):self.datasetdataset self.batch_sizebatch_size# 多进程数据加载self.loaderDataLoader(dataset,batch_sizebatch_size,num_workersnum_workers,pin_memoryTrue,prefetch_factor2)def__iter__(self):forbatchinself.loader:# 异步数据传输到 GPUrgbbatch[rgb].cuda(non_blockingTrue)irbatch[ir].cuda(non_blockingTrue)pointsbatch[points].cuda(non_blockingTrue)yieldrgb,ir,points模型推理优化classOptimizedInference:def__init__(self,model):# TensorRT 优化self.modelself.convert_to_tensorrt(model)# 批处理self.batch_buffer[]self.max_batch8# 异步推理self.streamtorch.cuda.Stream()definfer(self,rgb,ir):withtorch.cuda.stream(self.stream):withtorch.no_grad():outputself.model(rgb,ir)self.stream.synchronize()returnoutput6. 总结多模态融合是提升 AI 系统鲁棒性的关键技术。核心要点融合层次选择根据场景选择数据级/特征级/决策级融合时空对齐精确的标定和同步是前提融合方法注意力机制、Transformer 是主流方向工程优化数据加载、模型推理需要专门优化未来趋势大模型多模态融合CLIP、Flamingo神经辐射场NeRF与多模态结合端云协同多模态感知声明本文内容为技术分享不涉及任何商业推广。

相关文章:

计算机视觉中的多模态融合:技术原理与工业实践

计算机视觉中的多模态融合:技术原理与工业实践 摘要 随着传感器技术的进步和算法的发展,多模态融合已成为计算机视觉领域的重要方向。在工业场景中,单一模态(如可见光)往往无法满足复杂环境下的检测需求,而…...

码农的韩国团建指南:除了代码,还有这些高效的预约工具

作为一名长期与代码打交道的程序员,我们习惯了“低耦合、高效率、数据透明”。但在计划去韩国团建或旅游时,面对繁杂的诊所信息和语言障碍,那种“信息黑盒”带来的焦虑感,简直比 Debug 还要痛苦。今年和几个同行去首尔&#xff0c…...

ArkClaw vs 原生OpenClaw:个人用户实际体验对比

ArkClaw vs 原生OpenClaw:个人用户实际体验对比 玩OpenClaw也有大半年了,从最开始自己编译原生裸奔,到上个月换成ArkClaw,最深的感受就是——专业发行版真的比自己瞎折腾省心太多。今天我从技术角度,把实际使用中的对比…...

基于单片机的智能抢答器的设计(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T1092204C设计简介:本设计是基于单片机的智能抢答器的设计,主要实现以下功能:1.抢答器同时供8名选手使用,分…...

鸡舍电子智能补光器的设计(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T1012204C设计简介:本设计是基于单片机的鸡舍电子智能补光器的设计,主要实现以下功能:1.利用光敏电阻检测环境光照&…...

国产SSL证书怎么申请?

SSL证书作为HTTPS加密的基础,不仅能保护数据传输安全,还能提升用户信任度。然而,受国际环境影响,部分用户对国产SSL证书的关注度日益提高。那么,国产SSL证书有什么优势?该如何申请?一、国产SSL证…...

2026年谷歌SEO核心策略:以GEO赋能精准流量与转化提升

2026 年谷歌搜索生态中,核心排名逻辑仍围绕 “内容质量、链接权威、用户体验” 三大支柱,但地理位置信号已成为优化 SEO 精准度的关键辅助——35% 的排名权重占比,并非让 GEO 取代 SEO,而是通过地域数据赋能,让 SEO 策…...

【已解决】java文件未被识别 显示咖啡杯图标

问题:pom.xml 未被正确识别解决方案:右键点击 pom.xml → Add as Maven Project,添加后即可正常识别,且变为以下情况...

Comsol 探索金属超表面光栅的电磁奥秘:TE/TM 偏振斜入射反射光谱计算

Comsol电磁波模型:金属超表面光栅,TE/TM偏振下斜入射不同衍射级反射光谱计算。在电磁学研究领域,金属超表面光栅因其独特的光学性质备受关注。通过 Comsol 来构建其电磁波模型,能让我们深入洞察在不同偏振状态下斜入射时的反射光谱…...

〘 8-2 〙软考高项 | 第15章:项目风险管理(下)

💡 点赞・能量加载 | 🌐 关注・持续更新 📎 收藏・方便回看 | ✨ 评论・互动交流 目录 2.风险管理过程 2.4 实施定量风险分析 2.4.1 本过程含义 2.4.2 输入&输出 2.4.2.1 输出:风险报告更新 2.4.3 工具与技术 …...

java毕业设计基于springboot+Java兰州市出租车服务管理系统

前言 该系统适用于兰州市出租车行业的管理和服务,可以广泛应用于出租车公司、交通管理部门、客户服务中心等场景。通过该系统,可以实现出租车行业的智能化、信息化、规范化管理,提高服务效率和管理水平,为市民提供更加便捷、安全、…...

IF 开环启动切龙伯格观测器 Matlab/simulink 仿真探索

IF开环启动切龙伯格观测器 Matlab/simulink仿真搭建模型: 提供以下帮助 波形纪录 参考文献 仿真文件 原理解释 电机参数说明 仿真原理结构和整体框图在电机控制领域,IF(感应电机)的开环启动切换到龙伯格观测器的过程是一个重要研究…...

OSPF协议综合实验

实验任务 需要完成的任务如下。 (1)在总部和分公司相应交换机上完成 VLAN 相关配置,包括 VLAN 创建和端口划分、Trunk 配置、以太网通道配置和 MSTP 配置等。 (2)在总部和分公司的网络中完成 IP 地址配置,包…...

CMake一、main.cpp文件编译

main.cpp#include <iostream>using namespace std; int main() {cout<<"Hello Cmake"<<endl;return 0; }CMakeLists.txtcmake_minimum_required(VERSION 3.5) #指定cmake最低版本要求 project(hello) #定义项目名称 #set(log asdf---ghjk) #将asdf…...

入门实战|RTX3060本地私有化部署DeepSeek 7B聊天机器人(离线可用+GPU加速调优)

入门实战&#xff5c;RTX3060本地私有化部署DeepSeek 7B聊天机器人&#xff08;离线可用GPU加速调优&#xff09; 前言 本文为大模型部署实战系列第一篇&#xff0c;基于 Windows 环境与 RTX3060 显卡&#xff0c;借助 Ollama 快速实现 DeepSeek-7B 开源大模型本地私有化部署…...

数据分析中的dataframe详解

DataFrame 是什么&#xff1f;一句话讲透 DataFrame 就是 Pandas 里的「表格」&#xff0c;和 Excel 表格、数据库表 完全一样&#xff0c;有行有列、有表头、有数据&#xff0c;是 Python 数据处理最核心的对象。 你可以把它理解成&#xff1a; &#x1f449; 带名字的表格版 …...

【开题答辩全过程】以 基于.net mvc农村留守儿童帮扶系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…...

基于北方苍鹰优化算法优化BP神经网络(NGO - BP)的多变量时间序列预测Matlab实现

基于北方苍鹰优化算法优化BP神经网络(NGO-BP)的多变量时间序列预测NGO-BP多变量时间序列 matlab代码注&#xff1a;要求Matlab2018B及以上版本在数据驱动的时代&#xff0c;多变量时间序列预测是众多领域如金融、气象、工业生产等的关键任务。BP神经网络是常用的预测模型&#…...

AI 矩阵 + 短剧系统双赋能,一人干翻一个内容团队

做内容运营、短剧创业&#xff0c;最头疼的莫过于 “产能跟不上、人力成本高”—— 一个专业内容团队&#xff0c;需要编剧、后期、运营、分发等多人配合&#xff0c;每月人力成本几万起&#xff0c;还未必能满足多账号矩阵的日更需求。而现在&#xff0c;AI 矩阵 短剧系统双赋…...

计算机毕业设计之springboot基于javaEE的二手手机交易平台的设计与实现

随着世界经济信息化、全球化的到来和互联网的飞速发展&#xff0c;推动了各行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、动态的、交互友好的、高效的二手手机交易平台。当前的信息管理存在工作效率…...

新能源重卡充换电站运营云管理系统

新能源重卡充换电站运营云管理系统 &#xff0c;是面向新能源重卡充换电、商用充换电场景的一体化云端管控平台&#xff0c;通过物联网、数据可视化、云端分布式部署等技术&#xff0c;实现场站、设备、电池、交易、安全的全链路数字化管控。从技术层面看&#xff0c;其核心优势…...

传统问卷设计VS书匠策AI:一场问卷设计的智慧革命

在学术探索与市场调研的浩瀚征途中&#xff0c;问卷设计无疑是一座连接研究者与受访者的桥梁。它不仅是信息的载体&#xff0c;更是洞察真相的钥匙。然而&#xff0c;传统问卷设计过程繁琐、效率低下&#xff0c;常常让研究者们头疼不已。今天&#xff0c;我们就来一场别开生面…...

【开题答辩全过程】以 基于python 的图书借阅管理系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…...

2026年期货量化软件扩展性排名_二次开发能力对比

免责声明&#xff1a;本文基于个人使用体验&#xff0c;与任何厂商无商业关系。内容仅供技术交流参考&#xff0c;不构成投资建议。 一、前言 策略越复杂&#xff0c;越需要软件支持二次开发与扩展。不同期货量化软件在 API 开放度、插件机制、自定义指标与风控等方面差异明显…...

SpringBoot实现各种参数校验,写得太好了,建议收藏!

之前也写过一篇关于Spring Validation使用的文章&#xff0c;不过自我感觉还是浮于表面&#xff0c;本次打算彻底搞懂Spring Validation。本文会详细介绍Spring Validation各种场景下的最佳实践及其实现原理&#xff0c;死磕到底&#xff01; 简单使用 Java API规范(JSR303)定…...

基于语音识别的智能家居设计(有完整资料)

资料查找方式&#xff1a;特纳斯电子&#xff08;电子校园网&#xff09;&#xff1a;搜索下面编号即可编号&#xff1a;T0852204C设计简介&#xff1a;本设计是基于语音识别的智能家居设计系统&#xff0c;主要实现以下功能&#xff1a;1.可以进行温湿度检测&#xff0c;并且可…...

Docker——镜像

Docker 镜像是容器化技术的核心,它是一个轻量级、独立且可执行的软件包,包含了运行应用程序所需的一切:代码、运行时环境、系统工具、库和配置。可以把镜像想象成一个只读的"模具"或"安装包",而容器则是这个模具运行时的实体实例 1、相关概念 分层存储…...

【datawhale】hello agents开源课程第1章学习记录:初识智能体

章节概述 本章作为《Hello Agents&#xff1a;智能体开发入门》的起点&#xff0c;系统性地构建了关于智能体的基础认知框架。从最基本的定义“智能体是什么”出发&#xff0c;逐步深入探讨了传统智能体的演进路径、大语言模型驱动的新范式、多维度分类体系、PEAS任务环境模型、…...

巧用 AxureShow 插件:将 HTML 一键转换为可编辑 Axure 原型文件

在产品原型设计工作中&#xff0c;我们常会遇到需要将已有的 HTML 页面转换为 Axure 可编辑原型的场景&#xff0c;手动复刻不仅耗时耗力&#xff0c;还容易丢失页面细节。AxureShow 浏览器插件为这个需求提供了高效的解决方案&#xff0c;能实现 HTML 元素到 Axure 原型的一键…...

day115(3.17)——leetcode面试经典150

221. 最大正方形 221. 最大正方形 题目&#xff1a; 题解&#xff1a; class Solution {public int maximalSquare(char[][] matrix) {int n matrix.length;int m matrix[0].length;if(matrixnull||n<1||m<1) {return 0;}int[][] dp new int[n1][m1];int maxSum0;f…...