语义SLAM的数据关联和语义定位(四)多目标测量概率模型
多目标模型
这部分想讲一下Semantic Localization Via the Matrix Permanent这篇文章的多目标测量概率模型。考虑到实际情况中,目标检测算法从单张图像中可能检测出若干类物体,每一类物体可能都有好几个实例。当我们尝试建立数据关联时,先从简单的情形入手,再推广到一般情形。下面假设检测结果共有\(m\)个。
所有的检测都是误检测
当目标位置\(x\)的视场内并没有可检测的目标存在时,即\(Y_d(x)=\varnothing\)。那么,所有的测量都是误检测。根据假设,检测出假阳性(false-positive)的过程(作为一个随机过程)在时间线上符合泊松分布(均值为\(\lambda\)),在空间上符合概率分布\(p_\kappa(z)\)。
\[p(Z|\varnothing,x)=\exp(-\lambda)\left(\prod_{z\in Z}\lambda_{\kappa}(z)\right)\]
所有的检测都是正确的
这里指所有在FOV范围内的目标都被检测到了,即\(p_d(y|x)=1\),没有误检测,即\(\lambda=0\)。
\[p(Z|Y_d(x),x)=\sum_{\pi}\prod_{i=1}^{m}p_z(z_{\pi(i)}\vert y_i,x)\]
其中,\(\pi\)是检测集合\(\{1,...,m\}\)到目标集合\(\{y_1,...,y_m\}\)的一个排列组合。
有漏检无误检
如果\(m=0\),那么
\[p\left(\varnothing|Y_d(x),x\right)=\prod_{i=1}^{|Y_d(x)|}\left(1-p_d(y_i|x)\right)\]
如果\(0 < m \leq \left\vert Y_d(x)\right\vert\),那么
\[p\left(Z|Y_d(x),x\right)=p\left(\varnothing|Y_d(x),x\right)\sum_{\pi}\prod_{i\vert \pi(i)>0}\frac{p_d(y_i|x)p_z(z_{\pi(i)}|y_i,x)}{\left(1-p_d(y_i|x)\right)}\]
其中,\(\pi:\{1,...,\left\vert Y_d(x)\right\vert\}\rightarrow \{0,1,...,m\}\)满足\(\pi(i)=\pi(i')>0\Rightarrow i=i'\)以保证检测结果不会对应于多个目标。这里,\(\pi\)的值域中的\(0\)表示这个目标是没有检测到的。
没有漏检但有误检
\[p\left(Z|Y_d(x),x\right)=p\left(Z|\varnothing,x\right)\sum_{\pi}\prod_{i=1}^{\left\vert Y_d(x)\right\vert}\frac{p_z(z_{\pi(i)}|y_i,x)}{\lambda_{\kappa}(z_{\pi(i)})}\]
其中\(\pi\)的定义同上。
既有漏检也有误检
这是最一般的情形。结合上面的几种情况,可知当\(m=0\)时,
\[p\left(\varnothing|Y_d(x),x\right)=\prod_{i=1}^{|Y_d(x)|}\left(1-p_d(y_i|x)\right)\]
否则,
\[p\left(Z|Y_d(x),x\right)=p\left(Z|\varnothing,x\right)p\left(\varnothing|Y_d(x),x\right)\sum_{\pi}\prod_{i\vert \pi(i)>0}\frac{p_d(y_i|x)p_z(z_{\pi(i)}|y_i,x)}{\left(1-p_d(y_i|x)\right)\lambda_{\kappa}(z_{\pi(i)})}\]
其中,\(\pi:\{1,...,\left\vert Y_d(x)\right\vert\}\rightarrow \{0,1,...,m\}\)满足\(\pi(i)=\pi(i')>0\Rightarrow i=i'\)。
语义SLAM的数据关联和语义定位(四)多目标测量概率模型的更多相关文章
- 语义SLAM的数据关联和语义定位(一)
语义SLAM和多传感器融合是自动驾驶建图和定位部分比较热门的两种技术.语义SLAM中,语义信息的数据关联相较于特征点的数据关联有所不同.我们一般用特征描述子的相似性来匹配和关联不同图像中的特征点.特征 ...
- 语义SLAM的数据关联和语义定位(三)
与现有方法的异同 特征点SLAM中的数据关联 先回忆一下特征点SLAM中,我们是如何处理数据关联的.下面以ORBSLAM为例. 在初始化部分,我们通过特征描述子的相似性,建立两帧之间的特征点关联,然后 ...
- 语义SLAM的数据关联和语义定位(二)Semantic Localization Via the Matrix Permanent
论文假设和单目标模型 这部分想讲一下Semantic Localization Via the Matrix Permanent这篇文章的一些假设. 待求解的问题可以描述为 假设从姿态\(x\)看到的 ...
- 语义slam用于高精地图和高精定位的一些想法
最近一直在考虑语义slam在自动驾驶和辅助驾驶中的用法,研究了一下视觉为主的高精度地图+高精定位的模式,特别是mobileye的REM. 秉承先建图再定位的思路,在服务器端(云端)建图,在车端定位. ...
- 分享| 语义SLAM的未来与思考(泡泡机器人)
相比典型的点云地图,语义地图能够很好的表示出机器人到的地方是什么,机器人“看”到的东西是什么.比如进入到一个房间,点云地图中,机器人并不能识别显示出来的一块块的点云到底是什么,但是语义地图的构建可以分 ...
- 从5个经典工作开始看语义SLAM
本文试图概括Semantic SLAM的主要思路和近年工作,⻓期更新.但因水平有限,若有错漏,感谢指正. (更好的公式显示效果,可关注文章底部的公众号) Semantic SLAM 简介 至今为止,主 ...
- 最近一年语义SLAM有哪些代表性工作?
点击"计算机视觉life"关注,置顶更快接收消息! 本文由作者刘骁授权发布,转载请联系原作者,个人主页http://www.liuxiao.org 目前 Semantic SLAM ...
- 语义SLAM研究现状总结
博客转载自:https://blog.csdn.net/xiaoxiaowenqiang/article/details/81051010 原文标题:深度学习结合SLAM 语义slam 语义分割 端到 ...
- 三维重建5:场景中语义分析/语义SLAM/DCNN-大尺度SLAM
前言: 在实时/非实时大规模三维场景重建中,引入了语义SLAM这个概念,参考三维重建:SLAM的尺度和方法论问题和三维重建:SLAM的粒度和工程化问题 .大规模三维场景重建的尺度增大,因此相对于整个重 ...
随机推荐
- 最短路变形 poj3615& poj2263
问题: 牛要跨过一些障碍,希望以最小的体力跨过障碍,并且对于一条路径,只在乎其中最高的障碍. 输入N代表站点数,标记为1—N,输入M代表路径数,从站点S到E之间需要跨过高度为H的障碍. 输入T代表牛要 ...
- opencv2函数学习之erode、dilate:图像腐蚀和膨胀
图像腐蚀和图像膨胀是图像中两种最基本形态学操作. ,-), ,int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphol ...
- Scala使用Akka模拟RPC机制代码
上代码: 另一个版本(自己加注释):http://www.cnblogs.com/DreamDrive/p/6740440.html RemoteMessage.scala trait Remote ...
- Grape简介
什么是Grape Grape是Ruby中的一个类REST API框架,被设计用于运行在Rack上或弥补已有的web应用框架(比如Rails或者Sinatra),Grape提供了一个简单的DSL用于方便 ...
- 【教程向】——基于hexo+github搭建私人博客
前言 1.github pages服务生成的全是静态文件,访问速度快: 2.免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台: 3.可以随意绑定自己的域名,不仔细看的话根本看 ...
- Jdbc Url 设置allowMultiQueries为true和false时底层处理机制研究
一个mysql jdbc待解之谜 关于jdbc url参数 allowMultiQueries 如下的一个普通JDBC示例: String user ="root"; Strin ...
- 资深程序员的Metal入门教程总结
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由落影发表于云+社区专栏 正文 本文介绍Metal和Metal Shader Language,以及Metal和OpenGL ES的差异 ...
- 自我总结 (三) --(Java Web学习)
自我完善的过程就是在不断的自我总结不断的改进. 在前的近半个月里,我们经过了考试,也开始了java web的项目. 先看看这次的考试.考完之后我就觉得有点不对劲的,结果 结果真的是一塌糊涂.上周五的时 ...
- vue路由管理-保留滚动位置功能、按需加载模块名自定义
路由管理:保留滚动位置 其实现与组件的keep-alive相关,仅设置了keep-aive的页面,实施保留回退位置能力. keep-alive介绍 作用 把切换出去的组件保留在内存中,可以保留它的状态 ...
- Spark2.1.0——剖析spark-shell
在<Spark2.1.0——运行环境准备>一文介绍了如何准备基本的Spark运行环境,并在<Spark2.1.0——Spark初体验>一文通过在spark-shell中执行wo ...