The vital role of CognitiveJ in Machine Learning
Machine learning may sound futuristic, but it’s not. Speech recognition systems such as Cortana or Search in e-commerce systems have already showed us the benefits and challenges that go hand in hand with these systems. In our machine learning series we will introduce you to several tools that make all this possible. First stop: CognitiveJ.
This article is part of a Machine Learning series. Our first expert is Ian Kelly, a highly experienced and passionate technologist with over 12 years of experience. In this article, he talks about the machine learning library CognitiveJ.
CognitiveJ —What’s under the hood
CognitiveJ is a Java library which gives developers access to a rich collection of powerful image processing features such as facial detection, gender and age identification and person recognition.
CognitiveJ has been written entirely in Java and at the heart uses Microsoft’s Project Oxford services, which are constantly being evolved by some of the leading and smartest researchers in the field. The use cases for CognitiveJ are vast and varied; from photo grouping, recognizing what people are within images to retrieving emotions from facial images. Personally, I’m working on a Spring Security extension that uses CognitiveJ to provide multi-factor authentication from an Android app which uses the on-device camera to capture an image of the person holding the phone and validate that the person is who they say that they are – this would not be possible without CogntiveJ.
It was written with the intention that it is extremely easy to work with and it takes care of the complexities when interacting with the backend ML services. The following few lines will load an image from a URL and highlight any face within the image and display what their dominant facial emotions is (happy/sad/angry etc).
FaceScenarios faceScenarios = new FaceScenarios(getProperty("azure.cognitive.subscriptionKey"), getProperty("azure.cognitive.emotion.subscriptionKey")); ImageOverlayBuilder.builder(IMAGE_URL) .outlineDominantEmotionsOnImage(faceScenarios .findEmotionFaces(IMAGE_URL), RectangleTextPosition.BOTTOM_OF).launchViewer();
Plans for CognitiveJ
I would urge people to get in touch and tell me what they like and what can be improved or changed. In the short term, I’m looking into the ability to integrate a number of the audio analytical services that could give developers rich feature sets such as recognizing voices from within sound streams and actually allow you to be authenticated from the footprints of your voice – just think about speaking to a login page in your browser, or even to your house’s front door to gain access – pretty exciting stuff!
I’ve been researching and working with Machine Learning technologies while still at university and what excites me is the evolutionary speed that ML tools are evolving and it is, in my view, the most exciting discipline of Computer Science at the moment. ML technologies are becoming part of the fabric of our everyday lives which is very exciting but can be quite unnerving. Complex computational problems and have tested leading researchers for decades are now being solved with ease using ML and AI approaches with seemingly no limits.
Will machines someday take over the world?
I believe it is not a question of if, but a question of when. Machines work in an analytical fashion and look exclusively at the datasets presented to them to make informed choices and if there is such a time in the future that machines capture datasets which show us humans for what we really are then it only makes sense that they will take control to rectify this ‘anomaly’. This would be no different than a modern car today overriding user controls to stop the car before hitting a hazard but just on a much much larger scale and with detrimental results for the human race!
You would like to learn more about machine learning?
I strongly recommend reading the posts and papers from the people that brought use Project Oxford and Cortana and also check out the DeepMind papers as these give us insight into new trends in the industry. From a movie perspective, I think iRobot is one film I could see easily come apparent and indeed we are seeing the seeds of that happening today.
We asked Ian Kelly to finish the following sentences:
In 50 years’ time machine learning will be ubiquitous in everyday tasks, events and interactions and will give us great power and potential.
If machines become more intelligent than humans then we must work on our diplomacy skills and hope they don’t make us redundant.
Compared to a human being, a machine will never hold self-doubt, worry about what others think nor make decisions based on emotions such as envy, lust or greed.
Without the help of machine learning, mankind would never solve the great challenges we face today, such as diagnosing & curing diseases or help reduce environmental destruction to help solving more everyday problems such as having public transport stick to a schedule or accurately predicating weather patterns down the second.