{ "cells": [ { "attachments": {}, "cell_type": "markdown", "id": "5c044bd4", "metadata": {}, "source": [ "# Photos to Anime with PaddleGAN and OpenVINO\n", "\n", "This tutorial demonstrates converting a [PaddlePaddle/PaddleGAN](https://github.com/PaddlePaddle/PaddleGAN) AnimeGAN model to OpenVINO IR format, and shows inference results on the PaddleGAN and OpenVINO IR models.\n", "\n", "For more information about the model, see [PaddleGAN's AnimeGAN documentation](https://github.com/PaddlePaddle/PaddleGAN/blob/develop/docs/en_US/tutorials/animegan.md)\n", "\n", "\n", "\n", "\n", "#### Table of contents:\n", "\n", "- [Preparation](#Preparation)\n", " - [Install requirements](#Install-requirements)\n", " - [Imports](#Imports)\n", " - [Settings](#Settings)\n", " - [Functions](#Functions)\n", "- [Inference on PaddleGAN Model](#Inference-on-PaddleGAN-Model)\n", " - [Show Inference Results on PaddleGAN model](#Show-Inference-Results-on-PaddleGAN-model)\n", "- [Model Conversion to ONNX and OpenVINO IR](#Model-Conversion-to-ONNX-and-OpenVINO-IR)\n", " - [Convert to ONNX](#Convert-to-ONNX)\n", " - [Convert to OpenVINO IR](#Convert-to-OpenVINO-IR)\n", "- [Show Inference Results on OpenVINO IR and PaddleGAN Models](#Show-Inference-Results-on-OpenVINO-IR-and-PaddleGAN-Models)\n", " - [Create Postprocessing Functions](#Create-Postprocessing-Functions)\n", " - [Do Inference on OpenVINO IR Model](#Do-Inference-on-OpenVINO-IR-Model)\n", " - [Select inference device](#Select-inference-device)\n", "- [Performance Comparison](#Performance-Comparison)\n", "- [References](#References)\n", "\n" ] }, { "attachments": {}, "cell_type": "markdown", "id": "9a3d38f1", "metadata": {}, "source": [ "## Preparation\n", "[back to top ⬆️](#Table-of-contents:)\n", "\n", "### Install requirements\n", "[back to top ⬆️](#Table-of-contents:)\n" ] }, { "cell_type": "code", "execution_count": null, "id": "b6bcf442-f6c9-467f-bfcf-cd3111772cbf", "metadata": { "scrolled": true }, "outputs": [], "source": [ "import platform\n", "\n", "%pip install -q \"openvino>=2023.1.0\"\n", "\n", "%pip install -q \"paddlepaddle>=2.5.1\" \"paddle2onnx>=0.6\"\n", "%pip install -q \"git+https://github.com/PaddlePaddle/PaddleGAN.git\" --no-deps\n", "\n", "if platform.system() != \"Windows\":\n", " %pip install -q \"matplotlib>=3.4\"\n", "else:\n", " %pip install -q \"matplotlib>=3.4,<3.7\"\n", "\n", "%pip install -q opencv-python scikit-learn \"scikit-image>=0.19.2\"\n", "%pip install -q \"imageio==2.9.0\" \"imageio-ffmpeg\" \"numba>=0.53.1\" easydict munch natsort" ] }, { "attachments": {}, "cell_type": "markdown", "id": "96e1f503", "metadata": {}, "source": [ "### Imports\n", "[back to top ⬆️](#Table-of-contents:)\n" ] }, { "cell_type": "code", "execution_count": 1, "id": "fe02fa14", "metadata": {}, "outputs": [], "source": [ "import sys\n", "import time\n", "import os\n", "from pathlib import Path\n", "import requests\n", "\n", "import cv2\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import openvino as ov\n", "from IPython.display import HTML, display\n", "\n", "# PaddlePaddle requires a C++ compiler. If importing the paddle packages fails,\n", "# install C++.\n", "try:\n", " import paddle\n", " from paddle.static import InputSpec\n", " from ppgan.apps import AnimeGANPredictor\n", "except NameError:\n", " if sys.platform == \"win32\":\n", " install_message = (\n", " \"To use this notebook, please install the free Microsoft \"\n", " \"Visual C++ redistributable from \"\n", " \"https://aka.ms/vs/16/release/vc_redist.x64.exe\"\n", " )\n", " else:\n", " install_message = (\n", " \"To use this notebook, please install a C++ compiler. On macOS, \"\n", " \"`xcode-select --install` installs many developer tools, including C++. On Linux, \"\n", " \"install gcc with your distribution's package manager.\"\n", " )\n", " display(\n", " HTML(\n", " f\"\"\"