https://github.com/danforthcenter/plantcv-tutorial-machine-learning

Tutorial for analyzing image data using machine learning tools from PlantCV.

https://github.com/danforthcenter/plantcv-tutorial-machine-learning

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.3%) to scientific vocabulary
Last synced: 9 months ago · JSON representation

Repository

Tutorial for analyzing image data using machine learning tools from PlantCV.

Basic Info
  • Host: GitHub
  • Owner: danforthcenter
  • License: cc-by-4.0
  • Language: Jupyter Notebook
  • Default Branch: main
  • Size: 10.1 MB
Statistics
  • Stars: 0
  • Watchers: 6
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created almost 3 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

Machine Learning Tutorial

test-pr

Binder Open In Colab Static Badge

The naive Bayes multiclass approach is an extension of the naive Bayes approach. It can be trained to output binary images given an input color image. Unlike the naive Bayes method, the naive Bayes multiclass approach can be trained to classify two or more classes, defined by the user. Additionally, the naive Bayes multiclass method is trained using colors sparsely sampled from images rather than the need to label all pixels in a given image.

To train the classifier, we need to build a table of red, green, and blue color values for pixels sampled evenly from each class. The idea here is to collect a relevant sample of pixel color data for each class. The size of the sample needed to build robust probability density functions for each class will depend on a number of factors, including the variability in class colors and imaging quality/reproducibility. To collect pixel color data we currently use the Pixel Inspection Tool in ImageJ. Each column in the tab-delimited table is a feature class (in this example, plant, pustule, chlorosis, or background) and each cell is a comma-separated red, green, and blue triplet for a pixel.

Once a satisfactory sample of pixels is collected, save the table as a tab-delimited text file. Use plantcv-train.py to use the pixel samples to output probability density functions (PDFs) for each class.

plantcv-train.py naivebayesmulticlass --file pixelsamples.txt --outfile naivebayes_pdfs.txt --plots

The output file from plantcv-train.py will contain one row for each color channel (hue, saturation, and value) for each class. The first and second column are the class and channel label, respectively. The remaining 256 columns contain the p-value from the PDFs for each intensity value observable in an 8-bit image (0-255).

Once we have the plantcv-train.py output file, we can classify pixels in a color image in PlantCV. In the example image for this tutorial we have already collected pixels and created the probability density functions for each class.

Tutorial tags/keywords

Naive Bayes, Machine Learning, disease quantification, flatbed scanner, leaf

Citations

Abbasi A, Fahlgren N. 2016. Naive Bayes pixel-level plant segmentation. In: 2016 IEEE Western New York Image and Signal Processing Workshop (WNYISPW). 1–4. DOI: 10.1109/WNYIPW.2016.7904790.

Owner

  • Name: Donald Danforth Plant Science Center
  • Login: danforthcenter
  • Kind: organization
  • Location: St. Louis, MO

Our Mission: Improve the Human Condition Through Plant Science

GitHub Events

Total
  • Release event: 1
  • Delete event: 1
  • Push event: 6
  • Pull request review event: 1
  • Pull request event: 1
  • Create event: 2
Last Year
  • Release event: 1
  • Delete event: 1
  • Push event: 6
  • Pull request review event: 1
  • Pull request event: 1
  • Create event: 2

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 25
  • Total Committers: 3
  • Avg Commits per committer: 8.333
  • Development Distribution Score (DDS): 0.36
Past Year
  • Commits: 11
  • Committers: 3
  • Avg Commits per committer: 3.667
  • Development Distribution Score (DDS): 0.545
Top Committers
Name Email Commits
Noah Fahlgren n****n@g****m 16
Haley Schuhl 4****l 5
leowlima l****a@d****g 4
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: over 2 years ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
  • zhaYdamenaceee (1)
Top Labels
Issue Labels
Pull Request Labels