Mixed reality in Android device using Unity(w/ OpenCV?) - opencv

I'm a fourth year student currently doing my thesis project(Noob in programming). What I want to ask is that is it possible to create a mobile app in Unity that has the following specifications:
- Mixed Reality
- Hand Tracking
- has an A.I. (Image comparison)
I've done some research but all I've saw is only in AR. If it is possible what course of action should I take?

Yes, it's possible.
I suggest you to use:
ARStuff:
Vuforia, EasyAR or ARCore/ARKit (depending of your mobile target).
HandTracking:
One of the best SDK's I try about HandTracking with AR is Manomotion (https://www.manomotion.com/)
Image Comparison:
As you suggest, OpenCV is a good choice, there are some "bridges" to use OpenCV on Unity Store.

Related

Effort for building an Augmented Reality SDK with OpenCV

Our company is planning to start building some AR apps for Android and iOS. As the first step we need to decide whether we are going to use a Opensource SDK like ARToolKit or to go for a commercialized product like Vuforia, Wikitude, CraftAR, KudanAR etc or whether we should start writing our own AR sdk based on libraries like OpenCV/OpenGL etc..
I have read many articles and comparisons about different SDKs available and have a good idea about what each of them can do and how much they are going to cost. e.g.
http://socialcompare.com/en/comparison/augmented-reality-sdks
https://www.linkedin.com/pulse/dozens-more-augmented-reality-sdks-than-you-think-here-offermann
In the past we have used Vuforia and we have it at the top of our list. But the main issue is the pricing.
So I would like to know if any of you have written or tried to build your own AR sdk based on OpenCV and what type of an effort it will be. To support features like image and 3D object tracking and augmenting 2D and 3D objects. And need to support iOS and Android devices.
This Augmented Reality SDK with OpenCV has some basic guidelines on how to start.
Mainly what I would like to know is if a software Engineer with about 5+ years of good programming skills try to do this, how much of an effort will that be? Will it be like 1 month work or a 6 months work or even with 12 months of work will it be difficult to get closer to what Vuforia SDK can does?

AR ODG application for conference calls

I'm researching AR frameworks in order to select the best option for developing conference call/ meeting application for ODG glasses.
I got only a few directions for selecting a framework:
Performance of video streaming (capturing and encoding) must be watched closely to avoid overheating and excessive power consumption,
Should support extended tracking and
Video capturing should not be frame by frame.
I have no experience with AR field in general, and I would really appreciate if you can let me know your opinion or to give me some guidance on how to choose the best-fitted framework.
For ODG, you should use Vuforia according software details :
Qualcomm Technologies Inc.'s VuforiaTM SDK for Digital Eyewear
Vuforia supports extended tracking. According to what you are asking, you'll need more than just an AR SDK. You'll need to identify what you want exactly. Do you want an application that let the user see with who he's talking or do you want some holographic stuff? Depending on what you want, maybe smartglasses isn't what you need and at this point you should try to learn more about the differents SDK out there. I suggest you to look at this and that.

Facial recognition iOS

I have to build an app to recognize person on photo and find if this person is stored in phone book. I made face detection, I know how to take photos from people stored in phone book but I stuck on recognizing if the person is the same..
I want to ask what would be the easiest way to do it - i saw that iOS 10 comes with facial recognition in Photos app - is there any API to use facial recognition in iOS 10?
or should I use Open CV?
Face detection can be performed natively, as you've already found out, but to identify the faces you'll have to use something like OpenCV as there's no API available to do this presently
There's some information about how OpenCV can be used to recognise faces here.
Information about how to use it with Xcode here.
I built something similar some years ago.
I would suggest you look into perceptual hashing as it's an easy and inexpensive way of matching images.
You can have a look at the documentation, but this way your app will work only on iOS 10 and future versions.
If you plan to support older iOS versions or make also an Android app go for OpenCV

Xcode (swift) vs Unity for isometric 2d mobile-apps - Performace, Package Size

Let's assume I want to develop an isometric 2D mobile-game such as Clash of Clans for example.
My main target would be iOS but of course Android would be nice, too (but not a must-have).
Now I have to decide to either program with Apples XCode (therefore Swift as a language, which I am already pretty familiar with), or develop my game with Unity3D (and therefore C# as a language, which I am also pretty familiar with).
Personally, I don't prefer one over the other.
So much for the set-up.
As I don't have any preferences, I'd like to choose the one that offers the most benefits for my 2.5D game to me.
The questions:
Is there a difference in getting an approval for the App-Store if you program in Swift, or use Unity; C#?
How big is the difference of the published package-size of the app between Unity and XCode?
Does my Unity-written app run as smoothly as my XCode-written app?
I hope you could help me with that.
If I missed some points there, feel free to criticize me and give me your opinions on it.
Greetings
Chriz
Is there a difference in getting an approval for the App-Store if you program in Swift, or use Unity; C#?
No, given this general comparison - there should be nothing here favoring or disallowing one over the other.
How big is the difference of the published package-size of the app between Unity and Xcode?
That is very hard to say. There will be added libraries for Unity inclusion whereas Apple would already have shared libraries apart of the OS - used by every app. Think shared libraries here - only Apple is permitted to do this. Not to be confused with the to be newly released iOS 9 'App Thinning'.
The larger weight will be media/images/bitmaps.
Does my Unity-written app run as smoothly as my XCode-written app?
Since they both end up using OpenGL, the end result should be the same or very similar. Obviously as the OS and device mature - if Unity doesn't leverage it, they could end up giving up performance advantages.
But... the flip side of being so tightly coupled with Swift/iOS/Apple, is you abandon your Android market - and if you are even considering it - I'd suggest Unity based on what you shared if there is a remote possibility you want to deploy to Android, desktops, *TV devices in the future.

How to start with Augmented reality to create my own framework (Not AR App)

I have been working Augmented Reality for quite a few months. I have used third party tools like Unity/Vuforia to create augmented reality applications for android.
I would like to create my own framework in which I will create my own AR apps. Can someone guide me to right tutorials/links to achieve my target. On a higher level, my plan is to create an application which can recognize multiple markers and match it with cloud stored models.
That seems like a massive undertaking: model recognition is not an easy task. I recommend looking at OpenCV (which has some standard algorithms you can use as a starting point) and then looking at a good computer vision book (e.g., Richard Szeliski's book or Hartley and Zisserman).
But you are going to run into a host of practical problems. Consider that systems like Vuforia provide camera calibration data for most Android devices, and it's hard to do computer vision without it. Then, of course, there's efficiently managing the whole pipeline which (again) companies like Qualcomm and Metaio invest huge amounts of $$ in.
I'm working on a project that does framemarker tracking and I've started exporting bits of it out to a project I'm calling OpenAR. Right now I'm in the process of pulling out unpublishable pieces and making Vuforia and the OpenCV versions of marker tracking interchangeable. You're certainly welcome to check out the work as it progresses. You can see videos of some of the early work on my YouTube channel.
The hard work is improving performance to be as good as Vuforia.

Resources