yolov7/tools/YOLOv7-Dynamic-Batch-ONNXRU...

694 lines
5.7 MiB
Plaintext
Raw Normal View History

{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "52dd366d-8533-4092-855c-7978f7d396ba",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Python version: 3.8.13 (default, Mar 28 2022, 11:38:47) \n",
"[GCC 7.5.0], sys.version_info(major=3, minor=8, micro=13, releaselevel='final', serial=0) \n",
"Pytorch version: 1.12.0+cu116 \n"
]
}
],
"source": [
"import sys\n",
"import torch\n",
"print(f\"Python version: {sys.version}, {sys.version_info} \")\n",
"print(f\"Pytorch version: {torch.__version__} \")"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "1c455423-ff75-4bd1-9b49-6e9826440c58",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Thu Jul 28 16:34:36 2022 \n",
"+-----------------------------------------------------------------------------+\n",
"| NVIDIA-SMI 515.48.07 Driver Version: 515.48.07 CUDA Version: 11.7 |\n",
"|-------------------------------+----------------------+----------------------+\n",
"| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |\n",
"| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |\n",
"| | | MIG M. |\n",
"|===============================+======================+======================|\n",
"| 0 NVIDIA GeForce ... Off | 00000000:01:00.0 Off | N/A |\n",
"| N/A 42C P8 16W / N/A | 13MiB / 8192MiB | 0% Default |\n",
"| | | N/A |\n",
"+-------------------------------+----------------------+----------------------+\n",
" \n",
"+-----------------------------------------------------------------------------+\n",
"| Processes: |\n",
"| GPU GI CI PID Type Process name GPU Memory |\n",
"| ID ID Usage |\n",
"|=============================================================================|\n",
"| 0 N/A N/A 1463 G /usr/lib/xorg/Xorg 4MiB |\n",
"| 0 N/A N/A 2517 G /usr/lib/xorg/Xorg 4MiB |\n",
"+-----------------------------------------------------------------------------+\n"
]
}
],
"source": [
"!nvidia-smi"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "1c9bdd45-f5fd-4865-b060-4cca4333ce65",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"--2022-07-28 16:30:52-- https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7-tiny.pt\n",
"Resolving github.com (github.com)... 20.205.243.166\n",
"Connecting to github.com (github.com)|20.205.243.166|:443... connected.\n",
"HTTP request sent, awaiting response... 302 Found\n",
"Location: https://objects.githubusercontent.com/github-production-release-asset-2e65be/511187726/ba7d01ee-125a-4134-8864-fa1abcbf94d5?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220728%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220728T083052Z&X-Amz-Expires=300&X-Amz-Signature=81396357980573956af703230d72bdb09561f4dc2b2d8f18e599c3a89649f1de&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=511187726&response-content-disposition=attachment%3B%20filename%3Dyolov7-tiny.pt&response-content-type=application%2Foctet-stream [following]\n",
"--2022-07-28 16:30:53-- https://objects.githubusercontent.com/github-production-release-asset-2e65be/511187726/ba7d01ee-125a-4134-8864-fa1abcbf94d5?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220728%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220728T083052Z&X-Amz-Expires=300&X-Amz-Signature=81396357980573956af703230d72bdb09561f4dc2b2d8f18e599c3a89649f1de&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=511187726&response-content-disposition=attachment%3B%20filename%3Dyolov7-tiny.pt&response-content-type=application%2Foctet-stream\n",
"Resolving objects.githubusercontent.com (objects.githubusercontent.com)... 185.199.111.133, 185.199.109.133, 185.199.108.133, ...\n",
"Connecting to objects.githubusercontent.com (objects.githubusercontent.com)|185.199.111.133|:443... connected.\n",
"HTTP request sent, awaiting response... 200 OK\n",
"Length: 12639769 (12M) [application/octet-stream]\n",
"Saving to: yolov7-tiny.pt\n",
"\n",
"yolov7-tiny.pt 100%[===================>] 12.05M 226KB/s in 63s \n",
"\n",
"2022-07-28 16:31:57 (195 KB/s) - yolov7-tiny.pt saved [12639769/12639769]\n",
"\n"
]
}
],
"source": [
"!wget https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7-tiny.pt"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "57cea8f5-72bb-453e-a97a-af59a11231de",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Namespace(batch_size=1, conf_thres=0.35, device='cpu', dynamic=False, dynamic_batch=True, end2end=True, grid=True, img_size=[640, 640], include_nms=False, iou_thres=0.65, max_wh=7680, simplify=True, topk_all=100, weights='./yolov7-tiny.pt')\n",
"YOLOR 🚀 v0.1-74-gd77092b torch 1.12.0+cu116 CPU\n",
"\n",
"Fusing layers... \n",
"Model Summary: 200 layers, 6219709 parameters, 6219709 gradients\n",
"/home/ubuntu/miniconda3/envs/torch/lib/python3.8/site-packages/torch/functional.py:478: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:2894.)\n",
" return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]\n",
"\n",
"Starting TorchScript export with torch 1.12.0+cu116...\n",
"/home/ubuntu/work/yolo/yolov7/models/yolo.py:51: TracerWarning: Converting a tensor to a Python boolean might cause the trace to be incorrect. We can't record the data flow of Python values, so this value will be treated as a constant in the future. This means that the trace might not generalize to other inputs!\n",
" if self.grid[i].shape[2:4] != x[i].shape[2:4]:\n",
"TorchScript export success, saved as ./yolov7-tiny.torchscript.pt\n",
"\n",
"Starting ONNX export with onnx 1.12.0...\n",
"onnxruntime\n",
"/home/ubuntu/miniconda3/envs/torch/lib/python3.8/site-packages/torch/_tensor.py:1083: UserWarning: The .grad attribute of a Tensor that is not a leaf Tensor is being accessed. Its .grad attribute won't be populated during autograd.backward(). If you indeed want the .grad field to be populated for a non-leaf Tensor, use .retain_grad() on the non-leaf Tensor. If you access the non-leaf Tensor by mistake, make sure you access the leaf Tensor instead. See github.com/pytorch/pytorch/pull/30531 for more informations. (Triggered internally at aten/src/ATen/core/TensorBody.h:477.)\n",
" return self._grad\n",
"/home/ubuntu/miniconda3/envs/torch/lib/python3.8/site-packages/torch/onnx/symbolic_opset9.py:4182: UserWarning: Exporting aten::index operator of advanced indexing in opset 12 is achieved by combination of multiple ONNX operators, including Reshape, Transpose, Concat, and Gather. If indices include negative values, the exported graph will produce incorrect results.\n",
" warnings.warn(\n",
"\n",
"Starting to simplify ONNX...\n",
"ONNX export success, saved as ./yolov7-tiny.onnx\n",
"CoreML export failure: No module named 'coremltools'\n",
"\n",
"Export complete (2.81s). Visualize with https://github.com/lutzroeder/netron.\n",
"builder.py\t README.md\t w2onnx.py\n",
"cfg\t\t requirements.txt weights\n",
"coco\t\t runs\t YOLO-TensorRT8\n",
"data\t\t scripts\t YOLOv7-Dynamic-Batch.ipynb\n",
"detect.py\t test.py\t yolov7-tiny-batch16.onnx\n",
"export.py\t tools\t yolov7-tiny-batch16.plan\n",
"figure\t\t traced_model.pt yolov7-tiny-batch1.onnx\n",
"hubconf.py\t train_aux.py yolov7-tiny-batch1.plan\n",
"inference\t train.py\t yolov7-tiny-batch32.onnx\n",
"LICENSE.md\t usage.md\t yolov7-tiny-batch32.plan\n",
"models\t\t utils\t yolov7-tiny.onnx\n",
"onnx_nms_ort.ipynb Valid_RGB\t yolov7-tiny.pt\n",
"paper\t\t Valid_RGB.zip yolov7-tiny.torchscript.pt\n"
]
}
],
"source": [
"# export ONNX model for onnxruntime\n",
"!python export.py --weights ./yolov7-tiny.pt --grid --end2end --simplify \\\n",
" --topk-all 100 --iou-thres 0.65 --conf-thres 0.35 \\\n",
" --img-size 640 640 \\\n",
" --dynamic-batch \\\n",
" --max-wh 7680\n",
"!ls"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6ec4c01e-dac9-417e-b4cf-7c6440e274e9",
"metadata": {},
"outputs": [],
"source": [
"import cv2\n",
"import time\n",
"import random\n",
"import numpy as np\n",
"import onnxruntime as ort\n",
"from PIL import Image\n",
"from pathlib import Path\n",
"from collections import OrderedDict,namedtuple"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "06a9a121-40a2-4eb6-8a79-94894a01915a",
"metadata": {},
"outputs": [],
"source": [
"cuda = True\n",
"w = \"yolov7-tiny.onnx\"\n",
"imgList = [cv2.imread('inference/images/horses.jpg'),\n",
" cv2.imread('inference/images/bus.jpg'),\n",
" cv2.imread('inference/images/zidane.jpg'),\n",
" cv2.imread('inference/images/image1.jpg'),\n",
" cv2.imread('inference/images/image2.jpg'),\n",
" cv2.imread('inference/images/image3.jpg')]\n",
"imgList*=6\n",
"imgList = imgList[:32]"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "007a7721-c49d-4713-94c6-4a57790acabd",
"metadata": {},
"outputs": [],
"source": [
"providers = ['CUDAExecutionProvider', 'CPUExecutionProvider'] if cuda else ['CPUExecutionProvider']\n",
"session = ort.InferenceSession(w, providers=providers)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "fdf1c66b-37bf-4c94-9005-2338331cf73d",
"metadata": {},
"outputs": [],
"source": [
"names = ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', \n",
" 'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', \n",
" 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', \n",
" 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', \n",
" 'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', \n",
" 'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', \n",
" 'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', \n",
" 'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear', \n",
" 'hair drier', 'toothbrush']\n",
"colors = {name:[random.randint(0, 255) for _ in range(3)] for i,name in enumerate(names)}"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "bf8215aa-918e-4c5a-b67b-70b5c3f1ba15",
"metadata": {},
"outputs": [],
"source": [
"def letterbox(im, new_shape=(640, 640), color=(114, 114, 114), auto=True, scaleup=True, stride=32):\n",
" # Resize and pad image while meeting stride-multiple constraints\n",
" shape = im.shape[:2] # current shape [height, width]\n",
" if isinstance(new_shape, int):\n",
" new_shape = (new_shape, new_shape)\n",
"\n",
" # Scale ratio (new / old)\n",
" r = min(new_shape[0] / shape[0], new_shape[1] / shape[1])\n",
" if not scaleup: # only scale down, do not scale up (for better val mAP)\n",
" r = min(r, 1.0)\n",
"\n",
" # Compute padding\n",
" new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r))\n",
" dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1] # wh padding\n",
"\n",
" if auto: # minimum rectangle\n",
" dw, dh = np.mod(dw, stride), np.mod(dh, stride) # wh padding\n",
"\n",
" dw /= 2 # divide padding into 2 sides\n",
" dh /= 2\n",
"\n",
" if shape[::-1] != new_unpad: # resize\n",
" im = cv2.resize(im, new_unpad, interpolation=cv2.INTER_LINEAR)\n",
" top, bottom = int(round(dh - 0.1)), int(round(dh + 0.1))\n",
" left, right = int(round(dw - 0.1)), int(round(dw + 0.1))\n",
" im = cv2.copyMakeBorder(im, top, bottom, left, right, cv2.BORDER_CONSTANT, value=color) # add border\n",
" return im, r, (dw, dh)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "b9ce7a13-31b8-4a35-bd8d-4f0debd46480",
"metadata": {},
"outputs": [],
"source": [
"origin_RGB = []\n",
"resize_data = []\n",
"for img in imgList:\n",
" img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)\n",
" origin_RGB.append(img)\n",
" image = img.copy()\n",
" image, ratio, dwdh = letterbox(image, auto=False)\n",
" image = image.transpose((2, 0, 1))\n",
" image = np.expand_dims(image, 0)\n",
" image = np.ascontiguousarray(image)\n",
" im = image.astype(np.float32)\n",
" resize_data.append((im,ratio,dwdh))"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "b1cae709-f145-4c63-b846-8edd6716f06b",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(32, 3, 640, 640)"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"np_batch = np.concatenate([data[0] for data in resize_data])\n",
"np_batch.shape"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "c382a4d2-b37a-40be-9618-653419319fde",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['output']"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"outname = [i.name for i in session.get_outputs()]\n",
"outname"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "b448209b-3b92-4a48-9a55-134590e717d5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['images']"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"inname = [i.name for i in session.get_inputs()]\n",
"inname"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "ef8bc01f-a7c6-47e0-93ed-42f41f631fee",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[array([[ 0.0000000e+00, 3.6190948e+02, 2.8389893e+02, 4.9353003e+02,\n",
" 3.9562683e+02, 1.7000000e+01, 9.2383915e-01],\n",
" [ 0.0000000e+00, -1.0330048e+00, 2.6461920e+02, 2.6221228e+02,\n",
" 4.4826050e+02, 1.7000000e+01, 9.2104465e-01],\n",
" [ 0.0000000e+00, 2.1545255e+02, 2.7048724e+02, 3.5087741e+02,\n",
" 4.1111517e+02, 1.7000000e+01, 7.6392365e-01],\n",
" [ 0.0000000e+00, -9.6838379e-01, 2.6136188e+02, 1.2927969e+02,\n",
" 3.3445026e+02, 1.7000000e+01, 6.9170636e-01],\n",
" [ 0.0000000e+00, 3.0596286e+02, 2.8082364e+02, 3.7849179e+02,\n",
" 3.7234799e+02, 1.7000000e+01, 4.6678147e-01]], dtype=float32)]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# batch 1 infer\n",
"im = np.ascontiguousarray(np_batch[0:1,...]/255)\n",
"out = session.run(outname,{'images':im})\n",
"out"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "d0376a85-ec36-41d3-9067-ec5a8ec5a231",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[array([[ 0.0000000e+00, 3.6191144e+02, 2.8390021e+02, 4.9352777e+02,\n",
" 3.9562689e+02, 1.7000000e+01, 9.2384642e-01],\n",
" [ 0.0000000e+00, -1.0345917e+00, 2.6461029e+02, 2.6221442e+02,\n",
" 4.4825989e+02, 1.7000000e+01, 9.2106003e-01],\n",
" [ 0.0000000e+00, 2.1546349e+02, 2.7049829e+02, 3.5087964e+02,\n",
" 4.1111389e+02, 1.7000000e+01, 7.6392013e-01],\n",
" [ 0.0000000e+00, -9.6724701e-01, 2.6136130e+02, 1.2928046e+02,\n",
" 3.3446219e+02, 1.7000000e+01, 6.9178230e-01],\n",
" [ 0.0000000e+00, 3.0596533e+02, 2.8082968e+02, 3.7849182e+02,\n",
" 3.7233865e+02, 1.7000000e+01, 4.6649921e-01],\n",
" [ 1.0000000e+00, 2.1281133e+02, 2.4224355e+02, 2.8546884e+02,\n",
" 5.1077960e+02, 0.0000000e+00, 8.9588410e-01],\n",
" [ 1.0000000e+00, 1.1204082e+02, 2.3507364e+02, 2.2090996e+02,\n",
" 5.3113416e+02, 0.0000000e+00, 8.5693455e-01],\n",
" [ 1.0000000e+00, 4.7646179e+02, 2.3513080e+02, 5.6024109e+02,\n",
" 5.1906622e+02, 0.0000000e+00, 8.5674554e-01],\n",
" [ 1.0000000e+00, 9.0671051e+01, 1.3539163e+02, 5.3778564e+02,\n",
" 4.4476132e+02, 5.0000000e+00, 8.3615136e-01],\n",
" [ 2.0000000e+00, 3.7307474e+02, 1.6083412e+02, 5.7743860e+02,\n",
" 4.9584790e+02, 0.0000000e+00, 7.9307902e-01],\n",
" [ 2.0000000e+00, 2.1895935e+02, 3.5587909e+02, 2.6999200e+02,\n",
" 4.9702692e+02, 2.7000000e+01, 5.8485562e-01],\n",
" [ 2.0000000e+00, 6.5187561e+01, 2.4052054e+02, 4.7870172e+02,\n",
" 4.9418930e+02, 0.0000000e+00, 5.7696176e-01],\n",
" [ 3.0000000e+00, 5.3027496e+00, 6.2176086e+01, 3.7205682e+02,\n",
" 5.8482434e+02, 0.0000000e+00, 8.7524450e-01],\n",
" [ 3.0000000e+00, 2.6052777e+02, 1.4254730e+02, 6.3039929e+02,\n",
" 5.8130194e+02, 0.0000000e+00, 8.1194180e-01]], dtype=float32)]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# batch 4 infer\n",
"im = np.ascontiguousarray(np_batch[0:4,...]/255)\n",
"out = session.run(outname,{'images':im})\n",
"out"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "c0a50aee-fa52-4b6e-aa92-bbb1f12d5652",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[array([[ 0.0000000e+00, 3.6191074e+02, 2.8389581e+02, 4.9353012e+02,\n",
" 3.9562750e+02, 1.7000000e+01, 9.2385465e-01],\n",
" [ 0.0000000e+00, -1.0335236e+00, 2.6461029e+02, 2.6221289e+02,\n",
" 4.4826691e+02, 1.7000000e+01, 9.2106324e-01],\n",
" [ 0.0000000e+00, 2.1546918e+02, 2.7049741e+02, 3.5089246e+02,\n",
" 4.1111246e+02, 1.7000000e+01, 7.6381278e-01],\n",
" [ 0.0000000e+00, -9.6646881e-01, 2.6135922e+02, 1.2928015e+02,\n",
" 3.3445938e+02, 1.7000000e+01, 6.9177818e-01],\n",
" [ 0.0000000e+00, 3.0595779e+02, 2.8082639e+02, 3.7848483e+02,\n",
" 3.7233902e+02, 1.7000000e+01, 4.6637228e-01],\n",
" [ 1.0000000e+00, 2.1281424e+02, 2.4223289e+02, 2.8546671e+02,\n",
" 5.1078430e+02, 0.0000000e+00, 8.9587235e-01],\n",
" [ 1.0000000e+00, 4.7646426e+02, 2.3512268e+02, 5.6024048e+02,\n",
" 5.1906110e+02, 0.0000000e+00, 8.5685480e-01],\n",
" [ 1.0000000e+00, 1.1203514e+02, 2.3505554e+02, 2.2091090e+02,\n",
" 5.3114307e+02, 0.0000000e+00, 8.5680377e-01],\n",
" [ 1.0000000e+00, 9.0665085e+01, 1.3541930e+02, 5.3778650e+02,\n",
" 4.4475671e+02, 5.0000000e+00, 8.3618683e-01],\n",
" [ 2.0000000e+00, 3.7307629e+02, 1.6083318e+02, 5.7743591e+02,\n",
" 4.9584601e+02, 0.0000000e+00, 7.9310930e-01],\n",
" [ 2.0000000e+00, 2.1895792e+02, 3.5587857e+02, 2.6999387e+02,\n",
" 4.9703476e+02, 2.7000000e+01, 5.8482271e-01],\n",
" [ 2.0000000e+00, 6.5209000e+01, 2.4051682e+02, 4.7865540e+02,\n",
" 4.9418790e+02, 0.0000000e+00, 5.7698834e-01],\n",
" [ 3.0000000e+00, 5.2892609e+00, 6.2162445e+01, 3.7209552e+02,\n",
" 5.8483594e+02, 0.0000000e+00, 8.7545133e-01],\n",
" [ 3.0000000e+00, 2.6051691e+02, 1.4254585e+02, 6.3040662e+02,\n",
" 5.8132233e+02, 0.0000000e+00, 8.1180179e-01],\n",
" [ 4.0000000e+00, 4.2224957e+02, 1.0267369e+02, 6.3170001e+02,\n",
" 5.5488086e+02, 0.0000000e+00, 9.4197059e-01],\n",
" [ 4.0000000e+00, 4.9545387e+01, 2.7456857e+02, 1.8946579e+02,\n",
" 4.1091318e+02, 3.2000000e+01, 9.3334389e-01],\n",
" [ 4.0000000e+00, 2.6599213e+01, 1.0745810e+02, 4.5867126e+02,\n",
" 5.5153650e+02, 0.0000000e+00, 8.2260609e-01],\n",
" [ 5.0000000e+00, 1.9983047e+02, 3.6107239e+01, 5.2495667e+02,\n",
" 4.8967474e+02, 1.7000000e+01, 8.4681529e-01],\n",
" [ 5.0000000e+00, 1.1123685e+02, 3.1816605e+02, 3.7944864e+02,\n",
" 5.6111890e+02, 1.6000000e+01, 6.9891703e-01]], dtype=float32)]"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# batch 6 infer\n",
"im = np.ascontiguousarray(np_batch[0:6,...]/255)\n",
"out = session.run(outname,{'images':im})\n",
"out"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "2a72d2fd-14dd-42cf-b807-3e8a82b971d7",
"metadata": {
"tags": []
},
"outputs": [],
"source": [
"# batch 32 infer\n",
"im = np.ascontiguousarray(np_batch/255)\n",
"out = session.run(outname,{'images':im})[0]"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "f3ca9301-ba52-4a8c-9ae0-55b28be8a904",
"metadata": {},
"outputs": [],
"source": [
"for i,(batch_id,x0,y0,x1,y1,cls_id,score) in enumerate(out):\n",
" if batch_id >= 6:\n",
" break\n",
" image = origin_RGB[int(batch_id)]\n",
" ratio,dwdh = resize_data[int(batch_id)][1:]\n",
" box = np.array([x0,y0,x1,y1])\n",
" box -= np.array(dwdh*2)\n",
" box /= ratio\n",
" box = box.round().astype(np.int32).tolist()\n",
" cls_id = int(cls_id)\n",
" score = round(float(score),3)\n",
" name = names[cls_id]\n",
" color = colors[name]\n",
" name += ' '+str(score)\n",
" cv2.rectangle(image,box[:2],box[2:],color,2)\n",
" cv2.putText(image,name,(box[0], box[1] - 2),cv2.FONT_HERSHEY_SIMPLEX,0.75,[225, 255, 255],thickness=2)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "ff5ce6a4-4fd9-4804-9afa-e8e8a3e20b41",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<PIL.Image.Image image mode=RGB size=773x512>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image.fromarray(origin_RGB[0])"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "d13ed2df-ceb8-46c8-8bfc-aa7ff3750f03",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<PIL.Image.Image image mode=RGB size=810x1080>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image.fromarray(origin_RGB[1])"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "b4449198-3c2b-41d6-9a23-de7accf73d82",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABQAAAALQCAIAAABAH0oBAAEAAElEQVR4nGz9TZYjy64sjJkBHsw690lLs1BbGoG6moDmPwdJ392VDAdMDYMHue8T1zl7ZWWxyAgPd/wYDAb+P/9v/9eIEAHgrpIkBsm1VkSgJWkx1loA7q4IiKDQ3axN8orMTABV1Y2IiFjdXaLYQl1XUuh7J0Ayycz8vXdViYiIFQkgFE3kesVK1f79/b3vm+TrysxMortVW1KgSUoi+spA137fVQWQZFXtvYMLQAndLXKtJcZ+14ur3nWXSJJLEsjMrKrM5LrUlEistV5rve56773/vP6z1vr7z7uqXq+fiLh343kFfT1bzesPI6qqqkj679daVR0Rflup/bcRVLB7g6kgwJYyIjOXGBGU7iqhGdHE3m8AkfCCSyU1yUiU9vv9Xiuu66q+SWbG3nvlD0mwde4qAgDObyQJaj/uvt8/r6V9M/B6vVZw773rLWmtpa8XACiI/R8io8UmGSsANDLzqtLff35jXRHx9+9/V9VaKSHWn3/++a2611o/GWutQO+9r2sBmGVsVVVEZKaqAIjce7/f+/V65Xr9/fuXiz8/P0zsvat3RDAh6V37uq5XhiTUBpCSpD9/Xq/Xq6H/4+8/f//+vWsz1p/XT+13CHepqsi11mrl3huM1+t1t/755x8i11q7677vhh+uADASwC7eXd241RIKIllQQ1Lr3lJ1+bmnJO8KsQE0QxIUJIEkGfLv4duPCKklefP40f3J6/V6ofXe992da72uRRJ3dfe11uv1uu97rXW9ftbrIrKJWPlaFyoCTB8pP/7zXT8/P6Te77ekn5+ffF3dvYv+9uu60OrutdafP3+8w0OICL8hIja2VGJLPp5jGbobiO7nyPR1XSR/f39Z23tPElQRQaGqgAZQ6r03AhHR3fd9d5Gket/3Pad+76piyJ/s/3Z3VfXeaFFocO/9vm9famZ2d3f7KKl6771W/vz8YFd3e4efA1vdff35ue+76rZtBHDf9/v9Xr7zAEkkAez93nv72VHq7rT9LNz375+fq+o32NeLF1X9KxUD15WSfnL9ef2g9/7nn5X5X3/+tPZaEa3ue0UAu7WlWj+XJIQyc3lftUjCe7hun6D7vvfv+7quKpEUMyIyfkjurrvejCoUK6sKOwAmMriqYGfQUIsFRUReiwpJVbWrgEREK6sq8vWuVifjKrEbYkSuEhv0ejYggswO/v6+q1txrbUYq6oaErnrHZmRtvYN4EpGxPv9fr1eyfX7+3u/6+fn5+fnp/q+798IRqQkegtUV9WuO5MBgr0IkkJXVSarysdQQducCIQAbgrCToHUSnuIq6paighFdjfJiHjfOyKSAYBMAAk2m8nf/VvlbbYiAgoAv//9GxG57BHaa9iN2vr5+Y9UkvKVklr79XrZzO67JS2u7u5GXEuq6+dFgeRrxd77/n2vtX7vd2Yys9QS13Up8u/fv9U+DwKADJJduO+bTJI+lQmSJKKg398bwdnPAR8T23+SFCRfrIAAE5G7Fd0RcSHslCOCVHc3SlJ7/SkCF1/hryOB5R1mC/9+v0naSr/f7yZeP/8pwduJJCNstUj+888/mQnQntQn+l2bJ5ixO+5uZmTme489sRUi2dLem8ckSbr39qlZa/3uu7sRrKrf/Wujve8WAwiqfeJstbwl9t4NZSYiurvUqk4qQIcI/l6gSb7WsmEHGuzjzZVzo37/xAzPv52X+vmjQt57n/cIAK64APjn+Prni9Hd3RsAQ88zTY6L7240vc/XWt69Y7Uxrt9RFskAAai7uzNzrRXC7++vpOu63rv//v2bmf/1X//lN0i673v3vdaKBBV69xWLmSTLG+txkednL0GCAJivtVZp3/eNjJ+fHwDv9/v18x9Jgcs7vLsjcq20iSjttZZPn45hr6otr3B2dxckUSJZX6GOXUmsy8/FF+ZzUcQGK8CWV/vZFSu597a7ATB7gxEtu1H7F+/bqlLdfha2e7MTQmiRSglSlBLMwOd8aT92bzkUXexuW/s5aNVVZae/GADUG8AiMoJqn6i5oyp/2tcmRPi+SABNdXcAJFckyckR1mzUqtpd42cZUaEqktd12Wl6Jzje80o+3jYCVSWU996JBJCZe29v5XaiAZG8cqUvACGpMCeyIDqimBMHR7mM7AaY8wQJ5z7djViOhUgy58YbIOOu/Zj9st0L2icC2PPf7kJBzAmNI4KxGtp7312R6c2GYLX8nu5e+ec5X2A/y25r0Ha7OYnDVjMSMf40X5dvLSJyvQA49+HK1+vV3X///v3Pf/4zb860Dd9VVfXnz58JXCY8Q2ZmXtVY6+V3ev9H+K/S+3mtxdDzyNRzKJxl3Pe99zsirlySLq7rutB8v9+ojghnKO+/v+/3++VVAl6vV3RJ+v393Xv/XK/X6zWneF117xCCrN+/v7+/K/jnz5/dDsPt3iiJCpL1TwPYuu/73tqSqu6991ohade993aMrd5772VPbJ8xJ9xh/R4HP3Z2HHJVghk8ZvrZxDF51fxxDG5Eq0lizsN8jrf1k3g7IlkMrmvvd91NgaHrulrefOhuqdCKRMbE7hCcEj9ejJyAtLaDaQLgsWSOPCIi5jwzInRuvLvr/Q6uzCsYNtai9t7/1D+v1wvgk+pLY6ABqPE4qgjgbGJbt+0AnfFZsca5Zp4VK4lgPKtRrSsXpd/3u1Tr52XfD0Bq78Xu7ZwWn5Tm8xwng0pEUHL6MeZG0ro+js2PzB/+fr9DbUjCx8lP8P1+P585zqmZiEgm2QibC0nVJbEGYqA3w1o+QmMKryuvSNtOxqyqj6KkvQc+6O70YkZExOu1MhNshgC2NjtAZSap6r7v20bBa5iICFCg+r//++9936V+v9+ltrOpqtpiOFUBGVBIUqO0yXzXri07xNLEOziJ+nlS0eqIFULVLG+fBDhIICPQDX6FKQ2ebA1nH9kpUlI/9uXLB2cmzhZ6nvKVKWDvzbazZGZe1/V6vQCAQUEQyPG7DX15uOfpHwNX80WPMY3XgCPddW8bSme/3R2TAMx9Adhd12UEpPbdTgUz80l+fe6eGCLPQ5fsiXrSGG8xwwHtAFGZq/bu7tr3fd/yhwbZ1ASFOAs2EQag3mWjf7zsLOCTuHp3Sdr3jfoAWydjb9tDX7CvxBsgM1dmVXXrhONbokO9qqLtAyQpI1+vF4nMDBquGTu5VvrnlqoqIHKCRbBJtQrdIiMYjE8A6pUXqspBmIPp/vLZr5f9WUvarfuujV+Spd59MwoRCQDHICiqtXc1wFwZSVHqhrR3cp1np0aTULMxsOYGC+pWgxjPksKYO83/5OViLJ9kdduf7e5YpAQlKUb4RESEHXlXP6FYVd37zszdu+4ecweWhIIRFqkgbDXBgJ7n/jzHE23AkRi6QGUwDPSCu+/Mi9K7NtVrvbz4gEgcz1jOO6rajuOTqozf+Vhav/8calWp6vaD62b1bavy588fAPvuBwr0HZc6ewXY3Rv9bMsHaRJU1SCbXVU6j9VPjKSajwXTeOdzbVCstBcj2ejHSnwnPM9BPq6Tdjy7W7ucADvNM3Rlmzl2ldV6jA8lGWjBcaCOaeIy/sCgs9+PdxjXfxbT5/oxaOXM02/7+leJLEzu8cTEJL+fzrOvvBTH2H8yzwjUE2t8vZ5IAF/WrL3Q87f9WH5nqPd9Sz02P/H8rS3q+cATrhy3iwnl9XxjXtekX+eZ8gQVkgwhxSeqFiON6DEEPXa7u8eddXcg/zcb6AB34hxn+8+y4IRPDnOBDypqKMeVjMdHPD8AyEwed1CqT+j4wQtOJgw2QUc+qO/nstZygiQDDYrP3uCsakQQ0dp98qJzWGpS+AKAiVHPc5xvpzPqeIxPn2dRUDcGfXWiCHgXfe+H/3HX/v33K/w9wvOl7ZyNYoOcY2yfITWhdkBiTwd6tzl5xjmns3SkelK+5zLmK6qezTOP41zD///t7YrLMW7P7uqu52F9P5rnZ5+7722gr0zBf9y7gLl2p+K++DHXnLtiBn2KjURBXaUgGRmxJXb/jyuXFMTYGTxX9dnV28d
"text/plain": [
"<PIL.Image.Image image mode=RGB size=1280x720>"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image.fromarray(origin_RGB[2])"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "4faf6e6e-afb5-4c97-82c3-aeffdc9aba9e",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<PIL.Image.Image image mode=RGB size=640x536>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image.fromarray(origin_RGB[3])"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "27485468-2e69-4aaf-8089-ba0134a1b26f",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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
"text/plain": [
"<PIL.Image.Image image mode=RGB size=640x480>"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image.fromarray(origin_RGB[4])"
]
},
{
"cell_type": "code",
"execution_count": 24,
"id": "ef743cc3-7ae9-495c-ab24-2ac25967ec5c",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAa8AAAKACAIAAACkG2AoAAEAAElEQVR4nOz9abB123EYhnWvYY9nuuM3vBnvYQYhmgQlSqKiyVJix05iK3LFFVtSXDZBTEqcxCUAjKuSlElQVakoIkGCVGSlkrIMkyopkkVKlEhQIgiBBAkSAzG/hzd98x3PsMc1dX6sc/bdZ9jn3vu9pyqroq5b37fP3mvo1atXr169evVCBABEztEYBwwAEBwKHhhbwXWAXyt1N9g3qRwBAAB0jfLZxrfd7XLXwue67bo+PTfj31Xv9cu/XnuvC3jN9Os968F2FdSR4Y3wbbsq82Y14Jrl8K5y/gcGtnN8dfHVPD0CAgBd0Gtz+i3jGhEBgOiCUowxIAMABEiEnHMAZ61FIYQxxqcQQiilkiQpigIg3NK2DXBdbuiCN6t3rzkqAOrNrzd3IgBdkz7Xbdd16Ykd+F/CbFeG67a3E94sqdrRALpmg/G6+Fy33i7QHe/l9Yp5s8bdtRnimkAd/IkdfNXFz1182EV/bNEZEQCACBDBEQAEQSBEUBQFgGMMEAAYY4icARprGIIFF4ZM682lYwf1+Zuk1NmrTdaNoO/CR7jVlNvLpw5pJd8k6WyuyWzcbmhaF5LQTYeuet+s/uqCBp8tOP/LgOv2r9gqxK7eiuv2L9CbI52343916OKfN6v7uujTNb666r0unyOCc0AEjAFj82dEAELGhNbaTwNScq01AoCU0mgLwBCIwEaJLEuNXVhufv2mzVFd9V4XqAOf7vI3z8nd7e2a269X75tGT9qM/7VV5C64Zns7oUsKXBc6pAZ2lr85PV1XJ+qSVtdsF75JSvubNtdcW0e+ZvEd/EldfNWRvpMPu6QnBH6VjYBLDziXi5wxv0z2SiGQhTTu1XX96U9/+m3veOs0mzHJpOvCfnOtnUK7A6hD+LM31r1NscQ249NZPqqNr12nOAmuhVhXva6zG68pDjvw76q3iz5d/XLd9mIL/84yO9JfCZ8OuC7/dPUvEXWhtBGubdgA0/G+Y9x10KGTP7vqfZPofF1g0DG+oIOvOvi5iw87xRLTROSck1IaY5xzYRgaY4qCnnrqiU9/+tP/5X/5cSBAREQUfrldlBkAPPXMk+9+73sdgFvsQmxApuO9eJOI2WkFvw4QkOgQ293lb54bOxfu19QFuup90+jZMbe/absob0Sna4+060r5a8J1+adzF2K+oNoKrXaZjtmlC94sKvwrs4vSwZ+8k68swDK3zKm9mXO372IREAI6cETEkSujOARCwDPPPCODgDFWlxXnXAAxztE6yxhwyQjgf/df/F9qg3HU31gudky+nUvrTgQ3U0F2SDE/d63PbIjYntaaZ8uxnaZ55rZL99k8J3fag1iHlbcDhN1cUNdcrdDAJg2L4eZ5itzm9112pWv3V9cKpWvF2tEv11K4oFtn6SpnO/+sQ1f/dvFbV2ld9XbCdVeIHXBte2UH4HXnx+5+3/ie6806neGb6dDw88qOMPLNOmPX+CIXcM6NMVJKrTUiBkFwdHT05//d9/1b/9af1c5qpYIwBABjjABg1hrGgQgqrRQBk0k/GRi+WZPvmjDD6wrDDu7sWsFtfOspha0CcfEg3ObhR0EHf3fs8QVdszhFm993gOtYEHSRLXACrrPeRLZZC+xaSXX115u1UmaMbZSGb5p9qmM2pU7TwGZCBB1rAudcQ/y2ZG9LjXYD3TWlA0DSkX5zP3b1y/V6ZQs+XfR8k1bQTm6WJ0EXX11oAwvb13yAxxuT285xqoEDaUMSMXCISMJULBdByBgwJpAxrTVjDAAEoAGSRBocCygIEQCYFToNYr/evkAPEQCcMz6n/9Q8t1lnCfuu2fVit46A2EV2cLBJCiz3ymrPrYq85arbKHWh57qkD26eMxFcG6WLYjc2lqixml9ZObpo41zozydJC8vUmL/HC52iTTFs0badoJPH561uadZzdFZ7gYiISAjhH1aa5lXPtkq4Osm3RMwWI53/1CT2Dyvob+6I5TTrtfufjIl2+iYBD7hzrqm9qXdF523l5evlt9Fex3AjngDiuurzSjkeW2vtMtvQor2sSd/ghojI2UaqXntXs8ti0LF2sQ5gjVwAwLiAbnqus5xw1PAYLHFUTERhJADAMobAwzCOgz4hJwABGp1jUhplods8eFFfU277TTtZ+2GdVzrH3TJ3royHlaovhZWUiNiwchfCV/kJC+mzCf3HtEZvnyQ2pl8e7ZsJ7paL3dLkx4MV/mv+9XRu0lxIGVgd8376XGfr7Uj6iXZdGjajugvWu76r/I3vrbVNq9tUXdF521Jye0UNXJFDVqBLynfl2ph+oyj3aawx0OrBJiW7poWT3Gb0uqUqbkR1pV/a89B6ExDRrfkbNlmIyGsprYfNg7pTGjpnmoqb2i/t9Y1CrSPphrwAgLg0/pvJubtOt0h58eoxRNVG3QGgc2W3UhJRk2Uzw61gdOmQYGxJdWpn3VgCLfr7MtXjopSNOuNch12yXm/H9KKWFXUPlsdkm7aXCsEllNb0wS251ufF7VVcRYi05V17QLYRW59W/dcuoXzVYbKpFSs4bCmtPYfhfG3nVgZUm2IrUx1skW5v0m4YMlrnMER0bjMnbxiha7DcO76BF9lXeKkNndJwveKNHNzFTM3PK/Fiq1+75q4thayjuv6wMjivCIhI1/QLuxTVlWRXEdzttqyslNcH/0oJ2D23t2eay6UzIPjepHlmz1mc84adl+parnYDYldbKa8M3fXBv6VdVyl/CzSF0Np6+bpFraD3GFnWu2mFFLi2Kt8ooNtv2j85Xui87X7s9AB7s4Faail0dHRXP65LoeU3bnm0dlqut0nD9uTWvNmefh2bzixeZi+9oZUevVSYboWmzTivr4XPOle1NVNEBJj/27VS6EKL4SoLLqPxGPi3C1yV9Rf1rq845vncemI/YyIiAnrWX0yej0Pt9RmowaHNBisSClqU38JXGz9tLKdd72Mgv/HTRsnSHhddCa6Fw1UQ6xpQK5pdk6wx5XuTgn/fLD9X0F6R8u2HSy0Sq2h3kL9ztmtP2zR/AwBLzw3QWjkXw2vDrAlzyxLOH2juEtOFTKc0XBGFG+f2led2yqtoHFt4+lrlrOeFTdNpVyHb1durw7pKsqW0S2vBTcvJhju3V9H03XoPrvcXLU9CW6i0vjRrylzPtSINtzR5fdJdL2cj5l3QNeFtSbxSV4PVRvVqXYu5fO7vqPGKX9f7pUnWtsZuoXm7i7uUxxV4PEWkK9el/buSrM2WXaWtD5AuceFL8pIREbvUwy26ofN8DnNSNgTtXCFeUXKttKpLnnZNemvA2rlahVyvL9cZevGmi3c3EhSveLLqUo7cMpgvXQF1ZdxYy8pgXhiY1zNebhlo88DGuW1jY9/gwnMFttPq0tpX+mW7Drix6vUS1rG6FoZb0IO1gdO8X9fp2nIQlqe3jf31eP1yRanXghV1tXNeuVS8dAnHq8O2lXK7mlZPL8mvdU17Xe/YXrgvc/nnEi+uK1wdhawivMI6K72+gm17jr0W/ivwGGrspenbw8zvdW6pdF1h2Y7Y+oDfCNvshouXiM1iB6G1TIPF2LuKDrgCTe9vVHK3wBUHc5e0Yow1i80Gh/Z42yjuu2TTespL1ZkVJLukfDNAmmQresmKRt+8bDcHEcERtFMCICARdZ73f1PHxXrrGNvsseQDbm3Mst7qRTLnm0FE27EWiLDumLrQAZcyN+phm/TNwm0jddqCbKVXmoqICMC2enQdEyCiNmu29pHn9Tq3VDhj6NxmbuuSEZxv8Kpt89la45bm3gWeF3vB6x3Zau/Fe++x0d7pa6eBtSXbxjG2TvwVHNaTtTuxyUJEiHwFDV+Ew7mcuygWARCt92zwZbS5pcNzZaPgXifXepaVaaxLim1s7MZ6oVtdar76n+vutOuicGP/rvDPesct3riLFhH3uRwQETlYKATLWVeo0cZ/MSIaFFw7QfuhQQ+9hwpCUw8t1oUMVy0zTQldTV5/Cd3g/T1X6EO0qp00CbzAWa+omXdXqnPOMBYAgPPuhuAILHC
"text/plain": [
"<PIL.Image.Image image mode=RGB size=431x640>"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Image.fromarray(origin_RGB[5])"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c8dad466-7aa2-4ba4-81f1-0d8f57268081",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python [conda env:torch] *",
"language": "python",
"name": "conda-env-torch-py"
},
"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.8.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}