Skip to content

i30101/CrystalEyes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CrystalEyes

cellpose

version python-versions cellpose-version cellpose-version Licence: MIT issues repo size

A Python app for analyzing microscope images of nano-ice crystal growth using Python and machine learning.

How it works

CrystalEyes uses Python and the Cellpose machine learning library to extract data from images of ice crystal growth. It processes binary Linkam Data Files to extract temperature data and images. These images are analyzed to extract values such as average area, density, and coverage of ice crystals. The GUI, made using Tkinter and Ttk, provides a simple user experience.

Changelog

Version 1.0.0: app rehaul

Version 1.0.0 introduces a new GUI and support for LDF files only. In contrast to versions 0.8.0 and 0.9.0, LDF support enables instant processing of images. You do not have to export images and video files from Linkam manually; the built-in binary parser does that instead.

Warning

Timestamp data is not available for this version. The app will not process timestamps from LDF files. The duration between each frame defaults to one minute.

Version 2.0.0: what's new

This is the latest and fully functional version of CrystalEyes. Previous versions of CrystalEyes are in beta and not optimized for performance or user experience. The features newly added in this version are:

  • Extraction of additional variables (see below for full list)
  • Fixed debugging console
  • Data boxes to quickly view temperature / rate / limit data along with interactive temperature graph
  • Optimized data analysis and computer vision algorithms; average compute time on test machine (see below) ranges from 12-30 seconds, depending on the number of shapes present in a sample

Full Release Schedule

Version Description
v2.0.0 Final working version deployed
v1.2.0 Fully functioning user interface, parser, and analysis modules
v1.0.0 Non-functioning beta testing for new user interface
v0.9.0 Non-functioning beta testing for Linkam Data File parser
v0.8.0 Functioning and OCR-dependent, outdated

Dependencies

Unfortunately, CrystalEyes v1.2.0 has highly specific dependencies. Most critical is Cellpose 3.0.10, as the newer 4.0.6 is too-heavily GPU-reliant and requires Nvidia CUDA due to its larger neural network. The latest version of NumPy supported by Cellpose 3.0.10 is 1.26.4, meaning Python versions 3.9, 3.10, 3.11, or 3.12 are supported.

Caution

Python 3.13 does not support NumPy 1.26. Please be aware of which Python version your system is using, as it may not support this software.

CrystalEyes 1.2.0 was primarily tested on a system with 32 GB RAM with an integrated Intel processor/graphics chip (the graphics card was not used). Expect 1.8-2.5 GB of RAM use during operation; CPU usage will spike for each frame analysis as well.

Microsoft's Redistributable C++ Compiler (often installed through Visual Studio Build Tools) may be required to install NumPy 1.26. If you are unable to download the C++ compiler, consider using an alternate Python interpreter and package manager (such as Miniconda).

Note

Python version 3.10.13 along with NumPy version 1.26.3 were used during testing, along with Miniconda3 as the interpreter.

A full list of Python dependencies can be found in requirements.txt.

Setup


  1. Install a working Python version on your machine
  2. Create a working repository and do git clone https://github.com/i30101/CrystalEyes.git
  3. Add pip requirements with pip install -m requirements.txt
  4. Run app.py!

Usage


The following variables can be extracted by the CrystalEyes software, which is exported in the .xlsx format. The default data format, which is contains the name of the original same, has columns each containing a single variable and each row being a single frame. There will also be a spreadsheet of image areas, with each column being a single frame and the cells in each column consisting of raw individual contour areas.

List of LDF variables

  • File name
  • Date
  • Frame number
  • Ramp number
  • Temperature
  • Temperature limit
  • Temperature rate
  • Raw images
  • Processed images
  • Processed data

List of analysis variables

  • Raw images
  • Processed images
  • Average areas (px^2)
  • Average areas (um^2)
  • Density (crystals per um^2)
  • Coverage (ratio)

About

CrystalEyes: a machine learning powered ice crystal analysis app

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages