comitting
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# Changelog
|
||||
|
||||
All notable changes to the Shooting Target Detection SDK will be documented in this file.
|
||||
|
||||
## [1.0.0] - 2025-10-18
|
||||
|
||||
### Added
|
||||
- 🎯 **YOLO-based Bullet Detection** - AI-powered bullet hole recognition
|
||||
- 📷 **MJPEG Camera Streaming** - Real-time camera feed support
|
||||
- 📱 **Phone Camera Integration** - Device camera for target capture
|
||||
- 🎨 **Image Processing** - Brightness, contrast, and filter controls
|
||||
- 📊 **Target Scoring System** - Automatic ring detection and scoring
|
||||
- 🌐 **Multi-language Support** - English and Slovenian
|
||||
- 📅 **Google Calendar Integration** - Track shooting sessions
|
||||
- 🍎 **iOS Support** - Configured and ready for iOS build
|
||||
- 📖 **Help System** - In-app help dialogs with translations
|
||||
- 💾 **Settings Persistence** - Save brightness/contrast preferences
|
||||
|
||||
### Fixed
|
||||
- 🐛 Color filters no longer apply to error messages
|
||||
- 🐛 Zoom functionality disabled on error screens
|
||||
- 🐛 Removed duplicate "NOW" badge in calendar
|
||||
- 🐛 Proper error handling for camera stream failures
|
||||
|
||||
### Technical Details
|
||||
- **Flutter Version**: 3.29.3
|
||||
- **Dart SDK**: 3.3.0+
|
||||
- **Min Android SDK**: 21 (Android 5.0)
|
||||
- **Target Android SDK**: 35 (Android 15)
|
||||
- **APK Size**: 96.4 MB
|
||||
- **AAB Size**: 48.2 MB
|
||||
|
||||
### Package Contents
|
||||
```
|
||||
SDK_v1.0.0/
|
||||
├── android/
|
||||
│ ├── app-release.apk (96.4 MB)
|
||||
│ └── app-release.aab (48.2 MB)
|
||||
├── docs/
|
||||
├── README.md
|
||||
└── CHANGELOG.md
|
||||
```
|
||||
|
||||
### Dependencies
|
||||
- `tflite_flutter: ^0.11.0` - TensorFlow Lite for AI model
|
||||
- `camera: ^0.10.0` - Camera access
|
||||
- `flutter_mjpeg: ^2.0.0` - MJPEG streaming
|
||||
- `google_sign_in: ^6.1.5` - Google authentication
|
||||
- `googleapis: ^13.2.0` - Calendar API
|
||||
- `image: ^4.5.4` - Image processing
|
||||
- `shared_preferences: ^2.2.2` - Settings storage
|
||||
|
||||
---
|
||||
|
||||
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
||||
@@ -0,0 +1,207 @@
|
||||
# Shooting Target Detection SDK v1.0.0
|
||||
|
||||
Android SDK for bullet hole detection and shooting target analysis.
|
||||
|
||||
## 📦 Package Contents
|
||||
|
||||
```
|
||||
SDK_v1.0.0/
|
||||
├── android/
|
||||
│ ├── app-release.apk # Release APK (96.4 MB)
|
||||
│ └── app-release.aab # App Bundle for Google Play (48.2 MB)
|
||||
├── docs/
|
||||
│ └── API_DOCUMENTATION.md
|
||||
└── README.md
|
||||
```
|
||||
|
||||
## 🎯 Features
|
||||
|
||||
- **YOLO-based Bullet Detection** - AI-powered bullet hole recognition using TensorFlow Lite
|
||||
- **MJPEG Camera Streaming** - Real-time camera feed support with HTTP/HTTPS streams
|
||||
- **Phone Camera Integration** - Use device camera for target capture
|
||||
- **Image Processing** - Brightness, contrast, and filter adjustments
|
||||
- **Target Scoring System** - Automatic ring detection and bullet scoring
|
||||
- **Multi-language Support** - English and Slovenian translations
|
||||
- **Google Calendar Integration** - Track shooting sessions
|
||||
- **Customizable UI** - Material Design with dark theme support
|
||||
|
||||
## 📱 System Requirements
|
||||
|
||||
### Minimum Requirements
|
||||
- **Android Version**: 5.0 (API 21) or higher
|
||||
- **RAM**: 2GB minimum, 4GB recommended
|
||||
- **Storage**: 150MB free space
|
||||
- **Camera**: Any device camera or network camera support
|
||||
- **Network**: For MJPEG streaming (optional)
|
||||
|
||||
### Recommended
|
||||
- **Android Version**: 8.0 (API 26) or higher
|
||||
- **RAM**: 4GB or more
|
||||
- **Processor**: ARM64 or x86_64
|
||||
- **Camera**: 12MP or higher for best detection accuracy
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Option 1: Install APK (Direct Installation)
|
||||
```bash
|
||||
adb install app-release.apk
|
||||
```
|
||||
|
||||
### Option 2: Deploy via Google Play (AAB)
|
||||
Upload `app-release.aab` to Google Play Console for distribution.
|
||||
|
||||
## 🔧 Configuration
|
||||
|
||||
### Permissions Required
|
||||
The SDK requires the following Android permissions:
|
||||
|
||||
```xml
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
```
|
||||
|
||||
### Network Configuration
|
||||
For MJPEG camera streaming, ensure network security config allows cleartext traffic:
|
||||
|
||||
```xml
|
||||
<application
|
||||
android:usesCleartextTraffic="true">
|
||||
```
|
||||
|
||||
## 📖 Usage
|
||||
|
||||
### 1. Camera Stream Detection
|
||||
```
|
||||
1. Open the app
|
||||
2. Navigate to "Camera Streams" section
|
||||
3. Add your MJPEG camera URL (e.g., http://192.168.1.100:8080/video)
|
||||
4. Select the camera and start detection
|
||||
5. Tap capture button to analyze target
|
||||
```
|
||||
|
||||
### 2. Phone Camera Detection
|
||||
```
|
||||
1. Open the app
|
||||
2. Navigate to "Phone Camera" section
|
||||
3. Set number of expected bullets (1-5)
|
||||
4. Align target in the frame
|
||||
5. Capture baseline image (empty target)
|
||||
6. Shoot your rounds
|
||||
7. Capture final image to see detected bullets
|
||||
```
|
||||
|
||||
### 3. Target Analysis
|
||||
```
|
||||
1. After capture, view detected bullets overlaid on target
|
||||
2. Check ring detection and scoring
|
||||
3. View shooting history in calendar
|
||||
4. Export results to Google Calendar
|
||||
```
|
||||
|
||||
## 🎨 Customization
|
||||
|
||||
### Image Adjustments
|
||||
- **Brightness**: -100 to +100
|
||||
- **Contrast**: 50% to 200%
|
||||
- **Filters**: None, Greyscale, Invert
|
||||
|
||||
### Detection Settings
|
||||
- **Bullet Count**: 1-5 expected bullets
|
||||
- **Zoom**: 1x to 5x for camera streams
|
||||
- **Auto-stop**: Automatic capture when target count reached
|
||||
|
||||
## 🌐 Language Support
|
||||
|
||||
The SDK supports:
|
||||
- 🇬🇧 English
|
||||
- 🇸🇮 Slovenian (Slovenščina)
|
||||
|
||||
Language can be changed in the settings menu.
|
||||
|
||||
## 📊 Technical Specifications
|
||||
|
||||
### AI Model
|
||||
- **Framework**: TensorFlow Lite
|
||||
- **Model**: YOLOv8 (optimized for mobile)
|
||||
- **Input Size**: 640x640 pixels
|
||||
- **Detection Classes**:
|
||||
- Bullet holes
|
||||
- Target rings (10-ring system)
|
||||
- Center point
|
||||
|
||||
### Image Processing
|
||||
- **Supported Formats**: JPEG, PNG
|
||||
- **Max Resolution**: 4096x4096 pixels
|
||||
- **Processing Time**: < 2 seconds per image (on recommended hardware)
|
||||
|
||||
### Camera Support
|
||||
- **MJPEG Streams**: HTTP/HTTPS streaming
|
||||
- **Device Camera**: All standard Android cameras
|
||||
- **Resolution**: Auto-adjusted based on device capabilities
|
||||
|
||||
## 🔐 Security & Privacy
|
||||
|
||||
- ✅ All processing done on-device (no cloud upload)
|
||||
- ✅ Camera permissions requested at runtime
|
||||
- ✅ Optional Google Calendar integration
|
||||
- ✅ No telemetry or analytics tracking
|
||||
- ✅ Images stored locally only
|
||||
|
||||
## 📝 Version History
|
||||
|
||||
### v1.0.0 (2025-10-18)
|
||||
- ✨ Initial release
|
||||
- ✅ YOLO bullet detection
|
||||
- ✅ MJPEG streaming support
|
||||
- ✅ Phone camera integration
|
||||
- ✅ Calendar integration
|
||||
- ✅ Multi-language support
|
||||
- ✅ iOS support configured
|
||||
- 🐛 Fixed filter application on error screens
|
||||
- 🐛 Fixed zoom on error states
|
||||
- 🐛 Removed duplicate calendar badges
|
||||
|
||||
## 🛠️ Troubleshooting
|
||||
|
||||
### Camera Stream Not Connecting
|
||||
- Check camera URL format: `http://IP:PORT/video`
|
||||
- Ensure camera is on same network
|
||||
- Verify `usesCleartextTraffic="true"` in AndroidManifest.xml
|
||||
|
||||
### Detection Not Working
|
||||
- Ensure good lighting conditions
|
||||
- Clean camera lens
|
||||
- Target should fill at least 50% of frame
|
||||
- Check that YOLO model is included in assets
|
||||
|
||||
### Performance Issues
|
||||
- Close other apps to free RAM
|
||||
- Reduce image resolution in settings
|
||||
- Disable unnecessary features (filters, calendar sync)
|
||||
|
||||
## 💻 Development Info
|
||||
|
||||
Built with:
|
||||
- **Flutter**: 3.29.3
|
||||
- **Dart**: 3.3.0+
|
||||
- **Android SDK**: 36.0.0
|
||||
- **Min SDK**: 21 (Android 5.0)
|
||||
- **Target SDK**: 35 (Android 15)
|
||||
|
||||
## 📧 Support
|
||||
|
||||
For issues, questions, or feature requests:
|
||||
- Create an issue in the project repository
|
||||
- Contact: [Your contact information]
|
||||
|
||||
## 📄 License
|
||||
|
||||
Copyright © 2025. All rights reserved.
|
||||
|
||||
---
|
||||
|
||||
🤖 Built with [Claude Code](https://claude.com/claude-code)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user