Tag: computer vision

ICCV 2019 Notes

去年10月份参加的ICCV,这次主要关注的几个方向:

– Efficient DNN Inference
– 3D Vision, especially 6DOF pose estimation
– Fundamental improvements in DNN representation learning
– Applications on Human/Face

Efficient DNN Inference 

Low-Power Computer Vision Workshop: 这个Workshop组织了一个竞赛叫Low-Power Image Recognition Challenge (LPIRC)。定义指标里不仅仅考量模型的精度,也同时考量模型运行时的能耗。这个Workshop里有部分报告来自竞赛的优胜队伍,分享一些技术上的技巧,也有一些来自业界和学界的报告。

Prof. Soonhoi Ha  讲了 Software-Hardware Co-Design,期间也分享了一些提高比赛分数的技巧。

Image

Image

另一个印象比较有印象的 来自 Qualcomm 的 Edwin Park 的报告。他们做在芯片中的Vision算法对能耗特别敏感,而且是一个always-on的应用场景。

Image

我感觉考虑能耗还是需要和硬件结合起来做,软件层面有些改进是直接提高分数的,比如更好的loss。但是涉及到网络结构和inference方式的改进基本上都需要权衡速度和精度。虽然目前这个Workshop中最好的方法从数值上看结果还不够好,但这个方向还是很有意义的。只是考虑到目前硬件以及深度学习编译器的发展,可能评测的方式得有所改进。

主会逛poster也看到了一些相关的文章:

3D Vision, especially 6DOF pose estimation

这个方向上主要是听了一个Workshop on Recovering 6D Object Pose。比较完整的听完了Eric Brachmann的Talk。他的思路是大体按照传统方法分步做物体的姿态估计,但是利用deep learning把中间的一些部分弄成可微的,然后用训练得到的组件替换之前的传统方法。很合理的思路,看起来效果也不错。他的slides也是公开的

Image

后来 Matthias Nießner 也讲了他最近的SCAN2CAD,其实是他们CVPR 2019的工作。这个方向我觉得很好,不是单纯的分割。分割出来其实还是要做语义上的分析,而且实际应用中有CAD模型的场景并不少见,是个很好方向。

 

主会逛poster看到的一些相关的文章:

Xu Chen, Jie Song, Otmar Hilliges, Monocular Neural Image Based Rendering With Continuous View Control  这篇的生成新视角的效果很好,现场看到的图分辨率很高也很真实)

Fundamental improvements in DNN representation learning 相关的一些文章:

Applications on Human/Face 相关的一些文章:

第一次参加ICCV。和CVPR相比,会议安排日程相对宽松,还预留了半天休息的时间。Poster区域被围绕在参展的厂商的展台中间。可能是参会的人比较多,感觉Poster区域还是太小了,通道里人挤人。在ICCV参展的厂商明显比CVPR少,而且没有自动驾驶的小车也没有大卡车。

理想中的家用监控

自己家里有两个WiFi摄像头,一个放在半岁女儿的房间里,一个装在客厅的天花板上。家里这两个娃,小的经常在楼上睡觉,需要一个监控方便在楼下看看她;大的大部分时间在楼下玩,他妈妈在楼上带妹妹的时候可以用摄像头看着他。如果没有用摄像头就得经常上楼看两眼,或者是担心楼下的小孩子做什么危险的事情。尽管WiFi摄像头可以提供一些方便,现在的解决方案还是远没有理想中的实用。

一个很大的问题是需要人一直看着画面或者听着声音。有些摄像头提供一个带屏幕的手持设备,但是大部分都需要用手机或者平板电脑上的App。监控段的续航是一个问题,另一方面因为人需要一直看着,其实也没有办法专注的做其它事情。有些摄像头可以提供简单的运动检测,或者是哭声检测,可是实际场景下需要能够监测的事件总类要丰富的多。比如,小月龄孩子是不是把自己用被子蒙住了头,大点的孩子有没有爬到高处或是在接触电气等危险的地方。其实技术上似乎都可以达到。一方面需要计算机视觉技术理解当前的图像,一方面在家庭环境下可以对整体环境3D建模。想象一下,如果可以在一个3D的客厅上标注一些危险区域,然后通过跟踪小娃的运动轨迹提示危险的情行,我感觉还是蛮有趣并且实用的。

这就联系到第二个问题,也就是捕捉有趣的内容。摄像头在家一直开着,希望不光能监测危险情况,也可以捕捉一些有趣的内容。尤其家里有小娃的情况下,有时候他说的话,做的事情十分有趣。很多时候等到拿起手机就错过了。现在的摄像头虽然可以长时间录像,但是一则从录像中找到那个片段并不容易,二则录制的视角大多不理想。其实一个长开的摄像头可以更有趣一些,比如可以通过手势或者声音交互,触发录像或者拍照。甚至可以主动分析,跟踪拍摄有趣的片段。

这联系到第三个问题,视角和移动性的问题。大部分现在的摄像头视角有限。虽然很多可以通过操作云台转动达到全视角,但是每个时刻视角仍然有限,避免不了盲点。其实大可以考虑采用360视角摄像头的技术,简单的可以像Ricoh Theta一样用两个鱼眼镜头。这样不但可以保证实时全角度覆盖的监测,而且还不会错过录下有趣的内容。更酷的方式是一个墙上移动的机器人,拥有更多的自由度。可以是像图上那样的机器人。

当然,最理想的监控还需要在安防上面有更多的特性。主要是感觉很多技术都接近可用的状态了,这些想法大都是可行的。很多部分即使是简单的原型做出来也会很有趣。比如对客厅3D建模,然后做跟踪。自己难有时间来做,希望很快可以看到类似的实现。当然很多特性也或许已经有了只是我不知。

配图是VertiGo,ETH的机器人。上墙的设计十分有趣。大体上可以理解为一只反转旋翼的无人机。通过反转旋翼产生向下的压力,可以把自己压在墙上。

[CV]人脸识别检测数据集

做了一段时间的人脸识别和检测,在这里列一下用过的数据集。基本上,大家近期也都是在这几个数据集上检测自己的算法。网上这方面的总结虽然不少,但是一则有些是多年前的数据,或是规模太小或是链接已经失效,再则是数据集的测试协议定义不明,不尽适合用来和其它方法做比较。

1. Labeled Faces in the Wild:
做人脸识别,准确的说是人脸验证(Face Verification),UMass的LFW估计是最近被用的最多的了,LFW采用的测试协议也已经被几个新的数据集沿用了。人脸验证是指,给定两张人脸的照片,算法需要判断它们是不是来自同一个人。最新的结果(ICCV2013),在限制条件最少的协议下,识别的准确率现在已经高达96%了。[广告^_^] 在限制条件最严的协议下,我们的CVPR2013的结果曾经是最好的。最近被Fisher Vector超过了.. 我们还会回来的…

2. YouTube Faces DB:
YouTube Video Faces也是用来做人脸验证的,和LFW不同的是,在这个数据集下,算法需要判断两段视频里面是不是同一个人。有不少在照片上有效的方法,在视频上未必有效/高效。[广告^_^] 在这个数据集上,我们的最新的结果超过81%,目前还没有看到更高的准确率。

3. FDDB:
FDDB也是UMass的数据集,被用来做人脸检测(Face Detection)。这个数据集比较大,比较有挑战性。而且作者提供了程序用来评估检测结果,所以在这个数据上面比较算法也相对公平。FDDB的一个问题是它的标注是椭圆而不是一般用的长方形,这一点可以会导致检测结果评估不准确。不过因为标准统一,问题倒也不大。[广告^_^] 我们ICCV2013的文章在这个数据上面有不错的结果。

4. The Gallagher Collection Person Dataset:
这也是一个做人脸检测的数据集,是Andrew Gallagher的家庭相册。虽然不是给人脸识别设计的,但是很接近实际应用的场景。很适合用来测试自己的方法。

5. The Annotated Faces in the Wild (AFW) testset:
这还是一个做人脸检测的数据集,随UCI的Xiangxin Zhu在CVPR2012的文章发布。值得注意的是在他们的主页有公开的源代码。虽然人脸检测做了很久,但是效果比较好的,可以在网上方便的得到的检测库除了OpenCV以外并不多见。

6. CMU Dataset:
做人脸检测的数据集,这是一个很有些年头的数据集了,虽然大家最近不常用这个数据,但是这不代表这个老数据集很容易对付。最新的检测算法往往需要比较稠密的取比较复杂的特征,这在这个黑白而且分辨率不高的数据集上未必可行。

7. POS Labeled Faces in the Wild:
这个数据我还没有用过,是最近才发布的一个更大型的LFW。可以用来做人脸识别。看起来很不错的样子。

自己感觉比较好用的数据集就是这些了。
感觉不知道应该写点什么,想来还是写写自己专业相关的内容会比较有趣。