Spaces:
Running
Running
File size: 5,442 Bytes
8198455 37485ad 8198455 37485ad 8198455 |
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
# Cartoonizer
> Convert images and videos into a cartoon!
The webapp is deployed here - https://cartoonize-lkqov62dia-de.a.run.app
<div style="text-align:center"><img height="100" alt="Powered by Algorithmia" style="border-width:0" src="static/sample_images/algorithmia.jpeg" /></div>
You can find a writeup on this webapp's architecture [here](https://medium.com/@Niraj_pandkar/how-we-built-an-inexpensive-scalable-architecture-to-cartoonize-the-world-8610050f90a0)!
---
## Contents
- [Prerequisites for Google Cloud and Algorithmia](#prerequisites-for-google-cloud-and-algorithmia)
- [Installation](#installation)
- [Docker](#using-docker)
- [VirtualEnv](#using-virtualenv)
- [Google Colab](#using-google-colab)
- [Sample Image and Video](#sample-image-and-video)
---
## Prerequisites for Google Cloud and Algorithmia
**These are important steps if you want to leverage Google buckets, signed URLs and Algorithmia's platform. Skip this if you want to run locally / colab.**
### Cloud Run authentication
To use any functionalities pertaining to Google Cloud, you'll need a global authentication file (JSON). You can obtain this JSON by following the steps given here - [Getting started with authentication](https://cloud.google.com/docs/authentication/getting-started)
After you get the JSON file, rename it to `token.json` (so that it's compatible with the codebase).
Set the environment variable in your terminal -
```
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/token.json"
```
**Notes**:
- You can set it permanently by adding this line to `~/.bashrc`.
- `Dockerfile` already includes the setting of this particular environment variable. :)
### Algorithmia
We used the Serveless AI Layer product of [Algorithmia](https://algorithmia.com/serverless-ai-layer) for inference on videos.
To learn more on how to deploy your model in Algorithmia, check here - https://algorithmia.com/developers
---
## Installation
### Application tested on:
- python 3.7
- tensorflow 2.1.0
- tf_slim 1.1.0
- ffmpeg 3.4.8
- Cuda version 10.1
- OS: Linux (Ubuntu 18.04)
### Using Docker
The easiest way to get the webapp running is by using the Dockerfile:
1. `cd` into the root directory and build the image
```
docker build -t cartoonize .
```
**Note**: Set the appropriate values in `config.yaml` before building the image.
2. Run the container by exposing the appropriate ports
```
docker run -p 8080:8080 cartoonize
```
### Using `virtualenv`
1. Make a virtual environment using `virutalenv` and activate it
```
virtualenv -p python3 cartoonize
source cartoonize/bin/activate
```
2. Install python dependencies
```
pip install -r requirements.txt
```
3. Run the webapp. Be sure to set the appropriate values in `config.yaml` file before running the application.
```
python app.py
```
### Using [Google Colab](https://colab.research.google.com/drive/1oDhMEVMcsRbe7bt-2A7cDsx44KQpQwuB?usp=sharing)
1. Clone the repository using either of the below mentioned way:
- Using Command:
- Create a new Notebook in Colab and in the cell execute the below command.
```
! git clone https://github.com/experience-ml/cartoonize.git
```
**Note:** Don't forget to add `!` at the beginning of the command
- From Colab User Interface
```
Open Colab
βββ File
βββ Open Notebook
βββ Github
βββ paste the Url of the repository
```
Note : Before running the application change the runtime to GPU for processing videos but you for images CPU shall also work just fine.
```
Runtime
βββ Change runtime type
βββ Select GPU
```
2. After cloning the repository navigate to the `/cartoonize` using below command in the notebook cell:
```
%cd cartoonize
```
3. Run the below commands in the notebook cell to install the requirements.
```
!pip install -r requirements.txt
```
4. In config.yaml file set:
```
colab-mode: true
```
5. Launch the flask app on ngrok
```
!python app.py
```
#### Note : Sample [Google Colab Notebook](https://colab.research.google.com/drive/1oDhMEVMcsRbe7bt-2A7cDsx44KQpQwuB?usp=sharing) for reference
---
## Sample Image and Video
### Emma Watson Cartoonized
<img alt="Emma Watson Cartoonized" style="border-width:0" src="static/sample_images/twitter_image.png" />
### Youtube Video of Avenger's Bar Scene Cartoonized
[![Cartoonized version of Avenger's bar scene](http://img.youtube.com/vi/GqduSLcmhto/0.jpg)](http://www.youtube.com/watch?v=GqduSLcmhto "AVENGERS BAR SCENE [Cartoonized Version]")
---
## License
1. Copyright Β© Cartoonizer ([Demo webapp](https://cartoonize-lkqov62dia-de.a.run.app/))
- Authors: [Niraj Pandkar](https://twitter.com/Niraj_pandkar) and [Tejas Mahajan](https://twitter.com/tjdevWorks).
- Licensed under the [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode)
- Commercial application is prohibited by license
2. Copyright (C) Xinrui Wang, Jinze Yu. ([White box cartoonization](https://github.com/SystemErrorWang/White-box-Cartoonization))
- All rights reserved.
- Licensed under the CC BY-NC-SA 4.0
- Also, Commercial application is prohibited license (https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode).
|