CVPR

CVPR

tachikoma-reading

【干货】计算机视觉、机器学习相关领域论文和源代码大集合--持续更新

From Quora:计算机领域最具挑战性的问题是什么

计算机领域最具挑战性的问题是什么?这是最近有人在Quara上提出的一个疑问。Boris Babenko对这个问题进行了一个回复:


让我们把这个问题先反过来看,究竟哪些计算机视觉的问题已经被解决了?

迄今为止,有很多算法被开发出来,用于检测和识别刚性,有纹理的物体和模式;平面(2D)的模式在当今的先进算法支持下,已经能够被比较好的检测和识别。例如:书籍封面,建筑物绘画(除非是那种超现实的,只是一片纯色的绘画,笑),人脸(这可能和我们前面说的矛盾,不过人脸确实也是相对刚性和相对平面的,主要是人脸具有强的结构性)。

对于不是刚性的物体,例如人体和动物,以及一些视觉上变化剧烈的物体,检测起来就不那么容易了。例如,检测椅子就是一个非常难的问题。因为椅子的定义本身就不是视觉意义上的(是功能意义上的)。在照片中检测和识别文字也不容易因为字体变化太多。最后,检测那些没有丰富纹理的物体或模型也比较困难(除非我们使用其他优秀的算法来做形状匹配,然而将目标完美的从图像中分割出来也是一个不容易的事情)。

更多这方面的信息,我推荐看一下Hartmut Neven's 在 ICML 2011上的报告。techtalks.tv,Machine Learning in Google Goggles。在幻灯片的第四页,他讨论了目前哪些问题是容易的哪些是困难的。Neven博士目前是google goggles项目的领导者。

博主觉得,上面这个回复不是针对计算机视觉的全部问题,因为没有涉及到3D,视频,运动等,主要是针对目标检测和识别的难点进行了一些分析。可以继续跟踪Quora上的这个问题,相信会有更多有价值的回复【链接】。

P.S.谁是Boris Babenko?

它曾经是UCSD计算机视觉和模式识别专业的PhD,导师是著名的Serge Belongie。在他读博的大部分时间,都获得了包括Google学术奖学金之类的多项资助。毕业以后,他自己开了一个公司叫做Anchovi Labs,已经被DropBox收购了。目前他在做工程师。

生物空间思维对智能机器人的启发

DeepMind到诺贝尔奖,脑科学的时代己经到来

TODO: 一天深入研究,评估可行性

(译)Viewing Computer Vision from a Bigger Picture org

当你在做计算机视觉研究的时候,很容易迷失方向,尤其是当你陷入参数调节中的时候。当你发现你调参数超过了半天,也许你该放松一下,站在更高处看看全局。

对于大多数计算机视觉问题,例如目标识别,要求实际上就是试图想输入数据放到不同的类别里。例如我们有个200*200的灰度图,我们可以将它看作一个40000维空间中的点。现在的问题就是如何将这些点放到不同的类里面。在论文“Origins of Scaling in Natural Images”中,Ruderman展示了自然图像具有一些共有的频谱特征。这说明自然图像实际上处于这个高维空间一个很小的集团里。如果我们可以只将没有信息量的数据扔掉,将这个高维空间点映射到低维空间的话,我们就能更容易的进行分类。

多数视觉任务其实都是在解决这个问题,将高维数据转换为低维数据。包括SIFT,HOG,SURF等等不计其数的研究都是如此。

接下来,我们就进入第二步,在低维空间分类这些数据。这个任务可以简单到用最近邻方法就能解决,或者其他一些机器学习算法。Adaboost, SVM,神经网络等。

现在回到调整那些神奇的参数的问题上。你在做的实际上就是在轻微的改变那些图像被映射到的子空间,或者将这些高维空间的点扔到稍微有所不同的类别里面。

弱谈Marr视觉计算理论

Marr的历史地位无需多言,不应因为他某个具体学术成果被后来否定而觉得marr理论过时,这是本末倒置。他最大的贡献是提出应从理论算法实现三个层次去研究视觉,这种指导思想在计算机视觉领域只有少数人还在遵循,但在心理学、理论神经科学还是基本的研究范式。注意,不是非有数学公式才叫理论。

现在计算机视觉领域的研究范式是?

给定一个信息处理单元的输入输出,你通过行为生理计算仿真等多种手段发现这个信息处理单元的功能是排序,这就叫理论。然后有很多人发现排序可以快排、冒泡,这种研究叫做算法。还有人研究快排在la32、powerpc上怎么做,这是实现。从这里看,理论研究显然是最根本的。

无人系统的自主能力

从无人机上的传感器,智能车上的传感器看成某种延伸。会飞的传感器,会动的传感器它把人类的视野和感知延伸到了空中,使人类对农田、电网、矿山等物理世界的认识,提升到一个全新的水平。。从这些角度来理解ROS的架构。

自动、自主和智能是不同的概念。自动指一个系统按预先编好的程序运行;自主则指一个系统可根据需要自行选择行动方案。比较一下一个自动系统(自动驾驶仪)和一个自主导引系统 :1)自动驾驶仪,保持在选定的航路上。2)自主导引系统,决定采用哪条航路,然后保持在这条航路上。而智能则是指发现并利用知识的能力。自主是目的,智能是手段。

作为科学概念和工程概念的自主性科学概念就要有明确的定义 ,以描述自己和别的事物的不同。 工程概念是可在工程 中逐步实现、可以量化、可以和同类事物比较水平高下的。 目前与这个概念相对应的工程概念就是美国提出的自主能力级别 (Autonomous CapabilityLevels,ACL)。 明确地提出ACL就是一个很大的进步 ,因为它避免了主观性 ,从而把对一个新概念的定性研究提升到定量研究。

在自主性评价研究方面, 以美国Huang等人为代表的学者对无人系统的自主性水平框架进行了较为系统的研究; 此外, 美国在无人平台的标准、无人机自主控制等级的发展路线图、不同自主性等级的任务规划等方面的研究成果位于世界前列. 现有研究表明, 对无人系统的自主性进行有效的评价或者制定相关的标准, 具有技术引领作用.

决定无人系统自主性的关键技术是无人系统发展的基础. 无人系统涉及的学科专业或技术领域很多, 大致可以划分为两个层次或两种类型的技术: 一是支撑无人系统发展的共性技术; 二是为无人系统特殊应用的专门技术. 它们共同推动了无人系统的发展及其应用. 一些无人自主系统的共性技术和专门技术得到了研究人员的广泛关注, 如: 感知技术、人机交互、信息和通讯技术、路径规划技术、多平台协同技术、移动与运动控制技术、自主能源、任务规划、自主飞行控制技术等.

3D传感器 利曼中国

安装有车载工控机和云台摄像机的PeopleBot可以进行物体识别与跟踪、VSLAM及其它机器人视觉研究。如果安装了语音设备,People还可以记录、播放音频,进行语音识别和语音合成转换。People还可以安装上多自由机械臂、立体摄像机等各种扩展设备,实现各种想要的开发功能。 MobileRanger立体视觉系统在深度测量领域是最为先进的仪器系统之一,它在移动机器人导航、人员跟踪、手势识别、目标定位以及先进的人机交互等研究方向上有着广泛应用。该系统非常适用于机器人应用中,它将初始化时的深度计算交给了一块FPGA去执行,保留的机器人的计算资源可以执行其它任务。 Bumblebee立体摄像机集成了两台数字相机,可以实时得到场景的深度和三维模型。它可以实现全视场深度测量,实时进行3D数据转换,具有高质量的CCD传感器和高速1394接口。在软件上,Bumblebee立体摄像机提供FlyCapture SDK、Triclops SDK、Censys3D SDK以及Multiclops多系统应用软件开发库。

[pcDuino创意大赛] 带深度摄像头的WIFI小车

内含配件,购买地址,报价

现在很多人都在制作自己的WIFI小车,但是,普通的WIFI小车已经不能满足某些爱折腾的机器人爱好者的需求。希望小车能够视觉跟踪,视觉避障?深度摄像头是标配,我们能够在PC机上运行计算机视觉算法,让小车更智能。

这是一个合作项目,详情请参照: http://blog.exbot.net/archives/643 用没有深度摄像头做的一个简陋例子,可以参考: http://v.youku.com/v_show/id_XNTY2MDk3MzY4.html 到这里来主要招募有能力者合作开发,若“不幸”得奖,奖金按参与者贡献度在讨论群里协商(所有有贡献的参与者均有投票权)瓜分。

如果有兴趣参与,请加QQ群15713335 暗号请填“WIFI小车”

Why WIFI?
可以让小车作为分布式结构中的一个节点,与其他节点通讯,处理复杂问题。

Why depth camera?
可以运行当前流行的视觉算法,用于识别物体,人物,手势等,Depth camera是未来camera产品的标配。

1. 项目范围,功能需求及初步规划

1.1. 初步框架

小车端搭载一块miniPC板(初定位PcDuino),加上WIFI模块与计算机通信。miniPC与深度摄像头(初定为SoftKinetic DS325小型近距离深度摄像头)连接,采集深度图像。miniPC直接或间接(连Arduino)读取传感器信息,连接4直流2舵机驱动板控制小车电机。PC端和小车的miniPC端运行ROS,作为ROS节点互相通信,在有能力处理相关图像语音算法的节点中运行对应的包。

1.2. 计算机方面:

基本通讯与控制:ROS。
语音控制及双向语音:讯飞语音,ROS语音包。
人脸识别:Opencv,ROS相关包,深度摄像头SDK。
行人跟踪:Opencv,ROS相关包,深度摄像头SDK。
智能避障:Opencv,ROS相关包。

1.3. 电子控制方面:

网络传输部分:PC能够与小车WIFI互联,从小车的深度摄像头得到带深度信息的视频。miniPC(PcDuino or MK802) + depth camera(SoftKinetic DS325 or Kinect)
小车控制部分:读取编码盘信息,PID协调好各个轮子速差,封装出控制函数p(linear, rotation), 参数为线速度和角速度。miniPC or Arduino
云台控制部分:控制二自由度云台。
传感器输入和预处理部分:5个超声波测距传感器(前,左前,右前,左,右),一个6轴陀螺仪加速度传感器,双向语音输入输出。

1.4. 机械方面:

结构加工和改装。

2. 合作形式

所有对该项目感兴趣的团体和个人均可以参与进来,所有成果(在作者同意的前提下)均会被开源,任何参与者均可将公开的成果用于任何目的。若因此项目而获利,建议给予有杰出贡献的参与者适当奖励。在项目结束时,会在项目的开源页面及相关介绍页面为贡献者建立荣誉榜。

ExBot对参与者提供全套技术支持,但不提供任何资金和物资支持;ExBot会保证最后成品的组装,以及编写详细教程,参与者可以自行购买配件自行组装。

西安电子科技大学-创新...

工作进展情况:

在1月至3月期间,我们开始ROS和SLAM的研究。首先组装了大机器人的底盘,调试了电机和编码器,然后设计了Kinect和二自由度舵机云台的安装位置。采购了一台上网本,安装并配置了Ubuntu 12.04操作系统,安装了ROS和OpenCV等。通过查阅大量资料和长时间调试,采用PI反馈调节,闭环控制机器人速度,可精确平滑地控制机器人的运动,利用编码器获取的数据发布里程计消息,通过ROS成功完成了同时定位于地图构建(SLAM)以及导航。与小车相似,我们准备利用PC版本的OpenCV实现基于纹理的物体识别,目前与ROS的整合仍在调试中。在操控端,我们同样完成了与小车相同的pocketsphinx离线语音识别,另外增加了讯飞在线语音识别,可完成中文和整句的语音识别功能。

此过程中遇到不少问题,比如由于制造的差异,经过计算,左右两个减速电机在同等条件下,存在着至少百分之八的转速差异,而且差异是非稳态的。我们设计了一个PI速度调节系统使左右轮的差异减少到百分之三以下。

在调试SLAM的过程中,里程计不精确是主要问题,我们通过对机器人底盘轮距和半径以及Kinect与两轮中心距离等参数的测量和调试,最终使得精确度达到要求。而Kinect模拟激光测距仪本身精度就与真正的激光测距仪有较大差距,误差仍然较大,但已可实现不错的建图和导航效果。

  • 大机器人底盘组装
  • 上网本的Ubuntu安装配置
  • PI运动控制
  • 同时定位与地图构建(SLAM)
  • 导航
  • 语音识别
  • 采购木板围栏
  • ROS与OpenCV的整合
  • 基于纹理的物体识别
  • 基于blob的物体运动跟踪
  • 为大机器人增加机械臂

2013视觉导航开发计划(讨论稿)

1.机器人平台:

  • Ar Drone 四旋翼
  • Rovio 机器人车

2.目标:

  1. 仅使用单目摄像机实现室内自主导航

    SLAM方法(拟采用keyframe-based方法) 机器学习方法(模拟学习方法)

  2. 实时算法及软件(C++或Java)

3.实现步骤及参考文献:

  1. 搭建仿真环境:(2013年3月)

    使用Linux+ROS+Gazebo

参考论文: Comprehensive S imulation of Q uadrotor UAVs Using ROS and G azebo

代码: http://www.ros.org/wiki/hector_quadrotor

作者Johannes Meyer为TU博士生

http://www.gkmm.tu-darmstadt.de/?q=node/614

  1. SLAM算法开发:(2013年4月~5月)

拟采用keyframe-based方法

参考论文:

Autonomous Camera-Based Navigation of a Quadrocopter

代码及论文地址:

http://vision.in.tum.de/data/software/tum_ardrone

http://nickd.nl/wiki/doku.php?id=thesis

  1. 上机实验及改进算法(2013年6月)

撰写论文及报告

  1. 完善代码(2013年7月)

提高计算效率及可靠性,满足实时性要求

  1. 进一步考法机器学习实现的目标识别、任务规划、导航与控制

Pioneer with ROS操作思路

Pioneer with ROS操作思路 (2012-09-05 17:20:55)转载▼
标签: pioneer ros it    分类: ROS专区

ros应用平台说明:
All Adept MobileRobots (ActivMedia) robots:
1)use either the p2os stack to interface with robot directly (see the Getting Started with p2os tutorial), or the ROSARIA package to interface via ARIA library (see amor-ros-pkg).
2)robots include Pioneer 2/Pioneer 3 (DX and AT), AmigoBot, PowerBot, PeopleBot, PatrolBot, Seekur Jr., Seekur.
//此例今天已测试成功
1、安装Ubuntu 11.10
2、将已经安装好的ros系统拷贝到Pioneer CPU中,放于opt目录下
注:如果此方法行不通,使用命令安装ros
$sudo apt-get install ros-electric-desktop-full
3、配置
1)增加软件源
Ubuntu 11.10 (Oneiric)
终端输入:
$sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu oneiric main" > /etc/apt/sources.list.d/ros-latest.list'
2)设置keys
$wget http://packages.ros.org/ros.key -O - | sudo apt-key add -
3)更新
sudo apt-get update
4、设置ros环境变量
将 source /opt/ros/electric/setup.bash 写入用户目录下的 .bashrc中
$echo "source /opt/ros/electric/setup.bash" >> ~/.bashrc
$. ~/.bashrc    //使环境变量生效
5、将编译好的软件包拷贝到 /opt/ros/electric/stacks 中
6、实现第一个例程
For moving Poineer P3-DX through Keyboard:
$ roscore
$ rosrun ROSARIA RosAria _port:=/dev/ttyS0   //Pioneer内置计算机使用的是串口
  //使用外置计算机时,设置RosAria port ID,默认为ttyUSB0
$ rosrun ROSARIA rob_key