PIV解析的简单介绍

上一篇Melody酱说完全看不懂课题,因此这里简单说明一下PIV是啥w嘛所谓PIV,全称Particle image velocimetry,翻译过来就是“粒子图像流速测定”,是测定流体的内部流动的方法之一,简单来说就是通过在流体里面加入“追踪粒子(Tracer Particle)”,这种追踪粒子在通常的可是光下并不可见,但是在激光下则会被激起反光;如果使用激光制造出一个平面,那就可以很方便地制造出一个截面的流体粒子成像,此时用摄像机记录下短时间内的瞬间,就可以通过分析相邻的两个瞬间的图像来分析出流体内部的瞬间流速

比如像下图这样,右边是水槽,里面有液体和混在液体里面的追踪粒子(一般的可见光下看不见),左边是激光发生器和镜片(用于生成平面的激光幕)

关闭可见光源,打开激光生成光幕的时候,就可以照出水槽内一截面的追踪粒子

嘛分析流速的算法有很多种,从大范围上来说就有“图像相关法”和“粒子相关法”,也就是计算图像内的固定区域的流速,和计算追踪到的每个粒子的流速的方法,从小的来说那就更是不计其数了w有的算法更快速,有的算法更精确,嘛这里面的取舍纯属看各人了;顺便一说偶们实验室用的主要是“图像相关法”,也就是算区域的流速的方法,比如,下面两张图就是实际拍下来的两个瞬间的图,场景是在水槽里的液体里面滴入另一种不相溶液体的时候的流体内部流速测定,镜头非固定而是追踪液滴

图像相关法的计算的话,首先在第一幅图确定一个小区域(红色范围)

然后在第二张图以相同的区域(红色范围)为中心确定一个更大的解析范围(白色虚线范围),在这个范围里面找到和第一张图的红色范围最接近的范围(白色实线范围)

这样红色实线范围和白色实线范围之间的差距就是第一张图红色范围的流体移动方向和距离,然后像这样依次计算整张图像的每个区域的流速就能得到图像范围内的流体内部流速

实际上上面两张图的PIV解析得出的流速,无视掉那些误差矢量的话,可以明显看到原图的液滴位置是呈双漩涡状(蓝色圆圈范围)

嘛PIV解析简单来说大致就是这个样子——于是也许已经有人能猜到为什么偶的研究主题是“关于使用CUDA的PIV解析的高速化的研究”了——解析图像内的小区域的时候,如果使用CPU来依次解析的话实在是很花时间,特别是大家看到这两张突变的分辨率是1024×1024——嘛虽然和小区域的大小以及解析范围的大小也有关系,8过通常来说这样解析两张照片(准确来说是视频的两帧)使用CPU(Core Duo)解析得到上面的这张图的数据需要5秒以上(而且还是相对更追求速度,所以误差矢量比较显眼w),而这两帧之间只是间隔1/30秒而已,解析速度严重跟不上拍照速度w因此使用GPU的平行多线程计算就是提高解析速度的有效方案之一——顺便,使用GPU的解析速度是——还不知道XD(因为偶CUDA还没学到那么厉害的地方w)嘛根据目前为止的经验来看,至少来说缩减到半秒以内应该是没问题w当然更高的目标是缩减到比拍照间隔更短

好吧这篇文章是咱的期中发表的一小部分(PIV介绍的部分),也算是一点预习w

p.s. 为什么只回国一个星期?因为9月21号期中发表结束到10月1号开学只有一个星期的假期ww

再p.s. 话说女仆本的电池拿到涩谷的Apple Store去换了,本来已经做好了去掉10000多日元的觉悟了的,结果换好了交完钱了最后打单子的时候输入女仆本序列号被告知这货是电池免费更换对象233于是交出手的10000多日元又回来了XD

再再p.s. 话说气弹枪这货果然很危险XD同学的枪光注意弹夹里面没有子弹,结果没注意到枪膛里面已经有了一颗上膛了的(气枪的原理和真枪很类似,上膛比普通的弹簧枪要方便得多,上一次没打完的话即使取出弹夹把弹夹里面的子弹全部取出来,枪膛里面也会已经有一颗上好膛了的w),于是本来是灌好气之后打空枪的打算的,结果那个上好膛了的子弹被打出来打到他自己的电脑上了……www

再再再p.s. 恵瑠酱你不能这么痒得累><

Author: 星野恵瑠

Mac user, Niji-Ota, Chinese, Now working in Japan at MAGES. Inc., Future's aim is that one day my name can be listed in Wikipedia

14 thoughts on “PIV解析的简单介绍”

  1. @bi119aTe5hXk 真相是 (……) ,某一系列序列號的電池內寄居著某種生物,隨著近期覺醒事件的不斷增加,ASSS意識到問題的嚴重性,決定秘密回收進行封印,所以原本需要的10000日元就作為封口費⋯⋯(拖走

  2. 前半截看得晕晕乎乎,呵呵,不过总算知道你天天都忙什么了 (;;)
    换电池省下的这个钱,属于意外咯,按常理应该买点好东东花掉才对嘛,呵呵
    可怜的屏幕,无法修复了吧?

  3. 唔… 咱比较好奇那个白色框是怎么分析出来的呢?怎么确定它和上一帧的红色方块最相似… (-人-)
    靠着一周休假回国的lovee好强大… (XD)
    于是咱想到那个千反田的眼罩了…

  4. 这试枪实在有些给力过头了,下次要注意了,这太危险了,我记得我自己小时候左眼差点被小朋友的,玩具枪射出的塑料弹丸打到,眼睛下面2公分。。囧

    (……)

  5. @iNks
    吃蛋挞最萌了 (o>v<o) 同样名为える的表示咱也想这么萌

    @luacloud
    话说这张照片还是刚打上去的时候拍的,再过不到5分钟整个屏幕的3/4就去了 (=v=o)

    @Phoenix
    嘛偶小时候也被打过嘴唇然后当场爆发冲到那人面前对着他鼻子就是一枪 (;;)

    @想去二次元的千寻
    偶最不想当的职业Top 3之一就是老师 (……)

    @lentrody
    噗不是偶的电脑啊喂 (;;)

    @conanshang
    嘛算法有好几种就是了,下一篇文章介绍两个 (=v=o)

    @Decmes
    @maplebeats
    @天羽ちよこ
    偶觉得偶明明已经解释到简单的不能再简单了啊 (-w-;)

    @Leyeang
    屏幕只能拿去换;偶现在是各种没钱能省一点是一点 (-w-;)

    @bi119aTe5hXk
    偶也没有详细 (=v=o) 感觉有些事情还是不知道的比较幸福

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

(;;) (:D) (!!!!) (……) (^o^;) (==) (OoO) (=v=o) more »Note: Commenter is allowed to use '@User+blank' to automatically notify your reply to other commenter. e.g, if ABC is one of commenter of this post, then write '@ABC '(exclude ') will automatically send your comment to ABC. Using '@all ' to notify all previous commenters. Be sure that the value of User should exactly match with commenter's name (case sensitive).