212 karma · joined August 30, 2009
This is why visual recognition is just one of the signals you need to use to tell humans and computers apart http://googleonlinesecurity.blogspot.com/2014/04/street-view...
Traditional OCR pipeline would be to use some heuristics to find line of text in an image, use some other heuristics to break line of text into candidate characters. Some candidate blobs may need to be merged to make a single character, so you use a separate character classifier pre-trained on correctly segmented characters to score the candidates, and then Viterbi/A* search on those scores to find the most likely interpretation of input.
Many problems with this -- how do you tune the heuristics? How do you recover from error in an earlier stage of pipeline? How do you get character level ground truth from image/text pairs?
With enough engineering time, you can solve those problems, but it's a lot of coding and tweaking. The point of the paper is that you can skip those steps and read OCR output directly off top layers of the network.
1. GraphLab2. Unlike Pregel's Bulk Synchronous Parallel Model, GraphLab2 it allows non-synchronous updates, which is more efficient for approximate quantities. For instance, for AltaVista's web graph, most nodes only need to be updated couple of times, while some nodes need more than 60 updates.
2. Flume: it's an abstraction on top of MapReduce, you program as if your data is contained in Java-like containers, and it turns your program into series of regular MapReduces
3. ScalOps (http://cs.markusweimer.com/pub/2012-DataEng.pdf): that's a higher level abstraction prototyped in Yahoo Research, might get resurrected in Microsoft.
4. AllReduce
To just highlight the difficulty of "what is child porn?" problem, it wasn't just Walmart's officials, but local police who took the complaint, prosecutor that initiated the case and probably a number of other officials in the pipeline who made incorrect determination