<p>If your ground truth contains the exact location of what you are trying to classify, use the ground truth to crop your images in an informed way. I.e. adjust the ground truth, if you are removing what you are trying to classify.</p>
<p>If you don't know the location of what you are classifying, you could</p>
<ol>
<li>attempt to train a classifier on your un-augmented dataset,</li>
<li>find out, what the regions of the images are that your classifier reacts to,</li>
<li>make note of these location</li>
<li>crop your images in an informed way</li>
<li>train a new classifier</li>
</ol>
<p>But how do you &quot;find out, what regions your classifier reacts to&quot;?
Multiple ways are described in <a href="https://arxiv.org/pdf/1311.2901" rel="nofollow noreferrer">Visualizing and Understanding Convolutional Networks</a> by Zeiler and Fergus:</p>
<p><a href="https://i.stack.imgur.com/fh4qQ.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/fh4qQ.png" alt="Image by Zeiler et al. Visualization by occlusion." /></a>
Imagine your classifier classifies <em>breast cancer</em> or <em>no breast cancer</em>. Now simply take an image that contains positive information for breast cancer and occlude part of the image with some blank color (see gray square in image above, image by Zeiler et al.) and predict <em>cancer</em> or <em>not</em>. Now move the occluded square around. In the end you'll get rough predictions scores for all <em>parts</em> of your original image (see (d) in the image above), because when you covered up the important part that is responsible for a positive prediction, you (should) get a negative cancer prediction.</p>
<p>If you have someone who can actually recognize cancer in an image, this is also a good way to check for and guard against confounding factors.</p>
<p>BTW: You might want to crop on-the-fly and randomize how you crop even more to generate way more samples.</p>
<p>If the 150x150 is already the <a href="https://en.wikipedia.org/wiki/Region_of_interest" rel="nofollow noreferrer">region of interest (ROI)</a> you could try the following data augmentations:</p>
<ul>
<li>use a <em>larger</em> patch, e.g. 170x170 that always contains your 150x150 patch</li>
<li>use a <em>larger</em> patch, e.g. 200x200, and scale it down to 150x150</li>
<li>add some gaussian noise to the image</li>
<li>rotate the image slightly (by random amounts)</li>
<li>change image contrast slightly</li>
<li>artificially emulate whatever other (image-)effects you see in the original dataset</li>
</ul>
Deep Learning - How to perform RANDOM CROP and not lose any information in data (change ground truth label)
<p>I have image patches from <strong>DDSM Breast Mammography</strong> that are <code>150x150</code> in size. I would like to augment my dataset by randomly cropping these images 2x times to <code>120x120</code> size. So, If my dataset contains <code>6500</code> images, augmenting it with random crop should get me to <code>13000</code> images. Thing is, I do NOT want to lose potential information in the image and possibly change ground truth label.</p>
<p>What would be best way to do this? Should I crop them randomly from <code>150x150</code> to <code>120x120</code> and hope for the best or maybe pad them first and then perform the cropping? What is the standard way to approach this problem?</p>