tensorflow: Android Demo - Bug - Exception in TF Detect activity

System information

  • Have I written custom code (as opposed to using a stock example script provided in TensorFlow): At build.gradle (Module: android) def nativeBuildSystem = ‘none’ At CameraActivity.java: useCamera2API = true; Suggested by @andrewharp at #12431
  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows version: 10 Pro Android version: 6.0.1 Demo version: commit 18e4590
  • TensorFlow installed from (source or binary): x
  • TensorFlow version (use command below): x
  • Python version: x
  • Bazel version (if compiling from source): x
  • CUDA/cuDNN version: x
  • GPU model and memory: x
  • Exact command to reproduce: x

Describe the problem

Running the activity TF Detect after installing the project with Android Studio results in an IllegalArgumentException being thrown.

The problem has been noticed before with other configurations at issue #12431 and pull request #10771 and tested recently by @ArtsiomCh using CMake and Ubuntu.

Source code / logs

08-25 11:46:10.596 9185-9185/? I/art: Late-enabling -Xcheck:jni
08-25 11:46:10.636 9185-9185/? D/TidaProvider: TidaProvider()
08-25 11:46:10.722 9185-9185/org.tensorflow.demo D/tensorflow: CameraActivity: onCreate org.tensorflow.demo.DetectorActivity@df7138f
08-25 11:46:10.749 9185-9185/org.tensorflow.demo I/CameraManagerGlobal: Connecting to camera service
08-25 11:46:10.784 9185-9185/org.tensorflow.demo I/tensorflow: CameraActivity: Camera API lv2?: true
08-25 11:46:10.788 9185-9185/org.tensorflow.demo D/tensorflow: CameraActivity: onStart org.tensorflow.demo.DetectorActivity@df7138f
08-25 11:46:10.788 9185-9185/org.tensorflow.demo D/tensorflow: CameraActivity: onResume org.tensorflow.demo.DetectorActivity@df7138f
08-25 11:46:10.796 9185-9217/org.tensorflow.demo D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
08-25 11:46:10.801 9185-9185/org.tensorflow.demo D/ActivityThreadInjector: clearCachedDrawables.
08-25 11:46:10.840 9185-9217/org.tensorflow.demo I/Adreno: QUALCOMM build                   : a7823f5, I59a6815413
                                                           Build Date                       : 09/23/16
                                                           OpenGL ES Shader Compiler Version: XE031.07.00.00
                                                           Local Branch                     : mybranch22028469
                                                           Remote Branch                    : quic/LA.BR.1.3.3_rb2.26
                                                           Remote Branch                    : NONE
                                                           Reconstruct Branch               : NOTHING
08-25 11:46:10.846 9185-9217/org.tensorflow.demo I/OpenGLRenderer: Initialized EGL, version 1.4
08-25 11:46:10.858 9185-9185/org.tensorflow.demo I/tensorflow: CameraConnectionFragment: Desired size: 640x480, min size: 480x480
08-25 11:46:10.858 9185-9185/org.tensorflow.demo I/tensorflow: CameraConnectionFragment: Valid preview sizes: [1280x960, 1280x720, 864x480, 640x640, 800x480, 720x480, 640x480, 480x640]
08-25 11:46:10.859 9185-9185/org.tensorflow.demo I/tensorflow: CameraConnectionFragment: Rejected preview sizes: [832x468, 768x432, 576x432, 640x360, 480x360, 480x320, 384x288, 352x288, 320x240, 240x320, 240x160, 176x144]
08-25 11:46:10.859 9185-9185/org.tensorflow.demo I/tensorflow: CameraConnectionFragment: Exact size match found.
08-25 11:46:10.861 9185-9185/org.tensorflow.demo W/tensorflow: TensorFlowObjectDetectionAPIModel: ???
08-25 11:46:10.861 9185-9185/org.tensorflow.demo W/tensorflow: TensorFlowObjectDetectionAPIModel: person
... Etc.
08-25 11:46:10.863 9185-9185/org.tensorflow.demo W/tensorflow: TensorFlowObjectDetectionAPIModel: hair drier
08-25 11:46:10.863 9185-9185/org.tensorflow.demo W/tensorflow: TensorFlowObjectDetectionAPIModel: toothbrush
08-25 11:46:10.864 9185-9185/org.tensorflow.demo I/TensorFlowInferenceInterface: Checking to see if TensorFlow native methods are already loaded
08-25 11:46:10.864 9185-9185/org.tensorflow.demo E/art: No implementation found for long org.tensorflow.contrib.android.RunStats.allocate() (tried Java_org_tensorflow_contrib_android_RunStats_allocate and Java_org_tensorflow_contrib_android_RunStats_allocate__)
08-25 11:46:10.864 9185-9185/org.tensorflow.demo I/TensorFlowInferenceInterface: TensorFlow native methods not found, attempting to load via tensorflow_inference
08-25 11:46:10.896 9185-9185/org.tensorflow.demo I/TensorFlowInferenceInterface: Successfully loaded TensorFlow native methods (RunStats error may be ignored)
08-25 11:46:12.133 9185-9185/org.tensorflow.demo I/TensorFlowInferenceInterface: Model load took 1213ms, TensorFlow version: 1.2.0
08-25 11:46:12.136 9185-9185/org.tensorflow.demo I/TensorFlowInferenceInterface: Successfully loaded model from 'file:///android_asset/ssd_mobilenet_v1_android_export.pb'
08-25 11:46:12.137 9185-9185/org.tensorflow.demo I/tensorflow: DetectorActivity: Sensor orientation: 90, Screen orientation: 0
08-25 11:46:12.137 9185-9185/org.tensorflow.demo I/tensorflow: DetectorActivity: Initializing at size 640x480
08-25 11:46:12.139 9185-9185/org.tensorflow.demo W/tensorflow: ImageUtils: Native library not found, native RGB -> YUV conversion may be unavailable.
08-25 11:46:12.148 9185-9185/org.tensorflow.demo I/CameraManager: Using legacy camera HAL.
08-25 11:46:12.280 9185-9216/org.tensorflow.demo I/tensorflow: CameraConnectionFragment: Opening camera preview: 640x480
08-25 11:46:12.285 9185-9216/org.tensorflow.demo I/CameraDeviceState: Legacy camera service transitioning to state CONFIGURING
08-25 11:46:12.286 9185-9217/org.tensorflow.demo E/HAL: hw_get_module_by_class: module name gralloc
08-25 11:46:12.286 9185-9290/org.tensorflow.demo I/RequestThread-0: Configure outputs: 2 surfaces configured.
08-25 11:46:12.286 9185-9217/org.tensorflow.demo E/HAL: hw_get_module_by_class: module name gralloc
08-25 11:46:12.286 9185-9290/org.tensorflow.demo D/Camera: app passed NULL surface
08-25 11:46:12.297 9185-9185/org.tensorflow.demo I/Choreographer: Skipped 85 frames!  The application may be doing too much work on its main thread.
08-25 11:46:12.309 9185-9216/org.tensorflow.demo I/CameraDeviceState: Legacy camera service transitioning to state IDLE
08-25 11:46:12.313 9185-9216/org.tensorflow.demo I/RequestQueue: Repeating capture request set.
08-25 11:46:12.314 9185-9290/org.tensorflow.demo W/LegacyRequestMapper: convertRequestMetadata - control.awbRegions setting is not supported, ignoring value
08-25 11:46:12.314 9185-9290/org.tensorflow.demo W/LegacyRequestMapper: Only received metering rectangles with weight 0.
08-25 11:46:12.314 9185-9290/org.tensorflow.demo W/LegacyRequestMapper: Only received metering rectangles with weight 0.
08-25 11:46:12.493 9185-9291/org.tensorflow.demo I/CameraDeviceState: Legacy camera service transitioning to state CAPTURING
08-25 11:46:12.515 9185-9216/org.tensorflow.demo D/tensorflow: CameraActivity: Initializing buffer 0 at size 307200
08-25 11:46:12.516 9185-9216/org.tensorflow.demo D/tensorflow: CameraActivity: Initializing buffer 1 at size 153599
08-25 11:46:12.516 9185-9216/org.tensorflow.demo D/tensorflow: CameraActivity: Initializing buffer 2 at size 153599
08-25 11:46:12.517 9185-9216/org.tensorflow.demo E/tensorflow: ObjectTracker: libtensorflow_demo.so not found, tracking unavailable
08-25 11:46:12.517 9185-9216/org.tensorflow.demo I/tensorflow: MultiBoxTracker: Initializing ObjectTracker: 640x480
08-25 11:46:12.517 9185-9216/org.tensorflow.demo E/tensorflow: ObjectTracker: Native object tracking support not found. See tensorflow/examples/android/README.md for details.
08-25 11:46:12.525 9185-9216/org.tensorflow.demo E/tensorflow: MultiBoxTracker: Object tracking support not found. See tensorflow/examples/android/README.md for details.
08-25 11:46:12.544 9185-9216/org.tensorflow.demo E/art: No implementation found for void org.tensorflow.demo.env.ImageUtils.convertYUV420ToARGB8888(byte[], byte[], byte[], int[], int, int, int, int, int, boolean) (tried Java_org_tensorflow_demo_env_ImageUtils_convertYUV420ToARGB8888 and Java_org_tensorflow_demo_env_ImageUtils_convertYUV420ToARGB8888___3B_3B_3B_3IIIIIIZ)
08-25 11:46:12.545 9185-9216/org.tensorflow.demo W/tensorflow: ImageUtils: Native YUV -> RGB implementation not found, falling back to Java implementation
08-25 11:46:12.717 9185-9217/org.tensorflow.demo V/RenderScript: 0x558f6c1290 Launching thread(s), CPUs 6
08-25 11:46:13.060 9185-9215/org.tensorflow.demo E/TensorFlowInferenceInterface: Failed to run TensorFlow inference with inputs:[image_tensor], outputs:[detection_boxes, detection_scores, detection_classes, num_detections]
                                                                                 
                                                                                 --------- beginning of crash
08-25 11:46:13.060 9185-9215/org.tensorflow.demo E/AndroidRuntime: FATAL EXCEPTION: inference
                                                                   Process: org.tensorflow.demo, PID: 9185
                                                                   java.lang.IllegalArgumentException: No OpKernel was registered to support Op 'Switch' with these attrs.  Registered devices: [CPU], Registered kernels:
                                                                     device='CPU'; T in [DT_FLOAT]
                                                                     device='CPU'; T in [DT_INT32]
                                                                     device='GPU'; T in [DT_STRING]
                                                                     device='GPU'; T in [DT_BOOL]
                                                                     device='GPU'; T in [DT_INT32]
                                                                     device='GPU'; T in [DT_FLOAT]
                                                                   
                                                                   	 [[Node: Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/cond/Switch = Switch[T=DT_BOOL](Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater, Postprocessor/BatchMultiClassNonMaxSuppression/map/while/PadOrClipBoxList/Greater)]]
                                                                       at org.tensorflow.Session.run(Native Method)
                                                                       at org.tensorflow.Session.access$100(Session.java:48)
                                                                       at org.tensorflow.Session$Runner.runHelper(Session.java:295)
                                                                       at org.tensorflow.Session$Runner.run(Session.java:245)
                                                                       at org.tensorflow.contrib.android.TensorFlowInferenceInterface.run(TensorFlowInferenceInterface.java:142)
                                                                       at org.tensorflow.demo.TensorFlowObjectDetectionAPIModel.recognizeImage(TensorFlowObjectDetectionAPIModel.java:158)
                                                                       at org.tensorflow.demo.DetectorActivity$3.run(DetectorActivity.java:340)
                                                                       at android.os.Handler.handleCallback(Handler.java:742)
                                                                       at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                       at android.os.Looper.loop(Looper.java:154)
                                                                       at android.os.HandlerThread.run(HandlerThread.java:61)
08-25 11:46:13.061 9185-9215/org.tensorflow.demo E/MQSEventManagerDelegate: failed to get MQSService.
08-25 11:46:13.080 9185-9185/org.tensorflow.demo I/RequestQueue: Repeating capture request cancelled.
08-25 11:46:13.194 9185-9327/org.tensorflow.demo E/BufferQueueProducer: [SurfaceTexture-1-9185-1] cancelBuffer: BufferQueue has been abandoned

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Comments: 15 (7 by maintainers)

Most upvoted comments

I believe the UnsatisfiedLinkError should be fixed by @ArtsiomCh in 0e69f536c13d6db7e8276ee7ffe249a82d89f246.

I’ve also submitted an internal commit that should be public soon which will enable the object tracker when using camera 1 API.