atharvapawar
commited on
Commit
•
ff04594
1
Parent(s):
b795dd9
Upload 92 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +12 -0
- __crop-disease-detection/.gitattributes +1 -0
- __crop-disease-detection/Dockerfile +17 -0
- __crop-disease-detection/Research/model_test.py +10 -0
- __crop-disease-detection/Research/sugarcane-disease-detection.py +47 -0
- __crop-disease-detection/Research/test.py +65 -0
- __crop-disease-detection/Run-on-Colab-CropDiseaseDetector_FlaskNgrok_test.ipynb +1272 -0
- __crop-disease-detection/__pycache__/utils.cpython-311.pyc +0 -0
- __crop-disease-detection/app.py +140 -0
- __crop-disease-detection/docker-details.txt +49 -0
- __crop-disease-detection/main.py +145 -0
- __crop-disease-detection/model_folder/cotton_disease_model.h5 +3 -0
- __crop-disease-detection/model_folder/sugarcane_disease_model.h5 +3 -0
- __crop-disease-detection/model_folder/tomato_disease_model.h5 +3 -0
- __crop-disease-detection/requirements.txt +0 -0
- __crop-disease-detection/static/setup/cotton_image.jpeg +0 -0
- __crop-disease-detection/static/setup/logo.png +0 -0
- __crop-disease-detection/static/setup/plant.png +0 -0
- __crop-disease-detection/static/setup/sugarcane_image.jpeg +0 -0
- __crop-disease-detection/static/setup/tomato_image.jpeg +0 -0
- __crop-disease-detection/static/uploaded_images/imageFile.jpeg +0 -0
- __crop-disease-detection/templates/index.html +79 -0
- __crop-disease-detection/templates/modelresult.html +124 -0
- __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (101)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (106)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (109)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (110)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (101)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (103)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (105)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (108)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (10)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (103)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (107)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (110)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (136)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (138)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (144)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (146)_iaip.jpeg +0 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (10).JPG +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (12).JPG +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (17).JPG +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (20).JPG +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (100).JPG +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (12).jpg +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (14).jpg +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (19).jpg +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (100).JPG +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (12).JPG +3 -0
- __crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (16).JPG +3 -0
.gitattributes
CHANGED
@@ -33,3 +33,15 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial[[:space:]]Blight/S_BLB[[:space:]](10).JPG filter=lfs diff=lfs merge=lfs -text
|
37 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial[[:space:]]Blight/S_BLB[[:space:]](12).JPG filter=lfs diff=lfs merge=lfs -text
|
38 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial[[:space:]]Blight/S_BLB[[:space:]](17).JPG filter=lfs diff=lfs merge=lfs -text
|
39 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial[[:space:]]Blight/S_BLB[[:space:]](20).JPG filter=lfs diff=lfs merge=lfs -text
|
40 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H[[:space:]](100).JPG filter=lfs diff=lfs merge=lfs -text
|
41 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H[[:space:]](12).jpg filter=lfs diff=lfs merge=lfs -text
|
42 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H[[:space:]](14).jpg filter=lfs diff=lfs merge=lfs -text
|
43 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H[[:space:]](19).jpg filter=lfs diff=lfs merge=lfs -text
|
44 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Red[[:space:]]Rot/S_RR[[:space:]](100).JPG filter=lfs diff=lfs merge=lfs -text
|
45 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Red[[:space:]]Rot/S_RR[[:space:]](12).JPG filter=lfs diff=lfs merge=lfs -text
|
46 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Red[[:space:]]Rot/S_RR[[:space:]](16).JPG filter=lfs diff=lfs merge=lfs -text
|
47 |
+
__crop-disease-detection/test_img_folder/sugarcanemodel/Red[[:space:]]Rot/S_RR[[:space:]](21).JPG filter=lfs diff=lfs merge=lfs -text
|
__crop-disease-detection/.gitattributes
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
model_folder/*.h5 filter=lfs diff=lfs merge=lfs -text
|
__crop-disease-detection/Dockerfile
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM python:3.8-alpine
|
2 |
+
|
3 |
+
WORKDIR /app
|
4 |
+
COPY . /app
|
5 |
+
|
6 |
+
# Install TensorFlow 1.0.0 from the specified wheel file
|
7 |
+
RUN pip install --no-cache-dir --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.0.0-py3-none-any.whl
|
8 |
+
|
9 |
+
|
10 |
+
# Upgrade pip and install dependencies
|
11 |
+
# RUN apk add --no-cache build-base && pip install --upgrade pip && pip install -r requirements.txt && apk del build-base
|
12 |
+
|
13 |
+
# Upgrade pip and install any other needed dependencies specified in requirements.txt
|
14 |
+
RUN pip install --upgrade pip && pip install -r requirements.txt
|
15 |
+
|
16 |
+
|
17 |
+
CMD python app.py
|
__crop-disease-detection/Research/model_test.py
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from utils import cottonmodel, sugarcanemodel, tomatomodel, get_model_details
|
2 |
+
|
3 |
+
# img_path = "test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (101)_iaip.jpeg"
|
4 |
+
img_path = "test_img_folder/cottonmodel/diseased cotton plant/dd (101)_iaip.jpeg"
|
5 |
+
# img_path = "test_img_folder/cottonmodel/fresh cotton plant/dsd (138)_iaip.jpeg"
|
6 |
+
result = cottonmodel(img_path)
|
7 |
+
|
8 |
+
|
9 |
+
# result = sugarcanemodel(img_path)
|
10 |
+
# result = tomatomodel(img_path)
|
__crop-disease-detection/Research/sugarcane-disease-detection.py
ADDED
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# pip install tensorflow
|
2 |
+
|
3 |
+
import tensorflow.compat.v1 as tf
|
4 |
+
tf.disable_v2_behavior()
|
5 |
+
tf.enable_eager_execution()
|
6 |
+
|
7 |
+
from tensorflow.keras.models import load_model
|
8 |
+
from tensorflow.keras.preprocessing import image
|
9 |
+
import numpy as np
|
10 |
+
|
11 |
+
image_size = (224, 224)
|
12 |
+
__classNames = [ "Bacterial Blight", "Healthy", "Red Rot" ]
|
13 |
+
|
14 |
+
|
15 |
+
# Load the saved model
|
16 |
+
saved_model = load_model("model_folder\sugarcane_disease_model.h5")
|
17 |
+
|
18 |
+
# Load an example image for inference
|
19 |
+
|
20 |
+
# Bacterial Blight
|
21 |
+
Bacterial_Blight_img_path = ['test_img_folder\Bacterial Blight\S_BLB (10).JPG', 'test_img_folder\Bacterial Blight\S_BLB (12).JPG', 'test_img_folder\Bacterial Blight\S_BLB (17).JPG', 'test_img_folder\Bacterial Blight\S_BLB (20).JPG']
|
22 |
+
|
23 |
+
# Healthy
|
24 |
+
Healthy_img_path = ['test_img_folder\Healthy\S_H (12).jpg', 'test_img_folder\Healthy\S_H (14).jpg', 'test_img_folder\Healthy\S_H (19).jpg', 'test_img_folder\Healthy\S_H (100).JPG']
|
25 |
+
|
26 |
+
# Red Rot
|
27 |
+
Red_Rot_img_path = ['test_img_folder\Red Rot\S_RR (12).JPG', 'test_img_folder\Red Rot\S_RR (16).JPG', 'test_img_folder\Red Rot\S_RR (21).JPG', 'test_img_folder\Red Rot\S_RR (100).JPG']
|
28 |
+
|
29 |
+
|
30 |
+
# select img_path
|
31 |
+
|
32 |
+
# img_path = Bacterial_Blight_img_path[0]
|
33 |
+
# img_path = Healthy_img_path[0]
|
34 |
+
img_path = Red_Rot_img_path[0]
|
35 |
+
|
36 |
+
|
37 |
+
img = image.load_img(img_path, target_size=image_size)
|
38 |
+
img_array = image.img_to_array(img)
|
39 |
+
img_array = np.expand_dims(img_array, axis=0) / 255.0
|
40 |
+
|
41 |
+
# Make predictions
|
42 |
+
predictions = saved_model.predict(img_array)
|
43 |
+
|
44 |
+
# Get the predicted class
|
45 |
+
predicted_class = np.argmax(predictions)
|
46 |
+
print("predicted_class : ", predicted_class)
|
47 |
+
print(f"Predicted Class: {__classNames[predicted_class]}")
|
__crop-disease-detection/Research/test.py
ADDED
@@ -0,0 +1,65 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Model_related_data = {
|
2 |
+
"tomatomodel" : {
|
3 |
+
"dataset" : {
|
4 |
+
"total_images" : 14678,
|
5 |
+
"total_classes" : 10,
|
6 |
+
"classes_names" : [
|
7 |
+
"Late_blight",
|
8 |
+
"healthy",
|
9 |
+
"Early_blight",
|
10 |
+
"Septoria_leaf_spot",
|
11 |
+
"Tomato_Yellow_Leaf_Curl_Virus",
|
12 |
+
"Bacterial_spot",
|
13 |
+
"Target_Spot",
|
14 |
+
"Tomato_mosaic_virus",
|
15 |
+
"Leaf_Mold",
|
16 |
+
"Spider_mites Two-spotted_spider_mite",
|
17 |
+
],
|
18 |
+
},
|
19 |
+
|
20 |
+
"training" : {
|
21 |
+
"epochs" : 7,
|
22 |
+
"batch_size" : 32,
|
23 |
+
"img_frame_size" : (224,224),
|
24 |
+
"CNN_layers" : 5,
|
25 |
+
"CNN_layer_name" : 'relu',
|
26 |
+
}
|
27 |
+
},
|
28 |
+
|
29 |
+
"sugarcanemodel" : {
|
30 |
+
"dataset" : {
|
31 |
+
"total_images" : 240,
|
32 |
+
"total_classes" : 3,
|
33 |
+
"classes_names" : [ "Bacterial Blight", "Healthy", "Red Rot" ],
|
34 |
+
},
|
35 |
+
|
36 |
+
"training" : {
|
37 |
+
"epochs" : 10,
|
38 |
+
"batch_size" : 32,
|
39 |
+
"img_frame_size" : (224,224),
|
40 |
+
"CNN_layers" : 5,
|
41 |
+
"CNN_layer_name" : 'relu',
|
42 |
+
}
|
43 |
+
},
|
44 |
+
|
45 |
+
"cottonmodel" : {
|
46 |
+
"dataset" : {
|
47 |
+
"total_images" : 1951,
|
48 |
+
"total_classes" : 4,
|
49 |
+
"classes_names" : ["Diseased Cotton Leaf", "Diseased Cotton Plant", "Fresh Cotton Leaf", "Fresh Cotton Plant"],
|
50 |
+
},
|
51 |
+
|
52 |
+
"training" : {
|
53 |
+
"epochs" : 10,
|
54 |
+
"batch_size" : 32,
|
55 |
+
"img_frame_size" : (224,224),
|
56 |
+
"CNN_layers" : 4,
|
57 |
+
"CNN_layer_name" : 'relu',
|
58 |
+
}
|
59 |
+
},
|
60 |
+
|
61 |
+
}
|
62 |
+
|
63 |
+
print(Model_related_data['tomatomodel'])
|
64 |
+
print(Model_related_data['tomatomodel']['dataset']['classes_names'])
|
65 |
+
print(Model_related_data['tomatomodel']['training'])
|
__crop-disease-detection/Run-on-Colab-CropDiseaseDetector_FlaskNgrok_test.ipynb
ADDED
@@ -0,0 +1,1272 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": 1,
|
6 |
+
"metadata": {
|
7 |
+
"colab": {
|
8 |
+
"base_uri": "https://localhost:8080/"
|
9 |
+
},
|
10 |
+
"id": "ngJ3y91pqJIe",
|
11 |
+
"outputId": "c274d048-341b-49cb-a607-ebcbf738e09b"
|
12 |
+
},
|
13 |
+
"outputs": [
|
14 |
+
{
|
15 |
+
"name": "stdout",
|
16 |
+
"output_type": "stream",
|
17 |
+
"text": [
|
18 |
+
"Cloning into 'cropDisease-classification'...\n",
|
19 |
+
"remote: Enumerating objects: 139, done.\u001b[K\n",
|
20 |
+
"remote: Counting objects: 100% (23/23), done.\u001b[K\n",
|
21 |
+
"remote: Compressing objects: 100% (19/19), done.\u001b[K\n",
|
22 |
+
"remote: Total 139 (delta 2), reused 17 (delta 1), pack-reused 116\u001b[K\n",
|
23 |
+
"Receiving objects: 100% (139/139), 83.34 MiB | 36.41 MiB/s, done.\n",
|
24 |
+
"Resolving deltas: 100% (2/2), done.\n",
|
25 |
+
"Filtering content: 100% (3/3), 510.39 MiB | 57.76 MiB/s, done.\n"
|
26 |
+
]
|
27 |
+
}
|
28 |
+
],
|
29 |
+
"source": [
|
30 |
+
"# !git clone https://github.com/AssemblyAI-Examples/flask-gpu-app.git\n",
|
31 |
+
"\n",
|
32 |
+
"!git clone https://github.com/HandMadeProjects/cropDisease-classification.git"
|
33 |
+
]
|
34 |
+
},
|
35 |
+
{
|
36 |
+
"cell_type": "code",
|
37 |
+
"execution_count": 2,
|
38 |
+
"metadata": {
|
39 |
+
"id": "gyWeidA_qQAf"
|
40 |
+
},
|
41 |
+
"outputs": [],
|
42 |
+
"source": [
|
43 |
+
"import os\n",
|
44 |
+
"os.chdir(\"cropDisease-classification/__crop-disease-detection\")"
|
45 |
+
]
|
46 |
+
},
|
47 |
+
{
|
48 |
+
"cell_type": "code",
|
49 |
+
"execution_count": 3,
|
50 |
+
"metadata": {
|
51 |
+
"colab": {
|
52 |
+
"base_uri": "https://localhost:8080/"
|
53 |
+
},
|
54 |
+
"id": "LLw1CbCHtyI2",
|
55 |
+
"outputId": "a47126b4-9d7d-489c-9f43-54c34e9fe17d"
|
56 |
+
},
|
57 |
+
"outputs": [
|
58 |
+
{
|
59 |
+
"name": "stdout",
|
60 |
+
"output_type": "stream",
|
61 |
+
"text": [
|
62 |
+
"app.py\t\t Dockerfile\tmodel_folder requirements.txt\tstatic\t test_img_folder\n",
|
63 |
+
"docker-details.txt main.py\t__pycache__ Research\t\ttemplates utils.py\n"
|
64 |
+
]
|
65 |
+
}
|
66 |
+
],
|
67 |
+
"source": [
|
68 |
+
"!ls"
|
69 |
+
]
|
70 |
+
},
|
71 |
+
{
|
72 |
+
"cell_type": "code",
|
73 |
+
"execution_count": 4,
|
74 |
+
"metadata": {
|
75 |
+
"colab": {
|
76 |
+
"base_uri": "https://localhost:8080/"
|
77 |
+
},
|
78 |
+
"id": "ROxrXn_Rt_tk",
|
79 |
+
"outputId": "34429ae7-4b08-4424-d413-8f6e20647abf"
|
80 |
+
},
|
81 |
+
"outputs": [
|
82 |
+
{
|
83 |
+
"name": "stdout",
|
84 |
+
"output_type": "stream",
|
85 |
+
"text": [
|
86 |
+
"Package Version\n",
|
87 |
+
"-------------------------------- ---------------------\n",
|
88 |
+
"absl-py 1.4.0\n",
|
89 |
+
"aiohttp 3.9.1\n",
|
90 |
+
"aiosignal 1.3.1\n",
|
91 |
+
"alabaster 0.7.13\n",
|
92 |
+
"albumentations 1.3.1\n",
|
93 |
+
"altair 4.2.2\n",
|
94 |
+
"anyio 3.7.1\n",
|
95 |
+
"appdirs 1.4.4\n",
|
96 |
+
"argon2-cffi 23.1.0\n",
|
97 |
+
"argon2-cffi-bindings 21.2.0\n",
|
98 |
+
"array-record 0.5.0\n",
|
99 |
+
"arviz 0.15.1\n",
|
100 |
+
"astropy 5.3.4\n",
|
101 |
+
"astunparse 1.6.3\n",
|
102 |
+
"async-timeout 4.0.3\n",
|
103 |
+
"atpublic 4.0\n",
|
104 |
+
"attrs 23.1.0\n",
|
105 |
+
"audioread 3.0.1\n",
|
106 |
+
"autograd 1.6.2\n",
|
107 |
+
"Babel 2.13.1\n",
|
108 |
+
"backcall 0.2.0\n",
|
109 |
+
"beautifulsoup4 4.11.2\n",
|
110 |
+
"bidict 0.22.1\n",
|
111 |
+
"bigframes 0.15.0\n",
|
112 |
+
"bleach 6.1.0\n",
|
113 |
+
"blinker 1.4\n",
|
114 |
+
"blis 0.7.11\n",
|
115 |
+
"blosc2 2.0.0\n",
|
116 |
+
"bokeh 3.3.1\n",
|
117 |
+
"bqplot 0.12.42\n",
|
118 |
+
"branca 0.7.0\n",
|
119 |
+
"build 1.0.3\n",
|
120 |
+
"CacheControl 0.13.1\n",
|
121 |
+
"cachetools 5.3.2\n",
|
122 |
+
"catalogue 2.0.10\n",
|
123 |
+
"certifi 2023.11.17\n",
|
124 |
+
"cffi 1.16.0\n",
|
125 |
+
"chardet 5.2.0\n",
|
126 |
+
"charset-normalizer 3.3.2\n",
|
127 |
+
"chex 0.1.7\n",
|
128 |
+
"click 8.1.7\n",
|
129 |
+
"click-plugins 1.1.1\n",
|
130 |
+
"cligj 0.7.2\n",
|
131 |
+
"cloudpickle 2.2.1\n",
|
132 |
+
"cmake 3.27.7\n",
|
133 |
+
"cmdstanpy 1.2.0\n",
|
134 |
+
"colorcet 3.0.1\n",
|
135 |
+
"colorlover 0.3.0\n",
|
136 |
+
"colour 0.1.5\n",
|
137 |
+
"community 1.0.0b1\n",
|
138 |
+
"confection 0.1.4\n",
|
139 |
+
"cons 0.4.6\n",
|
140 |
+
"contextlib2 21.6.0\n",
|
141 |
+
"contourpy 1.2.0\n",
|
142 |
+
"cryptography 41.0.7\n",
|
143 |
+
"cufflinks 0.17.3\n",
|
144 |
+
"cupy-cuda11x 11.0.0\n",
|
145 |
+
"cvxopt 1.3.2\n",
|
146 |
+
"cvxpy 1.3.2\n",
|
147 |
+
"cycler 0.12.1\n",
|
148 |
+
"cymem 2.0.8\n",
|
149 |
+
"Cython 3.0.6\n",
|
150 |
+
"dask 2023.8.1\n",
|
151 |
+
"datascience 0.17.6\n",
|
152 |
+
"db-dtypes 1.1.1\n",
|
153 |
+
"dbus-python 1.2.18\n",
|
154 |
+
"debugpy 1.6.6\n",
|
155 |
+
"decorator 4.4.2\n",
|
156 |
+
"defusedxml 0.7.1\n",
|
157 |
+
"diskcache 5.6.3\n",
|
158 |
+
"distributed 2023.8.1\n",
|
159 |
+
"distro 1.7.0\n",
|
160 |
+
"dlib 19.24.2\n",
|
161 |
+
"dm-tree 0.1.8\n",
|
162 |
+
"docutils 0.18.1\n",
|
163 |
+
"dopamine-rl 4.0.6\n",
|
164 |
+
"duckdb 0.9.2\n",
|
165 |
+
"earthengine-api 0.1.381\n",
|
166 |
+
"easydict 1.11\n",
|
167 |
+
"ecos 2.0.12\n",
|
168 |
+
"editdistance 0.6.2\n",
|
169 |
+
"eerepr 0.0.4\n",
|
170 |
+
"en-core-web-sm 3.6.0\n",
|
171 |
+
"entrypoints 0.4\n",
|
172 |
+
"et-xmlfile 1.1.0\n",
|
173 |
+
"etils 1.5.2\n",
|
174 |
+
"etuples 0.3.9\n",
|
175 |
+
"exceptiongroup 1.2.0\n",
|
176 |
+
"fastai 2.7.13\n",
|
177 |
+
"fastcore 1.5.29\n",
|
178 |
+
"fastdownload 0.0.7\n",
|
179 |
+
"fastjsonschema 2.19.0\n",
|
180 |
+
"fastprogress 1.0.3\n",
|
181 |
+
"fastrlock 0.8.2\n",
|
182 |
+
"filelock 3.13.1\n",
|
183 |
+
"fiona 1.9.5\n",
|
184 |
+
"firebase-admin 5.3.0\n",
|
185 |
+
"Flask 2.2.5\n",
|
186 |
+
"flatbuffers 23.5.26\n",
|
187 |
+
"flax 0.7.5\n",
|
188 |
+
"folium 0.14.0\n",
|
189 |
+
"fonttools 4.45.1\n",
|
190 |
+
"frozendict 2.3.10\n",
|
191 |
+
"frozenlist 1.4.0\n",
|
192 |
+
"fsspec 2023.6.0\n",
|
193 |
+
"future 0.18.3\n",
|
194 |
+
"gast 0.5.4\n",
|
195 |
+
"gcsfs 2023.6.0\n",
|
196 |
+
"GDAL 3.4.3\n",
|
197 |
+
"gdown 4.6.6\n",
|
198 |
+
"geemap 0.28.2\n",
|
199 |
+
"gensim 4.3.2\n",
|
200 |
+
"geocoder 1.38.1\n",
|
201 |
+
"geographiclib 2.0\n",
|
202 |
+
"geopandas 0.13.2\n",
|
203 |
+
"geopy 2.3.0\n",
|
204 |
+
"gin-config 0.5.0\n",
|
205 |
+
"glob2 0.7\n",
|
206 |
+
"google 2.0.3\n",
|
207 |
+
"google-ai-generativelanguage 0.3.3\n",
|
208 |
+
"google-api-core 2.11.1\n",
|
209 |
+
"google-api-python-client 2.84.0\n",
|
210 |
+
"google-auth 2.17.3\n",
|
211 |
+
"google-auth-httplib2 0.1.1\n",
|
212 |
+
"google-auth-oauthlib 1.0.0\n",
|
213 |
+
"google-cloud-aiplatform 1.36.4\n",
|
214 |
+
"google-cloud-bigquery 3.12.0\n",
|
215 |
+
"google-cloud-bigquery-connection 1.12.1\n",
|
216 |
+
"google-cloud-bigquery-storage 2.23.0\n",
|
217 |
+
"google-cloud-core 2.3.3\n",
|
218 |
+
"google-cloud-datastore 2.15.2\n",
|
219 |
+
"google-cloud-firestore 2.11.1\n",
|
220 |
+
"google-cloud-functions 1.13.3\n",
|
221 |
+
"google-cloud-iam 2.12.2\n",
|
222 |
+
"google-cloud-language 2.9.1\n",
|
223 |
+
"google-cloud-resource-manager 1.10.4\n",
|
224 |
+
"google-cloud-storage 2.8.0\n",
|
225 |
+
"google-cloud-translate 3.11.3\n",
|
226 |
+
"google-colab 1.0.0\n",
|
227 |
+
"google-crc32c 1.5.0\n",
|
228 |
+
"google-generativeai 0.2.2\n",
|
229 |
+
"google-pasta 0.2.0\n",
|
230 |
+
"google-resumable-media 2.6.0\n",
|
231 |
+
"googleapis-common-protos 1.61.0\n",
|
232 |
+
"googledrivedownloader 0.4\n",
|
233 |
+
"graphviz 0.20.1\n",
|
234 |
+
"greenlet 3.0.1\n",
|
235 |
+
"grpc-google-iam-v1 0.12.7\n",
|
236 |
+
"grpcio 1.59.3\n",
|
237 |
+
"grpcio-status 1.48.2\n",
|
238 |
+
"gspread 3.4.2\n",
|
239 |
+
"gspread-dataframe 3.3.1\n",
|
240 |
+
"gym 0.25.2\n",
|
241 |
+
"gym-notices 0.0.8\n",
|
242 |
+
"h5netcdf 1.3.0\n",
|
243 |
+
"h5py 3.9.0\n",
|
244 |
+
"holidays 0.37\n",
|
245 |
+
"holoviews 1.17.1\n",
|
246 |
+
"html5lib 1.1\n",
|
247 |
+
"httpimport 1.3.1\n",
|
248 |
+
"httplib2 0.22.0\n",
|
249 |
+
"huggingface-hub 0.19.4\n",
|
250 |
+
"humanize 4.7.0\n",
|
251 |
+
"hyperopt 0.2.7\n",
|
252 |
+
"ibis-framework 6.2.0\n",
|
253 |
+
"idna 3.6\n",
|
254 |
+
"imageio 2.31.6\n",
|
255 |
+
"imageio-ffmpeg 0.4.9\n",
|
256 |
+
"imagesize 1.4.1\n",
|
257 |
+
"imbalanced-learn 0.10.1\n",
|
258 |
+
"imgaug 0.4.0\n",
|
259 |
+
"importlib-metadata 6.8.0\n",
|
260 |
+
"importlib-resources 6.1.1\n",
|
261 |
+
"imutils 0.5.4\n",
|
262 |
+
"inflect 7.0.0\n",
|
263 |
+
"iniconfig 2.0.0\n",
|
264 |
+
"install 1.3.5\n",
|
265 |
+
"intel-openmp 2023.2.0\n",
|
266 |
+
"ipyevents 2.0.2\n",
|
267 |
+
"ipyfilechooser 0.6.0\n",
|
268 |
+
"ipykernel 5.5.6\n",
|
269 |
+
"ipyleaflet 0.18.0\n",
|
270 |
+
"ipython 7.34.0\n",
|
271 |
+
"ipython-genutils 0.2.0\n",
|
272 |
+
"ipython-sql 0.5.0\n",
|
273 |
+
"ipytree 0.2.2\n",
|
274 |
+
"ipywidgets 7.7.1\n",
|
275 |
+
"itsdangerous 2.1.2\n",
|
276 |
+
"jax 0.4.20\n",
|
277 |
+
"jaxlib 0.4.20+cuda11.cudnn86\n",
|
278 |
+
"jeepney 0.7.1\n",
|
279 |
+
"jieba 0.42.1\n",
|
280 |
+
"Jinja2 3.1.2\n",
|
281 |
+
"joblib 1.3.2\n",
|
282 |
+
"jsonpickle 3.0.2\n",
|
283 |
+
"jsonschema 4.19.2\n",
|
284 |
+
"jsonschema-specifications 2023.11.2\n",
|
285 |
+
"jupyter-client 6.1.12\n",
|
286 |
+
"jupyter-console 6.1.0\n",
|
287 |
+
"jupyter_core 5.5.0\n",
|
288 |
+
"jupyter-server 1.24.0\n",
|
289 |
+
"jupyterlab_pygments 0.3.0\n",
|
290 |
+
"jupyterlab-widgets 3.0.9\n",
|
291 |
+
"kaggle 1.5.16\n",
|
292 |
+
"keras 2.14.0\n",
|
293 |
+
"keyring 23.5.0\n",
|
294 |
+
"kiwisolver 1.4.5\n",
|
295 |
+
"langcodes 3.3.0\n",
|
296 |
+
"launchpadlib 1.10.16\n",
|
297 |
+
"lazr.restfulclient 0.14.4\n",
|
298 |
+
"lazr.uri 1.0.6\n",
|
299 |
+
"lazy_loader 0.3\n",
|
300 |
+
"libclang 16.0.6\n",
|
301 |
+
"librosa 0.10.1\n",
|
302 |
+
"lida 0.0.10\n",
|
303 |
+
"lightgbm 4.1.0\n",
|
304 |
+
"linkify-it-py 2.0.2\n",
|
305 |
+
"llmx 0.0.15a0\n",
|
306 |
+
"llvmlite 0.41.1\n",
|
307 |
+
"locket 1.0.0\n",
|
308 |
+
"logical-unification 0.4.6\n",
|
309 |
+
"lxml 4.9.3\n",
|
310 |
+
"malloy 2023.1064\n",
|
311 |
+
"Markdown 3.5.1\n",
|
312 |
+
"markdown-it-py 3.0.0\n",
|
313 |
+
"MarkupSafe 2.1.3\n",
|
314 |
+
"matplotlib 3.7.1\n",
|
315 |
+
"matplotlib-inline 0.1.6\n",
|
316 |
+
"matplotlib-venn 0.11.9\n",
|
317 |
+
"mdit-py-plugins 0.4.0\n",
|
318 |
+
"mdurl 0.1.2\n",
|
319 |
+
"miniKanren 1.0.3\n",
|
320 |
+
"missingno 0.5.2\n",
|
321 |
+
"mistune 0.8.4\n",
|
322 |
+
"mizani 0.9.3\n",
|
323 |
+
"mkl 2023.2.0\n",
|
324 |
+
"ml-dtypes 0.2.0\n",
|
325 |
+
"mlxtend 0.22.0\n",
|
326 |
+
"more-itertools 10.1.0\n",
|
327 |
+
"moviepy 1.0.3\n",
|
328 |
+
"mpmath 1.3.0\n",
|
329 |
+
"msgpack 1.0.7\n",
|
330 |
+
"multidict 6.0.4\n",
|
331 |
+
"multipledispatch 1.0.0\n",
|
332 |
+
"multitasking 0.0.11\n",
|
333 |
+
"murmurhash 1.0.10\n",
|
334 |
+
"music21 9.1.0\n",
|
335 |
+
"natsort 8.4.0\n",
|
336 |
+
"nbclassic 1.0.0\n",
|
337 |
+
"nbclient 0.9.0\n",
|
338 |
+
"nbconvert 6.5.4\n",
|
339 |
+
"nbformat 5.9.2\n",
|
340 |
+
"nest-asyncio 1.5.8\n",
|
341 |
+
"networkx 3.2.1\n",
|
342 |
+
"nibabel 4.0.2\n",
|
343 |
+
"nltk 3.8.1\n",
|
344 |
+
"notebook 6.5.5\n",
|
345 |
+
"notebook_shim 0.2.3\n",
|
346 |
+
"numba 0.58.1\n",
|
347 |
+
"numexpr 2.8.7\n",
|
348 |
+
"numpy 1.23.5\n",
|
349 |
+
"oauth2client 4.1.3\n",
|
350 |
+
"oauthlib 3.2.2\n",
|
351 |
+
"opencv-contrib-python 4.8.0.76\n",
|
352 |
+
"opencv-python 4.8.0.76\n",
|
353 |
+
"opencv-python-headless 4.8.1.78\n",
|
354 |
+
"openpyxl 3.1.2\n",
|
355 |
+
"opt-einsum 3.3.0\n",
|
356 |
+
"optax 0.1.7\n",
|
357 |
+
"orbax-checkpoint 0.4.3\n",
|
358 |
+
"osqp 0.6.2.post8\n",
|
359 |
+
"packaging 23.2\n",
|
360 |
+
"pandas 1.5.3\n",
|
361 |
+
"pandas-datareader 0.10.0\n",
|
362 |
+
"pandas-gbq 0.17.9\n",
|
363 |
+
"pandas-stubs 1.5.3.230304\n",
|
364 |
+
"pandocfilters 1.5.0\n",
|
365 |
+
"panel 1.3.4\n",
|
366 |
+
"param 2.0.1\n",
|
367 |
+
"parso 0.8.3\n",
|
368 |
+
"parsy 2.1\n",
|
369 |
+
"partd 1.4.1\n",
|
370 |
+
"pathlib 1.0.1\n",
|
371 |
+
"pathy 0.10.3\n",
|
372 |
+
"patsy 0.5.3\n",
|
373 |
+
"peewee 3.17.0\n",
|
374 |
+
"pexpect 4.9.0\n",
|
375 |
+
"pickleshare 0.7.5\n",
|
376 |
+
"Pillow 9.4.0\n",
|
377 |
+
"pip 23.1.2\n",
|
378 |
+
"pip-tools 6.13.0\n",
|
379 |
+
"platformdirs 4.0.0\n",
|
380 |
+
"plotly 5.15.0\n",
|
381 |
+
"plotnine 0.12.4\n",
|
382 |
+
"pluggy 1.3.0\n",
|
383 |
+
"polars 0.17.3\n",
|
384 |
+
"pooch 1.8.0\n",
|
385 |
+
"portpicker 1.5.2\n",
|
386 |
+
"prefetch-generator 1.0.3\n",
|
387 |
+
"preshed 3.0.9\n",
|
388 |
+
"prettytable 3.9.0\n",
|
389 |
+
"proglog 0.1.10\n",
|
390 |
+
"progressbar2 4.2.0\n",
|
391 |
+
"prometheus-client 0.19.0\n",
|
392 |
+
"promise 2.3\n",
|
393 |
+
"prompt-toolkit 3.0.41\n",
|
394 |
+
"prophet 1.1.5\n",
|
395 |
+
"proto-plus 1.22.3\n",
|
396 |
+
"protobuf 3.20.3\n",
|
397 |
+
"psutil 5.9.5\n",
|
398 |
+
"psycopg2 2.9.9\n",
|
399 |
+
"ptyprocess 0.7.0\n",
|
400 |
+
"py-cpuinfo 9.0.0\n",
|
401 |
+
"py4j 0.10.9.7\n",
|
402 |
+
"pyarrow 9.0.0\n",
|
403 |
+
"pyasn1 0.5.1\n",
|
404 |
+
"pyasn1-modules 0.3.0\n",
|
405 |
+
"pycocotools 2.0.7\n",
|
406 |
+
"pycparser 2.21\n",
|
407 |
+
"pyct 0.5.0\n",
|
408 |
+
"pydantic 1.10.13\n",
|
409 |
+
"pydata-google-auth 1.8.2\n",
|
410 |
+
"pydot 1.4.2\n",
|
411 |
+
"pydot-ng 2.0.0\n",
|
412 |
+
"pydotplus 2.0.2\n",
|
413 |
+
"PyDrive 1.3.1\n",
|
414 |
+
"PyDrive2 1.6.3\n",
|
415 |
+
"pyerfa 2.0.1.1\n",
|
416 |
+
"pygame 2.5.2\n",
|
417 |
+
"Pygments 2.16.1\n",
|
418 |
+
"PyGObject 3.42.1\n",
|
419 |
+
"PyJWT 2.3.0\n",
|
420 |
+
"pymc 5.7.2\n",
|
421 |
+
"pymystem3 0.2.0\n",
|
422 |
+
"PyOpenGL 3.1.7\n",
|
423 |
+
"pyOpenSSL 23.3.0\n",
|
424 |
+
"pyparsing 3.1.1\n",
|
425 |
+
"pyperclip 1.8.2\n",
|
426 |
+
"pyproj 3.6.1\n",
|
427 |
+
"pyproject_hooks 1.0.0\n",
|
428 |
+
"pyshp 2.3.1\n",
|
429 |
+
"PySocks 1.7.1\n",
|
430 |
+
"pytensor 2.14.2\n",
|
431 |
+
"pytest 7.4.3\n",
|
432 |
+
"python-apt 0.0.0\n",
|
433 |
+
"python-box 7.1.1\n",
|
434 |
+
"python-dateutil 2.8.2\n",
|
435 |
+
"python-louvain 0.16\n",
|
436 |
+
"python-slugify 8.0.1\n",
|
437 |
+
"python-utils 3.8.1\n",
|
438 |
+
"pytz 2023.3.post1\n",
|
439 |
+
"pyviz_comms 3.0.0\n",
|
440 |
+
"PyWavelets 1.5.0\n",
|
441 |
+
"PyYAML 6.0.1\n",
|
442 |
+
"pyzmq 23.2.1\n",
|
443 |
+
"qdldl 0.1.7.post0\n",
|
444 |
+
"qudida 0.0.4\n",
|
445 |
+
"ratelim 0.1.6\n",
|
446 |
+
"referencing 0.31.1\n",
|
447 |
+
"regex 2023.6.3\n",
|
448 |
+
"requests 2.31.0\n",
|
449 |
+
"requests-oauthlib 1.3.1\n",
|
450 |
+
"requirements-parser 0.5.0\n",
|
451 |
+
"rich 13.7.0\n",
|
452 |
+
"rpds-py 0.13.2\n",
|
453 |
+
"rpy2 3.4.2\n",
|
454 |
+
"rsa 4.9\n",
|
455 |
+
"safetensors 0.4.1\n",
|
456 |
+
"scikit-image 0.19.3\n",
|
457 |
+
"scikit-learn 1.2.2\n",
|
458 |
+
"scipy 1.11.4\n",
|
459 |
+
"scooby 0.9.2\n",
|
460 |
+
"scs 3.2.4.post1\n",
|
461 |
+
"seaborn 0.12.2\n",
|
462 |
+
"SecretStorage 3.3.1\n",
|
463 |
+
"Send2Trash 1.8.2\n",
|
464 |
+
"setuptools 67.7.2\n",
|
465 |
+
"shapely 2.0.2\n",
|
466 |
+
"six 1.16.0\n",
|
467 |
+
"sklearn-pandas 2.2.0\n",
|
468 |
+
"smart-open 6.4.0\n",
|
469 |
+
"sniffio 1.3.0\n",
|
470 |
+
"snowballstemmer 2.2.0\n",
|
471 |
+
"sortedcontainers 2.4.0\n",
|
472 |
+
"soundfile 0.12.1\n",
|
473 |
+
"soupsieve 2.5\n",
|
474 |
+
"soxr 0.3.7\n",
|
475 |
+
"spacy 3.6.1\n",
|
476 |
+
"spacy-legacy 3.0.12\n",
|
477 |
+
"spacy-loggers 1.0.5\n",
|
478 |
+
"Sphinx 5.0.2\n",
|
479 |
+
"sphinxcontrib-applehelp 1.0.7\n",
|
480 |
+
"sphinxcontrib-devhelp 1.0.5\n",
|
481 |
+
"sphinxcontrib-htmlhelp 2.0.4\n",
|
482 |
+
"sphinxcontrib-jsmath 1.0.1\n",
|
483 |
+
"sphinxcontrib-qthelp 1.0.6\n",
|
484 |
+
"sphinxcontrib-serializinghtml 1.1.9\n",
|
485 |
+
"SQLAlchemy 2.0.23\n",
|
486 |
+
"sqlglot 17.16.2\n",
|
487 |
+
"sqlparse 0.4.4\n",
|
488 |
+
"srsly 2.4.8\n",
|
489 |
+
"stanio 0.3.0\n",
|
490 |
+
"statsmodels 0.14.0\n",
|
491 |
+
"sympy 1.12\n",
|
492 |
+
"tables 3.8.0\n",
|
493 |
+
"tabulate 0.9.0\n",
|
494 |
+
"tbb 2021.11.0\n",
|
495 |
+
"tblib 3.0.0\n",
|
496 |
+
"tenacity 8.2.3\n",
|
497 |
+
"tensorboard 2.14.1\n",
|
498 |
+
"tensorboard-data-server 0.7.2\n",
|
499 |
+
"tensorflow 2.14.0\n",
|
500 |
+
"tensorflow-datasets 4.9.3\n",
|
501 |
+
"tensorflow-estimator 2.14.0\n",
|
502 |
+
"tensorflow-gcs-config 2.14.0\n",
|
503 |
+
"tensorflow-hub 0.15.0\n",
|
504 |
+
"tensorflow-io-gcs-filesystem 0.34.0\n",
|
505 |
+
"tensorflow-metadata 1.14.0\n",
|
506 |
+
"tensorflow-probability 0.22.0\n",
|
507 |
+
"tensorstore 0.1.45\n",
|
508 |
+
"termcolor 2.3.0\n",
|
509 |
+
"terminado 0.18.0\n",
|
510 |
+
"text-unidecode 1.3\n",
|
511 |
+
"textblob 0.17.1\n",
|
512 |
+
"tf-slim 1.1.0\n",
|
513 |
+
"thinc 8.1.12\n",
|
514 |
+
"threadpoolctl 3.2.0\n",
|
515 |
+
"tifffile 2023.9.26\n",
|
516 |
+
"tinycss2 1.2.1\n",
|
517 |
+
"tokenizers 0.15.0\n",
|
518 |
+
"toml 0.10.2\n",
|
519 |
+
"tomli 2.0.1\n",
|
520 |
+
"toolz 0.12.0\n",
|
521 |
+
"torch 2.1.0+cu118\n",
|
522 |
+
"torchaudio 2.1.0+cu118\n",
|
523 |
+
"torchdata 0.7.0\n",
|
524 |
+
"torchsummary 1.5.1\n",
|
525 |
+
"torchtext 0.16.0\n",
|
526 |
+
"torchvision 0.16.0+cu118\n",
|
527 |
+
"tornado 6.3.2\n",
|
528 |
+
"tqdm 4.66.1\n",
|
529 |
+
"traitlets 5.7.1\n",
|
530 |
+
"traittypes 0.2.1\n",
|
531 |
+
"transformers 4.35.2\n",
|
532 |
+
"triton 2.1.0\n",
|
533 |
+
"tweepy 4.14.0\n",
|
534 |
+
"typer 0.9.0\n",
|
535 |
+
"types-pytz 2023.3.1.1\n",
|
536 |
+
"types-setuptools 69.0.0.0\n",
|
537 |
+
"typing_extensions 4.5.0\n",
|
538 |
+
"tzlocal 5.2\n",
|
539 |
+
"uc-micro-py 1.0.2\n",
|
540 |
+
"uritemplate 4.1.1\n",
|
541 |
+
"urllib3 2.0.7\n",
|
542 |
+
"vega-datasets 0.9.0\n",
|
543 |
+
"wadllib 1.3.6\n",
|
544 |
+
"wasabi 1.1.2\n",
|
545 |
+
"wcwidth 0.2.12\n",
|
546 |
+
"webcolors 1.13\n",
|
547 |
+
"webencodings 0.5.1\n",
|
548 |
+
"websocket-client 1.6.4\n",
|
549 |
+
"Werkzeug 3.0.1\n",
|
550 |
+
"wheel 0.42.0\n",
|
551 |
+
"widgetsnbextension 3.6.6\n",
|
552 |
+
"wordcloud 1.9.2\n",
|
553 |
+
"wrapt 1.14.1\n",
|
554 |
+
"xarray 2023.7.0\n",
|
555 |
+
"xarray-einstats 0.6.0\n",
|
556 |
+
"xgboost 2.0.2\n",
|
557 |
+
"xlrd 2.0.1\n",
|
558 |
+
"xxhash 3.4.1\n",
|
559 |
+
"xyzservices 2023.10.1\n",
|
560 |
+
"yarl 1.9.3\n",
|
561 |
+
"yellowbrick 1.5\n",
|
562 |
+
"yfinance 0.2.32\n",
|
563 |
+
"zict 3.0.0\n",
|
564 |
+
"zipp 3.17.0\n"
|
565 |
+
]
|
566 |
+
}
|
567 |
+
],
|
568 |
+
"source": [
|
569 |
+
"!pip list"
|
570 |
+
]
|
571 |
+
},
|
572 |
+
{
|
573 |
+
"cell_type": "code",
|
574 |
+
"execution_count": 5,
|
575 |
+
"metadata": {
|
576 |
+
"colab": {
|
577 |
+
"base_uri": "https://localhost:8080/"
|
578 |
+
},
|
579 |
+
"id": "ViS2sA21qUGZ",
|
580 |
+
"outputId": "9865ece2-bde2-40ae-806c-31f184683a86"
|
581 |
+
},
|
582 |
+
"outputs": [
|
583 |
+
{
|
584 |
+
"name": "stdout",
|
585 |
+
"output_type": "stream",
|
586 |
+
"text": [
|
587 |
+
"Requirement already satisfied: Flask in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 1)) (2.2.5)\n",
|
588 |
+
"Collecting pyngrok==4.1.1 (from -r requirements.txt (line 2))\n",
|
589 |
+
" Downloading pyngrok-4.1.1.tar.gz (18 kB)\n",
|
590 |
+
" Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
|
591 |
+
"Collecting flask_ngrok (from -r requirements.txt (line 3))\n",
|
592 |
+
" Downloading flask_ngrok-0.0.25-py3-none-any.whl (3.1 kB)\n",
|
593 |
+
"Requirement already satisfied: tensorflow in /usr/local/lib/python3.10/dist-packages (from -r requirements.txt (line 4)) (2.14.0)\n",
|
594 |
+
"Requirement already satisfied: future in /usr/local/lib/python3.10/dist-packages (from pyngrok==4.1.1->-r requirements.txt (line 2)) (0.18.3)\n",
|
595 |
+
"Requirement already satisfied: PyYAML in /usr/local/lib/python3.10/dist-packages (from pyngrok==4.1.1->-r requirements.txt (line 2)) (6.0.1)\n",
|
596 |
+
"Requirement already satisfied: Werkzeug>=2.2.2 in /usr/local/lib/python3.10/dist-packages (from Flask->-r requirements.txt (line 1)) (3.0.1)\n",
|
597 |
+
"Requirement already satisfied: Jinja2>=3.0 in /usr/local/lib/python3.10/dist-packages (from Flask->-r requirements.txt (line 1)) (3.1.2)\n",
|
598 |
+
"Requirement already satisfied: itsdangerous>=2.0 in /usr/local/lib/python3.10/dist-packages (from Flask->-r requirements.txt (line 1)) (2.1.2)\n",
|
599 |
+
"Requirement already satisfied: click>=8.0 in /usr/local/lib/python3.10/dist-packages (from Flask->-r requirements.txt (line 1)) (8.1.7)\n",
|
600 |
+
"Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from flask_ngrok->-r requirements.txt (line 3)) (2.31.0)\n",
|
601 |
+
"Requirement already satisfied: absl-py>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (1.4.0)\n",
|
602 |
+
"Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (1.6.3)\n",
|
603 |
+
"Requirement already satisfied: flatbuffers>=23.5.26 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (23.5.26)\n",
|
604 |
+
"Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (0.5.4)\n",
|
605 |
+
"Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (0.2.0)\n",
|
606 |
+
"Requirement already satisfied: h5py>=2.9.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (3.9.0)\n",
|
607 |
+
"Requirement already satisfied: libclang>=13.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (16.0.6)\n",
|
608 |
+
"Requirement already satisfied: ml-dtypes==0.2.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (0.2.0)\n",
|
609 |
+
"Requirement already satisfied: numpy>=1.23.5 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (1.23.5)\n",
|
610 |
+
"Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (3.3.0)\n",
|
611 |
+
"Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (23.2)\n",
|
612 |
+
"Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (3.20.3)\n",
|
613 |
+
"Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (67.7.2)\n",
|
614 |
+
"Requirement already satisfied: six>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (1.16.0)\n",
|
615 |
+
"Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (2.3.0)\n",
|
616 |
+
"Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (4.5.0)\n",
|
617 |
+
"Requirement already satisfied: wrapt<1.15,>=1.11.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (1.14.1)\n",
|
618 |
+
"Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (0.34.0)\n",
|
619 |
+
"Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (1.59.3)\n",
|
620 |
+
"Requirement already satisfied: tensorboard<2.15,>=2.14 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (2.14.1)\n",
|
621 |
+
"Requirement already satisfied: tensorflow-estimator<2.15,>=2.14.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (2.14.0)\n",
|
622 |
+
"Requirement already satisfied: keras<2.15,>=2.14.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow->-r requirements.txt (line 4)) (2.14.0)\n",
|
623 |
+
"Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from astunparse>=1.6.0->tensorflow->-r requirements.txt (line 4)) (0.42.0)\n",
|
624 |
+
"Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from Jinja2>=3.0->Flask->-r requirements.txt (line 1)) (2.1.3)\n",
|
625 |
+
"Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (2.17.3)\n",
|
626 |
+
"Requirement already satisfied: google-auth-oauthlib<1.1,>=0.5 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (1.0.0)\n",
|
627 |
+
"Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (3.5.1)\n",
|
628 |
+
"Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (0.7.2)\n",
|
629 |
+
"Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->flask_ngrok->-r requirements.txt (line 3)) (3.3.2)\n",
|
630 |
+
"Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->flask_ngrok->-r requirements.txt (line 3)) (3.6)\n",
|
631 |
+
"Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->flask_ngrok->-r requirements.txt (line 3)) (2.0.7)\n",
|
632 |
+
"Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->flask_ngrok->-r requirements.txt (line 3)) (2023.11.17)\n",
|
633 |
+
"Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (5.3.2)\n",
|
634 |
+
"Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (0.3.0)\n",
|
635 |
+
"Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (4.9)\n",
|
636 |
+
"Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from google-auth-oauthlib<1.1,>=0.5->tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (1.3.1)\n",
|
637 |
+
"Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (0.5.1)\n",
|
638 |
+
"Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<1.1,>=0.5->tensorboard<2.15,>=2.14->tensorflow->-r requirements.txt (line 4)) (3.2.2)\n",
|
639 |
+
"Building wheels for collected packages: pyngrok\n",
|
640 |
+
" Building wheel for pyngrok (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
|
641 |
+
" Created wheel for pyngrok: filename=pyngrok-4.1.1-py3-none-any.whl size=15963 sha256=f1fdb848b9c877e12c25942bc8b676adaeb7a2a73cfc9cce746a805d2dc938be\n",
|
642 |
+
" Stored in directory: /root/.cache/pip/wheels/4c/7c/4c/632fba2ea8e88d8890102eb07bc922e1ca8fa14db5902c91a8\n",
|
643 |
+
"Successfully built pyngrok\n",
|
644 |
+
"Installing collected packages: pyngrok, flask_ngrok\n",
|
645 |
+
"Successfully installed flask_ngrok-0.0.25 pyngrok-4.1.1\n"
|
646 |
+
]
|
647 |
+
}
|
648 |
+
],
|
649 |
+
"source": [
|
650 |
+
"!pip install -r requirements.txt"
|
651 |
+
]
|
652 |
+
},
|
653 |
+
{
|
654 |
+
"cell_type": "code",
|
655 |
+
"execution_count": 6,
|
656 |
+
"metadata": {
|
657 |
+
"colab": {
|
658 |
+
"base_uri": "https://localhost:8080/"
|
659 |
+
},
|
660 |
+
"id": "aTtizNvdqVth",
|
661 |
+
"outputId": "7e8dc2ae-553e-4511-d6fb-b8114ee2fe3d"
|
662 |
+
},
|
663 |
+
"outputs": [
|
664 |
+
{
|
665 |
+
"name": "stdout",
|
666 |
+
"output_type": "stream",
|
667 |
+
"text": [
|
668 |
+
"Authtoken saved to configuration file: /root/.ngrok2/ngrok.yml\n"
|
669 |
+
]
|
670 |
+
}
|
671 |
+
],
|
672 |
+
"source": [
|
673 |
+
"!ngrok authtoken --your--ngrok--authtoken"
|
674 |
+
]
|
675 |
+
},
|
676 |
+
{
|
677 |
+
"cell_type": "code",
|
678 |
+
"execution_count": 7,
|
679 |
+
"metadata": {
|
680 |
+
"colab": {
|
681 |
+
"base_uri": "https://localhost:8080/"
|
682 |
+
},
|
683 |
+
"id": "y-YaUs68qYEb",
|
684 |
+
"outputId": "87cc6ddb-c26d-404e-95e8-7f31da5c3478"
|
685 |
+
},
|
686 |
+
"outputs": [
|
687 |
+
{
|
688 |
+
"name": "stdout",
|
689 |
+
"output_type": "stream",
|
690 |
+
"text": [
|
691 |
+
"2023-12-06 15:20:46.739778: E tensorflow/compiler/xla/stream_executor/cuda/cuda_dnn.cc:9342] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n",
|
692 |
+
"2023-12-06 15:20:46.739855: E tensorflow/compiler/xla/stream_executor/cuda/cuda_fft.cc:609] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n",
|
693 |
+
"2023-12-06 15:20:46.739894: E tensorflow/compiler/xla/stream_executor/cuda/cuda_blas.cc:1518] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n",
|
694 |
+
"2023-12-06 15:20:46.748309: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n",
|
695 |
+
"To enable the following instructions: AVX2 FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n",
|
696 |
+
"2023-12-06 15:20:48.188419: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n",
|
697 |
+
"WARNING:tensorflow:From /usr/local/lib/python3.10/dist-packages/tensorflow/python/compat/v2_compat.py:108: disable_resource_variables (from tensorflow.python.ops.variable_scope) is deprecated and will be removed in a future version.\n",
|
698 |
+
"Instructions for updating:\n",
|
699 |
+
"non-resource variables are not supported in the long term\n",
|
700 |
+
" * Serving Flask app 'main'\n",
|
701 |
+
" * Debug mode: off\n",
|
702 |
+
"\u001b[31m\u001b[1mWARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.\u001b[0m\n",
|
703 |
+
" * Running on http://127.0.0.1:5000\n",
|
704 |
+
"\u001b[33mPress CTRL+C to quit\u001b[0m\n",
|
705 |
+
" * Running on http://b902-35-245-203-162.ngrok-free.app\n",
|
706 |
+
" * Traffic stats available on http://127.0.0.1:4040\n",
|
707 |
+
"127.0.0.1 - - [06/Dec/2023 15:20:57] \"GET / HTTP/1.1\" 200 -\n",
|
708 |
+
"127.0.0.1 - - [06/Dec/2023 15:20:58] \"GET /static/setup/tomato_image.jpeg HTTP/1.1\" 200 -\n",
|
709 |
+
"127.0.0.1 - - [06/Dec/2023 15:20:58] \"GET /static/setup/logo.png HTTP/1.1\" 200 -\n",
|
710 |
+
"127.0.0.1 - - [06/Dec/2023 15:20:58] \"GET /static/setup/sugarcane_image.jpeg HTTP/1.1\" 200 -\n",
|
711 |
+
"127.0.0.1 - - [06/Dec/2023 15:20:59] \"GET /static/setup/cotton_image.jpeg HTTP/1.1\" 200 -\n",
|
712 |
+
"127.0.0.1 - - [06/Dec/2023 15:20:59] \"\u001b[33mGET /favicon.ico HTTP/1.1\u001b[0m\" 404 -\n",
|
713 |
+
"127.0.0.1 - - [06/Dec/2023 15:21:03] \"GET /cropmodel/?modelname=sugarcanemodel HTTP/1.1\" 200 -\n",
|
714 |
+
"127.0.0.1 - - [06/Dec/2023 15:21:04] \"\u001b[36mGET /static/setup/logo.png HTTP/1.1\u001b[0m\" 304 -\n",
|
715 |
+
"127.0.0.1 - - [06/Dec/2023 15:21:04] \"GET /static/setup/plant.png HTTP/1.1\" 200 -\n",
|
716 |
+
"WARNING:tensorflow:Error in loading the saved optimizer state. As a result, your model is starting with a freshly initialized optimizer.\n",
|
717 |
+
"1/1 [==============================] - 0s 273ms/step\n",
|
718 |
+
"sugarcanemodel __ Predicted class - 0 : Bacterial Blight\n",
|
719 |
+
"--- result : Bacterial Blight\n",
|
720 |
+
"127.0.0.1 - - [06/Dec/2023 15:21:30] \"POST /upload HTTP/1.1\" 200 -\n",
|
721 |
+
"127.0.0.1 - - [06/Dec/2023 15:21:31] \"\u001b[36mGET /static/setup/logo.png HTTP/1.1\u001b[0m\" 304 -\n",
|
722 |
+
"127.0.0.1 - - [06/Dec/2023 15:21:31] \"GET /static/uploaded_images/imageFile.jpeg HTTP/1.1\" 200 -\n",
|
723 |
+
"WARNING:tensorflow:Error in loading the saved optimizer state. As a result, your model is starting with a freshly initialized optimizer.\n",
|
724 |
+
"1/1 [==============================] - 0s 99ms/step\n",
|
725 |
+
"sugarcanemodel __ Predicted class - 1 : Healthy\n",
|
726 |
+
"--- result : Healthy\n",
|
727 |
+
"127.0.0.1 - - [06/Dec/2023 15:21:52] \"POST /upload HTTP/1.1\" 200 -\n",
|
728 |
+
"127.0.0.1 - - [06/Dec/2023 15:21:52] \"GET /static/uploaded_images/imageFile.jpeg HTTP/1.1\" 200 -\n",
|
729 |
+
"127.0.0.1 - - [06/Dec/2023 15:21:52] \"\u001b[36mGET /static/setup/logo.png HTTP/1.1\u001b[0m\" 304 -\n",
|
730 |
+
"Exception ignored in: <module 'threading' from '/usr/lib/python3.10/threading.py'>\n",
|
731 |
+
"Traceback (most recent call last):\n",
|
732 |
+
" File \"/usr/lib/python3.10/threading.py\", line 1540, in _shutdown\n",
|
733 |
+
" if _main_thread.ident == get_ident():\n",
|
734 |
+
"KeyboardInterrupt: \n"
|
735 |
+
]
|
736 |
+
}
|
737 |
+
],
|
738 |
+
"source": [
|
739 |
+
"!python main.py"
|
740 |
+
]
|
741 |
+
},
|
742 |
+
{
|
743 |
+
"cell_type": "code",
|
744 |
+
"execution_count": null,
|
745 |
+
"metadata": {
|
746 |
+
"colab": {
|
747 |
+
"base_uri": "https://localhost:8080/"
|
748 |
+
},
|
749 |
+
"id": "HV7DdzrHsFAu",
|
750 |
+
"outputId": "d33d37dc-0882-41c7-9da2-d59a30199ec2"
|
751 |
+
},
|
752 |
+
"outputs": [
|
753 |
+
{
|
754 |
+
"name": "stdout",
|
755 |
+
"output_type": "stream",
|
756 |
+
"text": [
|
757 |
+
"Package Version\n",
|
758 |
+
"-------------------------------- ---------------------\n",
|
759 |
+
"absl-py 1.4.0\n",
|
760 |
+
"accelerate 0.25.0\n",
|
761 |
+
"aiohttp 3.9.1\n",
|
762 |
+
"aiosignal 1.3.1\n",
|
763 |
+
"alabaster 0.7.13\n",
|
764 |
+
"albumentations 1.3.1\n",
|
765 |
+
"altair 4.2.2\n",
|
766 |
+
"anyio 3.7.1\n",
|
767 |
+
"appdirs 1.4.4\n",
|
768 |
+
"argon2-cffi 23.1.0\n",
|
769 |
+
"argon2-cffi-bindings 21.2.0\n",
|
770 |
+
"array-record 0.5.0\n",
|
771 |
+
"arviz 0.15.1\n",
|
772 |
+
"astropy 5.3.4\n",
|
773 |
+
"astunparse 1.6.3\n",
|
774 |
+
"async-timeout 4.0.3\n",
|
775 |
+
"atpublic 4.0\n",
|
776 |
+
"attrs 23.1.0\n",
|
777 |
+
"audioread 3.0.1\n",
|
778 |
+
"autograd 1.6.2\n",
|
779 |
+
"Babel 2.13.1\n",
|
780 |
+
"backcall 0.2.0\n",
|
781 |
+
"beautifulsoup4 4.11.2\n",
|
782 |
+
"bidict 0.22.1\n",
|
783 |
+
"bigframes 0.15.0\n",
|
784 |
+
"bleach 6.1.0\n",
|
785 |
+
"blinker 1.4\n",
|
786 |
+
"blis 0.7.11\n",
|
787 |
+
"blosc2 2.0.0\n",
|
788 |
+
"bokeh 3.3.1\n",
|
789 |
+
"bqplot 0.12.42\n",
|
790 |
+
"branca 0.7.0\n",
|
791 |
+
"build 1.0.3\n",
|
792 |
+
"CacheControl 0.13.1\n",
|
793 |
+
"cachetools 5.3.2\n",
|
794 |
+
"catalogue 2.0.10\n",
|
795 |
+
"certifi 2023.11.17\n",
|
796 |
+
"cffi 1.16.0\n",
|
797 |
+
"chardet 5.2.0\n",
|
798 |
+
"charset-normalizer 3.3.2\n",
|
799 |
+
"chex 0.1.7\n",
|
800 |
+
"click 8.1.7\n",
|
801 |
+
"click-plugins 1.1.1\n",
|
802 |
+
"cligj 0.7.2\n",
|
803 |
+
"cloudpickle 2.2.1\n",
|
804 |
+
"cmake 3.27.7\n",
|
805 |
+
"cmdstanpy 1.2.0\n",
|
806 |
+
"colorcet 3.0.1\n",
|
807 |
+
"colorlover 0.3.0\n",
|
808 |
+
"colour 0.1.5\n",
|
809 |
+
"community 1.0.0b1\n",
|
810 |
+
"confection 0.1.4\n",
|
811 |
+
"cons 0.4.6\n",
|
812 |
+
"contextlib2 21.6.0\n",
|
813 |
+
"contourpy 1.2.0\n",
|
814 |
+
"cryptography 41.0.7\n",
|
815 |
+
"cufflinks 0.17.3\n",
|
816 |
+
"cupy-cuda11x 11.0.0\n",
|
817 |
+
"cvxopt 1.3.2\n",
|
818 |
+
"cvxpy 1.3.2\n",
|
819 |
+
"cycler 0.12.1\n",
|
820 |
+
"cymem 2.0.8\n",
|
821 |
+
"Cython 3.0.6\n",
|
822 |
+
"dask 2023.8.1\n",
|
823 |
+
"datascience 0.17.6\n",
|
824 |
+
"db-dtypes 1.1.1\n",
|
825 |
+
"dbus-python 1.2.18\n",
|
826 |
+
"debugpy 1.6.6\n",
|
827 |
+
"decorator 4.4.2\n",
|
828 |
+
"defusedxml 0.7.1\n",
|
829 |
+
"diffusers 0.10.2\n",
|
830 |
+
"diskcache 5.6.3\n",
|
831 |
+
"distributed 2023.8.1\n",
|
832 |
+
"distro 1.7.0\n",
|
833 |
+
"dlib 19.24.2\n",
|
834 |
+
"dm-tree 0.1.8\n",
|
835 |
+
"docutils 0.18.1\n",
|
836 |
+
"dopamine-rl 4.0.6\n",
|
837 |
+
"duckdb 0.9.2\n",
|
838 |
+
"earthengine-api 0.1.381\n",
|
839 |
+
"easydict 1.11\n",
|
840 |
+
"ecos 2.0.12\n",
|
841 |
+
"editdistance 0.6.2\n",
|
842 |
+
"eerepr 0.0.4\n",
|
843 |
+
"en-core-web-sm 3.6.0\n",
|
844 |
+
"entrypoints 0.4\n",
|
845 |
+
"et-xmlfile 1.1.0\n",
|
846 |
+
"etils 1.5.2\n",
|
847 |
+
"etuples 0.3.9\n",
|
848 |
+
"exceptiongroup 1.2.0\n",
|
849 |
+
"fastai 2.7.13\n",
|
850 |
+
"fastcore 1.5.29\n",
|
851 |
+
"fastdownload 0.0.7\n",
|
852 |
+
"fastjsonschema 2.19.0\n",
|
853 |
+
"fastprogress 1.0.3\n",
|
854 |
+
"fastrlock 0.8.2\n",
|
855 |
+
"filelock 3.13.1\n",
|
856 |
+
"fiona 1.9.5\n",
|
857 |
+
"firebase-admin 5.3.0\n",
|
858 |
+
"Flask 2.2.5\n",
|
859 |
+
"flask-ngrok 0.0.25\n",
|
860 |
+
"flatbuffers 23.5.26\n",
|
861 |
+
"flax 0.7.5\n",
|
862 |
+
"folium 0.14.0\n",
|
863 |
+
"fonttools 4.45.1\n",
|
864 |
+
"frozendict 2.3.10\n",
|
865 |
+
"frozenlist 1.4.0\n",
|
866 |
+
"fsspec 2023.6.0\n",
|
867 |
+
"ftfy 6.1.3\n",
|
868 |
+
"future 0.18.3\n",
|
869 |
+
"gast 0.5.4\n",
|
870 |
+
"gcsfs 2023.6.0\n",
|
871 |
+
"GDAL 3.4.3\n",
|
872 |
+
"gdown 4.6.6\n",
|
873 |
+
"geemap 0.28.2\n",
|
874 |
+
"gensim 4.3.2\n",
|
875 |
+
"geocoder 1.38.1\n",
|
876 |
+
"geographiclib 2.0\n",
|
877 |
+
"geopandas 0.13.2\n",
|
878 |
+
"geopy 2.3.0\n",
|
879 |
+
"gin-config 0.5.0\n",
|
880 |
+
"glob2 0.7\n",
|
881 |
+
"google 2.0.3\n",
|
882 |
+
"google-ai-generativelanguage 0.3.3\n",
|
883 |
+
"google-api-core 2.11.1\n",
|
884 |
+
"google-api-python-client 2.84.0\n",
|
885 |
+
"google-auth 2.17.3\n",
|
886 |
+
"google-auth-httplib2 0.1.1\n",
|
887 |
+
"google-auth-oauthlib 1.0.0\n",
|
888 |
+
"google-cloud-aiplatform 1.36.4\n",
|
889 |
+
"google-cloud-bigquery 3.12.0\n",
|
890 |
+
"google-cloud-bigquery-connection 1.12.1\n",
|
891 |
+
"google-cloud-bigquery-storage 2.23.0\n",
|
892 |
+
"google-cloud-core 2.3.3\n",
|
893 |
+
"google-cloud-datastore 2.15.2\n",
|
894 |
+
"google-cloud-firestore 2.11.1\n",
|
895 |
+
"google-cloud-functions 1.13.3\n",
|
896 |
+
"google-cloud-iam 2.12.2\n",
|
897 |
+
"google-cloud-language 2.9.1\n",
|
898 |
+
"google-cloud-resource-manager 1.10.4\n",
|
899 |
+
"google-cloud-storage 2.8.0\n",
|
900 |
+
"google-cloud-translate 3.11.3\n",
|
901 |
+
"google-colab 1.0.0\n",
|
902 |
+
"google-crc32c 1.5.0\n",
|
903 |
+
"google-generativeai 0.2.2\n",
|
904 |
+
"google-pasta 0.2.0\n",
|
905 |
+
"google-resumable-media 2.6.0\n",
|
906 |
+
"googleapis-common-protos 1.61.0\n",
|
907 |
+
"googledrivedownloader 0.4\n",
|
908 |
+
"graphviz 0.20.1\n",
|
909 |
+
"greenlet 3.0.1\n",
|
910 |
+
"grpc-google-iam-v1 0.12.7\n",
|
911 |
+
"grpcio 1.59.3\n",
|
912 |
+
"grpcio-status 1.48.2\n",
|
913 |
+
"gspread 3.4.2\n",
|
914 |
+
"gspread-dataframe 3.3.1\n",
|
915 |
+
"gym 0.25.2\n",
|
916 |
+
"gym-notices 0.0.8\n",
|
917 |
+
"h5netcdf 1.3.0\n",
|
918 |
+
"h5py 3.9.0\n",
|
919 |
+
"holidays 0.37\n",
|
920 |
+
"holoviews 1.17.1\n",
|
921 |
+
"html5lib 1.1\n",
|
922 |
+
"httpimport 1.3.1\n",
|
923 |
+
"httplib2 0.22.0\n",
|
924 |
+
"huggingface-hub 0.19.4\n",
|
925 |
+
"humanize 4.7.0\n",
|
926 |
+
"hyperopt 0.2.7\n",
|
927 |
+
"ibis-framework 6.2.0\n",
|
928 |
+
"idna 3.6\n",
|
929 |
+
"imageio 2.31.6\n",
|
930 |
+
"imageio-ffmpeg 0.4.9\n",
|
931 |
+
"imagesize 1.4.1\n",
|
932 |
+
"imbalanced-learn 0.10.1\n",
|
933 |
+
"imgaug 0.4.0\n",
|
934 |
+
"importlib-metadata 6.8.0\n",
|
935 |
+
"importlib-resources 6.1.1\n",
|
936 |
+
"imutils 0.5.4\n",
|
937 |
+
"inflect 7.0.0\n",
|
938 |
+
"iniconfig 2.0.0\n",
|
939 |
+
"install 1.3.5\n",
|
940 |
+
"intel-openmp 2023.2.0\n",
|
941 |
+
"ipyevents 2.0.2\n",
|
942 |
+
"ipyfilechooser 0.6.0\n",
|
943 |
+
"ipykernel 5.5.6\n",
|
944 |
+
"ipyleaflet 0.18.0\n",
|
945 |
+
"ipython 7.34.0\n",
|
946 |
+
"ipython-genutils 0.2.0\n",
|
947 |
+
"ipython-sql 0.5.0\n",
|
948 |
+
"ipytree 0.2.2\n",
|
949 |
+
"ipywidgets 7.7.1\n",
|
950 |
+
"itsdangerous 2.1.2\n",
|
951 |
+
"jax 0.4.20\n",
|
952 |
+
"jaxlib 0.4.20+cuda11.cudnn86\n",
|
953 |
+
"jeepney 0.7.1\n",
|
954 |
+
"jieba 0.42.1\n",
|
955 |
+
"Jinja2 3.1.2\n",
|
956 |
+
"joblib 1.3.2\n",
|
957 |
+
"jsonpickle 3.0.2\n",
|
958 |
+
"jsonschema 4.19.2\n",
|
959 |
+
"jsonschema-specifications 2023.11.2\n",
|
960 |
+
"jupyter-client 6.1.12\n",
|
961 |
+
"jupyter-console 6.1.0\n",
|
962 |
+
"jupyter_core 5.5.0\n",
|
963 |
+
"jupyter-server 1.24.0\n",
|
964 |
+
"jupyterlab_pygments 0.3.0\n",
|
965 |
+
"jupyterlab-widgets 3.0.9\n",
|
966 |
+
"kaggle 1.5.16\n",
|
967 |
+
"keras 2.14.0\n",
|
968 |
+
"keyring 23.5.0\n",
|
969 |
+
"kiwisolver 1.4.5\n",
|
970 |
+
"langcodes 3.3.0\n",
|
971 |
+
"launchpadlib 1.10.16\n",
|
972 |
+
"lazr.restfulclient 0.14.4\n",
|
973 |
+
"lazr.uri 1.0.6\n",
|
974 |
+
"lazy_loader 0.3\n",
|
975 |
+
"libclang 16.0.6\n",
|
976 |
+
"librosa 0.10.1\n",
|
977 |
+
"lida 0.0.10\n",
|
978 |
+
"lightgbm 4.1.0\n",
|
979 |
+
"linkify-it-py 2.0.2\n",
|
980 |
+
"llmx 0.0.15a0\n",
|
981 |
+
"llvmlite 0.41.1\n",
|
982 |
+
"locket 1.0.0\n",
|
983 |
+
"logical-unification 0.4.6\n",
|
984 |
+
"lxml 4.9.3\n",
|
985 |
+
"malloy 2023.1064\n",
|
986 |
+
"Markdown 3.5.1\n",
|
987 |
+
"markdown-it-py 3.0.0\n",
|
988 |
+
"MarkupSafe 2.1.3\n",
|
989 |
+
"matplotlib 3.7.1\n",
|
990 |
+
"matplotlib-inline 0.1.6\n",
|
991 |
+
"matplotlib-venn 0.11.9\n",
|
992 |
+
"mdit-py-plugins 0.4.0\n",
|
993 |
+
"mdurl 0.1.2\n",
|
994 |
+
"miniKanren 1.0.3\n",
|
995 |
+
"missingno 0.5.2\n",
|
996 |
+
"mistune 0.8.4\n",
|
997 |
+
"mizani 0.9.3\n",
|
998 |
+
"mkl 2023.2.0\n",
|
999 |
+
"ml-dtypes 0.2.0\n",
|
1000 |
+
"mlxtend 0.22.0\n",
|
1001 |
+
"more-itertools 10.1.0\n",
|
1002 |
+
"moviepy 1.0.3\n",
|
1003 |
+
"mpmath 1.3.0\n",
|
1004 |
+
"msgpack 1.0.7\n",
|
1005 |
+
"multidict 6.0.4\n",
|
1006 |
+
"multipledispatch 1.0.0\n",
|
1007 |
+
"multitasking 0.0.11\n",
|
1008 |
+
"murmurhash 1.0.10\n",
|
1009 |
+
"music21 9.1.0\n",
|
1010 |
+
"natsort 8.4.0\n",
|
1011 |
+
"nbclassic 1.0.0\n",
|
1012 |
+
"nbclient 0.9.0\n",
|
1013 |
+
"nbconvert 6.5.4\n",
|
1014 |
+
"nbformat 5.9.2\n",
|
1015 |
+
"nest-asyncio 1.5.8\n",
|
1016 |
+
"networkx 3.2.1\n",
|
1017 |
+
"nibabel 4.0.2\n",
|
1018 |
+
"nltk 3.8.1\n",
|
1019 |
+
"notebook 6.5.5\n",
|
1020 |
+
"notebook_shim 0.2.3\n",
|
1021 |
+
"numba 0.58.1\n",
|
1022 |
+
"numexpr 2.8.7\n",
|
1023 |
+
"numpy 1.23.5\n",
|
1024 |
+
"oauth2client 4.1.3\n",
|
1025 |
+
"oauthlib 3.2.2\n",
|
1026 |
+
"opencv-contrib-python 4.8.0.76\n",
|
1027 |
+
"opencv-python 4.8.0.76\n",
|
1028 |
+
"opencv-python-headless 4.8.1.78\n",
|
1029 |
+
"openpyxl 3.1.2\n",
|
1030 |
+
"opt-einsum 3.3.0\n",
|
1031 |
+
"optax 0.1.7\n",
|
1032 |
+
"orbax-checkpoint 0.4.3\n",
|
1033 |
+
"osqp 0.6.2.post8\n",
|
1034 |
+
"packaging 23.2\n",
|
1035 |
+
"pandas 1.5.3\n",
|
1036 |
+
"pandas-datareader 0.10.0\n",
|
1037 |
+
"pandas-gbq 0.17.9\n",
|
1038 |
+
"pandas-stubs 1.5.3.230304\n",
|
1039 |
+
"pandocfilters 1.5.0\n",
|
1040 |
+
"panel 1.3.4\n",
|
1041 |
+
"param 2.0.1\n",
|
1042 |
+
"parso 0.8.3\n",
|
1043 |
+
"parsy 2.1\n",
|
1044 |
+
"partd 1.4.1\n",
|
1045 |
+
"pathlib 1.0.1\n",
|
1046 |
+
"pathy 0.10.3\n",
|
1047 |
+
"patsy 0.5.3\n",
|
1048 |
+
"peewee 3.17.0\n",
|
1049 |
+
"pexpect 4.9.0\n",
|
1050 |
+
"pickleshare 0.7.5\n",
|
1051 |
+
"Pillow 9.4.0\n",
|
1052 |
+
"pip 23.1.2\n",
|
1053 |
+
"pip-tools 6.13.0\n",
|
1054 |
+
"platformdirs 4.0.0\n",
|
1055 |
+
"plotly 5.15.0\n",
|
1056 |
+
"plotnine 0.12.4\n",
|
1057 |
+
"pluggy 1.3.0\n",
|
1058 |
+
"polars 0.17.3\n",
|
1059 |
+
"pooch 1.8.0\n",
|
1060 |
+
"portpicker 1.5.2\n",
|
1061 |
+
"prefetch-generator 1.0.3\n",
|
1062 |
+
"preshed 3.0.9\n",
|
1063 |
+
"prettytable 3.9.0\n",
|
1064 |
+
"proglog 0.1.10\n",
|
1065 |
+
"progressbar2 4.2.0\n",
|
1066 |
+
"prometheus-client 0.19.0\n",
|
1067 |
+
"promise 2.3\n",
|
1068 |
+
"prompt-toolkit 3.0.41\n",
|
1069 |
+
"prophet 1.1.5\n",
|
1070 |
+
"proto-plus 1.22.3\n",
|
1071 |
+
"protobuf 3.20.3\n",
|
1072 |
+
"psutil 5.9.5\n",
|
1073 |
+
"psycopg2 2.9.9\n",
|
1074 |
+
"ptyprocess 0.7.0\n",
|
1075 |
+
"py-cpuinfo 9.0.0\n",
|
1076 |
+
"py4j 0.10.9.7\n",
|
1077 |
+
"pyarrow 9.0.0\n",
|
1078 |
+
"pyasn1 0.5.1\n",
|
1079 |
+
"pyasn1-modules 0.3.0\n",
|
1080 |
+
"pycocotools 2.0.7\n",
|
1081 |
+
"pycparser 2.21\n",
|
1082 |
+
"pyct 0.5.0\n",
|
1083 |
+
"pydantic 1.10.13\n",
|
1084 |
+
"pydata-google-auth 1.8.2\n",
|
1085 |
+
"pydot 1.4.2\n",
|
1086 |
+
"pydot-ng 2.0.0\n",
|
1087 |
+
"pydotplus 2.0.2\n",
|
1088 |
+
"PyDrive 1.3.1\n",
|
1089 |
+
"PyDrive2 1.6.3\n",
|
1090 |
+
"pyerfa 2.0.1.1\n",
|
1091 |
+
"pygame 2.5.2\n",
|
1092 |
+
"Pygments 2.16.1\n",
|
1093 |
+
"PyGObject 3.42.1\n",
|
1094 |
+
"PyJWT 2.3.0\n",
|
1095 |
+
"pymc 5.7.2\n",
|
1096 |
+
"pymystem3 0.2.0\n",
|
1097 |
+
"pyngrok 4.1.1\n",
|
1098 |
+
"PyOpenGL 3.1.7\n",
|
1099 |
+
"pyOpenSSL 23.3.0\n",
|
1100 |
+
"pyparsing 3.1.1\n",
|
1101 |
+
"pyperclip 1.8.2\n",
|
1102 |
+
"pyproj 3.6.1\n",
|
1103 |
+
"pyproject_hooks 1.0.0\n",
|
1104 |
+
"pyshp 2.3.1\n",
|
1105 |
+
"PySocks 1.7.1\n",
|
1106 |
+
"pytensor 2.14.2\n",
|
1107 |
+
"pytest 7.4.3\n",
|
1108 |
+
"python-apt 0.0.0\n",
|
1109 |
+
"python-box 7.1.1\n",
|
1110 |
+
"python-dateutil 2.8.2\n",
|
1111 |
+
"python-louvain 0.16\n",
|
1112 |
+
"python-slugify 8.0.1\n",
|
1113 |
+
"python-utils 3.8.1\n",
|
1114 |
+
"pytz 2023.3.post1\n",
|
1115 |
+
"pyviz_comms 3.0.0\n",
|
1116 |
+
"PyWavelets 1.5.0\n",
|
1117 |
+
"PyYAML 6.0.1\n",
|
1118 |
+
"pyzmq 23.2.1\n",
|
1119 |
+
"qdldl 0.1.7.post0\n",
|
1120 |
+
"qudida 0.0.4\n",
|
1121 |
+
"ratelim 0.1.6\n",
|
1122 |
+
"referencing 0.31.1\n",
|
1123 |
+
"regex 2023.6.3\n",
|
1124 |
+
"requests 2.31.0\n",
|
1125 |
+
"requests-oauthlib 1.3.1\n",
|
1126 |
+
"requirements-parser 0.5.0\n",
|
1127 |
+
"rich 13.7.0\n",
|
1128 |
+
"rpds-py 0.13.2\n",
|
1129 |
+
"rpy2 3.4.2\n",
|
1130 |
+
"rsa 4.9\n",
|
1131 |
+
"safetensors 0.4.1\n",
|
1132 |
+
"scikit-image 0.19.3\n",
|
1133 |
+
"scikit-learn 1.2.2\n",
|
1134 |
+
"scipy 1.11.4\n",
|
1135 |
+
"scooby 0.9.2\n",
|
1136 |
+
"scs 3.2.4.post1\n",
|
1137 |
+
"seaborn 0.12.2\n",
|
1138 |
+
"SecretStorage 3.3.1\n",
|
1139 |
+
"Send2Trash 1.8.2\n",
|
1140 |
+
"setuptools 67.7.2\n",
|
1141 |
+
"shapely 2.0.2\n",
|
1142 |
+
"six 1.16.0\n",
|
1143 |
+
"sklearn-pandas 2.2.0\n",
|
1144 |
+
"smart-open 6.4.0\n",
|
1145 |
+
"sniffio 1.3.0\n",
|
1146 |
+
"snowballstemmer 2.2.0\n",
|
1147 |
+
"sortedcontainers 2.4.0\n",
|
1148 |
+
"soundfile 0.12.1\n",
|
1149 |
+
"soupsieve 2.5\n",
|
1150 |
+
"soxr 0.3.7\n",
|
1151 |
+
"spacy 3.6.1\n",
|
1152 |
+
"spacy-legacy 3.0.12\n",
|
1153 |
+
"spacy-loggers 1.0.5\n",
|
1154 |
+
"Sphinx 5.0.2\n",
|
1155 |
+
"sphinxcontrib-applehelp 1.0.7\n",
|
1156 |
+
"sphinxcontrib-devhelp 1.0.5\n",
|
1157 |
+
"sphinxcontrib-htmlhelp 2.0.4\n",
|
1158 |
+
"sphinxcontrib-jsmath 1.0.1\n",
|
1159 |
+
"sphinxcontrib-qthelp 1.0.6\n",
|
1160 |
+
"sphinxcontrib-serializinghtml 1.1.9\n",
|
1161 |
+
"SQLAlchemy 2.0.23\n",
|
1162 |
+
"sqlglot 17.16.2\n",
|
1163 |
+
"sqlparse 0.4.4\n",
|
1164 |
+
"srsly 2.4.8\n",
|
1165 |
+
"stanio 0.3.0\n",
|
1166 |
+
"statsmodels 0.14.0\n",
|
1167 |
+
"sympy 1.12\n",
|
1168 |
+
"tables 3.8.0\n",
|
1169 |
+
"tabulate 0.9.0\n",
|
1170 |
+
"tbb 2021.11.0\n",
|
1171 |
+
"tblib 3.0.0\n",
|
1172 |
+
"tenacity 8.2.3\n",
|
1173 |
+
"tensorboard 2.14.1\n",
|
1174 |
+
"tensorboard-data-server 0.7.2\n",
|
1175 |
+
"tensorflow 2.14.0\n",
|
1176 |
+
"tensorflow-datasets 4.9.3\n",
|
1177 |
+
"tensorflow-estimator 2.14.0\n",
|
1178 |
+
"tensorflow-gcs-config 2.14.0\n",
|
1179 |
+
"tensorflow-hub 0.15.0\n",
|
1180 |
+
"tensorflow-io-gcs-filesystem 0.34.0\n",
|
1181 |
+
"tensorflow-metadata 1.14.0\n",
|
1182 |
+
"tensorflow-probability 0.22.0\n",
|
1183 |
+
"tensorstore 0.1.45\n",
|
1184 |
+
"termcolor 2.3.0\n",
|
1185 |
+
"terminado 0.18.0\n",
|
1186 |
+
"text-unidecode 1.3\n",
|
1187 |
+
"textblob 0.17.1\n",
|
1188 |
+
"tf-slim 1.1.0\n",
|
1189 |
+
"thinc 8.1.12\n",
|
1190 |
+
"threadpoolctl 3.2.0\n",
|
1191 |
+
"tifffile 2023.9.26\n",
|
1192 |
+
"tinycss2 1.2.1\n",
|
1193 |
+
"tokenizers 0.15.0\n",
|
1194 |
+
"toml 0.10.2\n",
|
1195 |
+
"tomli 2.0.1\n",
|
1196 |
+
"toolz 0.12.0\n",
|
1197 |
+
"torch 2.1.0+cu118\n",
|
1198 |
+
"torchaudio 2.1.0+cu118\n",
|
1199 |
+
"torchdata 0.7.0\n",
|
1200 |
+
"torchsummary 1.5.1\n",
|
1201 |
+
"torchtext 0.16.0\n",
|
1202 |
+
"torchvision 0.16.0+cu118\n",
|
1203 |
+
"tornado 6.3.2\n",
|
1204 |
+
"tqdm 4.66.1\n",
|
1205 |
+
"traitlets 5.7.1\n",
|
1206 |
+
"traittypes 0.2.1\n",
|
1207 |
+
"transformers 4.35.2\n",
|
1208 |
+
"triton 2.1.0\n",
|
1209 |
+
"tweepy 4.14.0\n",
|
1210 |
+
"typer 0.9.0\n",
|
1211 |
+
"types-pytz 2023.3.1.1\n",
|
1212 |
+
"types-setuptools 69.0.0.0\n",
|
1213 |
+
"typing_extensions 4.5.0\n",
|
1214 |
+
"tzlocal 5.2\n",
|
1215 |
+
"uc-micro-py 1.0.2\n",
|
1216 |
+
"uritemplate 4.1.1\n",
|
1217 |
+
"urllib3 2.0.7\n",
|
1218 |
+
"vega-datasets 0.9.0\n",
|
1219 |
+
"wadllib 1.3.6\n",
|
1220 |
+
"wasabi 1.1.2\n",
|
1221 |
+
"wcwidth 0.2.12\n",
|
1222 |
+
"webcolors 1.13\n",
|
1223 |
+
"webencodings 0.5.1\n",
|
1224 |
+
"websocket-client 1.6.4\n",
|
1225 |
+
"Werkzeug 3.0.1\n",
|
1226 |
+
"wheel 0.42.0\n",
|
1227 |
+
"widgetsnbextension 3.6.6\n",
|
1228 |
+
"wordcloud 1.9.2\n",
|
1229 |
+
"wrapt 1.14.1\n",
|
1230 |
+
"xarray 2023.7.0\n",
|
1231 |
+
"xarray-einstats 0.6.0\n",
|
1232 |
+
"xgboost 2.0.2\n",
|
1233 |
+
"xlrd 2.0.1\n",
|
1234 |
+
"xxhash 3.4.1\n",
|
1235 |
+
"xyzservices 2023.10.1\n",
|
1236 |
+
"yarl 1.9.3\n",
|
1237 |
+
"yellowbrick 1.5\n",
|
1238 |
+
"yfinance 0.2.32\n",
|
1239 |
+
"zict 3.0.0\n",
|
1240 |
+
"zipp 3.17.0\n"
|
1241 |
+
]
|
1242 |
+
}
|
1243 |
+
],
|
1244 |
+
"source": [
|
1245 |
+
"!pip list"
|
1246 |
+
]
|
1247 |
+
},
|
1248 |
+
{
|
1249 |
+
"cell_type": "code",
|
1250 |
+
"execution_count": null,
|
1251 |
+
"metadata": {
|
1252 |
+
"id": "oohGJpghsGs0"
|
1253 |
+
},
|
1254 |
+
"outputs": [],
|
1255 |
+
"source": []
|
1256 |
+
}
|
1257 |
+
],
|
1258 |
+
"metadata": {
|
1259 |
+
"colab": {
|
1260 |
+
"provenance": []
|
1261 |
+
},
|
1262 |
+
"kernelspec": {
|
1263 |
+
"display_name": "Python 3",
|
1264 |
+
"name": "python3"
|
1265 |
+
},
|
1266 |
+
"language_info": {
|
1267 |
+
"name": "python"
|
1268 |
+
}
|
1269 |
+
},
|
1270 |
+
"nbformat": 4,
|
1271 |
+
"nbformat_minor": 0
|
1272 |
+
}
|
__crop-disease-detection/__pycache__/utils.cpython-311.pyc
ADDED
Binary file (4.5 kB). View file
|
|
__crop-disease-detection/app.py
ADDED
@@ -0,0 +1,140 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from flask import Flask, render_template, request, redirect, url_for, send_from_directory
|
2 |
+
import getpass
|
3 |
+
import os
|
4 |
+
|
5 |
+
from pyngrok import ngrok, conf
|
6 |
+
|
7 |
+
from utils import cottonmodel, sugarcanemodel, tomatomodel, get_model_details
|
8 |
+
|
9 |
+
app = Flask(__name__)
|
10 |
+
|
11 |
+
|
12 |
+
# Open a ngrok tunnel to the HTTP server
|
13 |
+
public_url = ngrok.connect(5000).public_url
|
14 |
+
print(" * ngrok tunnel \"{}\" -> \"http://127.0.0.1:{}/\"".format(public_url, 5000))
|
15 |
+
|
16 |
+
# Update any base URLs to use the public ngrok URL
|
17 |
+
app.config["BASE_URL"] = public_url
|
18 |
+
|
19 |
+
|
20 |
+
|
21 |
+
# Define the upload folder
|
22 |
+
UPLOAD_FOLDER = 'static/uploaded_images'
|
23 |
+
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
|
24 |
+
|
25 |
+
# Define allowed file extensions
|
26 |
+
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
|
27 |
+
|
28 |
+
# Function to check if a file has an allowed extension
|
29 |
+
def allowed_file(filename):
|
30 |
+
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
|
31 |
+
|
32 |
+
# Route for the home page
|
33 |
+
@app.route('/')
|
34 |
+
def home():
|
35 |
+
model_data = get_model_details()
|
36 |
+
return render_template('index.html', model_data=model_data)
|
37 |
+
|
38 |
+
|
39 |
+
# /cropmodel/?modelname=tomatomodel
|
40 |
+
# /cropmodel/?modelname=sugarcanemodel
|
41 |
+
# /cropmodel/?modelname=cottonmodel
|
42 |
+
|
43 |
+
@app.route('/cropmodel/')
|
44 |
+
def cropmodel():
|
45 |
+
# Check if the request is a GET request
|
46 |
+
if request.method == 'GET':
|
47 |
+
# Get the modelname argument from the request
|
48 |
+
modelname = request.args.get('modelname')
|
49 |
+
|
50 |
+
# Print the modelname on the terminal if available
|
51 |
+
if modelname:
|
52 |
+
# model_LIST = ['cottonmodel', 'sugarcanemodel', 'tomatomodel']
|
53 |
+
|
54 |
+
# print(f"Model Name: {modelname}")
|
55 |
+
__model_data = get_model_details()
|
56 |
+
model_data = __model_data[modelname]
|
57 |
+
|
58 |
+
|
59 |
+
# Render the template with the result
|
60 |
+
return render_template('modelresult.html', modelname=modelname, model_data=model_data)
|
61 |
+
|
62 |
+
else:
|
63 |
+
msg = "Model Name not provided in the request."
|
64 |
+
return render_template('modelresult.html', msg=msg)
|
65 |
+
|
66 |
+
# Render a template for non-GET requests
|
67 |
+
return render_template('nongetresult.html')
|
68 |
+
|
69 |
+
|
70 |
+
|
71 |
+
# Route to handle file upload
|
72 |
+
@app.route('/upload', methods=['POST'])
|
73 |
+
def upload_file():
|
74 |
+
if request.method == 'POST':
|
75 |
+
|
76 |
+
if 'file' not in request.files:
|
77 |
+
return redirect(request.url)
|
78 |
+
|
79 |
+
modelname = request.form.get('modelname')
|
80 |
+
|
81 |
+
|
82 |
+
file = request.files['file']
|
83 |
+
|
84 |
+
if file.filename == '':
|
85 |
+
return redirect(request.url)
|
86 |
+
|
87 |
+
if file and allowed_file(file.filename):
|
88 |
+
# Rename the file to "imageFile.jpeg"
|
89 |
+
filename = 'imageFile.jpeg'
|
90 |
+
|
91 |
+
# Save the file to the upload folder
|
92 |
+
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
|
93 |
+
|
94 |
+
|
95 |
+
defalut_image_path = 'static/uploaded_images/imageFile.jpeg'
|
96 |
+
|
97 |
+
__model_data = get_model_details()
|
98 |
+
model_data = __model_data[str(modelname)]
|
99 |
+
|
100 |
+
if modelname == 'cottonmodel':
|
101 |
+
result = cottonmodel(defalut_image_path)
|
102 |
+
|
103 |
+
elif modelname == 'sugarcanemodel':
|
104 |
+
result = sugarcanemodel(defalut_image_path)
|
105 |
+
|
106 |
+
elif modelname == 'tomatomodel':
|
107 |
+
result = tomatomodel(defalut_image_path)
|
108 |
+
|
109 |
+
else:
|
110 |
+
result = 'None'
|
111 |
+
model_data = 'None'
|
112 |
+
|
113 |
+
# print("modelname : ", modelname)
|
114 |
+
# print("model_data : ", model_data)
|
115 |
+
print("--- result : ", result)
|
116 |
+
# Render the template with the result
|
117 |
+
return render_template('modelresult.html', modelname=modelname, result=result, model_data=model_data)
|
118 |
+
|
119 |
+
# return redirect(url_for('view_file', filename=filename))
|
120 |
+
else:
|
121 |
+
return "Invalid file type. Allowed extensions are: png, jpg, jpeg"
|
122 |
+
|
123 |
+
return redirect(url_for('cropmodel'))
|
124 |
+
|
125 |
+
|
126 |
+
|
127 |
+
# Route to view the uploaded file
|
128 |
+
# @app.route('/view/<filename>')
|
129 |
+
# def view_file(filename):
|
130 |
+
# return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
|
131 |
+
|
132 |
+
if __name__ == '__main__':
|
133 |
+
# Ensure the upload folder exists
|
134 |
+
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
|
135 |
+
# app.run(debug=True)
|
136 |
+
|
137 |
+
# for Docker
|
138 |
+
# app.run(debug=True, host="0.0.0.0", port=5000)
|
139 |
+
app.run(port=5000, use_reloader=False)
|
140 |
+
|
__crop-disease-detection/docker-details.txt
ADDED
@@ -0,0 +1,49 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
### Docker not working now
|
2 |
+
|
3 |
+
terminal cmd:
|
4 |
+
|
5 |
+
( atharvapawar456 )
|
6 |
+
|
7 |
+
eg: atharvapawar456 / doc-test
|
8 |
+
|
9 |
+
|
10 |
+
### build docker image
|
11 |
+
|
12 |
+
docker build -t atharvapawar456/crop_disease_detector-flask-app .
|
13 |
+
|
14 |
+
|
15 |
+
|
16 |
+
docker image rm -f crop_disease_detector-flask-app
|
17 |
+
|
18 |
+
docker tag welcome-flask-app atharvapawar456/crop_disease_detector-flask-app
|
19 |
+
|
20 |
+
|
21 |
+
|
22 |
+
### docker basic cmd:
|
23 |
+
|
24 |
+
docker images
|
25 |
+
|
26 |
+
docker ps
|
27 |
+
|
28 |
+
docker stop cont_id
|
29 |
+
|
30 |
+
docker
|
31 |
+
|
32 |
+
|
33 |
+
### run docker image
|
34 |
+
|
35 |
+
docker run -p 5000:5000 welcome-flask-app
|
36 |
+
|
37 |
+
http://127.0.0.1:5000
|
38 |
+
|
39 |
+
### can access from local host
|
40 |
+
|
41 |
+
http://192.168.1.102:5000/
|
42 |
+
|
43 |
+
|
44 |
+
|
45 |
+
|
46 |
+
|
47 |
+
|
48 |
+
https://colab.research.google.com/drive/1wwfc_3k539L6MVys7JTZbGZlmTVcG1lw?usp=sharing
|
49 |
+
|
__crop-disease-detection/main.py
ADDED
@@ -0,0 +1,145 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# from flask_ngrok import run_with_ngrok
|
2 |
+
from pyngrok import ngrok, conf
|
3 |
+
import getpass
|
4 |
+
|
5 |
+
|
6 |
+
from flask import Flask, render_template, request, redirect, url_for, send_from_directory
|
7 |
+
import os
|
8 |
+
|
9 |
+
from utils import cottonmodel, sugarcanemodel, tomatomodel, get_model_details
|
10 |
+
|
11 |
+
app = Flask(__name__)
|
12 |
+
# run_with_ngrok(app)
|
13 |
+
|
14 |
+
# Open a ngrok tunnel to the HTTP server
|
15 |
+
public_url = ngrok.connect(5000).public_url
|
16 |
+
print(" * ngrok tunnel \"{}\" -> \"http://127.0.0.1:{}/\"".format(public_url, 5000))
|
17 |
+
|
18 |
+
# Update any base URLs to use the public ngrok URL
|
19 |
+
app.config["BASE_URL"] = public_url
|
20 |
+
|
21 |
+
# ... Update inbound traffic via APIs to use the public-facing ngrok URL
|
22 |
+
|
23 |
+
|
24 |
+
|
25 |
+
# Define the upload folder
|
26 |
+
UPLOAD_FOLDER = 'static/uploaded_images'
|
27 |
+
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
|
28 |
+
|
29 |
+
# Define allowed file extensions
|
30 |
+
ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg'}
|
31 |
+
|
32 |
+
# Function to check if a file has an allowed extension
|
33 |
+
def allowed_file(filename):
|
34 |
+
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
|
35 |
+
|
36 |
+
# Route for the home page
|
37 |
+
@app.route('/')
|
38 |
+
def home():
|
39 |
+
model_data = get_model_details()
|
40 |
+
return render_template('index.html', model_data=model_data)
|
41 |
+
|
42 |
+
|
43 |
+
# /cropmodel/?modelname=tomatomodel
|
44 |
+
# /cropmodel/?modelname=sugarcanemodel
|
45 |
+
# /cropmodel/?modelname=cottonmodel
|
46 |
+
|
47 |
+
@app.route('/cropmodel/')
|
48 |
+
def cropmodel():
|
49 |
+
# Check if the request is a GET request
|
50 |
+
if request.method == 'GET':
|
51 |
+
# Get the modelname argument from the request
|
52 |
+
modelname = request.args.get('modelname')
|
53 |
+
|
54 |
+
# Print the modelname on the terminal if available
|
55 |
+
if modelname:
|
56 |
+
# model_LIST = ['cottonmodel', 'sugarcanemodel', 'tomatomodel']
|
57 |
+
|
58 |
+
# print(f"Model Name: {modelname}")
|
59 |
+
__model_data = get_model_details()
|
60 |
+
model_data = __model_data[modelname]
|
61 |
+
|
62 |
+
|
63 |
+
# Render the template with the result
|
64 |
+
return render_template('modelresult.html', modelname=modelname, model_data=model_data)
|
65 |
+
|
66 |
+
else:
|
67 |
+
msg = "Model Name not provided in the request."
|
68 |
+
return render_template('modelresult.html', msg=msg)
|
69 |
+
|
70 |
+
# Render a template for non-GET requests
|
71 |
+
return render_template('nongetresult.html')
|
72 |
+
|
73 |
+
|
74 |
+
|
75 |
+
# Route to handle file upload
|
76 |
+
@app.route('/upload', methods=['POST'])
|
77 |
+
def upload_file():
|
78 |
+
if request.method == 'POST':
|
79 |
+
|
80 |
+
if 'file' not in request.files:
|
81 |
+
return redirect(request.url)
|
82 |
+
|
83 |
+
modelname = request.form.get('modelname')
|
84 |
+
|
85 |
+
|
86 |
+
file = request.files['file']
|
87 |
+
|
88 |
+
if file.filename == '':
|
89 |
+
return redirect(request.url)
|
90 |
+
|
91 |
+
if file and allowed_file(file.filename):
|
92 |
+
# Rename the file to "imageFile.jpeg"
|
93 |
+
filename = 'imageFile.jpeg'
|
94 |
+
|
95 |
+
# Save the file to the upload folder
|
96 |
+
file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
|
97 |
+
|
98 |
+
|
99 |
+
defalut_image_path = 'static/uploaded_images/imageFile.jpeg'
|
100 |
+
|
101 |
+
__model_data = get_model_details()
|
102 |
+
model_data = __model_data[str(modelname)]
|
103 |
+
|
104 |
+
if modelname == 'cottonmodel':
|
105 |
+
result = cottonmodel(defalut_image_path)
|
106 |
+
|
107 |
+
elif modelname == 'sugarcanemodel':
|
108 |
+
result = sugarcanemodel(defalut_image_path)
|
109 |
+
|
110 |
+
elif modelname == 'tomatomodel':
|
111 |
+
result = tomatomodel(defalut_image_path)
|
112 |
+
|
113 |
+
else:
|
114 |
+
result = 'None'
|
115 |
+
model_data = 'None'
|
116 |
+
|
117 |
+
# print("modelname : ", modelname)
|
118 |
+
# print("model_data : ", model_data)
|
119 |
+
print("--- result : ", result)
|
120 |
+
# Render the template with the result
|
121 |
+
return render_template('modelresult.html', modelname=modelname, result=result, model_data=model_data)
|
122 |
+
|
123 |
+
# return redirect(url_for('view_file', filename=filename))
|
124 |
+
else:
|
125 |
+
return "Invalid file type. Allowed extensions are: png, jpg, jpeg"
|
126 |
+
|
127 |
+
return redirect(url_for('cropmodel'))
|
128 |
+
|
129 |
+
|
130 |
+
|
131 |
+
# Route to view the uploaded file
|
132 |
+
# @app.route('/view/<filename>')
|
133 |
+
# def view_file(filename):
|
134 |
+
# return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
|
135 |
+
|
136 |
+
if __name__ == '__main__':
|
137 |
+
# Ensure the upload folder exists
|
138 |
+
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
|
139 |
+
# app.run(debug=True)
|
140 |
+
# app.run()
|
141 |
+
app.run(port=5000, use_reloader=False)
|
142 |
+
|
143 |
+
|
144 |
+
# for Docker
|
145 |
+
# app.run(debug=True, host="0.0.0.0", port=5000)
|
__crop-disease-detection/model_folder/cotton_disease_model.h5
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:46bb92576a97e7507ccfd32bd17523432d7523ca34de3f37c821ce929cd8b8d0
|
3 |
+
size 267000104
|
__crop-disease-detection/model_folder/sugarcane_disease_model.h5
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:4e7c11963e2a65a56848301b0478b27f1b396928a7098d28e31bcdb0a76b74c7
|
3 |
+
size 134084136
|
__crop-disease-detection/model_folder/tomato_disease_model.h5
ADDED
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
1 |
+
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:580cd9fe4af93f04c4e53f9549be6757d6f920fbc73993ca53ff7ff95fb35438
|
3 |
+
size 134095912
|
__crop-disease-detection/requirements.txt
ADDED
Binary file (94 Bytes). View file
|
|
__crop-disease-detection/static/setup/cotton_image.jpeg
ADDED
__crop-disease-detection/static/setup/logo.png
ADDED
__crop-disease-detection/static/setup/plant.png
ADDED
__crop-disease-detection/static/setup/sugarcane_image.jpeg
ADDED
__crop-disease-detection/static/setup/tomato_image.jpeg
ADDED
__crop-disease-detection/static/uploaded_images/imageFile.jpeg
ADDED
__crop-disease-detection/templates/index.html
ADDED
@@ -0,0 +1,79 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
7 |
+
|
8 |
+
<title>CropDiseaseDetector</title>
|
9 |
+
</head>
|
10 |
+
|
11 |
+
<body>
|
12 |
+
|
13 |
+
<!-- Nav Bar -->
|
14 |
+
<div class="h-[80px] border grid grid-cols-6 bg-[#ecfdf5]">
|
15 |
+
<a href="/" class="text-center text-xl font-bold pt-2 col-span-2 flex mx-auto">
|
16 |
+
<img src="{{ url_for('static', filename='setup/logo.png') }}" alt="plant"
|
17 |
+
class="mb-4 h-14 rounded-md mr-4 border border-2 rounded-xl shadow-md hover:shadow-xl">
|
18 |
+
<div class="pt-3 text-2xl">CropDiseaseDetector</div>
|
19 |
+
</a>
|
20 |
+
|
21 |
+
<div></div>
|
22 |
+
<div></div>
|
23 |
+
<div></div>
|
24 |
+
|
25 |
+
<a href="/" class="text-center text-xl font-bold py-6 hover:bg-[#d9f99d]">
|
26 |
+
<div>⚛️ Select Crop</div>
|
27 |
+
</a>
|
28 |
+
</div>
|
29 |
+
|
30 |
+
<!-- Content -->
|
31 |
+
|
32 |
+
<!-- Cards -->
|
33 |
+
<div class="h-[560px] flex flex-col justify-center items-center mx-10">
|
34 |
+
<h1 class="text-4xl font-extrabold text-gray-800 mb-10">Crop Disease Detector</h1>
|
35 |
+
<h1 class="text-xl text-gray-500 mb-10">
|
36 |
+
Crop disease detection involves the use of machine learning models to identify and classify diseases affecting various crops. In the provided information, three specific models are highlighted: the Tomato Disease Detection Model, the Sugarcane Disease Detection Model, and the Cotton Disease Detection Model.
|
37 |
+
</h1>
|
38 |
+
|
39 |
+
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
|
40 |
+
|
41 |
+
<!-- Tomato Section -->
|
42 |
+
<a href="/cropmodel/?modelname=tomatomodel" class="bg-white p-6 rounded-md shadow-md border">
|
43 |
+
<div>
|
44 |
+
<img src="{{ url_for('static', filename='setup/tomato_image.jpeg') }}" alt="Tomato"
|
45 |
+
class="mb-4 w-full h-[210px] rounded-md">
|
46 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-2">Tomato</h2>
|
47 |
+
<p class="text-gray-600">Detect and diagnose diseases affecting tomato crops.</p>
|
48 |
+
</div>
|
49 |
+
</a>
|
50 |
+
|
51 |
+
<!-- Sugarcane Section -->
|
52 |
+
<a href="/cropmodel/?modelname=sugarcanemodel" class="bg-white p-6 rounded-md shadow-md border">
|
53 |
+
<div>
|
54 |
+
<img src="{{ url_for('static', filename='setup/sugarcane_image.jpeg') }}" alt="Sugarcane" class="mb-4 w-full h-[210px] rounded-md">
|
55 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-2">Sugarcane</h2>
|
56 |
+
<p class="text-gray-600">Identify diseases impacting sugarcane plants for better crop management.</p>
|
57 |
+
</div>
|
58 |
+
</a>
|
59 |
+
|
60 |
+
<!-- Cotton Section -->
|
61 |
+
<a href="/cropmodel/?modelname=cottonmodel" class="bg-white p-6 rounded-md shadow-md border">
|
62 |
+
<div>
|
63 |
+
<img src="{{ url_for('static', filename='setup/cotton_image.jpeg') }}" alt="Cotton"
|
64 |
+
class="mb-4 w-full h-[210px] rounded-md">
|
65 |
+
<h2 class="text-xl font-semibold text-gray-800 mb-2">Cotton</h2>
|
66 |
+
<p class="text-gray-600">Detect and analyze diseases affecting cotton plants for improved yield.</p>
|
67 |
+
</div>
|
68 |
+
</a>
|
69 |
+
|
70 |
+
</div>
|
71 |
+
</div>
|
72 |
+
|
73 |
+
<!-- Footer -->
|
74 |
+
<section>
|
75 |
+
<div class="text-xl text-center font-bold pb-6">☘️ CropDiseaseDetector | 2023</div>
|
76 |
+
</section>
|
77 |
+
|
78 |
+
</body>
|
79 |
+
</html>
|
__crop-disease-detection/templates/modelresult.html
ADDED
@@ -0,0 +1,124 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<!DOCTYPE html>
|
2 |
+
<html lang="en">
|
3 |
+
<head>
|
4 |
+
<meta charset="UTF-8">
|
5 |
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<script src="https://cdn.tailwindcss.com"></script>
|
7 |
+
|
8 |
+
<title>Model Result</title>
|
9 |
+
</head>
|
10 |
+
<body>
|
11 |
+
|
12 |
+
<!-- Nav Bar -->
|
13 |
+
<div class="h-[80px] border grid grid-cols-6 bg-[#ecfdf5]">
|
14 |
+
<a href="/" class="text-center text-xl font-bold pt-2 col-span-2 flex mx-auto">
|
15 |
+
<img src="{{ url_for('static', filename='setup/logo.png') }}" alt="plant"
|
16 |
+
class="mb-4 h-14 rounded-md mr-4 border border-2 rounded-xl shadow-md hover:shadow-xl">
|
17 |
+
<div class="pt-3 text-2xl">CropDiseaseDetector</div>
|
18 |
+
</a>
|
19 |
+
|
20 |
+
<div></div>
|
21 |
+
<div></div>
|
22 |
+
<div></div>
|
23 |
+
|
24 |
+
<a href="/" class="text-center text-xl font-bold py-6 hover:bg-[#d9f99d]">
|
25 |
+
<div>⚛️ Select Crop</div>
|
26 |
+
</a>
|
27 |
+
</div>
|
28 |
+
|
29 |
+
<!-- Crop Model Name -->
|
30 |
+
<div class="text-xl text-center font-bold py-10">
|
31 |
+
Crop Model {{ modelname }}
|
32 |
+
</div>
|
33 |
+
|
34 |
+
<!-- Upload Image -->
|
35 |
+
<div class="grid grid-cols-3 mt-10">
|
36 |
+
|
37 |
+
<div class="border w-5/6 mx-auto px-10 py-4 rounded-xl shadow-md col-span-2">
|
38 |
+
<h1 class="text-xl text-center font-bold pb-10">Image Upload</h1>
|
39 |
+
<form action="/upload" method="post" enctype="multipart/form-data" class="mt-12">
|
40 |
+
|
41 |
+
<input type="text" name="modelname" class="border rounded-l-lg w-9/12 p-2 hidden" value="{{ modelname }}">
|
42 |
+
|
43 |
+
<!-- <input type="file" name="file" accept=".png, .jpg, .jpeg" class="border rounded-l-lg w-9/12 p-2" required> -->
|
44 |
+
<input type="file" name="file" accept=".png, .jpg, .jpeg, .JPG" class="border rounded-l-lg w-9/12 p-2" required>
|
45 |
+
<button type="submit" class="p-2 w-1/6 border shadow rounded-r-lg ml-6 hover:bg-blue-100 text-xl">Upload</button>
|
46 |
+
</form>
|
47 |
+
</div>
|
48 |
+
|
49 |
+
<!-- img preview -->
|
50 |
+
<div class="border mx-auto p-2 rounded-xl shadow-md w-5/6">
|
51 |
+
<div class="text-xl text-center font-bold pb-2">Image Preview</div>
|
52 |
+
{% if result %}
|
53 |
+
|
54 |
+
<!-- <img src="{{ url_for('static', filename='uploaded_images/imageFile.png') }}" alt="Tomato" class="mb-4 h-[210px] rounded-md mx-auto"> -->
|
55 |
+
|
56 |
+
<img src="{{ url_for('static', filename='uploaded_images/imageFile.jpeg') }}" alt="Tomato" class="mb-4 h-[210px] rounded-md mx-auto">
|
57 |
+
|
58 |
+
{% else %}
|
59 |
+
|
60 |
+
<img src="{{ url_for('static', filename='setup/plant.png') }}" alt="plant" class="mb-4 h-[210px] rounded-md mx-auto">
|
61 |
+
|
62 |
+
{% endif %}
|
63 |
+
|
64 |
+
</div>
|
65 |
+
|
66 |
+
</div>
|
67 |
+
|
68 |
+
<!-- Result -->
|
69 |
+
{% if result %}
|
70 |
+
<div class="p-10 mx-10">
|
71 |
+
<div
|
72 |
+
class="w-4/6 mx-auto px-10 border text-center text-2xl bg-[#fef9c3] py-6 shadow-md hover:shadow-inner">
|
73 |
+
Predicted Result : <b>{{ result }}</b></div>
|
74 |
+
</div>
|
75 |
+
{% endif %}
|
76 |
+
|
77 |
+
<!-- Model Details -->
|
78 |
+
|
79 |
+
{% if model_data %}
|
80 |
+
<div class="mx-10 p-10 border my-10 rounded-xl shadow-sm bg-[#f0fdf4]">
|
81 |
+
<div class="text-center text-xl font-bold mb-10">Model Details</div>
|
82 |
+
|
83 |
+
<div class="grid grid-cols-2 gap-4 px-10">
|
84 |
+
|
85 |
+
<div>
|
86 |
+
<b>About Dataset:</b>
|
87 |
+
<div class="px-6 py-6">
|
88 |
+
<div>- Total Images : {{ model_data.dataset.total_images }}</div>
|
89 |
+
<div>- Total Classes : {{ model_data.dataset.total_classes }}</div>
|
90 |
+
<div>- Class Names : <br><p class="pl-20">{{ model_data.dataset.classes_names }}</p></div>
|
91 |
+
</div>
|
92 |
+
</div>
|
93 |
+
|
94 |
+
<div class="px-20">
|
95 |
+
<b>About Model Training:</b>
|
96 |
+
<div class="px-6 py-6">
|
97 |
+
<div>- Training Epochs : {{ model_data.training.epochs }}</div>
|
98 |
+
<div>- Batch Size : {{ model_data.training.batch_size }}</div>
|
99 |
+
<div>- Img Frame Size : {{ model_data.training.img_frame_size }}</div>
|
100 |
+
<div>- CNN Layers : {{ model_data.training.CNN_layers }}</div>
|
101 |
+
<div>- CNN Layer Name : {{ model_data.training.CNN_layer_name }}</div>
|
102 |
+
<div>- Traning Accuracy : {{ model_data.training.accuracy }}</div>
|
103 |
+
</div>
|
104 |
+
</div>
|
105 |
+
|
106 |
+
</div>
|
107 |
+
<div>
|
108 |
+
<div class="text-center text-xl font-bold mb-10">References</div>
|
109 |
+
<a href="{{model_data.reference}}" class="text-center text-xl mb-10">
|
110 |
+
{{model_data.reference}}
|
111 |
+
</a>
|
112 |
+
</div>
|
113 |
+
</div>
|
114 |
+
{% endif %}
|
115 |
+
|
116 |
+
<!-- Footer -->
|
117 |
+
<section>
|
118 |
+
<div class="text-xl text-center font-bold pb-6">☘️ CropDiseaseDetector | 2023</div>
|
119 |
+
</section>
|
120 |
+
|
121 |
+
|
122 |
+
|
123 |
+
</body>
|
124 |
+
</html>
|
__crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (101)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (106)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (109)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (110)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (101)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (103)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (105)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (108)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (10)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (103)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (107)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (110)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (136)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (138)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (144)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (146)_iaip.jpeg
ADDED
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (10).JPG
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (12).JPG
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (17).JPG
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (20).JPG
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (100).JPG
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (12).jpg
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (14).jpg
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (19).jpg
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (100).JPG
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (12).JPG
ADDED
Git LFS Details
|
__crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (16).JPG
ADDED
Git LFS Details
|