vogel-model-trainer 0.1.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- vogel_model_trainer-0.1.4/.github/ISSUE_TEMPLATE/bug_report.md +49 -0
- vogel_model_trainer-0.1.4/.github/ISSUE_TEMPLATE/custom.md +32 -0
- vogel_model_trainer-0.1.4/.github/ISSUE_TEMPLATE/feature_request.md +40 -0
- vogel_model_trainer-0.1.4/.github/PULL_REQUEST_TEMPLATE.md +68 -0
- vogel_model_trainer-0.1.4/.github/RELEASE_TEMPLATE.md +47 -0
- vogel_model_trainer-0.1.4/.github/RELEASE_v0.1.0.md +151 -0
- vogel_model_trainer-0.1.4/.github/RELEASE_v0.1.1.md +124 -0
- vogel_model_trainer-0.1.4/.github/RELEASE_v0.1.2.md +210 -0
- vogel_model_trainer-0.1.4/.github/RELEASE_v0.1.3.md +290 -0
- vogel_model_trainer-0.1.4/.github/RELEASE_v0.1.4.md +247 -0
- vogel_model_trainer-0.1.4/.github/release.yml +36 -0
- vogel_model_trainer-0.1.4/.github/workflows/publish-pypi.yml +59 -0
- vogel_model_trainer-0.1.4/.gitignore +83 -0
- vogel_model_trainer-0.1.4/.pypirc.example +17 -0
- vogel_model_trainer-0.1.4/CHANGELOG.md +152 -0
- vogel_model_trainer-0.1.4/CONTRIBUTING.md +245 -0
- vogel_model_trainer-0.1.4/LICENSE +21 -0
- vogel_model_trainer-0.1.4/MANIFEST.in +21 -0
- vogel_model_trainer-0.1.4/PKG-INFO +420 -0
- vogel_model_trainer-0.1.4/PUBLISHING.md +178 -0
- vogel_model_trainer-0.1.4/PYPI_SETUP_SUMMARY.md +154 -0
- vogel_model_trainer-0.1.4/README.de.md +384 -0
- vogel_model_trainer-0.1.4/README.ja.md +452 -0
- vogel_model_trainer-0.1.4/README.md +380 -0
- vogel_model_trainer-0.1.4/SECURITY.md +157 -0
- vogel_model_trainer-0.1.4/pyproject.toml +74 -0
- vogel_model_trainer-0.1.4/scripts/build.sh +39 -0
- vogel_model_trainer-0.1.4/scripts/upload-pypi.sh +35 -0
- vogel_model_trainer-0.1.4/scripts/upload-testpypi.sh +27 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/__init__.py +13 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/__version__.py +3 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/cli/__init__.py +9 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/cli/main.py +314 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/core/__init__.py +19 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/core/extractor.py +401 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/core/organizer.py +218 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/core/tester.py +133 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/core/trainer.py +337 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/i18n.py +370 -0
- vogel_model_trainer-0.1.4/src/vogel_model_trainer/utils/__init__.py +1 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report
|
|
3
|
+
about: Report a bug or unexpected behavior in vogel-model-trainer
|
|
4
|
+
title: '[BUG] '
|
|
5
|
+
labels: 'bug'
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 🐛 Bug Description
|
|
11
|
+
<!-- A clear and concise description of what the bug is -->
|
|
12
|
+
|
|
13
|
+
## 📝 Steps to Reproduce
|
|
14
|
+
1.
|
|
15
|
+
2.
|
|
16
|
+
3.
|
|
17
|
+
|
|
18
|
+
## ✅ Expected Behavior
|
|
19
|
+
<!-- What you expected to happen -->
|
|
20
|
+
|
|
21
|
+
## ❌ Actual Behavior
|
|
22
|
+
<!-- What actually happened -->
|
|
23
|
+
|
|
24
|
+
## 🎯 Training/Dataset Information
|
|
25
|
+
<!-- If applicable -->
|
|
26
|
+
- Mode: [e.g., extract, extract-manual, extract-auto, train]
|
|
27
|
+
- Dataset Size: [e.g., 500 images, 10 videos]
|
|
28
|
+
- Number of Classes: [e.g., 5 bird species]
|
|
29
|
+
- Model: [e.g., EfficientNet-B0, custom]
|
|
30
|
+
|
|
31
|
+
## 💻 Environment
|
|
32
|
+
- OS: [e.g., Ubuntu 22.04, Windows 11, macOS 14]
|
|
33
|
+
- Python Version: [e.g., 3.11.5]
|
|
34
|
+
- vogel-model-trainer Version: [e.g., 0.1.0]
|
|
35
|
+
- Installation Method: [e.g., pip, pip install from git]
|
|
36
|
+
|
|
37
|
+
## 📋 Error Output
|
|
38
|
+
<!-- Please include the full error message/traceback -->
|
|
39
|
+
```
|
|
40
|
+
Paste error output here
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 🔍 Additional Context
|
|
44
|
+
<!-- Add any other context about the problem here -->
|
|
45
|
+
|
|
46
|
+
## ✔️ Checklist
|
|
47
|
+
- [ ] I have searched existing issues to ensure this is not a duplicate
|
|
48
|
+
- [ ] I have included all relevant information above
|
|
49
|
+
- [ ] I can reproduce this issue consistently
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Question / Discussion
|
|
3
|
+
about: Ask a question or start a discussion about vogel-model-trainer
|
|
4
|
+
title: '[QUESTION] '
|
|
5
|
+
labels: 'question'
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## ❓ Question / Topic
|
|
11
|
+
<!-- Ask your question here -->
|
|
12
|
+
|
|
13
|
+
## 🔍 Context
|
|
14
|
+
<!-- Provide context about what you're trying to achieve -->
|
|
15
|
+
|
|
16
|
+
## 📚 What I've Already Tried
|
|
17
|
+
- [ ] I have read the [README.md](https://github.com/kamera-linux/vogel-model-trainer/blob/main/README.md)
|
|
18
|
+
- [ ] I have searched existing issues and discussions
|
|
19
|
+
|
|
20
|
+
<!-- Optional: What have you already attempted? -->
|
|
21
|
+
|
|
22
|
+
## 💻 Environment (if applicable)
|
|
23
|
+
- OS: [e.g., Ubuntu 22.04]
|
|
24
|
+
- Python Version: [e.g., 3.11.5]
|
|
25
|
+
- vogel-model-trainer Version: [e.g., 0.1.0]
|
|
26
|
+
|
|
27
|
+
## 📝 Additional Information
|
|
28
|
+
<!-- Any other relevant information, such as:
|
|
29
|
+
- Your experience level with ML/computer vision
|
|
30
|
+
- Your specific use case (bird monitoring setup, species, etc.)
|
|
31
|
+
- Sample data or configuration (if applicable)
|
|
32
|
+
-->
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest a new feature or enhancement for vogel-model-trainer
|
|
4
|
+
title: '[FEATURE] '
|
|
5
|
+
labels: 'enhancement'
|
|
6
|
+
assignees: ''
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 💡 Feature Description
|
|
11
|
+
<!-- A clear and concise description of the feature you'd like to see -->
|
|
12
|
+
|
|
13
|
+
## 🎯 Problem / Use Case
|
|
14
|
+
<!-- Is your feature request related to a problem? Please describe.
|
|
15
|
+
Example: "I'm training models for X species and it's difficult to Y because Z..." -->
|
|
16
|
+
|
|
17
|
+
## ✨ Proposed Solution
|
|
18
|
+
<!-- Describe the solution you'd like in detail -->
|
|
19
|
+
|
|
20
|
+
## 🔄 Alternatives Considered
|
|
21
|
+
<!-- Have you considered any alternative solutions or workarounds? -->
|
|
22
|
+
|
|
23
|
+
## 📊 Benefits
|
|
24
|
+
<!-- How would this feature benefit vogel-model-trainer users? -->
|
|
25
|
+
-
|
|
26
|
+
-
|
|
27
|
+
|
|
28
|
+
## 🖼️ Examples / Mockups
|
|
29
|
+
<!-- Optional: Add examples, mockups, or CLI output samples -->
|
|
30
|
+
```
|
|
31
|
+
# Example of how the feature might be used
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## 🔗 Related Issues
|
|
35
|
+
<!-- Link to related issues or discussions if applicable -->
|
|
36
|
+
|
|
37
|
+
## ✔️ Checklist
|
|
38
|
+
- [ ] I have searched existing issues to ensure this is not a duplicate
|
|
39
|
+
- [ ] This feature aligns with the project's goals (bird species classification)
|
|
40
|
+
- [ ] I am willing to help implement this feature (optional)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
## 📝 Description
|
|
2
|
+
|
|
3
|
+
<!-- Provide a clear and concise description of your changes -->
|
|
4
|
+
|
|
5
|
+
## 🎯 Type of Change
|
|
6
|
+
|
|
7
|
+
<!-- Mark the relevant option with an 'x' -->
|
|
8
|
+
|
|
9
|
+
- [ ] 🐛 Bug fix (non-breaking change which fixes an issue)
|
|
10
|
+
- [ ] ✨ New feature (non-breaking change which adds functionality)
|
|
11
|
+
- [ ] 💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
|
12
|
+
- [ ] 📝 Documentation update
|
|
13
|
+
- [ ] 🔧 Refactoring (no functional changes)
|
|
14
|
+
- [ ] 🎨 Style/formatting changes
|
|
15
|
+
- [ ] ⚡ Performance improvement
|
|
16
|
+
- [ ] ✅ Test update
|
|
17
|
+
|
|
18
|
+
## 🔗 Related Issues
|
|
19
|
+
|
|
20
|
+
<!-- Link to related issues, e.g., "Fixes #123" or "Relates to #456" -->
|
|
21
|
+
|
|
22
|
+
Closes #
|
|
23
|
+
|
|
24
|
+
## 📋 Checklist
|
|
25
|
+
|
|
26
|
+
<!-- Mark completed items with an 'x' -->
|
|
27
|
+
|
|
28
|
+
- [ ] My code follows the project's style guidelines
|
|
29
|
+
- [ ] I have performed a self-review of my code
|
|
30
|
+
- [ ] I have commented my code, particularly in hard-to-understand areas
|
|
31
|
+
- [ ] I have made corresponding changes to the documentation
|
|
32
|
+
- [ ] My changes generate no new warnings
|
|
33
|
+
- [ ] I have added tests that prove my fix is effective or that my feature works
|
|
34
|
+
- [ ] New and existing unit tests pass locally with my changes
|
|
35
|
+
- [ ] I have updated the CHANGELOG.md
|
|
36
|
+
|
|
37
|
+
## 🧪 Testing
|
|
38
|
+
|
|
39
|
+
<!-- Describe the tests you ran and how to reproduce them -->
|
|
40
|
+
|
|
41
|
+
**Test Configuration:**
|
|
42
|
+
- OS:
|
|
43
|
+
- Python Version:
|
|
44
|
+
- vogel-model-trainer Version:
|
|
45
|
+
|
|
46
|
+
**Test Steps:**
|
|
47
|
+
1.
|
|
48
|
+
2.
|
|
49
|
+
3.
|
|
50
|
+
|
|
51
|
+
## 📸 Screenshots (if applicable)
|
|
52
|
+
|
|
53
|
+
<!-- Add screenshots or videos to help explain your changes -->
|
|
54
|
+
|
|
55
|
+
## 💭 Additional Context
|
|
56
|
+
|
|
57
|
+
<!-- Add any other context about the pull request here -->
|
|
58
|
+
|
|
59
|
+
## 📚 Documentation
|
|
60
|
+
|
|
61
|
+
<!-- If you added new features, explain where users can find documentation -->
|
|
62
|
+
- [ ] README.md updated
|
|
63
|
+
- [ ] Docstrings added/updated
|
|
64
|
+
- [ ] Examples added
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
**Note:** Please ensure you've read our [Contributing Guidelines](CONTRIBUTING.md) before submitting this PR.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
## 🎉 What's New
|
|
2
|
+
|
|
3
|
+
<!-- Describe the main highlights of this release -->
|
|
4
|
+
|
|
5
|
+
## ✨ Features
|
|
6
|
+
|
|
7
|
+
<!-- List new features added in this release -->
|
|
8
|
+
-
|
|
9
|
+
|
|
10
|
+
## 🐛 Bug Fixes
|
|
11
|
+
|
|
12
|
+
<!-- List bugs that were fixed in this release -->
|
|
13
|
+
-
|
|
14
|
+
|
|
15
|
+
## 📝 Documentation
|
|
16
|
+
|
|
17
|
+
<!-- List documentation improvements -->
|
|
18
|
+
-
|
|
19
|
+
|
|
20
|
+
## 🔧 Improvements
|
|
21
|
+
|
|
22
|
+
<!-- List improvements and enhancements -->
|
|
23
|
+
-
|
|
24
|
+
|
|
25
|
+
## ⚠️ Breaking Changes
|
|
26
|
+
|
|
27
|
+
<!-- List any breaking changes that users need to be aware of -->
|
|
28
|
+
- None
|
|
29
|
+
|
|
30
|
+
## 📦 Dependencies
|
|
31
|
+
|
|
32
|
+
<!-- List any dependency updates -->
|
|
33
|
+
-
|
|
34
|
+
|
|
35
|
+
## 🙏 Contributors
|
|
36
|
+
|
|
37
|
+
<!-- Thank contributors to this release -->
|
|
38
|
+
Thank you to everyone who contributed to this release!
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 📚 Resources
|
|
43
|
+
|
|
44
|
+
- **Documentation:** [README.md](https://github.com/kamera-linux/vogel-model-trainer/blob/main/README.md)
|
|
45
|
+
- **Installation:** `pip install vogel-model-trainer`
|
|
46
|
+
- **Issues:** [Report a bug](https://github.com/kamera-linux/vogel-model-trainer/issues/new?template=bug_report.md)
|
|
47
|
+
- **Changelog:** [CHANGELOG.md](https://github.com/kamera-linux/vogel-model-trainer/blob/main/CHANGELOG.md)
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# 🎉 vogel-model-trainer v0.1.0
|
|
2
|
+
|
|
3
|
+
**Release Date:** November 8, 2025
|
|
4
|
+
|
|
5
|
+
First official release of vogel-model-trainer! 🐦
|
|
6
|
+
|
|
7
|
+
## 📦 Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install vogel-model-trainer
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## ✨ Features
|
|
14
|
+
|
|
15
|
+
### Core Functionality
|
|
16
|
+
|
|
17
|
+
- **🎯 YOLO-based Bird Detection** - Automated bird cropping from videos using YOLOv8
|
|
18
|
+
- **🤖 Three Extraction Modes**:
|
|
19
|
+
- Standard extraction mode
|
|
20
|
+
- Manual labeling mode (interactive species selection)
|
|
21
|
+
- Auto-sorting mode (using pre-trained classifier)
|
|
22
|
+
- **📁 Wildcard Support** - Batch process multiple videos with glob patterns
|
|
23
|
+
- **🖼️ Auto-Resize to 224x224** - Optimal image size for training
|
|
24
|
+
- **📊 Dataset Organization** - Automatic 80/20 train/val split with shuffling
|
|
25
|
+
|
|
26
|
+
### Model Training
|
|
27
|
+
|
|
28
|
+
- **🧠 EfficientNet-B0 Training** - Lightweight yet powerful classification model
|
|
29
|
+
- **🎨 Enhanced Data Augmentation**:
|
|
30
|
+
- Random resized crop (80-100%)
|
|
31
|
+
- Random horizontal flip (50%)
|
|
32
|
+
- Color jitter (brightness, contrast, saturation, hue)
|
|
33
|
+
- Gaussian blur for robustness
|
|
34
|
+
- **📈 Optimized Training**:
|
|
35
|
+
- Cosine learning rate scheduling
|
|
36
|
+
- Label smoothing (0.1)
|
|
37
|
+
- Early stopping (patience: 7 epochs)
|
|
38
|
+
- Automatic checkpointing
|
|
39
|
+
- **⏸️ Graceful Shutdown** - Save model state on Ctrl+C interruption
|
|
40
|
+
- **📊 Per-Species Metrics** - Detailed accuracy breakdown by species
|
|
41
|
+
|
|
42
|
+
### CLI Interface
|
|
43
|
+
|
|
44
|
+
Comprehensive command-line interface with subcommands:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Extract birds from videos
|
|
48
|
+
vogel-trainer extract video.mp4 -o training-data/
|
|
49
|
+
|
|
50
|
+
# Organize dataset
|
|
51
|
+
vogel-trainer organize training-data/ -o organized/
|
|
52
|
+
|
|
53
|
+
# Train model
|
|
54
|
+
vogel-trainer train organized/ -o models/my-classifier/
|
|
55
|
+
|
|
56
|
+
# Test model
|
|
57
|
+
vogel-trainer test models/my-classifier/ -d organized/
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Documentation
|
|
61
|
+
|
|
62
|
+
- **📖 Bilingual Documentation** - Complete README in English and German
|
|
63
|
+
- **🎓 Training Guides** - Step-by-step workflow documentation
|
|
64
|
+
- **💡 Examples** - Real-world usage examples
|
|
65
|
+
- **🤝 Contributing Guidelines** - Clear contribution process
|
|
66
|
+
- **🔒 Security Policy** - Responsible disclosure policy
|
|
67
|
+
|
|
68
|
+
## 🚀 Getting Started
|
|
69
|
+
|
|
70
|
+
### Quick Start
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# 1. Install
|
|
74
|
+
pip install vogel-model-trainer
|
|
75
|
+
|
|
76
|
+
# 2. Extract birds from your videos
|
|
77
|
+
vogel-trainer extract video.mp4 -o ~/training-data/kohlmeise/
|
|
78
|
+
|
|
79
|
+
# 3. Organize dataset
|
|
80
|
+
vogel-trainer organize ~/training-data/ -o ~/organized-data/
|
|
81
|
+
|
|
82
|
+
# 4. Train your model
|
|
83
|
+
vogel-trainer train ~/organized-data/ -o ~/models/my-classifier/
|
|
84
|
+
|
|
85
|
+
# 5. Test the model
|
|
86
|
+
vogel-trainer test ~/models/my-classifier/ -d ~/organized-data/
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### System Requirements
|
|
90
|
+
|
|
91
|
+
- **Python:** 3.9 or higher
|
|
92
|
+
- **GPU:** Recommended for training (Raspberry Pi 5 supported)
|
|
93
|
+
- **Disk Space:** Depends on dataset size
|
|
94
|
+
- **RAM:** Minimum 4GB, 8GB+ recommended for training
|
|
95
|
+
|
|
96
|
+
## 📊 Performance
|
|
97
|
+
|
|
98
|
+
- **Extraction Speed:** ~5-10 FPS on Raspberry Pi 5
|
|
99
|
+
- **Training Time:** ~3-4 hours for 500 images on Raspberry Pi 5
|
|
100
|
+
- **Model Accuracy:** >96% on well-organized datasets
|
|
101
|
+
- **Model Size:** ~17MB (EfficientNet-B0)
|
|
102
|
+
|
|
103
|
+
## 🔄 Workflow
|
|
104
|
+
|
|
105
|
+
1. **Extract** bird images from videos using YOLO detection
|
|
106
|
+
2. **Organize** images by species into subdirectories
|
|
107
|
+
3. **Split** dataset into 80% training / 20% validation
|
|
108
|
+
4. **Train** custom EfficientNet-B0 classifier
|
|
109
|
+
5. **Test** model accuracy on validation set
|
|
110
|
+
6. **Deploy** trained model for species identification
|
|
111
|
+
|
|
112
|
+
## 📚 Resources
|
|
113
|
+
|
|
114
|
+
- **Documentation:** [README.md](https://github.com/kamera-linux/vogel-model-trainer/blob/main/README.md)
|
|
115
|
+
- **German Docs:** [README.de.md](https://github.com/kamera-linux/vogel-model-trainer/blob/main/README.de.md)
|
|
116
|
+
- **Contributing:** [CONTRIBUTING.md](https://github.com/kamera-linux/vogel-model-trainer/blob/main/CONTRIBUTING.md)
|
|
117
|
+
- **Security:** [SECURITY.md](https://github.com/kamera-linux/vogel-model-trainer/blob/main/SECURITY.md)
|
|
118
|
+
- **Changelog:** [CHANGELOG.md](https://github.com/kamera-linux/vogel-model-trainer/blob/main/CHANGELOG.md)
|
|
119
|
+
- **PyPI:** [pypi.org/project/vogel-model-trainer](https://pypi.org/project/vogel-model-trainer/)
|
|
120
|
+
|
|
121
|
+
## 🐛 Known Issues
|
|
122
|
+
|
|
123
|
+
- Manual labeling mode not yet implemented (use standard extraction + manual sorting)
|
|
124
|
+
- Auto-sorting mode not yet implemented (use standard extraction + manual sorting)
|
|
125
|
+
- No GUI interface (CLI only)
|
|
126
|
+
|
|
127
|
+
## 🔮 Future Plans
|
|
128
|
+
|
|
129
|
+
- Interactive manual labeling during extraction
|
|
130
|
+
- Automatic species sorting using pre-trained models
|
|
131
|
+
- Support for additional model architectures
|
|
132
|
+
- Real-time training monitoring dashboard
|
|
133
|
+
- Dataset augmentation presets
|
|
134
|
+
- Model optimization for embedded devices
|
|
135
|
+
|
|
136
|
+
## 🙏 Acknowledgments
|
|
137
|
+
|
|
138
|
+
- **Ultralytics** - For the excellent YOLOv8 implementation
|
|
139
|
+
- **Hugging Face** - For the Transformers library
|
|
140
|
+
- **PyTorch Team** - For the deep learning framework
|
|
141
|
+
- **Contributors** - Thank you to everyone who helped test and improve this project!
|
|
142
|
+
|
|
143
|
+
## 📄 License
|
|
144
|
+
|
|
145
|
+
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
**Full Changelog:** https://github.com/kamera-linux/vogel-model-trainer/commits/v0.1.0
|
|
150
|
+
|
|
151
|
+
**Questions?** Open an issue at https://github.com/kamera-linux/vogel-model-trainer/issues
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# 🔧 vogel-model-trainer v0.1.1
|
|
2
|
+
|
|
3
|
+
**Release Date:** November 8, 2025
|
|
4
|
+
|
|
5
|
+
Bug fix release with corrected CLI parameters to match original training scripts.
|
|
6
|
+
|
|
7
|
+
## 📦 Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pip install vogel-model-trainer==0.1.1
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 🐛 Bug Fixes
|
|
14
|
+
|
|
15
|
+
### CLI Parameter Corrections
|
|
16
|
+
|
|
17
|
+
Fixed CLI parameters to match the original `extract_birds.py` script:
|
|
18
|
+
|
|
19
|
+
- ✅ **Changed `--output/-o` to `--folder`** - Matches original parameter naming
|
|
20
|
+
- ✅ **Added `--bird` parameter** - Manual species naming (creates subdirectory)
|
|
21
|
+
- ✅ **Added `--species-model` parameter** - Auto-sorting with trained classifier
|
|
22
|
+
- ✅ **Added `--no-resize` flag** - Keep original image size
|
|
23
|
+
- ✅ **Renamed `--model` to `--detection-model`** - Clearer naming for YOLO model
|
|
24
|
+
- ✅ **Updated default `--threshold`** - Changed from 0.3 to 0.5 for higher quality
|
|
25
|
+
- ✅ **Updated default `--sample-rate`** - Changed from 10 to 3 for better detection
|
|
26
|
+
- ✅ **Added `--recursive/-r` flag** - Recursive directory search
|
|
27
|
+
|
|
28
|
+
### Simplified CLI Interface
|
|
29
|
+
|
|
30
|
+
- ✅ **Removed `extract-manual` command** - Now use `extract --bird species-name`
|
|
31
|
+
- ✅ **Removed `extract-auto` command** - Now use `extract --species-model path`
|
|
32
|
+
- ✅ **Single unified `extract` command** - Supports all three modes via flags
|
|
33
|
+
|
|
34
|
+
## 📚 Updated Documentation
|
|
35
|
+
|
|
36
|
+
- ✅ Updated README.md with correct CLI examples
|
|
37
|
+
- ✅ Updated README.de.md (German documentation)
|
|
38
|
+
- ✅ Corrected all code examples to use new parameter names
|
|
39
|
+
|
|
40
|
+
## 🔄 Migration Guide
|
|
41
|
+
|
|
42
|
+
### Before (v0.1.0):
|
|
43
|
+
```bash
|
|
44
|
+
# Manual extraction
|
|
45
|
+
vogel-trainer extract video.mp4 -o training-data/
|
|
46
|
+
|
|
47
|
+
# Manual labeling (separate command)
|
|
48
|
+
vogel-trainer extract-manual video.mp4 -o training-data/
|
|
49
|
+
|
|
50
|
+
# Auto-sorting (separate command)
|
|
51
|
+
vogel-trainer extract-auto video.mp4 -o training-data/ --classifier model/
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### After (v0.1.1):
|
|
55
|
+
```bash
|
|
56
|
+
# Standard extraction (all birds to one directory)
|
|
57
|
+
vogel-trainer extract video.mp4 --folder training-data/
|
|
58
|
+
|
|
59
|
+
# Manual labeling (creates subdirectory)
|
|
60
|
+
vogel-trainer extract video.mp4 --folder training-data/ --bird rotkehlchen
|
|
61
|
+
|
|
62
|
+
# Auto-sorting (with trained classifier)
|
|
63
|
+
vogel-trainer extract video.mp4 --folder training-data/ --species-model model/final/
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## 📖 Complete CLI Reference
|
|
67
|
+
|
|
68
|
+
### Extract Command
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
vogel-trainer extract VIDEO --folder FOLDER [OPTIONS]
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
**Positional Arguments:**
|
|
75
|
+
- `VIDEO` - Video file, directory, or glob pattern (e.g., `*.mp4`, `~/Videos/**/*.mp4`)
|
|
76
|
+
|
|
77
|
+
**Required Options:**
|
|
78
|
+
- `--folder` - Base directory for extracted bird images
|
|
79
|
+
|
|
80
|
+
**Optional Flags:**
|
|
81
|
+
- `--bird` - Manual bird species name (creates subdirectory)
|
|
82
|
+
- `--species-model` - Path to species classifier for automatic sorting
|
|
83
|
+
- `--no-resize` - Keep original image size instead of 224x224px
|
|
84
|
+
- `--detection-model` - YOLO model path (default: `yolov8n.pt`)
|
|
85
|
+
- `--threshold` - Detection confidence threshold (default: `0.5`)
|
|
86
|
+
- `--sample-rate` - Analyze every Nth frame (default: `3`)
|
|
87
|
+
- `--recursive, -r` - Search directories recursively
|
|
88
|
+
|
|
89
|
+
**Examples:**
|
|
90
|
+
```bash
|
|
91
|
+
# Standard mode
|
|
92
|
+
vogel-trainer extract video.mp4 --folder data/
|
|
93
|
+
|
|
94
|
+
# Manual mode with species
|
|
95
|
+
vogel-trainer extract video.mp4 --folder data/ --bird kohlmeise
|
|
96
|
+
|
|
97
|
+
# Auto-sort mode
|
|
98
|
+
vogel-trainer extract "*.mp4" --folder data/ --species-model ~/models/classifier/
|
|
99
|
+
|
|
100
|
+
# Recursive search
|
|
101
|
+
vogel-trainer extract ~/Videos/ --folder data/ --bird amsel --recursive
|
|
102
|
+
|
|
103
|
+
# Custom parameters
|
|
104
|
+
vogel-trainer extract video.mp4 --folder data/ --threshold 0.6 --sample-rate 5
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## ⚙️ Technical Details
|
|
108
|
+
|
|
109
|
+
- **Changed Files:**
|
|
110
|
+
- `src/vogel_model_trainer/cli/main.py` - Complete CLI parameter overhaul
|
|
111
|
+
- `README.md` - Updated all examples
|
|
112
|
+
- `README.de.md` - Updated German examples
|
|
113
|
+
|
|
114
|
+
- **Backward Compatibility:** ⚠️ **Breaking changes** - v0.1.0 commands will not work with v0.1.1
|
|
115
|
+
|
|
116
|
+
## 🙏 Thank You
|
|
117
|
+
|
|
118
|
+
Thanks to users who reported the parameter inconsistencies between the CLI and original training scripts!
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
**Full Changelog:** https://github.com/kamera-linux/vogel-model-trainer/compare/v0.1.0...v0.1.1
|
|
123
|
+
|
|
124
|
+
**Questions?** Open an issue at https://github.com/kamera-linux/vogel-model-trainer/issues
|