开发者社区> 问答> 正文

较小的位图不会增加人脸检测器移动视觉的速度

简介: 我们的应用程序依赖于面部标志物的高检测速度(=睁眼或闭眼)。因此,我开发了一种算法,该算法从上一帧开始获取人脸的位置,并从下一帧开始裁剪图像。这可以完美工作,并且人脸检测器只需处理四分之一的图像。

但这并不会提高检测速度。有人知道为什么吗?

重要的代码片段:

在将位图传递给人脸检测器之前,将执行此片段。它采用前一帧的脸部位置,并且仅通过图像的这一部分:

Bitmap bitmapReturn = Bitmap.createBitmap(bitmap, topLeftX, topLeftY, width, height);

该片段在人脸检测器处理完帧后执行。它提供下一帧图像的位置:

 ```js

float spotY = getSpotY(face); float spotX = getRatioX(face); int moveX = (int) (((float)bitMapScanWidth / 2) - spotX) ; int moveY = (int) (((float)bitMapScanHeight / 2) - spotY); moveValues(moveX, moveY);

还有一些其他代码片段可确保图像值,```js
topLeftX
并```  
且```js
topLeftY
不```  
会达到位图大小以外的值,还有一些代码片段可确保人脸在图像上的大小相同。

但正如之前所说。算法工作正常,但不再导致速度提高。我不知道为什么,因为它可以大大减少所需的计算时间。谁能解释我为什么不是这种情况?我需要调整一些东西吗?还是有另一种方法可以提高算法速度?

请注意,当我比较两个版本之间的速度(使用裁剪图像的算法和不使用裁剪图像的算法)时,两个版本实际上都是通过所需的功能来计算的,以裁剪图像。唯一的区别是,其中一个实际使用值来裁剪图像,而另一个仅在背景中计算了它们。这意味着,我的算法所需的计算并不是速度提高缺失的原因。

展开
收起
几许相思几点泪 2019-12-15 20:01:00 692 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
复杂环境下的视觉同时定位与地图构建 立即下载
营销设计场景下的图像和文字生成 立即下载
低成本自动三维室内重建系统 立即下载