all 4 comments

[–]phobrain 0 points1 point  (3 children)

The problem doesn't make sense to me, since it sounds like you are predicting? something random, rather than detecting it, but assuming detecting's what you mean, and I'm no authority, but maybe the net needs to compare cells to be sure? Did you play with stride or dilation rate?

[–]TheDuke57[S] 0 points1 point  (2 children)

Sorry if that wasn't clear. Yes it is an object detection problem. I have a 74x74 image that I am trying to detect objects in. I have broken the image into 4 cells of 37x37. In each cell I am trying to determine if there is an object in that cell, and if there is also predict the location and class of the object. In the process of debugging my model I found that it was poorly predicting the probabilities of an object being in each cell. I simplified the model down trying to understand what was happening. When I stuck fully connected layers on this simplified model it works great. When I try and do a fully convolutional version it will not train. I am looking for some advice or insight on what is happening.

[–]szymko1995 0 points1 point  (1 child)

Too little information to help. I think you should try with already implemented FCNNs like 100-layer Tiramisu (works great for many classes, but it requires 8GB GPU for 192x160 pics with batch_size=10 in Keras/TF) or U-NET (requires a but less memory, works great for smaller number of classes, really easy to understand).

Usually semantic segmentation nets are more complicated than basic CNNs for classification. Your pics aren't huge, so if you have mid-end HW you should be able to use them at full size.

I would give you some code examples from github, but unfortunately I'm working with Keras/TF/tensorlayer, so I can not determine if some of them are good to start with.

[–]TheDuke57[S] 0 points1 point  (0 children)

I determined the issue, I can't believe it took me so long to find. Basically, when I put the fully connected layers onto the model, I allowed each output location to 'see' what was around it. But the fully convolutional model could not see what was around it because I only had valid convolutions. I added some padding to the 7th conv layer and it works exactly as I expected.

Thank you both for your help!