mediapipe
mediapipe copied to clipboard
Issue with Pose Landmark Detection Segmentation Mask on iOS/iPadOS 17.4.1
Have I written custom code (as opposed to using a stock example script provided in MediaPipe)
Yes
OS Platform and Distribution
iOS, iPadOS 17.4.1
Mobile device if the issue happens on mobile device
iPhone 13 mini, iPhone 13, iPhone XR, iPhone SE 2, iPhone SE 3, iPad pro
Browser and version if the issue happens on browser
No response
Programming Language and version
C++
MediaPipe version
v0.10.9
Bazel version
No response
Solution
Pose
Android Studio, NDK, SDK versions (if issue is related to building in Android environment)
No response
Xcode & Tulsi version (if issue is related to building for iOS)
No response
Describe the actual behavior
Crash when using "segmentation mask" on iOS
Describe the expected behaviour
We would like to have the "segmentation mask" working
Standalone code/steps you may have used to try to get what you need
We're experiencing an issue when using the Pose Landmark Detection (https://developers.google.com/mediapipe/solutions/vision/pose_landmarker) with the "segmentation mask" enabled on iOS and iPadOS 17.4.1. This feature works without any problems on Windows and Android. However, on iOS, enabling the segmentation mask causes the app to crash.
The crash occurs randomly after varying usage times. Sometimes, it works fine for several minutes, but often crashes within a few seconds. The issue seems to happen more quickly on older devices, but using a newer device doesn't guarantee stability.
We would appreciate any assistance or advice you can provide in addressing this issue. Please let me know if you require any additional information.
Other info / Complete Logs
Attached is a backtrace captured at the moment of the crash:
(lldb) bt
* thread #57, name = 'mediapipe/0', stop reason = EXC_BAD_ACCESS (code=1, address=0x11b5ec010)
* frame #0: 0x000000018f49a404 vImage`vConvert_PermuteChannels_ARGB8888_CV_vec + 276
frame #1: 0x000000010548ec20 MediaPipeLib`CreateCVPixelBufferForImageFrame(std::__1::shared_ptr<mediapipe::ImageFrame>, bool) + 592
frame #2: 0x000000010548e584 MediaPipeLib`CreateCVPixelBufferForImageFramePacket(mediapipe::Packet const&, bool, CFHolder<__CVBuffer*>*) + 248
frame #3: 0x0000000104b0aff4 MediaPipeLib`mediapipe::ImageFrameToGpuBufferCalculator::Process(mediapipe::CalculatorContext*) + 136
frame #4: 0x0000000105412740 MediaPipeLib`mediapipe::CalculatorNode::ProcessNode(mediapipe::CalculatorContext*) + 776
frame #5: 0x00000001053eb4e0 MediaPipeLib`mediapipe::internal::SchedulerQueue::RunCalculatorNode(mediapipe::CalculatorNode*, mediapipe::CalculatorContext*) + 292
frame #6: 0x00000001053eafa8 MediaPipeLib`mediapipe::internal::SchedulerQueue::RunNextTask() + 232
frame #7: 0x000000010540aa00 MediaPipeLib`mediapipe::ThreadPool::RunWorker() + 372
frame #8: 0x000000010540a40c MediaPipeLib`mediapipe::ThreadPool::WorkerThread::ThreadBody(void*) + 120
frame #9: 0x00000001e5425a90 libsystem_pthread.dylib`_pthread_start + 136