Plant Leaf Disease Detection Using CNN
единая CNN для диагностики листьев на edge
Это image-classification модель от Shubham Kumar (Shubham12864) для определения болезней листьев растений. В основе — ConvNeXt-V2 backbone с GRN и единый end-to-end пайплайн без внешнего детектора. Доступна в PyTorch, ONNX FP32 и edge-INT8 ONNX; размер FP32 — около 107.8–107.9 MB, INT8 — 27.7 MB.
🔥 Ключевые особенности
- 🧐 Единая дифференцируемая CNN вместо связки YOLO-кроппинга и отдельного классификатора.
- 🔥 Differentiable Spatial Saliency Gating подавляет до 90% нефолийного фона — почвы, рук, горшков, неба — без внешнего bounding-box детектора.
- 🤖 Иерархическая таксономическая обусловленность: прогноз болезни зависит от вероятностей семейства культур; биологическая согласованность — 93.83%.
- 🚀 Split Conformal Prediction Safety Guard даёт гарантированные наборы предсказаний с эмпирическим покрытием 96.61% при 95% confidence.
- 💻 Три формата: PyTorch .pt, ONNX FP32 и edge-INT8 ONNX; INT8 уменьшает размер на 74.3%.
- 🧐 Два выхода: семейство культур (k=14, 91.04% Acc) и состояние/патология (k=38, 85.59% Acc).
💻 Пример
import numpy as np
from PIL import Image
import onnxruntime as ort
session = ort.InferenceSession("unified_gated_plant_cnn_int8.onnx", providers=["CPUExecutionProvider"])
img = Image.open("leaf_sample.jpg").convert("RGB").resize((224, 224))
arr = np.array(img, dtype=np.float32) / 255.0
mean = np.array([0.485, 0.456, 0.406], dtype=np.float32)
std = np.array([0.229, 0.224, 0.225], dtype=np.float32)
Подробнее
Бенчмарк на CPU, 50 итераций: PyTorch FP32 — 73.7 ms и 13.6 FPS; ONNX FP32 — 95.7 ms и 10.5 FPS; INT8 — 293.7 ms и 3.4 FPS.Размер: 107.8 MB (PyTorch FP32), 107.9 MB (ONNX FP32), 27.7 MB (INT8), сокращение на 74.3%.
Численное соответствие PyTorch FP32 и ONNX FP32: максимальная абсолютная ошибка < 3.58×10⁻⁶.
Ограничение: INT8-вариант заметно медленнее на CPU, несмотря на меньший размер.








Комментарии