Robotics Perception

Professor Kostas and Jianbo Shi

week 1: camera model

凸透镜成像原理:凸透镜焦点与焦距是固定的,这是物理性质。物距u、像距v、焦距f的关系为1/f=1/u+1/v

perspective drawing

bi-perspectograph construction changing

1. change the distance from the objects: OS

2. change the focal length: 两平行线之间的距离

Vanishing points: 消灭点,所有消灭点的连线为horizon,辅助线为horizon lines

物理世界中平行线映射至图像坐标系中,产生的交点为消灭点

Vanishing points are intersection points of parallel lines.

Dolly Zoom

拉长物体离相机的距离,同时增大相机焦距

Perspective Transformation

world - camera - image

special cases:

homography: 从3D世界平面(如Z=0)到2D图像平面,则K[R|t]可简约为单应性矩阵

only rotation: 纯旋转,t=0,此时齐次坐标最后的1不起作用。

Compute Intrinsics from Vanishing Points

Assignment

虽然coursera的编程作业一向风格是只写函数内容即可,但其MATLAB接口的含金量相当高,值得学习。

亮点有使用fill函数着色,使用project(本质上为3D-2D矩阵映射)

最后的问题求二元一次方程得到f和pos的公式。

Week 2: Projective Transformation

Vanishing points -- camera orientation

利用消灭点估计旋转矩阵:消灭点的向量

4个点估计projective transformation的application: Virtual Billboard

p'~Ap 为lambda*p'=Ap

Horizon:与projection plane的法向量正交,同时由image plane的vanishing point产生。

要想清楚vanishing point的定义。

Cross Ratios and Single View Metrology

cross ratio 交比、重比

Assignment

四对匹配点可求一个单应矩阵的理论推导如下:

原因:https://www.coursera.org/learn/robotics-perception/discussions/weeks/2/threads/lO9fEJ9kEeagbRJODex4yg

MATLAB计算SVD的矩阵中,V按列存储,而我们是按行定义。

inpolygon函数选择一个二维平面范围中多边形顶点内包含的所有点

meshgrid生成一个二维平面范围内的所有点坐标(遍历神器)

Week 3: Pose Estimation

Features
Scale Invariant:尺度不变性

DoG: Difference of Gaussian, calculated by multiple Laplace of Gaussian. 计算高斯核函数差

Laplacian Scale Space, depiction of high contrast value.如何生成?

Rotation Invariant:旋转不变性

Compute Image Gradient 计算图像梯度

descriptor: histogram of gradient orientation

Singular Value Decomposition

例子:Mondrian色块图案

Least Square Estimation

RANSAC

Pose Estimation

Week 4: Multi-View Geometry

https://en.wikipedia.org/wiki/Essential_matrix

It turns out, however, that only one of the four classes of solutions can be realized in practice. Given a pair of corresponding image coordinates, three of the solutions will always produce a 3D point which lies behind at least one of the two cameras and therefore cannot be seen. Only one of the four classes will consistently produce 3D points which are in front of both cameras. This must then be the correct solution. Still, however, it has an undetermined positive scaling related to the translation component.

估计到的结果只有1个是可行解。

Coursera Robotics系列课心得的更多相关文章

  1. coursera普林斯顿算法课part1里Programming Assignment 2最后的extra challenge

    先附上challenge要求: 博主最近在刷coursera普林斯顿大学算法课part1部分的作业,Programming Assignment2最后的这个extra challenge当初想了一段时 ...

  2. 【课程汇总】OpenHarmony全场景Demo数字管家系列课(附链接)

    小孩放学了,做作业的时间到,窗帘.护眼灯自动打开,关掉电视和扫地机,给小孩一个安静舒适的学习环境:碰到学习难题,可以随时请求你的远程指导:晚上回家休息了,选择舒适的氛围灯,伴随着睡眠音乐进入梦乡:出门 ...

  3. CODING 敏捷实战系列课第二讲:Scrum 敏捷项目管理核心要素之 3355

    Scrum 是敏捷开发流派中最著名和最落地的一支,全球 70% 以上公司的敏捷转型都是以 Scrum 起步.CODING 特邀敏捷顾问.CST & CTC 认证敏捷教练申健老师将在本课程< ...

  4. CODING 敏捷实战系列课第三讲:可视化业务分析

    业务分析处在开发过程的上游,提高业务分析的质量,可以减少后续开发.测试和集成过程中的反复确认,场景遗漏.采用可视化的业务分析工具箱可以大幅度避免文字版的业务需求描述所带来的不够完整,有误解等问题.CO ...

  5. CODING 敏捷实战系列课第四讲:从头搭建持续集成 DevOps 流水线

    <从头搭建持续集成 DevOps 流水线>由资深敏捷教练.极限编程学院高级讲师.CODING 特邀敏捷顾问李小波老师主讲,将基于 CODING 展示如何编写 Jenkinsfile 搭建 ...

  6. CODING 敏捷实战系列课第五讲:敏捷中国史

    敏捷软件开发方法自 2001 年传入中国以来,历经十多年的发展变迁,目前已经成为国内 IT 企业主流的研发管理方法.敏捷方法的传播和发展历程,是中国 IT 行业发展的剪影.CODING 特邀敏捷顾问. ...

  7. 对于coursera上三门北大网课的评测

    今年暑假开始就选了coursera上三门北大的网课——C++程序设计.算法基础.数据结构基础,它们属于一个项目的,上的话每个月249块钱,项目里包括这三门一共有七门课.因为一开始是三门课同时上的,数据 ...

  8. 一些我推荐的和想上的网络课程(Coursera, edX, Udacity)

    从面向找工作的角度出发,我觉得以下课程有很大帮助: 首推Robert Sedgewick,也是我觉得对我帮助最大的老师,讲课特点是能把复杂的算法讲解清楚(典型例子:红黑树,KMP算法) 他在Cours ...

  9. 【极客学院出品】Cocos2d-X系列课程之九-BOX2D物理引擎

    Cocos2d-x 是时下最热门的手游引擎,在国内和国外手机游戏开发使用的份额各自是70%和25%,在App Store的top10中,有7个是用它开发的. 本节课程为Cocos2d-x系列课程之九, ...

随机推荐

  1. Struts2,Spring, Hibernate三大框架SSH的整合步骤

    整合步骤 创建web工程 引入相应的jar包 整合spring和hibernate框架 编写实体类pojo和hbm.xml文件 编写bean-base.xml文件 <!-- 1) 连接池实例 - ...

  2. printAB()

    #include <iostream> void printA() { std::cout << "A" << std::endl; } voi ...

  3. TStringList的bug问题

    今天测试发现用TStringList进行字符分隔的时候 ,如果被分隔对象中含有空格就有产生发隔错误 方案一:可以用其它的函数来代替  方案二:Items.StrictDelimiter:= True;

  4. 史上最全的Python电子书教程资源下载(转)

    网上搜集的,点击即可下载,希望提供给有需要的人^_^   O'Reilly.Python.And.XML.pdf 2.02 MB   OReilly - Programming Python 2nd. ...

  5. js-我理解的闭包

    一:什么是闭包 <JS高级程序设计>指出:闭包是指有有权访问另一个函数作用域中变量的函数. 二:闭包的使用 闭包的常见的创建方式是 子函数嵌套在父函数的内部,这样,子函数就可以访问父函数中 ...

  6. WCF、WebAPI、WCFREST、WebService之间的区别

    注明:转载 在.net平台下,有大量的技术让你创建一个HTTP服务,像Web Service,WCF,现在又出了Web API.在.net平台下,你有很多的选择来构建一个HTTP Services.我 ...

  7. POJ3020 匹配

    题目大意:给定一地图,*可以和相邻的*匹配成一对儿,问最少需要对儿匹配才能使所有*都被匹配到. 很直白的最小点覆盖,即ans = 点集数-最大匹配数. 不过一开始要对图进行遍历得到点集,找到一个*就把 ...

  8. Js制作的文字游戏

    自己制作的文字游戏.(: <!DOCTYPE html><html lang="en"><head>    <meta charset=& ...

  9. css之absolute绝对定位(绝对定位特性)

    学习了绝对定位以后,对此进行一个总结,啦啦啦啦~ 绝对定位特性 1.破坏性 破坏了原有的位置,从文档流里脱离出来 2.包裹性 如果下面这种情况,父级元素将不会有高度和宽度,失去原有的大小

  10. 浅谈rem、em、px

    1.px:像素(Pixel) px是相对长度单位,他是相对于显示器屏幕分辨率而言的 优点:比较稳定.精确 缺点:在浏览器 中放大或者缩小浏览页面,会出现页面混乱的情况. 如下例子: .buttonPX ...