FastDeploy icon indicating copy to clipboard operation
FastDeploy copied to clipboard

FastDeploy与官方的easyedge的demo,同样模型性能有明显差距

Open denonzhu opened this issue 2 years ago • 11 comments

同一部手机,FastDeploy的性能非常低,不知道是不是优化没做好

denonzhu avatar Nov 15 '22 13:11 denonzhu

WechatIMG4 WechatIMG5 同样模型,fps一个4-20,一个fps 40-60

denonzhu avatar Nov 15 '22 13:11 denonzhu

加载的模型都分别是什么呢?手机的机型和芯片分别是什么呢?方便提供下edge和在fastdeploy中跑的模型吗?以及计算FPS的方式?

DefTruth avatar Nov 15 '22 13:11 DefTruth

手机是麒麟9000,华为nova 8pro , fastdeploy就是例子中的picodet_s_320_coco_lcnet, edge是PP-PicoDet-s_320_lcnet image https://paddledet.bj.bcebos.com/deploy/third_engine/PP-PicoDet.apk

两个模型应该是一样的

denonzhu avatar Nov 15 '22 13:11 denonzhu

按理说不应该这么慢,nova 7 上app中测试过,一般是 22+fps,包含所有的前后处理和渲染时间在内

DefTruth avatar Nov 15 '22 13:11 DefTruth

这个apk的源代码有吗?看下具体fps的计算逻辑是咋样的

DefTruth avatar Nov 15 '22 13:11 DefTruth

a17f3f10afccf0159d5bf85b319f0e8f 2d2b4ac8c9aeb79a9901458249049dc1

另外,我看到模型文件的大小和我们目前提供的也并不一样,使用的使用的推理引擎也不一样。方便提供一下这个apk的源码地址吗

DefTruth avatar Nov 15 '22 13:11 DefTruth

印象中,ncnn的picodet demo是使用fp16 + 4线程来运行程序的

leiqing1 avatar Nov 15 '22 13:11 leiqing1

应该是这个地址 https://github.com/JiweiMaster/PP-PicoDet-Android-Demo

denonzhu avatar Nov 16 '22 00:11 denonzhu

按理说不应该这么慢,nova 7 上app中测试过,一般是 22+fps,包含所有的前后处理和渲染时间在内

截图是4fps,实际平均能达到20左右,但是跟官方PP-PicoDet那个比较差了一半

denonzhu avatar Nov 16 '22 00:11 denonzhu

按理说不应该这么慢,nova 7 上app中测试过,一般是 22+fps,包含所有的前后处理和渲染时间在内

截图是4fps,实际平均能达到20左右,但是跟官方PP-PicoDet那个比较差了一半

感谢您的提问哈,我回复一下这个问题,这里面有几个原因:

    1. 计算fps的方式不一样,目前fd提供的demo计算fps逻辑是包含:camera渲染、每帧bitmap的创建和回收、模型前处理、模型推理、模型后处理、推理结果可视化、可视化结果转换到bitmap、bitmap绘制等所有的时间在内。我review了下您发的链接中的代码,应该是只统计了模型前处理、模型推理、模型后处理的时间来计算fps
    1. App环境中运行,由于camera等占用cpu资源,会导致模型推理可用的计算资源变少,因此app中运行,模型的推理耗时会产生波动。以下是使用fd中picodet_s模型,在shell中测试的性能,包含模型推理和所有前后处理的耗时,测试机为华为nova 7 pro、麒麟985 CPU:
image
    1. 目前app demo是用作给用户展示fd用法的作用,所以暂时没有针对Android camera进行性能优化。camera的优化我们也正在考虑,可能会在后续的版本中添加一些相关的功能。

DefTruth avatar Nov 16 '22 02:11 DefTruth

按理说不应该这么慢,nova 7 上app中测试过,一般是 22+fps,包含所有的前后处理和渲染时间在内

截图是4fps,实际平均能达到20左右,但是跟官方PP-PicoDet那个比较差了一半

感谢您的提问哈,我回复一下这个问题,这里面有几个原因:

    1. 计算fps的方式不一样,目前fd提供的demo计算fps逻辑是包含:camera渲染、每帧bitmap的创建和回收、模型前处理、模型推理、模型后处理、推理结果可视化、可视化结果转换到bitmap、bitmap绘制等所有的时间在内。我review了下您发的链接中的代码,应该是只统计了模型前处理、模型推理、模型后处理的时间来计算fps
    1. App环境中运行,由于camera等占用cpu资源,会导致模型推理可用的计算资源变少,因此app中运行,模型的推理耗时会产生波动。以下是使用fd中picodet_s模型,在shell中测试的性能,包含模型推理和所有前后处理的耗时,测试机为华为nova 7 pro、麒麟985 CPU:
image
    1. 目前app demo是用作给用户展示fd用法的作用,所以暂时没有针对Android camera进行性能优化。camera的优化我们也正在考虑,可能会在后续的版本中添加一些相关的功能。

好的感谢,希望优化一个camera的版本,这样这边就能考虑把现有模型部署改成fd的方式了

denonzhu avatar Nov 16 '22 03:11 denonzhu

此ISSUE由于一年未更新,将会关闭处理,如有需要,可再次更新打开。

jiangjiajun avatar Feb 06 '24 04:02 jiangjiajun