ultralytics / yolo-flutter-app

A Flutter plugin for Ultralytics YOLO computer vision models
https://ultralytics.com
GNU Affero General Public License v3.0
36 stars 14 forks source link

YOLOV8 EXPORTED MODEL #36

Open ENNURSILA opened 3 days ago

ENNURSILA commented 3 days ago

Hello,

!yolo export model=/content/runs/detect/train2/weights/best.pt format=tflite When I exported my model, it converted it to best_float16.tflite and best_float32.tflite. image I encountered this error. What parts of the TfliteDetector.java file do I need to change?

my second way

!yolo export model=/content/runs/detect/train2/weights/best.pt format=tflite half=True int8=True best_int8.tflite I encountered a different error. How can I solve it? Thanks a lot.

√  Built build\app\outputs\flutter-apk\app-debug.apk.
Installing build\app\outputs\flutter-apk\app-debug.apk...
Debug service listening on ws://127.0.0.1:57970/2gJt3eKiPt0=/ws
Syncing files to device sdk gphone64 x86 64...
I/cs_yolo_example( 4615): Background concurrent copying GC freed 11727(937KB) AllocSpace objects, 3(60KB) LOS objects, 49% free, 2583KB/5167KB, paused 7.438ms,154us total 129.476ms
D/EGL_emulation( 4615): app_time_stats: avg=395.09ms min=96.67ms max=983.07ms count=4
I/PlatformViewsController( 4615): Hosting view in a virtual display for platform view: 0
I/PlatformViewsController( 4615): PlatformView is using ImageReader backend
D/CompatibilityChangeReporter( 4615): Compat change id reported: 236825255; UID 10190; state: DISABLED
I/CameraManagerGlobal( 4615): Connecting to camera service
D/CompatibilityChangeReporter( 4615): Compat change id reported: 250678880; UID 10190; state: ENABLED
D/CameraRepository( 4615): Added camera: 10
W/PlatformViewsController( 4615): Unexpected platform view context for view ID 0; some functionality may not work correctly. When constructing a platform view in the factory, ensure that the view returned from PlatformViewFactory#create returns the provided context from getContext(). If you are unable to associate the view with that context, consider using Hybrid Composition instead.
E/OpenGLRenderer( 4615): Unable to match the desired swap behavior.
D/EGL_emulation( 4615): app_time_stats: avg=673.75ms min=167.25ms max=1180.24ms count=2
I/Camera2CameraInfo( 4615): Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
D/CameraValidator( 4615): Verifying camera lens facing on emu64xa, lensFacingInteger: null
E/CameraValidator( 4615): Camera LensFacing verification failed, existing cameras: [Camera@512dcdb[id=10]]
W/CameraX ( 4615): Retry init. Start time 302651 current time 303720
W/CameraX ( 4615): androidx.camera.core.impl.CameraValidator$CameraIdListIncorrectException: Expected camera missing from device.
W/CameraX ( 4615):  at androidx.camera.core.impl.CameraValidator.validateCameras(CameraValidator.java:97)
W/CameraX ( 4615):  at androidx.camera.core.CameraX.lambda$initAndRetryRecursively$2$androidx-camera-core-CameraX(CameraX.java:342)
W/CameraX ( 4615):  at androidx.camera.core.CameraX$$ExternalSyntheticLambda2.run(Unknown Source:10)
W/CameraX ( 4615):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
W/CameraX ( 4615):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
W/CameraX ( 4615):  at java.lang.Thread.run(Thread.java:1012)
W/CameraX ( 4615): Caused by: java.lang.IllegalArgumentException: No available camera can be found
W/CameraX ( 4615):  at androidx.camera.core.CameraSelector.select(CameraSelector.java:82)
W/CameraX ( 4615):  at androidx.camera.core.impl.CameraValidator.validateCameras(CameraValidator.java:91)
W/CameraX ( 4615):  ... 5 more
D/CameraRepository( 4615): Added camera: 10
I/Camera2CameraInfo( 4615): Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
D/CameraValidator( 4615): Verifying camera lens facing on emu64xa, lensFacingInteger: null
E/CameraValidator( 4615): Camera LensFacing verification failed, existing cameras: [Camera@9213416[id=10]]
W/CameraX ( 4615): Retry init. Start time 302651 current time 304361
W/CameraX ( 4615): androidx.camera.core.impl.CameraValidator$CameraIdListIncorrectException: Expected camera missing from device.
W/CameraX ( 4615):  at androidx.camera.core.impl.CameraValidator.validateCameras(CameraValidator.java:97)
W/CameraX ( 4615):  at androidx.camera.core.CameraX.lambda$initAndRetryRecursively$2$androidx-camera-core-CameraX(CameraX.java:342)
W/CameraX ( 4615):  at androidx.camera.core.CameraX$$ExternalSyntheticLambda2.run(Unknown Source:10)
W/CameraX ( 4615):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
W/CameraX ( 4615):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
W/CameraX ( 4615):  at java.lang.Thread.run(Thread.java:1012)
W/CameraX ( 4615): Caused by: java.lang.IllegalArgumentException: No available camera can be found
W/CameraX ( 4615):  at androidx.camera.core.CameraSelector.select(CameraSelector.java:82)
W/CameraX ( 4615):  at androidx.camera.core.impl.CameraValidator.validateCameras(CameraValidator.java:91)
W/CameraX ( 4615):  ... 5 more
I/System.out( 4615): INPUT_SIZE:320
E/libEGL  ( 4615): call to OpenGL ES API with no current context (logged once per thread)
I/InterpreterApi( 4615): Loaded native library: tensorflowlite_jni
I/InterpreterApi( 4615): Didn't load native library: tensorflowlite_jni_gms_client
D/CameraRepository( 4615): Added camera: 10
I/Camera2CameraInfo( 4615): Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
D/CameraValidator( 4615): Verifying camera lens facing on emu64xa, lensFacingInteger: null
E/CameraValidator( 4615): Camera LensFacing verification failed, existing cameras: [Camera@178e18a[id=10]]
W/CameraX ( 4615): Retry init. Start time 302651 current time 304982
W/CameraX ( 4615): androidx.camera.core.impl.CameraValidator$CameraIdListIncorrectException: Expected camera missing from device.
W/CameraX ( 4615):  at androidx.camera.core.impl.CameraValidator.validateCameras(CameraValidator.java:97)
W/CameraX ( 4615):  at androidx.camera.core.CameraX.lambda$initAndRetryRecursively$2$androidx-camera-core-CameraX(CameraX.java:342)
W/CameraX ( 4615):  at androidx.camera.core.CameraX$$ExternalSyntheticLambda2.run(Unknown Source:10)
W/CameraX ( 4615):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
W/CameraX ( 4615):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
W/CameraX ( 4615):  at java.lang.Thread.run(Thread.java:1012)
W/CameraX ( 4615): Caused by: java.lang.IllegalArgumentException: No available camera can be found
W/CameraX ( 4615):  at androidx.camera.core.CameraSelector.select(CameraSelector.java:82)
W/CameraX ( 4615):  at androidx.camera.core.impl.CameraValidator.validateCameras(CameraValidator.java:91)
W/CameraX ( 4615):  ... 5 more
I/tflite  ( 4615): Initialized TensorFlow Lite runtime.
I/tflite  ( 4615): Created TensorFlow Lite XNNPACK delegate for CPU.
I/tflite  ( 4615): Replacing 193 out of 254 node(s) with delegate (TfLiteXNNPackDelegate) node, yielding 99 partitions for the whole graph.
D/EGL_emulation( 4615): app_time_stats: avg=1663.41ms min=1663.41ms max=1663.41ms count=1
D/CameraRepository( 4615): Added camera: 10
I/Camera2CameraInfo( 4615): Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED
D/CameraValidator( 4615): Verifying camera lens facing on emu64xa, lensFacingInteger: null
E/CameraValidator( 4615): Camera LensFacing verification failed, existing cameras: [Camera@878255c[id=10]]
E/CameraX ( 4615): The device might underreport the amount of the cameras. Finish the initialize task since we are already reaching the maximum number of retries.
D/DeferrableSurface( 4615): Surface created[total_surfaces=1, used_surfaces=0](androidx.camera.core.SurfaceRequest$2@fd2f42}
D/CameraOrientationUtil( 4615): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/CameraOrientationUtil( 4615): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/DeferrableSurface( 4615): Surface created[total_surfaces=2, used_surfaces=0](androidx.camera.core.impl.ImmediateSurface@bf50989}
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Use case androidx.camera.core.Preview-b9659d61-19aa-46b5-a721-35ed235cae3d162824529 INACTIVE
D/UseCaseAttachState( 4615): Active and attached use case: [] for camera: 10
D/CameraOrientationUtil( 4615): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Use case androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966 ACTIVE
D/PreviewView( 4615): Surface requested by Preview.
D/UseCaseAttachState( 4615): Active and attached use case: [] for camera: 10
D/PreviewView( 4615): Preview transformation info updated. TransformationInfo{cropRect=Rect(0, 0 - 1280, 960), rotationDegrees=90, targetRotation=-1}
D/PreviewTransform( 4615): Transformation info set: TransformationInfo{cropRect=Rect(0, 0 - 1280, 960), rotationDegrees=90, targetRotation=-1} 1280x960 false
D/CameraOrientationUtil( 4615): getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Use cases [androidx.camera.core.Preview-b9659d61-19aa-46b5-a721-35ed235cae3d162824529, androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966] now ATTACHED
D/UseCaseAttachState( 4615): All use case: [androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966, androidx.camera.core.Preview-b9659d61-19aa-46b5-a721-35ed235cae3d162824529] for camera: 10
D/UseCaseAttachState( 4615): Active and attached use case: [androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966] for camera: 10
D/SurfaceViewImpl( 4615): Surface created.
D/SurfaceViewImpl( 4615): Surface changed. Size: 1280x960
D/SurfaceViewImpl( 4615): Surface set on Preview.
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Resetting Capture Session
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Releasing session in state INITIALIZED
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Attempting to force open the camera.
D/CameraStateRegistry( 4615): tryOpenCamera(Camera@878255c[id=10]) [Available Cameras: 1, Already Open: false (Previous state: null)] --> SUCCESS
D/CameraStateRegistry( 4615): Recalculating open cameras:
D/CameraStateRegistry( 4615): Camera                                       State                 
D/CameraStateRegistry( 4615): -------------------------------------------------------------------
D/CameraStateRegistry( 4615): Camera@878255c[id=10]                        OPENING               
D/CameraStateRegistry( 4615): -------------------------------------------------------------------
D/CameraStateRegistry( 4615): Open count: 1 (Max allowed: 1)
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Opening camera.
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Transitioning camera internal state: INITIALIZED --> OPENING
D/CameraStateMachine( 4615): New public camera state CameraState{type=OPENING, error=null} from OPENING and null
D/CameraStateMachine( 4615): Publishing new public camera state CameraState{type=OPENING, error=null}
D/UseCaseAttachState( 4615): All use case: [androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966, androidx.camera.core.Preview-b9659d61-19aa-46b5-a721-35ed235cae3d162824529] for camera: 10
I/cs_yolo_example( 4615): Background young concurrent copying GC freed 30395(1886KB) AllocSpace objects, 0(0B) LOS objects, 37% free, 3236KB/5167KB, paused 2.767ms,160us total 109.214ms
W/System  ( 4615): A resource failed to call close. 
D/EGL_emulation( 4615): app_time_stats: avg=337.73ms min=58.45ms max=853.18ms count=3
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Use case androidx.camera.core.Preview-b9659d61-19aa-46b5-a721-35ed235cae3d162824529 INACTIVE
D/UseCaseAttachState( 4615): Active and attached use case: [androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966] for camera: 10
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Use case androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966 ACTIVE
D/UseCaseAttachState( 4615): Active and attached use case: [androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966] for camera: 10
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Use case androidx.camera.core.Preview-b9659d61-19aa-46b5-a721-35ed235cae3d162824529 ACTIVE
D/UseCaseAttachState( 4615): Active and attached use case: [androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966, androidx.camera.core.Preview-b9659d61-19aa-46b5-a721-35ed235cae3d162824529] for camera: 10
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} CameraDevice.onOpened()
D/Camera2CameraImpl( 4615): {Camera@878255c[id=10]} Transitioning camera internal state: OPENING --> OPENED
D/CameraStateRegistry( 4615): Recalculating open cameras:
D/CameraStateRegistry( 4615): Camera                                       State                 
D/CameraStateRegistry( 4615): -------------------------------------------------------------------
D/CameraStateRegistry( 4615): Camera@878255c[id=10]                        OPEN                  
D/CameraStateRegistry( 4615): -------------------------------------------------------------------
D/CameraStateRegistry( 4615): Open count: 1 (Max allowed: 1)
D/CameraStateMachine( 4615): New public camera state CameraState{type=OPEN, error=null} from OPEN and null
D/CameraStateMachine( 4615): Publishing new public camera state CameraState{type=OPEN, error=null}
D/UseCaseAttachState( 4615): All use case: [androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966, androidx.camera.core.Preview-b9659d61-19aa-46b5-a721-35ed235cae3d162824529] for camera: 10
D/UseCaseAttachState( 4615): Active and attached use case: [androidx.camera.core.ImageAnalysis-1556bae5-b77d-472e-9721-bde5438b4ed9115862966, androidx.camera.core.Preview-b9659d61-19aa-46b5-a721-35ed235cae3d162824529] for camera: 10
D/SyncCaptureSessionBase( 4615): [androidx.camera.camera2.internal.SynchronizedCaptureSessionBaseImpl@9002a6d] getSurface...done
D/CaptureSession( 4615): Opening capture session.
D/DeferrableSurface( 4615): New surface in use[total_surfaces=2, used_surfaces=1](androidx.camera.core.SurfaceRequest$2@fd2f42}
D/DeferrableSurface( 4615): use count+1, useCount=1 androidx.camera.core.SurfaceRequest$2@fd2f42
D/DeferrableSurface( 4615): New surface in use[total_surfaces=2, used_surfaces=2](androidx.camera.core.impl.ImmediateSurface@bf50989}
D/DeferrableSurface( 4615): use count+1, useCount=1 androidx.camera.core.impl.ImmediateSurface@bf50989
D/CaptureSession( 4615): Attempting to send capture request onConfigured
D/CaptureSession( 4615): Issuing request for session.
D/Camera2CaptureRequestBuilder( 4615): createCaptureRequest
D/CaptureSession( 4615): CameraCaptureSession.onConfigured() mState=OPENED
D/CaptureSession( 4615): CameraCaptureSession.onReady() OPENED
D/StreamStateObserver( 4615): Update Preview stream state to STREAMING
D/EGL_emulation( 4615): app_time_stats: avg=3600.97ms min=3600.97ms max=3600.97ms count=1
D/YuvToJpegEncoder( 4615): onFlyCompress
D/YuvToJpegEncoder( 4615): onFlyCompress
I/cs_yolo_example( 4615): Background young concurrent copying GC freed 7541(479KB) AllocSpace objects, 8(892KB) LOS objects, 0% free, 5669KB/5669KB, paused 113.920ms,1.297ms total 247.994ms
I/cs_yolo_example( 4615): Background concurrent copying GC freed 789(121KB) AllocSpace objects, 4(776KB) LOS objects, 49% free, 4883KB/9767KB, paused 14.712ms,356us total 469.821ms
F/libc    ( 4615): Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x120700000011 in tid 4615 (cs_yolo_example), pid 4615 (cs_yolo_example)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/sdk_gphone64_x86_64/emu64xa:14/UE1A.230829.036.A1/11228894:user/release-keys'
Revision: '0'
ABI: 'x86_64'
Timestamp: 2024-06-30 19:17:00.476068500+0000
Process uptime: 35s
Cmdline: com.ultralytics.ultralytics_yolo_example
pid: 4615, tid: 4615, name: cs_yolo_example  >>> com.ultralytics.ultralytics_yolo_example <<<
uid: 10190
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000120700000011
    rax 0000120700000011  rbx 00007ffd0a18cff0  rcx 0000000000000000  rdx 0000000000000140
    r8  00007cc68542e310  r9  000000000000000c  r10 00007cc8ffe26000  r11 0000000000000000
    r12 00007cc6d542bb20  r13 00007cc6d542bbd0  r14 00007cc8e57f2700  r15 00007cc6d542bb20
    rdi 00007cc845459858  rsi 0000000000000000
    rbp 00007ffd0a18c9f0  rsp 00007ffd0a18c730  rip 00007cc5d9ac2004
76 total frames
backtrace:
      #00 pc 0000000000012004  /data/app/~~l2iGQ02wuOSFYpZtVgZW-A==/com.ultralytics.ultralytics_yolo_example-qAZ7mSbeQctIwycRuvLZaQ==/base.apk!libultralytics.so (offset 0x1e70f000) (Java_com_ultralytics_ultralytics_1yolo_predict_detect_TfliteDetector_postprocess+724) (BuildId: 1c0932081d541885ee7524871fc8c1d208d4122b)
      #01 pc 0000000000391a4b  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+219) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #02 pc 00000000003784c4  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+756) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #03 pc 00000000003c535c  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #04 pc 000000000056ea47  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+1831) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #05 pc 000000000039ad6f  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+16351) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #06 pc 00000000003937a5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #07 pc 0000000000003d54  <anonymous:7cc8e6b40000> (com.ultralytics.ultralytics_yolo.predict.detect.TfliteDetector.runInference+0)
      #08 pc 0000000000566017  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+647) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #09 pc 000000000056d13e  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+110) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #10 pc 000000000056ddb6  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2054) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #11 pc 000000000039ae32  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+16546) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #12 pc 00000000003937a5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #13 pc 0000000000004064  <anonymous:7cc8e6b40000> (com.ultralytics.ultralytics_yolo.predict.detect.TfliteDetector.lambda$predict$0$com-ultralytics-ultralytics_yolo-predict-detect-TfliteDetector+0)
      #14 pc 0000000000566017  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+647) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #15 pc 000000000056d13e  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+110) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #16 pc 000000000056ddb6  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2054) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #17 pc 000000000039ae32  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+16546) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #18 pc 00000000003937a5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #19 pc 0000000000003cf0  <anonymous:7cc8e6b40000> (com.ultralytics.ultralytics_yolo.predict.detect.TfliteDetector$$ExternalSyntheticLambda0.run+0)
      #20 pc 0000000000566017  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+647) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #21 pc 000000000056d13e  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+110) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #22 pc 000000000056ddb6  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2054) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #23 pc 000000000039ae32  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+16546) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #24 pc 00000000003937a5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #25 pc 00000000001d6bb4  /system/framework/framework.jar (android.os.Handler.handleCallback+0)
      #26 pc 0000000000566017  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+647) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #27 pc 000000000056d13e  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+110) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #28 pc 000000000056ddb6  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2054) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #29 pc 000000000039b0a1  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+17169) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #30 pc 00000000003937a5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #31 pc 00000000001d69fc  /system/framework/framework.jar (android.os.Handler.dispatchMessage+0)
      #32 pc 0000000000566017  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+647) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #33 pc 000000000056d13e  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+110) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #34 pc 000000000056ddb6  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2054) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #35 pc 000000000039ae32  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+16546) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #36 pc 00000000003937a5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #37 pc 00000000001fbe08  /system/framework/framework.jar (android.os.Looper.loopOnce+0)
      #38 pc 0000000000566017  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+647) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #39 pc 000000000056d13e  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+110) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #40 pc 000000000056ddb6  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2054) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #41 pc 000000000039b0a1  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+17169) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #42 pc 00000000003937a5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #43 pc 00000000001fc57c  /system/framework/framework.jar (android.os.Looper.loop+0)
      #44 pc 0000000000566017  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+647) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #45 pc 000000000056d13e  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+110) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #46 pc 000000000056ddb6  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2054) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #47 pc 000000000039b0a1  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+17169) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #48 pc 00000000003937a5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #49 pc 00000000001c3970  /system/framework/framework.jar (android.app.ActivityThread.main+0)
      #50 pc 0000000000566017  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+647) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #51 pc 000000000091f056  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+902) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #52 pc 0000000000391bdc  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+140) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #53 pc 0000000000378826  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+806) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #54 pc 00000000003c538f  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+255) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #55 pc 00000000007f07f4  /apex/com.android.art/lib64/libart.so (_jobject* art::InvokeMethod<(art::PointerSize)8>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1476) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #56 pc 000000000075a387  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*) (.__uniq.165753521025965369065708152063621506277)+39) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #57 pc 0000000000391a4b  /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+219) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #58 pc 00000000003784c4  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+756) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #59 pc 00000000003c535c  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+204) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #60 pc 000000000056ddd0  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, bool, art::JValue*)+2080) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #61 pc 000000000039ae32  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<false>(art::interpreter::SwitchImplContext*)+16546) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #62 pc 00000000003937a5  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+5) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #63 pc 000000000050cd00  /system/framework/framework.jar (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+0)
      #64 pc 0000000000566017  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.__uniq.112435418011751916792819755956732575238)+647) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #65 pc 000000000091f056  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+902) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #66 pc 0000000000391bdc  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+140) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #67 pc 00000000007f0848  /system/framework/x86_64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2872) (BuildId: e4c2202f7e80276bcdbfa046249d896342205aa9)
      #68 pc 0000000000378826  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+806) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #69 pc 00000000003c538f  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+255) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #70 pc 00000000007f129f  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, __va_list_tag*)+399) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #71 pc 00000000006a7edc  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, __va_list_tag*)+668) (BuildId: b6dc79e02101ea00827a35a55ab6597a)
      #72 pc 00000000000df088  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+136) (BuildId: 58f47cb2665b829aa74415f458f1922a)
      #73 pc 00000000000ebb30  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+896) (BuildId: 58f47cb2665b829aa74415f458f1922a)
      #74 pc 0000000000002fa6  /system/bin/app_process64 (main+1622) (BuildId: f11cda2b6bb6bff1e502077a2f3e6cf7)
      #75 pc 00000000000529ef  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+95) (BuildId: fa337969c798946280caa45e2d71a2e7)
Lost connection to device.
pderrenger commented 3 days ago

@ENNURSILA hello,

Thank you for reaching out and providing detailed information about the issue you're encountering with exporting your YOLOv8 model to TFLite format.

To address your concerns:

Exporting to TFLite

When you export your model using the command:

!yolo export model=/content/runs/detect/train2/weights/best.pt format=tflite

It generates both best_float16.tflite and best_float32.tflite files. This is expected behavior as the export process creates models in different precision formats to cater to various deployment needs.

Error in TfliteDetector.java

The error you're encountering seems to be related to the integration of the TFLite model within your Android application. To assist you better, could you please provide more details about the specific error message or stack trace you are seeing? Additionally, sharing the relevant parts of your TfliteDetector.java file would be helpful.

Export with half=True and int8=True

Using the command:

!yolo export model=/content/runs/detect/train2/weights/best.pt format=tflite half=True int8=True

generates an best_int8.tflite model. The different error you mentioned might be due to the specific requirements or limitations of the int8 quantized model. Int8 models require calibration and might not be directly compatible with all devices or configurations.

General Recommendations

  1. Reproducible Example: To help us diagnose the issue more effectively, please provide a minimum reproducible example. This will allow us to understand the context and specifics of the problem. You can find guidelines on how to create one here.

  2. Latest Versions: Ensure you are using the latest versions of the Ultralytics and TensorFlow Lite packages. This can often resolve compatibility issues.

Example Code for TFLite Integration

Here's a basic example of how you might integrate a TFLite model in an Android application:

try {
    // Load the TFLite model from assets
    MappedByteBuffer tfliteModel = FileUtil.loadMappedFile(context, "best_float32.tflite");

    // Initialize the TFLite interpreter
    Interpreter tflite = new Interpreter(tfliteModel);

    // Prepare input and output buffers
    float[][] input = new float[1][INPUT_SIZE];
    float[][] output = new float[1][OUTPUT_SIZE];

    // Run inference
    tflite.run(input, output);

    // Process the output
    // ...
} catch (IOException e) {
    e.printStackTrace();
}

For more detailed instructions on exporting and deploying YOLOv8 models to TFLite, please refer to our documentation.

If you continue to face issues, please provide the additional details mentioned above, and we'll be happy to assist you further.