| | import gradio as gr |
| |
|
| | |
| | import tensorflow as tf |
| |
|
| | from tensorflow.keras.utils import img_to_array,load_img |
| | from tensorflow.keras.models import load_model |
| | import numpy as np |
| |
|
| | |
| | model_path = 'Mango.h5' |
| |
|
| | |
| | custom_objects = {'DepthwiseConv2D': tf.keras.layers.DepthwiseConv2D} |
| |
|
| | |
| | model = load_model(model_path, custom_objects=custom_objects) |
| |
|
| | def predict_disease(image_file, model, all_labels): |
| | |
| | try: |
| | |
| | img = load_img(image_file, target_size=(224, 224)) |
| | img_array = img_to_array(img) |
| | img_array = np.expand_dims(img_array, axis=0) |
| | img_array = img_array / 255.0 |
| |
|
| | |
| | predictions = model.predict(img_array) |
| | predicted_class = np.argmax(predictions[0]) |
| |
|
| | |
| | predicted_label = all_labels[predicted_class] |
| |
|
| | |
| | |
| | if predicted_label=='Mango Anthracrose': |
| | predicted_label = """<style> |
| | li{ |
| | font-size: 15px; |
| | margin-left: 90px; |
| | margin-top: 15px; |
| | margin-bottom: 15px; |
| | } |
| | h4{ |
| | font-size: 17px; |
| | margin-top: 15px; |
| | } |
| | h4:hover{ |
| | cursor: pointer; |
| | } |
| | |
| | h3:hover{ |
| | cursor: pointer; |
| | color: blue; |
| | transform: scale(1.3); |
| | } |
| | .note{ |
| | text-align: center; |
| | font-size: 16px; |
| | } |
| | p{ |
| | font-size: 13px; |
| | text-align: center; |
| | } |
| | |
| | </style> |
| | <h3><center><b>Mango Anthracrose</b></center></h3> |
| | <h4>PESTICIDES TO BE USED:</h4> |
| | <ul> |
| | <li>1. Mancozeb</li> |
| | <li>2. Azoxystrobin</li> |
| | <li>3. carbendazim</li> |
| | <li>4. Propiconazole</li> |
| | <li>5. Thiophanate-methyl</li> |
| | <li>6. Copper Sulfate</li> |
| | </ul><br> |
| | <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p> |
| | <p>Be sure to follow local regulations and guidelines for application</p> |
| | |
| | """ |
| | elif predicted_label=='Mango Bacterial Canker': |
| | predicted_label = """ |
| | <style> |
| | li{ |
| | font-size: 15px; |
| | margin-left: 90px; |
| | margin-top: 15px; |
| | margin-bottom: 15px; |
| | } |
| | h4{ |
| | font-size: 17px; |
| | margin-top: 15px; |
| | } |
| | h4:hover{ |
| | cursor: pointer; |
| | } |
| | |
| | h3:hover{ |
| | cursor: pointer; |
| | color: blue; |
| | transform: scale(1.3); |
| | } |
| | .note{ |
| | text-align: center; |
| | font-size: 16px; |
| | } |
| | p{ |
| | font-size: 13px; |
| | text-align: center; |
| | } |
| | |
| | </style> |
| | <h3><center><b>Mango Bacterial Canker</b></center></h3> |
| | <h4>PESTICIDES TO BE USED:</h4> |
| | <ul> |
| | <li>1. Copper Hydroxide</li> |
| | <li>2. Copper Oxychloride</li> |
| | <li>3. Streptomycin</li> |
| | <li>4. oxytetracycline</li> |
| | <li>5. Neem oil</li> |
| | <li>6. Garlic oil</li> |
| | </ul> |
| | <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p> |
| | <p>Be sure to follow local regulations and guidelines for application</p> |
| | |
| | |
| | """ |
| | elif predicted_label=='Mango Cutting Weevil': |
| | predicted_label = """ |
| | <style> |
| | li{ |
| | font-size: 15px; |
| | margin-left: 90px; |
| | margin-top: 15px; |
| | margin-bottom: 15px; |
| | } |
| | h4{ |
| | font-size: 17px; |
| | margin-top: 15px; |
| | } |
| | h4:hover{ |
| | cursor: pointer; |
| | } |
| | |
| | h3:hover{ |
| | cursor: pointer; |
| | color: blue; |
| | transform: scale(1.3); |
| | } |
| | .note{ |
| | text-align: center; |
| | font-size: 16px; |
| | } |
| | p{ |
| | font-size: 13px; |
| | text-align: center; |
| | } |
| | |
| | </style> |
| | <h3><center><b>Mango Cutting Weevil</b></center></h3> |
| | <h4>PESTICIDES TO BE USED:</h4> |
| | <ul> |
| | <li>1. Imidacloprid</li> |
| | <li>2. Thiamethoxam</li> |
| | <li>3. Chlorpyrifos</li> |
| | <li>4. Lambda-cyhalothrin</li> |
| | <li>5. Fipronil</li> |
| | <li>6. Neem oil</li> |
| | </ul> |
| | <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p> |
| | <p>Be sure to follow local regulations and guidelines for application</p> |
| | |
| | |
| | """ |
| |
|
| | elif predicted_label=='Mango Die Back': |
| | predicted_label = """ |
| | <style> |
| | li{ |
| | font-size: 15px; |
| | margin-left: 90px; |
| | margin-top: 15px; |
| | margin-bottom: 15px; |
| | } |
| | h4{ |
| | font-size: 17px; |
| | margin-top: 15px; |
| | } |
| | h4:hover{ |
| | cursor: pointer; |
| | } |
| | |
| | h3:hover{ |
| | cursor: pointer; |
| | color: blue; |
| | transform: scale(1.3); |
| | } |
| | .note{ |
| | text-align: center; |
| | font-size: 16px; |
| | } |
| | p{ |
| | font-size: 13px; |
| | text-align: center; |
| | } |
| | |
| | </style> |
| | <h3><center><b>Mango Die Back</b></center></h3> |
| | <h4>PESTICIDES TO BE USED:</h4> |
| | <ul> |
| | <li>1. Carbendazim</li> |
| | <li>2. Mancozeb</li> |
| | <li>3. Azoxystrobin</li> |
| | <li>4. Triazole</li> |
| | <li>5. Potassium bicarbonate</li> |
| | <li>6. Sodium bicarbonate</li> |
| | </ul> |
| | <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p> |
| | <p>Be sure to follow local regulations and guidelines for application</p> |
| | |
| | |
| | """ |
| | elif predicted_label=='Mango Gall Midge': |
| | predicted_label = """ |
| | <style> |
| | li{ |
| | font-size: 15px; |
| | margin-left: 90px; |
| | margin-top: 15px; |
| | margin-bottom: 15px; |
| | } |
| | h4{ |
| | font-size: 17px; |
| | margin-top: 15px; |
| | } |
| | h4:hover{ |
| | cursor: pointer; |
| | } |
| | |
| | h3:hover{ |
| | cursor: pointer; |
| | color: blue; |
| | transform: scale(1.3); |
| | } |
| | .note{ |
| | text-align: center; |
| | font-size: 16px; |
| | } |
| | p{ |
| | font-size: 13px; |
| | text-align: center; |
| | } |
| | |
| | </style> |
| | <h3><center><b>Mango Gall Midge</b></center></h3> |
| | <h4>PESTICIDES TO BE USED:</h4> |
| | <ul> |
| | <li>1. Imidacloprid</li> |
| | <li>2. Thiamethoxam</li> |
| | <li>3. Chlorpyrifos</li> |
| | <li>4. Lambda-cyhalothrin</li> |
| | <li>5. Spinosad</li> |
| | <li>6. Pyrethrin</li> |
| | </ul> |
| | <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p> |
| | <p>Be sure to follow local regulations and guidelines for application</p> |
| | |
| | |
| | """ |
| | elif predicted_label=='Mango Powdery Mildew': |
| | predicted_label = """ |
| | <style> |
| | li{ |
| | font-size: 15px; |
| | margin-left: 90px; |
| | margin-top: 15px; |
| | margin-bottom: 15px; |
| | } |
| | h4{ |
| | font-size: 17px; |
| | margin-top: 15px; |
| | } |
| | h4:hover{ |
| | cursor: pointer; |
| | } |
| | |
| | h3:hover{ |
| | cursor: pointer; |
| | color: blue; |
| | transform: scale(1.3); |
| | } |
| | .note{ |
| | text-align: center; |
| | font-size: 16px; |
| | } |
| | p{ |
| | font-size: 13px; |
| | text-align: center; |
| | } |
| | |
| | </style> |
| | <h3><center><b>Mango Powdery Mildew</b></center></h3> |
| | <h4>PESTICIDES TO BE USED:</h4> |
| | <ul> |
| | <li>1. Sulfur</li> |
| | <li>2. Bicarbonates</li> |
| | <li>3. Myclobutanil</li> |
| | <li>4. Triadimefon</li> |
| | <li>5. Propiconazole</li> |
| | <li>6. Azoxystrobin</li> |
| | </ul> |
| | <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p> |
| | <p>Be sure to follow local regulations and guidelines for application</p> |
| | |
| | |
| | """ |
| |
|
| | elif predicted_label=='Mango Sooty Mould': |
| | predicted_label = """ |
| | <style> |
| | li{ |
| | font-size: 15px; |
| | margin-left: 90px; |
| | margin-top: 15px; |
| | margin-bottom: 15px; |
| | } |
| | h4{ |
| | font-size: 17px; |
| | margin-top: 15px; |
| | } |
| | h4:hover{ |
| | cursor: pointer; |
| | } |
| | |
| | h3:hover{ |
| | cursor: pointer; |
| | color: blue; |
| | transform: scale(1.3); |
| | } |
| | .note{ |
| | text-align: center; |
| | font-size: 16px; |
| | } |
| | p{ |
| | font-size: 13px; |
| | text-align: center; |
| | } |
| | |
| | </style> |
| | <h3><center><b>Mango Sooty Mould</b></center></h3> |
| | <h4>PESTICIDES TO BE USED:</h4> |
| | <ul> |
| | <li>1. Imidacloprid (Neonicotinoid)</li> |
| | <li>2. Thiamethoxam (Neonicotinoid)</li> |
| | <li>3. Bifenthrin (Pyrethroid)</li> |
| | <li>4. Lambda-cyhalothrin (Pyrethroid)</li> |
| | <li>5. Insecticidal soap</li> |
| | <li>6. Horticultural oil</li> |
| | </ul> |
| | <p class="note"><b>* * * IMPORTANT NOTE * * *</b></p> |
| | <p>Be sure to follow local regulations and guidelines for application</p> |
| | |
| | |
| | """ |
| | else: |
| | predicted_label = """<h3 align="center">Mango Healthy</h3><br><br> |
| | <center>No need use Pesticides</center>""" |
| |
|
| | return predicted_label |
| |
|
| |
|
| | except Exception as e: |
| | print(f"Error: {e}") |
| | return None |
| |
|
| | |
| | all_labels = [ |
| | 'Mango Anthracrose', |
| | 'Mango Bacterial Canker', |
| | 'Mango Cutting Weevil', |
| | 'Mango Die Back', |
| | 'Mango Gall Midge', |
| | 'Mango Healthy', |
| | 'Mango Powdery Mildew', |
| | 'Mango Sooty Mould' |
| | ] |
| |
|
| | |
| | def gradio_predict(image_file): |
| | return predict_disease(image_file, model, all_labels) |
| |
|
| | |
| | gr_interface = gr.Interface( |
| | fn=gradio_predict, |
| | inputs=gr.Image(type="filepath"), |
| | outputs="html", |
| | title="Mango Disease Predictor", |
| | description="Upload an image of a plant to predict the disease.", |
| | ) |
| |
|
| | |
| | gr_interface.launch(share=True) |