gpt4 book ai didi

opencv - 如何让opencv处理分布在多台主机上

转载 作者:太空宇宙 更新时间:2023-11-03 21:26:09 24 4
gpt4 key购买 nike

我正在开发一个消耗大量 CPU 的 opencv 应用程序。

我想分布式处理帧,以便在多个主机之间共享。

思路与http://cloudcv.org/中实现的相同.但问题是你只能将你的请求发送到他们的服务器来测试分布式图像处理。

在网上找了很久,不知是否可以实现opencv + Docker Swarm,或者opencv + Apache Spark,或者有没有其他的分布式的方法。

我的代码处理 opencv 中的帧以检测其中的人,我想让它在许多主机上执行以最大化速度:

while(true)
{
webcam.read(image);
//human detection--------------------------------------
cv::Mat resized_image;
cv::resize(image, resized_image, Size(image.cols / 2, image.rows / 2), 0, 0, INTER_LINEAR);
vector<Rect> found, found_filtered;
// this line uses hog descriptor to detect
// people body pattern in the frmaes
// found is a vector of Rect that contains the
// found peoples.
// Rect is a struct (x, y, height, width)
hog.detectMultiScale(image, found, 0, Size(8, 8), Size(32, 32), 1.05, 2);
size_t u, h;
// this loop just make sure that the found
// rectangles are not duplicated.
for (u = 0; u<found.size(); u++)
{
Rect r = found[u];
for (h = 0; h<found.size(); h++)
if (h != u && (r & found[h]) == r)
break;
if (h == found.size())
found_filtered.push_back(r);
}
// this loop is for drawing the rectangles on the frame
for (u = 0; u<found_filtered.size(); u++)
{
Rect r = found_filtered[u];
r.x += cvRound(r.width*0.1);
r.width = cvRound(r.width*0.8);
r.y += cvRound(r.height*0.07);
r.height = cvRound(r.height*0.8);
rectangle(showed_image, r.tl()*2, r.br()*2, Scalar(0, 255, 0), 3);
cout << '\a';
}
}

最佳答案

Spark 是一种在分布式系统上进行处理的好方法。但它没有一个强大的 OpenCV 社区。Storm 是 Apache 的另一个免费开源分布式实时计算系统。 Storm 使得可靠地处理无限制的数据流变得容易,实时处理就像 Hadoop 进行批处理一样。

StormCV 是 Apache Storm 的扩展,专门用于支持分布式计算机视觉管道的开发。 StormCV 通过添加计算机视觉 (CV) 特定操作和数据模型,支持使用 Storm 进行视频处理。该平台将 OpenCV 用于其大部分 CV 操作,并且将此库用于其他功能相对容易。

有一些将 storm 与 OpenCV 结合使用的示例。您在他们的官方 github 页面上有一个类似的示例。您可能想查看此人脸检测示例并尝试使用它进行人体检测 - https://github.com/sensorstorm/StormCV/blob/master/stormcv-examples/src/nl/tno/stormcv/example/E2_FacedetectionTopology.java .

关于opencv - 如何让opencv处理分布在多台主机上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36688870/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com