Start a new topic

Image Recognition not working on Android 10

Hi,


somehow, my implementation stopped working after upgrading to wikitude 9.4.


Circumstances:

SDK: Android JS API

SDK Version: 9.4

Previous SDK Version: 7.2 (not sure)

Android Version: 11

Test Device: Pixel 2 XL


The whole implementation was working before, but after updating the SDK to 9.4 it stopped working. I followed the migration guide from the docs, but nothing helped.


I was able to enable the debug mode and once in a while the following exception appeared:

E/chromium: [ERROR:shared_image_manager.cc(143)] SharedImageManager::ProduceGLTexture: Trying to produce a representation from a non-existent mailbox. 1C:DC:75:01:4D:0B:AB:A1:D5:97:8C:0D:53:8A:98:85
E/chromium: [ERROR:gles2_cmd_decoder.cc(19029)] [GroupMarkerNotSet(crbug.com/242999)!:C8F8C74373000000]GL ERROR :GL_INVALID_OPERATION : DoCreateAndTexStorage2DSharedImageINTERNAL: invalid mailbox name
E/chromium: [ERROR:gles2_cmd_decoder.cc(19050)] [GroupMarkerNotSet(crbug.com/242999)!:C8F8C74373000000]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a shared image
E/chromium: [ERROR:gles2_cmd_decoder.cc(10699)] [GroupMarkerNotSet(crbug.com/242999)!:C8F8C74373000000]RENDER WARNING: texture bound to texture unit 0 is not renderable. It might be non-power-of-2 or have incompatible texture filtering (maybe)?
E/chromium: [ERROR:gles2_cmd_decoder.cc(19079)] [GroupMarkerNotSet(crbug.com/242999)!:C8F8C74373000000]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image
E/chromium: [ERROR:gles2_cmd_decoder.cc(19050)] [GroupMarkerNotSet(crbug.com/242999)!:C8F8C74373000000]GL ERROR :GL_INVALID_OPERATION : DoBeginSharedImageAccessCHROMIUM: bound texture is not a E/chromium: [ERROR:gles2_cmd_decoder.cc(10699)] [GroupMarkerNotSet(crbug.com/242999)!:C8F8C74373000000]RENDER WARNING: texture bound to texture unit 0 is not renderable. It might be non-power-of-2 or have incompatible texture filtering (maybe)?
E/chromium: [ERROR:gles2_cmd_decoder.cc(19079)] [GroupMarkerNotSet(crbug.com/242999)!:C8F8C74373000000]GL ERROR :GL_INVALID_OPERATION : DoEndSharedImageAccessCHROMIUM: bound texture is not a shared image

Probably worth noticing: the used WT3- and WTC-Files are getting downloaded and stored in the context.getExternalFilesDir(null) of the device. Probably it is somehow related to any kind of security system of newer android devices?


Hi Jörg,


as we're not aware of any issues with 9.4 which could result in very slow recognition, could you potentially provide a video which shows the behaviour?


Also, if you test your .wtc file in the SDK sample app (just replacing the .wtc file and changing the target names accordingly), is the recognition faster?


Does it make a difference on Android / iOS and with a different device?


Thx and greetings

Nicola

After some debugging and a lot of testing, we discovered the problem and were able to fix it somehow.


We found out, that the library has a problem reading the HTML- and JS-Files from the external App-Directory. When both files were stored in the assets-directory of the app, everything worked fine. Also loading the WTC- and WT3-Files is working. Only the HTML- and JS-Files should not be in the external directory.


We had a similar problem with the panorama view from google so that on android 11 devices, the view was not able to load panorama images from the external app-directory.

Good morning Joerg,


If instead of loading what context.getExternalFilesDir(null) retrieves, you also add a file:// in the beginning of your path, everything should work as before. The path should look like: file:///storage/emulated/0/...


Nevertheless, make sure that your .WT3 and .WTC files are reachable from the index.html and javascript files.


Regards,


Aitor.

Hi,


new update, I found out, that the implementation still works after all. But the whole recognition is very slow so that I assumed that it is not working. When I point the camera at the target image, it takes up to one minute for the SDK to recognize the image and show the model.


Any suggestion on how to fix this?


Kind Regards

Login or Signup to post a comment