witzit/README.md

118 lines
3.0 KiB
Markdown
Raw Normal View History

2022-01-22 23:18:26 -07:00
# witzit - What In The Zap Is That?
`witzit` --- What In The Zap Is That?
AI categorization of spectra from SciAps analyzers.
# Install
## Install Dependencies
Get system dependency and upgrade Python pip.
Perhaps do something like this, or
set up a Python virtual environment.
```
sudo apt update
sudo apt install git python3-pip
pip install --user --upgrade pip
```
## Clone Git Repo
Get source code with `git`.
```
git clone https://spacecruft.org/spacecruft/witzit
cd witzit/
pip install --user --upgrade -r requirements.txt
```
# Usage
HOWTO USE.
# Status
Alpha software under development.
# Hardware
2022-01-22 23:18:26 -07:00
* SciAps LIBS Analyzer
* SciAps XRF Analyzer
2022-01-22 23:37:49 -07:00
# Deep Learning Algorithm
Can use lots from `wut`.
* https://spacecruft.org/spacecruft/satnogs-wut/src/branch/master/wut-worker-mas.py#L67-L79
2022-01-22 23:40:17 -07:00
```
def uncompiled_model():
model = Sequential([
Conv2D(16, 3, padding='same', activation='relu', input_shape=(IMG_HEIGHT, IMG_WIDTH ,3)),
MaxPooling2D(),
Conv2D(32, 3, padding='same', activation='relu'),
MaxPooling2D(),
Conv2D(64, 3, padding='same', activation='relu'),
MaxPooling2D(),
Flatten(),
Dense(512, activation='relu'),
Dense(1, activation='sigmoid')
])
return model
```
Amazingly (to me), the paper
*Classification of radioxenon spectra with deep learning algorithm*
(2021) by Azimi, et al. uses nearly the identical CNN `Sequence()` as
2022-01-22 23:37:49 -07:00
`wut` uses, indicating it may be a very good base to start from.
Paper is non-gratis science:
* https://www.sciencedirect.com/science/article/abs/pii/S0265931X21001909
The `Sequence()` diagram is pulled from the Azimi paper, but is the
same as in `wut`, so makes a good reference.
2022-01-22 23:39:15 -07:00
![Deep Learning Sequence](img/sequence.png)
2022-01-23 23:31:01 -07:00
# Articles:
* https://www.sciencedirect.com/science/article/abs/pii/S0265931X21001909
*Classification of radioxenon spectra with deep learning algorithm*
2022-01-23 22:50:03 -07:00
* https://www.sciencedirect.com/science/article/pii/S0030401822000402
2022-01-23 23:31:01 -07:00
*Deep convolutional neural networks as a unified solution for Raman spectroscopy-based classification in biomedical applications*
* https://www.sciencedirect.com/science/article/abs/pii/S058485472030313X
*Automatic preprocessing of laser-induced breakdown spectra using partial least squares regression and feed-forward artificial neural network: Applications to Earth and Mars data*
* https://www.sciencedirect.com/science/article/abs/pii/S0584854719306068
*Determination of minor metal elements in steel using laser-induced breakdown spectroscopy combined with machine learning algorithms*
* https://www.sciencedirect.com/science/article/abs/pii/S1386142521009380
*Feature selection of infrared spectra analysis with convolutional neural network*
2022-01-23 22:50:03 -07:00
2022-01-23 23:31:01 -07:00
# Misc
2022-01-23 22:50:03 -07:00
Will likely work best with binary categorizations. E.g. like this:
Is it element A or not element A?
Is it element B or not element B?
Is it element C or not element C?
Not "is it element A, B, or C?"
2022-01-22 23:37:49 -07:00
2022-01-22 23:18:26 -07:00
# Unofficial
Unofficial, unaffiliated with SciAps.
# License
License: GPLv3 or any later version.
Copyright (C) 2022, Jeff Moe