atharvapawar commited on
Commit
ff04594
1 Parent(s): b795dd9

Upload 92 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +12 -0
  2. __crop-disease-detection/.gitattributes +1 -0
  3. __crop-disease-detection/Dockerfile +17 -0
  4. __crop-disease-detection/Research/model_test.py +10 -0
  5. __crop-disease-detection/Research/sugarcane-disease-detection.py +47 -0
  6. __crop-disease-detection/Research/test.py +65 -0
  7. __crop-disease-detection/Run-on-Colab-CropDiseaseDetector_FlaskNgrok_test.ipynb +1272 -0
  8. __crop-disease-detection/__pycache__/utils.cpython-311.pyc +0 -0
  9. __crop-disease-detection/app.py +140 -0
  10. __crop-disease-detection/docker-details.txt +49 -0
  11. __crop-disease-detection/main.py +145 -0
  12. __crop-disease-detection/model_folder/cotton_disease_model.h5 +3 -0
  13. __crop-disease-detection/model_folder/sugarcane_disease_model.h5 +3 -0
  14. __crop-disease-detection/model_folder/tomato_disease_model.h5 +3 -0
  15. __crop-disease-detection/requirements.txt +0 -0
  16. __crop-disease-detection/static/setup/cotton_image.jpeg +0 -0
  17. __crop-disease-detection/static/setup/logo.png +0 -0
  18. __crop-disease-detection/static/setup/plant.png +0 -0
  19. __crop-disease-detection/static/setup/sugarcane_image.jpeg +0 -0
  20. __crop-disease-detection/static/setup/tomato_image.jpeg +0 -0
  21. __crop-disease-detection/static/uploaded_images/imageFile.jpeg +0 -0
  22. __crop-disease-detection/templates/index.html +79 -0
  23. __crop-disease-detection/templates/modelresult.html +124 -0
  24. __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (101)_iaip.jpeg +0 -0
  25. __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (106)_iaip.jpeg +0 -0
  26. __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (109)_iaip.jpeg +0 -0
  27. __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton leaf/dis_leaf (110)_iaip.jpeg +0 -0
  28. __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (101)_iaip.jpeg +0 -0
  29. __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (103)_iaip.jpeg +0 -0
  30. __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (105)_iaip.jpeg +0 -0
  31. __crop-disease-detection/test_img_folder/cottonmodel/diseased cotton plant/dd (108)_iaip.jpeg +0 -0
  32. __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (10)_iaip.jpeg +0 -0
  33. __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (103)_iaip.jpeg +0 -0
  34. __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (107)_iaip.jpeg +0 -0
  35. __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton leaf/d (110)_iaip.jpeg +0 -0
  36. __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (136)_iaip.jpeg +0 -0
  37. __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (138)_iaip.jpeg +0 -0
  38. __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (144)_iaip.jpeg +0 -0
  39. __crop-disease-detection/test_img_folder/cottonmodel/fresh cotton plant/dsd (146)_iaip.jpeg +0 -0
  40. __crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (10).JPG +3 -0
  41. __crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (12).JPG +3 -0
  42. __crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (17).JPG +3 -0
  43. __crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (20).JPG +3 -0
  44. __crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (100).JPG +3 -0
  45. __crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (12).jpg +3 -0
  46. __crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (14).jpg +3 -0
  47. __crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (19).jpg +3 -0
  48. __crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (100).JPG +3 -0
  49. __crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (12).JPG +3 -0
  50. __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

  • SHA256: 1dd228ae1186487feea8789a3feacfa3db4fe8ffdd866b5f6ffbbb2dabaab340
  • Pointer size: 132 Bytes
  • Size of remote file: 4.82 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (12).JPG ADDED

Git LFS Details

  • SHA256: 0f09e06f491cf61dda8e7f640a4621103a5ae19a4a9174c95074357c87ca034b
  • Pointer size: 132 Bytes
  • Size of remote file: 4.78 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (17).JPG ADDED

Git LFS Details

  • SHA256: efe1566ccd0eb3ca2f4f957b32a3bdbb5c57dd1e1609782658139a61bbd13e68
  • Pointer size: 132 Bytes
  • Size of remote file: 4.89 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Bacterial Blight/S_BLB (20).JPG ADDED

Git LFS Details

  • SHA256: 0df9fa084b2e2ad85ebeb3e9e4129f40c647c5a5601b80de2147d61ef3c13ece
  • Pointer size: 132 Bytes
  • Size of remote file: 5.8 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (100).JPG ADDED

Git LFS Details

  • SHA256: 52722fa75a6643442a21aa8b206096ffd548644e81a704c1dab289b0984c914f
  • Pointer size: 133 Bytes
  • Size of remote file: 13.1 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (12).jpg ADDED

Git LFS Details

  • SHA256: d6f886bb525e69b105ba2db7d6d69b12f7c34ef84e2e2dc4adf4973f7faee351
  • Pointer size: 132 Bytes
  • Size of remote file: 3.39 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (14).jpg ADDED

Git LFS Details

  • SHA256: 3e7e7ce76ec56c51e17ea224d94698e7cf29a7806d39164e9a6263c7b1f6ae8d
  • Pointer size: 132 Bytes
  • Size of remote file: 4.65 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Healthy/S_H (19).jpg ADDED

Git LFS Details

  • SHA256: 2f110df6612a800c987d757bed18399c7cd9dc7102645ae0b3a47583219fb814
  • Pointer size: 132 Bytes
  • Size of remote file: 2.89 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (100).JPG ADDED

Git LFS Details

  • SHA256: 4ca53206f241eaf072f63b7913b6727ad23ced6b3ba678e97bb3c946744ed457
  • Pointer size: 132 Bytes
  • Size of remote file: 5.49 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (12).JPG ADDED

Git LFS Details

  • SHA256: 30afd101d209528a033c3c6d2b3ef901fe7cd13444df070fa59d362487368aaf
  • Pointer size: 133 Bytes
  • Size of remote file: 11.4 MB
__crop-disease-detection/test_img_folder/sugarcanemodel/Red Rot/S_RR (16).JPG ADDED

Git LFS Details

  • SHA256: 0d1c7fa4165971915bd6f6cbb7052b417c3ec96f0e2e58c162e46434a62ded2b
  • Pointer size: 133 Bytes
  • Size of remote file: 12.9 MB