googlesamples / mlkit

A collection of sample apps to demonstrate how to use Google's ML Kit APIs on Android and iOS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Bug report] Failed to create MediaPipe image segmenter

SamedHrmn opened this issue · comments

Hi, Im trying to implement subject segmentation model in Android project but im getting that error during initialization of segmenter. Here error logs and my AndroidManifest.xml.

2024-02-26 19:09:22.214 23087-23158 emuglGLESv2_enc         com...le.background_remover_flutter  E  device/generic/goldfish-opengl/system/GLESv2_enc/GL2Encoder.cpp:s_glCreateShader:2043 GL error 0x500
2024-02-26 19:09:22.215 23087-23140 native                  com...le.background_remover_flutter  E  E0000 00:00:1708963762.416956   23140 calculator_graph.cc:892] INTERNAL: CalculatorGraph::Run() failed: 
                                                                                                    Calculator::Open() for node "mediapipe_tasks_vision_image_segmenter_imagesegmentergraph__mediapipe.tasks.TensorsToSegmentationCalculator" failed: [GL_INVALID_ENUM]: An unacceptable value is specified for an enumerated argument.: glCreateShader in third_party/tensorflow/lite/delegates/gpu/gl/gl_shader.cc:53
                                                                                                    === Source Location Trace: ===
                                                                                                    ./third_party/tensorflow/lite/delegates/gpu/gl/gl_call.h:61
                                                                                                    third_party/tensorflow/lite/delegates/gpu/gl/gl_shader.cc:53
                                                                                                    third_party/mediapipe/tasks/cc/vision/image_segmenter/calculators/ssbo_to_texture_converter.cc:90
                                                                                                    third_party/mediapipe/tasks/cc/vision/image_segmenter/calculators/segmentation_postprocessor_gl.cc:460
                                                                                                    third_party/mediapipe/tasks/cc/vision/image_segmenter/calculators/segmentation_postprocessor_gl.cc:331
                                                                                                    third_party/mediapipe/tasks/cc/vision/image_segmenter/calculators/tensors_to_segmentation_calculator.cc:353
                                                                                                    third_party/mediapipe/framework/calculator_node.cc:560
2024-02-26 19:09:22.237 23087-23140 MLKSubjectSegmenter     com...le.background_remover_flutter  E  Failed to create MediaPipe image segmenter
                                                                                                    com.google.mediapipe.framework.MediaPipeException: internal: CalculatorGraph::Run() failed: 
                                                                                                    Calculator::Open() for node "mediapipe_tasks_vision_image_segmenter_imagesegmentergraph__mediapipe.tasks.TensorsToSegmentationCalculator" failed: [GL_INVALID_ENUM]: An unacceptable value is specified for an enumerated argument.: glCreateShader in third_party/tensorflow/lite/delegates/gpu/gl/gl_shader.cc:53
                                                                                                    	at com.google.mediapipe.framework.Graph.nativeWaitUntilGraphIdle(Native Method)
                                                                                                    	at com.google.mediapipe.framework.Graph.l(:com.google.android.gms.optional_mlkit_subject_segmentation@240615049@24.06.15 (100800-0):20)
                                                                                                    	at com.google.android.gms.mlkit.segmentation.subject.SubjectSegmenter.c(:com.google.android.gms.optional_mlkit_subject_segmentation@240615049@24.06.15 (100800-0):1250)
                                                                                                    	at m.awk.v(:com.google.android.gms.optional_mlkit_subject_segmentation@240615049@24.06.15 (100800-0):68)
                                                                                                    	at m.as.onTransact(:com.google.android.gms.optional_mlkit_subject_segmentation@240615049@24.06.15 (100800-0):21)
                                                                                                    	at android.os.Binder.transact(Binder.java:1064)
                                                                                                    	at com.google.android.gms.internal.mlkit_vision_subject_segmentation.zza.zzc(com.google.android.gms:play-services-mlkit-subject-segmentation@@16.0.0-beta1:2)
                                                                                                    	at com.google.android.gms.internal.mlkit_vision_subject_segmentation.zzub.zze(com.google.android.gms:play-services-mlkit-subject-segmentation@@16.0.0-beta1:2)
                                                                                                    	at com.google.mlkit.vision.segmentation.subject.internal.zzj.load(com.google.android.gms:play-services-mlkit-subject-segmentation@@16.0.0-beta1:18)
                                                                                                    	at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.10.0:4)
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10)
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.10.0:2)
                                                                                                    	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.10.0:4)
                                                                                                    	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.10.0:1)
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
                                                                                                    	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.10.0:2)
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2)
                                                                                                    	at java.lang.Thread.run(Thread.java:920)
2024-02-26 19:09:22.271 23087-23087 MobileVisionBase        com...le.background_remover_flutter  E  Error preloading model resource
                                                                                                    com.google.mlkit.common.MlKitException: Failed to init module subject segmenter
                                                                                                    	at com.google.mlkit.vision.segmentation.subject.internal.zzj.load(com.google.android.gms:play-services-mlkit-subject-segmentation@@16.0.0-beta1:20)
                                                                                                    	at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.10.0:4)
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10)
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.10.0:2)
                                                                                                    	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.10.0:4)
                                                                                                    	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.10.0:1)
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
                                                                                                    	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.10.0:2)
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2)
                                                                                                    	at java.lang.Thread.run(Thread.java:920)
                                                                                                    Caused by: android.os.RemoteException: Failed to create MediaPipe image segmenter
                                                                                                    	at com.google.android.gms.mlkit.segmentation.subject.SubjectSegmenter.c(:com.google.android.gms.optional_mlkit_subject_segmentation@240615049@24.06.15 (100800-0):1549)
                                                                                                    	at m.awk.v(:com.google.android.gms.optional_mlkit_subject_segmentation@240615049@24.06.15 (100800-0):68)
                                                                                                    	at m.as.onTransact(:com.google.android.gms.optional_mlkit_subject_segmentation@240615049@24.06.15 (100800-0):21)
                                                                                                    	at android.os.Binder.transact(Binder.java:1064)
                                                                                                    	at com.google.android.gms.internal.mlkit_vision_subject_segmentation.zza.zzc(com.google.android.gms:play-services-mlkit-subject-segmentation@@16.0.0-beta1:2)
                                                                                                    	at com.google.android.gms.internal.mlkit_vision_subject_segmentation.zzub.zze(com.google.android.gms:play-services-mlkit-subject-segmentation@@16.0.0-beta1:2)
                                                                                                    	at com.google.mlkit.vision.segmentation.subject.internal.zzj.load(com.google.android.gms:play-services-mlkit-subject-segmentation@@16.0.0-beta1:18)
                                                                                                    	at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.10.0:4) 
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10) 
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.10.0:2) 
                                                                                                    	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.10.0:4) 
                                                                                                    	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.10.0:1) 
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2) 
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
                                                                                                    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
                                                                                                    	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.10.0:2) 
                                                                                                    	at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2) 
                                                                                                    	at java.lang.Thread.run(Thread.java:920) 
                                                                                                    Caused by: com.google.mediapipe.framework.MediaPipeException: internal: CalculatorGraph::Run() failed: 
                                                                                                    Calculator::Open() for node "mediapipe_tasks_vision_image_segmenter_imagesegmentergraph__mediapipe.tasks.TensorsToSegmentationCalculator" failed: [GL_INVALID_ENUM]: An unacceptable value is specified for an enumerated argument.: glCreateShader in third_party/tensorflow/lite/delegates/gpu/gl/gl_shader.cc:53
                                                                                                    	at com.google.mediapipe.framework.Graph.nativeWaitUntilGraphIdle(Native Method)
                                                                                                    	at com.google.mediapipe.framework.Graph.l(:com.google.android.gms.optional_mlkit_subject_segmentation@240615049@24.06.15 (100800-0):20)
                                                                                                    	at com.google.android.gms.mlkit.segmentation.subject.SubjectSegmenter.c(:com.google.android.gms.optional_mlkit_subject_segmentation@240615049@24.06.15 (100800-0):1250)
                                                                                                    	... 17 more

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <uses-permission android:name="android.permission.INTERNET"/>

    <application
        android:label="background_remover_flutter"
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:launchMode="singleTop"
            android:theme="@style/LaunchTheme"
            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <!-- Specifies an Android theme to apply to this Activity as soon as
                 the Android process has started. This theme is visible to the user
                 while the Flutter UI initializes. After that, this theme continues
                 to determine the Window background behind the Flutter UI. -->
            <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <!-- Don't delete the meta-data below.
             This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
        <meta-data
            android:name="flutterEmbedding"
            android:value="2" />
        <meta-data
            android:name="com.google.mlkit.vision.DEPENDENCIES"
            android:value="subject_segment" />
    </application>
</manifest>

To Reproduce
Example Steps to reproduce the behavior in sample app:

  1. Run the app and see error

Expected behavior
No error.

SDK Info:

  • com.google.android.gms:play-services-mlkit-subject-segmentation:16.0.0-beta1

Smartphone:

  • Device/Simulator OS: [Pixel 3, Android API 31]

Hi, from [Pixel 3, Android API 31], are you running the API on emulator?

I tried both, emulator and my android device(API 33). Same result.

I am also getting same error for subject segmentation as follows:

MobileVisionBase com.google.mlkit.vision.demo E Error preloading model resource
com.google.mlkit.common.MlKitException: Waiting for the subject segmentation optional module to be downloaded. Please wait.
at com.google.mlkit.vision.segmentation.subject.internal.zzj.load(com.google.android.gms:play-services-mlkit-subject-segmentation@@16.0.0-beta1:5)
at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.10.0:4)
at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10)
at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.10.0:2)
at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.10.0:4)
at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.10.0:1)
at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.10.0:2)
at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2)
at java.lang.Thread.run(Thread.java:1012)
2024-03-06 16:51:30.283 15690-15690 VisionProcessorBase com.google.mlkit.vision.demo D Failed to process. Error: Waiting for the subject segmentation optional module to be downloaded. Please wait.

I am on pixel 7 pro and used mlkit vision example of subject segmentation

I am also getting same error for subject segmentation as follows:

MobileVisionBase com.google.mlkit.vision.demo E Error preloading model resource com.google.mlkit.common.MlKitException: Waiting for the subject segmentation optional module to be downloaded. Please wait. at com.google.mlkit.vision.segmentation.subject.internal.zzj.load(com.google.android.gms:play-services-mlkit-subject-segmentation@@16.0.0-beta1:5) at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.10.0:4) at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10) at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.10.0:2) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.10.0:4) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.10.0:1) at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644) at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.10.0:2) at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2) at java.lang.Thread.run(Thread.java:1012) 2024-03-06 16:51:30.283 15690-15690 VisionProcessorBase com.google.mlkit.vision.demo D Failed to process. Error: Waiting for the subject segmentation optional module to be downloaded. Please wait.

I am on pixel 7 pro and used mlkit vision example of subject segmentation

This is a different error. It just means the model is being downloaded. You can retry the app to see if it works.

I tried both, emulator and my android device(API 33). Same result.

The error is probably due to OpenGL version is too low on the device. Could you try to update your system to latest, which might update OpenGL to workable version?

emuglGLESv2_enc might indicate it's using GL ES2.0, which is too old to support this feature.

Close this issue now since there's no reply for a while.

Feel free to reopen it if you have any more concern. Thanks!