Neural Network: output representation (output layer)

4 次查看(过去 30 天)
I have more of a high-level question. I’m trying to design a neural network for flower detection. The images are 440x440x3 pixels (RGB) and are taken by drone so flowers are white dots (of radius up to 10 px).
I have already annotated over 2000 images but I’m having trouble with the data representation for the output layer. For now, each flower is represented as x-y coordinates representing its centre. Each image contains a different number of flowers. This is not a standard classification/regression task and that's why I’m a bit lost.
I planned to use CNN but I don’t know how to define the output. For now, the input X is: 440 x 440 x 3 x N matrix (height x width x channels x index). This is pretty standard and there's an input layer already defined for that.
However, it gets tricky when I’m trying to design the output layer. I was thinking about representing output Y as: 440 x 440 x 1 x N matrix of binary images where 1 represents a flower (0 otherwise; according to the coordinates from annotated data). However, this approach seems hard to implement. Do you know how would I implement this in MATLAB? Has anyone heard of such an approach?
My other thought was to have flowers annotated as before (x-y coordinates) and have 2 outputs (one for x and one for y coordinates). These would work as probabilities for each of the coordinates and if they’re both acceptably high then we would predict a flower.
Are there any other ways to represent the output for this particular task? Any help would be greatly appreciated :)

采纳的回答

Maria Duarte Rosa
编辑:Maria Duarte Rosa 2018-1-2
Can you treat the problem as an object detection one? If so, then this example might help:
Or perhaps as a semantic segmentation (pixel classification) problem:

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Image Data Workflows 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by