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

25/2/16 <算法笔记> DirectPose

DirectPose 是一种直接从图像中预测物体的 6DoF(位姿:6 Degrees of Freedom)姿态 的方法,包括平移和平面旋转。它在目标检测、机器人视觉、增强现实(AR)和自动驾驶等领域中具有广泛应用。相比于传统的位姿估计方法,DirectPose 试图简化复杂的处理流程,采用端到端的方式直接从图像中输出位姿参数。

1. DirectPose 是什么?

DirectPose 是一种端到端的神经网络方法,旨在直接从输入图像获取目标对象的 6DoF 位姿

  • 6DoF 位姿: 位姿是 3D 空间中一个物体的位置和姿态的完整描述,由 3 个平移(Position,x, y, z) 和 3 个旋转(Orientation,旋转角度 roll, pitch, yaw 或四元数表示) 构成。

相比传统流程(例如先目标检测,再通过点云或关键点匹配生成位姿估计),DirectPose 直接将任务简化为:输入图像后端到端预测出物体的平移和旋转参数,无需中间步骤。

2. 它解决了什么问题?

DirectPose 的提出旨在解决如下问题:

  1. 传统方法依赖多步骤处理:
    传统的位姿估计方法需要以下步骤:

    • 目标检测:找到目标物体的 2D 边界框。
    • 特征提取:提取物体的形状特征或关键点。
    • 位姿计算:通过几何算法求解 6DoF 位姿,比如 PnP 或 ICP。
      这种分割式流程容易积累误差,尤其是在特征提取和位姿计算中。
  2. 需要强鲁棒性:
    传统方法在低光照、遮挡、纹理缺失或目标外观变化等情况下性能较差,这使得它们在实际应用中不够稳定。

  3. 速度较慢:
    多阶段处理意味着更多时间成本,而 DirectPose 作为端到端方法,能够显著压缩推理时间。

3. 工作原理:如何实现端到端的位姿估计?

DirectPose 的架构可以分为以下几个关键步骤:

(1) 图像输入与特征提取
  • 输入的 RGB 图像经由一个 特征提取网络(通常是一个预训练的 CNN 模块,比如 ResNet 或 Transformer),提取到高质量的多尺度特征。这些特征包含了物体的纹理、结构、边界和姿态信息。
(2) 目标检测+位姿回归
  • DirectPose 同时执行目标检测和物体的 6DoF 位姿预测:
    • 目标检测部分: 检测物体的 2D 边界框。例如,使用类似 YOLO 的单阶段检测机制预测目标所在位置。
    • 位姿回归部分: 基于目标检测位置,通过一个全连接层或回归头直接预测 6DoF 参数(平移和旋转,具体形式后文详述)。
(3) 输出 6DoF 位姿结果
  • 最终输出物体的位姿:
    • 平移 (x,y,z)(x,y,z):物体在 3D 空间中的位置。
    • 旋转 (qw,qx,qy,qz)(qw​,qx​,qy​,qz​):通常用四元数表示物体旋转,避免欧拉角的万向节锁问题。

损失函数

DirectPose 使用多种损失函数来监督模型的预测结果:

平移误差:

旋转误差:

其中 q^是预测四元数,q是 Ground Truth 四元数,⟨⋅,⋅⟩ 表示点积运算。这种方法的目标是最大化两者之间的相似性。

联合损失:
平移误差和旋转误差通常会联合优化:

这里 λpos​ 和 λrot 是权重,分别调整平移与旋转误差的平衡。

模型构建

DirectPose 的模型包含两个主要分支:

  • 目标检测分支: 用于预测目标的 2D 边界框(类似于 YOLO 的检测头)。
  • 姿态估计分支: 用于回归平移 (x,y,z) 和旋转 (qw​,qx​,qy​,qz​)。

整个模型可以是基于一个 YOLO-like 的单阶段目标检测模型,加入姿态回归分支。

import torch
import torch.nn as nn
import torchvision.models as modelsclass DirectPoseModel(nn.Module):def __init__(self, num_classes=1):super(DirectPoseModel, self).__init__()# 基础特征提取网络(可以替换成 ResNet、EfficientNet 等)self.backbone = models.resnet50(pretrained=True)self.backbone = nn.Sequential(*list(self.backbone.children())[:-2])  # 去除分类层# 检测头:预测物体 2D 边界框 (x_min, y_min, x_max, y_max)self.det_head = nn.Sequential(nn.Conv2d(2048, 512, kernel_size=3, stride=1, padding=1),nn.ReLU(),nn.Conv2d(512, 4, kernel_size=1)  # 输出 4 个数值)# 位姿参数头:回归平移 (x, y, z) 和旋转 (q_w, q_x, q_y, q_z)self.pose_head = nn.Sequential(nn.Conv2d(2048, 512, kernel_size=3, stride=1, padding=1),nn.ReLU(),nn.AdaptiveAvgPool2d((1, 1)),  # 全局池化nn.Flatten(),nn.Linear(512, 7)  # 输出 (x, y, z, q_w, q_x, q_y, q_z))def forward(self, x):# 特征提取features = self.backbone(x)# 检测分支bbox = self.det_head(features)  # Shape: [B, 4, H, W]# 位姿分支pose = self.pose_head(features)  # Shape: [B, 7]return bbox, pose

损失函数定义

DirectPose 使用多任务损失:

  • 检测损失: 用于边界框的预测(如 L1 损失或 GIoU 损失)。
  • 姿态损失: 用于回归物体的平移和平面旋转。
# 平移损失
def translation_loss(pred_translation, gt_translation):# 使用 L2 范数return torch.nn.functional.mse_loss(pred_translation, gt_translation)# 旋转损失
def rotation_loss(pred_rotation, gt_rotation):# 使用四元数点积计算相似性pred_rotation = pred_rotation / torch.norm(pred_rotation, dim=-1, keepdim=True)  # 归一化gt_rotation = gt_rotation / torch.norm(gt_rotation, dim=-1, keepdim=True)return 1 - (torch.sum(pred_rotation * gt_rotation, dim=-1) ** 2).mean()# 总损失
def total_loss(pred_bbox, gt_bbox, pred_translation, gt_translation, pred_rotation, gt_rotation):# 检测损失det_loss = torch.nn.functional.mse_loss(pred_bbox, gt_bbox)# 位姿损失trans_loss = translation_loss(pred_translation, gt_translation)rot_loss = rotation_loss(pred_rotation, gt_rotation)# 加权组合return det_loss + 10 * trans_loss + rot_loss

实现端到端的目标检测和位姿估计(即 DirectPose),核心在于利用一个模型同时完成多个任务,比如检测物体位置、预测物体的三维平移和旋转,所有步骤都是自动化的“端到端”处理。

DirectPose的端到端实现思路

  1. 输入一张图片,输出完整检测和位姿信息:

    • 输入: 一张普通 RGB 图片。
    • 输出:
      • 边界框(2D位置): 物体在图片中框起来的位置。
      • 位姿参数(3D信息): 物体相对于相机的三维位置 (x,y,z)(x,y,z) 和朝向(旋转,用四元数 (qw,qx,qy,qz)(qw​,qx​,qy​,qz​) 表示)。
  2. 用一个单模型完成所有任务:

    • 使用一个类似 YOLO 的目标检测模型,但在最终输出中,增加了位姿参数的预测。模型在学习“检测边界框”的同时,也学会“估计物体的三维信息”。
    • 这通过在底层共享同样的特征,同时给不同任务设计 “不同的输出分支” 实现。
  3. 模型的结构:

    • 图片特征提取: 模型会从输入图片中学习到各种特征(比如物体的形状、边界、纹理等)。
    • 分支1——用于检测: 一部分特征被用来预测物体在图片中的二维位置(边界框 (xmin​,ymin​,xmax​,ymax​))。
    • 分支2——用于估计位姿: 另一部分特征被用来预测物体的位置和朝向(平移 (x,y,z)(x,y,z) 和旋转 (qw,qx,qy,qz))。
  4. 训练模型时,设计任务的“学习目标”:

    • 模型会通过“损失函数”告诉自己哪些输出是对的,哪些是错的。
    • 定义了两个主要的学习目标:
      • 检测损失: 学会画出更准确的边界框(比如用 L1 或 IOU 损失计算真实框和预测框的偏差)。
      • 位姿损失: 学会输出更准确的平移和旋转(通过计算它们的误差,让小数值不断改进)。
    • 最终,这些学习目标会自动反馈到模型的所有部分,优化整个模型。
  5. 整个流程是自动化的:

    • 数据输入 -> 模型处理(提取特征 + 分支输出) -> 损失反馈 -> 模型权重调整 -> 输出最终结果。
    • 只需要给模型输入一张图片,它就可以完成从图片到目标检测和位姿估计的所有步骤,而不需要再手动分步骤处理。

举个例子直观感受:

如果这个系统用于检测一辆车的三维位姿,那么它做的事情就是:

  1. 看图片: 假如输入了一张有汽车的图片。
  2. 自动框住汽车: 模型会输出汽车在图片中的位置(比如左上角和右下角的像素点坐标)。
  3. 给出汽车的位置信息: 模型还会告诉这辆车在三维空间中的位置,比如离摄像头的距离 3 米,正对摄像头。
  4. 输出汽车的朝向: 最后,模型会计算这辆车的旋转,比如车头稍微向右偏转了 45 度。

用户只需要提供一张标注好的图片,使用 DirectPose 就能完成所有这些任务!

相关文章:

25/2/16 <算法笔记> DirectPose

DirectPose 是一种直接从图像中预测物体的 6DoF(位姿:6 Degrees of Freedom)姿态 的方法,包括平移和平面旋转。它在目标检测、机器人视觉、增强现实(AR)和自动驾驶等领域中具有广泛应用。相比于传统的位姿估…...

第32周:文献阅读

目录 摘要 Abstract 文献阅读 问题引入 研究问题 研究意义 研究方法 集成方法 随机森林(RF) 支持向量机(SVM) 简单循环神经网络(SimpleRNN) 长短期记忆网络(LSTM) 创…...

Ollama 开发指南

文章来源:开发指南 - Ollama中文文档|Ollama官方文档 安装先决条件: GOC/C 编译器,例如 macOS 上的 Clang、TDM-GCC (Windows amd64) 或 llvm-mingw (Windows arm64)、Linux 上的 GCC/Clang。…...

【deepseek与chatGPT辩论】辩论题: “人工智能是否应当具备自主决策能力?”

探讨辩论题 这个提案涉及创建一个精确的辩论题目,旨在测试deepseek的应答能力。 创建辩论题目 提议设计一个辩论题目以测试deepseek的应答能力。希望这个题目具有挑战性并能够测量其回应质量。 好的,来一道适合深度学习的辩论题: 辩论题&…...

神经网络常见激活函数 9-CELU函数

文章目录 CELU函数导函数函数和导函数图像优缺点pytorch中的CELU函数tensorflow 中的CELU函数 CELU 连续可微指数线性单元:CELU(Continuously Differentiable Exponential Linear Unit),是一种连续可导的激活函数,结合了 ELU 和 …...

JavaScript系列(74)--反射API详解

JavaScript反射API详解 🔍 JavaScript的反射API提供了强大的运行时检查和操作对象的能力。本文将深入探讨Reflect API的原理、应用场景和最佳实践。 反射基础 🌟 💡 小知识:反射是指程序在运行时能够检查、修改自身结构和行为的…...

轻量级分组加密算法RECTANGLE

轻量级分组加密算法RECTANGLE RECTANGLE轻量级分组密码算法是Wentao Zhang,Zhenzhen Bao,Dongdai Lin等学者于2014年提出的,该算法是SPN结构的,采用了线性移位的置换层以及44bit的S盒。RECTANGLE是一个迭代分组密码,分组长度为64…...

智能设备监控:AI 与 Python 助力设备管理的未来

智能设备监控:AI 与 Python 助力设备管理的未来 引言 随着物联网(IoT)和智能设备的广泛应用,我们的日常生活逐渐离不开这些高科技产品。从智能家居到工业控制,智能设备已经渗透到各个领域。然而,随着设备种类和数量的增加,如何高效地监控这些设备,确保它们的稳定性和…...

python语言进阶之函数

目录 前言 函数的创建和调用 函数创建 调用函数 参数传递 形式参数和实际参数 位置参数 数量必须与定义时一致 位置必须与定义时一致 关键字参数 为参数设置默认值 可变参数 **parameter 返回值 变量的作用域 局部变量 全局变量 匿名函数 前言 提到函数&…...

Golang Model 字段自动化校验设计

背景 在我们日常开发中,不可避免的总要去进行各种参数校验,但是如果在某个场景中,要校验的字段非常多,并且在其中还有耦合关系,那么我们手写校验逻辑就变得非常的低效且难以维护。本篇文档就基于 DDD 领域模型设计的思…...

Hot100 堆

215. 数组中的第K个最大元素 - 力扣(LeetCode) 堆排序 我们可以借助一个小顶堆来维护当前堆内元素的最小值,同时保证堆的大小为 k: 遍历数组将元素入堆; 如果当前堆内元素超过 k 了,我们就把堆顶元素去除…...

AIGC图生视频保姆级教程

一、AI文生图高阶技巧 推荐工具 ▸ MidJourney(艺术感最强) ▸ DALLE 3(与ChatGPT深度联动) ▸ Leonardo.ai(精细化参数控制) 核心策略 提示词架构: [主体描述][环境氛围][镜头语言][风格参数…...

Qt QDateTimeEdit总结

1. 概述 QDateTimeEdit 是 Qt 提供的用于编辑日期和时间的控件,支持直接输入或通过弹出日历/时间选择器调整值。继承自 QAbstractSpinBox,是 QDateEdit 和 QTimeEdit 的父类,可同时处理日期和时间。默认显示格式为系统本地化的日期时间格式&…...

【吾爱出品】 视频批量分段工具

视频批量分段工具 链接:https://pan.xunlei.com/s/VOJDvtHQE7GOiJ84WNea5Ay1A1?pwd5nta# 选择视频文件 启动程序后,点击 "文件" 菜单下的 "选择视频文件" 按钮,或者直接将视频文件拖放到程序窗口中的视频列表区域。支…...

SHEIN的迁移与无奈

日前,因杭州宇树科技、DeepSeek的“六小龙”企业崛起,不少地方开始反思,为什么本地没有留住创始人,或者发展出类似的企业。例如DeepSeek创始人梁文锋和Kimi创始人杨植麟都是广东人,但都在其他地区创业成功。而还有媒体…...

TCP/UDP 简介,三次握手与四次挥手

一、TCP 三次握手 目的:为了解决在不可靠的信道上建立可靠的网络连接 三次握手是连接请求的过程: A 发送连接请求的数据给 B(发送 SYN 包) B 同意连接,返回数据给 A(返回 SYNACK 包) A 收到后回…...

Windows Defender Control--禁用Windows安全中心

Windows Defender Control--禁用Windows安全中心 链接:https://pan.xunlei.com/s/VOJDuy2ZEqswU4sEgf12JthZA1?pwdtre6#...

数据仓库与数据湖的协同工作:智慧数据管理的双引擎

数据仓库与数据湖的协同工作:智慧数据管理的双引擎 引言 在数据驱动的今天,企业和组织收集和存储的数据量正以惊人的速度增长。如何高效管理和利用这些数据,成为了决策者和技术专家的共同难题。为了解决这一问题,数据仓库(Data Warehouse)和数据湖(Data Lake)这两种技…...

50. c++多维数组

在‘19 数组’中描述了原生数组的本质和其索引的原理,一维数组是连续的一个内存块,本质就是指针,指向这个内存块的起始位置,索引的原理就是对该指针的操作。通常对数组的操作一种策略就是使用指针,二维数组可以说是数组…...

用大模型学大模型05-线性回归

deepseek.com:多元线性回归的目标函数,损失函数,梯度下降 标量和矩阵形式的数学推导,pytorch真实能跑的代码案例以及模型,数据,预测结果的可视化展示, 模型应用场景和优缺点,及如何改进解决及改进方法数据推…...

苹果CMS站群插件的自动生成功能:提升网站流量的秘诀

引言 在数字营销的浪潮中,站群技术因其强大的流量引导能力而备受青睐。苹果CMS作为一款优秀的内容管理系统,凭借其灵活性和可扩展性,成为了站群管理的理想选择。本文将详细介绍苹果CMS站群插件的自动生成功能,探讨如何通过这一功…...

大语言模型中one-hot编码和embedding之间的区别?

1. 维度与稀疏性 One-Hot编码 定义:每个词被表示为一个高维稀疏向量,维度等于词汇表大小。例如,词汇表有10,000个词,每个词对应一个10,000维的向量,其中仅有一个位置为1(表示当前词)&#xff0…...

【Bluedroid】 BLE连接源码分析(一)

BLE链接过程分析见【Bluedroid】BLE连接过程详解-CSDN博客,本篇主要围绕HCI_LE_Create_Connection展开。基于Android14源码进行分析。在蓝牙低功耗技术中,设备之间建立连接是进行数据传输等操作的前提。HCI LE Extended Create Connection Command 提供了一种更灵活、功能更丰…...

【C语言】移除元素

移除元素 给你一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并原地修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后…...

SQL与数据库程序设计

1.1986年,10月美国国家标准局颁布了SQL语言的美国标准,称为SQL86 2.SQL(Structured Query Language)又称为结构化查询语言 3.建立索引的主要目的是加快查找的速度 4.在基本表上建立一个或者多个索引 5. 一个基本表是最多只能建立一个聚簇索引 6.CAL…...

基于Java企业项目管理系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...

Blazor-设置组件焦点

在Razor中设置焦点我们需要用到ElementReference类型的变量,使用ref指令引用到设置焦点HTML的元素。 在Blazor中,ElementReference类型的作用是提供对HTML DOM元素的引用,以便在C#代码中通过JavaScript互操作(JS Interop&#xff…...

信用违约掉期(Credit Default Swap, CDS):金融市场的“保险”还是“定时炸弹”?(中英双语)

信用违约掉期(CDS):金融市场的“保险”还是“定时炸弹”? 引言 信用违约掉期(Credit Default Swap, CDS) 是金融市场中一种重要的衍生品,它最初被设计为债务违约的保险工具,但在实…...

Deepseek R1模型本地化部署与API实战指南:释放企业级AI生产力

摘要 本文深入解析Deepseek R1开源大模型的本地化部署流程与API集成方案,涵盖从硬件选型、Docker环境搭建到模型微调及RESTful接口封装的完整企业级解决方案。通过电商评论分析和智能客服搭建等案例,展示如何将前沿AI技术转化为实际生产力。教程支持Lin…...

核货宝多语言订货系统:打破语言障碍,拓展全球市场

在经济全球化的大背景下,企业的业务版图不断向全球扩张,国际贸易活动日益频繁。对于众多从事跨境贸易、跨国批发零售以及拥有广泛海外客户群体的企业而言,一款能够跨越语言障碍的多语言订货系统,已成为其在全球市场竞争中脱颖而出…...

【prompt示例】智能客服+智能质检业务模版

本文原创作者:姚瑞南 AI-agent 大模型运营专家,先后任职于美团、猎聘等中大厂AI训练专家和智能运营专家岗;多年人工智能行业智能产品运营及大模型落地经验,拥有AI外呼方向国家专利与PMP项目管理证书。(转载需经授权&am…...

在linux系统中安装Anaconda,并使用conda

系统 : ubuntu20.04 显卡:NVIDIA GTX1650 目录 安装Anaconda第一步:下载合适版本的Anconda1. 查看自己Linux的操作系统及架构命令:uname -a2. 下载合适版本的Anconda 第二步:安装Aanconda1. 为.sh文件设置权限2. 执行.sh文件2.1 .…...

基于 openEuler 构建 LVS-DR 群集

1、环境准备 准备好下面四台台服务器: 主机名IP角色openEuler-1192.168.121.11Director ServeropenEuler-2192.168.121.12Real Server1openEuler-3192.168.121.13Real Server2Rocky8192.168.121.51Client 2、Web服务器配置 在两台RS上安装并配置nginx服务&#…...

委托构造函数与继承构造函数

委托构造函数 允许同一类中的构造函数调用另一个构造函数,以复用初始化逻辑。 委托构造函数不能同时初始化成员变量,只能委托给其他构造函数。 避免循环委托(如构造函数A委托给B,B又委托给A)。 class MyClass { pu…...

EPLAN 自定义图框

一 , 还是先打开系统自带的图框,作为参考 二, 自定义图框 1. 新建图框 2. 绘制。下图描述有误,直接将系统默认图框文件复制,然后重命名,在这个基础上来进行编辑。 三, 使用 1. 更改默认图框 2…...

c++ gcc工具链

GCC(GNU Compiler Collection)是一套广泛使用的开源编译工具链,支持多种编程语言(如 C、C、Objective-C、Fortran 等),主要用于 Linux 和嵌入式开发环境。 组成 GCC 工具链主要由以下几个核心工具组成&am…...

基于51单片机的的鸡笼补光和恒温系统的设计与实现(源程序+Protues仿真+电路图+元件清单+器件手册)

编号:71 基于51单片机的的鸡笼补光和恒温系统的设计与实现 功能描述: 本设计由89C52单片机液晶12864显示模块声光报警电路温湿度传感器电路风扇电路LED照明电路光照检测电路GSM电路DS1302时钟电路 1.实现的功能 (1)采用DHT11温湿传感器、光敏电阻捕捉…...

es-head 正则查询和标准正则查询的差异

在es-head里面查询,需要查询字符串是一个json串,因此就要符合json串的格式,在es-head里面可以通过regexp做正则查询,而这里的正则表达式其实是写成字符串的形式的,因此就要面对字符串转义的问题,比如你想匹…...

【深度学习】深度学习和强化学习算法——深度 Q 网络DQN

深度 Q 网络(Deep Q-Network, DQN) 详解 什么是DQNDQN 的背景DQN 训练流程 2 DQN 的核心思想2.1 经验回放(Experience Replay)2.2 目标网络(Target Network)2.3 ε-贪心策略(ε-Greedy Policy&a…...

matlab模拟风场的随机脉动风

1、内容简介 matlab137-模拟风场的随机脉动风 可以交流、咨询、答疑 2、内容说明 略 模拟风场的随机脉动风,并进行相关的统计分析和计算,包括风速谱、空间相关性、自谱、互谱、以及POD(Proper Orthogonal Decomposition)分解等…...

2025年2月16日(numpy-deepseek)

嗯,用户让我介绍一下这段使用numpy的代码。首先,我需要确认用户的需求是什么。他们可能刚开始学习Python或者数据科学,所以需要基础的解释。让我仔细看一下代码。 第一行是import numpy as np,这应该是导入numpy库,并…...

x64和ARM的区别

x64和ARM是两种不同的处理器架构,它们在指令集、设计理念、应用场景和能耗效率等方面存在显著差异。以下是它们之间的主要区别: 1. **指令集架构**: * **x64**:x64架构,也称为x86-64或AMD64,是x86架…...

电解电容的参数指标

容量 这个值通常是室温25℃,在一定频率和幅度的交流信号下测得的容量。容量会随着温度、直流电压、交流电压值的变化而改变。 额定电压 施加在电容上的最大直流电压,通常要求降额使用。 例如额定电压是4V,降额到70%使用,最高施…...

如何在 Mac 上解决 Qt Creator 安装后应用程序无法找到的问题

在安装Qt时,遇到了一些问题,尤其是在Mac上安装Qt后,发现Qt Creator没有出现在应用程序中。通过一些搜索和操作,最终解决了问题。以下是详细的记录和解决方法。 1. 安装Qt后未显示Qt Creator 安装完成Qt后,启动应用程…...

Spring——Spring开发实战经验(1)

摘要 文章主要介绍了 Swagger 作为 API 文档生成和测试工具的功能,包括自动生成 API 文档、提供可视化调试界面、促进前后端协作、支持 OpenAPI 规范等。同时,还提及了 Spring Boot 与 Swagger3 的实战应用,以及 Spring 开发中其他相关技术内…...

设计模式:代理模式

代理模式是很常见的设计模式,即使没有专门学习过这种设计模式,在工作中也一定用过这种设计模式。在实际生活中,代理模式也是常见的,比如内阁首辅相对于皇帝,前者是后者的代理,内阁首辅收到奏折时&#xff0…...

【NLP】循环神经网络RNN

目录 一、认识RNN 二、RNN模型分类 三、传统RNN模型 3.1 结构分析 3.2 Pytorch构建RNN模型 3.3 优缺点 一、认识RNN RNN(Recurrent Neural Network),中文称作循环神经网络,一般以序列数据为输入,通过网络内部的结构设计有效捕捉序列之…...

深度解析HTTP/HTTPS协议:从原理到实践

深入浅出HTTP/HTTPS协议:从原理到实践 前言 在当今互联网世界中,HTTP和HTTPS协议如同空气般存在于每个网页请求的背后。作为开发者或技术爱好者,理解这些基础协议至关重要。本文将用六大板块,配合原理示意图和实操案例&#xff0…...

AF3 MmcifObject类解读

AlphaFold3 中 MmcifObject类 是 解析 mmCIF 文件的核心数据结构,用于存储解析后的蛋白质结构信息,包含PDB 头部信息、Biopython 解析的结构、链序列信息等。 下面代码包含 Monomer 、AtomSite、ResiduePosition、ResidueAtPosition、 MmcifObject以及ParsingResult数据类的…...

大数据SQL调优专题——Hive执行原理

引入 Apache Hive 是基于Hadoop的数据仓库工具,它可以使用SQL来读取、写入和管理存在分布式文件系统中的海量数据。在Hive中,HQL默认转换成MapReduce程序运行到Yarn集群中,大大降低了非Java开发者数据分析的门槛,并且Hive提供命令…...