Yapp99 commited on
Commit
6883ad5
·
1 Parent(s): 6e408f4

more update

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 +1 -0
  2. .gitignore +2 -0
  3. S1_YoloTimber.py → S1_CNN_Model.py +4 -40
  4. app.py +3 -4
  5. data/annotations.csv +3 -0
  6. data/coco.yaml +3 -0
  7. data/dataset.yaml +3 -0
  8. data/image/test_full/Acrocarpus fraxinifolius/0744.JPG +3 -0
  9. data/image/test_full/Acrocarpus fraxinifolius/0745.JPG +3 -0
  10. data/image/test_full/Acrocarpus fraxinifolius/0746.JPG +3 -0
  11. data/image/test_full/Acrocarpus fraxinifolius/0747.JPG +3 -0
  12. data/image/test_full/Acrocarpus fraxinifolius/0748.JPG +3 -0
  13. data/image/test_full/Araucaria angustifolia/0257.JPG +3 -0
  14. data/image/test_full/Araucaria angustifolia/0258.JPG +3 -0
  15. data/image/test_full/Araucaria angustifolia/0259.JPG +3 -0
  16. data/image/test_full/Araucaria angustifolia/0260.JPG +3 -0
  17. data/image/test_full/Araucaria angustifolia/0261.JPG +3 -0
  18. data/image/test_full/Araucaria angustifolia/0262.JPG +3 -0
  19. data/image/test_full/Araucaria angustifolia/0263.JPG +3 -0
  20. data/image/test_full/Aspidosperma polyneuron/0148.JPG +3 -0
  21. data/image/test_full/Aspidosperma polyneuron/0149.JPG +3 -0
  22. data/image/test_full/Aspidosperma polyneuron/0150.JPG +3 -0
  23. data/image/test_full/Aspidosperma polyneuron/0151.JPG +3 -0
  24. data/image/test_full/Aspidosperma polyneuron/0152.JPG +3 -0
  25. data/image/test_full/Aspidosperma polyneuron/0153.JPG +3 -0
  26. data/image/test_full/Bagassa guianensis/2987.JPG +3 -0
  27. data/image/test_full/Bagassa guianensis/2988.JPG +3 -0
  28. data/image/test_full/Bagassa guianensis/2989.JPG +3 -0
  29. data/image/test_full/Bagassa guianensis/2990.JPG +3 -0
  30. data/image/test_full/Bagassa guianensis/2991.JPG +3 -0
  31. data/image/test_full/Bagassa guianensis/2992.JPG +3 -0
  32. data/image/test_full/Bagassa guianensis/2993.JPG +3 -0
  33. data/image/test_full/Bagassa guianensis/2994.JPG +3 -0
  34. data/image/test_full/Bagassa guianensis/2995.JPG +3 -0
  35. data/image/test_full/Bagassa guianensis/2996.JPG +3 -0
  36. data/image/test_full/Balfourodendron riedelianum/3556.JPG +3 -0
  37. data/image/test_full/Balfourodendron riedelianum/3557.JPG +3 -0
  38. data/image/test_full/Balfourodendron riedelianum/3558.JPG +3 -0
  39. data/image/test_full/Balfourodendron riedelianum/3559.JPG +3 -0
  40. data/image/test_full/Balfourodendron riedelianum/3560.JPG +3 -0
  41. data/image/test_full/Balfourodendron riedelianum/3561.JPG +3 -0
  42. data/image/test_full/Balfourodendron riedelianum/3562.JPG +3 -0
  43. data/image/test_full/Bertholethia excelsa/2190.JPG +3 -0
  44. data/image/test_full/Bertholethia excelsa/2191.JPG +3 -0
  45. data/image/test_full/Bertholethia excelsa/2192.JPG +3 -0
  46. data/image/test_full/Bertholethia excelsa/2193.JPG +3 -0
  47. data/image/test_full/Bertholethia excelsa/2194.JPG +3 -0
  48. data/image/test_full/Bertholethia excelsa/2195.JPG +3 -0
  49. data/image/test_full/Bertholethia excelsa/2196.JPG +3 -0
  50. data/image/test_full/Bertholethia excelsa/2197.JPG +3 -0
.gitattributes CHANGED
@@ -33,3 +33,4 @@ 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
+ data/** filter=lfs diff=lfs merge=lfs -text
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ test.*
2
+ *.pt
S1_YoloTimber.py → S1_CNN_Model.py RENAMED
@@ -1,6 +1,5 @@
1
  import torchvision
2
  import torch
3
- import hubconf
4
  import os
5
  from torch import nn, Tensor
6
  import torch.nn.functional as F
@@ -8,27 +7,8 @@ import cv2
8
  from PIL import Image
9
  import numpy as np
10
 
11
- model_name = "yolov6s"
12
-
13
- from yolov6.models.yolo import Model as YoloModel
14
- from yolov6.utils.config import Config
15
- config = Config.fromfile(f"configs/base/{model_name}_base_finetune.py")
16
  device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')
17
 
18
- class YoloBackbone(YoloModel):
19
- def __init__(self, config, num_classes, device):
20
- super().__init__(config, num_classes=num_classes)
21
-
22
- self.to(device)
23
- self.train()
24
-
25
- def forward(self, x:Tensor) -> Tensor:
26
- # x = self.backbone.forward(x)
27
- # x = self.neck.forward(x)
28
- # x = self.detect.forward(x)
29
- # _,_,_,x = x
30
- return x
31
-
32
  class Interpreter(nn.Module):
33
  def __init__(self,
34
  class_count:int,
@@ -86,15 +66,13 @@ class Interpreter(nn.Module):
86
  import patchify
87
  from torchvision import transforms
88
 
89
- class YoloTimber(nn.Module):
90
  def __init__(self,
91
  image_size: tuple[int,int],
92
- yolo_model: YoloBackbone,
93
  interpreter: Interpreter,
94
  ):
95
  super().__init__()
96
  self.device = interpreter.device
97
- self.yolo_model = yolo_model
98
  self.image_size = image_size
99
  self.interpreter = interpreter
100
 
@@ -111,7 +89,6 @@ class YoloTimber(nn.Module):
111
  return preds
112
 
113
  def forward(self, x:Tensor) -> Tensor:
114
- x = self.yolo_model(x)
115
  x = self.interpreter(x)
116
  return x
117
 
@@ -138,33 +115,20 @@ class YoloTimber(nn.Module):
138
 
139
  class_count = 41
140
 
141
- def build_backbone(device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')) -> YoloBackbone:
142
- return YoloBackbone(
143
- config = config,
144
- num_classes=class_count,
145
- device = device
146
- )
147
-
148
  def build_interpreter(img_size=(640,640),
149
- yolo_model = None,
150
  device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')
151
  ) -> Interpreter:
152
  img_size = list(img_size)
153
- if yolo_model == None:
154
- yolo_model = build_backbone(device)
155
 
156
  x = torch.randn([3]+img_size).view([-1,3]+img_size).to(device)
157
- x = yolo_model(x)
158
 
159
  return Interpreter(class_count=class_count, sample_yolo_output=x, device=device)
160
 
161
  def build_model(img_size = (640,640),
162
  device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')
163
- ) -> YoloTimber:
164
- yolo_model=build_backbone(device)
165
- return YoloTimber(yolo_model=yolo_model,
166
- image_size=img_size,
167
- interpreter=build_interpreter(img_size, yolo_model, device))
168
 
169
  if __name__ == "__main__":
170
  model = build_model(img_size=(320,320))
 
1
  import torchvision
2
  import torch
 
3
  import os
4
  from torch import nn, Tensor
5
  import torch.nn.functional as F
 
7
  from PIL import Image
8
  import numpy as np
9
 
 
 
 
 
 
10
  device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')
11
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
12
  class Interpreter(nn.Module):
13
  def __init__(self,
14
  class_count:int,
 
66
  import patchify
67
  from torchvision import transforms
68
 
69
+ class CNN_Model(nn.Module):
70
  def __init__(self,
71
  image_size: tuple[int,int],
 
72
  interpreter: Interpreter,
73
  ):
74
  super().__init__()
75
  self.device = interpreter.device
 
76
  self.image_size = image_size
77
  self.interpreter = interpreter
78
 
 
89
  return preds
90
 
91
  def forward(self, x:Tensor) -> Tensor:
 
92
  x = self.interpreter(x)
93
  return x
94
 
 
115
 
116
  class_count = 41
117
 
 
 
 
 
 
 
 
118
  def build_interpreter(img_size=(640,640),
 
119
  device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')
120
  ) -> Interpreter:
121
  img_size = list(img_size)
 
 
122
 
123
  x = torch.randn([3]+img_size).view([-1,3]+img_size).to(device)
 
124
 
125
  return Interpreter(class_count=class_count, sample_yolo_output=x, device=device)
126
 
127
  def build_model(img_size = (640,640),
128
  device=torch.device('cuda' if torch.cuda.is_available() else 'cpu')
129
+ ) -> CNN_Model:
130
+ return CNN_Model(image_size=img_size,
131
+ interpreter=build_interpreter(img_size, device))
 
 
132
 
133
  if __name__ == "__main__":
134
  model = build_model(img_size=(320,320))
app.py CHANGED
@@ -1,21 +1,20 @@
1
  import gdown
2
  import os
3
  import torch
4
- from S1_YoloTimber import YoloTimber
5
  import gradio as gr
6
  import numpy as np
7
  import cv2
8
  import pandas as pd
9
 
10
- MODEL_LINK = "https://drive.google.com/file/d/1XMdyxlKg7iliN6ekJVn9v4o6HJCJ-ASb/view?usp=drive_link"
11
  MODEL_PATH = "model.pt"
12
 
13
  if not os.path.exists(MODEL_PATH):
14
  print("Downloading model . . . ")
15
  gdown.download(MODEL_LINK,MODEL_PATH,fuzzy=True)
16
 
17
- model:YoloTimber = torch.load(MODEL_PATH)
18
- model.image_size = (320,320)
19
 
20
  def listdir_full(path: str) -> list[str]:
21
  return [f"{path}/{p}" for p in os.listdir(path)]
 
1
  import gdown
2
  import os
3
  import torch
4
+ from S1_CNN_Model import CNN_Model
5
  import gradio as gr
6
  import numpy as np
7
  import cv2
8
  import pandas as pd
9
 
10
+ MODEL_LINK = "https://drive.google.com/file/d/1YUTQlIjNEW8w7Y1kXCOlBNgrgTmdQBoI/view?usp=sharing"
11
  MODEL_PATH = "model.pt"
12
 
13
  if not os.path.exists(MODEL_PATH):
14
  print("Downloading model . . . ")
15
  gdown.download(MODEL_LINK,MODEL_PATH,fuzzy=True)
16
 
17
+ model:CNN_Model = torch.load(MODEL_PATH)
 
18
 
19
  def listdir_full(path: str) -> list[str]:
20
  return [f"{path}/{p}" for p in os.listdir(path)]
data/annotations.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:64dfe7d6b4be6d3efa7b52c5919eebb8068d53fba555f585b401ece80779db0f
3
+ size 81559
data/coco.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:65cc8c22fc16910f500b4dbfa1660dccabad9acc2bab1e670fd379c96a6aad72
3
+ size 1310
data/dataset.yaml ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:586efc12ccc267f70359b3fb245f93effe57891ca53734fb0f8d9c0c9d32c9b6
3
+ size 1258
data/image/test_full/Acrocarpus fraxinifolius/0744.JPG ADDED

Git LFS Details

  • SHA256: 076ad14fb21365a50cdd78c68bed54766ee22e560944454c5cac641a67ac6d80
  • Pointer size: 132 Bytes
  • Size of remote file: 2.88 MB
data/image/test_full/Acrocarpus fraxinifolius/0745.JPG ADDED

Git LFS Details

  • SHA256: 2598256dcc1f825e6f05afd932fa59fd3ed11d386c1bec4ec45db4a90ce95608
  • Pointer size: 132 Bytes
  • Size of remote file: 2.88 MB
data/image/test_full/Acrocarpus fraxinifolius/0746.JPG ADDED

Git LFS Details

  • SHA256: e9467c9d8f2e1bf5b9e143926897cf703606435d9b36eed27914f9a88c33efb8
  • Pointer size: 132 Bytes
  • Size of remote file: 3.11 MB
data/image/test_full/Acrocarpus fraxinifolius/0747.JPG ADDED

Git LFS Details

  • SHA256: cac7f35cb57b5e9ed85e7b1832a3a90a9d4fcd69ee8d4347d8ca0e3bfb9088cb
  • Pointer size: 132 Bytes
  • Size of remote file: 3.1 MB
data/image/test_full/Acrocarpus fraxinifolius/0748.JPG ADDED

Git LFS Details

  • SHA256: d8a5fee2c3fc3a3dc31d39af70091198ebb47cf6f6a7cf9d377a472587da917d
  • Pointer size: 132 Bytes
  • Size of remote file: 2.98 MB
data/image/test_full/Araucaria angustifolia/0257.JPG ADDED

Git LFS Details

  • SHA256: 3f2c6cc2a7857ed078f79bdf6f92054826bcb9962238ee3c25ca9771ef568b53
  • Pointer size: 132 Bytes
  • Size of remote file: 3.12 MB
data/image/test_full/Araucaria angustifolia/0258.JPG ADDED

Git LFS Details

  • SHA256: e5c9a3e50eb43f8c832742fb28e91e6008f8c864af01e9ce4655be22f945ab99
  • Pointer size: 132 Bytes
  • Size of remote file: 2.86 MB
data/image/test_full/Araucaria angustifolia/0259.JPG ADDED

Git LFS Details

  • SHA256: ddabf399a8eb4511f039abd8a89dcf576542b884878a2cdcdffe7a6a82acf79d
  • Pointer size: 132 Bytes
  • Size of remote file: 2.94 MB
data/image/test_full/Araucaria angustifolia/0260.JPG ADDED

Git LFS Details

  • SHA256: 3f04ffee60a0740362be8411030d5d49377b24b6e27f0295e06a52ba83676126
  • Pointer size: 132 Bytes
  • Size of remote file: 2.81 MB
data/image/test_full/Araucaria angustifolia/0261.JPG ADDED

Git LFS Details

  • SHA256: f3d5da17945fa6e03fa350c5a7417a9fd387fa1c036dcee02e0dde9e1ada64d8
  • Pointer size: 132 Bytes
  • Size of remote file: 3.15 MB
data/image/test_full/Araucaria angustifolia/0262.JPG ADDED

Git LFS Details

  • SHA256: b21c0d0f3eb3e7041e1d7d2a6b6e4b0c038ca4bd032bafc107a9005c699f9ea8
  • Pointer size: 132 Bytes
  • Size of remote file: 2.88 MB
data/image/test_full/Araucaria angustifolia/0263.JPG ADDED

Git LFS Details

  • SHA256: ce8ee4e7ad3f9d03d57a58010cd597dc0effee787851dd66bbf252b1ea9547c6
  • Pointer size: 132 Bytes
  • Size of remote file: 2.98 MB
data/image/test_full/Aspidosperma polyneuron/0148.JPG ADDED

Git LFS Details

  • SHA256: 8762466d7dd3f6adf9806d0f719df2309eb65cce6e86d3ffeed224fe3ad5174f
  • Pointer size: 132 Bytes
  • Size of remote file: 2.71 MB
data/image/test_full/Aspidosperma polyneuron/0149.JPG ADDED

Git LFS Details

  • SHA256: 1b8cd4f1c5672eca8c6ee0061e65b87e7760b3adf7ece2c725af864b814a2be9
  • Pointer size: 132 Bytes
  • Size of remote file: 3.07 MB
data/image/test_full/Aspidosperma polyneuron/0150.JPG ADDED

Git LFS Details

  • SHA256: 621fe001ff8a998ec7b3de1ee531a051e11f701d47e38cd495df605f36bf2b4e
  • Pointer size: 132 Bytes
  • Size of remote file: 2.69 MB
data/image/test_full/Aspidosperma polyneuron/0151.JPG ADDED

Git LFS Details

  • SHA256: b342095cdc3d9c3e437b956c322a7e85c1fbdc282ff541ea72de454031fd5339
  • Pointer size: 132 Bytes
  • Size of remote file: 2.72 MB
data/image/test_full/Aspidosperma polyneuron/0152.JPG ADDED

Git LFS Details

  • SHA256: cdc24640344f04716e64c403e6d2526c5c6f9d6e55d5e94ce5775671b2e0ce47
  • Pointer size: 132 Bytes
  • Size of remote file: 2.52 MB
data/image/test_full/Aspidosperma polyneuron/0153.JPG ADDED

Git LFS Details

  • SHA256: 21502a56fa70f254eb2af18420c33722b3f60c1d37156952df49b95cd40df80f
  • Pointer size: 132 Bytes
  • Size of remote file: 2.67 MB
data/image/test_full/Bagassa guianensis/2987.JPG ADDED

Git LFS Details

  • SHA256: 0524c46ce68581d9ac8312517da661d760253e88aa7b54a05efdec44f7828856
  • Pointer size: 132 Bytes
  • Size of remote file: 3 MB
data/image/test_full/Bagassa guianensis/2988.JPG ADDED

Git LFS Details

  • SHA256: 7d1ed863be51f327aecea8cc153380f11196202408d730f69fdae0f7528846e7
  • Pointer size: 132 Bytes
  • Size of remote file: 3.06 MB
data/image/test_full/Bagassa guianensis/2989.JPG ADDED

Git LFS Details

  • SHA256: 1797ecdedc75f103318d30330e477e5e1cb6038a4c2592f7e97809c57adcf605
  • Pointer size: 132 Bytes
  • Size of remote file: 3.04 MB
data/image/test_full/Bagassa guianensis/2990.JPG ADDED

Git LFS Details

  • SHA256: 1bd02f490df53c031143c219d733358b8e4e8b46b111ff102400d2d7b7168bb7
  • Pointer size: 132 Bytes
  • Size of remote file: 2.91 MB
data/image/test_full/Bagassa guianensis/2991.JPG ADDED

Git LFS Details

  • SHA256: 845b8954862776c828ec2ccba611797b71930c8a184534063f45fca3ece64ae8
  • Pointer size: 132 Bytes
  • Size of remote file: 2.77 MB
data/image/test_full/Bagassa guianensis/2992.JPG ADDED

Git LFS Details

  • SHA256: 6396f381cb3312bd9b03eb86537965edca2250483973d5215d42bb40e3a691b5
  • Pointer size: 132 Bytes
  • Size of remote file: 2.73 MB
data/image/test_full/Bagassa guianensis/2993.JPG ADDED

Git LFS Details

  • SHA256: 2a84006177f73d2e3aa249d55da804ed745ec6126c4148a1330892b94709f42f
  • Pointer size: 132 Bytes
  • Size of remote file: 2.97 MB
data/image/test_full/Bagassa guianensis/2994.JPG ADDED

Git LFS Details

  • SHA256: e0c6451502374eca0b4fe8e0c7af95887a6cb96a49e89a923eab16fb0e6364a8
  • Pointer size: 132 Bytes
  • Size of remote file: 2.77 MB
data/image/test_full/Bagassa guianensis/2995.JPG ADDED

Git LFS Details

  • SHA256: c4c7f0e1e45cbcb8befe21d559a58453488ec2eed318b92ec64dab553674f28b
  • Pointer size: 132 Bytes
  • Size of remote file: 3.15 MB
data/image/test_full/Bagassa guianensis/2996.JPG ADDED

Git LFS Details

  • SHA256: 1b934d4c9d1c14481b74016c567915226f915b5b22d6c29c4aaaedbe17df404c
  • Pointer size: 132 Bytes
  • Size of remote file: 2.91 MB
data/image/test_full/Balfourodendron riedelianum/3556.JPG ADDED

Git LFS Details

  • SHA256: 9b13184193b491ad1ed3db3951d42ba873160c6ac323747957a538c065b97ea9
  • Pointer size: 132 Bytes
  • Size of remote file: 2.77 MB
data/image/test_full/Balfourodendron riedelianum/3557.JPG ADDED

Git LFS Details

  • SHA256: 75c15127b440b03e07ca9985770bd6dceee1e99fb876632a6aaf9c2b9d37a104
  • Pointer size: 132 Bytes
  • Size of remote file: 2.68 MB
data/image/test_full/Balfourodendron riedelianum/3558.JPG ADDED

Git LFS Details

  • SHA256: e1499fe3253807b0b5a8969a3cabdd2f59b8759fa44782a5e4c02c299f3f8111
  • Pointer size: 132 Bytes
  • Size of remote file: 2.72 MB
data/image/test_full/Balfourodendron riedelianum/3559.JPG ADDED

Git LFS Details

  • SHA256: 061e72a272d604c926222c78e10e71e8265b883e3749089a1891f4937e3ae528
  • Pointer size: 132 Bytes
  • Size of remote file: 2.95 MB
data/image/test_full/Balfourodendron riedelianum/3560.JPG ADDED

Git LFS Details

  • SHA256: f0235d4bad9a2ca819c9091b32251c5dca55828b37b534d2e17c068b0aea3b91
  • Pointer size: 132 Bytes
  • Size of remote file: 2.93 MB
data/image/test_full/Balfourodendron riedelianum/3561.JPG ADDED

Git LFS Details

  • SHA256: ea9e6c31e8d8721886eb7ff1fdd826207a9105b5b06c62508dc4dccb77ad8907
  • Pointer size: 132 Bytes
  • Size of remote file: 3.1 MB
data/image/test_full/Balfourodendron riedelianum/3562.JPG ADDED

Git LFS Details

  • SHA256: f6b17e89fc4ac9df1c8fee55bab164eb9f3a4454cf39e34d09e5a026b6bc59a5
  • Pointer size: 132 Bytes
  • Size of remote file: 3.06 MB
data/image/test_full/Bertholethia excelsa/2190.JPG ADDED

Git LFS Details

  • SHA256: 1eae00d82fbfc52b78960ecef450f4bb746f9b33f191a4590877e150c85383e0
  • Pointer size: 132 Bytes
  • Size of remote file: 2.88 MB
data/image/test_full/Bertholethia excelsa/2191.JPG ADDED

Git LFS Details

  • SHA256: da3d60e7b0858a2aae74e00ed575a69eab5493c6a97957cc9e9cb3e6b3e2dea9
  • Pointer size: 132 Bytes
  • Size of remote file: 2.73 MB
data/image/test_full/Bertholethia excelsa/2192.JPG ADDED

Git LFS Details

  • SHA256: e01e53f3991ed5f4c76a5f3bf9a167abbf573922ae17a9112062b7806707321a
  • Pointer size: 132 Bytes
  • Size of remote file: 2.68 MB
data/image/test_full/Bertholethia excelsa/2193.JPG ADDED

Git LFS Details

  • SHA256: ae5fe02829b97cf0d853f90fddc98b3b7da73c11c910616dfa944073da557163
  • Pointer size: 132 Bytes
  • Size of remote file: 3.04 MB
data/image/test_full/Bertholethia excelsa/2194.JPG ADDED

Git LFS Details

  • SHA256: 57212471b0afd7f72d59c97e528d307a7190e6860d85fe3efba5c8ab9bf9b78b
  • Pointer size: 132 Bytes
  • Size of remote file: 2.87 MB
data/image/test_full/Bertholethia excelsa/2195.JPG ADDED

Git LFS Details

  • SHA256: 1ed07bae6bebcc5bd013bd8e8841e93ac07765cec57a628152b64f365bc85054
  • Pointer size: 132 Bytes
  • Size of remote file: 2.95 MB
data/image/test_full/Bertholethia excelsa/2196.JPG ADDED

Git LFS Details

  • SHA256: f856757b2cf7f3d0b24982f331ca83eb376c628358564a9f111371ac797b4e34
  • Pointer size: 132 Bytes
  • Size of remote file: 2.95 MB
data/image/test_full/Bertholethia excelsa/2197.JPG ADDED

Git LFS Details

  • SHA256: c7fa7bcdea6bd0e4f8e42f204b2536312a2ccfae4048d05572bd80b85208317f
  • Pointer size: 132 Bytes
  • Size of remote file: 3.12 MB