Jan 20 2015
Master Dissertation: Foreground-Constrained Eulerian Video Magnification

    Master Dissertation: Foreground-Constrained Eulerian Video Magnification

    前言

    10个月前,我写了一篇解读欧拉影像放大技术的文章 Eulerian Video Magnification,这篇文章自发布以来,点击率超过了1300次,评论数达到了29篇。如果你在 baidu 上搜索“Eulerian Video Magnification”,我的文章排在第二名(第一名是原论文的链接)。而如果你在 google 或 baidu 上搜索 “欧拉影像放大” ,那么第一名的位置就是我的文章。

    一个促使我写出这篇博文的原因是因为我的毕业课题就和 EVM 算法有关。当时想着既然一直在钻研这个算法,不如干脆写成博文,一来帮助自己思考,二来也能够通过与其他人交流,加深自己对这个算法的理解。我的论文的想法也很简单,EVM 对于存在大幅度移动物体的细微变化的放大效果并不理想,于是我想到通过与拉格朗日视角的框架相结合,先对感兴趣区域进行跟踪(拉格朗日视角),然后对跟踪结果进行局部的欧拉视角的动作放大,最后再进行多分辨率混合。整个算法框架我称之为“前景约束的欧拉影像放大算法”(Foreground-Constrained Eulerian Video Magnification, FCEVM)。

Read More

Jan 15 2015
Write a Tiny Shell-based Test Framework

    Write a Tiny Shell-based Test Framework

    参与过服务端的后台开发和测试的同学对服务器压力测试应该都不陌生了。为了对线上服务进行模拟测试,往往需要编写自动化的测试工具。一个常见的原型通常是这样的:

    1. 从指定地址下载待测的服务器程序,完成本地化配置和部署;
    2. 使用事先构造好的压力词表生成一系列的请求,并以指定的速率(QPS)向服务器发送这些请求;
    3. 解析服务器的日志,统计压力测试结果。

    当然,实际上的测试环境可能更加复杂。比如,有些服务还要防止同一个 ip 地址在短时间内发出大量请求,相应的就要通过伪造 ip 等手段覆盖这种 case 。但“万变不离其宗”,基本的流程不会有太大的改动。

    无需借助其他语言,以上的工作其实只需用 Linux 自带的 Shell 就可以实现了。这给大多数 Linux 服务器开发测试人员所带来的好处就是完全轻量级,省去了配置开发环境的环节。本文就围绕如何基于 Shell 编写一个简单的测试框架,完成上面的所有工作。

Read More

Jan 4 2015
介绍 GodEyes-iOS

    介绍 GodEyes-iOS

    GodEyes-iOS 是一款针对 iOS App 的源码 crash 隐患扫描工具。特点包括:

    1. 专注于 iOS APP 代码的 Crash 隐患静态扫描。
    2. 扫描规则提取自 APP 的典型 crash 案例代码,并且在持续增加中。
    3. 扫描规则可定制,提供多种格式的扫描报告。

    一个典型的过程是每次完成你的 iOS 项目的迭代后,就使用 GodEyes 扫描一次你的工程的代码。然后打开扫描结果,定位到上面列举的存在隐患的代码,确认一下是否存在隐患,然后对问题代码进行修改。你也可以很轻松地将它作为持续集成的其中一步,通过解析生成的 json 结果文件,得到当前的代码隐患情况,并作为判断持续集成状态的其中一个项目。

    GodEyes-iOS 还有一个兄弟 GodEyes-Android,顾名思义,GodEyes-Android 所针对的是 Android APP 源码的静态扫描。

    下文将重点介绍 GodEyes-iOS。1 1出于方便,下文一律将 GodEyes-iOS 简称为 GodEyes。

Read More

Jul 13 2014
Wixo - a wiki theme for Hexo

    Wixo - a wiki theme for Hexo

    自从我将博客的主题 Freemind 开源了之后,我收到了很多朋友的来信,希望我也能把博客里的 Wiki 部分也开源。

    当初没有将 Wiki 的部分放进博客,主要是考虑到主题的简单性。原来的主题包含了很多我个人的特殊定制,虽然自己用着方便,但对别人就不见得适用了。比如,由于我的博客有 post 和 wiki 两套主要的 layout,为了创建草稿的时候有所区分,原来的 hexo new 就不适用了,于是我都是用自己写的工具来创建草稿。再比如,由于是自己用的东西,也就无所谓代码的模块化,有些 hard-code 的地方要做到灵活可定制又得折腾一顿功夫,而且太多定制项又会增加用户的学习负担。考虑再三,我决定将 Wiki 部分去除,尽可能保证主题整体的简单和模块化。本来我开源了 Freemind 主题后也不打算再写其他主题了,但因为来信询问 Wiki 主题的朋友实在太多,于是也给了我动力编写第二个主题 Wixo

Read More

Mar 21 2014
Eulerian Video Magnification

    Eulerian Video Magnification

    引言

    人类的视觉感知存在有限的感知域。对于超出感知域的变化,我们无法感知。然而,这类信号却可能蕴藏着惊人的秘密。

    比如,血液循环使得人体的皮肤发生细微的周期性变化,这个裸眼无法感知的变化却和人的心率非常吻合。2011 年,MIT 的一个亚裔学生 Mingzhe Poh 就利用这个微弱的信号设计了一个“魔镜”[1] —— 不仅能照出你的模样,还能测出你的心率。

    Mingzhe Poh 的“魔镜”

    Mingzhe Poh 的这面神奇的镜子的原理是利用了血液在人体内流动时光线的变化 [2] :心脏跳动时血液会通过血管,通过血管的血液量越大,被血液吸收的光线也越多,人皮肤表面反射的光线就越少。因此,通过对图像的时频分析就可以估算出心率。

    Cardiac pulse recovery methodology

    再比如,乐器之所以会发出声音,是因为它发声的部分在弹奏过程中发生了有规律的形变,而这个形变的振幅对应着乐器发声的响度,快慢对应着乐器的音高。微弱信号所蕴藏的信息量是如此重大,无怪乎禅语有云:

    一花一世界,一叶一菩提。

    既然如此,能否将影像中的这些肉眼观察不到的变化“放大”到裸眼足以观察的幅度呢?这就是本文将要重点讨论的问题。

Read More

© 2016 Joseph Pan with help from Hexo and .