Skip to content
Snippets Groups Projects
predict.md 6.9 KiB
Newer Older
# Predict

Use the `teklia-dan predict` command to predict a trained DAN model on an image.

## Description of parameters

| Parameter                   | Description                                                                                  | Type    | Default       |
| --------------------------- | -------------------------------------------------------------------------------------------- | ------- | ------------- |
| `--image`                   | Path to the image to predict.                                                                | `Path`  |               |
| `--model`                   | Path to the model to use for prediction                                                      | `Path`  |               |
| `--parameters`              | Path to the YAML parameters file.                                                            | `Path`  |               |
| `--charset`                 | Path to the charset file.                                                                    | `Path`  |               |
| `--output`                  | Path to the output folder. Results will be saved in this directory.                          | `Path`  |               |
| `--scale`                   | Image scaling factor before feeding it to DAN.                                               | `float` | `1.0`         |
| `--confidence-score`        | Whether to return confidence scores.                                                         | `bool`  | `False`       |
| `--confidence-score-levels` | Level to return confidence scores. Should be any combination of `["line", "word", "char"]`. | `str`   |               |
| `--attention-map`           | Whether to plot attention maps.                                                              | `bool`  | `False`       |
| `--attention-map-scale`     | Image scaling factor before creating the GIF.                                                | `float` | `0.5`         |
| `--attention-map-level`     | Level to plot the attention maps. Should be in `["line", "word", "char"]`.                   | `str`   | `"line"`      |
| `--word-separators`         | List of word separators.                                                                     | `list`  | `[" ", "\n"]` |
| `--line-separators`         | List of line separators.                                                                     | `list`  | `["\n"]`      |

## Examples

### Predict with confidence scores

To run a prediction with confidence scores, run this command:
```shell
teklia-dan predict \
    --image dan_humu_page/example.jpg \
    --model dan_humu_page/model.pt \
    --parameters dan_humu_page/parameters.yml \
    --charset dan_humu_page/charset.pkl \
    --output dan_humu_page/predict/ \
    --scale 0.5 \
    --confidence-score
```
It will create the following JSON file named `dan_humu_page/predict/example.json`

```json
{
    "text": "Hansteensgt. 2 IV 28/4 - 19\nKj\u00e6re Gerhard.\nTak for Brevet om Boken og Haven\nog Crokus og Blaaveis og tak fordi\nDu vilde be mig derut sammen\nmed Kris og Ragna. Men vet Du\nda ikke, at Kris reiste med sin S\u00f8-\nster Fru Cr\u00f8ger til Lillehammer\nnogle Dage efter Begravelsen? Hen\ndes Address er Amtsingeni\u00f8r\nCr\u00f8ger. Hun skriver at de blir\nder til lidt ut i Mai. Nu er hun\nnoksaa medtat skj\u00f8nner jeg af Sorg\nog af L\u00e6ngsel, skriver saameget r\u00f8-\nrende om Oluf. Ragna har det\nherligt, skriver hun. Hun er bare\ngla, og det vet jeg, at \"Oluf er gla over,\nder hvor han nu er. Jeg har saa in-\nderlig ondt af hende, og om Du skrev\net Par Ord tror jeg det vilde gj\u00f8re\nhende godt. - Jeg gl\u00e6der mig over,\nat Du har skrevet en Bok, og\njeg er vis paa, at den er god.",
    "confidence": 0.99
}
```

### Predict with confidence scores and line-level attention maps

To run a prediction with confidence scores and plot line-level attention maps, run this command:

```shell
teklia-dan predict \
    --image dan_humu_page/example.jpg \
    --model dan_humu_page/model.pt \
    --parameters dan_humu_page/parameters.yml \
    --charset dan_humu_page/charset.pkl \
    --output dan_humu_page/predict/ \
    --scale 0.5 \
    --confidence-score \
    --attention-map \
```

It will create the following JSON file named `dan_humu_page/predict/example.json` and a GIF showing a word-level attention map `dan_humu_page/predict/example_line.gif`

```json
{
    "text": "Hansteensgt. 2 IV 28/4 - 19\nKj\u00e6re Gerhard.\nTak for Brevet om Boken og Haven\nog Crokus og Blaaveis og tak fordi\nDu vilde be mig derut sammen\nmed Kris og Ragna. Men vet Du\nda ikke, at Kris reiste med sin S\u00f8-\nster Fru Cr\u00f8ger til Lillehammer\nnogle Dage efter Begravelsen? Hen\ndes Address er Amtsingeni\u00f8r\nCr\u00f8ger. Hun skriver at de blir\nder til lidt ut i Mai. Nu er hun\nnoksaa medtat skj\u00f8nner jeg af Sorg\nog af L\u00e6ngsel, skriver saameget r\u00f8-\nrende om Oluf. Ragna har det\nherligt, skriver hun. Hun er bare\ngla, og det vet jeg, at \"Oluf er gla over,\nder hvor han nu er. Jeg har saa in-\nderlig ondt af hende, og om Du skrev\net Par Ord tror jeg det vilde gj\u00f8re\nhende godt. - Jeg gl\u00e6der mig over,\nat Du har skrevet en Bok, og\njeg er vis paa, at den er god.",
    "confidence": 0.99,
    "attention_gif": "dan_humu_page/predict/example_line.gif"
}
```
Yoann Schneider's avatar
Yoann Schneider committed

<img src="../../assets/example_line.gif" />

### Predict with confidence scores and word-level attention maps

To run a prediction with confidence scores and plot word-level attention maps, run this command:

```shell
teklia-dan predict \
    --image dan_humu_page/example.jpg \
    --model dan_humu_page/model.pt \
    --parameters dan_humu_page/parameters.yml \
    --charset dan_humu_page/charset.pkl \
    --output dan_humu_page/predict/ \
    --scale 0.5 \
    --confidence-score \
    --attention-map \
    --attention-map-level word \
    --attention-map-scale 0.5
```

It will create the following JSON file named `dan_humu_page/predict/example.json` and a GIF showing a word-level attention map `dan_humu_page/predict/example_word.gif`.

```json
{
    "text": "Hansteensgt. 2 IV 28/4 - 19\nKj\u00e6re Gerhard.\nTak for Brevet om Boken og Haven\nog Crokus og Blaaveis og tak fordi\nDu vilde be mig derut sammen\nmed Kris og Ragna. Men vet Du\nda ikke, at Kris reiste med sin S\u00f8-\nster Fru Cr\u00f8ger til Lillehammer\nnogle Dage efter Begravelsen? Hen\ndes Address er Amtsingeni\u00f8r\nCr\u00f8ger. Hun skriver at de blir\nder til lidt ut i Mai. Nu er hun\nnoksaa medtat skj\u00f8nner jeg af Sorg\nog af L\u00e6ngsel, skriver saameget r\u00f8-\nrende om Oluf. Ragna har det\nherligt, skriver hun. Hun er bare\ngla, og det vet jeg, at \"Oluf er gla over,\nder hvor han nu er. Jeg har saa in-\nderlig ondt af hende, og om Du skrev\net Par Ord tror jeg det vilde gj\u00f8re\nhende godt. - Jeg gl\u00e6der mig over,\nat Du har skrevet en Bok, og\njeg er vis paa, at den er god.",
    "confidence": 0.99,
    "attention_gif": "dan_humu_page/predict/example_word.gif"
}
```
Yoann Schneider's avatar
Yoann Schneider committed
<img src="../../assets/example_word.gif" >