google-ai-edge / mediapipe

Cross-platform, customizable ML solutions for live and streaming media.
https://ai.google.dev/edge/mediapipe
Apache License 2.0
27.75k stars 5.18k forks source link

Holistic task error when setting outputFaceBlendshapes to true #5576

Open amokto opened 3 months ago

amokto commented 3 months ago

Have I written custom code (as opposed to using a stock example script provided in MediaPipe)

Yes

OS Platform and Distribution

Web

MediaPipe Tasks SDK version

Latest

Task name (e.g. Image classification, Gesture recognition etc.)

Holistic landmarker

Programming Language and version (e.g. C++, Python, Java)

Javascript

Describe the actual behavior

When setting outputFaceBlendshapes to true and using GPU delegate, UNIMPLEMENTED error is raised

Describe the expected behaviour

No errors when when setting outputFaceBlendshapes to true and using GPU delegate, and values in results.faceBlendshapes

Standalone code/steps you may have used to try to get what you need

Try setting outputFaceBlendshapes to true in holistic landmarker web task when using GPU delegate

Other info / Complete Logs

[Error] Unhandled Promise Rejection: Error: UNIMPLEMENTED: CalculatorGraph::Run() failed: 
Calculator::Open() for node "mediapipe_tasks_vision_holistic_landmarker_holisticlandmarkergraph__mediapipe_tasks_vision_face_landmarker_faceblends...

ERROR: Following operations are not supported by GPU delegate: [vision_wasm_internal.js:10:42194](https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.15/wasm/vision_wasm_internal.js)
DEQUANTIZE: [vision_wasm_internal.js:10:42194](https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.15/wasm/vision_wasm_internal.js)
STRIDED_SLICE: Slice does not support shrink_axis_mask parameter. [vision_wasm_internal.js:10:42194](https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.15/wasm/vision_wasm_internal.js)
123 operations will run on the GPU, and the remaining 59 operations will run on the CPU. [vision_wasm_internal.js:10:42194](https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.15/wasm/vision_wasm_internal.js)
E0919 12:59:46.045000 1895072 calculator_graph.cc:901] UNIMPLEMENTED: CalculatorGraph::Run() failed:
Calculator::Open() for node "mediapipe_tasks_vision_holistic_landmarker_holisticlandmarkergraph__mediapipe_tasks_vision_face_landmarker_faceblendshapesgraph__mediapipe_tasks_core_inferencesubgraph__inferencecalculator__mediapipe_tasks_vision_holistic_landmarker_holisticlandmarkergraph__mediapipe_tasks_vision_face_landmarker_faceblendshapesgraph__mediapipe_tasks_core_inferencesubgraph__InferenceCalculator" failed: No support of const
=== Source Location Trace: ===
third_party/ml_drift/gl30/inference_context.cc:787
third_party/ml_drift/gl30/inference_context.cc:957
third_party/ml_drift/gl30/inference_context.cc:892
blaze-out/opt-ST-572532f09479/genfiles/third_party/mediapipe/calculators/tensor/inference_calculator_ml_drift_webgl_obfuscated.cc:302
blaze-out/opt-ST-572532f09479/genfiles/third_party/mediapipe/calculators/tensor/inference_calculator_ml_drift_webgl_obfuscated.cc:508
blaze-out/opt-ST-572532f09479/genfiles/third_party/mediapipe/calculators/tensor/inference_calculator_ml_drift_webgl_obfuscated.cc:131
third_party/mediapipe/framework/calculator_node.cc:561
amokto commented 3 months ago

Just to clarify this happens using the holistic task found at: https://storage.googleapis.com/mediapipe-models/holistic_landmarker/holistic_landmarker/float16/latest/holistic_landmarker.task

amokto commented 2 months ago

This error only appears when I use GPU with outputFaceBlendshapes to true. If I use CPU everything works great. Might be related or similar to this issue. If you think that is the case @kuaashish feel free to simply close this issue.

More detailed error log:

ERROR: Following operations are not supported by GPU delegate: vision_wasm_internal.js:10:42194 DEQUANTIZE: vision_wasm_internal.js:10:42194 STRIDED_SLICE: Slice does not support shrink_axis_mask parameter. vision_wasm_internal.js:10:42194 123 operations will run on the GPU, and the remaining 59 operations will run on the CPU. vision_wasm_internal.js:10:42194 E0919 12:59:46.045000 1895072 calculator_graph.cc:901] UNIMPLEMENTED: CalculatorGraph::Run() failed: Calculator::Open() for node "mediapipe_tasks_vision_holistic_landmarker_holisticlandmarkergraphmediapipe_tasks_vision_face_landmarker_faceblendshapesgraph__mediapipe_tasks_core_inferencesubgraphinferencecalculatormediapipe_tasks_vision_holistic_landmarker_holisticlandmarkergraph__mediapipe_tasks_vision_face_landmarker_faceblendshapesgraphmediapipe_tasks_core_inferencesubgraph__InferenceCalculator" failed: No support of const === Source Location Trace: === third_party/ml_drift/gl30/inference_context.cc:787 third_party/ml_drift/gl30/inference_context.cc:957 third_party/ml_drift/gl30/inference_context.cc:892 blaze-out/opt-ST-572532f09479/genfiles/third_party/mediapipe/calculators/tensor/inference_calculator_ml_drift_webgl_obfuscated.cc:302 blaze-out/opt-ST-572532f09479/genfiles/third_party/mediapipe/calculators/tensor/inference_calculator_ml_drift_webgl_obfuscated.cc:508 blaze-out/opt-ST-572532f09479/genfiles/third_party/mediapipe/calculators/tensor/inference_calculator_ml_drift_webgl_obfuscated.cc:131 third_party/mediapipe/framework/calculator_node.cc:561

kuaashish commented 1 day ago

Hi @amokto,

Apologies for delay in response, We have newer version 0.10.18, Can you please check and let us know it this is still an issue from our end.

Thank you!!

amokto commented 1 day ago

No worries @kuaashish thanks for looking into it again now.

This issue still happens in 0.10.18, we just tested it on both iOS and Web and the same error occurs there as long as we run inference on GPU delegate. Everything works as expected if we run it on the CPU.

As mentioned this is only an issue for the blendshapes, the facial landmarks work fine both on GPU and CPU.