Imagine you trained a text-from-image reader, similarly to the one described in this article https://medium.com/analytics-vidhya/image-text-recognition-738a368368f5
Now you want to port the trained network, or at least the bottom CNN layers, to process huge images (large photograph with tiny street name in the corner. Or multiple street labels which can be found anywhere in the image). If the kernels are eg. 50x50 pixels, each having 200 features, and you shift-apply every 2 pixels... on a 4K image, it's a huge amount of processing.
What are the techniques to quickly throw away areas where surely there is nothing of interest, and only CNN-process the regions that have something promising on them?
OR, eg. is there any technique whereby each layer downsamples,keeps interesting features, downsamples... AND in the end the thing won't be like grid-sensitive? (like if convolution-shift is too large, eg. kernel size/2, and feature is a couple of pixels off, doesn't fall on the grid) Is there a rule-of-thumb kernel_size / convolution_shift ratio people tend to plug in?
OR, is there a technique that works with layers of List<(object,position)> instead of float[with,height,feature]? Eg. I take a large photo, and want to find all letters in the photo. Then, knowing Collection<letter+position> find all street names, based only on the letters I found, I don't care about pixels, or a big piece of sky on that level.