File size: 2,296 Bytes
6b2f9e6 08ba70c 3d16f20 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
---
pipeline_tag: image-classification
---
# Model Card: Fine-Tuned InceptionV3 & Xception for Human Decomposition Image Classification
<!-- Provide a quick summary of what the model is/does. -->
These CNN models were developed for the classification of human decomposition images into various stage of decay categories, including fresh, early decay,
advanced decay, and skeletonized (Megyesi et al., 2005).
## Model Details
### Model Description
- **Developed by:** Anna-Maria Nau
- **Funded by:** National Institute of Justice
- **Model type:** CNNs for Image Classification
- **Base Model:** InceptionV3 and Xception pretrained on ImageNet
- **Transfer Learning Method:** Two-step transfer learning: (1) freeze all pre-trained convolutional layers of the base model and train newly added classifier layers on custom dataset and (2) unfreeze all layers, and fine-tune model end-to-end on custom dataset.
### Model Sources
- **Paper :**
- [Stage of Decay Estimation Exploiting Exogenous and Endogenous Image Attributes to Minimize Manual Labeling Efforts and Maximize Classification Performance](https://ieeexplore.ieee.org/abstract/document/10222106)
- [Towards Automation of Human Stage of Decay Identification: An Artificial Intelligence Approach](https://arxiv.org/abs/2408.10414)
## Usage
The stage of decay classification is bodypart specific, that is, for the head, torso, or limbs.
Classes: fresh (1), early decay (2), advanced decay (3), and skeletonized (4) based on [Megyesi et al's](https://pubmed.ncbi.nlm.nih.gov/15932096/) scoring method.
```python
from tensorflow.keras.models import load_model
import numpy as np
from tensorflow.keras.preprocessing.image import img_to_array, load_img
# Load the entire model
model = load_model('path_to_your_model') # e.g. head/inceptionV3 to perform stage of decay classfication of head images
# Load and preprocess an image
img = load_img('path_to_image.jpg', target_size=(299, 299)) # adjust size as per model input
img = img_to_array(img) # convert to numpy array
img = np.expand_dims(img, axis=0) # add batch dimension
img = img / 255.0 # normalize pixel values if needed
# Make predictions
predictions = model.predict(img)
# Use argmax to get the class label
predicted_class = np.argmax(predictions, axis=1)
```
|