From Wikipedia "In the field of artificial intelligence, the most difficult problems are informally known as AI-complete or AI-hard, implying that the difficulty of these computational problems is equivalent to that of solving the central artificial intelligence problem—making computers as intelligent as people, or strong AI. To call a problem AI-complete reflects an attitude that it would not be solved by a simple specific algorithm."

Also, in the same resource, it is noted that computer vision and natural language understanding are some of major AI-hard problems.

So, as a machine vision-related topic, is image annotation places in such a category?

  • $\begingroup$ Depends on the images. Some image categories, even trained "intelligent" humans have problems annotating with a given accuracy. Others image categories were solved by simple OCR years ago. $\endgroup$ – hotpaw2 Jan 5 '17 at 19:06

Well, yes and no. There are multiple factors, such as the level of annotation and the accuracy. If one requires human-level annotation performance on completely unknown scenes (with no prior information about context), and wants to annotate the images fully autonomously, without human intervention, then probably yes.

Image annotation generally involves describing the image in multi-fold ways: Predicting a saliency map, segmentation map, detecting objects, describing the action involved, reading present text, and relating all the informtation to one another forming the global context. Describing the image in words, sounds and other modalities is also an outcome of annotation. If the dataset is not restricted, this is a rather large domain to cover without having true intelligence.

However, if you could constrain the problem to annotating certain features, such as the type of bird in a scene (and not the entire surroundings), then you could design specific algorithms for solving this - you could also design specific neural network architectures that perform good specifically on this problem.

Currently, annotation is seen as a chicken-and-egg problem. To make the machines smarter, better annotations are needed. To make autonomous annotations more accurate, better machines are needed. Therefore, the first stage of the annotation typically involves a human, annotating the data. Then, the neural networks are trained iteratively, alternating between annotation and training. In other words, one network is trained on the dataset anontated by human beings. This network then annotates a larger dataset, with certain error of course. Then another network is trained on the output of the second network. This process is repeated until the performance saturates. Training and testing on a dataset annotated by a machine has certain regularization effect - machines learn to circumvent certain training errors and become robust to mis-annotations.

Last but not least, it is always a good idea to input as much prior as possible in the training and design the network in order to exploit the prior only during the training stage, not at prediction. Yet, such prior is not always at hand, making the full annotation close to AI-complete as you suggest.

  • $\begingroup$ Thanks for your comprehensive and thoughtful answer. (+1) $\endgroup$ – Eilia Jan 5 '17 at 15:10
  • $\begingroup$ You should do that by clicking the up arrow next to the question : ) $\endgroup$ – Tolga Birdal Jan 6 '17 at 10:07
  • $\begingroup$ Oh, it seems I Forgot it :( $\endgroup$ – Eilia Jan 6 '17 at 11:51

Not the answer you're looking for? Browse other questions tagged or ask your own question.