• [技术干货] Ascend>MindSpeed>Ring Attention长序列并行
    请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/ring-attention-context-parallel.md
  • [技术干货] Ascend>MindSpeed>Ulysses长序列并行
    请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/ulysses-context-parallel.md
  • 出口交换机双机热备与双运营商配置方案分享
    在防火墙双机热备(如 VGMP、VRRP-A)+ 双运营商出口的场景中,出口交换机是否需要堆叠、以及具体配置,核心取决于冗余可靠性需求、流量转发效率和运维复杂度。一、核心决策:出口交换机是否需要堆叠?出口交换机的核心作用是 “连接防火墙双机与双运营商链路”,需解决链路冗余、故障自动切换、流量不中断三大问题。堆叠与非堆叠方案的对比及适用场景如下: 方案核心优势核心劣势适用场景堆叠(推荐)1. 简化管理:2 台交换机虚拟为 1 台,统一配置;2. 冗余可靠:单交换机故障时,堆叠组自动接管,无链路闪断;3. 转发高效:统一转发表,避免跨交换机转发的 “次优路径”;4. 链路聚合兼容:可与防火墙、运营商链路做跨设备 LACP 聚合1. 堆叠线依赖:需专用堆叠线(或高速以太网线),且不能断;2. 版本要求:2 台交换机需同型号、同固件版本中小网络(如企业出口)、追求简化运维和高冗余的场景非堆叠(VRRP+LACP)1. 灵活度高:支持不同型号交换机(需同厂商);2. 无堆叠线依赖:故障点更少1. 管理复杂:2 台交换机需独立配置,需保证配置一致性;2. 故障切换慢:依赖 VRRP 定时器(默认 1-3 秒),可能有短暂丢包;3. 转发表分散:跨交换机流量需通过备份链路转发,效率低大型复杂网络(如 IDC 出口)、需兼容不同型号交换机的场景结论:绝大多数中小网络(企业 / 园区出口)优先选堆叠方案—— 运维更简单、故障切换更流畅,且 “两台交换机之间的一根线” 可直接作为堆叠线(需确认线速和类型)。二、方案 1:出口交换机做堆叠(推荐)1. 堆叠前的小准备硬件检查:确认两台交换机型号、固件版本一致(用display version查看);确认连接的线为 “堆叠专用线”(如华为堆叠卡 + DAC 线)或 “高速以太网线”(建议 10Gbps 及以上,如 SFP + 线缆),避免用普通千兆线(影响堆叠稳定性);规划堆叠角色:SW1 为 “主交换机(Master)”,SW2 为 “备交换机(Standby)”。2. 配置堆叠步骤 1:配置 SW1(主交换机)的堆叠成员\# 进入系统视图​\<SW1> system-view​\# 配置堆叠成员编号(建议SW1为1,SW2为2)​\[SW1] stack member 1 priority 200 # 优先级高于SW2,确保成为Master​\# 配置堆叠成员端口(假设用0/23、0/24作为堆叠端口,根据实际接线调整)​\[SW1] interface stack-port 1/1​\[SW1-stack-port1/1] port member-group interface GigabitEthernet 0/23 to 0/24 # 将23-24口划入堆叠端口组​\[SW1-stack-port1/1] quit​\# 保存配置​\[SW1] save步骤 2:配置 SW2(备交换机)的堆叠成员 \<SW2> system-view​\[SW2] stack member 2 priority 100 # 优先级低于SW1​\[SW2] interface stack-port 2/1​\[SW2-stack-port2/1] port member-group interface GigabitEthernet 0/23 to 0/24 # 与SW1的堆叠端口对应​\[SW2-stack-port2/1] quit​\[SW2] save步骤 3:重启两台交换机,生效堆叠 \# SW1和SW2分别执行重启(顺序无要求,重启后自动组建堆叠)​\[SW1] quit​\<SW1> reboot​\<SW2> reboot步骤 4:验证堆叠状态 \# 登录任意一台交换机(堆叠后IP统一,用原SW1的IP即可)​\<Stack-SW> display stack # 查看堆叠成员状态正常输出:Member ID : 1(Master), Status : NormalMember ID : 2(Standby), Status : NormalStack Port 1/1 : GigabitEthernet0/23-0/24(Up)Stack Port 2/1 : GigabitEthernet0/23-0/24(Up)3. 堆叠后核心配置(连接防火墙 + 双运营商)堆叠后的交换机视为 “单台设备”,配置重点是链路聚合(冗余)、VLAN 隔离(区分运营商)、路由指向(转发流量)。(1)链路聚合:连接防火墙双机(LACP 动态聚合)假设防火墙双机(FW1、FW2)的业务口分别连接 SW1 的 0/1-0/2、SW2 的 0/1-0/2,配置 LACP 聚合组(避免单链路故障): \<Stack-SW> system-view​\# 创建聚合组1(连接防火墙业务口),模式为动态LACP​\[Stack-SW] interface Eth-Trunk 1​\[Stack-SW-Eth-Trunk1] mode lacp-dynamic​\# 将SW1的0/1、SW2的0/1划入聚合组(跨设备聚合,堆叠优势)​\[Stack-SW-Eth-Trunk1] trunkport GigabitEthernet 1/0/1 # SW1的0/1(成员1的0/1)​\[Stack-SW-Eth-Trunk1] trunkport GigabitEthernet 2/0/1 # SW2的0/1(成员2的0/1)​\# 配置聚合组为Trunk,允许防火墙业务VLAN(假设VLAN 100)​\[Stack-SW-Eth-Trunk1] port link-type trunk​\[Stack-SW-Eth-Trunk1] port trunk allow-pass vlan 100​\[Stack-SW-Eth-Trunk1] quit(2)VLAN 隔离:区分双运营商链路假设: 运营商 A(电信)链路连接 SW1 的 0/3,对应 VLAN 200;运营商 B(联通)链路连接 SW2 的 0/3,对应 VLAN 300;配置 VLAN 隔离避免流量混跑: \# 创建运营商A的VLAN 200​\[Stack-SW] vlan 200​\[Stack-SW-vlan200] quit​\# 配置SW1的0/3为Access口,划入VLAN 200(连接运营商A)​\[Stack-SW] interface GigabitEthernet 1/0/3​\[Stack-SW-GigabitEthernet1/0/3] port link-type access​\[Stack-SW-GigabitEthernet1/0/3] port default vlan 200​\[Stack-SW-GigabitEthernet1/0/3] quit​\# 创建运营商B的VLAN 300​\[Stack-SW] vlan 300​\[Stack-SW-vlan300] quit​\# 配置SW2的0/3为Access口,划入VLAN 300(连接运营商B)​\[Stack-SW] interface GigabitEthernet 2/0/3​\[Stack-SW-GigabitEthernet2/0/3] port link-type access​\[Stack-SW-GigabitEthernet2/0/3] port default vlan 300​\[Stack-SW-GigabitEthernet2/0/3] quit(3)路由配置:指向运营商网关根据需求选择静态路由(简单) 或动态路由(BGP,适合多运营商负载分担),此处以静态路由为例: \# 配置到运营商A的静态路由(网关10.0.200.1,VLAN 200的网关)​\[Stack-SW] ip route-static 0.0.0.0 0.0.0.0 10.0.200.1 preference 60 # 优先级60(主用)​\# 配置到运营商B的静态路由(网关10.0.300.1,VLAN 300的网关)​\[Stack-SW] ip route-static 0.0.0.0 0.0.0.0 10.0.300.1 preference 80 # 优先级80(备用,主用故障时生效)三、方案 2:出口交换机不堆叠(VRRP+LACP)如果是因设备型号差异或特殊需求不堆叠,需通过VRRP(网关冗余)+ LACP(链路聚合)+ 备份链路实现冗余,两台交换机之间的 “一根线” 作为备份链路(或聚合链路)。1. 核心配置逻辑 两台交换机独立配置,需保证 VLAN、聚合组、VRRP 参数一致;用 VRRP 实现出口网关冗余(两台交换机虚拟为同一网关 IP);用 LACP 实现防火墙到交换机的链路冗余;两台交换机之间的 “一根线” 作为跨交换机备份链路(避免单交换机故障导致另一台无法访问运营商)。2. 关键配置示例(以 SW1 为例,SW2 配置对称)(1)链路聚合:连接防火墙(SW1 和 SW2 分别配置 LACP) \# SW1配置(SW2同,聚合组号一致)​\<SW1> system-view​\[SW1] interface Eth-Trunk 1​\[SW1-Eth-Trunk1] mode lacp-dynamic​\[SW1-Eth-Trunk1] trunkport GigabitEthernet 0/1 to 0/2 # SW1的本地端口​\[SW1-Eth-Trunk1] port link-type trunk​\[SW1-Eth-Trunk1] port trunk allow-pass vlan 100​\[SW1-Eth-Trunk1] quit(2)VLAN 与 VRRP:实现网关冗余假设防火墙业务 VLAN 100 的虚拟网关为 10.0.100.254,SW1 为主网关(优先级 120),SW2 为备网关(优先级 100): \# SW1配置\[SW1] vlan 100\[SW1-vlan100] quit\[SW1] interface Vlanif 100\[SW1-Vlanif100] ip address 10.0.100.252 255.255.255.0 # SW1的真实IP\[SW1-Vlanif100] vrrp vrid 1 virtual-ip 10.0.100.254 # 虚拟网关IP\[SW1-Vlanif100] vrrp vrid 1 priority 120 # 主网关优先级\[SW1-Vlanif100] quit\# SW2配置(对称)\[SW2] vlan 100\[SW2-vlan100] quit\[SW2] interface Vlanif 100\[SW2-Vlanif100] ip address 10.0.100.253 255.255.255.0 # SW2的真实IP\[SW2-Vlanif100] vrrp vrid 1 virtual-ip 10.0.100.254\[SW2-Vlanif100] vrrp vrid 1 priority 100 # 备网关优先级\[SW2-Vlanif100] quit(3)备份链路:两台交换机之间的 “一根线”将两台交换机的 0/24 口作为备份链路,配置为 Trunk,允许所有业务 VLAN: \# SW1的0/24口\[SW1] interface GigabitEthernet 0/24\[SW1-GigabitEthernet0/24] port link-type trunk\[SW1-GigabitEthernet0/24] port trunk allow-pass vlan all\[SW1-GigabitEthernet0/24] quit\# SW2的0/24口(同SW1)\[SW2] interface GigabitEthernet 0/24\[SW2-GigabitEthernet0/24] port link-type trunk\[SW2-GigabitEthernet0/24] port trunk allow-pass vlan all\[SW2-GigabitEthernet0/24] quit(4)路由配置:静态路由或 BGP与堆叠方案一致,需在两台交换机上分别配置指向运营商的路由,确保故障时流量可切换。 四、注意一下哦堆叠线的可靠性:堆叠方案中,两台交换机之间的 “一根线” 若为单条堆叠线,存在单点故障风险 —— 建议用 2 条堆叠线(如 0/23+0/24)做聚合,提升堆叠链路冗余。LACP 模式选择:连接防火墙和交换机的链路聚合,必须用 “动态 LACP 模式”(mode lacp-dynamic),避免静态聚合(mode manual)的故障切换不及时问题。VLAN 隔离的必要性:双运营商链路必须用 VLAN 隔离(如 VLAN 200/300),否则运营商 A 的流量可能误发至运营商 B,导致路由黑洞。故障切换测试:配置完成后,需模拟故障验证:堆叠方案:断开 SW1(主交换机)电源,查看 SW2 是否自动成为 Master,流量是否正常转发;非堆叠方案:断开 SW1 的运营商链路,查看流量是否切换到 SW2 的运营商链路。防火墙与交换机的配合:防火墙双机热备(如华为 USG 的 VGMP)需与交换机的链路聚合配合 —— 防火墙的 “心跳口” 和 “业务口” 需分别连接交换机,确保防火墙主备切换时,交换机链路同步切换。五、总结一下下 优先选堆叠方案:中小网络推荐出口交换机堆叠,简化管理、故障切换无感知,两台交换机之间的线作为堆叠成员端口;配置核心:堆叠后需做 LACP 链路聚合(连接防火墙)、VLAN 隔离(区分运营商)、静态 / BGP 路由(指向运营商网关);非堆叠方案兜底:仅在设备不兼容时用 VRRP+LACP,需保证两台交换机配置对称,且预留备份链路。
  • 【话题交流】大家最近使用哪些大模型?
    【话题交流】大家最近使用哪些大模型?
  • [技术干货] Ascend>MindSpeed>Megatron Multi-head Latent Attention
    请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/multi-head-latent-attention.md 
  • [技术干货] Ascend>MindSpeed>Megatron Transformer Engine
    请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/transformer_engine.md 
  • [技术干货] Ascend>MindSpeed>Megatron 全分片并行
    请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/custom_fsdp.md 
  • [技术干货] Ascend>MindSpeed>Megatron 分布式权重
    请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/dist_ckpt.md 
  • [技术干货] Ascend>MindSpeed>Megatron 重计算
    请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/recomputation.md 
  • [技术干货] Ascend>MindSpeed>Megatron 权重更新通信隐藏
    请查阅参考昇腾社区文档:https://gitee.com/ascend/MindSpeed/blob/master/docs/features/async-ddp-param-gather.md 
  • 【合集】存储服务2025.09月技术干货合集
    GaussDB自动统计信息收集策略cid:link_0 GaussDB DN主备同步的实现cid:link_7 华为云CCEcontainerd拉取镜像失败常用处理方法cid:link_8 Atune工具小知识cid:link_9 一文带你走进分布式存储与融合存储cid:link_10 几招搞定华为防火墙提速cid:link_11 数据中心网络Spine-Leaf 架构笔记分享cid:link_1 出口防火墙对于挖矿行为有效的阻止策略配置分享cid:link_12 openEuler 虚拟机安装时需注意的关键兼容性问题cid:link_21 openGauss连接类算子cid:link_2 防火墙常见的冗余备份方式总结cid:link_13 GaussDB 集中式数据库中指定表并行处理cid:link_14 记录一次华为MRS 集群排错案例cid:link_15 记一次GaussDB监控采集排错案例cid:link_16 大模型语言的纠错机制cid:link_3 DWS备份恢复API接口小知识cid:link_4 图像增加小知识点cid:link_17 什么是模型的全量微调?cid:link_18 什么是模型量化、剪枝和蒸馏cid:link_5 分类或回归任务中的长尾样本cid:link_19 常用的视频动作识别算法cid:link_20 常见的图像拼接算法总结cid:link_6 
  • 常见的图像拼接算法总结
     图像拼接的核心目标是将多幅重叠区域的图像(如手机全景拍摄、卫星遥感、医学影像)合成为一幅宽视角、无缝的完整图像。算法的 “好用” 取决于场景需求(如实时性、精度、抗畸变能力)。一、传统经典算法(基础实用,易部署)传统算法基于 “特征匹配 - 配准 - 融合” 三步流程,不依赖大规模数据训练,速度快、可解释性强,适合静态场景、资源受限设备(如移动端)。1. 核心流程与关键算法图像拼接的经典流程为:图像预处理(去畸变)→ 特征提取与匹配 → 几何配准(单应性矩阵估计)→ 图像融合(消除接缝)每个环节的 “好用” 算法如下:环节主流算法核心优势适用场景特征提取SIFT(尺度不变特征变换)对尺度、旋转、光照变化鲁棒,匹配精度高静态场景(如风景全景、建筑摄影) SURF(加速鲁棒特征)比 SIFT 快 10 倍,适合实时场景移动端快速拼接、监控视频帧拼接 ORB(定向 FAST 与旋转 BRIEF)纯整数运算,速度超 SURF,开源免费(无专利)嵌入式设备、实时拼接(如手机全景模式)特征匹配FLANN(快速最近邻搜索库)比暴力匹配快 100 + 倍,支持大规模特征匹配多幅图像拼接(如 10 + 张卫星影像) RANSAC(随机抽样一致性)剔除 70% 以上外点(错误匹配),配准鲁棒性强重叠区域少、噪声多的场景(如航拍图像)几何配准单应性矩阵(Homography)描述平面图像间的投影关系,计算简单平面场景(如文档扫描、墙面拍摄) 柱面 / 球面投影矫正宽视角畸变(避免 “全景拉伸”)360° 全景拼接(如 VR 场景、室内全景)图像融合加权平均融合(Feathering)实现简单,通过重叠区像素加权消除接缝曝光差异小的图像(如同一时间拍摄的风景) 多频段融合(Multi-Band Blending)分高频(细节)、低频(亮度)融合,无缝性强曝光差异大的场景(如早晚光效拼接) 泊松融合(Poisson Blending)保留图像纹理一致性,消除光晕医学影像(如 CT 切片拼接)、高精度场景2. 经典集成方案:OpenCV StitcherOpenCV 内置的Stitcher类是传统算法的 “一站式工具”,集成了 ORB 特征、RANSAC 配准、多频段融合,支持单应性 / 柱面投影,开箱即用,适合快速实现拼接需求。优势:无需手动调参,支持多幅图像(≤20 张)拼接,速度快(单张 1080P 图像拼接耗时 < 1 秒);局限:动态场景(如行人、车辆移动)易出现重影,弱纹理区域(如纯色墙面)匹配易失败;适用场景:静态风景全景、文档扫描、监控画面拼接(无动态物体)。 二、深度学习算法(鲁棒性强,复杂场景首选)传统算法依赖手工设计特征,对动态场景、弱纹理、大畸变的鲁棒性不足;深度学习通过数据驱动学习拼接规则,能处理更复杂的场景(如动态物体、非平面场景)。1. 按技术路线分类算法类型代表模型核心创新适用场景特征学习型Deep Feature Matching(DFM)用 CNN(如 AlexNet、ResNet)提取深层特征,比 SIFT 鲁棒性高 30%弱纹理场景(如雪地、沙漠拼接) SuperPoint + SuperGlue自监督学习关键点,匹配准确率超 ORB 50%,支持实时匹配低光照、低分辨率图像(如夜视监控拼接)端到端拼接型DeepPanorama用 U-Net 结构直接输出拼接结果,集成配准与融合动态场景(如街道行人、车辆移动) GAN-based Stitching(如 PanoramaGAN)生成对抗网络消除重影,生成自然拼接边界大重叠、动态物体场景(如演唱会全景)畸变矫正型Deep Homography Estimation用 CNN 直接预测单应性矩阵,比传统 RANSAC 快 5 倍鱼眼镜头畸变矫正(如无人机鱼眼图像拼接) Spherical CNN-based Stitching球面卷积处理 360° 全景畸变,避免拉伸VR 全景、卫星全球影像拼接特定场景优化型Medical Image Stitching Net(MIS-Net)针对医学影像(CT/MRI)优化,保留病灶细节医学切片拼接(如肺部 CT 多切片合成) Satellite Image Stitching TransformerTransformer 捕捉长距离依赖,处理大尺度影像卫星遥感大区域拼接(如农田、城市规划)2. 实用工具与开源项目深度学习算法需依赖框架实现,但已有成熟开源项目降低使用门槛:SuperPoint + SuperGlue:GitHub 开源(magic-leap-oss/SuperGluePretrainedNetwork),支持 Python 调用,可直接替换传统特征匹配模块;DeepPanorama:基于 PyTorch 实现,支持动态场景拼接,提供预训练模型,适合快速测试;TensorFlow Hub 全景拼接模型:谷歌提供预训练端到端模型,支持输入多幅图像输出全景图,适合非专业开发者。 三、算法选型决策树(按场景选 “好用” 的)场景需求推荐算法工具支持快速实现、静态场景OpenCV Stitcher(ORB + 多频段融合)OpenCV-Python/C++,1 行代码调用实时拼接、移动端 / 嵌入式ORB + RANSAC + 加权融合OpenCV、MNN/TensorRT 加速弱纹理、低光照场景SuperPoint + SuperGluePython(PyTorch/TensorFlow)动态场景、消除重影DeepPanorama / PanoramaGANPyTorch 预训练模型,需 GPU 推理360° 全景、抗畸变柱面投影(传统)/ Spherical CNNOpenCV(传统)、TensorFlow(深度学习)医学影像、高精度泊松融合(传统)/ MIS-NetMATLAB(传统)、PyTorch(深度学习)卫星遥感、大尺度单应性矩阵(传统)/ Transformer-basedENVI(传统)、PyTorch(深度学习) 四、注意避免 “不好用” 的坑图像预处理优先:拼接前需统一图像分辨率、矫正镜头畸变(尤其是鱼眼镜头),否则会导致配准失败。传统算法可用 OpenCV 的calibrateCamera矫正,深度学习算法可直接输入原始畸变图像(部分模型内置矫正模块)。重叠区域控制:多幅图像的重叠率需≥20%(推荐 30%-50%),否则特征匹配点不足。若重叠率低,优先选择深度学习特征(如 SuperGlue),或增加拍摄张数。实时性与算力平衡:传统算法(ORB+FLANN)可在 CPU 上实时运行(1080P 图像 < 0.5 秒 / 幅);深度学习算法需 GPU 支持(如 RTX 3090 处理 1080P 图像≈1-2 秒 / 幅),移动端需用 TensorRT/MNN 量化加速。总结一下下传统算法:适合静态、实时、资源受限场景,首选 OpenCV Stitcher,简单高效;深度学习算法:适合动态、弱纹理、高精度场景,首选 SuperPoint+SuperGlue(特征匹配)或 DeepPanorama(端到端);实际应用中,可结合两者优势(如用深度学习做特征匹配,传统多频段融合做拼接),兼顾鲁棒性与速度。
  • 常用的视频动作识别算法
    视频动作识别算法的核心是从视频的时空数据中提取运动特征与空间特征,并对人类或物体的动作类别进行分类。一、传统方法(基础参考,已较少用于主流场景)传统方法依赖手工设计特征,虽精度有限,但原理简单,适合资源极度受限或简单场景:HOG+SVM/BoW:原理:将视频帧拆分为块,提取HOG(方向梯度直方图) 描述空间纹理,结合光流(Optical Flow) 描述运动,再用BoW(词袋模型) 聚合特征,最后用 SVM 分类。适用场景:简单动作(如 “走”“跑”)、低分辨率视频,如早期监控行为检测。局限:对遮挡、复杂背景鲁棒性差,无法捕捉长时运动依赖。Dense Trajectories(密集轨迹):原理:跟踪视频中密集采样的局部轨迹,提取轨迹上的 HOG、光流、颜色等特征,用 Fisher 向量编码后分类。优势:在 UCF101(101 类动作)上曾达到 81.4% 准确率,是 2013 年前后的 SOTA。局限:计算复杂度极高,无法实时处理。二、基于 CNN+RNN 的经典方法(平衡时空特征)这类方法将2D CNN(提取空间特征) 与RNN/LSTM/GRU(捕捉时间依赖) 结合,是深度学习早期的主流方案:Two-Stream CNN(双流网络):核心思想:分 “空间流” 和 “时间流” 并行提取特征,再融合分类:空间流:输入 RGB 帧,用 2D CNN(如 AlexNet)提取物体形状、纹理等空间特征;时间流:输入光流场(如 TV-L1 光流),用相同 CNN 提取运动特征;性能:在 UCF101 上准确率 88.0%,HMDB51(51 类动作)上 62.5%,奠定了深度学习动作识别的基础。局限:需预计算光流,耗时且存储成本高;RNN 对长视频的时间依赖捕捉有限。C3D(3D Convolutional Networks):突破:首次将 2D 卷积扩展为3D 卷积(同时滑动在空间维度和时间维度),端到端学习时空特征,无需预计算光流。结构:用 3×3×3 卷积核(空间 3×3,时间 3 帧),在 Kinetics-400(400 类动作)上准确率 65.4%。局限:3D 卷积参数量大(比 2D CNN 多 3 倍),计算效率低,难以处理长视频。三、主流 3D CNN 变体(高精度首选)针对 C3D 的效率问题,研究者提出了更高效的 3D CNN 结构,平衡精度与速度,是当前工业界和学术界的主流:I3D(Inflated 3D CNN):改进:将 2D CNN(如 Inception-v1、ResNet)的卷积核 “膨胀” 为 3D(如 2D 3×3→3D 3×3×3),同时调整池化层为 3D,复用 2D CNN 的预训练权重。性能:在 Kinetics-400 上准确率 74.2%(Inception-v1 backbone),在 UCF101 上 94.1%,精度远超 C3D。优势:兼容 2D 预训练,收敛快;支持多尺度输入,对复杂动作鲁棒。适用场景:视频分析、行为识别(如监控中的 “跌倒检测”)、体育赛事动作分类。SlowFast Networks:核心设计:分 “慢流” 和 “快流” 处理时空特征,兼顾精度与效率:慢流(Slow Pathway):低帧率采样(如 16 帧取 1 帧),用 3D CNN 提取高分辨率空间特征(关注 “是什么动作”);快流(Fast Pathway):高帧率采样(如 16 帧取 8 帧),用轻量化 3D CNN 提取低分辨率时间特征(关注 “动作如何变化”);性能:在 Kinetics-400 上准确率 79.0%,Kinetics-600 上 83.0%,在 AVA(原子动作检测)数据集上 mAP 35.9%。优势:比 I3D 快 2 倍,比 C3D 快 10 倍,是当前高精度 + 高效率的首选方案。适用场景:实时视频监控、影视动作分析、自动驾驶中的行人动作识别。X3D(Expanded 3D CNN):创新:在 SlowFast 基础上,通过 “深度、宽度、分辨率、帧率、 kernel 大小”5 个维度联合扩展网络,用更小参数量实现更高精度。性能:X3D-L 在 Kinetics-400 上准确率 85.2%,参数量仅 6.7M(比 SlowFast 小 8 倍),计算量仅 12.7 GFLOPs。优势:极致的 “精度 - 效率比”,支持移动端和边缘设备部署。适用场景:资源受限的实时动作识别(如手机端健身动作纠正)、嵌入式监控设备。四、基于 Transformer 的方法(长视频与复杂动作)Transformer 的自注意力机制能捕捉长距离时空依赖,近年来在视频动作识别中表现突出,尤其适合长视频和复杂动作:TimeSformer(Time-Space Transformer):原理:将视频拆分为 “时空块”(如 T 帧 ×H×W 图像→T×N 个 16×16 块,N 为每帧块数),用 Transformer 的自注意力计算任意块之间的时空关联。注意力模式:支持 5 种模式(如空间注意力、时间注意力、时空注意力),灵活捕捉不同维度的依赖。性能:在 Kinetics-400 上准确率 79.8%,在长视频数据集(如 Something-Something V2)上表现优于 3D CNN。优势:对长时动作(如 “做饭”“修车”)的依赖捕捉更精准。Video Swin Transformer:改进:将 2D Swin Transformer(窗口自注意力)扩展到视频,引入时空窗口自注意力(同时在空间窗口和时间窗口内计算注意力),减少计算量。性能:Video Swin-B 在 Kinetics-400 上准确率 84.9%,Kinetics-600 上 87.1%,AVA 数据集 mAP 44.5%,是当前 Transformer 类方法的 SOTA。优势:兼顾长距离依赖和局部细节,对遮挡、视角变化鲁棒。适用场景:复杂场景动作识别(如多人交互动作)、医学视频分析(如手术动作分类)。五、轻量化与实时方法(边缘设备部署)针对移动端、嵌入式设备等资源受限场景,需在精度和速度间平衡:MobileNet3D:原理:将 2D MobileNet 的深度可分离卷积扩展为 3D(空间深度可分离 + 时间深度可分离),大幅减少参数量和计算量。性能:MobileNetV2-3D 在 UCF101 上准确率 89.5%,计算量仅 2.3 GFLOPs,比 C3D 小 20 倍。适用场景:手机端动作识别(如健身 APP 实时纠正动作)、智能手表的手势识别。EfficientNet3D:创新:将 2D EfficientNet 的 “复合缩放”(深度、宽度、分辨率)扩展到 3D,同时缩放时间维度(帧率),实现精度与效率的最优平衡。性能:EfficientNet-B3-3D 在 Kinetics-400 上准确率 78.4%,计算量 8.4 GFLOPs,比 I3D 快 3 倍。优势:开箱即用的轻量化方案,支持 TensorRT 加速,适合边缘计算。六、算法选型决策树需求场景推荐算法核心原因高精度、复杂动作(如多人交互)Video Swin Transformer/X3D捕捉长时依赖,对遮挡鲁棒,精度 SOTA。实时性 + 中高精度(如监控)SlowFast/X3D快慢流平衡精度与速度,支持实时推理(≥30 FPS)。边缘设备 / 移动端(如手机 APP)MobileNet3D/EfficientNet3D轻量化,低计算量,支持 TensorRT/ONNX 加速。长视频分析(如 10 分钟以上)TimeSformer/Video Swin自注意力捕捉长距离时空依赖,优于 3D CNN。学术研究 /baseline 对比I3D/SlowFast经典且开源实现丰富,便于扩展改进。七、常用数据集与性能对比算法Kinetics-400 准确率UCF101 准确率参数量(M)计算量(GFLOPs)C3D65.4%90.2%41.3320I3D(Inception)74.2%94.1%28.0150SlowFast(R50)79.0%96.0%34.575X3D-L85.2%97.3%6.712.7Video Swin-B84.9%97.5%88.2210MobileNetV2-3D72.1%89.5%2.02.3 总结一下下高精度首选:X3D(平衡精度与效率)、Video Swin Transformer(复杂动作 / 长视频);实时部署首选:SlowFast(监控场景)、MobileNet3D/EfficientNet3D(移动端 / 边缘设备);经典 baseline:I3D、Two-Stream(学术研究入门)。实际应用中,需结合硬件资源(GPU/CPU/ 边缘芯片)、视频长度、动作复杂度选择算法,并通过 TensorRT、ONNX Runtime 等工具加速推理。
  • 分类或回归任务中的长尾样本
    长尾样本(Long-Tailed Samples)是指在分类或回归任务中,数据集中的类别分布呈现极端不均衡的现象:少数头部类别(Head Classes)占据了大部分样本,而绝大多数尾部类别(Tail Classes)仅有极少量样本。这种分布形态类似于 “长尾”,头部高耸,尾部平缓延伸,因此得名。一、核心特征:极端的类别分布失衡头部主导,尾部稀疏头部类别:少数几个类别占据数据集的80% 以上样本(甚至更高比例)。例如,在图像识别任务中,“猫”“狗” 等常见类别可能包含数万张图片,而 “穿山甲”“树懒” 等稀有类别仅有几十张样本。尾部类别:大量类别(可能占总类别的 70%-90%)仅包含个位数或零星样本。例如,iNaturalist 2017 数据集包含 5089 类生物,其中尾部类别的样本数少至 4 张。分布形态符合幂律或指数衰减长尾分布通常遵循幂律分布(Power Law)或指数衰减规律,即类别样本数与类别排名的某个幂次成反比。例如,第r名的类别样本数约为N×r−α(α>0),头部类别(r小)样本数远大于尾部(r大)。这种分布在自然界和社会现象中普遍存在,如词汇频率(齐普夫定律)、商品销售、网页点击量等。二、与类别不平衡的区别长尾样本是 ** 类别不平衡(Class Imbalance)** 的一种极端形式,但二者并非完全等同:类别不平衡:泛指所有类别样本数不均的情况(如 1000:1 的正负样本),但可能尾部类别仍有一定数量样本(如几十或上百)。长尾样本:特指尾部类别样本数极少(如 < 10 个),且尾部类别数量占比极大(如总类别数的 70% 以上)。 例如,在欺诈检测中,好坏样本比例为 1000:1 属于类别不平衡;但若尾部类别(坏样本)仅有几个实例,则属于长尾样本。三、对模型的影响严重偏向头部类别模型在训练时会优先学习头部类别的特征,导致对尾部类别的识别能力极差。例如,在 CIFAR10-LT 数据集中,头部类别的召回率可达 98.5%,而尾部类别仅为 8.4%。尾部样本的高精度假象由于尾部样本数量极少,模型若误将其预测为头部类别,会导致尾部类别的准确率虚高(因为分母小)。例如,某尾部类别仅有 5 个样本,模型误判其中 4 个为头部类别,准确率仍为 20%(1/5),但实际召回率极低。泛化能力下降模型难以捕捉尾部类别的多样性特征,在实际部署中遇到未见过的尾部样本时,表现会显著恶化。四、典型应用场景自然图像识别如 iNaturalist 数据集,包含大量稀有物种(如濒危鸟类、昆虫),而常见物种(如猫狗)占据多数样本。医疗影像诊断罕见疾病(如特定类型肿瘤)的病例极少,而常见病(如肺炎)样本丰富。文本分类社交媒体中,少数热门话题(如 “科技”“娱乐”)占据大部分文本,而小众话题(如 “极地科考”“古籍修复”)仅有零星内容。工业质检产品缺陷(如电路板微小裂纹)属于尾部类别,而正常产品为头部类别。五、解决方案概述数据层面过采样尾部类别:通过复制、数据增强(如 RandAugment、Mixup)或生成对抗网络(GAN)扩充尾部样本。欠采样头部类别:减少头部样本数量,平衡各类别比例,但可能损失有效信息。算法层面重加权损失函数:对尾部类别赋予更高的损失权重(如样本数倒数),强制模型关注稀有样本。解耦学习框架:将特征学习与分类器学习分离,避免头部类别主导特征提取。模型层面层次化建模:将尾部类别归为上级超类(如 “动物”→“犬科”→“哈士奇”),利用层次结构迁移知识。元学习或小样本学习:通过少量样本快速适应尾部类别的特征。总结长尾样本是一种极端类别不平衡的数据集,其核心特征是头部类别样本密集、尾部类别样本极少且数量占比大。这种分布会导致模型严重偏向头部类别,对尾部类别识别能力低下。解决长尾问题需结合数据增强、算法调整和模型设计,以平衡各类别的学习权重,提升模型对稀有样本的泛化能力。
  • 什么是模型量化、剪枝和蒸馏
    模型量化、剪枝和蒸馏是三种主流的模型压缩与优化技术,核心目标是在保证模型性能(精度、准确率)的前提下,减小模型体积、降低计算复杂度,使其能在资源受限的设备(如手机、嵌入式设备、边缘终端)上高效部署。一、模型量化(Model Quantization):降低参数精度,减少存储与计算成本核心原理将模型中高精度的参数(如 32 位浮点数,FP32)转换为低精度格式(如 16 位浮点数 FP16、8 位整数 INT8,甚至 4 位、2 位、1 位),利用神经网络对 “噪声” 的容忍性,在精度损失可控的前提下,减少参数存储量和计算量。关键方法训练后量化(Post-Training Quantization, PTQ)直接对训练好的模型参数进行量化,无需重新训练,操作简单(如 TensorFlow Lite 的量化工具)。缺点:精度损失可能较大(尤其低至 INT8 以下时),适合对精度要求不高的场景(如简单图像分类)。量化感知训练(Quantization-Aware Training, QAT)在训练过程中模拟低精度量化的误差(如数值截断、舍入),让模型 “适应” 量化带来的噪声,最终输出量化模型。优点:精度损失小(INT8 量化可保留原模型 95% 以上性能),适合高精度需求场景(如目标检测、医学影像)。效果与适用场景压缩效果:FP32→INT8 可减少 75% 存储量(32 位→8 位),计算速度提升 2-4 倍(硬件对整数计算支持更高效)。典型场景:移动端 AI(如手机拍照的实时美颜、语音识别)、嵌入式设备(如智能家居的图像传感器)。 二、模型剪枝(Model Pruning):移除冗余参数,精简模型结构核心原理神经网络存在大量 “冗余参数”(如权重绝对值接近 0 的连接、贡献微小的神经元或层),剪枝通过移除这些冗余部分,在不显著影响性能的前提下,减小模型规模。关键方法非结构化剪枝(Unstructured Pruning)随机或按阈值移除单个冗余权重(如删除绝对值小于 0.001 的权重),得到稀疏矩阵。优点:压缩率高(可移除 50%-90% 参数);缺点:稀疏矩阵难以被硬件加速(普通 GPU/CPU 对非连续内存访问效率低)。结构化剪枝(Structured Pruning)按 “结构单元” 移除冗余(如 CNN 的整个卷积核、通道,Transformer 的整个注意力头),保留模型的密集性。优点:适配硬件加速(如 GPU 的卷积计算优化),部署友好;缺点:压缩率略低(通常移除 30%-60% 参数)。效果与适用场景压缩效果:结构化剪枝可减少 40%-60% 计算量,模型体积缩小 30%-50%(如 ResNet50 剪枝后可在嵌入式设备运行)。典型场景:CNN 模型压缩(如自动驾驶的实时目标检测)、边缘计算设备(如工业机器人的视觉识别)。 三、知识蒸馏(Knowledge Distillation):小模型学习大模型的 “知识”核心原理用一个高性能的大模型(教师模型,Teacher Model)指导一个小模型(学生模型,Student Model)训练,让小模型 “模仿” 大模型的行为(不仅是最终输出,还包括中间特征、概率分布等),使小模型在体积小的情况下接近大模型的性能。关键方法基于软标签的蒸馏教师模型输出 “软标签”(如分类任务中的概率分布,包含类间关系信息,如 “猫” 和 “虎” 的概率接近),学生模型通过学习软标签(而非仅硬标签 “猫”),学到更丰富的知识。核心损失:蒸馏损失(学生软标签与教师软标签的 KL 散度)+ 任务损失(学生硬标签与真实标签的交叉熵)。特征蒸馏让学生模型的中间层特征(如 CNN 的卷积层输出、Transformer 的隐藏状态)模仿教师模型的对应层特征,保留更深层的任务相关信息。效果与适用场景压缩效果:学生模型体积可缩小 10-100 倍,性能接近教师模型(如用 BERT-base 作为教师,蒸馏出的 MobileBERT 在 NLP 任务上性能损失 < 3%,速度提升 5 倍)。典型场景:NLP 任务(如手机端的语音助手、文本分类)、需要小模型但高性能的场景(如可穿戴设备的健康监测)。对比一下下技术核心优化方向优势劣势典型组合量化降低参数精度实现简单,硬件加速友好过低精度可能导致性能下降剪枝 + 量化(先精简结构,再降精度)剪枝移除冗余参数 / 结构直接减少计算量和参数数量需精细调参避免性能损失蒸馏 + 剪枝(用教师指导剪枝后的学生)蒸馏小模型模仿大模型性能接近大模型,泛化性好需要教师模型,训练流程复杂量化 + 蒸馏(低精度小模型学习大模型知识) 总结一下下量化适合 “降精度提效”,侧重硬件友好性;剪枝适合 “删冗余精简”,侧重结构优化;蒸馏适合 “小模型学知识”,侧重性能保留。实际部署中,三者常结合使用(如先蒸馏得到小模型,再剪枝移除冗余,最后量化至 INT8),在资源受限设备上实现 “小体积、高性能、快速度” 的 AI 应用。
总条数:1670 到第
上滑加载中