Skip to content

Releases: keenanjohnson/underwater-auto-image-encoder

V0.4.0

09 Dec 23:48
53c981a

Choose a tag to compare

This release's main feature is to support a new model type: Ushape Transformer!

Full Changelist

Full Changelog: v0.3.0...v0.4.0

As usual, we still haven't gotten the GUI builds under 2GB on Linux and Windows, so they are available here: https://drive.google.com/drive/u/0/folders/1troigWpt7S6Ffs_Ld710uRkxGZJ1bfKX

V0.3.0

17 Nov 09:01
7c5f49c

Choose a tag to compare

This release improves the tile blending in the GUI when processing images.

Download the latest release binaries here: https://drive.google.com/drive/folders/1ggn6r7il6sxqLVgMxsKQAGgNIWgSBelQ?usp=sharing

The Problem

The original implementationused a simple cropping approach:
It would crop out half of the overlap region from each tile
Tiles were pasted side-by-side with hard boundaries
This created visible seams where tiles met

The Solution
I implemented weighted feathering/blending
Accumulation Buffers: Instead of directly pasting tiles, I create two arrays:
output_array: Accumulates weighted pixel values
weight_array: Tracks the sum of blend weights for normalization

Linear Gradient Blending: For each tile, I create a blend mask with linear gradients:
Edges that overlap with other tiles fade from 0 to 1 (or 1 to 0)

Only edges that actually overlap with neighboring tiles are feathered
Edge tiles (at image boundaries) don't have blending on their outer edges
Weighted Accumulation: Each tile's pixels are multiplied by the blend mask and added to the accumulation buffer
Normalization: After all tiles are processed, the accumulated values are divided by the total weights to get the final seamless image

V0.2.0: Package GPU Support and Improved Logging

22 Sep 20:08

Choose a tag to compare

Download link is here (windows and linux builds are currently too large for sharing via github releases. Hopefully will be fixed in the next release): https://drive.google.com/drive/folders/1OTNbMciOASvUTT82wHjAel753ZyjYNf_?usp=sharing

  • There are two main changes in this release:
    ** Support for the GPU in the exes. Previously we had accidentally been building EXEs that only supported CPU processing which was slower than needed. This installs the GPU version of pytorch and needed CUDA drivers for NVIDIA GPUs
image

** We had several crash reports from windows users. To resolve this, we've added some new debug logging

Logs: %APPDATA%\UnderwaterEnhancer\logs\underwater_enhancer_TIMESTAMP.log
Crash reports: %APPDATA%\UnderwaterEnhancer\logs\crash_TIMESTAMP.txt 

Full Changelog

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0

05 Sep 04:52
a4e285f

Choose a tag to compare

Release Notes - v0.1.0-beta

🌊 Underwater Image Enhancer GUI - First Beta Release

gui_screenshot

Overview

This is the first beta release of the Underwater Image Enhancer GUI application, designed for the Seattle Aquarium to automate the enhancement of underwater ROV survey images using ML models.

✨ Features

Core Functionality

  • ML-based Image Enhancement: Process underwater images using trained U-Net models
  • GPR File Support: Native support for GoPro RAW (GPR) files with automatic conversion
  • Batch Processing: Process entire folders of images with progress tracking
  • Multiple Output Formats: Export as TIFF (lossless) or JPEG (compressed)

Image Processing Pipeline

  • Automatic Center Cropping: Images cropped to consistent 4606×4030 resolution matching training data
  • Tiled Processing: Large images processed in tiles to avoid memory issues
  • Full Resolution Support: Process images at original resolution without downscaling

User Interface

  • Native Desktop Application: Built with CustomTkinter for modern, native look
  • Real-time Progress Tracking: See processing status including tile-by-tile updates
  • Activity Log: Detailed processing log with timestamps
  • Dark/Light Theme: Toggle between dark and light modes
  • Drag & Drop Support: Easy file and folder selection

🚀 Installation

For Users (Standalone Application)

  1. Download the appropriate release for your platform:
    • Windows: UnderwaterEnhancer.exe
    • macOS: UnderwaterEnhancer.app
    • Linux: UnderwaterEnhancer
  2. Place your trained model file (best_model.pth) in an accessible location
  3. Run the application

For Developers

# Clone repository
git clone https://github.com/Seattle-Aquarium/auto-image-encoder.git
cd auto-image-encoder

# Install dependencies
pip install -r requirements-gui.txt

# Run application
python app.py

🎯 Usage

  1. Launch the application
  2. Select your trained model file (.pth)
  3. Choose input folder containing images
  4. Select output folder for processed images
  5. Choose output format (TIFF or JPEG)
  6. Click "Process Images"

🔧 Technical Details

  • Model Architecture: U-Net autoencoder with skip connections
  • Input Formats: GPR, TIFF, JPEG, PNG
  • Processing Resolution: 4606×4030 (center cropped from GoPro originals)
  • Tile Size: 1024×1024 with 128px overlap for large images

⚠️ Known Limitations (Beta)

  • GPR support requires bundled gpr_tools binary
  • Large batch processing may require significant memory
  • First image in batch may take longer (model loading)
  • may show security warnings for unsigned app

🙏 Acknowledgments

  • Seattle Aquarium ROV team for requirements and testing
  • GoPro for gpr_tools library
  • PyTorch team for ML framework

Note: This is a beta release. Please backup your data before processing and report any issues encountered.# Release Notes - v0.1.0-beta