Software Development - Making Lilypod Intelligent – Part 3 (The Implementation)

To implement the neural network, a Tensorflow backend with a Keras wrapper was used. The following is a visual representation of the network:




It was designed to not be too deep since we do not have access to any pretrained layers that would be useful, nor do we have enough data to train the large number of parameters that a deeper network would have. 

In addition to the model itself, an interface was built to allow hydroponic farmers to train the network with new data as well as to obtain a crop quality prediction when desired in an easy to use manner. To do this, a desktop app was built using Pygame and Matplotlib. The app displays a dashboard, showing graphs of the latest sensor readings of the water. Located beside the graph is an interface with two text fields and two buttons, each corresponding to a different text field. One text field allows farmers to input a crop score based on their own expertise. The button corresponding to that text field, when clicked, runs a training step in an external server using the latest data frame as the x-value and the latest farmer-input score as the y-value. The model is then updated on the external server. When the other button is clicked, it sends a command to the external server to run an inference step and output a predicted score. The score is then pulled into the corresponding text field in the farmer’s dashboard.


Comments

Popular posts from this blog

Mechanical Design - Watertight Locking Mechanism

Final Post (Poster, Video)