找回密码
 注册
查看: 2658|回复: 7

直接写硬盘的Stereo PIV图像拍摄程序

[复制链接]
发表于 2008-5-14 14:52:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
这两周在弄这个恼火的东西。
现在用的图像拍摄程序都是在内存里面开辟一块连续的区域,往里面填图像,内存区用完了就要停下来存这些图像。一般能用的内存就是2GB左右。但是不少时候我们希望要拍摄数万幅图像。那样就要分开来拍, 处理起来有不少额外的麻烦。
想过用一群内存条搞个内存柜,开个128GB的内存区,拍一半,扔一半。不过不论软件硬件我们都弄不来。最后还是着落到用RAID0做一个快速磁盘阵。一边儿拍照片, 一边飞快地往RAID里面写。好比狗熊掰包谷,掰一个, 丢一个。 写得足够快的话,也许可以无限的跑下去。 
现在这个东西用MIL弄成了, 磁盘阵也有了, 两个相机可以用30fps的速度一直拍下去直到硬盘空间用完。只有一个问题,就是不知道两个相机是不是同步。 这个相机拍的第一帧,不见得就是那个相机的第一帧的对应的照片。即使对应起来,也还不能够确认是否肯定是在同一个时刻拍摄的, 除非用外部Trigger。
发表于 2008-5-14 21:47:02 | 显示全部楼层

直接写硬盘的Stereo PIV图像拍摄程序

我去年就这么做过了,呵呵
准确讲,04年时候就做过,那会是用内存阵列,32GB还是64GB不记得了,我记得力学所就是这样的吧。然后用千兆网卡把图像从内存阵列主机传到计算机上。(技术是上个世纪的技术了,只是我04年才上班。。。)
现在用高速硬盘阵列,两块SAS15000转的做RAID 0就问题不大,内存满了自动转到硬盘上。1个相机肯定没问题,连阵列都不用,一块SAS15000转的就可以,甚至SATA2的就可以。但是有时候2个相机就会出现问题:偶尔磁盘速度不稳的时候会丢帧,除非SAS硬盘足够多。。。成本非常高
除此之外,还可以用两台~n台计算机一起采:每个相机插在每个计算机上,其中一个做时序控制,这样,用两台很一般的计算机就可以了,基本上,采集图像没有数量限制,采个几十万幅都没问题。
其实,用PIV做非稳态测量,大量的连续采样对于时间统计量的测量还是很重要的,只不过不说没人注意。
按说你说的同步不是问题,触发信号都是同时给出的,采集时间肯定是同步的,除非丢帧。或者你两个相机不是一个型号?那要用可编程时序控制器,算好每个相机的内部延时,做个小程序,把他俩同步起来。
 楼主| 发表于 2008-5-15 08:25:48 | 显示全部楼层

直接写硬盘的Stereo PIV图像拍摄程序

国家队的技术力量就是比俺们游击队强啊。
受您启发, 刚才搜索了一下内存阵列,发现还真有卖产品的了。我找到有两家, 一个叫做HyperOS做的HyperDrive, 还有技嘉的i-RAM。速度都还可以。
不知道你们那时候的内存阵列是怎么做的?自己加工的还是有现成产品?
我那个程序是用MIL做的,因为我们一直用Matrox的卡。 同步的问题是这样的,有外部Trigger的情况下,相机A开始拍第一帧的时候, 相机B可能还没有开始。所以A的第二帧可能对应B的第一帧,不过也不总是这样。有参照物的情况还好,没有的话就不好办了。而且也不总是会错开,所以很讨厌。我还不知道怎么样让程序使两个相机同步。手册很厚。
发表于 2008-5-15 12:57:35 | 显示全部楼层

直接写硬盘的Stereo PIV图像拍摄程序

你两个相机是同一个型号么?如果是的话,直接用一个T形分线接两根BNC线,把同一个信号给两个相机,为什么会不同步?
应该是自己做的,他们那会就擅长做这些电子的东西,非常擅长。
 楼主| 发表于 2008-5-15 16:36:47 | 显示全部楼层

直接写硬盘的Stereo PIV图像拍摄程序

这个同步的问题是这样的,有外部信号的情况下,相机自己是同步的, 但是程序肯定有先后, 比如说
GrabCameraA(blah blah blah)
GrabCameraB(blah blah blah)
这样从B开始捕捉图像就慢上那么一点点。有时候就错过了一帧。比方说一个序列0 1 2 3,从A拍到了全部, 从B就漏掉了0。
我觉得应该有办法能让从A相机开始捕捉图像的动作等上那么一小小会儿。不过目前还没有找到。
在没有外部信号的情况下, 相机完全各行其是。还不知道怎么办。
发表于 2008-5-15 19:47:36 | 显示全部楼层

直接写硬盘的Stereo PIV图像拍摄程序

没明白,咱说的是一件事么?呵呵
发表于 2008-5-21 13:07:41 | 显示全部楼层

直接写硬盘的Stereo PIV图像拍摄程序

这种同步拍摄应该使能够实现的,否则现在的三维体视PIV系统岂不是全都工作不了了。
采集过程其实是这样的:
你先用软件实现相机采集状态设定:
GrabCameraA(blah blah blah)
GrabCameraB(blah blah blah)
关键是相机的工作状态,如果把相机设定在PIV模式,它会等外部触发信号的。也就是说你可以用软件先把两台相机的先后工作状态设定好,其实这时候相机并不采集图象,而是在等统一的外部触发信号。只要给一个TTl脉冲信号,相机就会同时采集图像。
大内存的使用建议使用64bit操作系统计算机即可,最多可以直接使用64G内存没问题。磁盘阵列的办法已经很成熟了,配合好了还是很好用的。
 楼主| 发表于 2008-5-21 16:31:06 | 显示全部楼层

直接写硬盘的Stereo PIV图像拍摄程序

谢谢二位指教。这个问题我可能没说清楚。这周我也没有去弄它,所以暂时还没有结论。
假定相机A&B都在等TTL,采集卡也已经开始动作,那么同步没有问题。
不过一般试验的时候可能会这样,相机A&B一直在拍照片,动作是同步的。但是相机的采集通道并不同时动作,比如,A&B的采集通道开始动作的时候,他们各自捕捉到了拍摄的PIV图像的第二帧,两个第一帧被丢掉了,这个好像很常见吧?
还有更加讨厌的情况就是,A的采集通道开始动作的时候,B的采集通道还没有开始,刚好错开了一帧。相机的动作可以用TTL信号同步,这个没有问题。我现在的问题不知道怎么样让两个采集通道同步。当然,这个问题不解决也不是什么大不了的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表