Code Monkey home page Code Monkey logo

ibm / ar-resume-with-visual-recognition Goto Github PK

View Code? Open in Web Editor NEW
73.0 19.0 26.0 144.51 MB

An augmented reality based résumé with Face recognition. The iOS app recognizes the face and presents you with the AR view that contains 3D mock face and details of your resume.

Home Page: https://developer.ibm.com/patterns/create-an-augmented-reality-application-with-facial-detection/

License: Apache License 2.0

Ruby 2.10% Swift 97.90%
augmented-reality swift face-recognition ibm-watson ibm-visual-recognition cloudant-nosql-database ios11 arkit ibmcode

ar-resume-with-visual-recognition's Introduction

WARNING: This repository is no longer maintained ⚠️

This repository will not be updated. The repository will be kept available in read-only mode.

Read this in other languages: **.

Use Watson Visual Recognition and Core ML to create an Augmented Reality based résumé

The easiest way to find and connect to people around the world is through social media apps like Facebook, Twitter and LinkedIn. These, however, only provide text based search capabilities. However, with the recently announced release of the iOS ARKit toolkit, search is now possible using facial recognition. Combining iOS face recognition using Vision API, classification using IBM Visual Recognition, and person identification using classified image and data, one can build an app to search faces and identify them. One of the use cases is to build a Augmented Reality based résumé using visual recognition.

The main purpose of this code pattern is to demonstrate how to identify a person and his details using Augmented Reality and Visual Recognition. The iOS app recognizes the face and presents you with the AR view that displays a résumé of the person in the camera view. The app classifies a person face with Watson Visual Recognition and Core ML. The images are classified offline using a deep neural network that is trained by Visual Recognition.

After completing this code pattern a user will know how to:

  • Configure ARKit
  • Use the iOS Vision module
  • Create a Swift iOS application that uses the Watson Swift SDK
  • Classify images with Watson Visual Recognition and Core ML

Flow

ARResume Architecture

  1. User opens the app on their mobile
  2. A face is detected using the iOS Vision module
  3. An image of the face is sent to Watson Visual Recognition to be classified
  4. The information from the JSON database related to the user is placed in front of the original person's face in the mobile camera view

Included Components

  • ARKit: ARKit is an augmented reality framework for iOS applications.
  • Watson Visual Recognition: Visual Recognition understands the contents of images - visual concepts tag the image, find human faces, approximate age and gender, and find similar images in a collection.
  • Core ML: With Core ML, you can integrate trained machine learning models into your app.

Technologies

  • Artificial Intelligence: Artificial intelligence can be applied to disparate solution spaces to deliver disruptive technologies.
  • Mobile: Systems of engagement are increasingly using mobile technology as the platform for delivery.

Watch the Video

Steps

As an alternative to the steps below, you can create this project as a starter kit on IBM Cloud, which automatically provisions required services, and injects service credentials into a custom fork of this pattern.

  1. At a command line, clone this repo:
git clone https://github.com/IBM/ar-resume-with-visual-recognition
  1. Log into IBM Cloud account and create a Watson Visual Recognition service. Create a set of credentials and identify your API key.

  2. When the app loads, it also loads 3 Core ML models which is bundled part of the app. The models were trained using IBM Watson Visual Recognition Tool and downloaded as Core ML model.

To create a new classifier use the Watson Visual Recognition tool. A classifier will train the visual recognition service, it will be able to recognize different images of the same person. Use at least ten images of your head shot and also create a negative data set by using headshots that are not your own.

  1. A JSON file UserInfo.json is used to store the information about the user. Its indexed by classification identifier. You need to have an entry in this file for any new user that you have classified in visual recognition service.

  2. Go to ios_swift directory and open the project using Xcode.

  3. Create a ResumeARStarter/BMSCredentials.plist in the project and replace the credentials. The plist file looks like below:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>visualrecognitionApi_key</key>
	<string>VR_API_KEY</string>
	<key>cloudantUrl</key>
	<string>CLOUDANT_URL</string>
</dict>
</plist>
  1. At a command line, run pod install to install the Watson SDK and other dependencies. Pod Install Output

  2. Once the previous steps are complete go back to Xcode and run the application by clicking the Build and Run menu options. Xcode Build and Run

NOTE: The training in Watson Visual Recognition might take couple of minutes. If the status is in training, then the AR will show Training in progress in your AR view. You can check the status of your classifier by using following curl command:

curl "https://gateway-a.watsonplatform.net/visual-recognition/api/v3/classifiers?api_key={API_KEY}&verbose=true&version=2016-05-20"

Replace the API_KEY with the Watson Visual Recognition api key.

  1. To test you can use the test images provided in TestImages folder.

Sample Output

| | |

Learn more

  • Artificial Intelligence Code Patterns: Enjoyed this Code Pattern? Check out our other AI Code Patterns.
  • AI and Data Code Pattern Playlist: Bookmark our playlist with all of our Code Pattern videos
  • With Watson: Want to take your Watson app to the next level? Looking to utilize Watson Brand assets? Join the With Watson program to leverage exclusive brand, marketing, and tech resources to amplify and accelerate your Watson embedded commercial solution.
  • Offline image classification using Watson Visual Recognition and Core ML Visual Recognition Example

Troubleshooting

  • In order to start from scratch you need to delete the Watson Visual Recognition trained models, delete the data from the Cloudant database and delete the app to delete downloaded models.

Links

License

This code pattern is licensed under the Apache Software License, Version 2. Separate third party code objects invoked within this code pattern are licensed by their respective providers pursuant to their own separate licenses. Contributions are subject to the Developer Certificate of Origin, Version 1.1 (DCO) and the Apache Software License, Version 2.

Apache Software License (ASL) FAQ

ar-resume-with-visual-recognition's People

Contributors

dolph avatar emmatucker15 avatar imgbotapp avatar kant avatar ljbennett62 avatar markstur avatar rhagarty avatar sanjeevghimire avatar scottdangelo avatar stevemart avatar tqtran7 avatar wwalisa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ar-resume-with-visual-recognition's Issues

Adding new classifiers

How do I use my own images to detect? I want to use my own images as data but it isnt fully explained how to do so. Could you help with that? Im not sure how to go about it

Sample image zips have been removed

The sample image data for building the model has been removed from the repository. The readme still references these packages in step 3:

When the app loads, the app will create 3 classifiers for each of the zip files ResumeAR/sanjeev.zip, ResumeAR/steve.zip and ResumeAR/scott.zip.

If users are no longer supposed to use these packages, we should remove the links to them from the readme and provide somewhere else to get sample data from.

Credentials.CLOUDANT_URL_CREATE

In the code, you are calling "Credentials.CLOUDANT_URL_CREATE" in CloudRESTCall which is not referred in Credentials file.

Can we use "Credentials.CLOUDANT"

Upgrade Watson SDK to 0.37.0

A semver issue in a dependecy has broken all projects using the Watson SDK before release 0.36.0. Please upgrade to version 0.37.0 to ensure dependency resolution will work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.