(Music) Just a quick overview of Watson versus OpenCV before I jumped into each of them in detail. Watson, as you may have heard of it, it's actually not a single entity, it's not a super computer, it's not just one thing, it's actually a collection of things. We've also made Watson available to everyone through a set of Watson APIs; one of those APIs is called Watson Visual Recognition, which allows you to do some facial recognition, some object classification all through instead of APIs, and it's very well documented as well. It comes with these pre-packaged models, which makes it very easy for anyone to get started with, and you can create custom classifiers as well. If you want to train your own models, all you have to do is have your own images uploaded to Watson, have it figured out for you and it can train that custom classifier for you and you can test it out yourself. We'll be trying that out today as well. Watson Visual Recognition, because it's an API service, I wouldn't quite recommend it for real-time videos or real-time facial detection or recognition. But otherwise, it's certainly scalable, and of course, there is some cost after a certain free trial limits as well. OpenCV, on the other hand, is an open source, of course, Python package, and it comes with, of course, a set number of pre-packaged models. It can also create custom classifiers like Watson, but it's quite a bit more difficult. In fact, as we could probably all tell from just the beginning of the session, installing OpenCV is a difficulty in itself. With OpenCV, locally, you can certainly handle real-time videos as long as you can figure how to process and speed up your code. But there is a learning curve, so with OpenCV, there's a number of tutorials out there, but it can be a little bit tricky to learn. If you're really interested in jumping right into visual recognition, object classification, Watson is a great start, if you want to follow that up with some more customizability then maybe you can look into OpenCV, and of course, OpenCV, because of its open source nature, there are some bugs, but it's free. Let's begin with Watson; Watson, as I mentioned, as many of you have probably heard of, one is can have a jeopardy contest against Ken Jennings and Brad, I don't remember his last name. Watson, without using any connection to the Internet, was able to answer a lot of questions. This generated a lot of hype around Watson and perhaps give impression that Watson was this one thing, this one entity, and it really isn't. Its collection of things, it's applied in many different industries, from health care to banking to insurance. Some of these capabilities of Watson had been made available to everyone through these Watson API services. You can create chatbots with Watson, you can use APIs for text to speech or speech to texts, we can see something to Watson and Watson can transcribe that for you or the reverse. It can help you translate some text, determine the personality of a text as well and all these ones, the one that will focus on tonight is Visual Recognition. This is what Visual Recognition on Watson looks like, this is the tool, this is the GUI, this is the easy way to use the Watson Visual Recognition, which I think is a great way to get started just to understand how Watson Visual Recognition works. Here we have this tool, this is what you would start off with, if you created your own, free instance, you have a default classifier, you have your food classifier, and you have your face detection classifier. These are all pre-trained, they've been trained on millions of images already on both positive and negative images, these are pre-trained, and if you give it an image, you simply drag and drop an image into Watson. Here I found an image of a tank, trying to challenge Watson and see if it could identify properly and it determines that it's an armored vehicle to vehicle, panzer or tank, ultramarine color, army tank, and it also shows you that it's confidence scores as well. So that's pretty neat, that's a generic object classification thing. For food, you can upload images of sushi, of pasta, of cake, and it can also identify that without understanding or without giving any labels prior. It's able to identify this as a california roll or a salmon roll with some level of confidence. Then there's also this little button at the very top called create classifier, which allows you to create your own custom classifiers. With create classifier, it's pretty simple, the concept, what you do is you can upload images, these images can be in zip files for each class that you want to create a custom classifier around. Let's say you have some images around apples, and you have images of bananas, and you have images of pears, you can upload that to this custom classifier called fruits classifier, and Watson can learn to differentiate between apples, bananas and pears. It can also learn the negative examples that you may want to upload. For example, vegetables, many of them of course, look like fruits or fruits look like vegetables, but you don't want vegetables to be classified as fruits. You can upload images of vegetables so that when you end up submitting a vegetable, Watson will know that this is actually a vegetable and not a fruit. With Watson, you can also update your custom classifier as well, if you have more images of apples, you can of course update and add more images to that apple's class, so becomes smarter over time. If you have other classes like, let's say now we want to add oranges, we can add oranges as a separate class, and now it can learn to identify oranges, whereas before it would not have been able to do so. We can also add in cheese, for example, as a negative example, if someone uploads an image of a cheese, it would be identified as not a fruit. This is very simple explanation of how the Visual Recognition service works. First, at the very bottom left hand corner, you see prepared training data, so these are your images of the apples and oranges and so on. Then you use that, you upload that to Watson, and Watson will train and classify this custom classifier for you. Then in the middle, you bring in these images that you want to be classified, and as long as Watson has trained sufficiently on your images, you will be able to see results and hopefully it will classify these images appropriately. (Music)