|
|
6 dni temu | |
|---|---|---|
| assets | 6 dni temu | |
| model_files | 6 dni temu | |
| models | 6 dni temu | |
| resources | 6 dni temu | |
| ui | 6 dni temu | |
| utils | 6 dni temu | |
| workers | 6 dni temu | |
| .gitignore | 6 dni temu | |
| README.md | 6 dni temu | |
| __init__.py | 6 dni temu | |
| main.py | 6 dni temu | |
| requirements.txt | 6 dni temu |
Durian Desktop-Oriented Non-Invasive Grading System
DuDONG is a robust desktop application developed by the AIDurian project using Python, designed for advanced assessment of durian ripeness and quality. Utilizing advanced AI models and multiple sensor inputs, the software delivers precise predictions of durian fruit ripeness, quality assessment, and maturity classification.
The application supports both audio analysis and multispectral imaging for comprehensive durian evaluation. Through multi-model analysis including defect detection, shape assessment, and locule counting, DuDONG provides detailed insights into durian quality characteristics. All analysis results are persisted in a comprehensive database for historical tracking and performance monitoring.
Version: 2.1.0
dudong-v2/
├── main.py # Application entry point
├── requirements.txt # Python dependencies
├── README.md # This file
├── .gitignore # Git ignore rules
│
├── models/ # AI Model wrappers (Python)
│ ├── base_model.py # Abstract base class
│ ├── audio_model.py # Ripeness classification model
│ ├── defect_model.py # Defect detection model
│ ├── locule_model.py # Locule counting model
│ ├── maturity_model.py # Maturity analysis model
│ └── shape_model.py # Shape classification model
│
├── model_files/ # Actual ML model files
│ ├── audio/ # TensorFlow/Keras audio model
│ ├── multispectral/maturity/ # PyTorch maturity model
│ ├── best.pt # YOLOv8 defect detection
│ ├── locule.pt # YOLOv8 locule segmentation
│ └── shape.pt # YOLOv8 shape classification (optional)
│
├── workers/ # Async Processing Workers
│ ├── base_worker.py # QRunnable base class
│ ├── audio_worker.py # Audio processing thread
│ ├── defect_worker.py # Defect detection thread
│ ├── locule_worker.py # Locule counting thread
│ ├── maturity_worker.py # Maturity analysis thread
│ └── shape_worker.py # Shape classification thread
│
├── ui/ # User Interface Components
│ ├── main_window.py # Main application window
│ ├── panels/ # Dashboard panels
│ ├── tabs/ # Analysis tabs
│ ├── dialogs/ # Dialog windows
│ ├── widgets/ # Custom widgets
│ └── components/ # Report generation components
│
├── utils/ # Utility Modules
│ ├── config.py # Configuration and constants
│ ├── data_manager.py # Data persistence
│ ├── db_schema.py # Database schema
│ ├── camera_automation.py # Camera control (Windows)
│ ├── system_monitor.py # System metrics monitoring
│ └── other_utilities... # Additional utilities
│
├── resources/ # Styling and Resources
│ └── styles.py # Centralized stylesheets
│
└── assets/ # Image Assets
├── logos/ # Logo images
└── loading-gif.gif # Loading animation (optional)
Extract or clone the dudong-v2 repository to your desired location:
git clone <repository-url>
cd dudong-v2
# Create virtual environment
python -m venv venv
# Activate virtual environment
# On Windows:
venv\Scripts\activate
# On Linux/Mac:
source venv/bin/activate
pip install -r requirements.txt
Ensure all required model files are present in the model_files/ directory:
model_files/audio/best_model_mel_spec_grouped.kerasmodel_files/audio/label_encoder.pklmodel_files/audio/preprocessing_stats.jsonmodel_files/best.pt (Defect detection)model_files/locule.pt (Locule counting)model_files/multispectral/maturity/final_model.pt (Maturity)model_files/shape.pt (Shape classification - optional)If any files are missing, the application will still run but those models will not be available.
python main.py
The application will:
Edit utils/config.py to customize:
Create a .env file in the root directory:
DEVICE_ID=MAIN-001
LOG_LEVEL=INFO
CUDA_VISIBLE_DEVICES=0
The application automatically detects and uses NVIDIA GPUs when available.
To check GPU availability:
python -c "import torch; print(f'CUDA Available: {torch.cuda.is_available()}'); print(f'GPU: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"None\"}')"
model_files/ directorypip install --upgrade PyQt5QT_QPA_PLATFORM=windows on Windowsmodels/ directory inheriting from BaseModelworkers/ directory inheriting from BaseWorkerui/panels/ for displaying resultsui/main_window.pyThe application automatically creates and manages an SQLite database at data/database.db which stores:
This database is created automatically on first run.
Developed by researchers at the Department of Math, Physics, and Computer Science in UP Mindanao, specifically the AIDurian Project, under the Department of Science and Technology's (DOST) i-CRADLE program.
The project aims to bridge the gap between manual practices of durian farming and introduce it to the various technological advancements available today.
Special thanks to AIDurian's partners:
For issues, questions, or contributions, please contact the AIDurian development team.
© 2023-2026 AIDurian Project. All rights reserved.