How to make Neural Network Ignore the background?

I'm running deep learning on rocks, the trey the rocks sit on needs to be ignored, so I paint it a different color (neon green) and used a color thresholder generator to remove the background.
The problem is the 'removed' section still shows up as pixels on the image. So even when I 'remove' the background, the image itself still has all that empty space. I want the neural network to completely ignore it and only see the rocks.
Please help, for a really thorough solution I'll send you some bitcoin :)

6 Comments

What kind of information you want from the neural networkw? Perhaps you do not have to remove the background (the code maybe learn even with the background)
There is a lot of possibilities, the best results may be achieved using mask RCNN. You can try this : https://github.com/jasjeetIM/Mask-RCNN
I'm using the neural network to classify rocks. But if it sees the background it thinks the background is a rock and tries to classify it as such. I need it to completely ignore the background.
It is not clear what your classes are. From your description I deduce
class1 = tray
class2 = rock
which probably is not correct.
So, please enlighten us.
Greg
An image must remain rectangular so you can't really "remove" the pixels. You can color them a different color like blue or green or black, but they are still there if you want it to be a 2-D image, as opposed to just a 1-D list of color values. Please define exactly what "remove" means to you. Do you just mean "ignore"? Or do you think (incorrectly) that the "tray" pixels can somehow be thrown away so they do not even appear in the image at all?
I want the neural network to ignore the background.
Apparently that simply means I need to train a 'class' as the background itself, since the background can't be 'removed' fully?
I have 6 classes of rock types. Apparently I need to make the background Tray as a class also?

Sign in to comment.

Answers (2)

You don't need to remove the background.
Just consider it another class.
Hope this helps.
Thank you for formally accepting my answer
Greg

1 Comment

Ok I'll try it this weekend. I'll let you know how it goes.

Sign in to comment.

If you want to classify different types of rock, then you do not have to remove the background.
One of the powerful place of Neural Network is it could extract useful feature automatically (namely, remove the useless information automatically). Generally, the first several layers of Neural Network work as feature extractor, and the following layers work as a classifier.

1 Comment

one of my rock classes is very smooth and dark(like the background trey surface). that's why Im thinking I need to paint the background and set the background as its own class. I'm also splitting the screen into 300x300 pixel segments so get the exact percentage of each rock type present in the sample. When I segment it into smaller portions, it thinks the background is a smooth rock. That's why I need to paint it and set it as its own class I think.

Sign in to comment.

Categories

Find more on Deep Learning Toolbox in Help Center and File Exchange

Asked:

on 7 Sep 2017

Edited:

on 13 Sep 2017

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!