Codementor Events

Artificial intelligence?

Published Apr 14, 2019
Artificial intelligence?

A few years ago, any Startup that did not use The Cloud was considered an archaic project.

Around there in 2014 I affirmed in an interview for the newspaper CaracasDigital: The mobile and the Cloud are the future. But the reality is different. Of course I was wrong and that is that the cloud and the mobile were the present at that moment. We all make mistakes, maybe I wanted to express that it was time that those projects that did not use these technologies had to start doing it in order to survive in the future. They say that history repeats itself, and here we are again. I remember when I managed to take the flag of my country to the final of Microsoft Imagine Cup, using a technology almost unknown to me, can you guess what? Yes, the answer is artificial intelligence.

Artificial intelligence?

In one of my first Computer Organization classes we saw the techniques for storing numbers in a 32-bit and 64-bit architecture, a friend commented that each time the computer seemed less intelligent. - Because they are the most useless object without the proper programming of a human, my teacher replied.

Artificial intelligence seeks to provide cognitive functions to computers. It's a fairly large field in which I do not even consider myself a novice, maybe an amateur who loves technology. The passion was the one that took me with 17 years to a private interview with Steven Guggenheimer who is now a key player in the artificial intelligence division of Microsoft. And it was at the offices of this company where I had the honor to receive compliments from Steve about my Windows Phone application.

1*94CKWj7DTygS9lRxTOzHuQ.jpeg

The concept was simple, I needed an application to participate in the ImagineCup, after chatting with a friend about how good it was to control the food we consumed, this idea came up, a Shazam for food that with only a photo could give the user nutritional values , recipes and more. It was a challenge and the first version could only differentiate an apple from an orange. Yes, something Not Hot Dog type of the famous Sillicon Valley series.

Remember that artificial intelligence has many fields and vision is one of them. But also the classification, the first step was to apply some algorithm that would allow me to obtain the characteristics of the image, I think I used Surf at that time. OpenCV allowed me to save those features, these were my Samples, I taught my application to differentiate between an apple and a pizza. I needed a lot of pictures of apples and Pizza, this is known as Supervised Learning. And indeed this worked much better.

The Results

https://youtu.be/fmvQNjcg9s0

History repeats itself and now it is Artificial Intelligence, and I do not want to make a mistake this time, so I will affirm that Artificial Intelligence is the present and that any Startup that does not use it will have a great disadvantage. Google affirmed it, becoming an AI-First company. And you no longer need to be an expert to be able to use the benefits of artificial intelligence.

Selfy

1*lI9Vk-Lvwu_tU6zlpyOkyA.png

I wanted to learn more and that is why I put my hands on the fire trying to revive an application that I created a long time ago, a social network to share selfies whose distribution was exclusively for Windows Phone. (That was the title of the articles where it was highlighted but it was also a suicide)

This time I started programming in Java using Android Studio. And continuing with the concept of the photos I wanted to add some more dynamics to the application:

Selfy is a social network to share photos based on challenges, there are three types of challenges and to fulfill them you simply have to upload a photo.

Duo

1*ebwEiuHhrYc_cMRFAxOpbg.png

These challenges are that you must take a picture with another person, usually it is usually with whom you have more interactions or Facebook friends.

Basically for this you must scan your face the first time you use the application, the faces can be detected using various techniques: Histogram of Oriented Gradients or Haar Cascades. After detecting it, it is necessary to obtain the characteristics to classify it. In this case, Eigenfaces is what we are looking for. However I did not implement this on my own but I plan to do it. I used Microsoft Cognitive Services, an API that allows you to consume artificial intelligence algorithms, from OCR to Face Detection and Face Recognition. If a user has Duo challenges activated then in each photo he uploads, the faces will be detected and if there are two and only two faces, the recognition will be made, where of course the face of the person who uploaded the photo must appear. the other face must belong to the person who was part of the challenge created by the system, say the friend.

Spots

1*F7FD2lhGg6M3wTgVqS3cJA.png

These challenges are simpler at the programming level, using the Foursquare API to get 'cool' sites, I have placed some markers there, so when you enter the application you will see those sites close to you and you are challenged to fulfill a Spot, You should basically go to the site and take a picture in that place. As you will suppose here there is no artificial intelligence, only a comparison between latitude and longitude.

Play

1*E4OsseDJ979bOuEo8AS8uw.png
Play, this type of challenge is my favorite and is the one that uses the purest recognition of images, through a series of libraries and APIs I have managed to put together something great and interesting. I have not used Microsoft Cognitive Services because I needed more detailed information about the objects detected in the photos. Play challenges are that you must take photos with specific objects or outfits to be able to fulfill them.

For example to meet the #DogChallenge you must take a picture with your dog. Through a virtual machine hosted in Azure, an API that I programmed in Python using Django and Keras powered by TensorFlow, I have managed to perfectly recognize hundreds of objects.

1*hudfESeUA22nMd60gamsmQ.jpeg

The application is now available in the store, you can access it from:
Google Play
You can learn more about the project on the website:
Selfy.net

Conclusion

The truth is that today I have a real job using OpenCV in a company that of course does not want to be left behind. I will continue to improve this personal project and anxious to see when the story will be repeated again where each Startup has to take a step or be left behind.

---- Jeff

Discover and read more posts from Jefferson Licet
get started