网络的多模态形状究竟是啥?道翰天琼认知智能机器人平台API接口大脑为您揭秘。
三维形状的补全,即预测残缺形状缺失部分的几何从而恢复出完整的三维模型,是计算机视觉、图形学领域的基本问题。我们所获得的三维形状经常是不完整的,如用户进行三维设计时的中间产物、扫描时由于遮挡而得到的不完整点云等等,因此形状补全有着很广的应用范围。
尽管目前已有很多工作利用深度学习方法进行形状补全,然而这些方法只能对每个残缺形状输出单个补全结果,完全忽视了缺失部分几何存在的歧义性。如下图所示,左侧的输入完全缺失了椅子的下半部分,此时补全就存在歧义性,即椅子下半部分的具体几何是存在多种可能性的,比如右侧的五个补全结果均是可能且合理的。因此,我们提出了多模态(multi-modal)形状补全这一问题,即对残缺形状输出多个可能、合理的补全结果。我们通过条件生成式建模(conditional generative modeling),在不需要配对的训练数据情形下,设计了第一个基于点云表示的多模态形状补全的方法。
图1. 多模态形状补全
2
方法
给定一个残缺形状(partial shape)集合?P,我们试图通过深度神经网络学习一个从?P?到完整形状(complete shape)集合?C?的多模态映射,从而实现多模态补全的目标。值得注意的是,我们的方法只需要一个残缺形状集合和一个完整形状集合作为训练数据,并不需要两者之间有任何的配对样例,这使得我们的方法能够直接应用于真实扫描的数据。对于这样无配对数据的设定,受到 pcl2pcl [1] 的启发,我们采用在学习到的表达点云的隐空间上进行对抗训练(adversarial training)的方式解决这一问题。同时,我们通过引入一个低维向量z?作为额外的条件输入,来建模可能的补全结果中出现的多模态。为了实现随机采样,我们期望?z能够从一个先验分布?p(z) 中采样,本文我们使用了标准高斯分布?N(0, Ι)。图2. 我们多模态形状补全的网络结构具体来说,我们首先预训练两个自编码器以得到两个表达点云的隐空间:p?表示残缺形状,c?表示完整形状。解决多模态形状补全问题就转化为在条件生成意义下学习一个从?p?到?c?的映射。为此,我们训练一个生成器以实现多模态映射,并以低维向量?z?作为条件输入。在缺少配对数据的情况下,我们使用对抗训练来进行形状补全。此外,为了促使生成器?G?使用低维条件输入?z?向量,我们还引入了一个编码器Ez?来从补全输出中重建?z。实现细节请参见论文。
3
实验结果
我们在所构建的具有不同形状缺失形式的三个数据集(PartNet [2], PartNet-Scan, 3D-EPN [3])上展示了定量和定性的结果,并与基准方法以及我们方法的几个变体进行了对比。下图展示了我们方法的多模态形状补全结果,其中灰色点云代表输入,其后五个黄色点云是我们方法的补全结果。由上至下,输入数据来源依次为 PartNet (1-3行),PartNet-Scan(4-6行)和 3D-EPN(7-9行)。与其他方法的对比结果请参见论文。?图3. 在三个数据集上的多模态补全结果为了实现对补全结果更加显式的控制,模态条件输入?z?可以从一个用户指定的参考形状(reference shape)编码得到。如图4所示,这使得我们在所给定的参考形状的指导下进行形状补全。
图4. 通过参考形状进行补全,补全结果可随参考形状变化形状补全问题的歧义性是随着输入不完整程度增大而增大的。因此,随着输入形状的不完整程度的提高,模型应当产生更加多样的补全结果。为此,我们在 PartNet 数据集上通过控制缺失的部件(part)个数,测试了我们的模型。图5展示了我们的补全结果随着不完整程度的增加而更加多样。图5. 随着输入形状的不完整程度的提高,模型产生的补全结果更加多样
4
总结
本文提出了多模态(multi-modal)形状补全这一问题,并设计了第一个基于点云表示的多模态形状补全的方法。尽管我们已经展示了补全结果的多样性,显式地编码整体形状的多模态并不是最优的,还有进一步提高的可能性。一个可能的研究方向是探究如何使得引导网络关注形状缺失部分的多模态,从而实现补全结果多样性和可信度之间的平衡。
道翰天琼认知智能未来机器人接口API简介介绍
?认知智能是计算机科学的一个分支科学,是智能科学发展的高级阶段,它以人类认知体系为基础,以模仿人类核心能力为目标,以信息的理解、存储、应用为研究方向,以感知信息的深度理解和自然语言信息的深度理解为突破口,以跨学科理论体系为指导,从而形成的新一代理论、技术及应用系统的技术科学。 认知智能的核心研究范畴包括:1.宇宙、信息、大脑三者关系;2.人类大脑结构、功能、机制;3.哲学体系、文科体系、理科体系;4.认知融通、智慧融通、双脑(人脑和电脑)融通等核心体系。 认知智能四步走:1.认知宇宙世界。支撑理论体系有三体(宇宙、信息、大脑)论、易道论、存在论、本体论、认知论、融智学、HNC 等理论体系;2.清楚人脑结构、功能、机制。支撑学科有脑科学、心理学、逻辑学、情感学、生物学、化学等学科。3.清楚信息内涵规律规则。支撑学科有符号学、语言学、认知语言学、形式语言学等学科。4.系统落地能力。支撑学科有计算机科学、数学等学科。
认知智能CI机器人是杭州道翰天琼智能科技有限公司旗下产品。认知智能机器人是依托道翰天琼10年研发的认知智能CI体系为核心而打造的认知智能机器人大脑,是全球第一个认知智能机器人大脑。具有突破性,创新性,领航性。是新一代智能认知智能的最好的产品支撑。 认知智能机器人技术体系更加先进,更加智能,是新一代智能,认知智能领域世界范围内唯一的认知智能机器人。 认知智能机器人是新时代的产物,是新一代智能认知智能的产物。代表了新一代智能认知智能最核心的优势。和人工智能机器人大脑相比,优势非常明显。智能度高,客户粘性大,客户满意度高,易于推广和传播等核心特点。 依托认知智能机器人平台提供的机器人大脑服务,可以赋能各个行业,各个领域的智能设备,各类需要人机互动的领域等。认知智能机器人平台网址:www.weilaitec.com,www.citec.top。欢迎注册使用,走进更智能机器人世界。
认知智能和人工智能的优劣势对比主要可以分为四大方面: 第一:时代发展不同。人工智能是智能时代发展的第二个阶段,认知智能是智能时代发展的第三个阶段。时代发展上决定了认知智能更显具有时代领先性。 第二:基础理论体系不同。人工智能的基础理论体系以数学为基础,以统计概率体系为基础。认知智能基础理论体系以交叉许可理论体系为基础。包含古今中外哲学体系,心理学体系,逻辑学体系,语言学体系,符号学体系,数学体系等学科。其基础理论体系更加具有创新性,突破性和领先性。且交叉学科理论体系的研究也是未来智能发展的大方向。其具体理论体系,还包含三体论(宇宙,信息,大脑三者关系),融智学,和HNC等。 第三:技术体系不同。人工智能的核心技术体系主要是算法,机器学习,深度学习,知识图谱等。其主要功用在感知智能。感知智能其核心主要是在模仿人类的感知能力。认知智能的核心技术体系是以交叉学科理论体系而衍生出来的。具体包含三大核心技术体系,认知维度,类脑模型和万维图谱。认知智能的技术体系核心以类脑的认知体系为基础。以全方位模仿类脑能力为目标。人工智能以感知智能为基础的体系,只能作为认知智能中的类脑模型技术体系中的感知层技术体系。类脑模型大致包含,感知层,记忆层,学习层,理解层,认知层,逻辑层,情感层,沟通层,意识层等9大核心技术层。因此人工智能的核心只是作为认知智能类脑模型中的感知层。因此在技术体系上,人工智能和认知智能基本上没有太多的可比性。 第四:智能度成本等方面的不同:人工智能产品的综合智能程度,普遍在2-3岁左右的智力水平。认知智能产品其智能程度大致在5-8岁左右。认知智能体系构建的机器人更加智能。且更省时间,更省人力和资金。优势非常多。具体请看下列的逐项对比。
道翰天琼CiGril机器人API
道翰天琼CiGril认知智能机器人API用户需要按步骤获取基本信息:
1.在平台注册账号
2.登录平台,进入后台管理页面,创建应用,然后查看应用,查看应用相关信息。
3.在应用信息页面,找到appid,appkey秘钥等信息,然后写接口代码接入机器人应用。
开始接入
请求地址:http://www.weilaitec.com/cigirlrobot.cgr
请求方式:post
请求参数:
参数 类型 默认值 描述
userid?? String?? 无 平台注册账号
appid?? String?? 无 平台创建的应用id
key?? String?? 无 平台应用生成的秘钥
msg?? String?? "" 用户端消息内容
ip?? String?? "" 客户端ip要求唯一性,无ip等可以用QQ账号,微信账号,手机MAC地址等代替。
注意事项:参数名称都要小写,五个参数不能遗漏,参数名称都要写对,且各个参数的值不能为空字符串。否则无法请求成功。userid,appid,key三个参数要到平台注册登录创建应用之后,然后查看应用详情就可以看到。userid就是平台注册账号。
示例代码JAVA:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class apitest {
?? ?/*
?? ? Get请求,获得返回数据
?? ? @param urlStr
?? ? @return
?? ? /
?? ?private static String opUrl(String urlStr)
?? ?{?? ??? ?
?? ??? ?URL url = null;
?? ??? ?HttpURLConnection conn = null;
?? ??? ?InputStream is = null;
?? ??? ?ByteArrayOutputStream baos = null;
?? ??? ?try
?? ??? ?{
?? ??? ??? ?url = new URL(urlStr);
?? ??? ??? ?conn = (HttpURLConnection) url.openConnection();
?? ??? ??? ?conn.setReadTimeout(5 10000);
?? ??? ??? ?conn.setConnectTimeout(5 * 10000);
?? ??? ??? ?conn.setRequestMethod("POST");
?? ??? ??? ?if (conn.getResponseCode() == 200)
?? ??? ??? ?{
?? ??? ??? ??? ?is = conn.getInputStream();
?? ??? ??? ??? ?baos = new ByteArrayOutputStream();
?? ??? ??? ??? ?int len = -1;
?? ??? ??? ??? ?byte[] buf = new byte[128];
?? ??? ??? ??? ?while ((len = is.read(buf)) != -1)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?baos.write(buf, 0, len);
?? ??? ??? ??? ?}
?? ??? ??? ??? ?baos.flush();
?? ??? ??? ??? ?String result = baos.toString();
?? ??? ??? ??? ?return result;
?? ??? ??? ?} else
?? ??? ??? ?{
?? ??? ??? ??? ?throw new Exception("服务器连接错误!");
?? ??? ??? ?}
?? ??? ?} catch (Exception e)
?? ??? ?{
?? ??? ??? ?e.printStackTrace();
?? ??? ?} finally
?? ??? ?{
?? ??? ??? ?try
?? ??? ??? ?{
?? ??? ??? ??? ?if (is != null)
?? ??? ??? ??? ??? ?is.close();
?? ??? ??? ?} catch (IOException e)
?? ??? ??? ?{
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ??? ?try
?? ??? ??? ?{
?? ??? ??? ??? ?if (baos != null)
?? ??? ??? ??? ??? ?baos.close();
?? ??? ??? ?} catch (IOException e)
?? ??? ??? ?{
?? ??? ??? ??? ?e.printStackTrace();
?? ??? ??? ?}
?? ??? ??? ?conn.disconnect();
?? ??? ?}
?? ??? ?return "";
?? ?}
?? ?
?? ?
?? ?public static void main(String args []){?? ??? ?
?? ??? ???? //msg参数就是传输过去的对话内容。?? ??? ??? ?
?? ??? ???? System.out.println(opUrl("http://www.weilaitec.com/cigirlrobot.cgr?key=UTNJK34THXK010T566ZI39VES50BLRBE8R66H5R3FOAO84J3BV&msg=你好&ip=119.25.36.48&userid=jackli&appid=52454214552"));
?? ??? ??? ?
?? ?}
}