Face Detection using Google Glass Enterprise Edition 2 - android

Is OpenCV the most readily available way to get Face Detection working for offline, on-device use case with Google Glass Enterprise Edition 2?
I see three Google-provided libraries, ML Kit, ARCore and, Android-built-in Camera API's face detection, support offline face detection. However, they all seem they won't work for following reasons.
(1) ML Kit doesn't work since it requires Play Services
G. Glass EE 2 only ships with vanilla Android Oreo 8.0
Glass Tech Specs noting Android Oreo - https://www.google.com/glass/tech-specs/
MLKit requirements noting Play Services - https://firebase.google.com/docs/android/setup
(2) AR Core doesn't work because of the same reason, i.e. Play Services
ARCore requirements noting Play Services - https://developers.google.com/ar/discover/supported-devices#android_play
(3) Built-in Camera API for Face Detcetion is Accepted as not working as well
https://code.google.com/archive/p/google-glass-api/issues/282

It looks like OpenCV may not be a good option after all since it's likely too slow on the CPU, and, hasn't been tested on GPU for the Snapdragon XR1 SoC that Google Glass EE2 relies on.
Reference: https://developer.qualcomm.com/forum/qdn-forums/software/fastcv-computer-vision-sdk/35734

Related

HDRP support for Android, Unity?

I am building a VR android application for Oculus Quest 2 using HDRP. I am aware that on the Unity site it says that the HDRP support for Android is not there yet. But I wanted to confirm if there were any updates and/or the article on Unity is old Oculus Site. Since I am getting an error of "The platform Android with the graphic API Direct3D11 is not supported with High Definition Render Pipeline".
FYI I am using the Vulkan Graphics API.
The reported API is the one selected as Windows API (which is a bug).
Android will simply (and sadly) not build if you use HDRP, even though Vulkan does support compute shaders

ZXing versus Google Play Services Vision

I need to add a feature to capture a QR code in my application. I have used Google Play Services and I can read the QR code but I have some questions:
Is it compatible with all devices? I can use barcodeDetector.isOperational() to check if it is compatible, but that is not my option. I need to be sure it will work in all devices.
Some bar code readers I can get from Play Store, show the camera using all the device surface but in a darker background. In the middle of it, a lighter window is shown surrounded by a frame. That window has the sensibility to read the code, not everywhere in the surface. Is it possible to do that in Google Play Services? It's seems ZXING can do that, as shown in the URL: https://www.studytutorial.in/android-bar-code-qr-code-scanner-tutorial-using-zxing-scanner-library
Regards
First Question:
Is it compatible with all devices?
If you want to integrate Google ML Kit Barcode scanning into your app,
“ML Kit uses the com.google.android.gms namespace for libraries that
depend on Google Play Services.”
But as some phones or other devices are without GMS installed, if you want your app to run on all devices, integrate Huawei Mobile Services (HMS). Scan Kit can be integrated into both Android and iOS systems.
Zxing is a common open-source SDK. However, it only implements basic operations of scanning the QR code and does not support more complex scanning environments such as strong light, bending, and deformation. Currently, the mainstream practice is to optimize the source code based on Zxing. Please kindly refer to this xda article: Comparison between Huawei Scan Kit and Zxing
EMUI Version-Dependent Features of Scan Kit
Required EMUI Version (HUAWEI/HONOR Phones and Tablets): EMUI 3.0 or later
Required Android Version (Non-Huawei Phones): Android 4.4 or later
Scan Kit provides two SDKs. You can select an SDK as required.
Scan Kit SDK-Plus
Recognition capability - Huawei phone:Excellent (using the enhanced recognition model in HMS Core (APK))
Recognition capability - Non-Huawei phone:Excellent (using the enhanced recognition model provided by the SDK)
SDK Size:≈3.3MB
Applicable to: Developers who are insensitive to the SDK size and want to have the best experience on all device models
Scan Kit SDK
Recognition capability - Huawei phone:Excellent (using the enhanced recognition model in HMS Core (APK))
Recognition capability - Non-Huawei phone:Good (using the common recognition model provided by the SDK)
SDK Size:≈0.8MB
Applicable to: Developers who are sensitive to the SDK size
Second question:
About Scanning UI
Scan Kit can be called in four ways, from which you can choose as needed. The Scanning UI of Default View is Provided by Scan Kit. The Scanning UI of Customized View Mode,Bitmap Mode and MultiProcessor Mode are Customized by yourself.
If you want to quickly build powerful barcode scanning capabilities into your app, Default View or Customized View is recommended. In either way, Scan Kit directly controls the camera to maximize capabilities such as zoom control, automatic exposure, and auto focus. Less workload is required, but scanning experience is dramatically improved. Customized View differs from Default View in that you can customize the scanning UI.
Please refer to this demo: https://github.com/HMS-Core/hms-scan-demo
If an Androd devices don't install Play Services(for example, some Huawei devices),the Google Play Services Vision will not work. ZXing is independent BarCode Scan library, and you can run all devices. But, according to my experiment, Google Vision is better than ZXing(Detect faster and Perform better at Fuzzy code).
Google Vision and ZXing both detect the whole surface, this demo maybe help https://github.com/googlesamples/android-vision

ARCore Cloud Anchor Device Compatibility

I want to try out the ARCore Cloud Anchors across multiple devices. So far I have a Huawei P30 Pro and a Sony Xperia XZ2 (all up-to-date) and I build the ARCore Example for Cloud Anchors with Unity.
According to the ARCore Documentation, both devices are supported:
AR Core Supported Devices
While the P30 Pro works fine, the XZ2 wants to install the Google Play Services for AR, but according to the PlayStore the phone is not supported. So I copied the APK to to the XZ2 and installed it, but the example app just won't work. (After entering/hosting a room the App crashes.)
Is there a way, to tell which devices are supported for ARCore Cloud Anchors / Google PlayServices for AR?

Why ARCore doesn't support Nexus 9?

I need help about Google ARCore. Actually Unity app working in Nexus 9 but Google ARCore Android app doesn't support it. Also I know about supported devices.
But I want to know about what's the difference between Android ARCore & Unity ARCore?
Why Unity AR app is working in this device but Google ARCore is not supported its own native SDK?
ARCore is the plugin developed and maintained by Google. There are ARCore SDK, ARCore NDK, ARCore iOS, ARCore Unity (where you can develop apps for iOS and Android simultaneously), ARCore Unreal. Unity also supports Vuforia SDK that has its own engine as well (developed by PTC) and/or can compile apps from Unity's ARCore and ARKit libraries. It depends.
In Unity, ARCore is directly integrated into the engine – you know there’s a little checkbox for it in the XR settings – and it’s compatible with Unity versions 2017.1 or later.
But.
Unity has its own AR engine. It allows Unity to compile apps that can be run on even officially unsupported devices. That sounds strange. But for Google there are obvious reasons for unsupporting Nexus 9 officially:
Nexus 9 may have no real Gyroscope sensor (it may have virtual Gyro)
Nexus 9 will be in the list of supported devices a little bit later (although it's unlikely, because it released in 2014)
possibly Nexus 9 has hardware issues
it does not meet the minimum software requirements for ARCore
there are Google's business preferences (HTC and Google are competitors, aren't they?)
etc, etc, etc.
Hope this helps.
They're completely different libraries written by completely different companies that just happen to have similar names. They have nothing to do with one another. So there's no reason why they would both support the same set of devices.

ARCore : is arcore-preview.apk (= Tango Core app) required to run a ARCore app?

I would like to develop an app using ARCore. I have several questions:
is it required to install the arcore-preview.apk to be able to run this ARCore app ?
Why does the arcore-preview.apk appears with the name "Tango Core" in the applications list of my device ?
Will the Android OS directly include the ARCore (Tango Core ?) SDK in the future ?
Will all the devices be compatible with ARCore ? (not just the S8 and a few devices...)
Thanks !
Yes
Because ARCore is based on the much older Project Tango
Unclear but likely - at least a Tango Core App downloadable from the play store
No. But much more than the current choice:
Google plans to add support for other phones from Samsung, Huawei, LG,
and Asus, among others. The goal is to bring ARCore support to “100
million devices at the end of the preview." - source
Yes, If u using preview 1 then arcore-preview.apk else if you are using preview2 then install arcore-preview2.apk
ARCore is based on the Tango. The service name is display as Tango Core in preview 1 and the servie name is diplay as ARCore in Preview2
Yes, In future they have plan attach the services by default in sdk but not sure(In Progress) and now the Apps can be downloaded from Play Store.
Supported Devices are Following
Google Pixel, Pixel XL, Pixel 2, Pixel 2 XL
Samsung Galaxy S8 (SM-G950U, SM-G950N, SM-G950F, SM-G950FD, SM-G950W, SM-G950U1)
Some of the different in Preview 1 and 2
When another app opens in preview 1 it can be closed but preview 2 that can be handle(Example In coming call)
Display Rotation is auto handle in preview 2 (For Developers some cdes can be changed)
OpenGL is low level API So Advance Integration is some tricky for basic developers.
Future Enhancement
All of the basic functionality an be handle in 1.0 (like as AR Kit)
is it required to install the arcore-preview.apk to be able to run this ARCore app ?
ARCore is no longer in developer preview as of the Feb. 23rd, 2018 announcement of ARCore 1.0. The ARCore service is updated via the Play Store.
Why does the arcore-preview.apk appears with the name "Tango Core" in the applications list of my device ?
Now that ARCore is out of developer preview, Tango Core is obsolete / no longer relevant.
Will the Android OS directly include the ARCore (Tango Core ?) SDK in the future ?
ARCore is separate from the operating system, but supported devices typically come with a stub version pre-installed, which is then updated by the Play Store.
Links to the latest ARCore SDKs can be found on the downloads page:
developers.google.com/ar/develop/downloads
Will all the devices be compatible with ARCore ? (not just the S8 and a few devices...)
The list of supported ARCore devices (iOS and Android) is regularly updated. The official list is maintained as part of the developer documentation:
developers.google.com/ar/discover/supported-devices

Categories

Resources