Open JRfan123 opened 5 months ago
@JRfan123 The imports in tfjs-react-native for expo camera are not up to date. With SDK the expo-camera import changed from 'expo-camera' to 'expo-camera/lagacy'. It would be better if the tfjs-react-native would be updated to newer expo versions but at the moment i'll get no progress on this. Maybe you have time to create a pull request for requesting the changes.
ok , i will try it
Hi, @JRfan123
I apologize for the delayed response and @Jersyfi thank you for your pointers and I see Expo changelog from official documentation You can find the old versions at expo-camera/legacy and expo-sqlite/legacy during SDK 51, and they will be removed in SDK 52.
so following an initial assessment, it appears that updating @tensorflow/tfjs-react-native
to support newer Expo versions might be required.
I will raise this issue for discussion in our upcoming internal meeting and provide a status update soon. We are also open to contributions on this matter. Feel free to submit a pull request for our team's review and we will take appropriate action to integrate your contribution if it aligns with our goals.
// Legacy APIs (SDK 50)
import { Camera } from 'expo-camera';
// Legacy APIs (SDK 51): if you import the legacy packages in your app, update
// the imports to the following:
import { Camera } from 'expo-camera/legacy';
Thank you for your cooperation and patience.
@gaikwadrahul8 Thank you for seeing the need of updating. It would make sence to update to the newest expo-camera API and also to support the newest expo-gl version and drop the expo-gl-cpp. On Expo SDK 50 the @tensorflow/tfjs-react-native
package was running with high performance issues for iOS and Android and not on all devices. I can provide the package.json with the running versions for SDK 50.
{
// Excluded name, version, private, main & scripts
},
"dependencies": {
"@hookform/resolvers": "^3.3.4",
"@mediapipe/pose": "^0.5.1675469404", // required
"@react-native-async-storage/async-storage": "1.21.0", // required
"@react-native-community/datetimepicker": "7.7.0",
"@react-native-firebase/app": "^20.0.0",
"@react-native-firebase/auth": "^20.0.0",
"@react-native-firebase/firestore": "^20.0.0",
"@react-native-firebase/functions": "^20.0.0",
"@react-native-firebase/storage": "^20.0.0",
"@react-navigation/bottom-tabs": "^6.5.20",
"@react-navigation/native": "^6.1.17",
"@react-navigation/native-stack": "^6.9.26",
"@tensorflow-models/pose-detection": "^2.1.3", // required
"@tensorflow/tfjs": "^4.19.0", // required
"@tensorflow/tfjs-backend-webgl": "^4.19.0", // required
"@tensorflow/tfjs-backend-webgpu": "^4.19.0", // required
"@tensorflow/tfjs-react-native": "^1.0.0", // required
"expo": "50.0.19", // required and below SDK 51
"expo-av": "~13.10.6",
"expo-build-properties": "~0.11.1",
"expo-camera": "~14.1.3", // required and below version 15
"expo-dev-client": "~3.3.12",
"expo-device": "~5.9.4",
"expo-file-system": "~16.0.9",
"expo-gl": "~13.6.0", // required
"expo-image": "~1.10.6",
"expo-image-manipulator": "~11.8.0",
"expo-image-picker": "~14.7.1",
"expo-keep-awake": "~12.8.2",
"expo-linear-gradient": "~12.7.2",
"expo-linking": "~6.2.2",
"expo-screen-orientation": "~6.4.1",
"expo-splash-screen": "~0.26.5",
"expo-status-bar": "~1.11.1",
"expo-system-ui": "~2.9.4",
"expo-web-browser": "~12.8.2",
"lucide-react-native": "^0.378.0",
"react": "18.2.0",
"react-hook-form": "^7.51.1",
"react-native": "0.73.6",
"react-native-fs": "^2.20.0", // required
"react-native-gesture-handler": "~2.14.0",
"react-native-reanimated": "~3.6.2",
"react-native-safe-area-context": "4.8.2",
"react-native-screens": "~3.29.0",
"react-native-svg": "14.1.0",
"react-native-ui-lib": "^7.22.0",
"seedrandom": "^3.0.5"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6",
"@babel/plugin-proposal-optional-chaining": "^7.21.0",
"@babel/plugin-transform-arrow-functions": "^7.24.1",
"@babel/plugin-transform-optional-chaining": "^7.24.1",
"@babel/plugin-transform-shorthand-properties": "^7.24.1",
"@babel/plugin-transform-template-literals": "^7.24.1",
"@babel/preset-env": "^7.24.3",
"@react-native/babel-preset": "*",
"@types/react": "~18.2.79",
"@typescript-eslint/eslint-plugin": "^6.12.0",
"@typescript-eslint/parser": "^6.12.0",
"eslint": "^8.45.0",
"eslint-config-prettier": "^9.0.0",
"eslint-config-universe": "^12.0.0",
"eslint-plugin-prettier": "^5.1.3",
"eslint-plugin-react-native": "^4.1.0",
"prettier": "3.0.0",
"typescript": "~5.3.3"
}
}
@JRfan123 did you get the SDK 51 running on your side? Maybe i can help out with spending some time.
@Jersyfi I apologize for the delayed response, I had successfully in my side , and I will try to make a pull request this week
@Jersyfi I apologize for the delayed response, I had successfully in my side , and I will try to make a pull request this week
Is it merged yet? we are still facing the same issue
@Jersyfi How did you make it work on SDK 51? and does the apk work for you with eas build -p android --profile preview?
Anyone solved this issue ?
At the moment i can't continue the update to SDK51 but @JRfan123 already made a PR https://github.com/tensorflow/tfjs/pull/8306 that need attention. @gaikwadrahul8 can you please have a look at the changes? I overlooked it even if it is minimalistic but it makes sense with reading the changelog on expo-camera
.
At the moment i can't continue the update to SDK51 but @JRfan123 already made a PR #8306 that need attention. @gaikwadrahul8 can you please have a look at the changes? I overlooked it even if it is minimalistic but it makes sense with reading the changelog on
expo-camera
.
Any updates on this topic?
Facing the same problem! :(
I tried so many ways finally I decided to make an api and work with the model
In my case camera and model.predict working only on IOS (using expo go) but with android is like that the model is predicting nothing using estimatePoses :(
any updates about this?
I've tried to use legacy camera and it is not working enought
In my case camera and model.predict working only on IOS (using expo go) but with android is like that the model is predicting nothing using estimatePoses :(
any updates about this?
I've tried to use legacy camera and it is not working enought
Hey, I’ve been having issues with integrating TensorFlow's pose estimation models on iOS/Android for a couple of years too... So, I shifted to a different approach a few months ago—using a Node.js API with tfjs that I call within an iframe to process the images. My API is PoseTracker.com (https://www.posetracker.com/), additionally, we've been developing pre-trained fitness exercises! A big advantage is that there's no need to install any SDK/libraries—just call the API. We are focus mainly on pose estimation, but I'm open to exploring other models as well, so feel free to reach out!
Will this be supported or what?
Please make sure that this is a build/installation issue. As per our GitHub Policy, we only address code/doc bugs, performance issues, feature requests and build/installation issues on GitHub. tag:build_template
System information
Describe the problem
The conflict between expo camera @ "^ 13.4.4" resulted in installation dependency failure, but after expo 50, a new version of the camera is installed by default, and the new camera is not compatible with the old camera
expo document : https://docs.expo.dev/versions/latest/sdk/camera/
by the way: I want to use the transpose api about the image to handle image
Provide the exact sequence of commands / steps that you executed before running into the problem
Any other info / logs Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached.