pytorch / android-demo-app

PyTorch android examples of usage in applications
1.47k stars 606 forks source link

Can I use the torchvision-ops library in Kotlin? #319

Open HuChenHC opened 1 year ago

HuChenHC commented 1 year ago

I'm using a model that requires torchvision.ops.nms. I can successfully load the model by running the D2G demo with replaced model file, but my app is using Kotlin, and without the below JAVA code block in MainActivity that loads the torchvision_ops library, I keep getting the error saying ops not found. Is there any way I can load torchvision-ops library in Kotlin?

Required code in JAVA, which I don't have in my Kotlin project :

static {
    if (!NativeLoader.isInitialized()) {
        NativeLoader.init(new SystemDelegate());
    }
    NativeLoader.loadLibrary("pytorch_jni");
    NativeLoader.loadLibrary("torchvision_ops");
}

My build.gradle includes:

implementation 'org.pytorch:pytorch_android_lite:1.10.0'
implementation 'org.pytorch:pytorch_android_torchvision_lite:1.10.0'
implementation 'org.pytorch:torchvision_ops:1.10.0'

The error I'm getting:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.testDetectionKotlin/com.example.testDetectionKotlin.MainActivity}: com.facebook.jni.CppException: Following ops cannot be found. Check fburl.com/missing_ops for the fix.{torchvision::roi_align, torchvision::nms, } ()

Is it possible to load the torchvision_ops library in Kotlin? Can anyone suggest the proper way to achieve that? If not, any suggestions on ways to use the model that needs torchvision_ops in Kotlin projects? Thank you!

Jokestv2 commented 1 year ago

I am facing the same issue.

NeighborhoodCoding commented 1 year ago

Do you have some reference to use with yolov8?