MakerGram Logo

    MakerGram

    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Tags
    • Users
    • Groups

    [Solved] leaf disease detection using keras

    General Discussion
    4
    18
    3421
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      arunksoman @sreu13 last edited by

      @sreu13 I didn't mean that. I said if you are trying to run your code on RasPi4 or any other version of RasPi, you have to do some optimization on the code for better performance. Then Multiprocessing and threading Module comes into the picture.

      1 Reply Last reply Reply Quote 0
      • S
        sreu13 @arunksoman last edited by

        @arunksoman
        i followed your proceedure to and installed the requirements.txt file
        after running the code, I got the following error

        File "C:\Users\admin\Anaconda3\envs\test2\lib\site-packages\scipy\special\basic.py", line 15, in <module>
        from ._ufuncs import (ellipkm1, mathieu_a, mathieu_b, iv, jv, gamma,

        ImportError: cannot import name 'ellipkm1'

        A 1 Reply Last reply Reply Quote 0
        • A
          arunksoman @sreu13 last edited by arunksoman

          @sreu13 I didn't tell you to install anything via anaconda package manager. You have to uninstall those things first and install python 3.6.5. It was the first step.You have to read things carefully before executing anything.

          1 Reply Last reply Reply Quote 0
          • salmanfaris
            salmanfaris last edited by

            @sreu13 how is the progress?

            S 1 Reply Last reply Reply Quote 0
            • S
              sreu13 @salmanfaris last edited by

              @salmanfaris i know there was a delay in replies, i thought of finishing the project and replying here!....
              i ddnt get the exact reason, but the problem was solved

              what i did was , label binarized was working fine when i did created the training model. So i loaded my training model and deleted the script for the training procedure. i ended up with the code given below. and it worked up fine.

              import numpy as np
              import pickle
              import cv2
              from os import listdir
              from sklearn.preprocessing import LabelBinarizer
              from keras.models import Sequential
              from keras.layers.normalization import BatchNormalization
              from keras.layers.convolutional import Conv2D
              from keras.layers.convolutional import MaxPooling2D
              from keras.layers.core import Activation, Flatten, Dropout, Dense
              from keras import backend as K
              from keras.preprocessing.image import ImageDataGenerator
              from keras.optimizers import Adam
              from keras.preprocessing import image
              from keras.preprocessing.image import img_to_array
              from sklearn.preprocessing import MultiLabelBinarizer
              from sklearn.model_selection import train_test_split
              import matplotlib.pyplot as plt
              
              EPOCHS = 25
              INIT_LR = 1e-3
              BS = 32
              default_image_size = tuple((256, 256))
              image_size = 0
              directory_root = 'PlantVillage'
              width=256
              height=256
              depth=3
              
              #Function to convert images to array
              def convert_image_to_array(image_dir):
                  try:
                      image = cv2.imread(image_dir)
                      if image is not None :
                          image = cv2.resize(image, default_image_size)   
                          return img_to_array(image)
                      else :
                          return np.array([])
                  except Exception as e:
                      print(f"Error : {e}")
                      return None
              
              listdir(directory_root)
              
              image_list, label_list = [], []
              try:
                  print("[INFO] Loading images ...")
                  root_dir = listdir(directory_root)
                  for directory in root_dir :
                      # remove .DS_Store from list
                      if directory == ".DS_Store" :
                          root_dir.remove(directory)
              
                  for plant_folder in root_dir :
                      plant_disease_folder_list = listdir(f"{directory_root}/{plant_folder}")
                      
                      for disease_folder in plant_disease_folder_list :
                          # remove .DS_Store from list
                          if disease_folder == ".DS_Store" :
                              plant_disease_folder_list.remove(disease_folder)
              
                      for plant_disease_folder in plant_disease_folder_list:
                          print(f"[INFO] Processing {plant_disease_folder} ...")
                          plant_disease_image_list = listdir(f"{directory_root}/{plant_folder}/{plant_disease_folder}")
                         
                              
                          for single_plant_disease_image in plant_disease_image_list :
                              if single_plant_disease_image == ".DS_Store" :
                                  plant_disease_image_list.remove(single_plant_disease_image)
              
                          for image in plant_disease_image_list[:200]:
                              image_directory = f"{directory_root}/{plant_folder}/{plant_disease_folder}/{image}"
                              if image_directory.endswith(".jpg") == True or image_directory.endswith(".JPG") == True:
                                  image_list.append(convert_image_to_array(image_directory))
                                  label_list.append(plant_disease_folder)
                  print("[INFO] Image loading completed")  
              except Exception as e:
                  print(f"Error : {e}")
              
              image_size = len(image_list)
              
              #Transform Image Labels uisng Scikit Learn's LabelBinarizer
              label_binarizer = LabelBinarizer()
              image_labels = label_binarizer.fit_transform(label_list)
              pickle.dump(label_binarizer,open('label_transform.pkl', 'wb'))
              n_classes = len(label_binarizer.classes_)
              
              #Print the classes
              print(label_binarizer.classes_)
              
              #load saved pickle model
              loaded_model = pickle.load(open('cnn_model.pkl', 'rb'))
              model_disease=loaded_model
              
              
              #load plant leaf image
              image_dir="plantdisease/Validation_Set/Potato___Early_blight/1d301622-e359-49d5-b4ca-6837f254fd1b___RS_Early.B 6719.JPG"
              
              #convert leaf image to arrays
              im=convert_image_to_array(image_dir)
              np_image_li = np.array(im, dtype=np.float16) / 225.0
              npp_image = np.expand_dims(np_image_li, axis=0)
              
              result=model_disease.predict(npp_image)
              print(result)
              
              #printing result
              itemindex = np.where(result==np.max(result))
              print("probability:"+str(np.max(result))+"\n"+label_binarizer.classes_[itemindex[1][0]])
              
              1 Reply Last reply Reply Quote 1
              • First post
                Last post

              Recent Posts

              • D

                Signal Hunt: An ESP-NOW Workshop & Treasure Hunt

                Hello everyone! We’re planning on organizing a two-phase event that explores device-to-device communication using ESP-NOW protocol :

                Workshop: Participants learn to build and program ESP32-based receivers with a web interface that directly exchange signal data using ESP-NOW for RSSI-based distance approximation.

                Signal Hunt Competition: Equipped with these receivers, participants will track hidden ESP32 transmitters scattered around the campus, each with distinct point values.

                Current hardware setup:
                Reciever(one per team):
                Esp32 ~ 360rs
                9v battery = 20rs
                9v battery clip= 5rs
                buck converter (MP1584 or LM2596) ~ 45rs
                Perfboard + male to female berg strip ~30rs
                Total per reciever ~ 460rs
                Transmitters :6
                Components same as recievers = 460*6~2760rs

                (using non-rechargeable batteries to reduce cost,
                will using a 7805 voltage regulator IC be a viable way to reduce cost further?)

                We’d love your suggestions on ways to simplify hardware, reducing the cost, secure partnerships and funding, or enhance the interactive elements. Thank you, looking forward to any ideas that can help make the event engaging and successful!

                • read more
              • R

                I am trying to set up a janus webrtc to stream an RTSP to an HTML page.
                I have followed the getting-started steps by Janus-gateway official github repo.

                Since I am new to web development. I do not understand how to host the Webrtc server. can anyone guide me to set up an HTML page that can display a video stream from an RTSP server using janus webrtc?

                • read more
              • @zainmuhammed Can try capturing the GPS when the device is starting the loop instead after joining the LoRaWAN and see?

                You can put the GPS value on top of the loop or setup function.

                Also, what kind of gateway are you using? Is it configured okay, OTA is done?

                • read more
              • @salmanfaris Today I tried after connecting a 18650 cell,
                WhatsApp Image 2024-04-12 at 10.40.06_c7d1947e.jpg WhatsApp Image 2024-04-12 at 10.40.05_897b8bb6.jpg
                Data getting in console after integration of both lora and gps.
                3f45cfe7-0061-4328-8c55-ef0a73385203-image.png
                here you can see that GPS value is 0,0. also in my previous post you can see that GPS value is not reading.
                Also the status LED is active after it is connected to the satellite.

                • read more
              • Hi @zainmuhammed ,

                Can you share the GPS and LoRa output when it’s working?

                Also can try capturing the GPS when the device is starting the loop instead after joining the LoRaWAN and see?

                Also make sure the device provides have enough to modules. The GPS need more power when you cold start.

                • read more
              By MakerGram | A XiStart Initiative | Built with ♥ NodeBB
              Copyright © 2023 MakerGram, All rights reserved.
              Privacy Policy | Terms & Conditions | Disclaimer | Code of Conduct