208 lines
5.6 KiB
Markdown
208 lines
5.6 KiB
Markdown
# 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)
|