{ "cells": [ { "cell_type": "markdown", "metadata": { "collapsed": true, "jupyter": { "outputs_hidden": true } }, "source": [ "# Machine Learning Tutorial \n", "\n", "Tutorial Created by: Haley Schuhl\n", "\n", "Date: Jul 24, 2023\n", "\n", "Tutorial Updated by: ZhakeYa D. Hawkins\n", "\n", "Date: July 16, 2025\n", "\n", "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 a images rather than the need to label all pixels in a given image.\n", "\n", "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](https://imagej.net/ij/). Each column in the tab-delimited table is a feature class (in this example, plant, pustule, chlorosis, or background)\n", "and each cell is a comma-separated red, green, and blue triplet for a pixel.\n", "\n", "\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Once a satisfactory sample of pixels is collected, save the table as a tab-delimited text file. Use `plantcv-train` to use the pixel samples to output probability density functions (PDFs)\n", "for each class." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "plantcv-train naive_bayes_multiclass --file pixel_samples.txt --outfile naive_bayes_pdfs.txt --plots" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The output file from `plantcv-train` will contain one row for each color channel (hue, saturation, and value) for\n", "each class. The first and second column are the class and channel label, respectively. The\n", "remaining 256 columns contain the p-value from the PDFs for each intensity value observable in an 8-bit image (0-255).\n", "\n", "Once we have the `plantcv-train` 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. " ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Import libraries\n", "%matplotlib inline\n", "import numpy as np\n", "from plantcv import plantcv as pcv\n", "from plantcv.parallel import WorkflowInputs" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Input/Output options\n", "args = WorkflowInputs(\n", " #images=[\"img/color_image.jpg\"], \n", " images=[\"./img/WheatRust_RGB_image.jpg\"], \n", " names=\"image1\",\n", " result=\"ml_tutorial_results.json\",\n", " outdir=\".\",\n", " writeimg=True,\n", " debug=\"plot\"\n", " )\n", "\n", "# Set debug as a global parameter \n", "pcv.params.debug = args.debug\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Read image in\n", "\n", "img, path, filename = pcv.readimage(filename=args.image1)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b56220afcf8e42138ac1da67c031433e", "version_major": 2, "version_minor": 0 }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAA10dzkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/NK7nSAAAACXBIWXMAAA9hAAAPYQGoP6dpAABbZUlEQVR4nO3deXgT1f4G8DdJ041ulO60lKVlLXuRRfalUH6Ui6Cg7KgoQpUKqCBcxI1NRUUuoIKAsrpQQWQRoYAVUECQFgTK2oWW7i2lNGmS8/uDS661LRSaZJrM+3meeZ6bmck5b+bG9MuZmTMKIYQAEREREcmGUuoARERERGRZLACJiIiIZIYFIBEREZHMsAAkIiIikhkWgEREREQywwKQiIiISGZYABIRERHJDAtAIiIiIplhAUhEREQkMywAiYiIiGSGBSARERGRzLAAJCIiIpIZFoBEREREMsMCkIiIiEhmWAASERERyQwLQCIiIiKZYQFIREREJDMsAImIiIhkhgUgERERkcywACQiIiKSGRaARERERDLDApCIiIhIZlgAEhEREckMC0AiIiIimWEBSERERCQzLACJiIiIZIYFIBEREZHMsAAkIiIikhkWgEREREQywwKQiIiISGZYABIRERHJDAtAIiIiIplhAUhEREQkMywAiYiIiGSGBSARERGRzLAAJCIiIpIZFoBEREREMsMCkIiIiEhmWAASERERyQwLQCIiIiKZYQFIREREJDMsAImIiIhkhgUgERERkcywACQiIiKSGRaARERERDLDApCIiIhIZlgAEhEREckMC0AiIiIimWEBSERERCQzLACJiIiIZIYFIBEREZHMsAAkIiIikhkWgEREREQywwJQxpYvX44GDRrA0dER7du3xy+//CJ1JCIiIrIAFoAytWXLFsTExGD27Nk4efIkunXrhsjISCQnJ0sdjYiIiMxMIYQQUocgy+vYsSPatWuHFStWGNc1a9YMQ4YMwYIFCyRMRkREROZmJ3UAsjytVosTJ05g5syZZdZHRETg8OHDFb5Ho9FAo9EYXxsMBuTm5qJOnTpQKBRmzUtERKYnhMDNmzcREBAApZInBOWGBaAMZWdnQ6/Xw9fXt8x6X19fZGRkVPieBQsW4M0337REPCIisqCUlBQEBgZKHYMsjAWgjP1z5E4IUelo3qxZszBt2jTj64KCAtSr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", "text/html": [ "\n", "