MakerGram Logo

    MakerGram

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

    [Solved] leaf disease detection using keras

    General Discussion
    4
    18
    3417
    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

              • J

                Hi everyone,

                I recently left my 9-to-5 corporate job after almost a decade to chase something I’ve always dreamed about—starting my own food business. It started small: just a cloud kitchen running out of a rented space, late nights testing recipes, early mornings handling orders, and zero regrets so far.

                Now, with some loyal customers, decent growth, and a lot of love from the community, I’m slowly working toward turning this little kitchen into a walk-in café. It’s a scary, exciting step—but I want to do it right.

                That brings me to this post. As we grow, I want our team to look as professional as we feel. We’re in the market for good-quality chef coats for kitchen staff—something that’s breathable, durable, easy to wash, and doesn't look sloppy after a long day. Style matters too, since we’ll be customer-facing soon.I found a brand called Lintex online. They seem pretty legit, offer kitchen uniforms, long sleeve chef coats, and even frontdesk uniforms (which could be useful later). Their site looks solid, but I’ve never ordered uniforms before, and I’m a little nervous about fabric quality and fit.

                Has anyone here ordered from Lintex before? Would love to hear your suggestions. Thanks in advance!

                • read more
              • J

                At Lintex, we understand that being a doctor means more than long hours and tough calls; it also means showing up every day ready to move, think, and care with confidence. That’s why we design scrubs for doctors that are built for real-life performance without compromising on comfort or style.

                Our collection of doctor scrubs is crafted with breathable fabrics, smart tailoring, and functional features like strategically placed pockets, wrinkle resistance, and movement-friendly cuts. Whether you're making rounds, managing emergencies, or staying on your feet during surgeries, Lintex scrubs are made to support your every move.

                We don't believe in one-size-fits-all. From classic V-necks to modern fits, we offer options that let you choose what works best for your body and your role. If you're looking for the best scrubs for doctors, you’re in the right place.

                Join the Lintex community and discover the best scrubs for doctors that work as hard as you do.

                Explore more at www.lintex.in or drop us a line at reachus@anvka.com

                • read more
              • J

                I'm an Oral-Maxillofacial Surgeon working with a trauma hospital and academic setup in Delhi. We get our 3D models, from Curewith3D, a dedicated 3D lab equipped with FDM and SLA 3D printers, focused on presurgical planning and patient-specific modeling.

                We routinely use 3D printed anatomical models, especially for complex facial reconstructions, TMJ cases, and orthognathic surgeries. They’re invaluable for surgical rehearsals, resident training, and most importantly, patient education. When patients can physically hold their jaw model and understand the procedure, consent becomes more informed and anxiety levels drop.

                As for printing surgical instruments or implants, we’re cautious. While the 3D orthopedic implants we design are precise and patient-specific, their final manufacturing still goes through standard biocompatible grade processes. Like in most regions, concerns about sterilization, structural integrity, and litigation prevent experimental tools from entering the OR directly. That said, the potential for custom joint replacement implants and 3D knee replacement implants in underserved areas is enormous. We see 3D printing as a huge enabler in low-resource and humanitarian settings.

                • read more
              • 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
              • M

                RTA offers a diverse range of stylish apparel, including rta clothing staples like rta hoodie men, men's rta hoodie, and the sleek black rta hoodie. Their denim collection features must-haves such as rta denim pants, rta denim mens, rta denim jeans, rta skinny jeans, rta jeans mens, rta jeans, and rta denim shorts. Complete your look with rta shorts, rta shirts, rta t shirt, rta t shirt men, and cozy options like the rta sweatshirt. For a functional touch, add rta cargo pants to your wardrobe and create the ultimate rta outfit for any occasion.

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