快捷搜索:
来自 关于科技 2019-09-20 19:51 的文章
当前位置: 365体育 > 关于科技 > 正文

Flow介绍与代码实现,重庆研究院在表面活性剂的

近年来,中科院罗安达威尼斯红智能本事研商院在外界活性剂总括模拟钻探方面获得进展,相关成果发布于计算力学领域国际期刊Journal of computational physics上。

第一大家先来介绍一下Optical Flow是个什么样事物, 在浏览器的寻找框框里面我们输入"Optical flow"能够见见维基百科的解释:

外表活性剂在精细化学工业领域、造纸工业、医药行当、化妆品行业、原油开辟行业等有首要的运用。表面活性剂的成员是由厌水的头顶和亲水的尾巴组成,所以它们平日停留在二相流的交分界面上。表面活性剂能减小表面刘宇。表面活性剂的不均匀遍布导致沿分界面切线方向的Marangoni力,对微观的流体引力学爆发第一影响。有外界活性剂的二相流是二个冲天非线性、多规格、几何复杂的系统,它的总结模拟具备一定的挑衅性。

光流(Optical flow or optic flow)是关于视域中的物体运动检查测试中的概念。用来描述绝对于观看者的位移所导致的观看目的、表面或边缘的移位。

不久前,安卡拉钻探院副研究员商员徐建军导出了表面活性剂质量的守恒律,建议了求解运动变形区域上对流扩散方程的依赖水平集的扩散区域方法。徐建军将这几个干活儿与之求解二相流的Navier-Stokes方程的黑影方法、运动变形分界面上对流扩散方程的欧氏水平集格局有效整合,提出了总结有可溶开胃面活性剂的二相流的程度集艺术,并透过大气二维、三维数值模拟实验,探究了可溶解热面活性剂对液滴运动的熏陶。

Optical flow 是三个定义, 描述的是贰个周旋于观测者的运动,那几个活动是观测变成的,便是说,大家肉眼的眼光和实体保持相对平稳就不曾光流运动啦.就如是个大要上面的事物, 那么些网址" ":

那项钻探工作对计量模拟表面活性剂的选取具备重轮廓义,发生了要得国际学术反响,多次收到国际学术会议报告邀约。

What is motion?"对七个意见举办了申辩:

连带诗歌:

  • 1, " motion is the physical movement of pixels, and therefore motion has to be measured in a physical way. "
  • 2, " motion is human percept--motion is what we perceive in our brain, something we can sense and communicate."

1.J.-J. Xu, W. Shi, M.C. Lai, A level-set method for two-phase flows with soluble surfactant,Journal of computational physics 353:336-355, 2018.

接下来贴了下边这些图

  1. J.-J. Xu, Level-set method for two-phase flows with surfactant, Scholars' Press, 2018.

图片 1image

图片 2

Fig1

剪切流功能下表面活性剂覆盖的液滴的分化进度模拟(颜色代表表面活性剂浓度)

咱俩人类能够从地点的静态图中感受到移动! 因此联想到Computer视觉系统是何等做的?

If the ultimate goal of computer vision is to let the computer see what humans perceive, then it is certainly the right way to let humans teach computer how to see the world. Our human-assisted motion annotation serves exactly for this purpose. Indeed, we shall show you that humans' annotations are very consistent, and human's annotations are consistent with other ground-truth data.

很轻巧觉察, 唯有在大家的眼睛移动的时候,大家才干感受到运动,那么眼睛移动引起了怎么样变化喃, 貌似有亮度, 视角,那样子大家岂不是就能够揣度相对运动啦. 是的呗, 光流正是来打量运动的的嘛,,(这么轻松的原理,为何自个儿就从不提议来喃 233).

光流的概念是吉布森在一九五〇年第一提议来的。它是空中活动物体在考查成像平面上的像素运动的一念之差速度,是采纳图像系列中像素在时刻域上的变型以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的应和关系,从而总计出相邻帧之间物体的移位音信的一种方法。一般来说,光流是出于气象中前景指标自个儿的运动、相机的运动,或然两个的一块儿运动所发生的。

当人的眼眸观看移动物体时,物体的场景在人眼的视网膜上变成一雨后冬笋三翻五次变化的图像,这一名目大多一而再变化的音信不断“流过”视网膜,好像一种光的“流”,故称为光流(optical flow)。光流说明了图像的转移,由于它富含了目的活动的信息,由此可被观望者用来规定指标的活动境况。商量光流场的指标便是为着从图片系列中类似获得不能够一贯获得的操场。运动场,其实正是实体在三个维度真实世界中的运动;光流场,是运动场在二维图像平面上(人的眸子依然摄像头)的黑影。那通俗的讲正是经过多个图形连串,把每张图像中每一个像素的移位速度和平运动动方向寻觅来便是光流场。那怎么找呢?我们直观精晓肯定是:第t帧的时候A点的地点是,那么我们在第t+1帧的时候再找到A点,假设它的职分是,那么我们就足以显著A点的移动了:

= - 。

那怎么领悟第t+1帧的时候A点的岗位吗? 那就存在重重的光流总括方法了。一九八一年,Horn和Schunck创设性地将二维速度场与灰度相关联,引进光流约束方程,得到光流计算的骨干算法。人们基于不一样的理论基础建议各个光流总计办法,算法品质各有不相同。Barron等人对各类光流总括本领进行了总计,依照理论功底与数学方法的分别把它们分成四种:基于梯度的法子、基于相配的法子、基于能量的办法、基于相位的办法。近期神经重力学方法也颇受大家推崇。

贴自

图片 3光流的持筹握算

贴自

此地列举多少个OpenCv完成了的测定算法:

  • Lucas–Kanade method

Lucas-Kanade方法是由Bruce D. Lucas和Takeo Kanade开垦的一种广泛使用的光流估算差分方法.它假如流在所牵记的像素的一对邻域中着力牢固,并且通过最小二乘法规解出该邻域中的全体像素的基本光流方程.openCV 的API是 calcOpticalFlowPyrLK.

点这几个链接,不错的争鸣解释

  • The Gunnar-Farneback optical flow

用Gunnar Farneback 的算法总结稠密光流(即图像上存有像素点的光流都总括出来)。它的连锁杂谈是:"Two-Frame Motion Estimation Based on PolynomialExpansion"opencv 的API 是 calcOpticalFlowFarneback.

舆论地址:

  • block matching method

借助于于块相称方法,OpenCv的API 是: CalcOpticalFlowBM.

  • Horn–Schunck method用Horn-Schunck 的算法总括稠密光流。OpenCv的API是 CalcOpticalFlowHS.
  • SimpleFlow

花色网址

OpenCv的API是 calcOpticalFlowSF.

对此代码,这里只演示总括量越来越少,尤其适用于SLAM系统的Lucas–Kanade method. 大家先是需求运用 cv2.goodFeaturesToTrack()来搜寻角点,然后在利用Lucas–Kanade method举办运动跟踪。

python
#!/usr/bin/pythonimport numpy as npimport cv2# opencv-3.1.0/samples/data/768x576.avicap = cv2.VideoCapture('768x576.avi')# params for ShiTomasi corner detectionfeature_params = dict( maxCorners = 100, qualityLevel = 0.3, minDistance = 7, blockSize = 7 )# Parameters for lucas kanade optical flowlk_params = dict( winSize = , maxLevel = 2, criteria = (cv2.TERM_CRITERIA_EPS | cv2.TERM_CRITERIA_COUNT, 10, 0.03))# Create some random colorscolor = np.random.randint(0,255,# Take first frame and find corners in itret, old_frame = cap.read()old_gray = cv2.cvtColor(old_frame, cv2.COLOR_BGR2GRAY)p0 = cv2.goodFeaturesToTrack(old_gray, mask = None, **feature_params)# Create a mask image for drawing purposesmask = np.zeros_like(old_frame)while: ret,frame = cap.read() if ret is True: print ret frame_gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) # calculate optical flow p1, st, err = cv2.calcOpticalFlowPyrLK(old_gray, frame_gray, p0, None, **lk_params) # Select good points good_new = p1[st==1] good_old = p0[st==1] # draw the tracks for i, in enumerate(zip(good_new,good_old)): a,b = new.ravel() c,d = old.ravel() mask = cv2.line(mask, ,, color[i].tolist frame = cv2.circle(frame,,5,color[i].tolist img = cv2.add(frame,mask) cv2.imshow('frame',img) k = cv2.waitKey & 0xff if k == 27: break # Now update the previous frame and previous points old_gray = frame_gray.copy() p0 = good_new.reshape else: breakcv2.destroyAllWindows()cap.release()

图片 4效果图

以此理论由于基于二个很强的亮度不变的只要,由此有着相当大的局限性,只好用于估计一点都不大的移位。

Application of local optical flow methods to high-velocity free-surface flows:Validation and application to stepped chutes : (介绍了主流的三种光流算法)

Flow介绍与OpenCV实现)

(Lucas–Kanade method的国语理论推导)

不足之处,敬请斧正; 若你以为文章还行,请关怀微信徒人号“SLAM 技术交换”继续帮助大家,笔芯:D。

本文由365体育发布于关于科技,转载请注明出处:Flow介绍与代码实现,重庆研究院在表面活性剂的

关键词: