Blindsist – Assisting Visually Impaired People using IBM Bluemix Visual Recognition

This blog post will cover how I developed Blindsist app for Xhacknight.

The app was developed using Xamarin.Forms, targeting 3 major platforms (iOS, Android and Windows Phone) same time.

Blindsist is a simple one page application. Objective of the application is taking a photo using Smartphone, The photo is then uploaded to IBM Bluemix using REST Api. IBM Bluemix returns the data in Json format, which will be parsed and spoken out using Native Text to Speech services.

Open a new Xamarin.Forms Portable Class Project.

Right click on the Project Blindsist (Portable), click Add new Item, Select Forms Xaml Page, name it ScanPage.xaml

Update the XAML content in ScanPage as below

What it basically does is create a Button Called “ScanButton” which on click trigger event handler called “ScanButtonClicked”.

Let us look to ScanPage.xaml.cs for C# code!

In the constructor ScanPage() write following Code.

For this to work, we have to add a awesome library developed by JamesMontemagno.

It can be found here https://www.nuget.org/packages/Xam.Plugins.TextToSpeech/

To install, right click project, Manage Nuget Package, Search for Xam.Plugins.TextToSpeech, install it in every individual projects.

So when the app starts up, It starts speaking introduction to visually impaired user.

Next is adding Button Clicked event. Just copy this code in your ScanPage.xaml.cs

Now right click your Portable class project, right click, add new item. Add new class file, name it Library.cs

Add following data members.

Now add a Member function GetImage() for Getting Image from Camera, The specialty of coming code is that it works in all 3 platforms with single code. Thanks to another library, which is available in Nuget. Search for Xam.Plugin.Media and install in every projects.

It will check whether Camera is available, if not available return a null object with error message embedded.

Else it will create a file, takes a photo from Camera and store as byte[] format, if file is OK, it returns the Image, with Image Url, and Image in byte[] format.

Now add a member function ProcessImage() to process the image by sending to Bluemix Watson Service.

Each line is commented for understanding what happens there. Atlast we get string bb with Json formatted data from IBM Bluemix with possible results in order of priority.

Now revisit ScanPage.xaml.cs, We have to add “GetPicture()” function on button click. Copy the following code.

Now string temp has the json data, we have to parse it to get the results. Add new class file called Classify.cs in PCL project.

Using http://json2csharp.com we can generate class required for parsing json data from IBM Bluemix service.

To parse json data, again there is a good library called NetwonSoft.Json, obtain it from Nuget, and add it to all projects.

Now we need a simple function to perform deserializing json data.

Create a static class Operations, and a function GetMatch()

Now back to ScanPage.xaml.cs, We have temp ready with Json string. Just pass it to Operations.GetMatch() to get the required data back. Add following codes to where you stopped earlier.

That’s all.. Try Building and running the project. If you face any errors it might be due to not adding Nuget Package mentioned in this post for all projects, or some other errors. Feel free to ask. Together we can build this project to perfection.

The project is in github, https://github.com/muhaym/Xamarin.Forms-Blind-Assist

Feel free to fork, modify, report errors, ask doubts and do whatever you want with the project for the sake of learning.

Please assist me to add Image Compression, because the image upload to Watson Service and getting response back is taking hell of time now.

 

IBM Bluemix & Xamarin Xhacknight 2.0 experiences!

Ooops… I know I am very late to write about my experience at the second Xhacknight conducted by Xamarin Enthusiast group Xhackers and IBM Bluemix.

Let me tell the long tale of our journey. If last time it was Faheem who motivated me to attend the event taking decision last minute, this time I was ready to go at the moment when Nish messaged me they are going to announce Xhacknight.

This time it was my duty to bring more members to the world of Xamarin and motivate them. So I asked my friends to come with me.

The best of my friends ‘geeks’ and ‘jokers’ joined us, Thanks Shabeeb, Farshan, Sabeer, Athul, Yoonus, Marzook for joining me! After all having lot of friends at Hackathons helps to keep awake and have fun whole night! Also we made new friend Yash from Bangalore who joined with us ‘Mallus’ for ultimate entertainment!

  Reached IKP Eden, the venue for Hacknight. I have no words to praise the venue, thanks IKP Management for providing us a wonderful and peaceful atmosphere to learn and hack. The event started exactly at 10:00 am with a Introduction to Xhacknight by none other than VidyaSagar, our friendly #gamedev who now works at IBM. Followed by Naveen Gupta, Head – Asia pacific Mobility group, IBM who introduced the range of IBM Services intended for developers. I was a firm believer that IBM always focused on their enterprise customers and did nothing for the normal developers out there. Naveen’s introduction corrected me! The part which excited me much was Ajay Chebbi’s ReImagine who works at IBM. The amount of energy in his presentation was high, the IronMan, Hololens and such stuff are not science fictions anymore, but reality. Introduction to Bluemix which covered what all services IBM Bluemix provides like Watson, Alchemy, Text to Speech, Speech to text, Personality Insights, Visual Recognition, etc. Complete Catalog of IBM Bluemix Service is here which was explained by Rajesh Jeyapaul. Next was Nish (Nishanth Anil), about whom I boast to my friends that he is one of the greatest Xamarin developer, and one who helps me always when I end up with errors in  my application.

His introduction to Xamarin and all its features was awesome and expectation given to my friends was met :D. Again VidyaSagar came up with Xhacknight’s challenges, Rules,the Rules & Code of conduct. We were split into three groups. We came up with an Idea, and got it approved by Nish and Vidyasagar. IMAG0937Assisting Visually impaired people to understand what is in front of them using IBM Bluemix Visual Recognition and Speaking out the result in order of priority was our idea. Started building the app, opted for Xamarin.Forms so that I can target all 3 platforms atIMAG0906 once, More detail on how I developed the app will be published in coming blog posts. Being awake for about 30 Hours, developing application, debugging with help of  Anubhav (one who helps me always), helping other hackers out there, and getting help from them, It was result time.  Nobody can forget the awesome food and drinks sponsored by DropKaffe  and others. Indeed the Redbull gave us energy to stay awake overnight!

Time to submit our app, presented our project to panel of judges out there.

It’s result time. Finger Crossed.

3rd prize goes to the CodeJunkie for his awesome IOT project.

2nd prize goes to none other than MY TEAM FANTACODE 🙂 Yea It was the awesome android phone One Plus One. Thanks Xhackers & IBM judging panel for selecting us.IMAG0952

1st prize goes to Match.AI, seriously it was a great project that nobody other than them can complete overnight.

I thank the awesome support team, who provided us Internet (Network Guy 😛 we named him) and rest of them for keeping all the hackers comfortable.`Looking forward for next Xhacknight!

 

Contest Winner Announcement

Hi,

Sorry for being late for announcement. Thanks for your great support, submitting Azure Screenshots. Hope you learned something from the process. Keep going, build great Cloud Solution.

I have selected the winner, completely on Random basis, with the help of Random.org.

The winner is Afis Moossa P (afismoosa-at-gmail-dot-com)

I will be contacting the winner by mail, Congrats!

 

 

Contest: Win Windows 8.1 Pro License (Students Only) – Azure Dreamspark Subscription

With few steps, you could win Windows 8.1 Pro (Yes Worth Rs 10,000) for student randomly selected from submission and a Azure subscription for get started with Microsoft Cloud Computing Solution.

So what you have to do is follow

Step 1: Create a Microsoft Account – Go to Outlook.com if you don’t have one.

Microsoft Account is one stop for your 15 GB Free Onedrive Cloud Space, Windows Store, Microsoft Azure, Xbox & even login to Windows Based device, so if you don’t have one, its time to create one.

Step 2: Start Utilizing Microsoft Virtual Academy.

Microsoft Virtual Academy is the best resource for beginners to develop some skills like Application development, Game development, learning C#, Javascript, etc. This step is not compulsory,  still it is best to utilize the free resource Microsoft provide to develop your skills.

Visit htp://www.microsoftvirtualacademy.com

Suggested Course to Complete:

Microsoft Azure Fundamentals: Websites

Microsoft Azure Fundamentals: Storage and Data

I will be blogging how to use Azure for hosting Websites, and for Mobile Services.

Step 3: Create a Dreamspark Subscription and Activate Azure

Detailed instructions on Creation of account & Activation of Azure Student Offer.

For a net- new user, the flow of activating your Azure Student Offer would be as follows: Create an account -> Get your student status verified -> Activate your account -> Avail the Azure Student offer.

  1. Visit the link here and click on ‘Create Account’ and create your Microsoft login credentials.
  2. After creating the login credentials, login to the site here, and click on ‘Verify your student status’
  3. Select the ‘I can provide documentation’ tab as shown below: azure1  Provide the requested details & get your academic status verified.
  4.  Once you get a confirmation email from the team, please click on the link provided in the email to activate your student account.  (In case you see any error in these step, Contact their support team for immediate activation, It takes upto 2-3 business day)
  5. Once the account is activated, you can activate your Azure account, by following the detailed instructions given here.

Step 4: Take a Screenshot and Mail me!

Login to your azure portal and take a screenshot like this.

To get the details, place your mouse over Your Name at right top corner.

RAShid

Mail the screenshot with your Name, College, and your education details (like course, year) to muhaymin – at – muhaym.in muhaym.in

LAST DATE FOR SUBMISSION IS 15th of September, Don’t wait for last date because dream spark activation takes more than 2-3 days. Follow me in twitter for more updates http://twitter.com/muhaym

I will select random submission as winner and will announce in this blog on 20th September after verification.

I will be blogging about Azure, using Azure Mobile Service in your apps in coming days. If any doubts feel free to ask in the comment section below.