Skip to content

Open Source Android App for Guide Thermal Cameras with AI Object Detection (YOLO/TensorFlow Lite)

License

Notifications You must be signed in to change notification settings

nacl-dev/NoxVision

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NoxVision

License: MIT Android Kotlin Version

Open Source Android App for Guide Thermal Cameras with AI Object Detection

A powerful alternative to the official Guide app, supporting multiple Guide Sensmart thermal camera models including the Guide TE211M Thermal Monocular.


πŸ“Ί Demo

NoxVision Demo


✨ Features

Core Features

  • πŸŽ₯ Live Thermal Video Stream via RTSP (LibVLC)
  • πŸ€– YOLO Object Detection with TensorFlow Lite
  • 🎨 Multiple Palettes: Whitehot, Blackhot, Bluehot, Greenhot, Ironred, and more
  • πŸ“Έ Screenshot & Video Recording with gallery storage
  • πŸ“ Integrated Gallery for captured media
  • πŸ“Ά Auto-WiFi Connect to camera
  • ⚑ Real-time Overlay with bounding boxes and labels
  • πŸŒ™ Dark Theme optimized for night use

πŸ†• Thermal Measurement (v1.2)

  • 🌑️ Emissivity Control (0.01-1.0) with material presets
  • πŸ“ Distance Compensation for accurate temperature readings
  • πŸ’§ Humidity Settings for atmospheric correction
  • ♨️ Reflected Temperature adjustment
  • πŸ”„ Shutter/NUC Calibration button
  • πŸ“± Automatic Camera Detection - identifies model and enables features
  • πŸ”Œ REST API Integration for professional thermal settings

πŸ†• New in v1.3

  • πŸ“Š System Log Viewer - Real-time diagnostics with color-coded entries
  • βš™οΈ Advanced Camera Settings - Brightness, Contrast, Image Enhancement
  • 🎡 Audio Control - Enable/disable camera microphone
  • πŸ“„ Multi-Page Settings - Organized settings with navigation
  • πŸ’Ž Feature Bounties - Support development via in-app purchases
  • πŸŽ‰ What's New Dialog - Version update announcements
  • πŸ‘‹ Welcome Screen - First-run introduction for new users

πŸ“± Supported Devices

Thermal Cameras

Series Models Features
TE-Series TE211M, TE-Mini Radiometry βœ“
C-Series C640, C400, C800 Focus βœ“, GPS βœ“, Radiometry βœ“, Audio βœ“
D-Series D400, D384, D192, D160 Focus βœ“, Radiometry βœ“
B-Series B320, B256, B160 Radiometry βœ“
PS-Series PS600, PS400 Radiometry βœ“

Note: Features are automatically detected based on the connected camera model.

Android

  • Minimum: Android 7.0 (API 24)
  • Target: Android 15 (API 35)
  • Architecture: arm64-v8a

πŸ”§ Camera Connection

The app automatically connects to the camera via WiFi:

Parameter Default Value Description
SSID TE Mini-XXXX Camera's WiFi hotspot
Password 12345678 Default password for all Guide cameras
IP 192.168.42.1 Fixed IP of camera in hotspot mode
RTSP rtsp://192.168.42.1:8554/video Video stream URL
HTTP API http://192.168.42.1 Camera control

Note: The IP can be changed in Settings if your camera uses a different address.

πŸ“₯ Installation

Option 1: APK Download (Recommended)

  1. Download the latest APK from Releases
  2. Install on your Android device
  3. Allow installation from unknown sources if prompted

Option 2: Build from Source

Prerequisites:

  • JDK 17 or higher
  • Android SDK (API 35)
  • Git
# Clone repository
git clone https://github.com/nacl-dev/NoxVision.git
cd NoxVision

# Set SDK path (if not auto-detected)
echo "sdk.dir=/path/to/Android/Sdk" > local.properties

# Build debug APK
./gradlew assembleDebug

# APK location:
# app/build/outputs/apk/debug/NoxVision-v1.3-debug.apk

🎯 Usage

  1. Turn on camera and enable WiFi hotspot
  2. Launch app - automatically connects to camera
  3. Live stream displays with object detection
  4. Controls:
    • πŸ“· Take screenshot
    • 🎬 Record video
    • 🎨 Change palette
    • πŸ“ Open gallery

🌑️ Thermal Settings

  1. Open Settings βš™οΈ
  2. Navigate to "Thermische Einstellungen"
  3. Adjust:
    • Emissivity - Match the material you're measuring
    • Distance - Set the distance to your target
    • Humidity - Current ambient humidity
    • Reflected Temperature - Ambient temperature
  4. Tap "An Kamera senden" to apply

πŸ“Š System Log (v1.3)

Monitor app activity and troubleshoot issues:

  1. Open Settings βš™οΈ
  2. Tap "System Log"
  3. View real-time logs with color-coded entries (Info, Success, Error)

🧠 Object Detection

The app uses a trained TensorFlow Lite model for thermal detection:

File Description
detect.tflite TFLite model (YOLO-based)
labelmap.txt Class labels (person, vehicle, etc.)

The model is specifically trained for thermal images and detects people and vehicles in thermal imagery.

πŸ› οΈ Development

Project Structure

app/src/main/
β”œβ”€β”€ java/com/noxvision/app/
β”‚   β”œβ”€β”€ MainActivity.kt           # Main app entry point
β”‚   β”œβ”€β”€ CameraApiClient.kt        # REST API client
β”‚   β”œβ”€β”€ CameraSettings.kt         # Settings persistence
β”‚   β”œβ”€β”€ DeviceInfo.kt             # Camera model detection
β”‚   β”œβ”€β”€ WhatsNewData.kt           # Version changelog
β”‚   β”œβ”€β”€ ui/
β”‚   β”‚   β”œβ”€β”€ VideoStreamScreen.kt      # Main livestream UI
β”‚   β”‚   β”œβ”€β”€ SettingsScreen.kt         # Multi-page settings
β”‚   β”‚   β”œβ”€β”€ ThermalSettingsScreen.kt  # Thermal measurement UI
β”‚   β”‚   β”œβ”€β”€ SettingsComponents.kt     # Reusable components
β”‚   β”‚   β”œβ”€β”€ theme/                    # Compose Theme (Material 3)
β”‚   β”‚   β”œβ”€β”€ components/               # Custom UI components
β”‚   β”‚   └── dialogs/                  # Dialog screens
β”‚   β”‚       β”œβ”€β”€ LogDialog.kt          # System log viewer
β”‚   β”‚       β”œβ”€β”€ AboutDialog.kt        # App information
β”‚   β”‚       β”œβ”€β”€ WelcomeDialog.kt      # First-run welcome
β”‚   β”‚       β”œβ”€β”€ WhatsNewDialog.kt     # Version updates
β”‚   β”‚       β”œβ”€β”€ GalleryDialog.kt      # Media browser
β”‚   β”‚       └── PreviewDialog.kt      # Media preview
β”‚   β”œβ”€β”€ billing/                  # In-app purchases
β”‚   β”‚   β”œβ”€β”€ BillingManager.kt
β”‚   β”‚   β”œβ”€β”€ FeatureBountyRepository.kt
β”‚   β”‚   └── FeatureBountyScreen.kt
β”‚   β”œβ”€β”€ detection/
β”‚   β”‚   └── ThermalObjectDetector.kt  # TFLite YOLO detector
β”‚   β”œβ”€β”€ network/
β”‚   β”‚   └── WiFiAutoConnect.kt        # Auto WiFi connection
β”‚   β”œβ”€β”€ util/
β”‚   β”‚   β”œβ”€β”€ AppLogger.kt              # Logging utility
β”‚   β”‚   └── MediaUtils.kt             # Media capture/download
β”‚   └── data/
β”‚       └── MediaModels.kt            # Data classes
β”œβ”€β”€ assets/
β”‚   β”œβ”€β”€ detect.tflite             # AI model (YOLOv8)
β”‚   └── labelmap.txt              # Class labels
└── res/
    β”œβ”€β”€ drawable/                 # Palette images
    └── values/                   # Strings, Colors

Tech Stack

  • Language: Kotlin 2.0
  • UI: Jetpack Compose
  • Video: LibVLC
  • AI: TensorFlow Lite
  • HTTP: OkHttp / HttpURLConnection
  • Images: Coil

Build Variants

# Debug (for testing)
./gradlew assembleDebug

# Release (for distribution)
./gradlew assembleRelease

🀝 Contributing

Contributions are welcome! See CONTRIBUTING.md for details.

Branches

  • main - Stable version
  • beta - Development & new features

πŸ“‹ Roadmap

Completed

  • Settings screen for camera IP
  • Support for additional camera models βœ… v1.2
  • Thermal measurement settings βœ… v1.2
  • Export to video formats
  • System logging & diagnostics βœ… v1.3
  • Advanced camera settings (brightness, contrast) βœ… v1.3
  • Multi-page settings navigation βœ… v1.3
  • In-app purchase system βœ… v1.3

In Progress

  • Temperature measurement display on live view
  • Improved AI model with higher accuracy

Planned

  • Optimized Wildlife AI Model - Training for deer, boar, fox, rabbit detection
  • Distance Estimation - Approximate distance to detected animals
  • Hunt Mode - Minimal UI, reduced brightness, one-hand operation
  • Silent Alerts - Vibration feedback instead of sounds
  • Quick Record - Hardware button mapping for instant recording
  • Battery Optimization - Extended runtime for long sits
  • Offline Maps - Mark hunting grounds and wildlife trails
  • Moon Phase Display - Hunting conditions at a glance
  • Shot Documentation - Log shots with timestamp and location
  • Tracking Mode - Support for blood trailing after a shot
  • Custom Palettes - User-defined color schemes for better contrast

❓ FAQ

Q: Why this app instead of the official Guide app?

The official app has performance issues and missing features. This open-source alternative offers better performance, AI detection, and professional thermal settings.

Q: Does the app work with other thermal cameras?

Yes! NoxVision supports the full Guide Sensmart lineup including C-Series, D-Series, B-Series, TE-Series, and PS-Series cameras.

Q: What is emissivity and why does it matter?

Emissivity is how well a surface emits thermal radiation. Different materials have different values (human skin β‰ˆ 0.95, polished metal β‰ˆ 0.3). Setting it correctly improves temperature accuracy.

Q: Do I need Android Studio?

No! You can build the APK with VS Code and Gradle. See Installation above.

πŸ“„ License

MIT License - You can freely use, modify, and distribute the app.

πŸ™ Credits


⭐ If you like this project, give it a star!