Hi @AiDon,
is that why the processing times are almost double when both options are selected?
: Is it right that you mean Enable discrete GPU and Enable Intel OpenVINO options are both âYesâ? If so, I donât think the processing times are double because both options are selected. (I am not sure what you are comparing to the case both options selected.)
I guess the difference also comes from a combination of the block size and the Face refinement processing (VINO).
: Youâre right. The difference can come from the factors. I donât say more about block size this time but if I add more details to face refinement, we need to distinguish between main AI model processing and face model processing. Actually face refinement module has two steps, the first one is face detection part, the second one is the face model processing. (face detection time is relatively small, but more faces are detected, the face model processing time will be increased)
The main AI model is always processed by one of these devices - dedicated GPU (OpenGL), OpenVINO CPU, OpenVINO iGPU, or Tensorflow CPU. But the face model is processed only when you turn on face refinement + the image has faces detected by face detection part. The face model should be processed by CPU or iGPU, not a dedicated GPU. If you select Tensorflow CPU by selecting No in Enable Intel OpenVINO option, it will be slower during the face refinement processing because Tensorflow CPU is much slower than OpenVINO CPU or OpenVINO iGPU.
Usually, the only main AI model is processed without any face refinement model processing in most cases like (1) face refinement option is turned OFF OR (2) face refinement option is ON but any faces are NOT detected in the image. But it is true that if your image includes many human faces (not closed up portrait, and not animal faces), the processing time can be increased by an additional face model refinement process after the main AI model is processed.
But what happens if both are selected by calibration?
: The calibration sets up the both Enable discrete GPU and Enable Intel OpenVINO options by testing 4 modules (GPU, TF CPU, OV CPU, and OV iGPU). It tests with only a single dummy image block, not multiple image blocks for real size image, and choose the fastest module among them.
In your case, the calibration selected Yes for Enable discrete GPU option because GPU is faster than OV CPU or OV iGPU, and for face refinement option, it selected Yes for Enable Intel OpenVINO option because OpenVINO is faster than Tensorflow CPU even if the face refinement can be turned off. (Again because the face refinement can not be processed by discrete GPU, only OpenVINO and Tensorflow are compared, and then faster one is selected.)
So the main AI model will be processed by discrete GPU and if faces are detected and you turn on face refinement option, OpenVINO will process face refinement model. In your case, I guess OpenVINO iGPU will be used instead of OpenVINO CPU because you have iGPU which is always faster than OpenVINO CPU.
it took 1:13 minutes GPU vs 2:06 minutes for GPU + OpenVINO
: I donât get this meaning. Do you mean the main process took 1:13 mins by GPU and then finally it took 2:06 mins with GPU + OpenVINO (face refinement) options?
I donât know if there are faces in your image, but I can see you selected face refinement On. If the image has faces, total processing time takes a longer time compared to the case you select No for Face refinement option. But discrete GPU (YES) + OpenVINO (YES) should be faster than GPU (YES) + OpenVINO (NO).
Based on the calibration result, I guess discrete GPU (YES) + OpenVINO (YES) is faster than discrete GPU (NO) + OpenVINO (YES) regardless of face refinement option.
Please let me know if I missed something or I misunderstand your meaning. Thank you.
Best,
Myunghoon