关于python:图像/视频处理选项

image/video processing options

我有一个12伏的小型板相机,放在蜂巢里。它用红外线发光二极管(蜜蜂看不见红外线)照明。它通过一根电线将一个简单的NTSC信号发送到我的一个小电视显示器上。这样我就可以看到蜂巢的内部,而不会打扰蜜蜂。

女王的背上有一个圆点,所以当她在镜框里的时候很明显。

我想要一些处理信号的东西,这样当女王在帧中时,信号就会被记录下来。这不一定是一个非常准确的计数。而不是处理视频,每10秒拍摄一张图像,看看是否有一定的亮度(表示女王在帧中)。

这是有用的,因为它可以帮助养蜂人知道蜂王是否还活着(如果她几天都不出现,这可能意味着出了问题)。

我很想听听关于处理这段视频的廉价方法的建议,特别是在低功耗的情况下。覆盆子皮?阿杜诺?

照相机示例:在这里

示例视频(帧中没有皇后):在这里


首先,伟大的工程。我真希望我能做些有趣的事情。

显而易见的解决方案是opencv,它将在Raspberry PI(Linux)和Android平台上运行,但据我所知,它不会在Arduino上运行。(在这两种情况中,我先从Raspberry PI开始,因为它在如何进行编程方面不太特别。)

正如您所描述的那样,您也许能够摆脱不那么健壮的图像处理工具,但是这些问题很少像最初看起来那么容易。例如,在我看来,视频中最亮的地方(我猜是)反射到玻璃上的发光二极管。但如果不是这样的话,这将是另一回事,所以不要在项目开始时双手紧握在背后。如果OpenCV不能做到这一点,那么它可能根本无法做到。

覆盆子皮电脑大约50美元,opencv是免费的,所以我怀疑你会比这便宜得多。

如果你以前没有做过这样的事情,我建议不要直接在C++中编程OpenCV来开发这样的探索,而不是很苛刻。相反,使用Python绑定,这样您就可以交互地浏览图像。

你也问过Arduino,我不认为这是这种类型项目的好选择。首先,您需要额外的硬件,比如视频屏蔽(例如http://nootropicdesign.com/ve/),这会增加费用。第二,Arduino没有很好的图像处理库,所以你可以从头开始。第三,一般来说,调试微控制器程序比较困难。


关于图像处理,我没有一个很好的答案,但我知道如何使它更容易。当你标记皇后的时候,在油漆上撒一些回复反射的珠子以获得更高的光反射。

我认为你可以简单地把珠子和你的颜料混合在一起——用1份珠子到3份颜料按体积计算。这就是说,我认为如果你在画皇后的时候把珠子倒在湿漆的表面上,效果会更好。我会倒很多珠子来确保一些棍子(你可以把它放在碗或袋子上,以接住所有多余的珠子)。

我建议在给女王做标记之前做一些测试——我以前从来没有用过珠子,但是我用过反光带和油漆,它会给你带来更高的光反射。高出多少强取决于(也就是说,我没有数字),但我猜至少要多出2-5倍的光——足够让你的相机在当前曝光设置下看到女王时饱和。如果您在某个像素阈值(确保几个像素正常饱和)的饱和度上设置了触发器,这将为您提供一个非常好的信噪比,从而大大简化图像处理。

[编辑]我做了更多的挖掘,还有一些重要的参数需要考虑。首先,在指数为1.5(我之前链接的珠子)时,珠子不会将光聚焦在后表面和回复反射上,它们会像透镜一样工作。它们可能会发光并反射一点,但你最好在油漆上加些闪光。

你可以得到非常高的反光带,有正确的珠子种类,珠子背面有反光涂层,可以反射更多的光!你得想办法把一点胶带粘到女王身上才能用,但这可能是你能得到的最好的反映。http://www.amazon.com/3m-198-scotch-reflective-silver/dp/b0004z49q

你也可以试试我之前推荐的折射率为1.5的珠子。我会在纸上测试它和闪光的对比,以确保你不会浪费时间。http://www.colesafety.com/reflective-powder-glass-beads-gsb10粉末.htm

我找不到折射率为1.9+的1lb或更小的玻璃珠的光源。我会做更多的搜索,如果我找到一个合适的小数量的货源,我会告诉你。