For "A photometric stereo-based 3D imaging system using computer vision and deep learning for tracking plant growth" paper.
This is an implementation of PS-Plant software in Python 3.5. The software has six components that is the backbone for processing data acquired using PS-Plant plant phenotyping system. Each component runs as a GUI enabling the user to interact with the software. The components are named as follows:
The repository includes:
Installation guidance is provided in a YouTube tutorial.
Clone this reporitory
Install dependencies
pip install -r requirements.txt
Download pip unavailable dependencies:
Install pip unavailable dependencies
Download test data, which includes:
Install Arduino 1.8.8 IDE
Install Arduino MKRZero compatible drivers (Arduino IDE -> Tools -> Board -> Boards Manager -> Arduino SAMD Boards (32-bits ARM Cortex-M0+) tested version 1.6.12)
After a successful installation of dependency software, you may run any of the supplied GUI-based software. The easiest way to investigate the PS data is to run 'psgui3.py' GUI where the GUI displays an integrated 3D surface using Frankot and Chellappa (1988) proposed integration method (left), surface normal directions (right) in x (top-left), y (top-right) and z (bottom-left) directions and albedo image (bottom-right). Click on 'Process from archive' and navigate to the provided raw PS data acquisitions in TestData/RawData directory.
PS data can be also acquired using 'psgui3.py' script:
This script displays a GUI to generate adaptive light source vectors that will be used to generate more accurate 3D representations using PS.
In the GUI you have to enter:
Generated light source vectors are available in the provided TestData/Results folder.
This is the GUI for processing raw files and generating PS outputs that are stored in SNZShadowImAndAlbedo_adaptiveLS.npz files.
In the GUI user has to enter:
The user may run the script on the provided PS-Plant data acquisitions, however, the SNZShadowImAndAlbedo_adaptiveLS.npz files are already provided in the directories in TestData/RawData directory.
This script displays a GUI to generate rosette masks for the chosen PS-Plant acquisition sessions and desired region of interests (ROI). The GUI allows user to select parameters for better segmentation (threshold, min area, filter size).
In the GUI you have to enter:
Example roi.txt is provided in TestData for the directories in TestData/RawData directories with NIR suffix. The results are provided in TestData/Results/RosetteMasks.
This is the GUI for generating individual leaf segmentations.
In the GUI, user has to enter:
The raw data is provided in TestData/RawData/Cropped directory. Example roiLeaf.txt is provided in TestData for the directories in TestData/RawData directories with NIR suffix. The results are provided in TestData/Results/LeafMasks.
This is the GUI for tracking leaf instances across the time-series images of Arabidopsis.
In the GUI you have to enter:
Raw data is provided in TestData/RawData/LeafMasks directory or the user generated images from 'LeafSegmentationGUI'. The results are provided in TestData/Results/TrackedLeafMasks.
This is the GUI for extracting rosette and leaf-level growth data from either rosette or leaf masks.
In the GUI you have to enter:
Raw data is provided in TestData/RawData/TrackedLeafMasks and TestData/RawData/RosetteMasks directories or the user generated images from 'MaskGenGUI' or 'TrackingGUI'. The results are provided in TestData/Results/DataExtraction for both rosette and leaf segmentations.