25 comments

[ 3.0 ms ] story [ 40.9 ms ] thread
This demo by Saqib Shaikh (a visually impaired MSFT engineer) is an incredibly compelling use case of image annotation APIs.

I've done work with the Braille Institute in San Diego, and access to a device like this would truly be world-changing for any of the people there.

https://twitter.com/Microsoft/status/715234653938933761

I want this app! I guess it's still a research project though.
I watched that a few times, thanks for the share. Beautiful use of technology.
He mentions some smart glasses in that video, but says it kinda quickly and I can't ID them. Anyone know what they are? As a blind developer myself, I've pretty much been wanting to build this kind of app for a while. Even if facial recognition may not be good enough to identify someone accurately by name, for instance, just hearing "face, blue eyes, blond hair, male, 80% confidence" or something similar would give me a bunch of additional data points to identify someone when they say hello. I don't even know what color my own girlfriend's hair/eyes are. :P I'd love a set of these to develop my own apps with.

But this appears to blow all my ideas out of the water. I wonder how much work they had to do to obtain clean input (I.e. how many mis-identifications we didn't see.)

Edit: Ah, I guess it's these: http://www.pivothead.com/. SDK and dev kit pricing not available unless I fork over my details. If I have to ask how much it costs, I can't afford it.

The APIs look good. I have used Microsoft's search API for years and have had customers also use it. I like the business model of a few free calls per day, with a relatively low cost for more API calls. Things that are 100% free make me nervous because they are probably more likely to go away in the future.
Maybe this is nit-picky, but the use of "Cognitive" in the name seems odd. This service relies on applied maths (e.g., machine learning), not "cognition." I guess it was a marketing decision?
Its almost certainly a reaction to IBM which has been cackling about how everything is "cognitive" in their marketing of Watson.
Yep. As an IBMer (not working in a cognitive field), we started hearing the word "cognitive" a while ago and apparently it has caught on in the wider world. Now we're hearing clients asking for "cognitive" and the CTOs know the word, and all the trade magazines are going on about it.

It's not too different from "cloud" was when it launched. Sure, it's not anything more than a new approach to the same things we used to do, but with the marketing and the different mindset, we begin to see a shift in the IT landscape. Sure "cloud" just means "someone else's computer" but IT infrastructure looked a lot different before "cloud" really took off. Cognitive is supposed to be computers doing things they used to do, but in a more human-like fashion, taking human needs and wants into consideration.

If there's one thing IBM is assuredly good at, it's inventing new buzzwords.

The APIs perform cognitive tasks, like speech to text, identifying objects, and so forth. Yes, underlying it is applied math, but what they actually perform are things that (for the most part) only humans are cognitively capable of.
I disagree. Basic research in behavior analysis has shown that nonhuman animals can perform visual (and other sensory modalities) discrimination and categorization among a number of trained and untrained stimuli ([0] and [1] are just two examples). I don't think these APIs do anything that is uniquely human or "cognitive." Nonetheless, this API still has enormous value for developers and users. I'm not discounting that.

UPDATE:

0: http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1334394/pdf/jeab...

1: http://kops.uni-konstanz.de/bitstream/handle/123456789/20501...

Missing references [0] and [1].
Oops, I forgot to add them at the end--updated. Thanks.
Processing human language is definitely a human skill, and many of the image categorization tasks would be as well (while animals have great visual systems, they categorize differently than us, it's not clear if cats see "cars", for example).

In any case, the word "cognitive" is used as in "cognitive science",

https://en.wikipedia.org/wiki/Cognitive_science

I guess it's kind of a semantic argument. I stand corrected. It seems the culture accepts "cognitive" in AI according to the wikipedia link you provided. Although, I question the degree to which the use of "cognitive" in marketing materials contributed to this acceptance.

On the topic of "processing," it's very difficult (sometimes impossible) to know what humans or nonhumans are doing covertly when they "process" stimuli. Thus, I'm not sure how you can determine that "they [animals] categorize differently than us."

A dog that is trained to sit when his owner says, "sit" must be "processing human language" when the dog sits. Right? I know this is an oversimplified example, but I'm just making a point that calling things "cognitive" and referring to "processing" doesn't help explain what is really happening. Sometimes these terms obscure a description/explanation. Skinner [0] makes this point a lot better than me.

[0]: http://carboneclinic.com/portal/conferences/files/IESCUM%20D...

I think when it comes to cognitive ability of animals versus humans we are at the same stage as biology before Darwin - assuming hard boundaries that don't really exist.
Something I'm starting to realize with all these AI APIs is how difficult it is to evaluate and compare the results.

How do you know their algorithms are better than the competition? The marketing buzzwords are all there. "Powerful algorithms", "never seen anything comparable" etc.

The worst part is the algorithms might work well with certain data sets but fail miserably with others.

If you had an internal API as opposed to using an external one you'd have some sort of A/B or multi-armed testing in place to check if the model you've deployed is performing as expected. At this point you don't think about the theoretical best you could perform at for the said model without computing some sort of complexity measure. I assumed one would have to use a similar automated process for external APIs. I don't see why they have to be different per se.
So many of these will be replicated by free open source libraries. Thus I am not sure that most these services are that defensible in terms of pricing, if there is a premium over AWS base costs.
As time goes on libraries may not be the fundamental issue. Hardware, on the other hand, may become the decisive factor. You will just pay more and more in terms of the fraction of the cost that goes to energy consumption.
The links to the python notebooks fail.

Here in the emotion API, look for the link to the jupiter notebook on github https://www.microsoft.com/cognitive-services/en-us/emotion-a...

Here in the vision API, same thing-jupiter notebook is 404. https://www.microsoft.com/cognitive-services/en-us/face-api/...

I know, real coders use C++, C#, or objC. But I need to understand something before I code it.

Hey, I've signed up for a test account, and I'm trying out the Computer Vision API. However the three properties I'm most interested in (which are also featured on the example page [1] are not being returned (or documented!) for the actual SDK: "Description", "Tags" and "Celebrities".

Are these coming soon? I'd love to develop something with the Vision API, but I'd rather not continue until I know if / when my requests will indeed return these features.

Cheers & Thanks

[1] https://www.microsoft.com/cognitive-services/en-us/computer-...

I have a bittersweet feeling about all these APIs. On the positive side, this is something we can take and use, possibly saving ourselves tons of time on some routine tasks. On the negative side, this particular flavor of AI-as-a-service from a big company like Microsoft means that algorithms will be reduced to a black box which you don't really understand or control in any meaningful way.