Perch‑Eye is a lightweight, open-source SDK for on-device face comparison. It works natively on Android and iOS, supports custom detectors, and runs entirely offline — no cloud required. Ideal for privacy-focused mobile apps.
Nice approach, but always wary of "lightweight" face recognition claims. What's the actual accuracy rate? False positive/negative rates? Have you published any benchmarks against industry standard datasets like LFW?
It's a bit challenging to create a dataset with all types of angled faces. We're currently working internally on a small dataset of around 128 images, but overall, testing is proceeding as planned.
Just cloned and built it - surprisingly easy setup! The demo app works well on my Pixel. One feature request: any plans for liveness detection? Would help prevent spoofing with photos.
It's already live and working with camera preview on both Android and iOS. We plan to update the demos to reflect that. A question for you in return: Are you satisfied with the non-Full HD live preview, or do you need a more detailed image for your project?
At a higher level, it supports all standard formats on Android (inherited from `BitmapFactory`). For a faster solution, you can pass the raw YUV image directly from the camera source. On iOS, the approach is similar, but the supported formats are limited to `UIImage`
Yes, it's already available, though there are some issues on newer iOS devices, so we haven't officially released it yet. However, you can try it now using our Flutter demo here and React Native demo here. For now, I recommend starting on Android (both in Flutter and React Native), and then verifying on iOS.
In terms of battery life, the AI doesn't even load the two performance cores — the main power consumption comes from the camera preview. On Android, it's more reliable to keep the device connected to a power source and use the battery as a backup. Camera preview can also be optimized by running continuously at a lower resolution, then switching to 720p to capture the actual image once a face is detected
Sunglasses mostly work, thanks to face shape recognition. Masks can be detected if they match common types included in the dataset (scary, ghost, cat, Halloween, etc.). We can calculate a 'human score,' but the robust solution is simple: if the face is detected as a human face, then it's not a rabbit mask