## Inverse Cooking: Recipe Generation from Food Images

Code supporting the paper:

*Amaia Salvador, Michal Drozdzal, Xavier Giro-i-Nieto, Adriana Romero.
[Inverse Cooking: Recipe Generation from Food Images. ](https://arxiv.org/abs/1812.06164)
CVPR 2019*


If you find this code useful in your research, please consider citing using the
following BibTeX entry:

```
@InProceedings{Salvador2019inversecooking,
author = {Salvador, Amaia and Drozdzal, Michal and Giro-i-Nieto, Xavier and Romero, Adriana},
title = {Inverse Cooking: Recipe Generation From Food Images},
booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2019}
}
```

### Installation

This code uses Python 3.6 and PyTorch 0.4.1 cuda version 9.0.

- Installing PyTorch:
```bash
$ conda install pytorch=0.4.1 cuda90 -c pytorch
```

- Install dependencies
```bash
$ pip install -r requirements.txt
```

### Pretrained model

- Download ingredient and instruction vocabularies [here](https://dl.fbaipublicfiles.com/inversecooking/ingr_vocab.pkl) and [here](https://dl.fbaipublicfiles.com/inversecooking/instr_vocab.pkl), respectively.
- Download pretrained model [here](https://dl.fbaipublicfiles.com/inversecooking/modelbest.ckpt).

### Demo

You can use our pretrained model to get recipes for your images.

Download the required files (listed above), place them under the ```data``` directory, and try our demo notebook ```src/demo.ipynb```.

Note: The demo will run on GPU if a device is found, else it will use CPU.

### Data

- Download [Recipe1M](http://im2recipe.csail.mit.edu/dataset/download) (registration required)
- Extract files somewhere (we refer to this path as ```path_to_dataset```).
- The contents of ```path_to_dataset``` should be the following:
```
det_ingrs.json
layer1.json
layer2.json
images/
images/train
images/val
images/test
```

*Note: all python calls below must be run from ```./src```*
### Build vocabularies

```bash
$ python build_vocab.py --recipe1m_path path_to_dataset
```

### Images to LMDB (Optional, but recommended)

For fast loading during training:

```bash
$ python utils/ims2file.py --recipe1m_path path_to_dataset
```

If you decide not to create this file, use the flag ```--load_jpeg``` when training the model.

### Training

Create a directory to store checkpoints for all models you train
(e.g. ```../checkpoints``` and point ```--save_dir``` to it.)

We train our model in two stages:

1. Ingredient prediction from images

```bash
python train.py --model_name im2ingr --batch_size 150 --finetune_after 0 --ingrs_only \
--es_metric iou_sample --loss_weight 0 1000.0 1.0 1.0 \
--learning_rate 1e-4 --scale_learning_rate_cnn 1.0 \
--save_dir ../checkpoints --recipe1m_dir path_to_dataset
```

2. Recipe generation from images and ingredients (loading from 1.)

```bash
python train.py --model_name model --batch_size 256 --recipe_only --transfer_from im2ingr \
--save_dir ../checkpoints --recipe1m_dir path_to_dataset
```

Check training progress with Tensorboard from ```../checkpoints```:

```bash
$ tensorboard --logdir='../tb_logs' --port=6006
```

### Evaluation

- Save generated recipes to disk with
```python sample.py --model_name model --save_dir ../checkpoints --recipe1m_dir path_to_dataset --greedy --eval_split test```.
- This script will return ingredient metrics (F1 and IoU)

### License

inversecooking is released under MIT license, see [LICENSE](LICENSE.md) for details.

{}
arxiv:1812.06164 region:us
TAGS
#arxiv-1812.06164 #region-us 

## Inverse Cooking: Recipe Generation from Food Images

Code supporting the paper:

*Amaia Salvador, Michal Drozdzal, Xavier Giro-i-Nieto, Adriana Romero.
Inverse Cooking: Recipe Generation from Food Images. 
CVPR 2019*


If you find this code useful in your research, please consider citing using the
following BibTeX entry:



### Installation

This code uses Python 3.6 and PyTorch 0.4.1 cuda version 9.0.

- Installing PyTorch:


- Install dependencies


### Pretrained model

- Download ingredient and instruction vocabularies here and here, respectively.
- Download pretrained model here.

### Demo

You can use our pretrained model to get recipes for your images.

Download the required files (listed above), place them under the  directory, and try our demo notebook .

Note: The demo will run on GPU if a device is found, else it will use CPU.

### Data

- Download Recipe1M (registration required)
- Extract files somewhere (we refer to this path as ).
- The contents of  should be the following:


*Note: all python calls below must be run from *
### Build vocabularies



### Images to LMDB (Optional, but recommended)

For fast loading during training:



If you decide not to create this file, use the flag  when training the model.

### Training

Create a directory to store checkpoints for all models you train
(e.g.  and point  to it.)

We train our model in two stages:

1. Ingredient prediction from images



2. Recipe generation from images and ingredients (loading from 1.)



Check training progress with Tensorboard from :



### Evaluation

- Save generated recipes to disk with
.
- This script will return ingredient metrics (F1 and IoU)

### License

inversecooking is released under MIT license, see LICENSE for details.

## Inverse Cooking: Recipe Generation from Food Images

Code supporting the paper:

*Amaia Salvador, Michal Drozdzal, Xavier Giro-i-Nieto, Adriana Romero.
Inverse Cooking: Recipe Generation from Food Images. 
CVPR 2019*


If you find this code useful in your research, please consider citing using the
following BibTeX entry: ### Installation

This code uses Python 3.6 and PyTorch 0.4.1 cuda version 9.0.

- Installing PyTorch:


- Install dependencies ### Pretrained model

- Download ingredient and instruction vocabularies here and here, respectively.
- Download pretrained model here. ### Demo

You can use our pretrained model to get recipes for your images.

Download the required files (listed above), place them under the  directory, and try our demo notebook .

Note: The demo will run on GPU if a device is found, else it will use CPU. ### Data

- Download Recipe1M (registration required)
- Extract files somewhere (we refer to this path as ).
- The contents of  should be the following:


*Note: all python calls below must be run from * ### Build vocabularies ### Images to LMDB (Optional, but recommended)

For fast loading during training:



If you decide not to create this file, use the flag  when training the model. ### Training

Create a directory to store checkpoints for all models you train
(e.g.  and point  to it.)

We train our model in two stages:

1. Ingredient prediction from images



2. Recipe generation from images and ingredients (loading from 1.)



Check training progress with Tensorboard from : ### Evaluation

- Save generated recipes to disk with
.
- This script will return ingredient metrics (F1 and IoU) ### License

inversecooking is released under MIT license, see LICENSE for details.
TAGS
#arxiv-1812.06164 #region-us 
 ## Inverse Cooking: Recipe Generation from Food Images

Code supporting the paper:

*Amaia Salvador, Michal Drozdzal, Xavier Giro-i-Nieto, Adriana Romero.
Inverse Cooking: Recipe Generation from Food Images. 
CVPR 2019*


If you find this code useful in your research, please consider citing using the
following BibTeX entry: ### Installation

This code uses Python 3.6 and PyTorch 0.4.1 cuda version 9.0.

- Installing PyTorch:


- Install dependencies ### Pretrained model

- Download ingredient and instruction vocabularies here and here, respectively.
- Download pretrained model here. ### Demo

You can use our pretrained model to get recipes for your images.

Download the required files (listed above), place them under the  directory, and try our demo notebook .

Note: The demo will run on GPU if a device is found, else it will use CPU. ### Data

- Download Recipe1M (registration required)
- Extract files somewhere (we refer to this path as ).
- The contents of  should be the following:


*Note: all python calls below must be run from * ### Build vocabularies ### Images to LMDB (Optional, but recommended)

For fast loading during training:



If you decide not to create this file, use the flag  when training the model. ### Training

Create a directory to store checkpoints for all models you train
(e.g.  and point  to it.)

We train our model in two stages:

1. Ingredient prediction from images



2. Recipe generation from images and ingredients (loading from 1.)



Check training progress with Tensorboard from : ### Evaluation

- Save generated recipes to disk with
.
- This script will return ingredient metrics (F1 and IoU) ### License

inversecooking is released under MIT license, see LICENSE for details.
passage: TAGS
#arxiv-1812.06164 #region-us 
## Inverse Cooking: Recipe Generation from Food Images

Code supporting the paper:

*Amaia Salvador, Michal Drozdzal, Xavier Giro-i-Nieto, Adriana Romero.
Inverse Cooking: Recipe Generation from Food Images. 
CVPR 2019*


If you find this code useful in your research, please consider citing using the
following BibTeX entry:### Installation

This code uses Python 3.6 and PyTorch 0.4.1 cuda version 9.0.

- Installing PyTorch:


- Install dependencies### Pretrained model

- Download ingredient and instruction vocabularies here and here, respectively.
- Download pretrained model here.### Demo

You can use our pretrained model to get recipes for your images.

Download the required files (listed above), place them under the  directory, and try our demo notebook .

Note: The demo will run on GPU if a device is found, else it will use CPU.### Data

- Download Recipe1M (registration required)
- Extract files somewhere (we refer to this path as ).
- The contents of  should be the following:


*Note: all python calls below must be run from *### Build vocabularies### Images to LMDB (Optional, but recommended)

For fast loading during training:



If you decide not to create this file, use the flag  when training the model.### Training

Create a directory to store checkpoints for all models you train
(e.g.  and point  to it.)

We train our model in two stages:

1. Ingredient prediction from images



2. Recipe generation from images and ingredients (loading from 1.)



Check training progress with Tensorboard from :### Evaluation

- Save generated recipes to disk with
.
- This script will return ingredient metrics (F1 and IoU)### License

inversecooking is released under MIT license, see LICENSE for details.