Check whether a photo is of a bird.
Check whether a photo is of a bird.
For instance could an algorithm conclusively identify the birds in all of these pictures without having too many false positives?
https://ak3.picdn.net/shutterstock/videos/6087611/thumb/1.jp...
http://www.hippoquotes.com/img/impact-of-nature-quotes-in-fr...
http://www.birdsasart.com/baacom/wp-content/gallery/cache/17...
https://vztravels.files.wordpress.com/2014/05/img_1390.jpg
http://www.zastavki.com/pictures/1920x1200/2011/Animals_Bird...
This is not a rhetorical question by the way, I genuinely don't know the state of the art in this field. If it's indeed possible to do that today I'll be extremely impressed.
Convert string:"this small bird has a pink breast and crown, and black primaries and secondaries." into a photo.
If you wanted a general algorithm working on non-curated data (like tagging facebook photos for instance) I'm sure it would be significantly harder.
It's only ~50% accuracy, but the photos are terrible. Much worse than Facebook pics.
OTOH, this is classification into hundreds of classes, not millions like in the case of FB face recognition. (Although of course that can use the connectivity graph as a filter on that too).
The research group I am part of, Salesforce Research (formerly MetaMind), have a model that does this "accidentally" - and there's even an example image of a bird[3]! The model is only meant to provide a caption for an image, not to segment the image into the various objects, but learns to "focus" on the bird as part of describing the image. For those particularly interested, check out the paper "Knowing When to Look: Adaptive Attention via A Visual Sentinel for Image Captioning"[5].
Systems made specifically to segment an image into objects would obviously do far better. For an example of that, check out "CRF as RNN - Semantic Image Segmentation Live Demo"[4]. There are many more systems of this style floating about.
Human experts can get enough clues from the bird shape and the context to do that in the sample photos. I doubt your captioning system can.
This is a good example of a standard problem in ML - underestimating the complexity of the problem domain.
You could argue that your system only needs to do the simpler task to be useful, and that's likely true. But if the goal is to approach human expert levels of classification, it needs to improve by at least a few levels.
I suspect getting it there would run into some interesting performance constraints, and possibly some theoretical issues too.
These are way better than anything a non-expert human can do. For example, it can distinguish between the Rhinoceros Auklet and the Parakeet Auklet.
I'm not sure what expert performance is, but around 94% is where humans top out on most tasks.
Also, the parent poster knows what they are talking about: https://www.semanticscholar.org/author/Stephen-Merity/337544...
For example if we could take a photo of Noah's Ark loading up every animal?
Do you just loop through each NN you have on each species?
There's also image segmentation as another poster has pointed to.
In the case of FB face tagging, they'd have learn an embedding space for faces, and when a new image comes in they'd place it in the embedding space along with all the person's connections and find the nearest neighbors.
See https://arxiv.org/abs/1503.03832 or the implementation https://cmusatyalab.github.io/openface/
More importantly, the progress that has been made in recent years actually builds very heavily on work since the early 1990s, so not only is it not complete, what has been achieved took a great deal longer than 5 years.
Now that we are in the range of having the correct hardware the whole "it's taking decades issue" will go away.
Is there a way to know the date (1425) was released ?
No, it is because estimating software tasks is difficult, the penalty for underestimating is that people think you are dishonest/flakey, and there isn't anywhere to get an education in how to do it well. The default advice given to junior engineers is therefore: "take your intuition and triple it." I hate that this is the state of the industry. My interactions around estimation over the past 5 years since uni have literally made me feel nauseated and near fainting on multiple occasions. I would love for Joel or Klamezius or Uncle Bob or someone else to fix it and produce a good course on how to create estimates.
Probably the best your going get is the book "Software Estimation: Demystifying the Black Art "
Even applying those techniques you get it wrong.
Most experienced software companies have adopted agile, and accept reductions in scope to meet deadlines as something that happens.
Of course, all this leads to bad blood between techies and business side: how long will it take? -> probably about 3 weeks, but this requires using a library we haven't used before, so in the worst case even 2 months -> what? so long? get it done in 4 days, this is required the next week -> no, that's not really possible -> make it happen -> it happens and it either sucks when it's delivered at all, so the deadline gets extended anyway to iron out all the bugs or it causes lots of problems in the future.
"OK you have implemented it as requested, but finally the customer does not like it, it needs to be slightly different. Can you do it quickly?"
Sometimes it is easy to adapt, sometimes next to impossible.