Tag Archives: Cognitive Services

Using Cognitive Computing to Humanize Computer Interaction

Using Cognitive Computing to Humanize Computer Interaction

Cognitive InteractionEvery so often there is a fundamental shift in how we interact with “machines”. The era of cognitive computing is about to trigger a new shift.

The background

It is easy to forget how far input devices have evolved since the first automated computing devices were introduced just over a century ago. Today we are all used to touching, swiping and pinching using our fingers, on the screens in order to interact with machines.

Computer and MouseThis move to touch was a radical shift from typing on a computer keyboard or using a mouse (more recent), which was the norm, since the first automated computing devices were introduced just over a century ago.

 

ITouchscreent is pretty amazing to think that today we use touch to interact with machines daily. We rarely give that a second thought. Touch has undoubtedly augmented existing interaction models and opened new possibilities. There are now many things where touch is simply the best method of interacting with a machine.

Despite the innovation it is a fact that we have still not been able to really humanize the experience of working with computers or machines.

Continue reading Using Cognitive Computing to Humanize Computer Interaction

Deep Learning – What is it and why does it matter?

Deep Learning – what on earth does that mean?

Title ImageHave you ever wondered just what this phrase Deep Learning is referring to and why it matters? If so then this post is for you!

In my last post, I demystified a variety of buzzwords, and explained that Deep Learning is a subset of Machine Learning. This post explores the world of deep learning for non-mathematicians (just like myself). In doing so it:

  • Touches on convolutional neural networks;
  • Explains the impact Deep Learning is having on Cognitive Computing;
  • Outlines a few examples of Cognitive Computing (Deep Learning) in action.

Starting with Artificial Neural Networks

To understand Deep Learning, you must first understand a little about Artificial Neural Networks. Don’t worry – as I am not a data scientists I will not try to describe the mathematics behind it all. That means no talk beyond this sentence of weighting, activation functions and more.

Deep Learning normally revolves around the use of Artificial Neural Networks with more than 1 hidden layers. More on what a hidden layer is shortly.  The theory is that the more hidden layers you have the more you can isolate specific regions of data to classify things.

Continue reading Deep Learning – What is it and why does it matter?

The Voice-Controlled, Face Recognizing Drone Journey – Last Installment

Introduction to the Drone Journey

Final Installment

This post is the eleventh, and final, post in documenting the steps I went through on my journey to build an autonomous, voice-controlled, face recognizing drone. There are 10 other posts building up to this one which you can find at the end of this post.

Focus of this post

In this post I will share a video of the complete end-to-end demo and share details of the architecture which sits behind it. I will also share information on what I bought/used to bring this all together and relist all the different software, services and node packages in a single place.

Pulling It All Together

A lot of what we have been doing with this project is humanizing the way we communicate with machines/computers/things. That means talking and observing to drive intelligent interaction rather than using a mouse, keyboard or touch screen.

Our Autonomous Voice-Controlled, Face Recognizing, Drone is a smart drone which showcases, albeit crudely, how interaction with services filled with intelligence is going to evolve. It highlights the importance of cognitive services to the success of organizations in the future.

So with that said take a look at the entire end to end demo in the video below.

Continue reading The Voice-Controlled, Face Recognizing Drone Journey – Last Installment

The Voice-Controlled, Face Recognizing, Drone Journey – Part 6

Introduction to the Drone Journey

Face Recognition

This post is the seventh post in documenting the steps I went through on my journey to build an autonomous, voice-controlled, face recognizing drone. There are 6 other posts building up to this one which you can find at the end of this post.

Focus of this post

In this post I am going to pick-up where we left off and look at :

  • How to use the Microsoft Cognitive Services Face API to recognize a specific face. Specifically we will explore the face.identify approach.
  • How to build the identify approach into your DroneWebServer.js file such that the drone will land when it sees a named person.

My issues

I have to admit to facing quite some challenges getting face.identify to work. Using the face.identify capability requires a large number of things to be completed, in a very specific order, before it will work.

Node.js does not make doing things in a specific order easy without nested functions, callbacks and other things.  The truth is that I wasted a large number of hours before I realized that the asynchronous nature of node.js was a major source of many of  the issues I was  running into rather than me misusing the Cognitive Services APIs o any issue with the APIs themselves.

I also found that the online examples sometimes do not really give you the step by step help you might need. this looked to mostly be the case in the Node.JS world as other programming languages  seemed much more comprehensive. In the node.js world you essentially get the code to look at and try to understand which does not help with “ordering” issues.

When you add to that it is entirely possible to create things, people for example, with the same name multiple times (without realizing it) you can see where my issues came from.

I did speak with Lukas again at this stage. He told me that he set up his target faces using the SDK console rather than through code so I hit a dead end there as I was determined to try avoid that (I must admit I thought about it ;)..).

This is where my first outreach to someone at Microsoft came. I contacted Chris Thrasher who very kindly sent me some code samples he had worked on. He too found the challenge of things not being called in order which he solved using the “bluebird” package.

Thanks to his pointer and his sample code I identified a spot I was not doing something right which allowed me to move forwards.  I want to be sure to say thanks to Chris because without his help I would have stopped at face.similar.

A warning: This is a monster blog post. I decided to put it all in one rather than break it up. Grab a coffee, give yourself sometime and enjoy the ride!

Continue reading The Voice-Controlled, Face Recognizing, Drone Journey – Part 6

The Voice-Controlled, Face Recognizing, Drone Journey – Part 5

Introduction to the Drone Journey

Part 5

This post is the sixth post in documenting the steps I went through on my journey to build an autonomous, voice-controlled, face recognizing drone. There are 5 other posts building up to this one which you can find at the end of this post.

Focus of this post

In this post I am going to pick-up where we left off and look at :

  • How we can make use of the Microsoft Cognitive Services Face API to recognize a specific face.  We will explore one of the approaches to doing that which reflects the journey I went through in this blog and the next blog will look at another approach.

Continue reading The Voice-Controlled, Face Recognizing, Drone Journey – Part 5