I am working on pattern recognition of the plant disease image using back propagation neural network(in java). I knew that the different binary features can be given as input to the neural network. But I am totally confuse that how to compare the output of the neural network in this scenario. I mean I do not have any output defined. And also in case of image how can I define the output so that I can find the error between the defined out and calculated output from network to adjust the weight.I am very serious, Please help me. Thank you
-
When you say plant disease recognition, do you mean different types of diseases or different stages of the same disease? – npinti Jul 14 '15 at 09:54
-
different type of diseases. Do you know then please answer. – Paras BK Jul 14 '15 at 10:01
1 Answers
This is by no means a complete answer, but it does not fit in the comment box. This should also provide some guidance as to what you could do.
What you could do would be to encode an image as a series of byte values ranging from [0,255]
. This should yield essentially a vector of bytes whose size should be the same as the amount of pixels within the image.
You would then pass on this vector to the neural network, thus meaning that the input layer of the neural network would need to be as big as the vector itself.
Lastly, you could assign different vector values to denote different diseases. For instance, given input vector [1,55,201,44,258,...]
the expected vector would be [0,0,0,0,0,1]
. This vector would then map to a particular disease.
If colour is not important to you, you could reduce the input vector to a vector of binary values, where, you turn your image to black and white for instance, according to some threshold.

- 51,780
- 5
- 72
- 96
-
thank you. But it is very difficult for making the input as the amount of the pixel is high. Please give clear vision on making vector and mapping with particular disease – Paras BK Jul 14 '15 at 11:55
-
@user3763077: My response above should get you started. If you have a specific problem then open a new question in which you state what is your problem, what you are expecting and what you are getting. You cannot expect users here to do your work for you. – npinti Jul 14 '15 at 12:02
-
Actually I have the input vector for eg. for disease1, vector is like [1,245,45,......,n], for disease2 [240,30,25,15,65,.....n], for disease3 [13,54,56,87,98,56,48,......n]. Now when I give input to the network then how should I gues my expected ouput vector so that I can calculate the erro and map the vector with the specific disease. – Paras BK Jul 14 '15 at 12:35
-
@user3763077: The network will feed the input forward through the various layers until the network emits a result, which is a vector itself.You compare the vector you got with the vector you where expecting and begin the back propagation process. – npinti Jul 14 '15 at 12:38
-
Sorry But How should I guess the expecting vector for each disease. Please help me. – Paras BK Jul 14 '15 at 12:51
-
@user3763077: There is nothing to guess. The neural network takes the input, passes it to the next layer, which does some calculation and passes data to the next layer and so on. Eventually the neural network emits a result. – npinti Jul 14 '15 at 13:06
-
As you told neural network emits a result, but how should I distinguish that which one is disease1 and which one is disease2 and so on. For this I must specify certain condition vector at output . Yes, the question is that how to specify the output vector so that network can find the error and goes for back propagation. – Paras BK Jul 15 '15 at 05:39
-
@user3763077: Different diseases would have different output vectors, as stipulated within your training data. You could compare your output with the list of outputs you have and choose the closest match for instance. – npinti Jul 15 '15 at 06:25