使用 azure face api 进行实时人脸检测时的性能问题
Performance problems while using azure face api for real time face detection
我想用 Azure 认知服务的人脸制作实时人脸识别器 api。但是 api 调用需要很长时间。我能做什么?
我在简单的 while 循环中编写了我的代码。抓取一个框架并检测该框架中的人脸。但是检测人脸的请求部分需要大约 2.5 秒。所以,它离实时检测太远了:)
我在他们的网站上找到了一个 c# 示例,但我无法处理。 link 是:https://docs.microsoft.com/en-us/azure/cognitive-services/face/face-api-how-to-topics/howtoanalyzevideo_face
while True:
image = getCapture()
cv2.imshow('image', image)
image = cv2.imencode('.jpg', image)[1].tostring()
response = requests.post(vision_analyze_url,
params=params,
headers=headers,
data=image)
print(response.json())
key = cv2.waitKey(1) & 0xFF
我什至可以接受 2 fps 顺便说一句。我应该使用什么概念?我看到了类似 asyncio 的东西,我应该使用它吗?
根据我的经验,您的性能问题是由两个原因造成的。
- 每次请求响应的网络延迟,在
asyncio
并发的基础上使用aiohttp
减少间隔请求的时间成本。
- 单线程运行是一个循环过程,等待响应返回再做下一个。由于 Python
GIL
, parallelly or concurrently to request the remote face detection api via Parallel Python
or ray
. 没有真正的并发机制
以上两个基本上和官方文档Example: How to Analyze Videos in Real-time
视频流人脸检测加速的思路是一样的
否则,如果您只需要进行实时人脸检测,我认为 ageitgey/face_recognition
based on dlib
可能是您在没有云的情况下更好的解决方案。
希望对您有所帮助。
我想用 Azure 认知服务的人脸制作实时人脸识别器 api。但是 api 调用需要很长时间。我能做什么?
我在简单的 while 循环中编写了我的代码。抓取一个框架并检测该框架中的人脸。但是检测人脸的请求部分需要大约 2.5 秒。所以,它离实时检测太远了:) 我在他们的网站上找到了一个 c# 示例,但我无法处理。 link 是:https://docs.microsoft.com/en-us/azure/cognitive-services/face/face-api-how-to-topics/howtoanalyzevideo_face
while True:
image = getCapture()
cv2.imshow('image', image)
image = cv2.imencode('.jpg', image)[1].tostring()
response = requests.post(vision_analyze_url,
params=params,
headers=headers,
data=image)
print(response.json())
key = cv2.waitKey(1) & 0xFF
我什至可以接受 2 fps 顺便说一句。我应该使用什么概念?我看到了类似 asyncio 的东西,我应该使用它吗?
根据我的经验,您的性能问题是由两个原因造成的。
- 每次请求响应的网络延迟,在
asyncio
并发的基础上使用aiohttp
减少间隔请求的时间成本。 - 单线程运行是一个循环过程,等待响应返回再做下一个。由于 Python
GIL
, parallelly or concurrently to request the remote face detection api viaParallel Python
orray
. 没有真正的并发机制
以上两个基本上和官方文档Example: How to Analyze Videos in Real-time
视频流人脸检测加速的思路是一样的
否则,如果您只需要进行实时人脸检测,我认为 ageitgey/face_recognition
based on dlib
可能是您在没有云的情况下更好的解决方案。
希望对您有所帮助。