A Fork of React Native Camera.
React Native Camera has add mlkit already. You can get face bounds, landmarks, classification, and face tracking of a face.
For more information https://firebase.google.com/docs/ml-kit/face-detection-concepts
But face contours detection remains to be implemented, so I implement this feature.
contours detects are supports in sourceset mlkit
So, if you add this lib to your react native app, you should add missingDimensionStrategy 'react-native-camera', 'mlkit' to defaultConfig in build.gradle(app).
If you want to add another soruce, set new sourceset name in productFlavors and sourceSets
then change Active Build Variant in Build Variants on the bottom left of Android Studio.
CameraModule under org.reactnative.camera package (Not Sure)
I am newbee to iOS.
First install pods. brew install cocoapods
Then cd into ios folder and pod install
Then yarn run ios --simulator='iPhone SE (2nd generation)'
https://reactnative.dev/docs/native-modules-ios
{"bounds": {"origin": {"x": 120.38095238095241, "y": 116.22261904761905}, "size": {"height": 488.7452380952381, "width": 278.0952380952381}}, "face": [{"x": 257.58170572916663, "y": 157.12039533342636}, {"x": 239.70775204613093, "y": 161.4703869047619}, {"x": 207.21554129464283, "y": 176.5245338076637}, {"x": 184.0712658110119, "y": 198.7934297107515}, {"x": 73.94287109375004, "y": 229.9989222935268}, {"x": 59.61332775297615, "y": 268.04805850074405}, {"x": 53.040550595238095, "y": 304.9838108607701}, {"x": 50.056896391369044, "y": 345.20760425385976}, {"x": 49.687709263392854, "y": 381.9032216389974}, {"x": 51.112723214285666, "y": 419.5704511369978}, {"x": 55.306384858630906, "y": 458.9723951067244}, {"x": 64.27643694196428, "y": 497.75649602980843}, {"x": 78.35193452380952, "y": 526.479815092541}, {"x": 187.0102074032738, "y": 540.0293599446615}, {"x": 203.58175223214283, "y": 553.647166515532}, {"x": 218.85114397321428, "y": 559.4707443963914}, {"x": 234.69161551339283, "y": 562.7914941696894}, {"x": 255.34342447916666, "y": 564.2091776529949}, {"x": 271.2073916480655, "y": 563.0950488862537}, {"x": 286.8441917782738, "y": 559.075293695359}, {"x": 306.39727492559524, "y": 551.4174191429502}, {"x": 320.72190057663687, "y": 543.0905391148159}, {"x": 334.1889532180059, "y": 532.9792381649926}, {"x": 347.87127976190476, "y": 515.5144638788132}, {"x": 359.4108421688988, "y": 498.49454200381325}, {"x": 369.1274007161458, "y": 469.29102071126306}, {"x": 373.99825613839283, "y": 427.70669948032923}, {"x": 375.23219517299106, "y": 387.6762804303851}, {"x": 374.60270182291663, "y": 350.1860031854539}, {"x": 371.72645205543154, "y": 314.61281026204426}, {"x": 367.1865059988839, "y": 276.3841484433129}, {"x": 360.43112909226187, "y": 241.86369614374073}, {"x": 346.8119187127976, "y": 206.90621308826266}, {"x": 330.27666945684524, "y": 180.40983101981027}, {"x": 307.49097842261904, "y": 163.73710937500002}, {"x": 275.23043387276783, "y": 157.10867978050595}], "faceID": 0, "lowerLipBottom": [{"x": 232.9501255580357, "y": 453.6093468075707}, {"x": 238.8967866443452, "y": 453.9246170770555}, {"x": 247.69973028273807, "y": 454.9573464529855}, {"x": 258.0649879092262, "y": 455.56374482654394}, {"x": 268.8172433035714, "y": 454.12442481631325}, {"x": 279.7986188616071, "y": 453.08631170363657}, {"x": 290.0628138950893, "y": 450.14022260393415}, {"x": 298.62450009300596, "y": 447.00340023949036}, {"x": 304.87476748511904, "y": 445.49541219075525}], "lowerLipTop": [{"x": 238.89015997023807, "y": 445.96467764718193}, {"x": 243.5877976190476, "y": 442.1767955961682}, {"x": 250.8291015625, "y": 437.3845926920573}, {"x": 259.37620907738096, "y": 434.8788526262556}, {"x": 268.42803664434524, "y": 433.3354808989026}, {"x": 277.6195359002976, "y": 432.9633935837519}, {"x": 286.07914806547615, "y": 433.9387980143229}, {"x": 293.30082775297615, "y": 436.88458237420946}, {"x": 298.22705078125, "y": 439.76014113653275}], "rollAngle": -0, "upperLipBottom": [{"x": 303.98485165550596, "y": 441.7695954822359}, {"x": 293.26356724330356, "y": 435.76551005045576}, {"x": 285.92769949776783, "y": 432.9641046433222}, {"x": 277.8094308035714, "y": 431.61671447753906}, {"x": 269.1005161830357, "y": 431.8807545979818}, {"x": 260.3809291294643, "y": 433.34814453125}, {"x": 251.87944103422618, "y": 436.4109489804223}, {"x": 244.46298363095238, "y": 440.90389738537016}, {"x": 233.6293247767857, "y": 449.4421991257441}], "upperLipTop": [{"x": 309.1796177455357, "y": 443.29302368164065}, {"x": 306.9833519345238, "y": 436.32694237118676}, {"x": 300.89918154761904, "y": 427.82317780994237}, {"x": 292.85788690476187, "y": 417.3514035179502}, {"x": 280.51371837797615, "y": 409.03691624232704}, {"x": 269.05662899925596, "y": 411.40332249232705}, {"x": 257.2259347098214, "y": 411.2897222609747}, {"x": 245.1215122767857, "y": 422.0384711855934}, {"x": 237.19677734375, "y": 434.2073415120443}, {"x": 231.26204427083331, "y": 444.45892435709635}, {"x": 228.85718936011904, "y": 452.14808553059896}], "yawAngle": 0}
{ "face": [{"x": ..., "y": ...}, ...], "lowerLipBottom": [Point...], "lowerLipTop": [{"x": ..., "y": ...}, ...], "upperLipBottom": [{"x": ..., "y": ...}, ...]}, "upperLipTop": [Point...], "rightEye": [Point...], "leftEye": [Point...], "leftEyebrowTop": [Point...], "rightEyebrowTop": [Point...], "leftEyebrowBottom": [Point...], "rightEyebrowBottom": [Point...], "noseBridge":[Point...], "noseBottom": [Point...], } Point: {"x": float, "y": float}
