ultralytics / yolo-flutter-app

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

java.lang.IllegalArgumentException: Cannot copy to a TensorFlowLite tensor (serving_default_input_1:0) with 4915200 bytes from a Java Buffer with 1228800 bytes #57

Open hanspres1999 opened 1 week ago

hanspres1999 commented 1 week ago

I am running my custom trained YOLO5 model on the example app and end up with the error:

E/AndroidRuntime(17777): java.lang.IllegalArgumentException: Cannot copy to a TensorFlowLite tensor (serving_default_input_1:0) with 4915200 bytes from a Java Buffer with 1228800 bytes.
E/AndroidRuntime(17777):    at org.tensorflow.lite.TensorImpl.throwIfSrcShapeIsIncompatible(TensorImpl.java:416)
E/AndroidRuntime(17777):    at org.tensorflow.lite.TensorImpl.setTo(TensorImpl.java:140)
E/AndroidRuntime(17777):    at org.tensorflow.lite.NativeInterpreterWrapper.run(NativeInterpreterWrapper.java:251)
E/AndroidRuntime(17777):    at org.tensorflow.lite.InterpreterImpl.runForMultipleInputsOutputs(InterpreterImpl.java:101)
E/AndroidRuntime(17777):    at org.tensorflow.lite.Interpreter.runForMultipleInputsOutputs(Interpreter.java:95)
E/AndroidRuntime(17777):    at com.ultralytics.ultralytics_yolo.predict.detect.TfliteDetector.runInference(TfliteDetector.java:250)
E/AndroidRuntime(17777):    at com.ultralytics.ultralytics_yolo.predict.detect.TfliteDetector.lambda$predict$0$com-ultralytics-ultralytics_yolo-predict-detect-TfliteDetector(TfliteDetector.java:196)
E/AndroidRuntime(17777):    at com.ultralytics.ultralytics_yolo.predict.detect.TfliteDetector$$ExternalSyntheticLambda0.run(Unknown Source:2)
E/AndroidRuntime(17777):    at android.os.Handler.handleCallback(Handler.java:958)
E/AndroidRuntime(17777):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(17777):    at android.os.Looper.loopOnce(Looper.java:230)
E/AndroidRuntime(17777):    at android.os.Looper.loop(Looper.java:319)
E/AndroidRuntime(17777):    at android.app.ActivityThread.main(ActivityThread.java:8906)
E/AndroidRuntime(17777):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(17777):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:608)
E/AndroidRuntime(17777):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
I/Process (17777): Sending signal. PID: 17777 SIG: 9
Lost connection to device.

Exited.

I've changed the imgsz parameter on the metadata.yaml file to 640, 640 (and tried keeping it at 320,320) and yet no difference.

glenn-jocher commented 1 week ago

@hanspres1999 it seems like there's a mismatch between the input tensor size and the buffer size. Ensure your model's input dimensions match the expected input size in the app. Double-check the model's input shape and adjust the imgsz parameter accordingly. If the issue persists, try updating to the latest version of the app and model.