Meta Sapiens AI论文解读:人类视觉模型基石初现,AI 未来走向何方?
一、引言
在本文中,我们将深入探讨 Meta AI 的一项新成果,该成果发表于一篇题为《Sapiens:人类视觉模型的基础》的研究论文中。这篇论文介绍了一系列模型,这些模型针对四项以人类为中心的基本任务,正如我们在上面的演示中看到的那样。
二、以人类为中心的基本任务
在论文的上图中,我们可以了解到Sapiens所针对的任务。
- 姿态估计:检测输入图像中人体关键点的位置。
- 身体部位分割:确定哪些像素构成不同的身体部位。
- 深度估计:确定像素的深度。如“深度”列中的示例所示,图像前面的部分更亮,图像后面的像素更暗。
- 表面法线估计:提供物体(在我们的案例中是人体)形状的方向信息。
令人印象深刻的是,与之前的最先进结果相比,Meta AI 在所有这些任务上都取得了显著改进。在本文的其余部分,我们将解释 Meta AI 的研究人员是如何创建这些模型的。
三、Humans-300M:整理人类图像数据集
我们首先要谈到的是整理一个大型人类图像数据集。Meta AI在此具有优势,它拥有一个包含10亿张人类图像的专有数据集。为了提高数据集的质量,他们过滤掉了带有水印、文字、艺术描绘或不自然元素的图像,这使得数据集的规模有所减小。然后,为了进一步提高数据集的质量,他们还使用了现成的人物边界框检测器,过滤掉人物在图像中可能不具有意义的图像。最终,我们得到了3亿张高质量的人类图像。
从论文的上图中,我们可以看到,数据集中的大多数图像实际上每张都包含不止一个人,其中超过一半的图像包含4个或更多人。
四、自监督学习预训练
作为对自监督学习的回顾,它基本上意味着我们的训练数据没有标签,模型仅从图像中学习。而我们刚刚提到的经过整理的人类图像数据集Humans-300M确实没有任何标签。自监督学习预训练方法是掩码自动编码器(masked-autoencoder),简称MAE。
4.1 掩码自动编码器预训练过程
我们要训练的模型是一个基于视觉Transformer(ViT)架构的编码器,我们称之为Sapiens ViT。由于它是一个ViT,其输入是被划分为图像块的图像,就像上图左侧的图像一样。这个示例中,一张图像被划分为9个图像块。我们随机掩码一些图像块,未被掩码的图像块被输入到编码器中,编码器为图像的可见部分生成嵌入向量。这些嵌入向量随后被输入到另一个模型——解码器中,解码器试图生成原始的完整图像。
4.2 Sapiens预训练质量
我们通过论文中的以下示例来观察预训练过程的质量。对于每组三张图像(最后一行除外),左边的图像是模型在训练中未见过的真实图像,中间的图像是在掩码了75%的图像块之后的图像,右边的图像是模型重建的图像。令人惊讶的是,我们几乎在重建图像中找不到瑕疵。在最后一行,我们可以看到当掩码率增加到75%以上时的重建图像。
4.3 Sapiens原生支持高分辨率图像
需要注意的是,用于预训练Sapiens模型的输入图像分辨率为1k!与顶级视觉模型(如DINOv2,其图像大小为224×224)相比,这是一个巨大的飞跃。我们在下面的表格中列出了Sapiens与顶级计算机视觉模型之间的更多比较。
五、构建Sapiens特定任务模型
现在我们有了一个预训练的Sapiens ViT编码器,对于每个任务,我们添加一个新的特定任务解码器模型,该模型将使用编码器创建的嵌入向量。
对于每个任务,我们也有一个小的带标签数据集,因为为这类任务构建大量带标签的示例很困难。然后,我们在带标签的数据集上训练解码器,以创建特定任务模型。我们还会更新预训练编码器的权重。最后,我们对四项任务中的每一项都重复这个过程。
六、参考文献和链接
- 论文页面
- 代码
- AI Papers Academy
相关文章:
Meta Sapiens AI论文解读:人类视觉模型基石初现,AI 未来走向何方?
一、引言 在本文中,我们将深入探讨 Meta AI 的一项新成果,该成果发表于一篇题为《Sapiens:人类视觉模型的基础》的研究论文中。这篇论文介绍了一系列模型,这些模型针对四项以人类为中心的基本任务,正如我们在上面的演示…...
输入类控件和多元素控件【QT】
文章目录 输入类控件QLineEdit Text EditCombo BoxSpin BoxDialSlider多元素控件QListWidget TableWidetTreeWidgetQGroupBoxTab Widget# QVBoxLayout# QHBoxLayoutQGridLayoutQFormLayout 输入类控件 QLineEdit 例如: 实现一个用户输入姓名 密码 电话 性别 的功能…...
一键开启/关闭deepseek
一键开启/关闭 Deepseek对应下载的模型一键开启 Deepseek,一键关闭Deepseek双击对应的bat,就可以启动https://mbd.pub/o/bread/Z56YmpZvbat 下载:https://mbd.pub/o/bread/Z56YmpZv 可以自己写下来,保存成bat文件,也可…...
gitea - fatal: Authentication failed
文章目录 gitea - fatal: Authentication failed概述run_gitea_on_my_pkm.bat 笔记删除windows凭证管理器中对应的url认证凭证启动gitea服务端的命令行正常用 TortoiseGit 提交代码备注END gitea - fatal: Authentication failed 概述 本地的git归档服务端使用gitea. 原来的用…...
Spring AI 智能体通过 MCP 集成本地文件数据
作者:刘军 Model Context Protocol(MCP)简介 模型上下文协议(即 Model Context Protocol,MCP) [ 1] 是一个开放协议,它规范了应用程序如何向大型语言模型(LLM)提供上下…...
音视频入门基础:RTP专题(5)——FFmpeg源码中,解析SDP的实现
一、引言 FFmpeg源码中通过ff_sdp_parse函数解析SDP。该函数定义在libavformat/rtsp.c中: int ff_sdp_parse(AVFormatContext *s, const char *content) {const char *p;int letter, i;char buf[SDP_MAX_SIZE], *q;SDPParseState sdp_parse_state { { 0 } }, *s1…...
MyBatis XML文件配置
目录 一、 配置连接字符串和MyBatis 二、书写持久层代码 2.1 添加Mapper接口 2.2 添加UserlnfoXMLMapper.xml 三、增删改查 3.1 、增(Insert) 3.2、删(Delete) 3.3、改 (Update) 3.4、查 (Select) MyBatisXML的方式需要以下两步&am…...
【Leetcode 热题 100】1143. 最长公共子序列
问题背景 给定两个字符串 t e x t 1 text_1 text1 和 t e x t 2 text_2 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 0 0。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变…...
【算法】动态规划专题④ ——LCS(最长公共子序列)+ LPS(最长回文子序列) python
目录 前置知识LCS举一反三LPS 前置知识 【算法】动态规划专题③ ——二维DP python 子序列定义为: 不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 LCS 最长公共子序列 https://www.lanqiao.cn/problems/1189/learning/?p…...
Cesium点集中获取点的id,使用viewer.value.entities.getById报错的解决方法
错误代码: viewer.value.entities.getById(pickedObject.id) 报错: 可以正常获取movement.position但是一直出现如下报错,无法获得航点的id,通过断点定位为 viewer.value.entities.getById(pickedObject.id)导致的报错 解决方…...
360手机刷机 360手机解Bootloader 360手机ROOT
360手机刷机 360手机解Bootloader 360手机ROOT 问:360手机已停产,现在和以后,能刷机吗? 答:360手机,是肯定能刷机的 360手机资源下载网站 360手机-360手机刷机RootTwrp 360os.top 360rom.github.io 一、…...
深度探索DeepSeek-R1:AI大模型的本地应用与个人知识库构建
深度探索DeepSeek-R1:AI大模型的本地应用与个人知识库构建 引言 在当今这个信息爆炸的时代,如何高效地存储、处理和获取知识,已经成为每个人面临的挑战。想象一下,如果你能在没有互联网连接的情况下,构建一个属于自己…...
LabVIEW图像采集与应变场测量系统
开发了一种基于LabVIEW的图像采集与应变场测量系统,提供一种高精度、非接触式的测量技术,用于监测物体的全场位移和应变。系统整合了实时监控、数据记录和自动对焦等功能,适用于工程应用和科学研究。 项目背景 传统的位移和应变测量技术往往…...
解决DeepSeek服务器繁忙问题:本地部署与优化方案
deepseek服务器崩了,手把手教你如何在手机端部署一个VIP通道! 引言 随着人工智能技术的快速发展,DeepSeek等大语言模型的应用越来越广泛。然而,许多用户在使用过程中遇到了服务器繁忙、响应缓慢等问题。本文将探讨如何通过本地部…...
今日AI和商界事件(2025-02-05)
今日AI领域的相关事件主要包括以下几个方面: 一、DeepSeek引发全球关注 性能与成本优势: DeepSeek推出的R1模型性能出色,成本较低,在全球AI行业引发震动。该模型在数学、代码处理等方面性能优异,受到广泛赞誉。 平台…...
SQL 秒变 ER 图 sql转er图
🚀SQL 秒变 ER 图,校园小助手神了! 学数据库的宝子们集合🙋♀️ 是不是每次碰到 SQL 转 ER 图就头皮发麻?看着密密麻麻的代码,脑子直接死机,好不容易理清一点头绪,又被复杂的表关…...
SQL server 创建DB Link 详解
在日常工作中,经常涉及到跨库操作,为使跨数据库的操作变得更加灵活高效,我们可以在 SQL Server 中建立数据库链接( DB Link),实现 SQL Server 数据库与其他数据库(如 Oracle, MySQL 等ÿ…...
25.2.5学习记录
今天主要学的是哈希表的理论知识,但是都是c实现,C语言的代码实现还没有完全搞明白。 在写题的时候,懵懂的学着正确代码,用C语言模拟实现哈希表去解题。 在哈希表的理论知识中,学到哈希函数,了解哈希冲突产…...
C# List 列表综合运用实例⁓Hypak原始数据处理编程小结
C# List 列表综合运用实例⁓Hypak原始数据处理编程小结 1、一个数组解决很麻烦引出的问题1.1、RAW 文件尾部数据如下:1.2、自定义标头 ADD 或 DEL 的数据结构如下: 2、程序 C# 源代码的编写和剖析2.1、使用 ref 关键字,通过引用将参数传递,以…...
不可信的搜索路径(CWE-426)
漏洞描述:程序使用关键资源时(如动态链接库、执行文件、配置文件等)没有明确的指定资源的路径,而是依赖操作系统去搜索资源,这种行为可能被攻击者利用,通过在搜索优先级较高的目录放置不良资源,…...
Unity 2D实战小游戏开发跳跳鸟 - 记录显示最高分
上一篇文章中我们实现了游戏的开始界面,在开始界面中有一个最高分数的UI,本文将接着实现记录最高分数以及在开始界面中显示最高分数的功能。 添加跳跳鸟死亡事件 要记录最高分,则需要在跳跳鸟死亡时去进行判断当前的分数是否是最高分,如果是最高分则进行记录,如果低于之前…...
openeuler 22.03 lts sp4 使用 cri-o 和 静态 pod 的方式部署 k8s-v1.32.0 高可用集群
前情提要 整篇文章会非常的长…可以选择性阅读,另外,这篇文章是自己学习使用的,用于生产,还请三思和斟酌 静态 pod 的部署方式和二进制部署的方式是差不多的,区别在于 master 组件的管理方式是 kubectl 还是 systemctl有 kubeadm 工具,为什么还要用静态 pod 的方式部署?…...
穷举vs暴搜vs深搜vs回溯vs剪枝系列一>黄金矿工
目录 决策树:代码设计代码: 决策树: 代码设计 代码: class Solution {boolean[][] vis;int ret,m,n;public int getMaximumGold(int[][] grid) {m grid.length;n grid[0].length;vis new boolean[m][n]; for(int i 0; i <…...
SQL Server配置管理器无法连接到 WMI 提供程序
目录 第一步第二部 第一步 发现没有资源管理器 在文件夹找到管理器 打开发现报这个错误 配置管理器无法连接到 WMI 提供程序第二部 https://blog.csdn.net/thb369208315/article/details/126954074...
微信小程序获取openid和其他接口同时并发请求如何保证先获取到openid
在微信小程序中,如果你需要并发请求获取 openid 和其他接口的数据,并且希望确保先获取到 openid 之后再进行后续操作,可以考虑以下几种方法: 方法一:使用 Promise 链 1, 先请求 openid:使用 Promise 来请求 openid。 2, 在获取到 openid 后再请求其他接口。 function g…...
为AI聊天工具添加一个知识系统 之87 详细设计之28 Derivation 统一建模元模型 之1
文本要点 要点 Derivation 统一建模元模型 Derivation 统一建模元模型:意识原型的祖传代码,即支撑 程序框架的 符号学中的 自然和逻辑树。 这棵树的雏形中描述了三种建模工件:语用钩子,语法糖和语义胶水。 三种工件对应的三“…...
java进阶知识点
java回收机制 浅谈java中的反射 依赖注入的简单理解 通过接口的引用和构造方法的表达,将一些事情整好了反过来传给需要用到的地方~ 这样做得好处:做到了单一职责,并且提高了复用性,解耦了之后,任你如何实现…...
63.视频推荐的算法|Marscode AI刷题
1.题目 问题描述 西瓜视频正在开发一个新功能,旨在将访问量达到80百分位数以上的视频展示在首页的推荐列表中。实现一个程序,计算给定数据中的80百分位数。 例如:假设有一个包含从1到100的整数数组,80百分位数的值为80…...
19.[前端开发]Day19-王者荣项目耀实战(二)
01_(掌握)王者荣耀-main-banner展示实现 完整代码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewpor…...
Leetcode面试高频题分类刷题总结
https://zhuanlan.zhihu.com/p/349940945 以下8个门类是面试中最常考的算法与数据结构知识点。 排序类(Sort): 基础知识:快速排序(Quick Sort), 归并排序(Merge Sort)的…...
JPA使用@EntityGraph立即加载关联实体
在JpaRepository接口中实现自定义查询的时候,必然会遇到一个问题,通过findBy等语句查询出来的结果通常情况下不会加载到关联的实体。例如我有一个Material类,其中有一个属性supplier使用了多对一关联到Supplier类,并开启懒加载&am…...
python多版本管理工具之pyenv
pyenv 是一个用于管理多个 Python 版本的工具,允许用户在同一台机器上轻松安装、切换和隔离不同版本的 Python 解释器。它特别适合需要同时处理多个项目的开发者(例如,不同项目依赖不同 Python 版本的情况)。以下是 pyenv 的详细指南: 本文基于Ubuntu 22.04版本进行安装,…...
107,【7】buuctf web [CISCN2019 华北赛区 Day2 Web1]Hack World
这次先不进入靶场 看到红框里面的话就想先看看uuid是啥 定义与概念 UUID 是 Universally Unique Identifier 的缩写,即通用唯一识别码。它是一种由数字和字母组成的 128 位标识符,在理论上可以保证在全球范围内的唯一性。UUID 的设计目的是让分布式系…...
9. k8s二进制集群之kube-controller-manager部署
同样在部署主机上创建证书请求文件(为之后的证书生成做准备)根据上面的证书文件创建证书(结果会在当前目录下产生kube-controller-manager证书)创建kube-controller-manager服务配置文件创建kube-controller-manager服务启动文件同步kube-controller-manager证书到对应mast…...
keil 单步调试技巧
一、常见错误分析 warningerror警告错误 不影响编译过程 能够输出Hex文件 无法完成编译 不输出Hex文件 注意的是,warning的信息是要去关注的。 下面的UNCALLED SEGMENT除外 二、单步调试配置 1、在keil中添加单片机型号 本文不详细介绍,如有需要可查看这篇文章:...
[leetcode]两数之和等于target
源代码 #include <iostream> #include <list> #include <iterator> // for std::prev using namespace std; int main() { int target 9; list<int> l{ 2, 3, 4, 6, 8 }; l.sort(); // 确保列表是排序的,因为双指针法要求输入是…...
Go语言的转义字符
文章目录 1. Go语言的转义字符(escapechar)2. 小结和提示 1. Go语言的转义字符(escapechar) 说明:常用的转义字符有如下: \t : 表示一个制表符,通常使用它可以排版\n :换行符\\ :一个\\" :一个"\r :一个回…...
低代码系统-产品架构案例介绍、蓝凌(十三)
蓝凌低代码系统,依旧是从下到上,从左至右的顺序。 技术平台h/iPaas 指低层使用了哪些技术,例如:微服务架构,MySql数据库。个人认为,如果是市场的主流,就没必要赘述了。 新一代门户 门户设计器&a…...
【大数据技术】搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn)
搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) jdk-8u361-linux-x64.tarhadoop-3.3.6.tar.gz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群Hadoop+MapReduce+Yarn的详细步骤。 注意: 统一约定将软件安装包存放…...
Rapidjson 实战
Rapidjson 是一款 C 的 json 库. 支持处理 json 格式的文档. 其设计风格是头文件库, 包含头文件即可使用, 小巧轻便并且性能强悍. 本文结合样例来介绍 Rapidjson 一些常见的用法. 环境要求 有如何的几种方法可以将 Rapidjson 集成到您的项目中. Vcpkg安装: 使用 vcpkg instal…...
string类OJ练习题
目录 文章目录 前言 一、反转字符串 二、反转字符串 II 三、反转字符串中的单词 III 四、验证一个字符串是否是回文 五、字符串相加(大数加法) 六、字符串相乘(大数乘法) 七、把字符串转化为整数(atoi) 总结…...
Python进行模型优化与调参
在数据科学与机器学习领域,模型的优化与调参是提高模型性能的重要步骤之一。模型优化可以帮助提高模型的准确性和泛化能力,而合理的调参则能够充分发挥模型的潜力。这篇教程将重点介绍几种常用的模型优化与调参方法,特别是超参数调整和正则化技术的应用。这些技术能够有效地…...
Ollama+deepseek+Docker+Open WebUI实现与AI聊天
1、下载并安装Ollama 官方网址:Ollama 安装好后,在命令行输入, ollama --version 返回以下信息,则表明安装成功, 2、 下载AI大模型 这里以deepseek-r1:1.5b模型为例, 在命令行中,执行&…...
【PDF多区域识别】如何批量PDF指定多个区域识别改名,基于Windows自带的UWP的文字识别实现方案
海关在对进口货物进行查验时,需要核对报关单上的各项信息。对报关单 PDF 批量指定区域识别改名后,海关工作人员可以更高效地从文件名中获取关键信息,如货物来源地、申报价值等。例如文件名 “[原产国]_[申报价值].pdf”,有助于海关快速筛选重点查验对象,提高查验效率和监管…...
第一个Qt开发实例(一个Push Button按钮和两个Label)【包括如何在QtCreator中创建新工程、代码详解、编译、环境变量配置、测试程序运行等】
目录 Qt开发环境QtCreator的安装、配置在QtCreator中创建新工程在Forms→mainwindow.ui中拖曳出我们要的图形按钮查看拖曳出按钮后的代码为pushButton这个图形添加回调函数编译工程关闭开发板上QT的GUI(选做)禁止LCD黑屏(选做)设置Qt运行的环境变量运行Qt程序如何让程序在系统启…...
算法题(58):盛水最多的容器
审题: 需要我们找到数组height中的数据构建的可以盛水最多的容器,并把容量返回 思路: 容量 最短的容器边界 * 容器宽度 方法一:双层for循环 我们可以把所有情况枚举出来,然后维护一个最大容量 方法二:双指…...
MyBatis持久层框架
第1章 Mybatis框架入门 1.1 Mybatis简介 MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下, iBatis3.x正式更名为MyBatis。代码于2013年11月迁移到Github。 MyBati…...
DeePseek结合PS!批量处理图片的方法教程
今天我们来聊聊如何利用deepseek和Photoshop(PS)实现图片的批量处理。 传统上,批量修改图片尺寸、分辨率等任务往往需要编写脚本或手动处理,而现在有了AI的辅助,我们可以轻松生成PS脚本,实现自动化处…...
【C++】多态(下)
大家好,我是苏貝,本篇博客带大家了解C的多态,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 4. 多态的原理4.1 虚函数表4.2 多态的原理4.3 动态绑定与静态绑定 5. 单继承和多继承关系的虚…...
C++ 入门速通-第4章【黑马】
内容来源于:黑马 集成开发环境:CLion 先前学习完了C第1章的内容: C 入门速通-第1章【黑马】-CSDN博客 C 入门速通-第2章【黑马】-CSDN博客 C 入门速通-第3章【黑马】-CSDN博客 下面继续学习第4章: 结构体的基本应用࿱…...