{ "cells": [ { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import sys\n", "from pathlib import Path\n", "\n", "import torch\n", "from hydra import compose, initialize\n", "from PIL import Image \n", "\n", "project_root = Path().resolve().parent\n", "sys.path.append(str(project_root))\n", "\n", "from yolo import (\n", " AugmentationComposer,\n", " Config,\n", " PostProccess,\n", " create_converter,\n", " create_model,\n", " custom_logger,\n", " draw_bboxes,\n", ")" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "CONFIG_PATH = \"../yolo/config\"\n", "CONFIG_NAME = \"config\"\n", "MODEL = \"v9-c\"\n", "\n", "DEVICE = 'cuda:0'\n", "CLASS_NUM = 80\n", "IMAGE_PATH = '../demo/images/inference/image.png'\n", "\n", "custom_logger()\n", "device = torch.device(DEVICE)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with initialize(config_path=CONFIG_PATH, version_base=None, job_name=\"notebook_job\"):\n", " cfg: Config = compose(config_name=CONFIG_NAME, overrides=[\"task=inference\", f\"task.data.source={IMAGE_PATH}\", f\"model={MODEL}\"])\n", " model = create_model(cfg.model, class_num=CLASS_NUM).to(device)\n", "\n", " transform = AugmentationComposer([], cfg.image_size)\n", "\n", " converter = create_converter(cfg.model.name, model, cfg.model.anchor, cfg.image_size, device)\n", " post_proccess = PostProccess(converter, cfg.task.nms)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "pil_image = Image.open(IMAGE_PATH)\n", "image, bbox, rev_tensor = transform(pil_image)\n", "image = image.to(device)[None]\n", "rev_tensor = rev_tensor.to(device)[None]" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "with torch.no_grad():\n", " predict = model(image)\n", " pred_bbox = post_proccess(predict, rev_tensor)\n", "\n", "draw_bboxes(pil_image, pred_bbox, idx2label=cfg.dataset.class_list)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Sample Output:\n", "\n", "![image](../demo/images/output/visualize.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "yolomit", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.14" } }, "nbformat": 4, "nbformat_minor": 2 }