diff --git a/Annotation_and_fine-tuning/inference.ipynb b/Annotation_and_fine-tuning/inference.ipynb
deleted file mode 100644
index 33cba22..0000000
--- a/Annotation_and_fine-tuning/inference.ipynb
+++ /dev/null
@@ -1,5233 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 3,
- "id": "714cbbcd",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Annotated videos will be saved to: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/videos_annotated/\n",
- "Loading model from: ./runs/detect/yolov8n_car_parts_finetune/weights/best.pt\n",
- "Found 4 video(s) to process.\n",
- "\n",
- "Processing video: 20250624_185423.mp4\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 0%| | 0/266 [00:00, ?it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 20.6ms\n",
- "Speed: 3.3ms preprocess, 20.6ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 0%| | 1/266 [00:00<01:34, 2.81it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 18.9ms\n",
- "Speed: 2.4ms preprocess, 18.9ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 30.5ms\n",
- "Speed: 2.4ms preprocess, 30.5ms inference, 1.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 15.1ms\n",
- "Speed: 2.5ms preprocess, 15.1ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 2%|▏ | 4/266 [00:00<00:26, 9.78it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 15.0ms\n",
- "Speed: 3.2ms preprocess, 15.0ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 11.2ms\n",
- "Speed: 2.5ms preprocess, 11.2ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.2ms\n",
- "Speed: 2.2ms preprocess, 10.2ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 11.0ms\n",
- "Speed: 2.3ms preprocess, 11.0ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 3%|▎ | 8/266 [00:00<00:15, 16.97it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 10.8ms\n",
- "Speed: 2.2ms preprocess, 10.8ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.6ms\n",
- "Speed: 2.2ms preprocess, 9.6ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.5ms\n",
- "Speed: 2.3ms preprocess, 7.5ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.4ms\n",
- "Speed: 2.3ms preprocess, 9.4ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 5%|▍ | 12/266 [00:00<00:11, 22.47it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.4ms\n",
- "Speed: 2.3ms preprocess, 9.4ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.4ms\n",
- "Speed: 1.9ms preprocess, 8.4ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.6ms\n",
- "Speed: 2.4ms preprocess, 9.6ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.2ms\n",
- "Speed: 2.1ms preprocess, 8.2ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 6%|▌ | 16/266 [00:00<00:09, 26.98it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.9ms\n",
- "Speed: 2.4ms preprocess, 8.9ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.7ms\n",
- "Speed: 2.1ms preprocess, 10.7ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.0ms\n",
- "Speed: 2.8ms preprocess, 8.0ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.4ms\n",
- "Speed: 1.9ms preprocess, 9.4ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 8%|▊ | 20/266 [00:00<00:08, 30.17it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.5ms\n",
- "Speed: 1.9ms preprocess, 9.5ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.2ms\n",
- "Speed: 2.0ms preprocess, 9.2ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.7ms\n",
- "Speed: 2.0ms preprocess, 9.7ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.5ms preprocess, 9.0ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 9%|▉ | 24/266 [00:01<00:07, 32.73it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.6ms\n",
- "Speed: 1.8ms preprocess, 8.6ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 12.7ms\n",
- "Speed: 2.2ms preprocess, 12.7ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 13.0ms\n",
- "Speed: 2.1ms preprocess, 13.0ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 6.9ms\n",
- "Speed: 2.2ms preprocess, 6.9ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 11%|█ | 28/266 [00:01<00:07, 33.90it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.5ms\n",
- "Speed: 2.3ms preprocess, 9.5ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 6.8ms\n",
- "Speed: 2.1ms preprocess, 6.8ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.8ms\n",
- "Speed: 2.1ms preprocess, 8.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.3ms preprocess, 9.0ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 12%|█▏ | 32/266 [00:01<00:06, 34.87it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.3ms\n",
- "Speed: 2.4ms preprocess, 9.3ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.2ms\n",
- "Speed: 2.4ms preprocess, 8.2ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.4ms\n",
- "Speed: 2.2ms preprocess, 14.4ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.1ms\n",
- "Speed: 2.4ms preprocess, 8.1ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 14%|█▎ | 36/266 [00:01<00:06, 35.36it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 11.6ms\n",
- "Speed: 2.2ms preprocess, 11.6ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.2ms preprocess, 9.0ms inference, 1.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.1ms preprocess, 8.7ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.8ms\n",
- "Speed: 2.1ms preprocess, 8.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 15%|█▌ | 40/266 [00:01<00:06, 35.96it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.2ms\n",
- "Speed: 2.6ms preprocess, 9.2ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.5ms\n",
- "Speed: 2.7ms preprocess, 9.5ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.3ms\n",
- "Speed: 2.1ms preprocess, 7.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 15.1ms\n",
- "Speed: 1.9ms preprocess, 15.1ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 17%|█▋ | 44/266 [00:01<00:06, 36.17it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.9ms\n",
- "Speed: 2.2ms preprocess, 8.9ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.1ms\n",
- "Speed: 1.9ms preprocess, 9.1ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.3ms preprocess, 9.0ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.3ms preprocess, 9.0ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 18%|█▊ | 48/266 [00:01<00:05, 36.83it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 12.0ms\n",
- "Speed: 2.4ms preprocess, 12.0ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 13.7ms\n",
- "Speed: 2.3ms preprocess, 13.7ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 13.7ms\n",
- "Speed: 2.0ms preprocess, 13.7ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.5ms\n",
- "Speed: 2.0ms preprocess, 8.5ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 20%|█▉ | 52/266 [00:01<00:05, 35.99it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.0ms\n",
- "Speed: 2.6ms preprocess, 8.0ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.1ms\n",
- "Speed: 2.2ms preprocess, 9.1ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.3ms\n",
- "Speed: 2.6ms preprocess, 9.3ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.8ms\n",
- "Speed: 2.1ms preprocess, 7.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 21%|██ | 56/266 [00:01<00:05, 36.55it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 10.4ms\n",
- "Speed: 2.1ms preprocess, 10.4ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.4ms\n",
- "Speed: 3.0ms preprocess, 10.4ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.2ms preprocess, 9.0ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.4ms\n",
- "Speed: 2.2ms preprocess, 9.4ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 23%|██▎ | 60/266 [00:02<00:05, 36.43it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.4ms preprocess, 8.7ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.9ms\n",
- "Speed: 2.1ms preprocess, 8.9ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 13.9ms\n",
- "Speed: 2.1ms preprocess, 13.9ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 13.5ms\n",
- "Speed: 2.1ms preprocess, 13.5ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 24%|██▍ | 64/266 [00:02<00:05, 35.96it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 13.5ms\n",
- "Speed: 2.0ms preprocess, 13.5ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.2ms\n",
- "Speed: 2.2ms preprocess, 7.2ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.1ms\n",
- "Speed: 1.9ms preprocess, 9.1ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.5ms\n",
- "Speed: 2.7ms preprocess, 7.5ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 26%|██▌ | 68/266 [00:02<00:05, 36.52it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.2ms\n",
- "Speed: 2.3ms preprocess, 9.2ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.3ms\n",
- "Speed: 2.0ms preprocess, 14.3ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.5ms\n",
- "Speed: 1.9ms preprocess, 8.5ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.7ms\n",
- "Speed: 2.2ms preprocess, 14.7ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 27%|██▋ | 72/266 [00:02<00:05, 35.81it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.2ms\n",
- "Speed: 2.1ms preprocess, 9.2ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.2ms\n",
- "Speed: 2.3ms preprocess, 14.2ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 13.5ms\n",
- "Speed: 2.1ms preprocess, 13.5ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 13.3ms\n",
- "Speed: 2.2ms preprocess, 13.3ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 29%|██▊ | 76/266 [00:02<00:05, 35.09it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 7.6ms\n",
- "Speed: 2.6ms preprocess, 7.6ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.3ms\n",
- "Speed: 2.2ms preprocess, 10.3ms inference, 1.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.2ms\n",
- "Speed: 2.2ms preprocess, 9.2ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.0ms\n",
- "Speed: 2.1ms preprocess, 14.0ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 30%|███ | 80/266 [00:02<00:05, 34.69it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.2ms\n",
- "Speed: 2.2ms preprocess, 8.2ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.6ms\n",
- "Speed: 2.4ms preprocess, 8.6ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 6.7ms\n",
- "Speed: 2.1ms preprocess, 6.7ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.1ms\n",
- "Speed: 2.1ms preprocess, 10.1ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 32%|███▏ | 84/266 [00:02<00:05, 35.62it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 15.4ms\n",
- "Speed: 2.0ms preprocess, 15.4ms inference, 1.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.5ms\n",
- "Speed: 2.3ms preprocess, 8.5ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 10.0ms\n",
- "Speed: 2.0ms preprocess, 10.0ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 9.0ms\n",
- "Speed: 2.2ms preprocess, 9.0ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 33%|███▎ | 88/266 [00:02<00:05, 34.64it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 14.4ms\n",
- "Speed: 2.1ms preprocess, 14.4ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 2 window regulator assemblys, 8.7ms\n",
- "Speed: 2.5ms preprocess, 8.7ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.6ms\n",
- "Speed: 2.2ms preprocess, 7.6ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 7.4ms\n",
- "Speed: 2.0ms preprocess, 7.4ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 35%|███▍ | 92/266 [00:02<00:05, 33.98it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 14.9ms\n",
- "Speed: 2.2ms preprocess, 14.9ms inference, 4.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.1ms\n",
- "Speed: 2.4ms preprocess, 8.1ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.5ms\n",
- "Speed: 2.3ms preprocess, 8.5ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.8ms\n",
- "Speed: 2.4ms preprocess, 8.8ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 36%|███▌ | 96/266 [00:03<00:05, 33.45it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 8.9ms\n",
- "Speed: 2.2ms preprocess, 8.9ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.9ms\n",
- "Speed: 3.2ms preprocess, 8.9ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.4ms\n",
- "Speed: 1.9ms preprocess, 8.4ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.3ms\n",
- "Speed: 2.0ms preprocess, 8.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 38%|███▊ | 100/266 [00:03<00:04, 33.30it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 8.4ms\n",
- "Speed: 2.0ms preprocess, 8.4ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.3ms\n",
- "Speed: 3.1ms preprocess, 9.3ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 14.6ms\n",
- "Speed: 2.2ms preprocess, 14.6ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 12.5ms\n",
- "Speed: 2.0ms preprocess, 12.5ms inference, 4.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 39%|███▉ | 104/266 [00:03<00:05, 32.25it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 7.4ms\n",
- "Speed: 2.9ms preprocess, 7.4ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 12.4ms\n",
- "Speed: 1.9ms preprocess, 12.4ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.4ms\n",
- "Speed: 1.9ms preprocess, 8.4ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.9ms\n",
- "Speed: 2.5ms preprocess, 8.9ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 41%|████ | 108/266 [00:03<00:04, 32.37it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 10.9ms\n",
- "Speed: 2.1ms preprocess, 10.9ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.4ms\n",
- "Speed: 2.6ms preprocess, 8.4ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.8ms\n",
- "Speed: 2.3ms preprocess, 7.8ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.3ms\n",
- "Speed: 1.8ms preprocess, 8.3ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 42%|████▏ | 112/266 [00:03<00:04, 32.98it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 7.9ms\n",
- "Speed: 1.9ms preprocess, 7.9ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 13.3ms\n",
- "Speed: 2.0ms preprocess, 13.3ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 11.4ms\n",
- "Speed: 1.9ms preprocess, 11.4ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 12.9ms\n",
- "Speed: 1.9ms preprocess, 12.9ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 44%|████▎ | 116/266 [00:03<00:04, 32.68it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 13.4ms\n",
- "Speed: 2.1ms preprocess, 13.4ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.3ms\n",
- "Speed: 2.0ms preprocess, 8.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.4ms\n",
- "Speed: 2.2ms preprocess, 8.4ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.2ms\n",
- "Speed: 2.1ms preprocess, 8.2ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 45%|████▌ | 120/266 [00:03<00:04, 32.63it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 15.3ms\n",
- "Speed: 2.0ms preprocess, 15.3ms inference, 4.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.9ms\n",
- "Speed: 2.4ms preprocess, 8.9ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.5ms\n",
- "Speed: 2.3ms preprocess, 8.5ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.6ms\n",
- "Speed: 2.3ms preprocess, 8.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 47%|████▋ | 124/266 [00:03<00:04, 32.35it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 10.2ms\n",
- "Speed: 2.1ms preprocess, 10.2ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 9.3ms\n",
- "Speed: 2.0ms preprocess, 9.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 11.0ms\n",
- "Speed: 3.4ms preprocess, 11.0ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.6ms\n",
- "Speed: 2.2ms preprocess, 8.6ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 48%|████▊ | 128/266 [00:04<00:04, 32.36it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 13.5ms\n",
- "Speed: 2.2ms preprocess, 13.5ms inference, 4.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 13.3ms\n",
- "Speed: 2.3ms preprocess, 13.3ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.6ms\n",
- "Speed: 2.3ms preprocess, 8.6ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.8ms\n",
- "Speed: 3.8ms preprocess, 8.8ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 50%|████▉ | 132/266 [00:04<00:04, 31.90it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 8.6ms\n",
- "Speed: 2.2ms preprocess, 8.6ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.7ms\n",
- "Speed: 2.3ms preprocess, 9.7ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.8ms\n",
- "Speed: 2.0ms preprocess, 8.8ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.6ms\n",
- "Speed: 3.3ms preprocess, 8.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 51%|█████ | 136/266 [00:04<00:04, 32.36it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 13.6ms\n",
- "Speed: 2.1ms preprocess, 13.6ms inference, 5.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 7.1ms\n",
- "Speed: 2.4ms preprocess, 7.1ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.0ms\n",
- "Speed: 2.2ms preprocess, 8.0ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 11.1ms\n",
- "Speed: 2.2ms preprocess, 11.1ms inference, 3.6ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 53%|█████▎ | 140/266 [00:04<00:03, 31.97it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.8ms\n",
- "Speed: 2.3ms preprocess, 9.8ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.1ms\n",
- "Speed: 2.0ms preprocess, 9.1ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 10.9ms\n",
- "Speed: 2.3ms preprocess, 10.9ms inference, 5.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.0ms\n",
- "Speed: 4.5ms preprocess, 9.0ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 54%|█████▍ | 144/266 [00:04<00:03, 31.26it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.0ms\n",
- "Speed: 2.0ms preprocess, 9.0ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 9.3ms\n",
- "Speed: 2.3ms preprocess, 9.3ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.0ms\n",
- "Speed: 2.5ms preprocess, 8.0ms inference, 4.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 20.6ms\n",
- "Speed: 2.7ms preprocess, 20.6ms inference, 5.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 56%|█████▌ | 148/266 [00:04<00:03, 30.48it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 21.8ms\n",
- "Speed: 2.2ms preprocess, 21.8ms inference, 5.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 21.7ms\n",
- "Speed: 3.4ms preprocess, 21.7ms inference, 6.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 9.3ms\n",
- "Speed: 2.2ms preprocess, 9.3ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 10.4ms\n",
- "Speed: 2.7ms preprocess, 10.4ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 57%|█████▋ | 152/266 [00:04<00:04, 28.35it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 8.2ms\n",
- "Speed: 2.5ms preprocess, 8.2ms inference, 3.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 10.3ms\n",
- "Speed: 2.7ms preprocess, 10.3ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 9.6ms\n",
- "Speed: 2.3ms preprocess, 9.6ms inference, 4.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 58%|█████▊ | 155/266 [00:04<00:03, 28.66it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.5ms\n",
- "Speed: 2.2ms preprocess, 8.5ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 20.5ms\n",
- "Speed: 2.7ms preprocess, 20.5ms inference, 4.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 10.2ms\n",
- "Speed: 3.4ms preprocess, 10.2ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 59%|█████▉ | 158/266 [00:05<00:03, 28.26it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 19.0ms\n",
- "Speed: 2.3ms preprocess, 19.0ms inference, 4.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.5ms\n",
- "Speed: 2.1ms preprocess, 9.5ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 18.9ms\n",
- "Speed: 2.3ms preprocess, 18.9ms inference, 5.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 61%|██████ | 161/266 [00:05<00:03, 27.45it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 7.5ms\n",
- "Speed: 2.8ms preprocess, 7.5ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 20.7ms\n",
- "Speed: 2.8ms preprocess, 20.7ms inference, 5.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.8ms\n",
- "Speed: 2.4ms preprocess, 8.8ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 62%|██████▏ | 164/266 [00:05<00:03, 27.53it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 14.8ms\n",
- "Speed: 2.1ms preprocess, 14.8ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 9.3ms\n",
- "Speed: 2.0ms preprocess, 9.3ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 14.1ms\n",
- "Speed: 2.4ms preprocess, 14.1ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 63%|██████▎ | 167/266 [00:05<00:03, 27.82it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 19.2ms\n",
- "Speed: 3.1ms preprocess, 19.2ms inference, 4.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.1ms\n",
- "Speed: 1.8ms preprocess, 8.1ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 20.1ms\n",
- "Speed: 1.9ms preprocess, 20.1ms inference, 4.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 64%|██████▍ | 170/266 [00:05<00:03, 27.12it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 6.9ms\n",
- "Speed: 2.1ms preprocess, 6.9ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.6ms\n",
- "Speed: 1.9ms preprocess, 8.6ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.7ms\n",
- "Speed: 2.0ms preprocess, 8.7ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 9.3ms\n",
- "Speed: 2.2ms preprocess, 9.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 65%|██████▌ | 174/266 [00:05<00:03, 29.65it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 9.4ms\n",
- "Speed: 2.2ms preprocess, 9.4ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 9.6ms\n",
- "Speed: 2.4ms preprocess, 9.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.3ms\n",
- "Speed: 3.2ms preprocess, 7.3ms inference, 3.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 20.4ms\n",
- "Speed: 2.1ms preprocess, 20.4ms inference, 4.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 67%|██████▋ | 178/266 [00:05<00:02, 29.89it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 8.9ms\n",
- "Speed: 2.3ms preprocess, 8.9ms inference, 4.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 19.3ms\n",
- "Speed: 2.0ms preprocess, 19.3ms inference, 5.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.1ms\n",
- "Speed: 2.2ms preprocess, 7.1ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 68%|██████▊ | 181/266 [00:05<00:02, 29.58it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 8.1ms\n",
- "Speed: 2.6ms preprocess, 8.1ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 12.5ms\n",
- "Speed: 4.2ms preprocess, 12.5ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.7ms\n",
- "Speed: 2.2ms preprocess, 8.7ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.1ms\n",
- "Speed: 2.5ms preprocess, 7.1ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 70%|██████▉ | 185/266 [00:05<00:02, 30.62it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 19.9ms\n",
- "Speed: 2.7ms preprocess, 19.9ms inference, 4.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 9.5ms\n",
- "Speed: 2.1ms preprocess, 9.5ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 9.2ms\n",
- "Speed: 2.4ms preprocess, 9.2ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 20.3ms\n",
- "Speed: 2.3ms preprocess, 20.3ms inference, 4.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 71%|███████ | 189/266 [00:06<00:02, 29.67it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 9.3ms\n",
- "Speed: 2.1ms preprocess, 9.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 19.3ms\n",
- "Speed: 4.9ms preprocess, 19.3ms inference, 4.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 9.0ms\n",
- "Speed: 2.3ms preprocess, 9.0ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 72%|███████▏ | 192/266 [00:06<00:02, 29.48it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 9.8ms\n",
- "Speed: 2.1ms preprocess, 9.8ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 9.4ms\n",
- "Speed: 2.1ms preprocess, 9.4ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 18.7ms\n",
- "Speed: 2.0ms preprocess, 18.7ms inference, 5.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 73%|███████▎ | 195/266 [00:06<00:02, 29.50it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 7.4ms\n",
- "Speed: 3.1ms preprocess, 7.4ms inference, 6.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.5ms\n",
- "Speed: 2.2ms preprocess, 7.5ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.3ms\n",
- "Speed: 2.6ms preprocess, 8.3ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 20.0ms\n",
- "Speed: 3.2ms preprocess, 20.0ms inference, 5.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 75%|███████▍ | 199/266 [00:06<00:02, 29.58it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 19.6ms\n",
- "Speed: 2.0ms preprocess, 19.6ms inference, 4.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.5ms\n",
- "Speed: 2.4ms preprocess, 8.5ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.7ms\n",
- "Speed: 2.3ms preprocess, 8.7ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.4ms\n",
- "Speed: 2.5ms preprocess, 7.4ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 76%|███████▋ | 203/266 [00:06<00:02, 30.25it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 7.9ms\n",
- "Speed: 2.4ms preprocess, 7.9ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 18.5ms\n",
- "Speed: 2.1ms preprocess, 18.5ms inference, 6.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.4ms\n",
- "Speed: 2.1ms preprocess, 7.4ms inference, 3.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 20.2ms\n",
- "Speed: 2.8ms preprocess, 20.2ms inference, 4.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 78%|███████▊ | 207/266 [00:06<00:02, 29.44it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 19.0ms\n",
- "Speed: 3.2ms preprocess, 19.0ms inference, 4.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 18.4ms\n",
- "Speed: 2.3ms preprocess, 18.4ms inference, 4.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.4ms\n",
- "Speed: 2.7ms preprocess, 8.4ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 79%|███████▉ | 210/266 [00:06<00:01, 28.44it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.5ms\n",
- "Speed: 2.1ms preprocess, 8.5ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 11.2ms\n",
- "Speed: 4.0ms preprocess, 11.2ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 17.4ms\n",
- "Speed: 2.4ms preprocess, 17.4ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 80%|████████ | 213/266 [00:06<00:01, 28.37it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.7ms\n",
- "Speed: 2.0ms preprocess, 8.7ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 11.3ms\n",
- "Speed: 3.3ms preprocess, 11.3ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.0ms\n",
- "Speed: 2.2ms preprocess, 8.0ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.4ms\n",
- "Speed: 2.2ms preprocess, 8.4ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 82%|████████▏ | 217/266 [00:07<00:01, 29.21it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 9.2ms\n",
- "Speed: 2.1ms preprocess, 9.2ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.6ms\n",
- "Speed: 2.1ms preprocess, 8.6ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.1ms\n",
- "Speed: 2.2ms preprocess, 8.1ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.7ms\n",
- "Speed: 3.0ms preprocess, 7.7ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 83%|████████▎ | 221/266 [00:07<00:01, 30.92it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 18.9ms\n",
- "Speed: 2.5ms preprocess, 18.9ms inference, 6.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.2ms\n",
- "Speed: 2.1ms preprocess, 8.2ms inference, 6.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 19.1ms\n",
- "Speed: 2.3ms preprocess, 19.1ms inference, 5.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.8ms\n",
- "Speed: 2.2ms preprocess, 7.8ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 85%|████████▍ | 225/266 [00:07<00:01, 29.50it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 9.4ms\n",
- "Speed: 2.0ms preprocess, 9.4ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 8.9ms\n",
- "Speed: 2.3ms preprocess, 8.9ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 21.2ms\n",
- "Speed: 2.6ms preprocess, 21.2ms inference, 4.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 86%|████████▌ | 228/266 [00:07<00:01, 29.20it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.5ms\n",
- "Speed: 2.5ms preprocess, 9.5ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 10.7ms\n",
- "Speed: 2.2ms preprocess, 10.7ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 10.2ms\n",
- "Speed: 2.1ms preprocess, 10.2ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 9.4ms\n",
- "Speed: 1.8ms preprocess, 9.4ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 87%|████████▋ | 232/266 [00:07<00:01, 30.25it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.6ms\n",
- "Speed: 2.1ms preprocess, 9.6ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 15.4ms\n",
- "Speed: 2.1ms preprocess, 15.4ms inference, 4.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.9ms\n",
- "Speed: 1.9ms preprocess, 7.9ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 9.3ms\n",
- "Speed: 3.7ms preprocess, 9.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 89%|████████▊ | 236/266 [00:07<00:00, 30.45it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 13.6ms\n",
- "Speed: 2.2ms preprocess, 13.6ms inference, 5.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 7.0ms\n",
- "Speed: 2.3ms preprocess, 7.0ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 10.0ms\n",
- "Speed: 2.1ms preprocess, 10.0ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.0ms\n",
- "Speed: 2.4ms preprocess, 8.0ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 90%|█████████ | 240/266 [00:07<00:00, 30.81it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 7.4ms\n",
- "Speed: 2.0ms preprocess, 7.4ms inference, 3.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.3ms\n",
- "Speed: 2.6ms preprocess, 7.3ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 15.6ms\n",
- "Speed: 2.2ms preprocess, 15.6ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 13.4ms\n",
- "Speed: 1.9ms preprocess, 13.4ms inference, 4.6ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 92%|█████████▏| 244/266 [00:07<00:00, 30.77it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 13.7ms\n",
- "Speed: 2.1ms preprocess, 13.7ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 14.2ms\n",
- "Speed: 2.1ms preprocess, 14.2ms inference, 3.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.0ms\n",
- "Speed: 4.1ms preprocess, 8.0ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 13.3ms\n",
- "Speed: 2.6ms preprocess, 13.3ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 93%|█████████▎| 248/266 [00:08<00:00, 30.21it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 8.5ms\n",
- "Speed: 2.1ms preprocess, 8.5ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.9ms\n",
- "Speed: 2.1ms preprocess, 7.9ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.0ms\n",
- "Speed: 1.9ms preprocess, 8.0ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 13.0ms\n",
- "Speed: 2.5ms preprocess, 13.0ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 95%|█████████▍| 252/266 [00:08<00:00, 31.39it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 9.1ms\n",
- "Speed: 2.1ms preprocess, 9.1ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 1 window regulator assembly, 7.1ms\n",
- "Speed: 1.9ms preprocess, 7.1ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.3ms\n",
- "Speed: 2.5ms preprocess, 14.3ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.2ms\n",
- "Speed: 2.2ms preprocess, 7.2ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 96%|█████████▌| 256/266 [00:08<00:00, 32.68it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 14.2ms\n",
- "Speed: 2.2ms preprocess, 14.2ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.0ms\n",
- "Speed: 1.8ms preprocess, 8.0ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.1ms\n",
- "Speed: 2.0ms preprocess, 8.1ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.7ms\n",
- "Speed: 2.8ms preprocess, 7.7ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 98%|█████████▊| 260/266 [00:08<00:00, 33.82it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 8.1ms\n",
- "Speed: 2.7ms preprocess, 8.1ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.8ms\n",
- "Speed: 2.1ms preprocess, 7.8ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.8ms\n",
- "Speed: 2.2ms preprocess, 7.8ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 11.0ms\n",
- "Speed: 2.1ms preprocess, 11.0ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 99%|█████████▉| 264/266 [00:08<00:00, 34.23it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 8.9ms\n",
- "Speed: 2.4ms preprocess, 8.9ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.2ms\n",
- "Speed: 2.1ms preprocess, 8.2ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185423.mp4: 100%|██████████| 266/266 [00:08<00:00, 30.85it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Processing video: 20250624_185440.mp4\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n",
- "Annotating 20250624_185440.mp4: 0%| | 0/174 [00:00, ?it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.1ms\n",
- "Speed: 2.2ms preprocess, 9.1ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 11.2ms\n",
- "Speed: 2.2ms preprocess, 11.2ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 1%| | 2/174 [00:00<00:08, 19.49it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.5ms\n",
- "Speed: 2.3ms preprocess, 8.5ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 11.4ms\n",
- "Speed: 2.6ms preprocess, 11.4ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.8ms\n",
- "Speed: 2.4ms preprocess, 9.8ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.5ms\n",
- "Speed: 3.7ms preprocess, 9.5ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 3%|▎ | 6/174 [00:00<00:06, 27.47it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.8ms\n",
- "Speed: 1.9ms preprocess, 8.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.6ms\n",
- "Speed: 2.1ms preprocess, 7.6ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.8ms\n",
- "Speed: 2.5ms preprocess, 7.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.7ms\n",
- "Speed: 2.1ms preprocess, 9.7ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 6%|▌ | 10/174 [00:00<00:05, 31.90it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 7.6ms\n",
- "Speed: 2.1ms preprocess, 7.6ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.6ms\n",
- "Speed: 2.5ms preprocess, 8.6ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 19.3ms\n",
- "Speed: 2.0ms preprocess, 19.3ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 19.3ms\n",
- "Speed: 2.2ms preprocess, 19.3ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 8%|▊ | 14/174 [00:00<00:05, 31.85it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 7.8ms\n",
- "Speed: 2.0ms preprocess, 7.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 20.1ms\n",
- "Speed: 2.3ms preprocess, 20.1ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.8ms\n",
- "Speed: 2.2ms preprocess, 9.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.2ms\n",
- "Speed: 2.6ms preprocess, 7.2ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 10%|█ | 18/174 [00:00<00:04, 32.31it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 7.9ms\n",
- "Speed: 2.3ms preprocess, 7.9ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.2ms\n",
- "Speed: 2.2ms preprocess, 8.2ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.2ms\n",
- "Speed: 2.4ms preprocess, 7.2ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 19.5ms\n",
- "Speed: 2.4ms preprocess, 19.5ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 13%|█▎ | 22/174 [00:00<00:04, 33.13it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.0ms\n",
- "Speed: 2.7ms preprocess, 8.0ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.0ms\n",
- "Speed: 2.1ms preprocess, 7.0ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.4ms\n",
- "Speed: 2.3ms preprocess, 9.4ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.9ms\n",
- "Speed: 2.1ms preprocess, 8.9ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 15%|█▍ | 26/174 [00:00<00:04, 34.41it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.6ms\n",
- "Speed: 2.3ms preprocess, 8.6ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.5ms\n",
- "Speed: 2.2ms preprocess, 7.5ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 20.1ms\n",
- "Speed: 2.2ms preprocess, 20.1ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 18.7ms\n",
- "Speed: 2.2ms preprocess, 18.7ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 17%|█▋ | 30/174 [00:00<00:04, 32.97it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.1ms\n",
- "Speed: 2.9ms preprocess, 8.1ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.7ms\n",
- "Speed: 2.7ms preprocess, 9.7ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.7ms\n",
- "Speed: 2.1ms preprocess, 7.7ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 8.7ms\n",
- "Speed: 2.0ms preprocess, 8.7ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 20%|█▉ | 34/174 [00:01<00:04, 33.85it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 control unit, 19.6ms\n",
- "Speed: 2.3ms preprocess, 19.6ms inference, 4.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 8.9ms\n",
- "Speed: 2.4ms preprocess, 8.9ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 9.4ms\n",
- "Speed: 2.2ms preprocess, 9.4ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 8.2ms\n",
- "Speed: 2.1ms preprocess, 8.2ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 22%|██▏ | 38/174 [00:01<00:04, 32.90it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 control unit, 20.4ms\n",
- "Speed: 3.7ms preprocess, 20.4ms inference, 5.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 15.7ms\n",
- "Speed: 2.4ms preprocess, 15.7ms inference, 4.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 21.8ms\n",
- "Speed: 2.4ms preprocess, 21.8ms inference, 4.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 9.9ms\n",
- "Speed: 2.4ms preprocess, 9.9ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 24%|██▍ | 42/174 [00:01<00:04, 29.54it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 control unit, 8.1ms\n",
- "Speed: 2.7ms preprocess, 8.1ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 8.2ms\n",
- "Speed: 2.7ms preprocess, 8.2ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 20.2ms\n",
- "Speed: 2.5ms preprocess, 20.2ms inference, 4.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 8.6ms\n",
- "Speed: 2.2ms preprocess, 8.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 26%|██▋ | 46/174 [00:01<00:04, 29.70it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 19.2ms\n",
- "Speed: 2.3ms preprocess, 19.2ms inference, 4.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 19.8ms\n",
- "Speed: 2.1ms preprocess, 19.8ms inference, 5.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.2ms\n",
- "Speed: 2.2ms preprocess, 7.2ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.7ms\n",
- "Speed: 2.5ms preprocess, 8.7ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 29%|██▊ | 50/174 [00:01<00:04, 29.16it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.2ms\n",
- "Speed: 2.2ms preprocess, 8.2ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.4ms preprocess, 8.4ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.2ms\n",
- "Speed: 2.0ms preprocess, 9.2ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.5ms\n",
- "Speed: 2.2ms preprocess, 8.5ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 31%|███ | 54/174 [00:01<00:03, 30.68it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 2.4ms preprocess, 7.5ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.0ms\n",
- "Speed: 2.3ms preprocess, 9.0ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.3ms\n",
- "Speed: 2.1ms preprocess, 7.3ms inference, 3.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.2ms\n",
- "Speed: 2.3ms preprocess, 7.2ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 33%|███▎ | 58/174 [00:01<00:03, 31.43it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.3ms\n",
- "Speed: 2.2ms preprocess, 7.3ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 2.5ms preprocess, 7.8ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 1 loud speaker, 7.7ms\n",
- "Speed: 2.2ms preprocess, 7.7ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.1ms\n",
- "Speed: 2.1ms preprocess, 7.1ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 36%|███▌ | 62/174 [00:01<00:03, 32.45it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.0ms preprocess, 8.4ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.4ms\n",
- "Speed: 2.1ms preprocess, 9.4ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.8ms\n",
- "Speed: 2.3ms preprocess, 10.8ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.5ms\n",
- "Speed: 2.2ms preprocess, 8.5ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 38%|███▊ | 66/174 [00:02<00:03, 32.78it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 2.1ms preprocess, 8.9ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 12.3ms\n",
- "Speed: 2.4ms preprocess, 12.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.7ms\n",
- "Speed: 2.5ms preprocess, 8.7ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.1ms\n",
- "Speed: 2.1ms preprocess, 14.1ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 40%|████ | 70/174 [00:02<00:03, 32.56it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.8ms\n",
- "Speed: 2.1ms preprocess, 9.8ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.0ms\n",
- "Speed: 2.3ms preprocess, 8.0ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.3ms\n",
- "Speed: 2.2ms preprocess, 9.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.2ms\n",
- "Speed: 2.1ms preprocess, 9.2ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 43%|████▎ | 74/174 [00:02<00:03, 32.89it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.4ms\n",
- "Speed: 2.9ms preprocess, 9.4ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 2.5ms preprocess, 8.9ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 2.0ms preprocess, 8.9ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 2.2ms preprocess, 8.6ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 45%|████▍ | 78/174 [00:02<00:02, 33.30it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.1ms\n",
- "Speed: 2.0ms preprocess, 9.1ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 15.6ms\n",
- "Speed: 2.8ms preprocess, 15.6ms inference, 3.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.0ms\n",
- "Speed: 2.3ms preprocess, 7.0ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.2ms\n",
- "Speed: 2.3ms preprocess, 8.2ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 47%|████▋ | 82/174 [00:02<00:02, 32.81it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.4ms preprocess, 8.4ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.2ms\n",
- "Speed: 2.1ms preprocess, 7.2ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.1ms\n",
- "Speed: 2.2ms preprocess, 8.1ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 2.0ms preprocess, 7.8ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 49%|████▉ | 86/174 [00:02<00:02, 33.33it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.0ms\n",
- "Speed: 2.3ms preprocess, 9.0ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.6ms\n",
- "Speed: 2.2ms preprocess, 9.6ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 11.3ms\n",
- "Speed: 2.1ms preprocess, 11.3ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 11.0ms\n",
- "Speed: 2.2ms preprocess, 11.0ms inference, 3.6ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 52%|█████▏ | 90/174 [00:02<00:02, 33.08it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.0ms\n",
- "Speed: 2.3ms preprocess, 9.0ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.1ms\n",
- "Speed: 2.3ms preprocess, 8.1ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 2.7ms preprocess, 8.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.0ms\n",
- "Speed: 2.1ms preprocess, 14.0ms inference, 3.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 54%|█████▍ | 94/174 [00:02<00:02, 32.71it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 1.9ms preprocess, 8.9ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.0ms\n",
- "Speed: 2.4ms preprocess, 10.0ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.7ms\n",
- "Speed: 2.0ms preprocess, 8.7ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.7ms\n",
- "Speed: 2.1ms preprocess, 9.7ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 56%|█████▋ | 98/174 [00:03<00:02, 32.92it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 2.2ms preprocess, 8.3ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.2ms\n",
- "Speed: 2.1ms preprocess, 8.2ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.2ms\n",
- "Speed: 2.7ms preprocess, 7.2ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.3ms\n",
- "Speed: 2.0ms preprocess, 14.3ms inference, 6.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 59%|█████▊ | 102/174 [00:03<00:02, 32.66it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.5ms\n",
- "Speed: 2.0ms preprocess, 8.5ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.0ms\n",
- "Speed: 2.3ms preprocess, 14.0ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.1ms\n",
- "Speed: 2.1ms preprocess, 9.1ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.4ms\n",
- "Speed: 2.4ms preprocess, 7.4ms inference, 4.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 61%|██████ | 106/174 [00:03<00:02, 32.62it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.1ms\n",
- "Speed: 2.5ms preprocess, 7.1ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.5ms\n",
- "Speed: 2.1ms preprocess, 14.5ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 6.7ms\n",
- "Speed: 2.0ms preprocess, 6.7ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.1ms\n",
- "Speed: 2.0ms preprocess, 8.1ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 63%|██████▎ | 110/174 [00:03<00:01, 33.39it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 13.6ms\n",
- "Speed: 2.1ms preprocess, 13.6ms inference, 3.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.2ms preprocess, 7.9ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 2.2ms preprocess, 8.6ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.0ms\n",
- "Speed: 2.1ms preprocess, 9.0ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 66%|██████▌ | 114/174 [00:03<00:01, 33.41it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 14.4ms\n",
- "Speed: 1.9ms preprocess, 14.4ms inference, 4.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.2ms\n",
- "Speed: 1.9ms preprocess, 7.2ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 2.4ms preprocess, 8.6ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.4ms\n",
- "Speed: 2.2ms preprocess, 9.4ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 68%|██████▊ | 118/174 [00:03<00:01, 33.44it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.2ms\n",
- "Speed: 2.1ms preprocess, 9.2ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.0ms\n",
- "Speed: 2.4ms preprocess, 8.0ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.5ms\n",
- "Speed: 2.6ms preprocess, 14.5ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.8ms\n",
- "Speed: 2.4ms preprocess, 8.8ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 70%|███████ | 122/174 [00:03<00:01, 33.38it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 15.9ms\n",
- "Speed: 2.1ms preprocess, 15.9ms inference, 4.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.5ms\n",
- "Speed: 3.4ms preprocess, 10.5ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.6ms\n",
- "Speed: 2.1ms preprocess, 9.6ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 16.2ms\n",
- "Speed: 2.3ms preprocess, 16.2ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 72%|███████▏ | 126/174 [00:03<00:01, 31.63it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.8ms\n",
- "Speed: 2.2ms preprocess, 8.8ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.2ms\n",
- "Speed: 2.1ms preprocess, 8.2ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.0ms\n",
- "Speed: 2.1ms preprocess, 9.0ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.2ms preprocess, 7.9ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 75%|███████▍ | 130/174 [00:04<00:01, 32.48it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 1.9ms preprocess, 7.7ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.3ms\n",
- "Speed: 2.0ms preprocess, 9.3ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 13.9ms\n",
- "Speed: 2.3ms preprocess, 13.9ms inference, 4.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.4ms\n",
- "Speed: 2.6ms preprocess, 9.4ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 77%|███████▋ | 134/174 [00:04<00:01, 32.54it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 15.0ms\n",
- "Speed: 2.1ms preprocess, 15.0ms inference, 4.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.5ms\n",
- "Speed: 2.2ms preprocess, 8.5ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.0ms\n",
- "Speed: 1.9ms preprocess, 9.0ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 2.1ms preprocess, 8.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 79%|███████▉ | 138/174 [00:04<00:01, 32.41it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 2.0ms preprocess, 8.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.1ms preprocess, 7.9ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.2ms\n",
- "Speed: 2.2ms preprocess, 8.2ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 13.6ms\n",
- "Speed: 2.1ms preprocess, 13.6ms inference, 4.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 82%|████████▏ | 142/174 [00:04<00:00, 32.49it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 control unit, 1 loud speaker, 7.2ms\n",
- "Speed: 2.5ms preprocess, 7.2ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.0ms\n",
- "Speed: 3.1ms preprocess, 8.0ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 1 loud speaker, 9.5ms\n",
- "Speed: 2.1ms preprocess, 9.5ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.9ms\n",
- "Speed: 3.4ms preprocess, 9.9ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 84%|████████▍ | 146/174 [00:04<00:00, 32.61it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 14.7ms\n",
- "Speed: 2.1ms preprocess, 14.7ms inference, 4.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.1ms\n",
- "Speed: 2.4ms preprocess, 8.1ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.4ms preprocess, 8.4ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.2ms preprocess, 7.9ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 86%|████████▌ | 150/174 [00:04<00:00, 32.51it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 12.1ms\n",
- "Speed: 2.0ms preprocess, 12.1ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.4ms\n",
- "Speed: 2.3ms preprocess, 10.4ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.6ms\n",
- "Speed: 2.1ms preprocess, 9.6ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.2ms\n",
- "Speed: 2.3ms preprocess, 8.2ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 89%|████████▊ | 154/174 [00:04<00:00, 31.74it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.2ms\n",
- "Speed: 1.8ms preprocess, 9.2ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.6ms\n",
- "Speed: 2.4ms preprocess, 9.6ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.7ms\n",
- "Speed: 2.2ms preprocess, 8.7ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 2.4ms preprocess, 7.8ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 91%|█████████ | 158/174 [00:04<00:00, 32.24it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 2.3ms preprocess, 8.3ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 3.4ms preprocess, 7.5ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.8ms\n",
- "Speed: 1.9ms preprocess, 9.8ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.8ms\n",
- "Speed: 2.4ms preprocess, 8.8ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 93%|█████████▎| 162/174 [00:05<00:00, 32.55it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.0ms\n",
- "Speed: 1.9ms preprocess, 9.0ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.1ms preprocess, 8.4ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.1ms\n",
- "Speed: 2.2ms preprocess, 14.1ms inference, 5.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 2.2ms preprocess, 7.8ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 95%|█████████▌| 166/174 [00:05<00:00, 32.49it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 1.9ms preprocess, 7.9ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 2.6ms preprocess, 7.5ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 2.2ms preprocess, 8.9ms inference, 3.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 7.6ms\n",
- "Speed: 2.5ms preprocess, 7.6ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 98%|█████████▊| 170/174 [00:05<00:00, 33.24it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 control unit, 9.1ms\n",
- "Speed: 2.0ms preprocess, 9.1ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 9.1ms\n",
- "Speed: 3.3ms preprocess, 9.1ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.9ms\n",
- "Speed: 2.1ms preprocess, 8.9ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.4ms\n",
- "Speed: 2.2ms preprocess, 10.4ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185440.mp4: 100%|██████████| 174/174 [00:05<00:00, 32.36it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Processing video: 20250624_185451.mp4\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n",
- "Annotating 20250624_185451.mp4: 0%| | 0/206 [00:00, ?it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.0ms\n",
- "Speed: 2.4ms preprocess, 8.0ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 19.1ms\n",
- "Speed: 2.5ms preprocess, 19.1ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 1%| | 2/206 [00:00<00:11, 18.06it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 22.1ms\n",
- "Speed: 2.8ms preprocess, 22.1ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.2ms preprocess, 9.0ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.6ms\n",
- "Speed: 2.6ms preprocess, 7.6ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 11.6ms\n",
- "Speed: 2.4ms preprocess, 11.6ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 3%|▎ | 6/206 [00:00<00:07, 26.50it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.8ms\n",
- "Speed: 2.2ms preprocess, 8.8ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 19.5ms\n",
- "Speed: 2.4ms preprocess, 19.5ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.5ms\n",
- "Speed: 2.9ms preprocess, 7.5ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.2ms preprocess, 8.7ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 5%|▍ | 10/206 [00:00<00:06, 29.63it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.8ms\n",
- "Speed: 2.1ms preprocess, 9.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 20.2ms\n",
- "Speed: 2.3ms preprocess, 20.2ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.3ms\n",
- "Speed: 2.5ms preprocess, 8.3ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 19.6ms\n",
- "Speed: 2.4ms preprocess, 19.6ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 7%|▋ | 14/206 [00:00<00:06, 30.45it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 7.0ms\n",
- "Speed: 2.8ms preprocess, 7.0ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 19.3ms\n",
- "Speed: 2.8ms preprocess, 19.3ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 6.7ms\n",
- "Speed: 2.0ms preprocess, 6.7ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.1ms preprocess, 8.7ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 9%|▊ | 18/206 [00:00<00:05, 32.03it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.1ms preprocess, 9.0ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.5ms\n",
- "Speed: 2.6ms preprocess, 9.5ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.1ms preprocess, 8.7ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.2ms preprocess, 8.7ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 11%|█ | 22/206 [00:00<00:05, 33.35it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 20.3ms\n",
- "Speed: 2.4ms preprocess, 20.3ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.7ms preprocess, 8.7ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.3ms\n",
- "Speed: 2.0ms preprocess, 7.3ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.6ms\n",
- "Speed: 2.3ms preprocess, 8.6ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 13%|█▎ | 26/206 [00:00<00:05, 33.67it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.3ms\n",
- "Speed: 2.2ms preprocess, 8.3ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 23.3ms\n",
- "Speed: 2.2ms preprocess, 23.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.2ms\n",
- "Speed: 2.4ms preprocess, 10.2ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.9ms\n",
- "Speed: 2.7ms preprocess, 7.9ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 15%|█▍ | 30/206 [00:00<00:05, 33.05it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.3ms\n",
- "Speed: 1.7ms preprocess, 9.3ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.8ms\n",
- "Speed: 2.8ms preprocess, 8.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.1ms\n",
- "Speed: 1.9ms preprocess, 10.1ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.5ms\n",
- "Speed: 2.0ms preprocess, 7.5ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 17%|█▋ | 34/206 [00:01<00:05, 34.01it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 18.7ms\n",
- "Speed: 3.0ms preprocess, 18.7ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.7ms\n",
- "Speed: 2.1ms preprocess, 7.7ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.6ms\n",
- "Speed: 2.2ms preprocess, 9.6ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.0ms\n",
- "Speed: 2.0ms preprocess, 10.0ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 18%|█▊ | 38/206 [00:01<00:04, 33.93it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 20.2ms\n",
- "Speed: 2.2ms preprocess, 20.2ms inference, 6.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 10.1ms\n",
- "Speed: 2.1ms preprocess, 10.1ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 10.1ms\n",
- "Speed: 2.6ms preprocess, 10.1ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 19.8ms\n",
- "Speed: 2.1ms preprocess, 19.8ms inference, 4.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 20%|██ | 42/206 [00:01<00:05, 31.16it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 9.1ms\n",
- "Speed: 2.0ms preprocess, 9.1ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.8ms\n",
- "Speed: 2.5ms preprocess, 7.8ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.2ms\n",
- "Speed: 2.3ms preprocess, 7.2ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.0ms\n",
- "Speed: 2.0ms preprocess, 8.0ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 22%|██▏ | 46/206 [00:01<00:05, 31.86it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 8.1ms\n",
- "Speed: 2.3ms preprocess, 8.1ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.8ms\n",
- "Speed: 2.1ms preprocess, 8.8ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 12.5ms\n",
- "Speed: 2.3ms preprocess, 12.5ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 18.4ms\n",
- "Speed: 4.2ms preprocess, 18.4ms inference, 5.6ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 24%|██▍ | 50/206 [00:01<00:05, 31.14it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 19.3ms\n",
- "Speed: 2.1ms preprocess, 19.3ms inference, 4.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 11.6ms\n",
- "Speed: 2.2ms preprocess, 11.6ms inference, 5.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.0ms\n",
- "Speed: 2.2ms preprocess, 7.0ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.0ms\n",
- "Speed: 2.0ms preprocess, 8.0ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 26%|██▌ | 54/206 [00:01<00:04, 30.73it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 15.3ms\n",
- "Speed: 2.4ms preprocess, 15.3ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.5ms\n",
- "Speed: 2.1ms preprocess, 8.5ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.9ms\n",
- "Speed: 2.1ms preprocess, 7.9ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 20.2ms\n",
- "Speed: 2.4ms preprocess, 20.2ms inference, 4.6ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 28%|██▊ | 58/206 [00:01<00:04, 30.20it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 19.3ms\n",
- "Speed: 2.1ms preprocess, 19.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.7ms\n",
- "Speed: 2.1ms preprocess, 8.7ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.1ms\n",
- "Speed: 1.9ms preprocess, 7.1ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 9.2ms\n",
- "Speed: 1.9ms preprocess, 9.2ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 30%|███ | 62/206 [00:01<00:04, 30.70it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 7.5ms\n",
- "Speed: 2.7ms preprocess, 7.5ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 14.0ms\n",
- "Speed: 2.4ms preprocess, 14.0ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 9.1ms\n",
- "Speed: 2.5ms preprocess, 9.1ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 11.1ms\n",
- "Speed: 2.5ms preprocess, 11.1ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 32%|███▏ | 66/206 [00:02<00:04, 30.31it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 8.5ms\n",
- "Speed: 2.4ms preprocess, 8.5ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.1ms\n",
- "Speed: 2.1ms preprocess, 8.1ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.1ms\n",
- "Speed: 2.5ms preprocess, 8.1ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.6ms\n",
- "Speed: 2.1ms preprocess, 7.6ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 34%|███▍ | 70/206 [00:02<00:04, 30.88it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 9.0ms\n",
- "Speed: 2.0ms preprocess, 9.0ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 14.2ms\n",
- "Speed: 1.9ms preprocess, 14.2ms inference, 4.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 13.0ms\n",
- "Speed: 2.3ms preprocess, 13.0ms inference, 3.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 10.6ms\n",
- "Speed: 1.9ms preprocess, 10.6ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 36%|███▌ | 74/206 [00:02<00:04, 30.58it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 10.8ms\n",
- "Speed: 2.3ms preprocess, 10.8ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 16.9ms\n",
- "Speed: 1.9ms preprocess, 16.9ms inference, 3.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.9ms\n",
- "Speed: 2.2ms preprocess, 7.9ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.4ms\n",
- "Speed: 2.4ms preprocess, 8.4ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 38%|███▊ | 78/206 [00:02<00:04, 30.98it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 15.7ms\n",
- "Speed: 2.1ms preprocess, 15.7ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 22.8ms\n",
- "Speed: 2.9ms preprocess, 22.8ms inference, 5.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 7.7ms\n",
- "Speed: 2.7ms preprocess, 7.7ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 9.1ms\n",
- "Speed: 1.9ms preprocess, 9.1ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 40%|███▉ | 82/206 [00:02<00:04, 29.47it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 Motor, 14.4ms\n",
- "Speed: 2.1ms preprocess, 14.4ms inference, 4.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 14.4ms\n",
- "Speed: 2.0ms preprocess, 14.4ms inference, 3.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.4ms\n",
- "Speed: 2.3ms preprocess, 8.4ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 14.2ms\n",
- "Speed: 2.1ms preprocess, 14.2ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 42%|████▏ | 86/206 [00:02<00:04, 29.41it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.0ms\n",
- "Speed: 2.3ms preprocess, 8.0ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 9.6ms\n",
- "Speed: 2.5ms preprocess, 9.6ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 8.3ms\n",
- "Speed: 2.0ms preprocess, 8.3ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.7ms\n",
- "Speed: 1.9ms preprocess, 7.7ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 44%|████▎ | 90/206 [00:02<00:03, 31.27it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.0ms\n",
- "Speed: 2.0ms preprocess, 8.0ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.4ms\n",
- "Speed: 2.1ms preprocess, 14.4ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.0ms preprocess, 9.0ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.5ms\n",
- "Speed: 4.1ms preprocess, 7.5ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 46%|████▌ | 94/206 [00:03<00:03, 32.41it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 14.4ms\n",
- "Speed: 2.0ms preprocess, 14.4ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.1ms preprocess, 8.7ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 12.5ms\n",
- "Speed: 2.0ms preprocess, 12.5ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.8ms\n",
- "Speed: 3.8ms preprocess, 8.8ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 48%|████▊ | 98/206 [00:03<00:03, 32.98it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 13.4ms\n",
- "Speed: 1.8ms preprocess, 13.4ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 9.0ms\n",
- "Speed: 2.3ms preprocess, 9.0ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 13.8ms\n",
- "Speed: 2.3ms preprocess, 13.8ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.5ms\n",
- "Speed: 2.1ms preprocess, 7.5ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 50%|████▉ | 102/206 [00:03<00:03, 32.77it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.3ms\n",
- "Speed: 2.4ms preprocess, 9.3ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.8ms\n",
- "Speed: 3.8ms preprocess, 14.8ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 13.4ms\n",
- "Speed: 2.0ms preprocess, 13.4ms inference, 4.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 11.4ms\n",
- "Speed: 2.5ms preprocess, 11.4ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 51%|█████▏ | 106/206 [00:03<00:03, 32.17it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.0ms preprocess, 9.0ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.3ms\n",
- "Speed: 2.4ms preprocess, 9.3ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.1ms\n",
- "Speed: 2.1ms preprocess, 8.1ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 13.5ms\n",
- "Speed: 2.5ms preprocess, 13.5ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 53%|█████▎ | 110/206 [00:03<00:02, 33.21it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.6ms\n",
- "Speed: 2.0ms preprocess, 8.6ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 11.8ms\n",
- "Speed: 1.8ms preprocess, 11.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 19.3ms\n",
- "Speed: 2.3ms preprocess, 19.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.2ms preprocess, 8.7ms inference, 1.6ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 55%|█████▌ | 114/206 [00:03<00:02, 33.16it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 13.4ms\n",
- "Speed: 2.8ms preprocess, 13.4ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.9ms\n",
- "Speed: 2.8ms preprocess, 7.9ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 19.0ms\n",
- "Speed: 2.6ms preprocess, 19.0ms inference, 5.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 10.4ms\n",
- "Speed: 3.1ms preprocess, 10.4ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 57%|█████▋ | 118/206 [00:03<00:02, 32.15it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 19.6ms\n",
- "Speed: 2.8ms preprocess, 19.6ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 2.2ms preprocess, 8.7ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 8.9ms\n",
- "Speed: 2.1ms preprocess, 8.9ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 8.3ms\n",
- "Speed: 2.1ms preprocess, 8.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 59%|█████▉ | 122/206 [00:03<00:02, 32.62it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 9.1ms\n",
- "Speed: 2.2ms preprocess, 9.1ms inference, 1.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.6ms\n",
- "Speed: 1.9ms preprocess, 7.6ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.9ms\n",
- "Speed: 2.2ms preprocess, 8.9ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 14.2ms\n",
- "Speed: 2.2ms preprocess, 14.2ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 61%|██████ | 126/206 [00:03<00:02, 33.15it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 control unit, 8.1ms\n",
- "Speed: 3.8ms preprocess, 8.1ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 9.8ms\n",
- "Speed: 2.0ms preprocess, 9.8ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 9.5ms\n",
- "Speed: 2.1ms preprocess, 9.5ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 control unit, 10.0ms\n",
- "Speed: 2.1ms preprocess, 10.0ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 63%|██████▎ | 130/206 [00:04<00:02, 33.09it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.3ms\n",
- "Speed: 2.2ms preprocess, 8.3ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 11.9ms\n",
- "Speed: 3.0ms preprocess, 11.9ms inference, 1.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 20.2ms\n",
- "Speed: 3.9ms preprocess, 20.2ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.8ms\n",
- "Speed: 2.4ms preprocess, 8.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 65%|██████▌ | 134/206 [00:04<00:02, 32.82it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 12.1ms\n",
- "Speed: 1.8ms preprocess, 12.1ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.3ms\n",
- "Speed: 2.0ms preprocess, 9.3ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.8ms\n",
- "Speed: 2.2ms preprocess, 8.8ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.6ms\n",
- "Speed: 2.9ms preprocess, 7.6ms inference, 0.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 67%|██████▋ | 138/206 [00:04<00:02, 33.47it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 13.9ms\n",
- "Speed: 2.3ms preprocess, 13.9ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.9ms\n",
- "Speed: 2.3ms preprocess, 7.9ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.7ms\n",
- "Speed: 2.0ms preprocess, 7.7ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 14.6ms\n",
- "Speed: 2.2ms preprocess, 14.6ms inference, 5.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 69%|██████▉ | 142/206 [00:04<00:01, 33.11it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 9.1ms\n",
- "Speed: 2.3ms preprocess, 9.1ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 15.1ms\n",
- "Speed: 2.3ms preprocess, 15.1ms inference, 4.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.0ms\n",
- "Speed: 2.2ms preprocess, 14.0ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.6ms\n",
- "Speed: 2.2ms preprocess, 7.6ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 71%|███████ | 146/206 [00:04<00:01, 32.61it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.7ms\n",
- "Speed: 1.9ms preprocess, 8.7ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 Motor, 15.1ms\n",
- "Speed: 2.2ms preprocess, 15.1ms inference, 3.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.2ms\n",
- "Speed: 2.2ms preprocess, 9.2ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 9.0ms\n",
- "Speed: 2.2ms preprocess, 9.0ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 73%|███████▎ | 150/206 [00:04<00:01, 32.61it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 window regulator assembly, 8.2ms\n",
- "Speed: 2.2ms preprocess, 8.2ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.9ms\n",
- "Speed: 2.7ms preprocess, 7.9ms inference, 4.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 7.8ms\n",
- "Speed: 2.1ms preprocess, 7.8ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.1ms\n",
- "Speed: 2.5ms preprocess, 8.1ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 75%|███████▍ | 154/206 [00:04<00:01, 33.26it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 8.3ms\n",
- "Speed: 2.1ms preprocess, 8.3ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 window regulator assembly, 8.4ms\n",
- "Speed: 2.0ms preprocess, 8.4ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 7.2ms\n",
- "Speed: 2.2ms preprocess, 7.2ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 8.5ms\n",
- "Speed: 2.0ms preprocess, 8.5ms inference, 0.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 77%|███████▋ | 158/206 [00:04<00:01, 34.73it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 (no detections), 15.0ms\n",
- "Speed: 2.1ms preprocess, 15.0ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 14.5ms\n",
- "Speed: 2.4ms preprocess, 14.5ms inference, 1.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 13.7ms\n",
- "Speed: 3.2ms preprocess, 13.7ms inference, 1.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 13.6ms\n",
- "Speed: 2.4ms preprocess, 13.6ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 79%|███████▊ | 162/206 [00:05<00:01, 32.96it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 13.9ms\n",
- "Speed: 2.2ms preprocess, 13.9ms inference, 4.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 2.0ms preprocess, 8.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.2ms\n",
- "Speed: 4.8ms preprocess, 10.2ms inference, 4.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 2.1ms preprocess, 7.7ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 81%|████████ | 166/206 [00:05<00:01, 32.02it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 20.0ms\n",
- "Speed: 2.0ms preprocess, 20.0ms inference, 5.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.5ms\n",
- "Speed: 2.1ms preprocess, 8.5ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 (no detections), 19.2ms\n",
- "Speed: 2.7ms preprocess, 19.2ms inference, 1.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 2.2ms preprocess, 7.8ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 83%|████████▎ | 170/206 [00:05<00:01, 30.87it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.5ms preprocess, 7.6ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.0ms\n",
- "Speed: 2.1ms preprocess, 8.0ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.7ms\n",
- "Speed: 2.2ms preprocess, 9.7ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 17.7ms\n",
- "Speed: 1.9ms preprocess, 17.7ms inference, 5.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 84%|████████▍ | 174/206 [00:05<00:01, 30.81it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 2.3ms preprocess, 7.7ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 20.8ms\n",
- "Speed: 2.6ms preprocess, 20.8ms inference, 4.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 1.9ms preprocess, 8.6ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.1ms\n",
- "Speed: 2.3ms preprocess, 7.1ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 86%|████████▋ | 178/206 [00:05<00:00, 30.82it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.6ms preprocess, 7.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 1.9ms preprocess, 8.3ms inference, 6.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.8ms\n",
- "Speed: 2.3ms preprocess, 10.8ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.2ms\n",
- "Speed: 2.3ms preprocess, 10.2ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 88%|████████▊ | 182/206 [00:05<00:00, 30.64it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.2ms preprocess, 7.6ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 20.1ms\n",
- "Speed: 3.0ms preprocess, 20.1ms inference, 4.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 1.9ms preprocess, 8.9ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 19.7ms\n",
- "Speed: 3.5ms preprocess, 19.7ms inference, 5.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 90%|█████████ | 186/206 [00:05<00:00, 29.51it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 18.6ms\n",
- "Speed: 2.5ms preprocess, 18.6ms inference, 5.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 6.9ms\n",
- "Speed: 1.8ms preprocess, 6.9ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 2.1ms preprocess, 7.5ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 21.0ms\n",
- "Speed: 4.4ms preprocess, 21.0ms inference, 4.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 92%|█████████▏| 190/206 [00:06<00:00, 29.08it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.3ms\n",
- "Speed: 2.1ms preprocess, 7.3ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 6.9ms\n",
- "Speed: 2.3ms preprocess, 6.9ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 2.1ms preprocess, 8.6ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.2ms preprocess, 8.4ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 94%|█████████▍| 194/206 [00:06<00:00, 30.72it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 2.0ms preprocess, 8.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.6ms\n",
- "Speed: 2.1ms preprocess, 10.6ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.8ms preprocess, 8.4ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.5ms\n",
- "Speed: 2.0ms preprocess, 8.5ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 96%|█████████▌| 198/206 [00:06<00:00, 30.69it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 11.3ms\n",
- "Speed: 1.9ms preprocess, 11.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 12.9ms\n",
- "Speed: 2.2ms preprocess, 12.9ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.6ms\n",
- "Speed: 3.5ms preprocess, 10.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 3.4ms preprocess, 7.5ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 98%|█████████▊| 202/206 [00:06<00:00, 30.99it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 23.5ms\n",
- "Speed: 2.1ms preprocess, 23.5ms inference, 4.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 21.2ms\n",
- "Speed: 1.9ms preprocess, 21.2ms inference, 5.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.3ms\n",
- "Speed: 1.8ms preprocess, 7.3ms inference, 1.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 1.7ms preprocess, 7.8ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185451.mp4: 100%|██████████| 206/206 [00:06<00:00, 31.50it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "Processing video: 20250624_185500.mp4\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n",
- "Annotating 20250624_185500.mp4: 0%| | 0/140 [00:00, ?it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.8ms\n",
- "Speed: 2.2ms preprocess, 8.8ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 15.9ms\n",
- "Speed: 1.9ms preprocess, 15.9ms inference, 7.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 1%|▏ | 2/140 [00:00<00:08, 16.85it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 2.1ms preprocess, 7.5ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.1ms\n",
- "Speed: 1.9ms preprocess, 8.1ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.2ms\n",
- "Speed: 1.9ms preprocess, 7.2ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.1ms\n",
- "Speed: 2.1ms preprocess, 8.1ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 4%|▍ | 6/140 [00:00<00:04, 28.60it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 2.2ms preprocess, 7.7ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 1.8ms preprocess, 7.5ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.3ms preprocess, 7.9ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.7ms\n",
- "Speed: 2.0ms preprocess, 8.7ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 7%|▋ | 10/140 [00:00<00:04, 31.40it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 1.7ms preprocess, 7.7ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.5ms\n",
- "Speed: 2.1ms preprocess, 8.5ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.1ms\n",
- "Speed: 2.0ms preprocess, 9.1ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.5ms\n",
- "Speed: 2.1ms preprocess, 8.5ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 10%|█ | 14/140 [00:00<00:03, 32.90it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 3.1ms preprocess, 7.6ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.8ms\n",
- "Speed: 2.3ms preprocess, 8.8ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.7ms\n",
- "Speed: 2.3ms preprocess, 10.7ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 17.4ms\n",
- "Speed: 2.1ms preprocess, 17.4ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 13%|█▎ | 18/140 [00:00<00:03, 31.72it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.1ms\n",
- "Speed: 2.0ms preprocess, 9.1ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.6ms\n",
- "Speed: 2.3ms preprocess, 10.6ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.4ms\n",
- "Speed: 1.9ms preprocess, 9.4ms inference, 3.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.2ms\n",
- "Speed: 3.1ms preprocess, 7.2ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 16%|█▌ | 22/140 [00:00<00:03, 31.94it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 1.6ms preprocess, 7.9ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.3ms\n",
- "Speed: 2.1ms preprocess, 7.3ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.1ms\n",
- "Speed: 2.0ms preprocess, 9.1ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 2.2ms preprocess, 8.9ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 19%|█▊ | 26/140 [00:00<00:03, 33.12it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.3ms preprocess, 7.6ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.7ms\n",
- "Speed: 2.4ms preprocess, 8.7ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.0ms preprocess, 7.9ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.7ms\n",
- "Speed: 2.2ms preprocess, 8.7ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 21%|██▏ | 30/140 [00:00<00:03, 33.65it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 1.9ms preprocess, 7.8ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.3ms\n",
- "Speed: 2.0ms preprocess, 14.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 1.8ms preprocess, 7.9ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 2.1ms preprocess, 8.6ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 24%|██▍ | 34/140 [00:01<00:03, 33.11it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 16.3ms\n",
- "Speed: 2.0ms preprocess, 16.3ms inference, 4.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 1.9ms preprocess, 8.9ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.5ms\n",
- "Speed: 2.0ms preprocess, 8.5ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 2.0ms preprocess, 7.7ms inference, 5.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 27%|██▋ | 38/140 [00:01<00:03, 31.89it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 2.0ms preprocess, 7.5ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 1.9ms preprocess, 8.9ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 1.9ms preprocess, 8.4ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.1ms\n",
- "Speed: 2.0ms preprocess, 8.1ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 30%|███ | 42/140 [00:01<00:03, 32.42it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 1.9ms preprocess, 8.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.9ms\n",
- "Speed: 2.0ms preprocess, 10.9ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 1.9ms preprocess, 7.8ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 11.0ms\n",
- "Speed: 2.2ms preprocess, 11.0ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 33%|███▎ | 46/140 [00:01<00:02, 31.78it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.0ms preprocess, 8.4ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.0ms preprocess, 8.4ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 1.9ms preprocess, 7.6ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.3ms\n",
- "Speed: 2.0ms preprocess, 14.3ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 36%|███▌ | 50/140 [00:01<00:02, 32.30it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.0ms preprocess, 7.6ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.0ms\n",
- "Speed: 2.1ms preprocess, 9.0ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.2ms\n",
- "Speed: 2.4ms preprocess, 8.2ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 2.2ms preprocess, 8.3ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 39%|███▊ | 54/140 [00:01<00:02, 33.45it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 1.9ms preprocess, 8.4ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 13.4ms\n",
- "Speed: 3.5ms preprocess, 13.4ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.5ms\n",
- "Speed: 2.3ms preprocess, 9.5ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.1ms\n",
- "Speed: 2.2ms preprocess, 9.1ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 41%|████▏ | 58/140 [00:01<00:02, 32.53it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.9ms\n",
- "Speed: 2.0ms preprocess, 8.9ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.8ms\n",
- "Speed: 2.3ms preprocess, 8.8ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 2.3ms preprocess, 8.6ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 2.2ms preprocess, 8.3ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 44%|████▍ | 62/140 [00:01<00:02, 33.19it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 2.2ms preprocess, 7.8ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.4ms\n",
- "Speed: 3.8ms preprocess, 10.4ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 18.9ms\n",
- "Speed: 2.7ms preprocess, 18.9ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.1ms\n",
- "Speed: 2.2ms preprocess, 8.1ms inference, 3.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 47%|████▋ | 66/140 [00:02<00:02, 32.17it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 2.0ms preprocess, 7.8ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 10.6ms\n",
- "Speed: 4.6ms preprocess, 10.6ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.0ms preprocess, 8.4ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 2.0ms preprocess, 8.3ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 50%|█████ | 70/140 [00:02<00:02, 32.48it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 14.6ms\n",
- "Speed: 2.7ms preprocess, 14.6ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 15.7ms\n",
- "Speed: 2.3ms preprocess, 15.7ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 2.3ms preprocess, 7.5ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 15.3ms\n",
- "Speed: 2.3ms preprocess, 15.3ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 53%|█████▎ | 74/140 [00:02<00:02, 31.33it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.0ms preprocess, 8.4ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.1ms preprocess, 7.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.3ms preprocess, 7.9ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 2.5ms preprocess, 7.5ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 56%|█████▌ | 78/140 [00:02<00:01, 32.58it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.0ms\n",
- "Speed: 2.2ms preprocess, 7.0ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 3.3ms preprocess, 7.6ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 2.2ms preprocess, 7.7ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.2ms preprocess, 7.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 59%|█████▊ | 82/140 [00:02<00:01, 33.27it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 9.4ms\n",
- "Speed: 2.2ms preprocess, 9.4ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 2.6ms preprocess, 7.5ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 13.4ms\n",
- "Speed: 2.0ms preprocess, 13.4ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 3.1ms preprocess, 7.5ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 61%|██████▏ | 86/140 [00:02<00:01, 33.41it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.4ms\n",
- "Speed: 2.3ms preprocess, 8.4ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.4ms\n",
- "Speed: 2.7ms preprocess, 9.4ms inference, 4.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.6ms\n",
- "Speed: 2.2ms preprocess, 8.6ms inference, 2.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 9.0ms\n",
- "Speed: 2.2ms preprocess, 9.0ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 64%|██████▍ | 90/140 [00:02<00:01, 32.63it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 14.6ms\n",
- "Speed: 4.3ms preprocess, 14.6ms inference, 3.6ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.3ms preprocess, 7.6ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.0ms\n",
- "Speed: 2.3ms preprocess, 8.0ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.1ms\n",
- "Speed: 2.1ms preprocess, 8.1ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 67%|██████▋ | 94/140 [00:02<00:01, 32.72it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.2ms\n",
- "Speed: 2.3ms preprocess, 7.2ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.2ms preprocess, 7.9ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.1ms\n",
- "Speed: 2.1ms preprocess, 7.1ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.0ms\n",
- "Speed: 2.0ms preprocess, 7.0ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 70%|███████ | 98/140 [00:03<00:01, 34.17it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 1.9ms preprocess, 7.8ms inference, 3.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.7ms preprocess, 7.9ms inference, 3.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 1.9ms preprocess, 7.6ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 6.9ms\n",
- "Speed: 2.0ms preprocess, 6.9ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 73%|███████▎ | 102/140 [00:03<00:01, 34.49it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.3ms\n",
- "Speed: 1.9ms preprocess, 7.3ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 14.5ms\n",
- "Speed: 2.8ms preprocess, 14.5ms inference, 3.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.2ms preprocess, 7.9ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.3ms\n",
- "Speed: 1.7ms preprocess, 7.3ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 76%|███████▌ | 106/140 [00:03<00:00, 34.62it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 14.8ms\n",
- "Speed: 2.2ms preprocess, 14.8ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 12.9ms\n",
- "Speed: 2.4ms preprocess, 12.9ms inference, 3.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.3ms\n",
- "Speed: 3.0ms preprocess, 8.3ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 2.4ms preprocess, 7.7ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 79%|███████▊ | 110/140 [00:03<00:00, 32.88it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 14.2ms\n",
- "Speed: 2.0ms preprocess, 14.2ms inference, 3.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.1ms preprocess, 7.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 16.5ms\n",
- "Speed: 2.1ms preprocess, 16.5ms inference, 3.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.8ms\n",
- "Speed: 2.3ms preprocess, 8.8ms inference, 2.7ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 81%|████████▏ | 114/140 [00:03<00:00, 32.12it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 13.6ms\n",
- "Speed: 4.2ms preprocess, 13.6ms inference, 3.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.2ms preprocess, 7.6ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.5ms\n",
- "Speed: 2.1ms preprocess, 7.5ms inference, 1.9ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.3ms\n",
- "Speed: 2.4ms preprocess, 7.3ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 84%|████████▍ | 118/140 [00:03<00:00, 32.73it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 8.0ms\n",
- "Speed: 2.3ms preprocess, 8.0ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.6ms preprocess, 7.6ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.4ms\n",
- "Speed: 2.2ms preprocess, 7.4ms inference, 2.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 2.1ms preprocess, 7.7ms inference, 2.6ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 87%|████████▋ | 122/140 [00:03<00:00, 34.00it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.4ms\n",
- "Speed: 2.1ms preprocess, 7.4ms inference, 1.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 19.5ms\n",
- "Speed: 2.2ms preprocess, 19.5ms inference, 5.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.5ms preprocess, 7.6ms inference, 2.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 2.1ms preprocess, 7.8ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 90%|█████████ | 126/140 [00:03<00:00, 33.42it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.1ms\n",
- "Speed: 2.0ms preprocess, 7.1ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 2.0ms preprocess, 7.7ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.3ms\n",
- "Speed: 2.0ms preprocess, 7.3ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.1ms preprocess, 7.6ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 93%|█████████▎| 130/140 [00:03<00:00, 34.48it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.7ms\n",
- "Speed: 2.1ms preprocess, 7.7ms inference, 2.1ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.5ms preprocess, 7.9ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.0ms\n",
- "Speed: 2.4ms preprocess, 7.0ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.8ms\n",
- "Speed: 2.1ms preprocess, 7.8ms inference, 2.0ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 96%|█████████▌| 134/140 [00:04<00:00, 35.55it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 20.0ms\n",
- "Speed: 2.3ms preprocess, 20.0ms inference, 5.4ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.0ms preprocess, 7.9ms inference, 1.8ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 19.3ms\n",
- "Speed: 1.8ms preprocess, 19.3ms inference, 4.7ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 7.6ms\n",
- "Speed: 2.2ms preprocess, 7.6ms inference, 2.5ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 99%|█████████▊| 138/140 [00:04<00:00, 33.69it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "0: 384x640 1 loud speaker, 7.9ms\n",
- "Speed: 2.1ms preprocess, 7.9ms inference, 2.2ms postprocess per image at shape (1, 3, 384, 640)\n",
- "\n",
- "0: 384x640 1 loud speaker, 8.0ms\n",
- "Speed: 2.2ms preprocess, 8.0ms inference, 2.3ms postprocess per image at shape (1, 3, 384, 640)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating 20250624_185500.mp4: 100%|██████████| 140/140 [00:04<00:00, 32.84it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "--- All videos have been processed successfully! ---\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- }
- ],
- "source": [
- "import os\n",
- "import cv2\n",
- "from ultralytics import YOLO\n",
- "import supervision as sv\n",
- "from tqdm import tqdm\n",
- "\n",
- "# --- 1. CONFIGURATION ---\n",
- "\n",
- "# Path to the folder containing your custom trained YOLOv8 model weights.\n",
- "# The script will look for a 'best.pt' file inside this directory.\n",
- "MODEL_WEIGHTS_PATH = \"./runs/detect/yolov8n_car_parts_finetune/weights/best.pt\"\n",
- "\n",
- "# Path to the directory containing the videos you want to process.\n",
- "VIDEO_SOURCE_DIR = \"/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/videos_to_process/\"\n",
- "\n",
- "# Path to the directory where the annotated videos will be saved.\n",
- "VIDEO_OUTPUT_DIR = \"/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/videos_annotated/\"\n",
- "\n",
- "# Your class names, in the exact same order as defined in your dataset.yaml file.\n",
- "# This list MUST match the one used during training.\n",
- "CLASSES = [\"unit\", \"speaker\", \"motor\", \"assembly\"]\n",
- "\n",
- "# --- 2. SCRIPT SETUP ---\n",
- "\n",
- "# Create the output directory if it doesn't exist\n",
- "os.makedirs(VIDEO_OUTPUT_DIR, exist_ok=True)\n",
- "print(f\"Annotated videos will be saved to: {VIDEO_OUTPUT_DIR}\")\n",
- "\n",
- "# Load the custom YOLOv8 model\n",
- "print(f\"Loading model from: {MODEL_WEIGHTS_PATH}\")\n",
- "try:\n",
- " model = YOLO(MODEL_WEIGHTS_PATH)\n",
- "except Exception as e:\n",
- " print(f\"Error loading model: {e}\")\n",
- " print(\"Please ensure the path to your 'best.pt' file is correct.\")\n",
- " exit()\n",
- "\n",
- "# Setup Supervision annotators for drawing boxes and labels\n",
- "box_annotator = sv.BoxAnnotator()\n",
- "label_annotator = sv.LabelAnnotator()\n",
- "\n",
- "# Find all video files in the source directory\n",
- "try:\n",
- " video_files = [f for f in os.listdir(VIDEO_SOURCE_DIR) if f.lower().endswith(('.mp4', '.avi', '.mov', '.mkv'))]\n",
- " if not video_files:\n",
- " print(f\"No video files found in {VIDEO_SOURCE_DIR}. Exiting.\")\n",
- " exit()\n",
- "except FileNotFoundError:\n",
- " print(f\"Error: The directory was not found: {VIDEO_SOURCE_DIR}. Please check the path.\")\n",
- " exit()\n",
- "\n",
- "print(f\"Found {len(video_files)} video(s) to process.\")\n",
- "\n",
- "# --- 3. VIDEO PROCESSING LOOP ---\n",
- "for video_filename in video_files:\n",
- " source_video_path = os.path.join(VIDEO_SOURCE_DIR, video_filename)\n",
- " output_video_path = os.path.join(VIDEO_OUTPUT_DIR, video_filename)\n",
- "\n",
- " print(f\"\\nProcessing video: {video_filename}\")\n",
- "\n",
- " try:\n",
- " # Use Supervision's VideoInfo to get video properties\n",
- " video_info = sv.VideoInfo.from_video_path(source_video_path)\n",
- " total_frames = video_info.total_frames\n",
- " \n",
- " # Use Supervision's get_video_frames_generator to iterate through the video\n",
- " frame_generator = sv.get_video_frames_generator(source_path=source_video_path)\n",
- " \n",
- " # Setup video writer to save the annotated video\n",
- " with sv.VideoSink(output_video_path, video_info) as sink:\n",
- " # Create a progress bar for the current video\n",
- " with tqdm(total=total_frames, desc=f\"Annotating {video_filename}\") as pbar:\n",
- " for frame in frame_generator:\n",
- " # Run YOLOv8 inference on the frame\n",
- " results = model(frame)[0]\n",
- " \n",
- " # Convert YOLOv8 results to Supervision's Detections object\n",
- " detections = sv.Detections.from_ultralytics(results)\n",
- " \n",
- " # --- MODIFICATION: Filter detections based on a confidence threshold ---\n",
- " # Create a boolean mask for detections with confidence > 0.8\n",
- " confidence_mask = detections.confidence > 0.8\n",
- " # Apply the mask to filter the detections\n",
- " filtered_detections = detections[confidence_mask]\n",
- " \n",
- " # Create labels with class name AND confidence score for the filtered detections\n",
- " labels = [\n",
- " f\"{CLASSES[class_id]} {confidence:.2f}\"\n",
- " for class_id, confidence\n",
- " in zip(filtered_detections.class_id, filtered_detections.confidence)\n",
- " ]\n",
- " \n",
- " # Annotate the frame with bounding boxes and the new labels using the filtered detections\n",
- " annotated_frame = box_annotator.annotate(\n",
- " scene=frame.copy(), \n",
- " detections=filtered_detections\n",
- " )\n",
- " annotated_frame = label_annotator.annotate(\n",
- " scene=annotated_frame, \n",
- " detections=filtered_detections, \n",
- " labels=labels\n",
- " )\n",
- " \n",
- " # Write the annotated frame to the output video file\n",
- " sink.write_frame(annotated_frame)\n",
- " pbar.update(1)\n",
- "\n",
- " except Exception as e:\n",
- " print(f\"An error occurred while processing {video_filename}: {e}\")\n",
- "\n",
- "print(\"\\n--- All videos have been processed successfully! ---\")\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "c02ffab9",
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "venv",
- "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.12.3"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/Annotation_and_fine-tuning/main.ipynb b/Annotation_and_fine-tuning/main.ipynb
deleted file mode 100644
index 7d5f5d7..0000000
--- a/Annotation_and_fine-tuning/main.ipynb
+++ /dev/null
@@ -1,4225 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "markdown",
- "id": "32527096",
- "metadata": {},
- "source": [
- "## File Renaming"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 22,
- "id": "85ad669a",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Starting file renaming process in root directory: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset/\n",
- "Found 7195 files to rename.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Renaming files: 100%|██████████| 7195/7195 [00:18<00:00, 389.66it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "--- File renaming process finished successfully! ---\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- }
- ],
- "source": [
- "import os\n",
- "from tqdm import tqdm\n",
- "\n",
- "# --- 1. CONFIGURATION ---\n",
- "\n",
- "# Path to your source dataset that has subfolders like 'Loudspeaker', 'Window', etc.\n",
- "# This is the directory where the folders you want to process are located.\n",
- "ROOT_DIRECTORY = \"/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset/\"\n",
- "\n",
- "# --- 2. SCRIPT LOGIC ---\n",
- "\n",
- "print(f\"Starting file renaming process in root directory: {ROOT_DIRECTORY}\")\n",
- "\n",
- "# A list to keep track of all files to be renamed for the progress bar\n",
- "files_to_rename = []\n",
- "\n",
- "# First, walk the directory to find all files that need renaming\n",
- "for dirpath, _, filenames in os.walk(ROOT_DIRECTORY):\n",
- " for filename in filenames:\n",
- " # Check if the file is an image and follows the 'frame_...' pattern\n",
- " if filename.lower().startswith('frame_') and filename.lower().endswith(('.jpg', '.jpeg', '.png')):\n",
- " full_path = os.path.join(dirpath, filename)\n",
- " files_to_rename.append(full_path)\n",
- "\n",
- "if not files_to_rename:\n",
- " print(\"No files matching the 'frame_...' pattern were found. Exiting.\")\n",
- " exit()\n",
- " \n",
- "print(f\"Found {len(files_to_rename)} files to rename.\")\n",
- "\n",
- "# Now, iterate through the found files and rename them\n",
- "for old_path in tqdm(files_to_rename, desc=\"Renaming files\"):\n",
- " try:\n",
- " # Get the directory path and the original filename\n",
- " dirpath, old_filename = os.path.split(old_path)\n",
- " \n",
- " # Get the name of the parent folder\n",
- " folder_name = os.path.basename(dirpath)\n",
- " \n",
- " # Create the new filename\n",
- " new_filename = f\"{folder_name}_{old_filename}\"\n",
- " \n",
- " # Create the full new path\n",
- " new_path = os.path.join(dirpath, new_filename)\n",
- " \n",
- " # Rename the file\n",
- " os.rename(old_path, new_path)\n",
- "\n",
- " except Exception as e:\n",
- " print(f\"\\nError renaming {old_path}. Reason: {e}\")\n",
- "\n",
- "print(\"\\n--- File renaming process finished successfully! ---\")"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "c293c54d",
- "metadata": {},
- "source": [
- "## Vision Transformer For Annotation"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "id": "aabd114d",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Using Device: cuda\n",
- "Using Model: google/owlvit-base-patch32\n",
- "\n",
- "--- Class to ID Mapping ---\n",
- "{'the main object in the photo': 0}\n",
- "---------------------------\n",
- "\n",
- "Loading Owl-ViT model and processor...\n",
- "Model loaded successfully.\n",
- "Output directories created at: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset_for_YOLOv8/\n",
- "Scanning for all images...\n",
- "Found 168 total images to process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Annotating with Owl-ViT: 0%| | 0/168 [00:00, ?it/s]FutureWarning: `post_process_object_detection` method is deprecated for OwlVitProcessor and will be removed in v5. Use `post_process_grounded_object_detection` instead.\n",
- "Annotating with Owl-ViT: 100%|██████████| 168/168 [00:42<00:00, 3.99it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "--- Owl-ViT Annotation process finished! ---\n",
- "Your YOLOv8-ready dataset is located at: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset_for_YOLOv8/\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- }
- ],
- "source": [
- "import os\n",
- "import cv2\n",
- "import torch\n",
- "import shutil\n",
- "import gc\n",
- "from transformers import AutoProcessor, AutoModelForZeroShotObjectDetection\n",
- "import supervision as sv\n",
- "from tqdm import tqdm\n",
- "import numpy as np\n",
- "\n",
- "# --- 1. CONFIGURATION ---\n",
- "\n",
- "# Choose the Owl-ViT model. 'base-patch32' is a good starting point.\n",
- "# For higher accuracy (and higher VRAM usage), you can use 'large-patch14'.\n",
- "MODEL_NAME = \"google/owlvit-base-patch32\"\n",
- "\n",
- "# Set a max size for images to manage memory usage.\n",
- "MAX_IMAGE_SIZE = 1280\n",
- "\n",
- "# Path to your source dataset (which contains the renamed files like 'LoudSpeaker_frame_XXXX.jpg')\n",
- "SOURCE_DATA_PATH = \"/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset/\"\n",
- "\n",
- "# Path where the new, YOLOv8-formatted dataset will be created.\n",
- "OUTPUT_DATA_PATH = \"/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset_for_YOLOv8/\"\n",
- "\n",
- "# --- MODIFICATION: Use a single, generic prompt to find the main object ---\n",
- "# This is ideal for images with one primary object. The model will focus on finding\n",
- "# the best bounding box, and we will assign a placeholder class ID of 0.\n",
- "CLASSES = [\"the main object in the photo\"]\n",
- "\n",
- "# Owl-ViT confidence threshold. You can adjust this as needed.\n",
- "CONFIDENCE_THRESHOLD = 0.1\n",
- "\n",
- "# --- 2. SETUP & MODEL LOADING ---\n",
- "DEVICE = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n",
- "print(f\"Using Device: {DEVICE}\")\n",
- "print(f\"Using Model: {MODEL_NAME}\")\n",
- "\n",
- "# Create and print the class mapping for user verification\n",
- "class_name_to_id = {name: i for i, name in enumerate(CLASSES)}\n",
- "print(\"\\n--- Class to ID Mapping ---\")\n",
- "print(class_name_to_id)\n",
- "print(\"---------------------------\\n\")\n",
- "\n",
- "\n",
- "print(\"Loading Owl-ViT model and processor...\")\n",
- "try:\n",
- " processor = AutoProcessor.from_pretrained(MODEL_NAME)\n",
- " model = AutoModelForZeroShotObjectDetection.from_pretrained(MODEL_NAME).to(DEVICE)\n",
- " print(\"Model loaded successfully.\")\n",
- "except Exception as e:\n",
- " print(f\"FATAL ERROR: Failed to load model. Reason: {e}\")\n",
- " exit()\n",
- "\n",
- "# --- 3. CREATE YOLOv8 DIRECTORY STRUCTURE ---\n",
- "output_images_path = os.path.join(OUTPUT_DATA_PATH, \"images\")\n",
- "output_labels_path = os.path.join(OUTPUT_DATA_PATH, \"labels\")\n",
- "os.makedirs(output_images_path, exist_ok=True)\n",
- "os.makedirs(output_labels_path, exist_ok=True)\n",
- "print(f\"Output directories created at: {OUTPUT_DATA_PATH}\")\n",
- "\n",
- "# --- 4. FIND ALL IMAGES RECURSIVELY ---\n",
- "print(\"Scanning for all images...\")\n",
- "all_image_paths = []\n",
- "for root, _, files in os.walk(SOURCE_DATA_PATH):\n",
- " for file in files:\n",
- " if file.lower().endswith(('.jpg', '.jpeg', '.png')):\n",
- " all_image_paths.append(os.path.join(root, file))\n",
- "print(f\"Found {len(all_image_paths)} total images to process.\")\n",
- "\n",
- "\n",
- "# --- 5. HELPER FUNCTION FOR IMAGE RESIZING ---\n",
- "def resize_image(image, max_size):\n",
- " \"\"\"\n",
- " Resizes an image to a maximum size while maintaining aspect ratio.\n",
- " \"\"\"\n",
- " h, w, _ = image.shape\n",
- " if max(h, w) > max_size:\n",
- " if h > w:\n",
- " new_h = max_size\n",
- " new_w = int(w * (max_size / h))\n",
- " else:\n",
- " new_w = max_size\n",
- " new_h = int(h * (max_size / w))\n",
- " return cv2.resize(image, (new_w, new_h))\n",
- " return image\n",
- "\n",
- "# --- 6. MAIN ANNOTATION LOOP ---\n",
- "for source_image_path in tqdm(all_image_paths, desc=\"Annotating with Owl-ViT\"):\n",
- " try:\n",
- " image_filename = os.path.basename(source_image_path)\n",
- " dest_image_path = os.path.join(output_images_path, image_filename)\n",
- " label_filename = os.path.splitext(image_filename)[0] + \".txt\"\n",
- " dest_label_path = os.path.join(output_labels_path, label_filename)\n",
- "\n",
- " original_image = cv2.imread(source_image_path)\n",
- " if original_image is None:\n",
- " print(f\"\\nWarning: Could not read image {source_image_path}. Skipping.\")\n",
- " continue\n",
- " \n",
- " original_h, original_w, _ = original_image.shape\n",
- "\n",
- " resized_image = resize_image(original_image, MAX_IMAGE_SIZE)\n",
- " \n",
- " # Owl-ViT expects a list of text queries\n",
- " text_queries = [CLASSES]\n",
- " \n",
- " # Run inference\n",
- " inputs = processor(text=text_queries, images=resized_image, return_tensors=\"pt\").to(DEVICE)\n",
- " with torch.no_grad():\n",
- " outputs = model(**inputs)\n",
- "\n",
- " # Process results\n",
- " resized_h, resized_w, _ = resized_image.shape\n",
- " target_sizes = torch.tensor([[resized_h, resized_w]]).to(DEVICE)\n",
- " \n",
- " # Note: Owl-ViT uses 'post_process_object_detection'\n",
- " results = processor.post_process_object_detection(outputs=outputs, target_sizes=target_sizes, threshold=CONFIDENCE_THRESHOLD)\n",
- "\n",
- " # The results are per-image, so we take the first one (index 0)\n",
- " result = results[0]\n",
- " boxes = result[\"boxes\"]\n",
- " scores = result[\"scores\"]\n",
- " labels = result[\"labels\"]\n",
- "\n",
- " if len(scores) > 0:\n",
- " shutil.copy(source_image_path, dest_image_path)\n",
- "\n",
- " # --- Find and process only the single best detection ---\n",
- " # Find the index of the detection with the highest confidence score\n",
- " best_detection_index = torch.argmax(scores)\n",
- "\n",
- " # Get the single best box\n",
- " best_box = boxes[best_detection_index]\n",
- " \n",
- " # Since we use a generic prompt, the label_id will always be 0.\n",
- " # We will use this as a placeholder. Your label corrector script will fix it.\n",
- " placeholder_label_id = 0\n",
- " \n",
- " # Box is already in xyxy format\n",
- " x1, y1, x2, y2 = best_box.tolist()\n",
- "\n",
- " # Scale the bounding box from the resized image back to the original image's dimensions\n",
- " x1_orig = x1 * (original_w / resized_w)\n",
- " y1_orig = y1 * (original_h / resized_h)\n",
- " x2_orig = x2 * (original_w / resized_w)\n",
- " y2_orig = y2 * (original_h / resized_h)\n",
- "\n",
- " # Convert to YOLO format and normalize\n",
- " box_yolo_x = ((x1_orig + x2_orig) / 2) / original_w\n",
- " box_yolo_y = ((y1_orig + y2_orig) / 2) / original_h\n",
- " box_yolo_w = (x2_orig - x1_orig) / original_w\n",
- " box_yolo_h = (y2_orig - y1_orig) / original_h\n",
- "\n",
- " yolo_formatted_annotation = (\n",
- " f\"{int(placeholder_label_id)} {box_yolo_x:.6f} {box_yolo_y:.6f} {box_yolo_w:.6f} {box_yolo_h:.6f}\"\n",
- " )\n",
- "\n",
- " with open(dest_label_path, \"w\") as f:\n",
- " f.write(yolo_formatted_annotation + \"\\n\")\n",
- "\n",
- " except Exception as e:\n",
- " import traceback\n",
- " print(f\"\\n---!!! UNEXPECTED ERROR processing {source_image_path} !!!---\")\n",
- " traceback.print_exc()\n",
- " print(f\"Error Type: {type(e).__name__}, Message: {e}\")\n",
- " print(\"-----------------------------------------------------------------\")\n",
- " finally:\n",
- " # --- MEMORY CLEANUP ---\n",
- " if 'inputs' in locals(): del inputs\n",
- " if 'outputs' in locals(): del outputs\n",
- " if torch.cuda.is_available():\n",
- " torch.cuda.empty_cache()\n",
- " gc.collect()\n",
- "\n",
- "print(\"\\n--- Owl-ViT Annotation process finished! ---\")\n",
- "print(f\"Your YOLOv8-ready dataset is located at: {OUTPUT_DATA_PATH}\")\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "1f1deaaf",
- "metadata": {},
- "source": [
- "## Visualization of Bounding Boxes"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "id": "56f0d6e5",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "--- Starting Dynamic YOLOv8 Label Correction Script ---\n",
- "Master Class-to-ID mapping has been created:\n",
- "{'unit': 0, 'speaker': 1, 'motor': 2, 'assembly': 3}\n",
- "\n",
- "Found 168 label files to process.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Correcting Labels: 100%|██████████| 168/168 [00:00<00:00, 391.26it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "--- Label correction process finished! ---\n",
- "Total files checked: 168\n",
- "Total files corrected: 42\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- }
- ],
- "source": [
- "import os\n",
- "from tqdm import tqdm\n",
- "\n",
- "# --- 1. CONFIGURATION ---\n",
- "\n",
- "# Path to the YOLOv8 dataset directory that contains the label files.\n",
- "LABELS_DIRECTORY = \"/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset_for_YOLOv8/labels/\"\n",
- "\n",
- "# Your master class list. This is the ground truth for mapping names to IDs.\n",
- "# Ensure this list is in the final order you want for YOLOv8 training.\n",
- "# Note: The user's prompt provided a different list, so I've used that one. \n",
- "# Please verify this is correct.\n",
- "CLASSES = [\"unit\", \"speaker\", \"motor\", \"assembly\"]\n",
- "\n",
- "\n",
- "# --- 2. SCRIPT LOGIC ---\n",
- "\n",
- "print(\"--- Starting Dynamic YOLOv8 Label Correction Script ---\")\n",
- "\n",
- "# Create the master mapping from class name to the correct ID\n",
- "class_name_to_id = {name: i for i, name in enumerate(CLASSES)}\n",
- "print(\"Master Class-to-ID mapping has been created:\")\n",
- "print(class_name_to_id)\n",
- "\n",
- "# Get all the label files from the directory\n",
- "try:\n",
- " label_files = [f for f in os.listdir(LABELS_DIRECTORY) if f.endswith('.txt')]\n",
- " if not label_files:\n",
- " print(f\"Error: No .txt files found in {LABELS_DIRECTORY}. Exiting.\")\n",
- " exit()\n",
- "except FileNotFoundError:\n",
- " print(f\"Error: The directory was not found: {LABELS_DIRECTORY}. Please check the path.\")\n",
- " exit()\n",
- "\n",
- "print(f\"\\nFound {len(label_files)} label files to process.\")\n",
- "\n",
- "# Initialize a counter for corrected files\n",
- "corrected_files_count = 0\n",
- "\n",
- "# --- 3. CORRECTION LOOP ---\n",
- "for filename in tqdm(label_files, desc=\"Correcting Labels\"):\n",
- " try:\n",
- " # --- DYNAMIC CLASS NAME EXTRACTION ---\n",
- " # Parse the filename to get the class name part before \"_frame_\"\n",
- " # Example: \"Control Unit_frame_1496.txt\" -> \"Control Unit\"\n",
- " \n",
- " # We split by '_frame_' and take the first part.\n",
- " # This handles class names with spaces correctly.\n",
- " parts = filename.split('_frame_')\n",
- " if len(parts) < 2:\n",
- " print(f\"\\nWarning: Filename '{filename}' does not match 'classname_frame_xxx' format. Skipping.\")\n",
- " continue\n",
- " \n",
- " correct_class_name = parts[0]\n",
- "\n",
- " # Check if the extracted class name exists in our master list\n",
- " if correct_class_name not in class_name_to_id:\n",
- " print(f\"\\nWarning: Extracted class '{correct_class_name}' from filename '{filename}' is not in the master CLASSES list. Skipping.\")\n",
- " continue\n",
- "\n",
- " # Get the correct class ID from our master mapping\n",
- " correct_class_id = class_name_to_id[correct_class_name]\n",
- " \n",
- " label_path = os.path.join(LABELS_DIRECTORY, filename)\n",
- " \n",
- " with open(label_path, 'r') as f:\n",
- " lines = f.readlines()\n",
- " \n",
- " corrected_lines = []\n",
- " was_corrected = False\n",
- "\n",
- " for line in lines:\n",
- " line_parts = line.strip().split()\n",
- " \n",
- " if len(line_parts) == 5:\n",
- " current_class_id = int(line_parts[0])\n",
- " \n",
- " # If the ID is already correct, no change is needed.\n",
- " # If it's incorrect, we set was_corrected to True.\n",
- " if current_class_id != correct_class_id:\n",
- " was_corrected = True\n",
- " \n",
- " # Rebuild the line with the *correct* class ID, keeping coordinates.\n",
- " corrected_line = f\"{correct_class_id} {line_parts[1]} {line_parts[2]} {line_parts[3]} {line_parts[4]}\"\n",
- " corrected_lines.append(corrected_line)\n",
- " else:\n",
- " corrected_lines.append(line.strip()) # Keep malformed lines\n",
- " \n",
- " # Only rewrite the file if a correction was actually made\n",
- " if was_corrected:\n",
- " corrected_files_count += 1\n",
- " with open(label_path, 'w') as f:\n",
- " f.write(\"\\n\".join(corrected_lines))\n",
- " if corrected_lines:\n",
- " f.write(\"\\n\")\n",
- "\n",
- " except Exception as e:\n",
- " print(f\"\\nError processing file {filename}. Reason: {e}\")\n",
- "\n",
- "print(\"\\n--- Label correction process finished! ---\")\n",
- "print(f\"Total files checked: {len(label_files)}\")\n",
- "print(f\"Total files corrected: {corrected_files_count}\")\n",
- "\n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "id": "5174398d",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Visualized images will be saved to: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/annotated_images/\n",
- "Found 168 images to visualize.\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Visualizing Annotations: 0%| | 0/168 [00:00, ?it/s]"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Visualizing Annotations: 100%|██████████| 168/168 [00:02<00:00, 71.64it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "--- Visualization process finished! ---\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- }
- ],
- "source": [
- "import os\n",
- "import cv2\n",
- "import numpy as np\n",
- "from tqdm import tqdm\n",
- "\n",
- "# --- 1. CONFIGURATION ---\n",
- "\n",
- "# Path to the dataset generated by the previous script\n",
- "DATASET_PATH = \"/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset_for_YOLOv8/\"\n",
- "\n",
- "# Directory where the visualized images will be saved\n",
- "VISUALIZATION_OUTPUT_PATH = \"/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/annotated_images/\"\n",
- "\n",
- "# Your class names, in the exact same order as the previous script\n",
- "CLASSES = [\"unit\", \"speaker\", \"motor\", \"assmebly\"]\n",
- "\n",
- "# Optional: Colors for the bounding boxes (in BGR format)\n",
- "# If you have more classes, add more colors here.\n",
- "BOX_COLORS = [\n",
- " (255, 0, 0), # Blue for Window_Motor\n",
- " (0, 255, 0), # Green for Control Unit\n",
- " (0, 0, 255), # Red for LoudSpeaker\n",
- " (255, 255, 0) # Cyan for Window\n",
- "]\n",
- "\n",
- "# --- 2. SETUP ---\n",
- "images_dir = os.path.join(DATASET_PATH, \"images\")\n",
- "labels_dir = os.path.join(DATASET_PATH, \"labels\")\n",
- "\n",
- "# Create the output directory if it doesn't exist\n",
- "os.makedirs(VISUALIZATION_OUTPUT_PATH, exist_ok=True)\n",
- "print(f\"Visualized images will be saved to: {VISUALIZATION_OUTPUT_PATH}\")\n",
- "\n",
- "# Find all image files\n",
- "image_files = [f for f in os.listdir(images_dir) if f.lower().endswith(('.jpg', '.jpeg', '.png'))]\n",
- "\n",
- "if not image_files:\n",
- " print(f\"Error: No images found in {images_dir}. Please check the path.\")\n",
- " exit()\n",
- "\n",
- "print(f\"Found {len(image_files)} images to visualize.\")\n",
- "\n",
- "# --- 3. VISUALIZATION LOOP ---\n",
- "for image_filename in tqdm(image_files, desc=\"Visualizing Annotations\"):\n",
- " try:\n",
- " # Define paths\n",
- " image_path = os.path.join(images_dir, image_filename)\n",
- " label_filename = os.path.splitext(image_filename)[0] + \".txt\"\n",
- " label_path = os.path.join(labels_dir, label_filename)\n",
- " output_image_path = os.path.join(VISUALIZATION_OUTPUT_PATH, image_filename)\n",
- "\n",
- " # Read the image\n",
- " image = cv2.imread(image_path)\n",
- " if image is None:\n",
- " print(f\"\\nWarning: Could not read image {image_path}. Skipping.\")\n",
- " continue\n",
- "\n",
- " # Check if a corresponding label file exists\n",
- " if not os.path.exists(label_path):\n",
- " # If no label, just copy the original image\n",
- " cv2.imwrite(output_image_path, image)\n",
- " continue\n",
- "\n",
- " # Get image dimensions\n",
- " img_h, img_w, _ = image.shape\n",
- "\n",
- " # Read the YOLO label file\n",
- " with open(label_path, 'r') as f:\n",
- " for line in f:\n",
- " # Parse the line: class_id, x_center, y_center, width, height\n",
- " parts = line.strip().split()\n",
- " if len(parts) != 5:\n",
- " continue\n",
- " \n",
- " class_id = int(parts[0])\n",
- " x_center_norm = float(parts[1])\n",
- " y_center_norm = float(parts[2])\n",
- " w_norm = float(parts[3])\n",
- " h_norm = float(parts[4])\n",
- "\n",
- " # Denormalize coordinates to pixel values\n",
- " box_w = int(w_norm * img_w)\n",
- " box_h = int(h_norm * img_h)\n",
- " box_x = int((x_center_norm * img_w) - (box_w / 2))\n",
- " box_y = int((y_center_norm * img_h) - (box_h / 2))\n",
- "\n",
- " # Get class name and color\n",
- " class_name = CLASSES[class_id] if 0 <= class_id < len(CLASSES) else \"Unknown\"\n",
- " color = BOX_COLORS[class_id % len(BOX_COLORS)]\n",
- "\n",
- " # Draw the bounding box\n",
- " cv2.rectangle(image, (box_x, box_y), (box_x + box_w, box_y + box_h), color, 2)\n",
- "\n",
- " # Prepare text for the label\n",
- " label_text = f\"{class_name}\"\n",
- " \n",
- " # Calculate text size to draw a background rectangle\n",
- " (text_width, text_height), baseline = cv2.getTextSize(label_text, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 1)\n",
- " \n",
- " # Draw a filled rectangle as a background for the text\n",
- " cv2.rectangle(image, (box_x, box_y - text_height - 5), (box_x + text_width, box_y), color, -1)\n",
- " \n",
- " # Put the class name text on the rectangle\n",
- " cv2.putText(image, label_text, (box_x, box_y - 5), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (255, 255, 255), 1)\n",
- "\n",
- " # Save the image with drawn annotations\n",
- " cv2.imwrite(output_image_path, image)\n",
- "\n",
- " except Exception as e:\n",
- " import traceback\n",
- " print(f\"\\n---!!! UNEXPECTED ERROR visualizing {image_filename} !!!---\")\n",
- " traceback.print_exc()\n",
- " print(f\"Error Type: {type(e).__name__}, Message: {e}\")\n",
- " print(\"----------------------------------------------------------\")\n",
- "\n",
- "print(\"\\n--- Visualization process finished! ---\")\n",
- "\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "65b8a779",
- "metadata": {},
- "source": [
- "## Create YAML for YOLOv8"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "id": "5b4a36ba",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Successfully created dataset YAML file at: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/car_parts.yaml\n"
- ]
- }
- ],
- "source": [
- "import yaml\n",
- "import os\n",
- "\n",
- "# --- Configuration ---\n",
- "# Path to the root of your YOLOv8 dataset\n",
- "dataset_base_path = '/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset_for_YOLOv8/'\n",
- "\n",
- "# Your class names in the correct order\n",
- "class_names = [\"control unit\", \"loud speaker\", \"Motor\", \"window regulator assembly\"]\n",
- "\n",
- "# --- Create the YAML content ---\n",
- "# Note: We use os.path.join to ensure paths are correct.\n",
- "# YOLOv8 will correctly interpret these paths.\n",
- "dataset_yaml_content = {\n",
- " 'path': dataset_base_path,\n",
- " 'train': os.path.join(dataset_base_path, 'images'), # Using the same set for train and val for this example\n",
- " 'val': os.path.join(dataset_base_path, 'images'), # Ideally, you should split your data into train/val sets\n",
- " 'nc': len(class_names),\n",
- " 'names': class_names\n",
- "}\n",
- "\n",
- "# --- Write the YAML file ---\n",
- "# We will save this file in the directory that contains the dataset folder.\n",
- "output_yaml_path = os.path.join('/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/', 'car_parts.yaml')\n",
- "\n",
- "try:\n",
- " with open(output_yaml_path, 'w') as f:\n",
- " yaml.dump(dataset_yaml_content, f, sort_keys=False)\n",
- " print(f\"Successfully created dataset YAML file at: {output_yaml_path}\")\n",
- "except Exception as e:\n",
- " print(f\"Error creating YAML file: {e}\")\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "4b38594e",
- "metadata": {},
- "source": [
- "## Train Yolov8"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "id": "757db4f6",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Ultralytics 8.3.159 🚀 Python-3.12.3 torch-2.7.1+cu126 CUDA:0 (NVIDIA GeForce RTX 3070 Ti, 8192MiB)\n",
- "\u001b[34m\u001b[1mengine/trainer: \u001b[0magnostic_nms=False, amp=True, augment=False, auto_augment=randaugment, batch=8, bgr=0.0, box=7.5, cache=False, cfg=None, classes=None, close_mosaic=10, cls=0.5, conf=None, copy_paste=0.0, copy_paste_mode=flip, cos_lr=False, cutmix=0.0, data=/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/car_parts.yaml, degrees=0.0, deterministic=True, device=None, dfl=1.5, dnn=False, dropout=0.0, dynamic=False, embed=None, epochs=100, erasing=0.4, exist_ok=False, fliplr=0.5, flipud=0.0, format=torchscript, fraction=1.0, freeze=None, half=False, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, imgsz=640, int8=False, iou=0.7, keras=False, kobj=1.0, line_width=None, lr0=0.01, lrf=0.01, mask_ratio=4, max_det=300, mixup=0.0, mode=train, model=yolov8n.pt, momentum=0.937, mosaic=1.0, multi_scale=False, name=yolov8n_car_parts_finetune, nbs=64, nms=False, opset=None, optimize=False, optimizer=auto, overlap_mask=True, patience=100, perspective=0.0, plots=True, pose=12.0, pretrained=True, profile=False, project=None, rect=False, resume=False, retina_masks=False, save=True, save_conf=False, save_crop=False, save_dir=runs/detect/yolov8n_car_parts_finetune, save_frames=False, save_json=False, save_period=-1, save_txt=False, scale=0.5, seed=0, shear=0.0, show=False, show_boxes=True, show_conf=True, show_labels=True, simplify=True, single_cls=False, source=None, split=val, stream_buffer=False, task=detect, time=None, tracker=botsort.yaml, translate=0.1, val=True, verbose=True, vid_stride=1, visualize=False, warmup_bias_lr=0.1, warmup_epochs=3.0, warmup_momentum=0.8, weight_decay=0.0005, workers=8, workspace=None\n",
- "Overriding model.yaml nc=80 with nc=4\n",
- "\n",
- " from n params module arguments \n",
- " 0 -1 1 464 ultralytics.nn.modules.conv.Conv [3, 16, 3, 2] \n",
- " 1 -1 1 4672 ultralytics.nn.modules.conv.Conv [16, 32, 3, 2] \n",
- " 2 -1 1 7360 ultralytics.nn.modules.block.C2f [32, 32, 1, True] \n",
- " 3 -1 1 18560 ultralytics.nn.modules.conv.Conv [32, 64, 3, 2] \n",
- " 4 -1 2 49664 ultralytics.nn.modules.block.C2f [64, 64, 2, True] \n",
- " 5 -1 1 73984 ultralytics.nn.modules.conv.Conv [64, 128, 3, 2] \n",
- " 6 -1 2 197632 ultralytics.nn.modules.block.C2f [128, 128, 2, True] \n",
- " 7 -1 1 295424 ultralytics.nn.modules.conv.Conv [128, 256, 3, 2] \n",
- " 8 -1 1 460288 ultralytics.nn.modules.block.C2f [256, 256, 1, True] \n",
- " 9 -1 1 164608 ultralytics.nn.modules.block.SPPF [256, 256, 5] \n",
- " 10 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] \n",
- " 11 [-1, 6] 1 0 ultralytics.nn.modules.conv.Concat [1] \n",
- " 12 -1 1 148224 ultralytics.nn.modules.block.C2f [384, 128, 1] \n",
- " 13 -1 1 0 torch.nn.modules.upsampling.Upsample [None, 2, 'nearest'] \n",
- " 14 [-1, 4] 1 0 ultralytics.nn.modules.conv.Concat [1] \n",
- " 15 -1 1 37248 ultralytics.nn.modules.block.C2f [192, 64, 1] \n",
- " 16 -1 1 36992 ultralytics.nn.modules.conv.Conv [64, 64, 3, 2] \n",
- " 17 [-1, 12] 1 0 ultralytics.nn.modules.conv.Concat [1] \n",
- " 18 -1 1 123648 ultralytics.nn.modules.block.C2f [192, 128, 1] \n",
- " 19 -1 1 147712 ultralytics.nn.modules.conv.Conv [128, 128, 3, 2] \n",
- " 20 [-1, 9] 1 0 ultralytics.nn.modules.conv.Concat [1] \n",
- " 21 -1 1 493056 ultralytics.nn.modules.block.C2f [384, 256, 1] \n",
- " 22 [15, 18, 21] 1 752092 ultralytics.nn.modules.head.Detect [4, [64, 128, 256]] \n",
- "Model summary: 129 layers, 3,011,628 parameters, 3,011,612 gradients, 8.2 GFLOPs\n",
- "\n",
- "Transferred 319/355 items from pretrained weights\n",
- "Freezing layer 'model.22.dfl.conv.weight'\n",
- "\u001b[34m\u001b[1mAMP: \u001b[0mrunning Automatic Mixed Precision (AMP) checks...\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- "UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- "UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- "UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\u001b[34m\u001b[1mAMP: \u001b[0mchecks passed ✅\n",
- "\u001b[34m\u001b[1mtrain: \u001b[0mFast image access ✅ (ping: 1.3±0.3 ms, read: 25.5±2.8 MB/s, size: 58.2 KB)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\u001b[34m\u001b[1mtrain: \u001b[0mScanning /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset_for_YOLOv8/labels... 168 images, 0 backgrounds, 0 corrupt: 100%|██████████| 168/168 [00:00<00:00, 856.66it/s]\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\u001b[34m\u001b[1mtrain: \u001b[0mNew cache created: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset_for_YOLOv8/labels.cache\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\u001b[34m\u001b[1mval: \u001b[0mFast image access ✅ (ping: 1.8±0.2 ms, read: 15.3±2.7 MB/s, size: 59.1 KB)\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\u001b[34m\u001b[1mval: \u001b[0mScanning /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/Dataset_for_YOLOv8/labels.cache... 168 images, 0 backgrounds, 0 corrupt: 100%|██████████| 168/168 [00:00, ?it/s]\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Plotting labels to runs/detect/yolov8n_car_parts_finetune/labels.jpg... \n",
- "\u001b[34m\u001b[1moptimizer:\u001b[0m 'optimizer=auto' found, ignoring 'lr0=0.01' and 'momentum=0.937' and determining best 'optimizer', 'lr0' and 'momentum' automatically... \n",
- "\u001b[34m\u001b[1moptimizer:\u001b[0m AdamW(lr=0.00125, momentum=0.9) with parameter groups 57 weight(decay=0.0), 64 weight(decay=0.0005), 63 bias(decay=0.0)\n",
- "Image sizes 640 train, 640 val\n",
- "Using 8 dataloader workers\n",
- "Logging results to \u001b[1mruns/detect/yolov8n_car_parts_finetune\u001b[0m\n",
- "Starting training for 100 epochs...\n",
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 1/100 1.59G 0.648 3.168 1.121 19 640: 100%|██████████| 21/21 [00:03<00:00, 5.49it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 6.69it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.00362 1 0.808 0.76\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 2/100 1.69G 0.6027 1.814 1.052 13 640: 100%|██████████| 21/21 [00:02<00:00, 9.51it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 5.62it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.994 0.749 0.787 0.713\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 3/100 1.69G 0.6503 1.461 1.07 15 640: 100%|██████████| 21/21 [00:02<00:00, 8.65it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.80it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.957 0.759 0.944 0.858\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 4/100 1.7G 0.6125 1.329 1.056 21 640: 100%|██████████| 21/21 [00:02<00:00, 9.27it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.17it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.996 0.993 0.995 0.913\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 5/100 1.7G 0.5918 1.275 1.016 19 640: 100%|██████████| 21/21 [00:02<00:00, 9.98it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.25it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.898 0.915 0.989 0.905\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 6/100 1.7G 0.6271 1.24 1.033 18 640: 100%|██████████| 21/21 [00:02<00:00, 10.09it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 6.96it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.845 0.987 0.993 0.873\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 7/100 1.71G 0.6546 1.203 1.068 19 640: 100%|██████████| 21/21 [00:02<00:00, 10.32it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.60it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.908\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 8/100 1.71G 0.5841 1.055 1.008 15 640: 100%|██████████| 21/21 [00:02<00:00, 10.30it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.60it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.982 0.983 0.995 0.922\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 9/100 1.73G 0.5706 0.9735 0.9834 19 640: 100%|██████████| 21/21 [00:02<00:00, 9.67it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.11it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.995 1 0.995 0.936\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 10/100 1.73G 0.5538 0.9334 0.9907 21 640: 100%|██████████| 21/21 [00:02<00:00, 8.66it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 6.79it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.804 0.905 0.871 0.783\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 11/100 1.75G 0.5254 0.8967 0.9646 22 640: 100%|██████████| 21/21 [00:02<00:00, 8.64it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.89it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.943\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 12/100 1.75G 0.5445 0.8611 0.9933 12 640: 100%|██████████| 21/21 [00:02<00:00, 9.64it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.77it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.922 0.979 0.995 0.953\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 13/100 1.76G 0.5362 0.8376 0.9626 15 640: 100%|██████████| 21/21 [00:02<00:00, 10.12it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.22it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.995 1 0.995 0.944\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 14/100 1.76G 0.4911 0.8639 0.9672 13 640: 100%|██████████| 21/21 [00:02<00:00, 10.33it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.08it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.921\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 15/100 1.78G 0.4859 0.761 0.9447 20 640: 100%|██████████| 21/21 [00:02<00:00, 9.50it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.75it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.99 1 0.995 0.954\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 16/100 1.78G 0.5276 0.7808 0.969 18 640: 100%|██████████| 21/21 [00:02<00:00, 8.61it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.15it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.948\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 17/100 1.8G 0.5388 0.7503 0.975 19 640: 100%|██████████| 21/21 [00:02<00:00, 9.16it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.88it/s]\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.972\n",
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 18/100 1.8G 0.4674 0.709 0.9382 16 640: 100%|██████████| 21/21 [00:02<00:00, 9.82it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.42it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.966\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 19/100 1.8G 0.4586 0.6896 0.9384 25 640: 100%|██████████| 21/21 [00:02<00:00, 9.55it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.35it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.954\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 20/100 1.8G 0.5281 0.7868 0.9855 16 640: 100%|██████████| 21/21 [00:02<00:00, 8.83it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.64it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.972\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 21/100 1.8G 0.4371 0.6951 0.9289 16 640: 100%|██████████| 21/21 [00:02<00:00, 8.69it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.78it/s]\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.941\n",
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 22/100 1.8G 0.4961 0.6907 0.943 14 640: 100%|██████████| 21/21 [00:02<00:00, 8.95it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.10it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.952\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 23/100 1.8G 0.4592 0.6733 0.941 19 640: 100%|██████████| 21/21 [00:02<00:00, 10.16it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.52it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.976\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 24/100 1.8G 0.4453 0.6285 0.9465 26 640: 100%|██████████| 21/21 [00:02<00:00, 10.29it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.08it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.973\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 25/100 1.8G 0.4597 0.5922 0.9261 17 640: 100%|██████████| 21/21 [00:02<00:00, 10.18it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.85it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.976\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 26/100 1.8G 0.4277 0.5668 0.9165 18 640: 100%|██████████| 21/21 [00:02<00:00, 9.63it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.21it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.964\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 27/100 1.8G 0.4539 0.5764 0.9324 23 640: 100%|██████████| 21/21 [00:02<00:00, 8.59it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.18it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.979\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 28/100 1.8G 0.4392 0.5688 0.9328 28 640: 100%|██████████| 21/21 [00:02<00:00, 9.50it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.47it/s]\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.983\n",
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 29/100 1.8G 0.4253 0.5448 0.9175 15 640: 100%|██████████| 21/21 [00:02<00:00, 10.32it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.86it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.966\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 30/100 1.8G 0.4244 0.5448 0.9419 14 640: 100%|██████████| 21/21 [00:02<00:00, 10.17it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.27it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.982\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 31/100 1.8G 0.4522 0.5673 0.9462 16 640: 100%|██████████| 21/21 [00:01<00:00, 10.67it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.49it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.973\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 32/100 1.8G 0.4213 0.5025 0.9235 20 640: 100%|██████████| 21/21 [00:01<00:00, 11.86it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.24it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.979\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 33/100 1.8G 0.447 0.5152 0.9386 21 640: 100%|██████████| 21/21 [00:02<00:00, 9.55it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.47it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.978\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 34/100 1.8G 0.4215 0.5107 0.9229 18 640: 100%|██████████| 21/21 [00:02<00:00, 10.27it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.70it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.977\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 35/100 1.8G 0.4137 0.5051 0.926 13 640: 100%|██████████| 21/21 [00:02<00:00, 8.61it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.38it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.974\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 36/100 1.8G 0.4035 0.4766 0.9309 15 640: 100%|██████████| 21/21 [00:02<00:00, 8.67it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.40it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.976\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 37/100 1.8G 0.3996 0.46 0.914 17 640: 100%|██████████| 21/21 [00:02<00:00, 10.00it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.34it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.97\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 38/100 1.8G 0.4206 0.4645 0.9271 19 640: 100%|██████████| 21/21 [00:02<00:00, 10.03it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.31it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.978\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 39/100 1.8G 0.3695 0.4334 0.9002 22 640: 100%|██████████| 21/21 [00:02<00:00, 9.29it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.91it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.982\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 40/100 1.8G 0.4039 0.4709 0.917 12 640: 100%|██████████| 21/21 [00:02<00:00, 10.09it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.82it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.98\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 41/100 1.8G 0.4228 0.4633 0.9227 18 640: 100%|██████████| 21/21 [00:02<00:00, 9.93it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.81it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.967\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 42/100 1.8G 0.377 0.4384 0.8801 16 640: 100%|██████████| 21/21 [00:02<00:00, 9.89it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.24it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.983\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 43/100 1.8G 0.4142 0.4607 0.9169 21 640: 100%|██████████| 21/21 [00:02<00:00, 9.01it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.03it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.941\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 44/100 1.8G 0.377 0.4464 0.9108 14 640: 100%|██████████| 21/21 [00:01<00:00, 10.59it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.27it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.978\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 45/100 1.8G 0.3744 0.4267 0.8949 18 640: 100%|██████████| 21/21 [00:02<00:00, 10.44it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 6.95it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.98\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 46/100 1.8G 0.3706 0.4194 0.9055 13 640: 100%|██████████| 21/21 [00:02<00:00, 9.49it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.46it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.981\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 47/100 1.8G 0.3805 0.4143 0.9053 20 640: 100%|██████████| 21/21 [00:02<00:00, 8.22it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.61it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.973\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 48/100 1.8G 0.3717 0.4106 0.91 22 640: 100%|██████████| 21/21 [00:02<00:00, 10.24it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.87it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.968\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 49/100 1.8G 0.3932 0.4035 0.9158 19 640: 100%|██████████| 21/21 [00:01<00:00, 10.83it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.27it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.999 1 0.995 0.978\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 50/100 1.8G 0.3755 0.3939 0.8921 18 640: 100%|██████████| 21/21 [00:02<00:00, 9.79it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.41it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.979\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 51/100 1.8G 0.3819 0.3941 0.9073 28 640: 100%|██████████| 21/21 [00:02<00:00, 8.75it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.60it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.978\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 52/100 1.8G 0.3677 0.4011 0.9088 22 640: 100%|██████████| 21/21 [00:01<00:00, 10.50it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.36it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.982\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 53/100 1.8G 0.3536 0.3873 0.895 12 640: 100%|██████████| 21/21 [00:02<00:00, 9.61it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.43it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.999 1 0.995 0.98\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 54/100 1.8G 0.3752 0.384 0.917 16 640: 100%|██████████| 21/21 [00:02<00:00, 9.63it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.20it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.985\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 55/100 1.8G 0.3477 0.3619 0.9016 23 640: 100%|██████████| 21/21 [00:02<00:00, 9.90it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.44it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.985\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 56/100 1.8G 0.3448 0.3596 0.8913 23 640: 100%|██████████| 21/21 [00:02<00:00, 9.40it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.39it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.988\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 57/100 1.8G 0.356 0.3873 0.8825 20 640: 100%|██████████| 21/21 [00:02<00:00, 9.74it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.55it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.997 1 0.995 0.992\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 58/100 1.8G 0.3396 0.3577 0.9078 16 640: 100%|██████████| 21/21 [00:02<00:00, 9.41it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.19it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.987\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 59/100 1.8G 0.3274 0.3421 0.8729 16 640: 100%|██████████| 21/21 [00:02<00:00, 9.65it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.39it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.984\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 60/100 1.8G 0.3267 0.3419 0.8776 16 640: 100%|██████████| 21/21 [00:02<00:00, 9.65it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.74it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.987\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 61/100 1.8G 0.3261 0.3347 0.8908 20 640: 100%|██████████| 21/21 [00:02<00:00, 9.36it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.72it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.999 1 0.995 0.99\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 62/100 1.8G 0.3445 0.3496 0.8906 22 640: 100%|██████████| 21/21 [00:02<00:00, 9.40it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.24it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.984\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 63/100 1.8G 0.3385 0.345 0.8884 22 640: 100%|██████████| 21/21 [00:02<00:00, 8.91it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.56it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 64/100 1.8G 0.3582 0.3469 0.8932 16 640: 100%|██████████| 21/21 [00:02<00:00, 10.40it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.27it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.993\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 65/100 1.8G 0.3228 0.3296 0.8825 15 640: 100%|██████████| 21/21 [00:02<00:00, 9.61it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.44it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.999 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 66/100 1.8G 0.3266 0.3334 0.8684 23 640: 100%|██████████| 21/21 [00:01<00:00, 10.93it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.62it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.99\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 67/100 1.8G 0.3321 0.3249 0.8816 21 640: 100%|██████████| 21/21 [00:01<00:00, 11.48it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:00<00:00, 11.23it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.987\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 68/100 1.8G 0.3352 0.3497 0.8954 23 640: 100%|██████████| 21/21 [00:02<00:00, 10.25it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.43it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.999 1 0.995 0.987\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 69/100 1.8G 0.3245 0.3104 0.8817 20 640: 100%|██████████| 21/21 [00:02<00:00, 9.83it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.94it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.999 1 0.995 0.989\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 70/100 1.8G 0.3165 0.3144 0.8877 17 640: 100%|██████████| 21/21 [00:02<00:00, 8.40it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.82it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.999 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 71/100 1.8G 0.3226 0.3188 0.8911 19 640: 100%|██████████| 21/21 [00:02<00:00, 9.01it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.58it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.989\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 72/100 1.8G 0.3254 0.3117 0.8899 16 640: 100%|██████████| 21/21 [00:02<00:00, 10.48it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.61it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.989\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 73/100 1.8G 0.3068 0.3096 0.8777 16 640: 100%|██████████| 21/21 [00:02<00:00, 9.20it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.74it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 74/100 1.8G 0.304 0.3202 0.8864 15 640: 100%|██████████| 21/21 [00:02<00:00, 8.55it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.05it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 75/100 1.8G 0.3009 0.2982 0.8767 11 640: 100%|██████████| 21/21 [00:02<00:00, 9.05it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.47it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.989\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 76/100 1.8G 0.2908 0.291 0.8573 19 640: 100%|██████████| 21/21 [00:02<00:00, 9.36it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.98it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 77/100 1.8G 0.3373 0.321 0.8984 16 640: 100%|██████████| 21/21 [00:02<00:00, 10.20it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 6.70it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.999 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 78/100 1.8G 0.3109 0.2995 0.8818 21 640: 100%|██████████| 21/21 [00:02<00:00, 9.70it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.46it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.99\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 79/100 1.8G 0.3021 0.2892 0.8795 24 640: 100%|██████████| 21/21 [00:02<00:00, 9.78it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.68it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.99\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 80/100 1.8G 0.3008 0.2984 0.8642 17 640: 100%|██████████| 21/21 [00:01<00:00, 11.41it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.96it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.988\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 81/100 1.8G 0.2871 0.2756 0.8619 20 640: 100%|██████████| 21/21 [00:02<00:00, 10.08it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.80it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.989\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 82/100 1.8G 0.2924 0.2877 0.8739 16 640: 100%|██████████| 21/21 [00:01<00:00, 11.43it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.86it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.989\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 83/100 1.8G 0.29 0.2801 0.8761 20 640: 100%|██████████| 21/21 [00:01<00:00, 11.66it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.29it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.99\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 84/100 1.8G 0.2914 0.2745 0.8737 18 640: 100%|██████████| 21/21 [00:02<00:00, 9.96it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.28it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.993\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 85/100 1.8G 0.289 0.2627 0.8733 16 640: 100%|██████████| 21/21 [00:02<00:00, 10.09it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.99it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.994\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 86/100 1.8G 0.2722 0.2733 0.879 13 640: 100%|██████████| 21/21 [00:02<00:00, 10.11it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.56it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.99\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 87/100 1.8G 0.2829 0.2838 0.8741 12 640: 100%|██████████| 21/21 [00:02<00:00, 10.10it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.30it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.99\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 88/100 1.8G 0.2888 0.2796 0.8791 14 640: 100%|██████████| 21/21 [00:02<00:00, 10.10it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.02it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 89/100 1.8G 0.2877 0.2732 0.8758 21 640: 100%|██████████| 21/21 [00:01<00:00, 10.55it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.85it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.988\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 90/100 1.8G 0.2701 0.2776 0.8563 17 640: 100%|██████████| 21/21 [00:02<00:00, 10.26it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.92it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.99\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Closing dataloader mosaic\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n",
- "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
- "To disable this warning, you can either:\n",
- "\t- Avoid using `tokenizers` before the fork if possible\n",
- "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 91/100 1.8G 0.1962 0.2624 0.8172 8 640: 100%|██████████| 21/21 [00:02<00:00, 8.70it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.81it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.993\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 92/100 1.8G 0.1895 0.2603 0.8005 8 640: 100%|██████████| 21/21 [00:02<00:00, 9.96it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.87it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.992\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 93/100 1.8G 0.1873 0.2582 0.8103 8 640: 100%|██████████| 21/21 [00:01<00:00, 10.75it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.63it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 94/100 1.8G 0.1913 0.2502 0.7867 8 640: 100%|██████████| 21/21 [00:02<00:00, 9.93it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.06it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.992\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 95/100 1.8G 0.1895 0.249 0.7942 8 640: 100%|██████████| 21/21 [00:02<00:00, 10.27it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.45it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.992\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 96/100 1.8G 0.192 0.2474 0.7928 8 640: 100%|██████████| 21/21 [00:02<00:00, 10.04it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 10.63it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.991\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 97/100 1.8G 0.1749 0.2389 0.7923 8 640: 100%|██████████| 21/21 [00:02<00:00, 9.44it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 9.46it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.994\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 98/100 1.8G 0.1795 0.2473 0.7998 8 640: 100%|██████████| 21/21 [00:02<00:00, 9.69it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 7.51it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.994\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 99/100 1.8G 0.1911 0.2461 0.8137 8 640: 100%|██████████| 21/21 [00:02<00:00, 9.87it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.51it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.994\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- " Epoch GPU_mem box_loss cls_loss dfl_loss Instances Size\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- " 0%| | 0/21 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " 100/100 1.8G 0.1805 0.2462 0.7937 8 640: 100%|██████████| 21/21 [00:02<00:00, 9.23it/s]\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 0%| | 0/11 [00:00, ?it/s]UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 8.25it/s]"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.994\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "100 epochs completed in 0.105 hours.\n",
- "Optimizer stripped from runs/detect/yolov8n_car_parts_finetune/weights/last.pt, 6.2MB\n",
- "Optimizer stripped from runs/detect/yolov8n_car_parts_finetune/weights/best.pt, 6.2MB\n",
- "\n",
- "Validating runs/detect/yolov8n_car_parts_finetune/weights/best.pt...\n",
- "Ultralytics 8.3.159 🚀 Python-3.12.3 torch-2.7.1+cu126 CUDA:0 (NVIDIA GeForce RTX 3070 Ti, 8192MiB)\n",
- "Model summary (fused): 72 layers, 3,006,428 parameters, 0 gradients, 8.1 GFLOPs\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- "UserWarning: Deterministic behavior was enabled with either `torch.use_deterministic_algorithms(True)` or `at::Context::setDeterministicAlgorithms(true)`, but this operation is not deterministic because it uses CuBLAS and you have CUDA >= 10.2. To enable deterministic behavior in this case, you must set an environment variable before running your PyTorch application: CUBLAS_WORKSPACE_CONFIG=:4096:8 or CUBLAS_WORKSPACE_CONFIG=:16:8. For more information, go to https://docs.nvidia.com/cuda/cublas/index.html#results-reproducibility (Triggered internally at /pytorch/aten/src/ATen/Context.cpp:233.)\n",
- " Class Images Instances Box(P R mAP50 mAP50-95): 100%|██████████| 11/11 [00:01<00:00, 5.72it/s]\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- " all 168 168 0.998 1 0.995 0.994\n",
- " control unit 42 42 0.998 1 0.995 0.995\n",
- " loud speaker 42 42 0.998 1 0.995 0.995\n",
- " Motor 42 42 0.999 1 0.995 0.991\n",
- "window regulator assembly 42 42 0.998 1 0.995 0.995\n",
- "Speed: 0.2ms preprocess, 1.6ms inference, 0.0ms loss, 3.6ms postprocess per image\n",
- "Results saved to \u001b[1mruns/detect/yolov8n_car_parts_finetune\u001b[0m\n",
- "\n",
- "--- Training finished! ---\n",
- "Your trained model and results are saved in the 'runs/detect/' directory.\n"
- ]
- }
- ],
- "source": [
- "from ultralytics import YOLO\n",
- "\n",
- "# --- 1. Load a Pre-trained Model ---\n",
- "# 'yolov8n.pt' is the smallest and fastest model, ideal for starting.\n",
- "# You can also use 'yolov8s.pt', 'yolov8m.pt', etc., for better accuracy at the cost of speed and memory.\n",
- "model = YOLO('yolov8n.pt')\n",
- "\n",
- "# --- 2. Define the path to your dataset YAML file ---\n",
- "dataset_yaml_path = '/mnt/c/Users/mohsinali.mirza/Downloads/Grounding/car_parts.yaml'\n",
- "\n",
- "# --- 3. Start Fine-Tuning ---\n",
- "# The training results, including model weights, will be saved in a 'runs/detect/train' directory.\n",
- "results = model.train(\n",
- " data=dataset_yaml_path,\n",
- " epochs=100, # Number of training epochs. Start with 100 and see the results.\n",
- " imgsz=640, # Image size for training. 640 is a common choice.\n",
- " batch=8, # Batch size. Lower this if you run into CUDA memory issues (e.g., to 4 or 2).\n",
- " name='yolov8n_car_parts_finetune' # A name for your training run\n",
- ")\n",
- "\n",
- "print(\"\\n--- Training finished! ---\")\n",
- "print(\"Your trained model and results are saved in the 'runs/detect/' directory.\")"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "id": "ca35af88",
- "metadata": {},
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "venv",
- "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.12.3"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
diff --git a/Annotation_and_fine-tuning/requirements.txt b/Annotation_and_fine-tuning/requirements.txt
deleted file mode 100644
index 69c56dd..0000000
--- a/Annotation_and_fine-tuning/requirements.txt
+++ /dev/null
@@ -1,90 +0,0 @@
-asttokens==3.0.0
-certifi==2025.6.15
-charset-normalizer==3.4.2
-comm==0.2.2
-contourpy==1.3.2
-cycler==0.12.1
-debugpy==1.8.14
-decorator==5.2.1
-defusedxml==0.7.1
-executing==2.2.0
-filelock==3.18.0
-fonttools==4.58.4
-fsspec==2025.5.1
-hf-xet==1.1.5
-huggingface-hub==0.33.1
-idna==3.10
-ipykernel==6.29.5
-ipython==9.3.0
-ipython_pygments_lexers==1.1.1
-ipywidgets==8.1.7
-jedi==0.19.2
-Jinja2==3.1.6
-jupyter_client==8.6.3
-jupyter_core==5.8.1
-jupyterlab_widgets==3.0.15
-kiwisolver==1.4.8
-MarkupSafe==3.0.2
-matplotlib==3.10.3
-matplotlib-inline==0.1.7
-mpmath==1.3.0
-nest-asyncio==1.6.0
-networkx==3.5
-numpy==2.3.1
-nvidia-cublas-cu12==12.6.4.1
-nvidia-cuda-cupti-cu12==12.6.80
-nvidia-cuda-nvrtc-cu12==12.6.77
-nvidia-cuda-runtime-cu12==12.6.77
-nvidia-cudnn-cu12==9.5.1.17
-nvidia-cufft-cu12==11.3.0.4
-nvidia-cufile-cu12==1.11.1.6
-nvidia-curand-cu12==10.3.7.77
-nvidia-cusolver-cu12==11.7.1.2
-nvidia-cusparse-cu12==12.5.4.2
-nvidia-cusparselt-cu12==0.6.3
-nvidia-nccl-cu12==2.26.2
-nvidia-nvjitlink-cu12==12.6.85
-nvidia-nvtx-cu12==12.6.77
-opencv-python==4.11.0.86
-packaging==25.0
-pandas==2.3.0
-parso==0.8.4
-pexpect==4.9.0
-pillow==11.2.1
-platformdirs==4.3.8
-prompt_toolkit==3.0.51
-psutil==7.0.0
-ptyprocess==0.7.0
-pure_eval==0.2.3
-py-cpuinfo==9.0.0
-Pygments==2.19.2
-pyparsing==3.2.3
-python-dateutil==2.9.0.post0
-pytz==2025.2
-PyYAML==6.0.2
-pyzmq==27.0.0
-regex==2024.11.6
-requests==2.32.4
-safetensors==0.5.3
-scipy==1.16.0
-setuptools==80.9.0
-six==1.17.0
-stack-data==0.6.3
-supervision==0.25.1
-sympy==1.14.0
-tokenizers==0.21.2
-torch==2.7.1
-torchaudio==2.7.1
-torchvision==0.22.1
-tornado==6.5.1
-tqdm==4.67.1
-traitlets==5.14.3
-transformers==4.53.0
-triton==3.3.1
-typing_extensions==4.14.0
-tzdata==2025.2
-ultralytics==8.3.159
-ultralytics-thop==2.0.14
-urllib3==2.5.0
-wcwidth==0.2.13
-widgetsnbextension==4.0.14
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/F1_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/F1_curve.png
deleted file mode 100644
index 722f18e..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/F1_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/PR_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/PR_curve.png
deleted file mode 100644
index 228e35a..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/PR_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/P_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/P_curve.png
deleted file mode 100644
index 56d6dae..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/P_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/R_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/R_curve.png
deleted file mode 100644
index fd45404..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/R_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/args.yaml b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/args.yaml
deleted file mode 100644
index 4dc0d9b..0000000
--- a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/args.yaml
+++ /dev/null
@@ -1,105 +0,0 @@
-task: detect
-mode: train
-model: yolov8n.pt
-data: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/car_parts.yaml
-epochs: 100
-time: null
-patience: 100
-batch: 8
-imgsz: 640
-save: true
-save_period: -1
-cache: false
-device: null
-workers: 8
-project: null
-name: yolov8n_car_parts_aggressive_aug
-exist_ok: false
-pretrained: true
-optimizer: auto
-verbose: true
-seed: 0
-deterministic: true
-single_cls: false
-rect: false
-cos_lr: false
-close_mosaic: 10
-resume: false
-amp: true
-fraction: 1.0
-profile: false
-freeze: null
-multi_scale: false
-overlap_mask: true
-mask_ratio: 4
-dropout: 0.0
-val: true
-split: val
-save_json: false
-conf: null
-iou: 0.7
-max_det: 300
-half: false
-dnn: false
-plots: true
-source: null
-vid_stride: 1
-stream_buffer: false
-visualize: false
-augment: false
-agnostic_nms: false
-classes: null
-retina_masks: false
-embed: null
-show: false
-save_frames: false
-save_txt: false
-save_conf: false
-save_crop: false
-show_labels: true
-show_conf: true
-show_boxes: true
-line_width: null
-format: torchscript
-keras: false
-optimize: false
-int8: false
-dynamic: false
-simplify: true
-opset: null
-workspace: null
-nms: false
-lr0: 0.01
-lrf: 0.01
-momentum: 0.937
-weight_decay: 0.0005
-warmup_epochs: 3.0
-warmup_momentum: 0.8
-warmup_bias_lr: 0.1
-box: 7.5
-cls: 0.5
-dfl: 1.5
-pose: 12.0
-kobj: 1.0
-nbs: 64
-hsv_h: 0.015
-hsv_s: 0.7
-hsv_v: 0.4
-degrees: 25.0
-translate: 0.15
-scale: 0.6
-shear: 5.0
-perspective: 0.0005
-flipud: 0.5
-fliplr: 0.5
-bgr: 0.0
-mosaic: 1.0
-mixup: 0.5
-cutmix: 0.0
-copy_paste: 0.3
-copy_paste_mode: flip
-auto_augment: randaugment
-erasing: 0.4
-cfg: null
-tracker: botsort.yaml
-save_dir: runs/detect/yolov8n_car_parts_aggressive_aug
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/confusion_matrix.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/confusion_matrix.png
deleted file mode 100644
index 97e59a6..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/confusion_matrix.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/confusion_matrix_normalized.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/confusion_matrix_normalized.png
deleted file mode 100644
index 3eb1108..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/confusion_matrix_normalized.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/labels.jpg
deleted file mode 100644
index 383e9ba..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/results.csv b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/results.csv
deleted file mode 100644
index 3012cc6..0000000
--- a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/results.csv
+++ /dev/null
@@ -1,101 +0,0 @@
-epoch,time,train/box_loss,train/cls_loss,train/dfl_loss,metrics/precision(B),metrics/recall(B),metrics/mAP50(B),metrics/mAP50-95(B),val/box_loss,val/cls_loss,val/dfl_loss,lr/pg0,lr/pg1,lr/pg2
-1,107.665,1.20679,1.49314,1.38835,0.98025,0.98675,0.99426,0.72971,0.95427,0.79722,1.08283,0.000415971,0.000415971,0.000415971
-2,212.274,1.0778,0.90711,1.28548,0.99566,0.99774,0.99461,0.74562,0.95165,0.49985,1.08199,0.000824395,0.000824395,0.000824395
-3,314.118,1.02928,0.76606,1.25607,0.9982,0.99936,0.99477,0.71931,1.0596,0.55811,1.12405,0.00122457,0.00122457,0.00122457
-4,416.83,0.99985,0.69122,1.23959,0.9991,0.99938,0.99459,0.74283,1.0355,0.44094,1.09079,0.00121287,0.00121287,0.00121287
-5,515.655,0.97708,0.65669,1.22357,0.99814,0.99938,0.99487,0.77712,0.86758,0.41337,1.04557,0.0012005,0.0012005,0.0012005
-6,617.973,0.94919,0.61559,1.20881,0.99784,0.99938,0.99465,0.84432,0.62878,0.34875,0.93352,0.00118812,0.00118812,0.00118812
-7,716.391,0.90629,0.57843,1.17889,0.99757,0.99881,0.99457,0.85684,0.61074,0.36726,0.94043,0.00117575,0.00117575,0.00117575
-8,812.07,0.88872,0.56947,1.17108,0.99854,0.99938,0.99475,0.81298,0.7893,0.35132,0.98761,0.00116337,0.00116337,0.00116337
-9,911.743,0.87227,0.55105,1.16349,0.99924,0.99938,0.9947,0.81097,0.78029,0.35462,0.9947,0.001151,0.001151,0.001151
-10,1008.72,0.86109,0.53339,1.15553,0.99907,0.99938,0.99461,0.82135,0.77954,0.33846,0.96646,0.00113863,0.00113863,0.00113863
-11,1112.96,0.84367,0.5214,1.14614,0.99919,0.99938,0.99442,0.78169,0.90929,0.37584,1.03156,0.00112625,0.00112625,0.00112625
-12,1209.95,0.83638,0.51721,1.14393,0.99901,0.99938,0.99473,0.82641,0.75183,0.33962,0.97174,0.00111388,0.00111388,0.00111388
-13,1308.6,0.82989,0.5143,1.14264,0.9991,0.99919,0.99464,0.84193,0.6907,0.32187,0.93372,0.0011015,0.0011015,0.0011015
-14,1404.24,0.81499,0.49892,1.13344,0.99892,0.99938,0.99487,0.84613,0.67875,0.31027,0.93285,0.00108913,0.00108913,0.00108913
-15,1505.32,0.80445,0.48726,1.12259,0.99907,0.99938,0.99453,0.84869,0.65623,0.30338,0.92587,0.00107675,0.00107675,0.00107675
-16,1602.7,0.80527,0.48846,1.1273,0.99908,0.99938,0.99462,0.85383,0.64788,0.33348,0.91503,0.00106437,0.00106437,0.00106437
-17,1702.57,0.7878,0.47662,1.12232,0.99882,0.99938,0.99478,0.86226,0.62185,0.28894,0.9086,0.001052,0.001052,0.001052
-18,1799.71,0.78003,0.46527,1.11487,0.99958,0.99969,0.99489,0.86251,0.63687,0.2829,0.91222,0.00103962,0.00103962,0.00103962
-19,1900.92,0.76893,0.45897,1.1067,0.99908,0.99938,0.99455,0.8593,0.62654,0.29058,0.91357,0.00102725,0.00102725,0.00102725
-20,1999.83,0.77171,0.46226,1.1101,0.99909,0.99932,0.99452,0.87161,0.59252,0.28145,0.90125,0.00101488,0.00101488,0.00101488
-21,2099.08,0.76974,0.45762,1.10281,0.99863,0.99929,0.99477,0.86714,0.59834,0.28364,0.89907,0.0010025,0.0010025,0.0010025
-22,2197.73,0.74842,0.44719,1.09734,0.99924,0.99938,0.99477,0.88039,0.54648,0.26553,0.89141,0.000990125,0.000990125,0.000990125
-23,2295.63,0.76074,0.44794,1.1025,0.99918,0.99938,0.99463,0.85826,0.65685,0.28441,0.91387,0.00097775,0.00097775,0.00097775
-24,2388.16,0.74983,0.44275,1.098,0.99956,0.99969,0.99489,0.89103,0.51947,0.26201,0.87344,0.000965375,0.000965375,0.000965375
-25,2484.86,0.74487,0.44608,1.09456,0.99923,0.99938,0.99468,0.87306,0.57669,0.25849,0.89393,0.000953,0.000953,0.000953
-26,2581.75,0.73718,0.43703,1.08969,0.99923,0.99938,0.99476,0.88891,0.53739,0.25798,0.88422,0.000940625,0.000940625,0.000940625
-27,2680.09,0.73194,0.42981,1.08441,0.99924,0.99938,0.99451,0.86916,0.61322,0.26984,0.89598,0.00092825,0.00092825,0.00092825
-28,2777.22,0.73027,0.42713,1.07732,0.99919,0.99938,0.99471,0.86503,0.61223,0.26666,0.89347,0.000915875,0.000915875,0.000915875
-29,2872.07,0.71365,0.41519,1.07475,0.99918,0.99938,0.99465,0.89519,0.5119,0.2398,0.86806,0.0009035,0.0009035,0.0009035
-30,2969.86,0.71971,0.41858,1.07774,0.9992,0.99938,0.99463,0.88401,0.56823,0.25281,0.88508,0.000891125,0.000891125,0.000891125
-31,3070.57,0.71538,0.41933,1.0787,0.99924,0.99938,0.99489,0.88309,0.57678,0.25361,0.89381,0.00087875,0.00087875,0.00087875
-32,3170.44,0.71729,0.41791,1.07771,0.99925,0.99938,0.99471,0.87533,0.58978,0.25821,0.89023,0.000866375,0.000866375,0.000866375
-33,3271.82,0.70724,0.40713,1.07222,0.99925,0.99938,0.99489,0.87807,0.5839,0.25719,0.89023,0.000854,0.000854,0.000854
-34,3369.17,0.70173,0.40477,1.06753,0.99957,0.99969,0.99495,0.90132,0.50335,0.23663,0.8702,0.000841625,0.000841625,0.000841625
-35,3463.73,0.70398,0.40595,1.07017,0.99923,0.99938,0.99455,0.87857,0.58285,0.2498,0.89078,0.00082925,0.00082925,0.00082925
-36,3563.74,0.69215,0.39883,1.06238,0.99952,0.99969,0.99489,0.90391,0.51048,0.2376,0.87078,0.000816875,0.000816875,0.000816875
-37,3660.4,0.69427,0.40034,1.06344,0.99954,0.99969,0.99481,0.88015,0.57972,0.24943,0.88568,0.0008045,0.0008045,0.0008045
-38,3759.98,0.69011,0.39726,1.06091,0.99921,0.99938,0.99445,0.89123,0.54013,0.24348,0.88259,0.000792125,0.000792125,0.000792125
-39,3858.67,0.68511,0.39554,1.0591,0.99954,0.99969,0.99484,0.88803,0.54988,0.24553,0.87257,0.00077975,0.00077975,0.00077975
-40,3955.97,0.68282,0.39359,1.05676,0.99926,0.99938,0.99485,0.88598,0.55281,0.24448,0.88292,0.000767375,0.000767375,0.000767375
-41,4053.45,0.67863,0.39001,1.05855,0.99919,0.99938,0.99475,0.8911,0.53485,0.23472,0.87629,0.000755,0.000755,0.000755
-42,4152.96,0.66772,0.37824,1.04427,0.99916,0.99938,0.99494,0.8886,0.54429,0.23822,0.87412,0.000742625,0.000742625,0.000742625
-43,4249.05,0.67394,0.38958,1.05202,0.99911,0.99938,0.99466,0.86946,0.60597,0.24825,0.89343,0.00073025,0.00073025,0.00073025
-44,4344.92,0.67134,0.38854,1.05025,0.9992,0.99938,0.99491,0.87272,0.59786,0.24884,0.88956,0.000717875,0.000717875,0.000717875
-45,4442.25,0.67074,0.38265,1.0514,0.99919,0.99938,0.99478,0.87782,0.57708,0.23825,0.88684,0.0007055,0.0007055,0.0007055
-46,4542.86,0.65816,0.37811,1.04404,0.9992,0.99938,0.99485,0.89678,0.51706,0.23379,0.86219,0.000693125,0.000693125,0.000693125
-47,4641.26,0.66155,0.38115,1.04364,0.99925,0.99938,0.99451,0.87571,0.59949,0.24747,0.89237,0.00068075,0.00068075,0.00068075
-48,4740.39,0.66498,0.38062,1.0529,0.99922,0.99938,0.99482,0.89875,0.51524,0.23104,0.86866,0.000668375,0.000668375,0.000668375
-49,4835.09,0.65346,0.37645,1.04756,0.99919,0.99938,0.99471,0.89407,0.53595,0.23234,0.86912,0.000656,0.000656,0.000656
-50,4930.32,0.652,0.37492,1.04455,0.99919,0.99938,0.99483,0.86569,0.64296,0.24645,0.89825,0.000643625,0.000643625,0.000643625
-51,5028.43,0.64515,0.36456,1.03528,0.99922,0.99938,0.99441,0.89066,0.53419,0.22698,0.87091,0.00063125,0.00063125,0.00063125
-52,5123.54,0.63893,0.36139,1.03404,0.99922,0.99938,0.99454,0.89828,0.51992,0.22158,0.86599,0.000618875,0.000618875,0.000618875
-53,5219.35,0.64453,0.36132,1.03669,0.99922,0.99938,0.99483,0.88769,0.55064,0.22546,0.86971,0.0006065,0.0006065,0.0006065
-54,5315.82,0.63264,0.35659,1.03466,0.99918,0.99938,0.99466,0.8874,0.5665,0.22535,0.87198,0.000594125,0.000594125,0.000594125
-55,5413.1,0.64146,0.36395,1.03511,0.99912,0.99938,0.9948,0.90563,0.50583,0.21785,0.85783,0.00058175,0.00058175,0.00058175
-56,5512.14,0.6346,0.36024,1.03027,0.99941,0.99969,0.99495,0.8956,0.54407,0.22317,0.867,0.000569375,0.000569375,0.000569375
-57,5608.91,0.62687,0.35495,1.02971,0.99921,0.99938,0.99466,0.90108,0.51273,0.21582,0.86359,0.000557,0.000557,0.000557
-58,5708.04,0.62933,0.35103,1.02814,0.99907,0.99938,0.99468,0.89544,0.52007,0.22005,0.86602,0.000544625,0.000544625,0.000544625
-59,5807.09,0.63033,0.35492,1.03162,0.99918,0.99938,0.99491,0.87817,0.58994,0.22866,0.88158,0.00053225,0.00053225,0.00053225
-60,5905.97,0.62568,0.34762,1.02563,0.99909,0.99938,0.99471,0.88738,0.54866,0.22057,0.87016,0.000519875,0.000519875,0.000519875
-61,6001.33,0.63322,0.36007,1.03499,0.99902,0.99938,0.99441,0.90615,0.47893,0.20923,0.85278,0.0005075,0.0005075,0.0005075
-62,6096.57,0.62318,0.34799,1.02575,0.99917,0.99938,0.99471,0.89697,0.50907,0.21597,0.8637,0.000495125,0.000495125,0.000495125
-63,6196.68,0.61992,0.34673,1.02012,0.9991,0.99938,0.99467,0.8975,0.51208,0.21305,0.86518,0.00048275,0.00048275,0.00048275
-64,6295.92,0.61761,0.35052,1.01748,0.99911,0.99938,0.99467,0.89576,0.51699,0.21254,0.86256,0.000470375,0.000470375,0.000470375
-65,6394.93,0.61291,0.34535,1.02286,0.99911,0.99938,0.99475,0.90338,0.50358,0.20888,0.857,0.000458,0.000458,0.000458
-66,6494.36,0.60978,0.34309,1.02056,0.99912,0.99938,0.99443,0.8972,0.51036,0.2126,0.8627,0.000445625,0.000445625,0.000445625
-67,6592.94,0.60324,0.3408,1.01697,0.9992,0.99938,0.99483,0.90029,0.51215,0.21159,0.86441,0.00043325,0.00043325,0.00043325
-68,6690.32,0.60952,0.34105,1.02119,0.99905,0.99938,0.99493,0.90225,0.49707,0.20372,0.86038,0.000420875,0.000420875,0.000420875
-69,6787.75,0.60352,0.33723,1.02056,0.99919,0.99938,0.99488,0.91194,0.46677,0.20113,0.8511,0.0004085,0.0004085,0.0004085
-70,6887.49,0.60112,0.334,1.01461,0.99922,0.99938,0.9947,0.90956,0.49142,0.20135,0.85229,0.000396125,0.000396125,0.000396125
-71,6983.47,0.59698,0.33217,1.01263,0.9992,0.99938,0.99475,0.9071,0.49246,0.20378,0.85436,0.00038375,0.00038375,0.00038375
-72,7084.01,0.59089,0.32525,1.0099,0.99948,0.99969,0.99488,0.91499,0.47166,0.1971,0.84817,0.000371375,0.000371375,0.000371375
-73,7181.32,0.59568,0.33501,1.01714,0.99947,0.99969,0.99483,0.91506,0.46088,0.19822,0.84765,0.000359,0.000359,0.000359
-74,7277.51,0.58816,0.32332,1.00866,0.99908,0.99938,0.99473,0.90087,0.51152,0.20701,0.85865,0.000346625,0.000346625,0.000346625
-75,7376.02,0.58946,0.33013,1.01269,0.99923,0.99938,0.99495,0.91447,0.46086,0.19476,0.8508,0.00033425,0.00033425,0.00033425
-76,7476.23,0.58269,0.32804,1.00501,0.99916,0.99938,0.99492,0.90185,0.50089,0.20426,0.85767,0.000321875,0.000321875,0.000321875
-77,7571.02,0.57974,0.32159,1.00223,0.99917,0.99938,0.99486,0.90876,0.49603,0.20119,0.85289,0.0003095,0.0003095,0.0003095
-78,7668.92,0.58149,0.32313,1.00281,0.99914,0.99938,0.99481,0.91305,0.46935,0.19727,0.84913,0.000297125,0.000297125,0.000297125
-79,7764.65,0.58331,0.31913,0.99942,0.99915,0.99938,0.99485,0.91522,0.45192,0.19585,0.84426,0.00028475,0.00028475,0.00028475
-80,7860.51,0.58127,0.32444,1.00545,0.99946,0.99969,0.99489,0.91272,0.4792,0.20037,0.84885,0.000272375,0.000272375,0.000272375
-81,7955.15,0.5723,0.31949,1.00348,0.99956,0.99969,0.99471,0.92184,0.4424,0.19105,0.84103,0.00026,0.00026,0.00026
-82,8050.96,0.5736,0.31785,1.00316,0.99918,0.99938,0.9946,0.9091,0.47622,0.20067,0.85095,0.000247625,0.000247625,0.000247625
-83,8149.41,0.56511,0.31216,0.99655,0.99907,0.99938,0.99456,0.91885,0.43823,0.19501,0.84001,0.00023525,0.00023525,0.00023525
-84,8248.31,0.57088,0.31526,0.99687,0.9992,0.99938,0.99443,0.91021,0.47212,0.19679,0.84635,0.000222875,0.000222875,0.000222875
-85,8347.48,0.56493,0.30997,0.99795,0.9992,0.99938,0.99451,0.90339,0.49447,0.20152,0.85296,0.0002105,0.0002105,0.0002105
-86,8442.51,0.56601,0.31283,0.99594,0.9992,0.99938,0.99459,0.91615,0.45312,0.19181,0.84235,0.000198125,0.000198125,0.000198125
-87,8540.86,0.56761,0.3107,0.99677,0.9992,0.99938,0.99458,0.91099,0.47436,0.19643,0.84735,0.00018575,0.00018575,0.00018575
-88,8636.07,0.55965,0.30554,0.99121,0.99922,0.99938,0.99448,0.91404,0.47234,0.19421,0.8461,0.000173375,0.000173375,0.000173375
-89,8738.81,0.55214,0.30418,0.9889,0.99917,0.99938,0.99447,0.90231,0.51165,0.20084,0.85878,0.000161,0.000161,0.000161
-90,8834.65,0.55281,0.30171,0.98942,0.99915,0.99938,0.99447,0.90962,0.48521,0.19521,0.84887,0.000148625,0.000148625,0.000148625
-91,8930.36,0.38623,0.189,0.87754,0.99914,0.99938,0.99446,0.91037,0.48288,0.19973,0.84519,0.00013625,0.00013625,0.00013625
-92,9030.92,0.37337,0.17885,0.87604,0.99917,0.99938,0.99455,0.91548,0.45898,0.19233,0.84163,0.000123875,0.000123875,0.000123875
-93,9129.86,0.36988,0.17506,0.86988,0.99922,0.99938,0.99477,0.92443,0.43526,0.18667,0.83458,0.0001115,0.0001115,0.0001115
-94,9228.55,0.3616,0.17275,0.86988,0.99952,0.99969,0.99492,0.92638,0.4306,0.18467,0.83361,9.9125e-05,9.9125e-05,9.9125e-05
-95,9328.32,0.3561,0.16959,0.86724,0.99955,0.99969,0.9949,0.92547,0.43154,0.18213,0.83431,8.675e-05,8.675e-05,8.675e-05
-96,9423.51,0.35854,0.16927,0.86362,0.99956,0.99969,0.99485,0.92497,0.44053,0.1831,0.8365,7.4375e-05,7.4375e-05,7.4375e-05
-97,9519.15,0.3523,0.16731,0.86289,0.99956,0.99969,0.99483,0.92189,0.4476,0.18538,0.83867,6.2e-05,6.2e-05,6.2e-05
-98,9613.88,0.348,0.16561,0.86186,0.99957,0.99969,0.99483,0.92324,0.44566,0.18559,0.83603,4.9625e-05,4.9625e-05,4.9625e-05
-99,9712.89,0.3414,0.16307,0.85745,0.99956,0.99969,0.99484,0.92351,0.44139,0.18431,0.8348,3.725e-05,3.725e-05,3.725e-05
-100,9809.18,0.34401,0.16247,0.85795,0.99956,0.99969,0.99483,0.92067,0.44634,0.1845,0.83595,2.4875e-05,2.4875e-05,2.4875e-05
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/results.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/results.png
deleted file mode 100644
index 5311c7b..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/results.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch0.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch0.jpg
deleted file mode 100644
index 4a4e680..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch0.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch1.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch1.jpg
deleted file mode 100644
index 6c171f4..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch1.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch2.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch2.jpg
deleted file mode 100644
index b03ccf8..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch2.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch53910.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch53910.jpg
deleted file mode 100644
index b790371..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch53910.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch53911.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch53911.jpg
deleted file mode 100644
index bcc2937..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch53911.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch53912.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch53912.jpg
deleted file mode 100644
index 278023b..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/train_batch53912.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch0_labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch0_labels.jpg
deleted file mode 100644
index 35705f2..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch0_labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch0_pred.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch0_pred.jpg
deleted file mode 100644
index 9e03853..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch0_pred.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch1_labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch1_labels.jpg
deleted file mode 100644
index cf62e04..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch1_labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch1_pred.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch1_pred.jpg
deleted file mode 100644
index 9db558a..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch1_pred.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch2_labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch2_labels.jpg
deleted file mode 100644
index 78d5a01..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch2_labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch2_pred.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch2_pred.jpg
deleted file mode 100644
index d1b2849..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/val_batch2_pred.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/weights/best.pt b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/weights/best.pt
deleted file mode 100644
index a5ce3f2..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/weights/best.pt and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/weights/last.pt b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/weights/last.pt
deleted file mode 100644
index e125372..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug/weights/last.pt and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/F1_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/F1_curve.png
deleted file mode 100644
index b4a5878..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/F1_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/PR_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/PR_curve.png
deleted file mode 100644
index cd42f18..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/PR_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/P_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/P_curve.png
deleted file mode 100644
index 85219fc..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/P_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/R_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/R_curve.png
deleted file mode 100644
index a70d0ee..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/R_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/args.yaml b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/args.yaml
deleted file mode 100644
index 36cb48a..0000000
--- a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/args.yaml
+++ /dev/null
@@ -1,105 +0,0 @@
-task: detect
-mode: train
-model: yolov8n.pt
-data: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/car_parts.yaml
-epochs: 100
-time: null
-patience: 100
-batch: 8
-imgsz: 640
-save: true
-save_period: -1
-cache: false
-device: null
-workers: 8
-project: null
-name: yolov8n_car_parts_aggressive_aug2
-exist_ok: false
-pretrained: true
-optimizer: auto
-verbose: true
-seed: 0
-deterministic: true
-single_cls: false
-rect: false
-cos_lr: false
-close_mosaic: 10
-resume: false
-amp: true
-fraction: 1.0
-profile: false
-freeze: null
-multi_scale: false
-overlap_mask: true
-mask_ratio: 4
-dropout: 0.0
-val: true
-split: val
-save_json: false
-conf: null
-iou: 0.7
-max_det: 300
-half: false
-dnn: false
-plots: true
-source: null
-vid_stride: 1
-stream_buffer: false
-visualize: false
-augment: false
-agnostic_nms: false
-classes: null
-retina_masks: false
-embed: null
-show: false
-save_frames: false
-save_txt: false
-save_conf: false
-save_crop: false
-show_labels: true
-show_conf: true
-show_boxes: true
-line_width: null
-format: torchscript
-keras: false
-optimize: false
-int8: false
-dynamic: false
-simplify: true
-opset: null
-workspace: null
-nms: false
-lr0: 0.01
-lrf: 0.01
-momentum: 0.937
-weight_decay: 0.0005
-warmup_epochs: 3.0
-warmup_momentum: 0.8
-warmup_bias_lr: 0.1
-box: 7.5
-cls: 0.5
-dfl: 1.5
-pose: 12.0
-kobj: 1.0
-nbs: 64
-hsv_h: 0.015
-hsv_s: 0.7
-hsv_v: 0.4
-degrees: 25.0
-translate: 0.15
-scale: 0.6
-shear: 5.0
-perspective: 0.0005
-flipud: 0.5
-fliplr: 0.5
-bgr: 0.0
-mosaic: 1.0
-mixup: 0.5
-cutmix: 0.0
-copy_paste: 0.3
-copy_paste_mode: flip
-auto_augment: randaugment
-erasing: 0.4
-cfg: null
-tracker: botsort.yaml
-save_dir: runs/detect/yolov8n_car_parts_aggressive_aug2
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/confusion_matrix.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/confusion_matrix.png
deleted file mode 100644
index fa72ff8..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/confusion_matrix.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/confusion_matrix_normalized.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/confusion_matrix_normalized.png
deleted file mode 100644
index 571a624..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/confusion_matrix_normalized.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/labels.jpg
deleted file mode 100644
index 2cb2360..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/results.csv b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/results.csv
deleted file mode 100644
index bc5413b..0000000
--- a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/results.csv
+++ /dev/null
@@ -1,101 +0,0 @@
-epoch,time,train/box_loss,train/cls_loss,train/dfl_loss,metrics/precision(B),metrics/recall(B),metrics/mAP50(B),metrics/mAP50-95(B),val/box_loss,val/cls_loss,val/dfl_loss,lr/pg0,lr/pg1,lr/pg2
-1,270.978,1.39382,2.17176,1.5317,0.89129,0.89701,0.93905,0.50627,1.5938,1.32625,1.6481,0.00333119,0.00333119,0.00333119
-2,539.389,1.20768,1.23155,1.35924,0.91306,0.94292,0.9674,0.671,0.90888,0.66262,1.144,0.00659854,0.00659854,0.00659854
-3,793.391,1.20265,1.09277,1.35523,0.95686,0.93737,0.97626,0.58942,1.13645,0.6638,1.25669,0.0097999,0.0097999,0.0097999
-4,1055.62,1.19328,0.98656,1.35498,0.93481,0.95876,0.97168,0.62795,1.04779,0.57202,1.22167,0.009703,0.009703,0.009703
-5,1307.05,1.14491,0.87997,1.31939,0.92225,0.95525,0.9759,0.67518,0.91324,0.54133,1.14783,0.009604,0.009604,0.009604
-6,1554.72,1.10323,0.80979,1.29313,0.96272,0.93981,0.97706,0.68195,0.88251,0.54155,1.10099,0.009505,0.009505,0.009505
-7,1798.91,1.07936,0.7722,1.28339,0.94637,0.97653,0.98709,0.68119,0.97815,0.4999,1.1531,0.009406,0.009406,0.009406
-8,2042.76,1.05685,0.7389,1.26162,0.96189,0.96017,0.98285,0.71853,0.72808,0.44393,1.01539,0.009307,0.009307,0.009307
-9,2289.54,1.0371,0.71517,1.25391,0.95643,0.96322,0.98327,0.74631,0.68259,0.41226,0.99072,0.009208,0.009208,0.009208
-10,2545.88,1.02665,0.6931,1.23927,0.94328,0.96748,0.98255,0.74815,0.67936,0.41344,0.99349,0.009109,0.009109,0.009109
-11,2793.58,1.01164,0.67994,1.23536,0.95702,0.96679,0.98086,0.72234,0.74136,0.40458,1.00603,0.00901,0.00901,0.00901
-12,3040.77,0.99932,0.66853,1.22403,0.96103,0.9722,0.98794,0.72702,0.80205,0.39737,1.03985,0.008911,0.008911,0.008911
-13,3286.22,0.98812,0.65379,1.21754,0.9609,0.97294,0.98652,0.72305,0.8228,0.40017,1.04452,0.008812,0.008812,0.008812
-14,3534.04,0.97785,0.64272,1.21459,0.95061,0.98106,0.9881,0.75344,0.68981,0.37576,0.97954,0.008713,0.008713,0.008713
-15,3784.01,0.9717,0.63591,1.20794,0.96561,0.97027,0.98571,0.768,0.61668,0.3644,0.95037,0.008614,0.008614,0.008614
-16,4036.65,0.96022,0.62253,1.20075,0.96115,0.96793,0.98813,0.76173,0.6814,0.36463,0.97633,0.008515,0.008515,0.008515
-17,4285.31,0.9572,0.619,1.19945,0.96804,0.96333,0.98689,0.74439,0.72254,0.37386,0.9859,0.008416,0.008416,0.008416
-18,4532.49,0.94777,0.60979,1.19614,0.96806,0.96611,0.98666,0.75707,0.66835,0.34925,0.95824,0.008317,0.008317,0.008317
-19,4779.83,0.94326,0.60643,1.18937,0.96793,0.96804,0.98853,0.75314,0.73809,0.35797,0.99378,0.008218,0.008218,0.008218
-20,5025.4,0.92859,0.5958,1.18325,0.96577,0.96991,0.9886,0.77042,0.61855,0.34355,0.94641,0.008119,0.008119,0.008119
-21,5267.09,0.92907,0.59623,1.18528,0.96669,0.9662,0.98874,0.75632,0.70667,0.351,0.98597,0.00802,0.00802,0.00802
-22,5518.15,0.9232,0.58698,1.17818,0.95428,0.97309,0.98646,0.77452,0.64696,0.34184,0.95521,0.007921,0.007921,0.007921
-23,5761.85,0.92253,0.58752,1.17789,0.96453,0.97045,0.98638,0.76677,0.6528,0.33959,0.95394,0.007822,0.007822,0.007822
-24,6006.11,0.91272,0.57837,1.16985,0.95445,0.97861,0.98756,0.77585,0.61192,0.33169,0.93658,0.007723,0.007723,0.007723
-25,6256.21,0.91313,0.5771,1.1667,0.95424,0.97902,0.98765,0.76498,0.6642,0.33629,0.95474,0.007624,0.007624,0.007624
-26,6498.99,0.90368,0.57032,1.16534,0.94644,0.98289,0.98701,0.77101,0.63061,0.32883,0.93895,0.007525,0.007525,0.007525
-27,6742.88,0.89777,0.56671,1.1624,0.96137,0.97333,0.98619,0.77245,0.60985,0.32463,0.93384,0.007426,0.007426,0.007426
-28,6989.65,0.89454,0.56062,1.15699,0.96338,0.97396,0.98793,0.78062,0.61113,0.31757,0.93265,0.007327,0.007327,0.007327
-29,7243.69,0.89028,0.55405,1.15549,0.9607,0.97232,0.98538,0.78344,0.59782,0.30955,0.92146,0.007228,0.007228,0.007228
-30,7489.86,0.8887,0.55082,1.15162,0.96078,0.97388,0.98748,0.7777,0.62528,0.31526,0.92897,0.007129,0.007129,0.007129
-31,7734.63,0.88065,0.55125,1.15081,0.96709,0.97097,0.98809,0.78291,0.62395,0.31746,0.93239,0.00703,0.00703,0.00703
-32,7986.56,0.88599,0.54818,1.14811,0.96836,0.9643,0.98775,0.78048,0.61005,0.31152,0.92735,0.006931,0.006931,0.006931
-33,8233.62,0.87549,0.54526,1.14848,0.95824,0.97547,0.98779,0.7872,0.58078,0.30506,0.91396,0.006832,0.006832,0.006832
-34,8480.21,0.8732,0.54035,1.14577,0.96473,0.97236,0.98757,0.78862,0.57364,0.30274,0.90958,0.006733,0.006733,0.006733
-35,8723.33,0.86782,0.54144,1.14728,0.96708,0.97272,0.98919,0.79498,0.5587,0.30086,0.90613,0.006634,0.006634,0.006634
-36,8969.35,0.86671,0.53593,1.14268,0.96844,0.97254,0.98856,0.793,0.5837,0.30171,0.91338,0.006535,0.006535,0.006535
-37,9213.81,0.86383,0.53604,1.14055,0.96563,0.97291,0.98865,0.7966,0.56645,0.29785,0.90834,0.006436,0.006436,0.006436
-38,9460.74,0.86164,0.5339,1.13809,0.96831,0.97125,0.98946,0.79175,0.57572,0.29952,0.91254,0.006337,0.006337,0.006337
-39,9703.49,0.86029,0.53463,1.14319,0.96592,0.97109,0.98862,0.79513,0.56935,0.29732,0.90878,0.006238,0.006238,0.006238
-40,9945.57,0.85568,0.52551,1.13475,0.97093,0.96312,0.98863,0.79807,0.54409,0.29047,0.90138,0.006139,0.006139,0.006139
-41,10196.6,0.85023,0.5252,1.13817,0.96072,0.9766,0.98869,0.79942,0.55715,0.29223,0.90311,0.00604,0.00604,0.00604
-42,10439.7,0.85056,0.52012,1.12803,0.96394,0.97156,0.98853,0.79465,0.56463,0.29272,0.90767,0.005941,0.005941,0.005941
-43,10683.4,0.84773,0.52161,1.12764,0.95974,0.97833,0.98924,0.80189,0.55063,0.29056,0.90149,0.005842,0.005842,0.005842
-44,10924.5,0.84625,0.51865,1.12602,0.96919,0.9695,0.98918,0.79801,0.56079,0.2911,0.90434,0.005743,0.005743,0.005743
-45,11168.4,0.83959,0.50918,1.12101,0.96029,0.97777,0.98865,0.80006,0.54347,0.28698,0.89866,0.005644,0.005644,0.005644
-46,11411.3,0.83701,0.51258,1.12505,0.96725,0.97384,0.98898,0.79852,0.55196,0.28347,0.89972,0.005545,0.005545,0.005545
-47,11658,0.83797,0.51164,1.1248,0.97108,0.96951,0.98914,0.80553,0.5343,0.28111,0.89315,0.005446,0.005446,0.005446
-48,11900.5,0.83442,0.50843,1.11829,0.97345,0.96667,0.98934,0.80636,0.53395,0.28136,0.89051,0.005347,0.005347,0.005347
-49,12146.5,0.83559,0.50882,1.1213,0.97278,0.96809,0.98912,0.80121,0.55473,0.28269,0.89761,0.005248,0.005248,0.005248
-50,12391.7,0.83288,0.50646,1.12048,0.97016,0.96967,0.98906,0.80348,0.54143,0.2827,0.89442,0.005149,0.005149,0.005149
-51,12638,0.82826,0.50172,1.11509,0.97078,0.96865,0.98866,0.80403,0.54901,0.28252,0.89654,0.00505,0.00505,0.00505
-52,12879.9,0.82539,0.50203,1.11399,0.96723,0.97408,0.98838,0.80347,0.5505,0.28237,0.89412,0.004951,0.004951,0.004951
-53,13121,0.81884,0.50071,1.11293,0.967,0.97327,0.98841,0.80767,0.53715,0.27879,0.88773,0.004852,0.004852,0.004852
-54,13363.8,0.82181,0.49883,1.10887,0.96787,0.972,0.98921,0.8093,0.52979,0.27683,0.88377,0.004753,0.004753,0.004753
-55,13606.9,0.81744,0.49286,1.10826,0.9704,0.9698,0.98927,0.81219,0.524,0.27511,0.88225,0.004654,0.004654,0.004654
-56,13860.3,0.81735,0.49465,1.10565,0.96753,0.97327,0.98956,0.81078,0.52677,0.27422,0.88296,0.004555,0.004555,0.004555
-57,14106.2,0.81154,0.49273,1.10997,0.96616,0.97405,0.98957,0.81015,0.52414,0.27484,0.88326,0.004456,0.004456,0.004456
-58,14363.3,0.81476,0.48979,1.10956,0.96783,0.9731,0.98951,0.81131,0.5221,0.27436,0.88288,0.004357,0.004357,0.004357
-59,14603.7,0.813,0.48952,1.10389,0.96776,0.97343,0.98975,0.81082,0.5264,0.27482,0.88439,0.004258,0.004258,0.004258
-60,14847.4,0.80559,0.48174,1.09924,0.9693,0.97227,0.98956,0.81029,0.52849,0.27533,0.88511,0.004159,0.004159,0.004159
-61,15094,0.80661,0.48245,1.10262,0.96925,0.97255,0.98975,0.80979,0.53046,0.27538,0.88624,0.00406,0.00406,0.00406
-62,15337.9,0.80194,0.47799,1.10276,0.96865,0.97268,0.98986,0.80936,0.5291,0.27312,0.88516,0.003961,0.003961,0.003961
-63,15582.1,0.80146,0.48215,1.09779,0.9684,0.97259,0.98997,0.8096,0.52891,0.27155,0.8845,0.003862,0.003862,0.003862
-64,15825.3,0.79603,0.48135,1.09919,0.96835,0.97319,0.98998,0.81004,0.52854,0.27015,0.88372,0.003763,0.003763,0.003763
-65,16068.9,0.80119,0.4765,1.09878,0.96995,0.97192,0.99002,0.81204,0.52419,0.26855,0.88229,0.003664,0.003664,0.003664
-66,16308.2,0.79349,0.47709,1.0963,0.96944,0.9717,0.99015,0.81203,0.52352,0.26809,0.88131,0.003565,0.003565,0.003565
-67,16555.3,0.79105,0.47537,1.09194,0.96863,0.97218,0.98994,0.81259,0.52104,0.26783,0.88011,0.003466,0.003466,0.003466
-68,16800.6,0.79059,0.47298,1.093,0.96773,0.97299,0.98991,0.81231,0.5208,0.26776,0.87989,0.003367,0.003367,0.003367
-69,17050.7,0.78507,0.46371,1.08699,0.96748,0.97352,0.98987,0.81258,0.51913,0.26738,0.87896,0.003268,0.003268,0.003268
-70,17300.2,0.78573,0.47182,1.09398,0.9682,0.97287,0.98985,0.81408,0.51576,0.26665,0.8778,0.003169,0.003169,0.003169
-71,17545.1,0.77988,0.46543,1.08858,0.96857,0.97249,0.9899,0.81479,0.51521,0.26612,0.87753,0.00307,0.00307,0.00307
-72,17791.9,0.77932,0.46242,1.08675,0.96734,0.97361,0.98973,0.81467,0.51457,0.26585,0.87735,0.002971,0.002971,0.002971
-73,18038.1,0.77979,0.4627,1.08482,0.9685,0.97189,0.98971,0.81491,0.51398,0.26532,0.87723,0.002872,0.002872,0.002872
-74,18282.5,0.77302,0.45982,1.08421,0.96911,0.97152,0.98975,0.81441,0.51563,0.26592,0.87756,0.002773,0.002773,0.002773
-75,18528.8,0.76872,0.45844,1.08611,0.97003,0.97109,0.98986,0.81485,0.51552,0.26556,0.87767,0.002674,0.002674,0.002674
-76,18775.3,0.7728,0.45658,1.08373,0.97003,0.97098,0.9899,0.8152,0.5148,0.26523,0.87763,0.002575,0.002575,0.002575
-77,19023.5,0.76923,0.45208,1.08148,0.97,0.97113,0.98991,0.81611,0.51365,0.26454,0.87739,0.002476,0.002476,0.002476
-78,19270.6,0.76499,0.45105,1.07978,0.97008,0.97124,0.98992,0.81615,0.51255,0.26398,0.87704,0.002377,0.002377,0.002377
-79,19513.5,0.76609,0.45576,1.07882,0.96971,0.97114,0.98973,0.81663,0.5119,0.2638,0.87668,0.002278,0.002278,0.002278
-80,19756.7,0.76648,0.45011,1.07514,0.96989,0.97115,0.98973,0.8173,0.51031,0.26322,0.87619,0.002179,0.002179,0.002179
-81,20002.3,0.7543,0.44684,1.07609,0.97046,0.97062,0.98971,0.81742,0.51044,0.26313,0.87632,0.00208,0.00208,0.00208
-82,20250.6,0.7557,0.44569,1.07429,0.97069,0.97093,0.98987,0.81745,0.51025,0.26283,0.87624,0.001981,0.001981,0.001981
-83,20494.1,0.75892,0.44494,1.0758,0.97029,0.97109,0.98987,0.81772,0.51038,0.26253,0.87624,0.001882,0.001882,0.001882
-84,20739.8,0.75312,0.443,1.07268,0.97054,0.97099,0.9899,0.8181,0.51016,0.26235,0.87624,0.001783,0.001783,0.001783
-85,20986.1,0.75076,0.43913,1.0696,0.97036,0.97149,0.9901,0.81825,0.50974,0.26226,0.87621,0.001684,0.001684,0.001684
-86,21225.7,0.74816,0.44036,1.0682,0.97037,0.97134,0.99001,0.81878,0.50893,0.26195,0.87592,0.001585,0.001585,0.001585
-87,21469.8,0.74159,0.43653,1.06843,0.97053,0.97134,0.99015,0.81898,0.50814,0.26163,0.87567,0.001486,0.001486,0.001486
-88,21714.8,0.74383,0.43615,1.06889,0.97047,0.97162,0.99032,0.81923,0.50789,0.26137,0.87562,0.001387,0.001387,0.001387
-89,21956.9,0.73679,0.43222,1.06503,0.97039,0.97146,0.99032,0.81942,0.50694,0.26106,0.87533,0.001288,0.001288,0.001288
-90,22199.7,0.73165,0.4283,1.06042,0.97025,0.97177,0.99036,0.81963,0.50603,0.26072,0.875,0.001189,0.001189,0.001189
-91,22439.8,0.5709,0.29685,0.9692,0.97048,0.97136,0.99036,0.81995,0.50503,0.26042,0.87466,0.00109,0.00109,0.00109
-92,22677.6,0.55722,0.28878,0.95604,0.97095,0.97068,0.99038,0.8201,0.50378,0.25997,0.87406,0.000991,0.000991,0.000991
-93,22914.3,0.55089,0.28434,0.95353,0.97077,0.97082,0.9904,0.82073,0.50256,0.25957,0.87342,0.000892,0.000892,0.000892
-94,23156.5,0.5447,0.27872,0.95163,0.97126,0.9702,0.99042,0.82107,0.50108,0.25908,0.87274,0.000793,0.000793,0.000793
-95,23396.6,0.54092,0.27484,0.94694,0.97124,0.97035,0.99043,0.82152,0.49963,0.25845,0.87205,0.000694,0.000694,0.000694
-96,23635,0.53524,0.27232,0.94397,0.97143,0.97034,0.9905,0.82184,0.49876,0.25797,0.87156,0.000595,0.000595,0.000595
-97,23874.7,0.53189,0.26654,0.94241,0.97171,0.97046,0.99059,0.82243,0.49738,0.25748,0.87086,0.000496,0.000496,0.000496
-98,24124.7,0.52769,0.26156,0.93888,0.9721,0.97021,0.99065,0.823,0.49625,0.25698,0.87026,0.000397,0.000397,0.000397
-99,24365.5,0.52674,0.26053,0.93895,0.97243,0.97026,0.99069,0.82338,0.49488,0.2565,0.86954,0.000298,0.000298,0.000298
-100,24607.8,0.52298,0.25673,0.93503,0.97391,0.96929,0.99072,0.82377,0.49361,0.25586,0.86891,0.000199,0.000199,0.000199
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/results.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/results.png
deleted file mode 100644
index 66406cd..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/results.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch0.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch0.jpg
deleted file mode 100644
index a33b8eb..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch0.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch1.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch1.jpg
deleted file mode 100644
index d2318a4..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch1.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch139770.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch139770.jpg
deleted file mode 100644
index 211c1a5..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch139770.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch139771.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch139771.jpg
deleted file mode 100644
index e9f1569..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch139771.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch139772.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch139772.jpg
deleted file mode 100644
index d2b966f..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch139772.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch2.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch2.jpg
deleted file mode 100644
index 26421ae..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/train_batch2.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch0_labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch0_labels.jpg
deleted file mode 100644
index 2b89988..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch0_labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch0_pred.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch0_pred.jpg
deleted file mode 100644
index 1d76017..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch0_pred.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch1_labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch1_labels.jpg
deleted file mode 100644
index 495a4fb..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch1_labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch1_pred.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch1_pred.jpg
deleted file mode 100644
index 926ce94..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch1_pred.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch2_labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch2_labels.jpg
deleted file mode 100644
index 7670964..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch2_labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch2_pred.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch2_pred.jpg
deleted file mode 100644
index 183597a..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/val_batch2_pred.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/weights/best.pt b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/weights/best.pt
deleted file mode 100644
index ccd14e8..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/weights/best.pt and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/weights/last.pt b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/weights/last.pt
deleted file mode 100644
index a8af123..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug2_5_objects/weights/last.pt and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/F1_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/F1_curve.png
deleted file mode 100644
index 1353f89..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/F1_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/PR_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/PR_curve.png
deleted file mode 100644
index 1bd9bc4..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/PR_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/P_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/P_curve.png
deleted file mode 100644
index e859de1..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/P_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/R_curve.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/R_curve.png
deleted file mode 100644
index eb65ce0..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/R_curve.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/args.yaml b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/args.yaml
deleted file mode 100644
index 4dc0d9b..0000000
--- a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/args.yaml
+++ /dev/null
@@ -1,105 +0,0 @@
-task: detect
-mode: train
-model: yolov8n.pt
-data: /mnt/c/Users/mohsinali.mirza/Downloads/Grounding/car_parts.yaml
-epochs: 100
-time: null
-patience: 100
-batch: 8
-imgsz: 640
-save: true
-save_period: -1
-cache: false
-device: null
-workers: 8
-project: null
-name: yolov8n_car_parts_aggressive_aug
-exist_ok: false
-pretrained: true
-optimizer: auto
-verbose: true
-seed: 0
-deterministic: true
-single_cls: false
-rect: false
-cos_lr: false
-close_mosaic: 10
-resume: false
-amp: true
-fraction: 1.0
-profile: false
-freeze: null
-multi_scale: false
-overlap_mask: true
-mask_ratio: 4
-dropout: 0.0
-val: true
-split: val
-save_json: false
-conf: null
-iou: 0.7
-max_det: 300
-half: false
-dnn: false
-plots: true
-source: null
-vid_stride: 1
-stream_buffer: false
-visualize: false
-augment: false
-agnostic_nms: false
-classes: null
-retina_masks: false
-embed: null
-show: false
-save_frames: false
-save_txt: false
-save_conf: false
-save_crop: false
-show_labels: true
-show_conf: true
-show_boxes: true
-line_width: null
-format: torchscript
-keras: false
-optimize: false
-int8: false
-dynamic: false
-simplify: true
-opset: null
-workspace: null
-nms: false
-lr0: 0.01
-lrf: 0.01
-momentum: 0.937
-weight_decay: 0.0005
-warmup_epochs: 3.0
-warmup_momentum: 0.8
-warmup_bias_lr: 0.1
-box: 7.5
-cls: 0.5
-dfl: 1.5
-pose: 12.0
-kobj: 1.0
-nbs: 64
-hsv_h: 0.015
-hsv_s: 0.7
-hsv_v: 0.4
-degrees: 25.0
-translate: 0.15
-scale: 0.6
-shear: 5.0
-perspective: 0.0005
-flipud: 0.5
-fliplr: 0.5
-bgr: 0.0
-mosaic: 1.0
-mixup: 0.5
-cutmix: 0.0
-copy_paste: 0.3
-copy_paste_mode: flip
-auto_augment: randaugment
-erasing: 0.4
-cfg: null
-tracker: botsort.yaml
-save_dir: runs/detect/yolov8n_car_parts_aggressive_aug
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/confusion_matrix.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/confusion_matrix.png
deleted file mode 100644
index 8c750f7..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/confusion_matrix.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/confusion_matrix_normalized.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/confusion_matrix_normalized.png
deleted file mode 100644
index ae00aa3..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/confusion_matrix_normalized.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/labels.jpg
deleted file mode 100644
index ae7bdd3..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/results.csv b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/results.csv
deleted file mode 100644
index 1464e5a..0000000
--- a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/results.csv
+++ /dev/null
@@ -1,101 +0,0 @@
-epoch,time,train/box_loss,train/cls_loss,train/dfl_loss,metrics/precision(B),metrics/recall(B),metrics/mAP50(B),metrics/mAP50-95(B),val/box_loss,val/cls_loss,val/dfl_loss,lr/pg0,lr/pg1,lr/pg2
-1,208.513,1.29221,1.94415,1.53706,0.98915,0.9941,0.99371,0.51281,1.76736,1.14429,1.84864,0.00333053,0.00333053,0.00333053
-2,403.893,1.0983,1.13292,1.3682,0.96964,0.98612,0.99212,0.7464,0.89832,0.67095,1.15697,0.00659789,0.00659789,0.00659789
-3,597.825,1.10362,0.99678,1.37541,0.99537,0.99493,0.99489,0.6201,1.41337,0.66288,1.60146,0.00979925,0.00979925,0.00979925
-4,789.373,1.09737,0.89865,1.37219,0.998,0.99614,0.995,0.75272,0.97206,0.50558,1.20006,0.009703,0.009703,0.009703
-5,978.613,1.04958,0.79675,1.34255,0.99628,0.99854,0.99498,0.81977,0.71314,0.40128,1.05605,0.009604,0.009604,0.009604
-6,1172.73,1.00566,0.73297,1.31489,0.99906,0.99949,0.995,0.82231,0.70894,0.37876,1.02724,0.009505,0.009505,0.009505
-7,1363.58,0.98361,0.69666,1.30225,0.9983,0.99668,0.99494,0.73526,1.0225,0.54788,1.25711,0.009406,0.009406,0.009406
-8,1556,0.95649,0.66124,1.27885,0.99888,0.99976,0.995,0.85681,0.59751,0.31934,0.97523,0.009307,0.009307,0.009307
-9,1748.04,0.93277,0.63792,1.26729,0.99929,0.99903,0.995,0.84005,0.65561,0.32519,1.00505,0.009208,0.009208,0.009208
-10,1940.31,0.91571,0.61527,1.25502,0.99833,0.99937,0.99499,0.84156,0.66773,0.33723,1.01655,0.009109,0.009109,0.009109
-11,2127.51,0.90058,0.59697,1.2476,0.99741,0.99962,0.99494,0.8627,0.57754,0.31936,0.95898,0.00901,0.00901,0.00901
-12,2317.95,0.88847,0.58869,1.23855,0.99981,0.99969,0.995,0.8716,0.56732,0.29163,0.96114,0.008911,0.008911,0.008911
-13,2508.26,0.87756,0.5755,1.23235,0.99989,0.99986,0.995,0.89575,0.46672,0.27868,0.90184,0.008812,0.008812,0.008812
-14,2697.95,0.86574,0.56178,1.22441,0.99982,0.9999,0.995,0.8827,0.53718,0.28121,0.92833,0.008713,0.008713,0.008713
-15,2889.56,0.85374,0.55347,1.21594,0.99944,0.99959,0.995,0.87814,0.55232,0.2723,0.92569,0.008614,0.008614,0.008614
-16,3081.99,0.84414,0.54291,1.20781,0.99892,0.99991,0.995,0.88673,0.51185,0.26635,0.91359,0.008515,0.008515,0.008515
-17,3269.6,0.83673,0.53515,1.20382,0.99985,0.99972,0.995,0.89756,0.50562,0.26179,0.904,0.008416,0.008416,0.008416
-18,3462,0.8286,0.52744,1.19325,0.99974,0.99969,0.995,0.88589,0.53576,0.2681,0.93849,0.008317,0.008317,0.008317
-19,3655.47,0.82292,0.52099,1.1895,0.99988,0.9998,0.995,0.90866,0.42846,0.25373,0.88494,0.008218,0.008218,0.008218
-20,3850.55,0.81223,0.51527,1.18546,0.99995,1,0.995,0.90419,0.44478,0.24332,0.88418,0.008119,0.008119,0.008119
-21,4041.04,0.80963,0.50587,1.18563,0.99991,0.99983,0.995,0.91173,0.44692,0.24265,0.8785,0.00802,0.00802,0.00802
-22,4230.91,0.79884,0.50026,1.17687,0.99985,0.99987,0.995,0.90195,0.46855,0.23958,0.89048,0.007921,0.007921,0.007921
-23,4422.69,0.79243,0.49342,1.1759,0.99965,0.99988,0.995,0.90508,0.46882,0.23727,0.88959,0.007822,0.007822,0.007822
-24,4604.76,0.78695,0.48752,1.16925,0.99989,0.99992,0.995,0.90626,0.46742,0.24825,0.88722,0.007723,0.007723,0.007723
-25,4792.19,0.79042,0.49201,1.1749,0.99987,0.99997,0.995,0.90693,0.46812,0.24186,0.88731,0.007624,0.007624,0.007624
-26,4979.89,0.78079,0.48755,1.16459,0.99991,0.99992,0.995,0.90886,0.46145,0.23122,0.88748,0.007525,0.007525,0.007525
-27,5169.6,0.77448,0.47626,1.16334,0.99982,1,0.995,0.9071,0.45651,0.22298,0.88151,0.007426,0.007426,0.007426
-28,5358.26,0.77656,0.48066,1.16467,0.99995,0.99997,0.995,0.90738,0.47778,0.23274,0.88622,0.007327,0.007327,0.007327
-29,5546.78,0.76612,0.47078,1.15759,0.99989,1,0.995,0.9057,0.46641,0.2265,0.8843,0.007228,0.007228,0.007228
-30,5731.15,0.76487,0.47068,1.1539,0.99995,0.99993,0.995,0.91341,0.4523,0.21929,0.87667,0.007129,0.007129,0.007129
-31,5916.98,0.75497,0.46468,1.15258,0.99993,0.99997,0.995,0.90109,0.48044,0.22227,0.88575,0.00703,0.00703,0.00703
-32,6105.51,0.75345,0.46433,1.14705,0.99985,0.99992,0.995,0.90414,0.47392,0.22404,0.88025,0.006931,0.006931,0.006931
-33,6294.17,0.74864,0.45731,1.15041,0.99994,0.99998,0.995,0.90247,0.48784,0.21822,0.88329,0.006832,0.006832,0.006832
-34,6482.47,0.74464,0.45566,1.14578,0.99993,0.99999,0.995,0.90266,0.48901,0.22466,0.88385,0.006733,0.006733,0.006733
-35,6670.37,0.74238,0.4524,1.14383,0.99993,0.99996,0.995,0.90466,0.48168,0.22021,0.89244,0.006634,0.006634,0.006634
-36,6862.92,0.73777,0.44276,1.1389,0.99959,0.99994,0.995,0.90352,0.49008,0.21904,0.88969,0.006535,0.006535,0.006535
-37,7050.67,0.73872,0.45002,1.14349,0.99995,0.99998,0.995,0.90052,0.48514,0.21886,0.88124,0.006436,0.006436,0.006436
-38,7241.03,0.72637,0.43964,1.1335,0.99985,0.99992,0.995,0.92322,0.41705,0.20546,0.86093,0.006337,0.006337,0.006337
-39,7431.61,0.72353,0.43928,1.13351,0.99995,0.99997,0.995,0.91044,0.46072,0.2112,0.87415,0.006238,0.006238,0.006238
-40,7625.24,0.72267,0.43622,1.12704,0.99991,0.99999,0.995,0.91318,0.43764,0.20664,0.86531,0.006139,0.006139,0.006139
-41,7815.46,0.72174,0.43767,1.12891,0.99993,0.99988,0.995,0.90454,0.47644,0.21035,0.88448,0.00604,0.00604,0.00604
-42,8009.63,0.71958,0.43279,1.1269,0.99995,0.99999,0.995,0.91422,0.44819,0.20533,0.86335,0.005941,0.005941,0.005941
-43,8205.14,0.71606,0.42988,1.12453,0.99996,0.99997,0.995,0.90616,0.48091,0.21442,0.88442,0.005842,0.005842,0.005842
-44,8391.67,0.70996,0.42559,1.12564,0.99995,0.99999,0.995,0.90754,0.4705,0.20377,0.87726,0.005743,0.005743,0.005743
-45,8581.6,0.70734,0.42411,1.12424,0.99997,0.99995,0.995,0.92294,0.42328,0.19763,0.85559,0.005644,0.005644,0.005644
-46,8772.17,0.70702,0.42174,1.12002,0.99995,0.99999,0.995,0.92037,0.41994,0.19279,0.85394,0.005545,0.005545,0.005545
-47,8961.55,0.70501,0.42019,1.12379,0.99996,0.99995,0.995,0.92269,0.41416,0.19596,0.85672,0.005446,0.005446,0.005446
-48,9148.49,0.69692,0.42124,1.12097,0.99989,0.99996,0.995,0.92271,0.41501,0.19303,0.85313,0.005347,0.005347,0.005347
-49,9332.18,0.69569,0.41643,1.11449,0.99995,0.99995,0.995,0.92027,0.4322,0.19486,0.86006,0.005248,0.005248,0.005248
-50,9519.32,0.68832,0.41189,1.11063,0.99994,0.99997,0.995,0.92715,0.40788,0.1907,0.85026,0.005149,0.005149,0.005149
-51,9711.72,0.68547,0.40805,1.11116,0.99997,0.99991,0.995,0.92672,0.41699,0.19275,0.85507,0.00505,0.00505,0.00505
-52,9902.76,0.68334,0.40709,1.10753,0.99994,0.99996,0.995,0.92722,0.41371,0.19452,0.85451,0.004951,0.004951,0.004951
-53,10088,0.68119,0.40547,1.09967,0.99995,1,0.995,0.92003,0.43415,0.1907,0.85752,0.004852,0.004852,0.004852
-54,10276.2,0.68127,0.40573,1.10328,0.99995,0.99999,0.995,0.91769,0.44132,0.19092,0.86539,0.004753,0.004753,0.004753
-55,10465,0.67496,0.39845,1.09513,0.99994,0.99997,0.995,0.92516,0.41559,0.18824,0.8497,0.004654,0.004654,0.004654
-56,10650.9,0.67778,0.40135,1.09797,0.99996,0.99998,0.995,0.92302,0.41535,0.18667,0.84931,0.004555,0.004555,0.004555
-57,10841.8,0.67226,0.39995,1.10069,0.99996,0.99995,0.995,0.92547,0.41355,0.18635,0.85172,0.004456,0.004456,0.004456
-58,11028.9,0.66813,0.39364,1.09361,0.99996,0.99996,0.995,0.93141,0.39678,0.18536,0.84673,0.004357,0.004357,0.004357
-59,11217.1,0.66564,0.3914,1.09422,0.99995,0.99996,0.995,0.92936,0.4037,0.18131,0.84714,0.004258,0.004258,0.004258
-60,11404.5,0.6689,0.39545,1.09467,0.99995,0.99995,0.995,0.9326,0.40481,0.1804,0.84643,0.004159,0.004159,0.004159
-61,11595.3,0.66243,0.38682,1.09223,0.99997,0.99995,0.995,0.93667,0.38814,0.1758,0.84099,0.00406,0.00406,0.00406
-62,11783.9,0.66042,0.38699,1.0945,0.99995,0.99996,0.995,0.93067,0.40308,0.17896,0.8452,0.003961,0.003961,0.003961
-63,11969,0.65596,0.38428,1.09004,0.99995,0.99995,0.995,0.92861,0.40725,0.18266,0.84567,0.003862,0.003862,0.003862
-64,12154.8,0.6554,0.38273,1.0884,0.99995,0.99995,0.995,0.93303,0.39232,0.17699,0.83984,0.003763,0.003763,0.003763
-65,12345.9,0.65171,0.38153,1.08157,0.99996,0.99995,0.995,0.93218,0.39689,0.17854,0.84086,0.003664,0.003664,0.003664
-66,12533.3,0.65614,0.38518,1.08815,0.99996,0.99997,0.995,0.93591,0.385,0.17554,0.83733,0.003565,0.003565,0.003565
-67,12728.8,0.64659,0.38005,1.08367,0.99996,0.99997,0.995,0.93518,0.39218,0.17647,0.84085,0.003466,0.003466,0.003466
-68,12916.3,0.6481,0.37726,1.08441,0.99997,0.99996,0.995,0.9342,0.39306,0.17524,0.84077,0.003367,0.003367,0.003367
-69,13104.4,0.64758,0.37845,1.08173,0.99996,0.99997,0.995,0.93543,0.38577,0.17464,0.83843,0.003268,0.003268,0.003268
-70,13295.6,0.64192,0.37416,1.07838,0.99995,0.99996,0.995,0.93403,0.38866,0.17431,0.839,0.003169,0.003169,0.003169
-71,13484.2,0.63914,0.3731,1.07585,0.99996,0.99997,0.995,0.92974,0.39818,0.17548,0.84179,0.00307,0.00307,0.00307
-72,13676.8,0.64035,0.37106,1.08045,0.99996,0.99997,0.995,0.9337,0.38996,0.17384,0.83922,0.002971,0.002971,0.002971
-73,13864.7,0.63145,0.36694,1.07314,0.99996,0.99997,0.995,0.93305,0.39379,0.17302,0.83998,0.002872,0.002872,0.002872
-74,14054.6,0.62885,0.36705,1.06921,0.99996,0.99997,0.995,0.93339,0.39349,0.17271,0.83918,0.002773,0.002773,0.002773
-75,14239.3,0.6302,0.36882,1.07603,0.99996,0.99996,0.995,0.93559,0.39051,0.17195,0.8386,0.002674,0.002674,0.002674
-76,14430.7,0.62565,0.36287,1.07175,0.99996,0.99996,0.995,0.93459,0.39281,0.17134,0.83988,0.002575,0.002575,0.002575
-77,14613.9,0.62268,0.36147,1.06683,0.99995,0.99997,0.995,0.93345,0.39565,0.17232,0.84075,0.002476,0.002476,0.002476
-78,14799.5,0.62114,0.36069,1.06928,0.99995,0.99997,0.995,0.93225,0.39905,0.17267,0.8428,0.002377,0.002377,0.002377
-79,14983.9,0.61843,0.35681,1.06624,0.99995,0.99997,0.995,0.93526,0.39165,0.17058,0.8395,0.002278,0.002278,0.002278
-80,15175.6,0.61076,0.35456,1.06178,0.99996,0.99996,0.995,0.93704,0.38722,0.16908,0.83728,0.002179,0.002179,0.002179
-81,15368.9,0.61508,0.35381,1.06526,0.99996,0.99996,0.995,0.93588,0.38885,0.16912,0.83796,0.00208,0.00208,0.00208
-82,15562.2,0.61471,0.35419,1.06796,0.99997,0.99996,0.995,0.93559,0.38825,0.16883,0.83736,0.001981,0.001981,0.001981
-83,15749.4,0.60851,0.35157,1.05671,0.99997,0.99996,0.995,0.93544,0.38843,0.16834,0.83675,0.001882,0.001882,0.001882
-84,15937.9,0.60932,0.35425,1.06026,0.99997,0.99996,0.995,0.93639,0.38465,0.1672,0.83506,0.001783,0.001783,0.001783
-85,16127.4,0.60263,0.34755,1.05677,0.99997,0.99996,0.995,0.9377,0.38135,0.16586,0.83334,0.001684,0.001684,0.001684
-86,16312.9,0.60113,0.34513,1.05598,0.99996,0.99996,0.995,0.93933,0.37802,0.16495,0.83207,0.001585,0.001585,0.001585
-87,16502.8,0.60211,0.34607,1.05833,0.99996,0.99997,0.995,0.9399,0.37579,0.16427,0.83142,0.001486,0.001486,0.001486
-88,16693.6,0.59282,0.34044,1.05325,0.99996,0.99997,0.995,0.9404,0.37495,0.16367,0.83097,0.001387,0.001387,0.001387
-89,16890.8,0.59578,0.34285,1.05271,0.99997,0.99996,0.995,0.94137,0.37461,0.16345,0.83064,0.001288,0.001288,0.001288
-90,17074.1,0.58795,0.33946,1.04741,0.99996,0.99997,0.995,0.94154,0.37564,0.16384,0.83074,0.001189,0.001189,0.001189
-91,17264.6,0.37242,0.18733,0.92142,0.99996,0.99996,0.995,0.94158,0.37577,0.16369,0.8308,0.00109,0.00109,0.00109
-92,17454.8,0.35505,0.17689,0.91172,0.99996,0.99996,0.995,0.94265,0.373,0.16272,0.82963,0.000991,0.000991,0.000991
-93,17645.6,0.34895,0.1737,0.90783,0.99996,0.99996,0.995,0.94506,0.36674,0.16132,0.82731,0.000892,0.000892,0.000892
-94,17839,0.34234,0.17167,0.9038,0.99996,0.99995,0.995,0.94801,0.36043,0.15978,0.82495,0.000793,0.000793,0.000793
-95,18028.1,0.33732,0.16788,0.89763,0.99996,0.99995,0.995,0.95035,0.35537,0.15857,0.82291,0.000694,0.000694,0.000694
-96,18215.7,0.33433,0.16529,0.89996,0.99997,0.99995,0.995,0.952,0.35139,0.15781,0.82138,0.000595,0.000595,0.000595
-97,18405.1,0.32894,0.1624,0.89341,0.99997,0.99995,0.995,0.954,0.34687,0.15676,0.81975,0.000496,0.000496,0.000496
-98,18595,0.32409,0.15968,0.89212,0.99997,0.99995,0.995,0.9556,0.34266,0.15575,0.81827,0.000397,0.000397,0.000397
-99,18780.4,0.31802,0.15797,0.88892,0.99997,0.99995,0.995,0.95676,0.33944,0.155,0.81719,0.000298,0.000298,0.000298
-100,18972.9,0.315,0.1563,0.88609,0.99997,0.99994,0.995,0.95746,0.33665,0.15468,0.81631,0.000199,0.000199,0.000199
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/results.png b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/results.png
deleted file mode 100644
index b9903fc..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/results.png and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch0.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch0.jpg
deleted file mode 100644
index bd7729b..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch0.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch1.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch1.jpg
deleted file mode 100644
index c495b17..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch1.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch107100.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch107100.jpg
deleted file mode 100644
index 8066c27..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch107100.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch107101.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch107101.jpg
deleted file mode 100644
index a430942..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch107101.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch107102.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch107102.jpg
deleted file mode 100644
index b256388..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch107102.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch2.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch2.jpg
deleted file mode 100644
index e621ce2..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/train_batch2.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch0_labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch0_labels.jpg
deleted file mode 100644
index 246fc05..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch0_labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch0_pred.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch0_pred.jpg
deleted file mode 100644
index 8b08dc4..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch0_pred.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch1_labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch1_labels.jpg
deleted file mode 100644
index 620a99c..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch1_labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch1_pred.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch1_pred.jpg
deleted file mode 100644
index f2695ef..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch1_pred.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch2_labels.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch2_labels.jpg
deleted file mode 100644
index 8462cea..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch2_labels.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch2_pred.jpg b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch2_pred.jpg
deleted file mode 100644
index ce7a817..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/val_batch2_pred.jpg and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/weights/best.pt b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/weights/best.pt
deleted file mode 100644
index a8802c6..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/weights/best.pt and /dev/null differ
diff --git a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/weights/last.pt b/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/weights/last.pt
deleted file mode 100644
index 27a6013..0000000
Binary files a/Annotation_and_fine-tuning/runs/detect/yolov8n_car_parts_aggressive_aug_3_objects/weights/last.pt and /dev/null differ
diff --git a/Annotation_and_fine-tuning/yolov8n.pt b/Annotation_and_fine-tuning/yolov8n.pt
deleted file mode 100644
index 0db4ca4..0000000
Binary files a/Annotation_and_fine-tuning/yolov8n.pt and /dev/null differ
diff --git a/Asjad/ignore.html b/Asjad/ignore.html
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/Asjad/ignore.html
@@ -0,0 +1 @@
+
diff --git a/Asjad/perception/launch/demo_webcam_pose.launch.py b/Asjad/perception/launch/demo_webcam_pose.launch.py
new file mode 100644
index 0000000..afaf247
--- /dev/null
+++ b/Asjad/perception/launch/demo_webcam_pose.launch.py
@@ -0,0 +1,68 @@
+from launch import LaunchDescription
+from launch.actions import DeclareLaunchArgument
+from launch.substitutions import LaunchConfiguration
+from launch_ros.actions import Node
+
+def generate_launch_description():
+ return LaunchDescription([
+ DeclareLaunchArgument(
+ 'model_path',
+ default_value='models/tools.pt',
+ description='Path to the YOLO model file'
+ ),
+
+ DeclareLaunchArgument(
+ 'device_id',
+ default_value='0',
+ description='Camera Device ID (0 for webcam, 1 for external, etc.)'
+ ),
+
+ # 1. Webcam Publisher
+ Node(
+ package='perception',
+ executable='opencv_camera_node',
+ name='webcam_publisher',
+ output='screen',
+ parameters=[{
+ 'topic_name': '/camera/color/image_raw',
+ 'device_id': LaunchConfiguration('device_id')
+ }]
+ ),
+
+ # 2. Mock Depth Publisher
+ Node(
+ package='perception',
+ executable='mock_depth_node',
+ name='mock_depth_publisher',
+ output='screen'
+ ),
+
+ # 3. YOLO Node
+ Node(
+ package='perception',
+ executable='yolo_node',
+ name='yolo_detector',
+ output='screen',
+ parameters=[{
+ 'model_path': LaunchConfiguration('model_path'),
+ 'input_mode': 'robot' # Consumes standard topics
+ }],
+ remappings=[
+ ('/detections', '/tool_detector/detections')
+ ]
+ ),
+
+ # 4. Pose Node
+ Node(
+ package='perception',
+ executable='pose_node',
+ name='pose_estimator',
+ output='screen',
+ parameters=[{
+ 'input_mode': 'robot' # Consumes standard topics
+ }],
+ remappings=[
+ ('/detections', '/tool_detector/detections')
+ ]
+ )
+ ])
diff --git a/Asjad/perception/launch/tool_pipeline.launch.py b/Asjad/perception/launch/tool_pipeline.launch.py
new file mode 100644
index 0000000..82bf7bd
--- /dev/null
+++ b/Asjad/perception/launch/tool_pipeline.launch.py
@@ -0,0 +1,43 @@
+from launch import LaunchDescription
+from launch.actions import DeclareLaunchArgument
+from launch.substitutions import LaunchConfiguration
+from launch_ros.actions import Node
+
+def generate_launch_description():
+ return LaunchDescription([
+ DeclareLaunchArgument(
+ 'model_path',
+ default_value='models/tools.pt',
+ description='Path to the YOLO model file'
+ ),
+ DeclareLaunchArgument(
+ 'input_mode',
+ default_value='realsense',
+ description='Input mode: robot, realsense, or topic name'
+ ),
+ Node(
+ package='perception',
+ executable='yolo_node',
+ name='yolo_detector',
+ output='screen',
+ parameters=[{
+ 'model_path': LaunchConfiguration('model_path'),
+ 'input_mode': LaunchConfiguration('input_mode')
+ }],
+ remappings=[
+ ('/detections', '/tool_detector/detections')
+ ]
+ ),
+ Node(
+ package='perception',
+ executable='pose_node',
+ name='pose_estimator',
+ output='screen',
+ parameters=[{
+ 'input_mode': LaunchConfiguration('input_mode')
+ }],
+ remappings=[
+ ('/detections', '/tool_detector/detections')
+ ]
+ )
+ ])
diff --git a/Asjad/perception/package.xml b/Asjad/perception/package.xml
new file mode 100644
index 0000000..39c5db7
--- /dev/null
+++ b/Asjad/perception/package.xml
@@ -0,0 +1,26 @@
+
+
+
+ perception
+ 0.0.0
+ TODO: Package description
+ mohsin
+ TODO: License declaration
+
+ sensor_msgs
+ std_msgs
+ rclpy
+ image_transport
+ cv_bridge
+ python3-opencv
+ opencv4
+
+ ament_copyright
+ ament_flake8
+ ament_pep257
+ python3-pytest
+
+
+ ament_python
+
+
diff --git a/Asjad/perception/perception/__init__.py b/Asjad/perception/perception/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/Asjad/perception/perception/mock_depth_publisher.py b/Asjad/perception/perception/mock_depth_publisher.py
new file mode 100644
index 0000000..e80964e
--- /dev/null
+++ b/Asjad/perception/perception/mock_depth_publisher.py
@@ -0,0 +1,56 @@
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image, PointCloud2, PointField
+from cv_bridge import CvBridge
+import numpy as np
+import struct
+import sensor_msgs_py.point_cloud2 as pc2
+
+class MockDepthPublisher(Node):
+ def __init__(self):
+ super().__init__('mock_depth_publisher')
+ self.bridge = CvBridge()
+
+ # Subscribe to webcam image
+ self.create_subscription(Image, '/camera/color/image_raw', self.image_callback, 10)
+
+ # Publish mock pointcloud
+ self.pc_pub = self.create_publisher(PointCloud2, '/camera/depth/color/points', 10)
+
+ self.get_logger().info("Mock Depth Publisher Started. Generating planar depth at Z=1.0m")
+
+ def image_callback(self, img_msg):
+ # Create a simple planar pointcloud matching the image resolution
+ height = img_msg.height
+ width = img_msg.width
+
+ # Generate grid of X, Y coordinates
+ # Simplified intrinsic model: assume center is (w/2, h/2) and focal length ~ width
+ fx, fy = width, width
+ cx, cy = width / 2, height / 2
+
+ u, v = np.meshgrid(np.arange(width), np.arange(height))
+ z = np.ones_like(u) * 1.0 # Fixed depth of 1 meter
+
+ x = (u - cx) * z / fx
+ y = (v - cy) * z / fy
+
+ # Stack into (N, 3) array
+ points = np.stack([x.flatten(), y.flatten(), z.flatten()], axis=1)
+
+ # Create header
+ header = img_msg.header
+
+ # Create PointCloud2
+ pc_msg = pc2.create_cloud_xyz32(header, points)
+ self.pc_pub.publish(pc_msg)
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = MockDepthPublisher()
+ rclpy.spin(node)
+ node.destroy_node()
+ rclpy.shutdown()
+
+if __name__ == '__main__':
+ main()
diff --git a/Asjad/perception/perception/opencv_camera_feed.py b/Asjad/perception/perception/opencv_camera_feed.py
new file mode 100644
index 0000000..0502e9d
--- /dev/null
+++ b/Asjad/perception/perception/opencv_camera_feed.py
@@ -0,0 +1,63 @@
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image
+from cv_bridge import CvBridge
+import cv2
+import numpy as np
+
+class SimpleCameraNode(Node):
+ def __init__(self):
+ super().__init__('simple_camera_node')
+
+ # Declare parameters
+ self.declare_parameter('device_id', 0)
+ self.declare_parameter('topic_name', '/camera/color/image_raw')
+
+ device_id = self.get_parameter('device_id').get_parameter_value().integer_value
+ topic_name = self.get_parameter('topic_name').get_parameter_value().string_value
+
+ self.publisher = self.create_publisher(Image, topic_name, 10)
+ self.bridge = CvBridge()
+
+ self.get_logger().info(f"Opening camera device {device_id}...")
+ self.cap = cv2.VideoCapture(device_id)
+
+ self.use_synthetic = False
+ if not self.cap.isOpened():
+ self.get_logger().warn(f"Could not open camera device {device_id}! Switching to SYNTHETIC MODE (Test Pattern).")
+ self.use_synthetic = True
+ self.synthetic_frame = np.zeros((480, 640, 3), dtype=np.uint8)
+ # Draw a "tool" (green rectangle) to detect
+ cv2.rectangle(self.synthetic_frame, (200, 150), (440, 330), (0, 255, 0), -1)
+
+ timer_period = 0.03 # 30ms ~ 33 FPS
+ self.timer = self.create_timer(timer_period, self.timer_callback)
+
+ def timer_callback(self):
+ if self.use_synthetic:
+ frame = self.synthetic_frame.copy()
+ # Add some noise or movement?
+ pass
+ else:
+ ret, frame = self.cap.read()
+ if not ret:
+ # self.get_logger().warn('Failed to capture frame')
+ return
+
+ msg = self.bridge.cv2_to_imgmsg(frame, encoding='bgr8')
+ msg.header.stamp = self.get_clock().now().to_msg() # Important for synchronization
+ msg.header.frame_id = "camera_frame"
+ self.publisher.publish(msg)
+
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = SimpleCameraNode()
+ rclpy.spin(node)
+ node.cap.release()
+ node.destroy_node()
+ rclpy.shutdown()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/Asjad/perception/perception/pose_pca.py b/Asjad/perception/perception/pose_pca.py
new file mode 100644
index 0000000..73c9a8a
--- /dev/null
+++ b/Asjad/perception/perception/pose_pca.py
@@ -0,0 +1,216 @@
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import PointCloud2, PointField, Image
+from vision_msgs.msg import Detection2DArray
+from geometry_msgs.msg import PoseStamped, TransformStamped
+from std_msgs.msg import Header
+
+import message_filters
+from cv_bridge import CvBridge
+import numpy as np
+import struct
+import sensor_msgs_py.point_cloud2 as pc2
+from transforms3d.quaternions import mat2quat
+from tf2_ros import TransformBroadcaster
+
+
+class PointCloudCropperNode(Node):
+ def __init__(self):
+ super().__init__('pointcloud_cropper_node')
+
+ self.bridge = CvBridge()
+
+ # Declare input_mode parameter only
+ self.declare_parameter('input_mode', 'realsense')
+ input_mode = self.get_parameter('input_mode').get_parameter_value().string_value
+
+ # Determine topics based on mode
+ if input_mode == 'robot':
+ pc_topic = '/camera/depth/color/points'
+ img_topic = '/camera/color/image_raw'
+ elif input_mode == 'realsense':
+ pc_topic = '/camera/camera/depth/color/points'
+ img_topic = '/camera/camera/color/image_raw'
+ else:
+ self.get_logger().warn(f"Unknown input_mode '{input_mode}', defaulting to 'realsense'")
+ pc_topic = '/camera/camera/depth/color/points'
+ img_topic = '/camera/camera/color/image_raw'
+
+ self.get_logger().info(f"Using input mode: '{input_mode}' with topics: {pc_topic}, {img_topic}")
+
+ # Message filter subscribers
+ pc_sub = message_filters.Subscriber(self, PointCloud2, pc_topic)
+ img_sub = message_filters.Subscriber(self, Image, img_topic)
+ det_sub = message_filters.Subscriber(self, Detection2DArray, '/detections')
+
+ ts = message_filters.ApproximateTimeSynchronizer(
+ [pc_sub, det_sub, img_sub],
+ queue_size=10,
+ slop=0.1
+ )
+ ts.registerCallback(self.sync_callback)
+
+ self.prev_poses = {} # Store previous pose for smoothing per object index
+ self.alpha_pos = 0.2 # low-pass filter factor for position (0.2 = slow/smooth, 1.0 = no smoothing)
+ self.alpha_rot = 0.1 # low-pass filter factor for rotation
+
+ self.get_logger().info('PointCloud Cropper Node with robust PCA starting...')
+
+ def sync_callback(self, cloud_msg, detection_msg, image_msg):
+ try:
+ color_image = self.bridge.imgmsg_to_cv2(image_msg, desired_encoding='bgr8')
+ except Exception as e:
+ self.get_logger().error(f"Image conversion error: {e}")
+ return
+
+ pc_width = cloud_msg.width
+ pc_height = cloud_msg.height
+
+ # Read all points (expensive but robust)
+ cloud_points = np.array([
+ [x, y, z]
+ for x, y, z in pc2.read_points(cloud_msg, field_names=("x", "y", "z"), skip_nans=False)
+ ]).reshape((pc_height, pc_width, 3))
+
+ all_colored_points = []
+ current_frame_poses = {}
+
+ for idx, detection in enumerate(detection_msg.detections):
+ detected_class = detection.results[0].hypothesis.class_id
+
+ # 1. Extract ROI
+ cx, cy = int(detection.bbox.center.position.x), int(detection.bbox.center.position.y)
+ w, h = int(detection.bbox.size_x), int(detection.bbox.size_y)
+ xmin, xmax = max(cx - w // 2, 0), min(cx + w // 2, pc_width)
+ ymin, ymax = max(cy - h // 2, 0), min(cy + h // 2, pc_height)
+
+ cropped_points = cloud_points[ymin:ymax, xmin:xmax, :].reshape(-1, 3)
+ cropped_colors = color_image[ymin:ymax, xmin:xmax, :].reshape(-1, 3)
+
+ # Basic NaN filtering
+ valid_mask = ~np.isnan(cropped_points).any(axis=1)
+ cropped_points = cropped_points[valid_mask]
+ cropped_colors = cropped_colors[valid_mask]
+
+ # 2. Outlier Removal (Z-Score)
+ if len(cropped_points) > 10:
+ mean = np.mean(cropped_points, axis=0)
+ std = np.std(cropped_points, axis=0)
+ # Filter points > 2 std devs away
+ z_score = np.abs((cropped_points - mean) / (std + 1e-6))
+ inlier_mask = (z_score < 2.0).all(axis=1)
+ cropped_points = cropped_points[inlier_mask]
+ cropped_colors = cropped_colors[inlier_mask]
+
+ # Re-collect for visualization
+ for pt, color in zip(cropped_points, cropped_colors):
+ x, y, z = pt
+ rgb = struct.unpack('f', struct.pack('I', (int(color[2]) << 16) | (int(color[1]) << 8) | int(color[0])))[0]
+ all_colored_points.append([x, y, z, rgb])
+
+ if len(cropped_points) < 10:
+ continue
+
+ # 3. PCA & Alignment
+ centroid = np.mean(cropped_points, axis=0)
+ centered = cropped_points - centroid
+ _, _, vh = np.linalg.svd(centered, full_matrices=False)
+ R = vh.T
+
+ # 3a. Normal Alignment (Minor Axis Z should point to Camera)
+ # Camera frame: Z is forward (positive).
+ # Objects are in front, so Z > 0. Normal pointing "at" camera means Z component should be negative.
+ # However, if we view surface, normal is usually out of surface.
+ # Let's enforce Z component of Z-axis (R[2,2]) is negative (pointing back to origin).
+ if R[2, 2] > 0:
+ R[:, 2] *= -1
+ R[:, 1] *= -1 # Maintain right-hand rule by flipping Y too
+
+ # 3b. Direction Disambiguation (Major Axis X towards "heavy" side)
+ # Project points onto X axis
+ projected_x = centered @ R[:, 0]
+ # Simple heuristic: Skewness. If skew > 0, tail is right, bulk is left.
+ # We want X to point to bulk. So if skew > 0, flip X.
+ skew = np.sum(projected_x ** 3)
+ if skew > 0:
+ R[:, 0] *= -1
+ R[:, 1] *= -1 # Maintain RHR
+
+ # 4. Temporal Smoothing
+ prev = self.prev_poses.get(idx)
+
+ if prev is not None:
+ # Position Smoothing
+ centroid = self.alpha_pos * centroid + (1 - self.alpha_pos) * prev['pos']
+
+ # Rotation Smoothing (Quaternion Lerp)
+ q_curr = mat2quat(R)
+ q_prev = prev['quat']
+
+ # Ensure shortest path (dot product > 0)
+ dot = np.dot(q_curr, q_prev)
+ if dot < 0:
+ q_curr = -q_curr
+
+ q_smooth = self.alpha_rot * q_curr + (1 - self.alpha_rot) * q_prev
+ q_smooth /= np.linalg.norm(q_smooth) # Normalize
+ quat = q_smooth
+
+ # Reconstruct R from smoothed quat for other uses if needed (omitted for speed)
+ else:
+ quat = mat2quat(R)
+
+ # Store for next frame
+ current_frame_poses[idx] = {'pos': centroid, 'quat': quat}
+
+ # Publish
+ pose_msg = PoseStamped()
+ pose_msg.header.stamp = self.get_clock().now().to_msg()
+ pose_msg.header.frame_id = cloud_msg.header.frame_id
+ pose_msg.pose.position.x = float(centroid[0])
+ pose_msg.pose.position.y = float(centroid[1])
+ pose_msg.pose.position.z = float(centroid[2])
+ pose_msg.pose.orientation.x = float(quat[1]) # Transforms3d gives w,x,y,z. ROS needs x,y,z,w
+ pose_msg.pose.orientation.y = float(quat[2])
+ pose_msg.pose.orientation.z = float(quat[3])
+ pose_msg.pose.orientation.w = float(quat[0])
+
+ self.pose_pub.publish(pose_msg)
+
+ # TF
+ t = TransformStamped()
+ t.header = pose_msg.header
+ t.child_frame_id = f'object_frame_{idx}'
+ t.transform.translation.x = pose_msg.pose.position.x
+ t.transform.translation.y = pose_msg.pose.position.y
+ t.transform.translation.z = pose_msg.pose.position.z
+ t.transform.rotation = pose_msg.pose.orientation
+ self.tf_broadcaster.sendTransform(t)
+
+ self.prev_poses = current_frame_poses # Update state with only currently seen objects (avoids stale ghosts)
+
+ if all_colored_points:
+ # ... (Publish cropped cloud code matches existing structure)
+ header = Header()
+ header.stamp = self.get_clock().now().to_msg()
+ header.frame_id = cloud_msg.header.frame_id
+ fields = [
+ PointField(name='x', offset=0, datatype=PointField.FLOAT32, count=1),
+ PointField(name='y', offset=4, datatype=PointField.FLOAT32, count=1),
+ PointField(name='z', offset=8, datatype=PointField.FLOAT32, count=1),
+ PointField(name='rgb', offset=12, datatype=PointField.FLOAT32, count=1),
+ ]
+ cropped_pc = pc2.create_cloud(header, fields, all_colored_points)
+ self.pc_pub.publish(cropped_pc)
+
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = PointCloudCropperNode()
+ rclpy.spin(node)
+ node.destroy_node()
+ rclpy.shutdown()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/Asjad/perception/perception/yolo_object_detection.py b/Asjad/perception/perception/yolo_object_detection.py
new file mode 100644
index 0000000..c59fa7b
--- /dev/null
+++ b/Asjad/perception/perception/yolo_object_detection.py
@@ -0,0 +1,130 @@
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image
+from vision_msgs.msg import Detection2DArray, Detection2D, ObjectHypothesisWithPose
+from cv_bridge import CvBridge
+from ultralytics import YOLO
+from ultralytics.engine.results import Boxes
+import torch
+import cv2
+import os
+
+# Monkeypatch torch.load to disable weights_only enforcement by default
+# Required for Ultralytics 8.1.0 with PyTorch 2.6+
+if hasattr(torch, 'load'):
+ original_load = torch.load
+ def safe_load(*args, **kwargs):
+ if 'weights_only' not in kwargs:
+ kwargs['weights_only'] = False
+ return original_load(*args, **kwargs)
+ torch.load = safe_load
+
+
+class YoloDetectorNode(Node):
+ def __init__(self):
+ super().__init__('yolo_detector_node')
+ self.bridge = CvBridge()
+
+ # Declare and get parameters
+ self.declare_parameter('model_path', '')
+ self.declare_parameter('model_type', 'default') # 'default' or 'fine_tuned' (deprecated if model_path used)
+ self.declare_parameter('input_mode', 'realsense') # 'robot' or 'realsense'
+
+ model_path_param = self.get_parameter('model_path').get_parameter_value().string_value
+ model_type = self.get_parameter('model_type').get_parameter_value().string_value
+ input_mode = self.get_parameter('input_mode').get_parameter_value().string_value
+
+ # Determine model path
+ if model_path_param:
+ model_path = model_path_param
+ elif model_type == 'fine_tuned':
+ # Fallback for legacy support, but user should prefer model_path
+ model_path = os.path.join(os.getcwd(), 'ros2_ws', 'models', 'fine_tuned.pt')
+ else:
+ model_path = 'yolov8n.pt' # Ultralytics will download/find this
+
+ self.get_logger().info(f"Using model from: {model_path}")
+ self.model = YOLO(model_path)
+
+ # Determine image topic
+ if input_mode == 'robot':
+ image_topic = '/camera/color/image_raw'
+ elif input_mode == 'realsense':
+ image_topic = '/camera/camera/color/image_raw'
+ else:
+ # Check if input_mode is actually a topic name
+ if input_mode.startswith('/'):
+ image_topic = input_mode
+ else:
+ self.get_logger().warn(f"Unknown input_mode '{input_mode}', defaulting to 'realsense'")
+ image_topic = '/camera/camera/color/image_raw'
+
+ self.get_logger().info(f"Subscribing to image topic: {image_topic}")
+
+ # Create subscriptions and publishers
+ self.image_sub = self.create_subscription(Image, image_topic, self.image_callback, 10)
+ self.annotated_image_pub = self.create_publisher(Image, '/annotated_image', 10)
+ self.detection_pub = self.create_publisher(Detection2DArray, '/detections', 10)
+
+ self.conf_threshold = 0.6 # Confidence threshold for filtering
+
+ self.get_logger().info('YOLOv8 Detector Node started.')
+
+ def image_callback(self, msg):
+ try:
+ cv_image = self.bridge.imgmsg_to_cv2(msg, 'bgr8')
+ except Exception as e:
+ self.get_logger().error(f'Image conversion error: {e}')
+ return
+
+ results = self.model(cv_image)
+ detection_array_msg = Detection2DArray()
+ detection_array_msg.header = msg.header
+
+ for result in results:
+ filtered_boxes = [box for box in result.boxes if float(box.conf) >= self.conf_threshold]
+
+ if filtered_boxes:
+ box_data = torch.stack([b.data[0] for b in filtered_boxes])
+ result.boxes = Boxes(box_data, orig_shape=result.orig_shape)
+ else:
+ result.boxes = Boxes(torch.empty((0, 6)), orig_shape=result.orig_shape)
+
+ annotated_image = result.plot()
+ try:
+ annotated_msg = self.bridge.cv2_to_imgmsg(annotated_image, encoding='bgr8')
+ annotated_msg.header = msg.header
+ self.annotated_image_pub.publish(annotated_msg)
+ except Exception as e:
+ self.get_logger().error(f'Annotated image conversion error: {e}')
+
+ for box in filtered_boxes:
+ detection_msg = Detection2D()
+ detection_msg.header = msg.header
+
+ hypothesis = ObjectHypothesisWithPose()
+ hypothesis.hypothesis.class_id = self.model.names[int(box.cls)]
+ hypothesis.hypothesis.score = float(box.conf)
+ detection_msg.results.append(hypothesis)
+
+ xywh = box.xywh.cpu().numpy().flatten()
+ detection_msg.bbox.center.position.x = float(xywh[0])
+ detection_msg.bbox.center.position.y = float(xywh[1])
+ detection_msg.bbox.size_x = float(xywh[2])
+ detection_msg.bbox.size_y = float(xywh[3])
+
+ detection_array_msg.detections.append(detection_msg)
+
+ self.detection_pub.publish(detection_array_msg)
+
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = YoloDetectorNode()
+ rclpy.spin(node)
+ node.destroy_node()
+ rclpy.shutdown()
+
+
+if __name__ == '__main__':
+ main()
diff --git a/Asjad/perception/resource/perception b/Asjad/perception/resource/perception
new file mode 100644
index 0000000..e69de29
diff --git a/Asjad/perception/rviz/pose_estimation.rviz b/Asjad/perception/rviz/pose_estimation.rviz
new file mode 100644
index 0000000..e7bf5cf
--- /dev/null
+++ b/Asjad/perception/rviz/pose_estimation.rviz
@@ -0,0 +1,219 @@
+Panels:
+ - Class: rviz_common/Displays
+ Help Height: 78
+ Name: Displays
+ Property Tree Widget:
+ Expanded:
+ - /Global Options1
+ - /Status1
+ - /PointCloud21
+ - /TF1
+ Splitter Ratio: 0.5
+ Tree Height: 348
+ - Class: rviz_common/Selection
+ Name: Selection
+ - Class: rviz_common/Tool Properties
+ Expanded:
+ - /2D Goal Pose1
+ - /Publish Point1
+ Name: Tool Properties
+ Splitter Ratio: 0.5886790156364441
+ - Class: rviz_common/Views
+ Expanded:
+ - /Current View1
+ Name: Views
+ Splitter Ratio: 0.5
+ - Class: rviz_common/Time
+ Experimental: false
+ Name: Time
+ SyncMode: 0
+ SyncSource: PointCloud2
+Visualization Manager:
+ Class: ""
+ Displays:
+ - Alpha: 0.5
+ Cell Size: 1
+ Class: rviz_default_plugins/Grid
+ Color: 160; 160; 164
+ Enabled: true
+ Line Style:
+ Line Width: 0.029999999329447746
+ Value: Lines
+ Name: Grid
+ Normal Cell Count: 0
+ Offset:
+ X: 0
+ Y: 0
+ Z: 0
+ Plane: XY
+ Plane Cell Count: 10
+ Reference Frame:
+ Value: true
+ - Class: rviz_default_plugins/Image
+ Enabled: true
+ Max Value: 1
+ Median window: 5
+ Min Value: 0
+ Name: Image
+ Normalize Range: true
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /annotated_image
+ Value: true
+ - Alpha: 1
+ Autocompute Intensity Bounds: true
+ Autocompute Value Bounds:
+ Max Value: 10
+ Min Value: -10
+ Value: true
+ Axis: Z
+ Channel Name: intensity
+ Class: rviz_default_plugins/PointCloud2
+ Color: 255; 255; 255
+ Color Transformer: RGB8
+ Decay Time: 0
+ Enabled: true
+ Invert Rainbow: false
+ Max Color: 255; 255; 255
+ Max Intensity: 4096
+ Min Color: 0; 0; 0
+ Min Intensity: 0
+ Name: PointCloud2
+ Position Transformer: XYZ
+ Selectable: true
+ Size (Pixels): 3
+ Size (m): 0.009999999776482582
+ Style: Flat Squares
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /cropped_pointcloud
+ Use Fixed Frame: true
+ Use rainbow: true
+ Value: true
+ - Class: rviz_default_plugins/TF
+ Enabled: true
+ Filter (blacklist): ""
+ Filter (whitelist): ""
+ Frame Timeout: 15
+ Frames:
+ All Enabled: true
+ camera_color_frame:
+ Value: true
+ camera_color_optical_frame:
+ Value: true
+ camera_depth_frame:
+ Value: true
+ camera_depth_optical_frame:
+ Value: true
+ camera_link:
+ Value: true
+ object_frame_0:
+ Value: true
+ Marker Scale: 1
+ Name: TF
+ Show Arrows: true
+ Show Axes: true
+ Show Names: false
+ Tree:
+ camera_link:
+ camera_color_frame:
+ camera_color_optical_frame:
+ {}
+ camera_depth_frame:
+ camera_depth_optical_frame:
+ object_frame_0:
+ {}
+ Update Interval: 0
+ Value: true
+ Enabled: true
+ Global Options:
+ Background Color: 48; 48; 48
+ Fixed Frame: camera_link
+ Frame Rate: 30
+ Name: root
+ Tools:
+ - Class: rviz_default_plugins/Interact
+ Hide Inactive Objects: true
+ - Class: rviz_default_plugins/MoveCamera
+ - Class: rviz_default_plugins/Select
+ - Class: rviz_default_plugins/FocusCamera
+ - Class: rviz_default_plugins/Measure
+ Line color: 128; 128; 0
+ - Class: rviz_default_plugins/SetInitialPose
+ Covariance x: 0.25
+ Covariance y: 0.25
+ Covariance yaw: 0.06853891909122467
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /initialpose
+ - Class: rviz_default_plugins/SetGoal
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /goal_pose
+ - Class: rviz_default_plugins/PublishPoint
+ Single click: true
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /clicked_point
+ Transformation:
+ Current:
+ Class: rviz_default_plugins/TF
+ Value: true
+ Views:
+ Current:
+ Class: rviz_default_plugins/Orbit
+ Distance: 2.855905532836914
+ Enable Stereo Rendering:
+ Stereo Eye Separation: 0.05999999865889549
+ Stereo Focal Distance: 1
+ Swap Stereo Eyes: false
+ Value: false
+ Focal Point:
+ X: 1.2362849712371826
+ Y: -0.21183088421821594
+ Z: -0.2512143552303314
+ Focal Shape Fixed Size: true
+ Focal Shape Size: 0.05000000074505806
+ Invert Z Axis: false
+ Name: Current View
+ Near Clip Distance: 0.009999999776482582
+ Pitch: -0.05460222065448761
+ Target Frame:
+ Value: Orbit (rviz)
+ Yaw: 3.0917561054229736
+ Saved: ~
+Window Geometry:
+ Displays:
+ collapsed: false
+ Height: 846
+ Hide Left Dock: false
+ Hide Right Dock: false
+ Image:
+ collapsed: false
+ QMainWindow State: 000000ff00000000fd000000040000000000000156000002acfc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005d00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003f000001ea000000cc00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000c00430061006d006500720061010000022f000000bc0000000000000000fb0000000a0049006d006100670065010000022f000000bc0000001700ffffff000000010000010f000002acfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003f000002ac000000a900fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000026f00fffffffb0000000800540069006d006501000000000000045000000000000000000000023f000002ac00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+ Selection:
+ collapsed: false
+ Time:
+ collapsed: false
+ Tool Properties:
+ collapsed: false
+ Views:
+ collapsed: false
+ Width: 1200
+ X: 66
+ Y: 60
diff --git a/Asjad/perception/setup.cfg b/Asjad/perception/setup.cfg
new file mode 100644
index 0000000..be4fcdb
--- /dev/null
+++ b/Asjad/perception/setup.cfg
@@ -0,0 +1,6 @@
+[develop]
+script_dir=$base/lib/perception
+[install]
+install_scripts=$base/lib/perception
+[build_scripts]
+executable = /usr/bin/env python3
diff --git a/Asjad/perception/setup.py b/Asjad/perception/setup.py
new file mode 100644
index 0000000..f537b6d
--- /dev/null
+++ b/Asjad/perception/setup.py
@@ -0,0 +1,33 @@
+from setuptools import find_packages, setup
+from glob import glob
+import os
+
+package_name = 'perception'
+
+setup(
+ name=package_name,
+ version='0.0.0',
+ packages=find_packages(exclude=['test']),
+ data_files=[
+ ('share/ament_index/resource_index/packages',
+ ['resource/' + package_name]),
+ ('share/' + package_name, ['package.xml']),
+ (os.path.join('share', package_name, 'launch'), glob('launch/*.launch.py')),
+ ],
+ install_requires=['setuptools'],
+ zip_safe=True,
+ maintainer='mohsin',
+ maintainer_email='',
+ description='TODO: Package description',
+ license='Apache-2.0',
+ tests_require=['pytest'],
+ entry_points={
+ 'console_scripts': [
+ "yolo_node = perception.yolo_object_detection:main",
+ "pose_node = perception.pose_pca:main",
+ "opencv_camera_node = perception.opencv_camera_feed:main",
+ "opencv_yolo = perception.opencv_yolo_object_detection:main",
+ "mock_depth_node = perception.mock_depth_publisher:main",
+ ],
+ },
+)
diff --git a/Asjad/scripts/demos/test_realsense_windows.py b/Asjad/scripts/demos/test_realsense_windows.py
new file mode 100644
index 0000000..85927f1
--- /dev/null
+++ b/Asjad/scripts/demos/test_realsense_windows.py
@@ -0,0 +1,65 @@
+import pyrealsense2 as rs
+import time
+
+def main():
+ print("---------------------------------------")
+ print("RealSense Windows Diagnostics")
+ print("---------------------------------------")
+
+ ctx = rs.context()
+ devices = ctx.query_devices()
+
+ if len(devices) == 0:
+ print("ERROR: No RealSense devices found!")
+ print("Check your USB connection.")
+ return
+
+ for dev in devices:
+ print(f"Device Found: {dev.get_info(rs.camera_info.name)}")
+ print(f" Serial: {dev.get_info(rs.camera_info.serial_number)}")
+ print(f" Firmware: {dev.get_info(rs.camera_info.firmware_version)}")
+
+ # Check USB Type
+ try:
+ usb_type = dev.get_info(rs.camera_info.usb_type_descriptor)
+ print(f" USB Connection: {usb_type}")
+ if "2." in usb_type:
+ print(" [WARNING] Connected via USB 2.0! Streaming capabilities will be limited.")
+ print(" Use a high-quality USB 3.0 (Type-C to Type-A/C) cable.")
+ except:
+ print(" USB Connection: Unknown")
+
+ print("\nAttempting to start stream...")
+ pipeline = rs.pipeline()
+ config = rs.config()
+
+ # Try a modest resolution that works on USB 2.0 and 3.0
+ config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)
+ config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)
+
+ try:
+ profile = pipeline.start(config)
+ print("SUCCESS: Stream started!")
+
+ # Check active profile
+ active_depth = profile.get_stream(rs.stream.depth)
+ print(f"Active Stream: {active_depth.as_video_stream_profile().width()}x{active_depth.as_video_stream_profile().height()} @ {active_depth.as_video_stream_profile().fps()}fps")
+
+ print("Streaming 50 frames...")
+ for i in range(50):
+ frames = pipeline.wait_for_frames()
+ if i % 10 == 0:
+ print(f" Frame {i}/50 received...")
+
+ pipeline.stop()
+ print("SUCCESS: Test Complete. Hardware is working.")
+ print("---------------------------------------")
+
+ except Exception as e:
+ print(f"\n[ERROR] Failed to stream: {e}")
+ print("Possible causes:")
+ print("1. USB Bandwidth (Try a different port/cable)")
+ print("2. Camera is in a bad state (Unplug/Replug)")
+
+if __name__ == "__main__":
+ main()
diff --git a/Asjad/scripts/demos/webcam_demo.py b/Asjad/scripts/demos/webcam_demo.py
new file mode 100644
index 0000000..0aa023f
--- /dev/null
+++ b/Asjad/scripts/demos/webcam_demo.py
@@ -0,0 +1,36 @@
+import torch
+import cv2
+from ultralytics import YOLO
+
+# Monkeypatch torch.load to disable weights_only enforcement
+# This is necessary because we are using PyTorch 2.6+ with Ultralytics 8.1.0
+if hasattr(torch, 'load'):
+ original_load = torch.load
+ def safe_load(*args, **kwargs):
+ if 'weights_only' not in kwargs:
+ kwargs['weights_only'] = False
+ return original_load(*args, **kwargs)
+ torch.load = safe_load
+
+def main():
+ # Load the trained model
+ model_path = 'models/tools.pt'
+ print(f"Loading model from {model_path}...")
+ try:
+ model = YOLO(model_path)
+ except Exception as e:
+ print(f"Error loading model: {e}")
+ return
+
+ # Run inference on the webcam (source=0)
+ # show=True opens a window with results
+ # conf=0.6 sets confidence threshold
+ print("Starting webcam... Press 'q' to exit (if window allows) or Ctrl+C in terminal.")
+ results = model.predict(source='0', show=True, conf=0.6, stream=True)
+
+ # We iterate over the stream to keep the script running
+ for r in results:
+ pass # The show=True handles the display
+
+if __name__ == '__main__':
+ main()
diff --git a/Asjad/scripts/training/train_tool_model.py b/Asjad/scripts/training/train_tool_model.py
new file mode 100644
index 0000000..f6bb9b6
--- /dev/null
+++ b/Asjad/scripts/training/train_tool_model.py
@@ -0,0 +1,26 @@
+import torch
+import os
+
+# Monkeypatch torch.load to disable weights_only enforcement by default
+# This is necessary because PyTorch 2.6+ defaults weights_only=True,
+# but Ultralytics 8.1.0 (legacy req) relies on the old behavior for loading yolov8s.pt
+original_load = torch.load
+def safe_load(*args, **kwargs):
+ if 'weights_only' not in kwargs:
+ kwargs['weights_only'] = False
+ return original_load(*args, **kwargs)
+torch.load = safe_load
+
+from ultralytics import YOLO
+
+def main():
+ print("Starting YOLOv8 training with patched torch.load...")
+ # Load model
+ model = YOLO('yolov8s.pt')
+
+ # Train
+ # data path must be correct relative to cwd
+ model.train(data='datasets/tools/data.yaml', epochs=50, imgsz=640)
+
+if __name__ == '__main__':
+ main()
diff --git a/Feature_Readme/Action_Server_Readme/README.md b/Feature_Readme/Action_Server_Readme/README.md
new file mode 100644
index 0000000..67582b2
--- /dev/null
+++ b/Feature_Readme/Action_Server_Readme/README.md
@@ -0,0 +1,19 @@
+Terminal 1
+```bash
+ros2 launch perception action_launch.py input_source:=robot
+```
+
+Terminal 2
+
+```bash
+cd src/perception/perception
+python3 action_vision_manager.py
+```
+
+Terminal 3
+
+```bash
+ros2 action send_goal /run_vision_pipeline my_robot_interfaces/action/RunVision "{duration_seconds: 20.0}" --feedback
+```
+
+So it also implements a lifecycle such that it keeps the Yolo and Pose node on Standby. Only when the action is sent does it start to publish the frames for the duration specified.
diff --git a/Feature_Readme/Table_Height_Readme/README.md b/Feature_Readme/Table_Height_Readme/README.md
new file mode 100644
index 0000000..8ccb6b8
--- /dev/null
+++ b/Feature_Readme/Table_Height_Readme/README.md
@@ -0,0 +1,22 @@
+### Running Table Height
+```code
+ros2 run table_height_predictor table_heigt
+```
+### Running Floor Detection
+```
+ros2 run table_height_predictor detect_floor
+```
+Although this node isnt useful to the table height but, it can help us to separate objects from the floor. This could be useful if one wishes to only
+segment the floor. Moreover, it also helps to estimate the angle of depression of the robot's camera.
+
+
+## Results
+
+- It uses Yolo World Model with SAM (Segmentation Anything Meta) using Zero Shot learning and prompt like white "standing desk" to segment the table.
+
+- It then uses RANSAC algorithim to identify the plane of the floor. It then draws a line between the line between the floor plane and the top of the
+desk.
+
+- It has an error rate of +-5cm to the actual height so it should be used with a safety margin. In the example above the actual height was 58cm.
+- This can work with varying heights of the table.
+
diff --git a/Feature_Readme/Table_Segmentation_Readme/README.md b/Feature_Readme/Table_Segmentation_Readme/README.md
new file mode 100644
index 0000000..8447cdf
--- /dev/null
+++ b/Feature_Readme/Table_Segmentation_Readme/README.md
@@ -0,0 +1,42 @@
+### Run Object Segmentation
+```bash
+ros2 run perception segment_object
+```
+
+### Run Table Segmentation
+
+Applies segmentation on the table and detects empty spaces.
+
+```bash
+ros2 run perception table_segmentation_node --ros-args -p mode:=test -p test_radius:=0.08
+```
+- `input_mode`: `robot`(default) or `realsense`
+- `mode`: `test` or `actual` (`actual`=listening to publisher msg, `test`=random test radius values default 0.07 or 7cm)
+- `safety_margin`: float, default `0.02`. (2cm)
+
+**Publish object radius:**
+
+If running in `mode:=actual`, to change radius of object:
+
+In another terminal, run:
+```bash
+ros2 topic pub --once /perception/detected_object_radius std_msgs/msg/Float32 "{data: }"
+```
+
+For example, could be 0.07.
+
+## Results
+
+The above image is highlighting segmentation of the car parts which is then estimated to a sphere. This float sphere radius will be then published as msg to table_segemntation node,
+which will look at empty space and decide whether this sphere is possible to be placed on the table without colliding with other objects.
+
+Object Segemntation->Sphere Approximation->(passed the radius)->Table_segementation
+
+**Place Object**
+
+The results of running the table segmentation node will look like:
+
+
+
+
+
diff --git a/Feature_Readme/Tool_Detection/README.md b/Feature_Readme/Tool_Detection/README.md
new file mode 100644
index 0000000..3c77bd3
--- /dev/null
+++ b/Feature_Readme/Tool_Detection/README.md
@@ -0,0 +1,18 @@
+## Tool Detection Model Training
+
+We use a YOLOv8-small model trained on the specific tools dataset.
+
+### Training Command
+```bash
+yolo task=detect mode=train model=yolov8s.pt data=datasets/tools/data.yaml epochs=50 imgsz=640
+```
+
+### Metrics
+* **mAP@0.5**: 0.9813 (Target: > 0.95)
+* **Precision**: 0.9907
+* **Recall**: 0.9755
+
+To run the trained model:
+```bash
+ros2 launch perception tool_pipeline.launch.py model_path:=models/tools.pt
+```
diff --git a/Feature_Readme/ignore.html b/Feature_Readme/ignore.html
new file mode 100644
index 0000000..8b13789
--- /dev/null
+++ b/Feature_Readme/ignore.html
@@ -0,0 +1 @@
+
diff --git a/Plan for Perception Team.pdf b/Plan for Perception Team.pdf
deleted file mode 100644
index 4faca85..0000000
Binary files a/Plan for Perception Team.pdf and /dev/null differ
diff --git a/README.md b/README.md
index ea56045..81b0966 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,11 @@
+# Release_3 Feature Readmes
+- [Table_Segmentation](https://github.com/Robots4Sustainability/perception/tree/dev/Feature_Readme/Table_Segmentation_Readme)
+- [Table_Height](https://github.com/Robots4Sustainability/perception/blob/dev/Feature_Readme/Table_Height_Readme/README.md)
+- [Action_Server](https://github.com/Robots4Sustainability/perception/blob/dev/Feature_Readme/Action_Server_Readme/README.md)
+- [Tool_Detection](https://github.com/Robots4Sustainability/perception/blob/dev/Feature_Readme/Tool_Detection/README.md)
+
+---
+
# Vision-Based Object Detection and Pose Estimation Framework
This repository provides a complete vision pipeline that supports object detection with YOLOv8 and 6D pose estimation. The project is structured to support fine-tuning, inference, and integration with robotic systems using ROS 2.
@@ -8,7 +16,6 @@ This repository provides a complete vision pipeline that supports object detecti
---
## Table of Contents
-
- [Cloning the Repository](#cloning-the-repository)
- [Project Structure](#project-structure)
- [Pose Estimation Setup](#pose-estimation-setup)
diff --git a/no_place.png b/no_place.png
new file mode 100644
index 0000000..d643b10
Binary files /dev/null and b/no_place.png differ
diff --git a/place_object_1.png b/place_object_1.png
new file mode 100644
index 0000000..8e6e390
Binary files /dev/null and b/place_object_1.png differ
diff --git a/place_object_2.png b/place_object_2.png
new file mode 100644
index 0000000..6ad8aa4
Binary files /dev/null and b/place_object_2.png differ
diff --git a/requirements.txt b/requirements.txt
index 304cb77..862d048 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,3 +1,8 @@
numpy==1.26.4 ; python_version >= "3.12"
transforms3d==0.4.2 ; python_version >= "3.12"
ultralytics==8.3.236 ; python_version >= "3.12"
+open3d==0.19.0 ; python_version >= "3.12"
+empy==4.2 ; python_version >= "3.12"
+lark-parser==0.12.0 ; python_version >= "3.12"
+setuptools==80.9.0 ; python_version >= "3.12"
+catkin_pkg==1.1.0 ; python_version >= "3.12"
diff --git a/results/object_segmentation.png b/results/object_segmentation.png
new file mode 100644
index 0000000..97a5661
Binary files /dev/null and b/results/object_segmentation.png differ
diff --git a/src/my_robot_interfaces/CMakeLists.txt b/src/my_robot_interfaces/CMakeLists.txt
new file mode 100644
index 0000000..a25777e
--- /dev/null
+++ b/src/my_robot_interfaces/CMakeLists.txt
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 3.8)
+project(my_robot_interfaces)
+
+if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ add_compile_options(-Wall -Wextra -Wpedantic)
+endif()
+
+find_package(ament_cmake REQUIRED)
+find_package(rosidl_default_generators REQUIRED)
+# 1. ADD THIS LINE:
+find_package(geometry_msgs REQUIRED)
+
+rosidl_generate_interfaces(${PROJECT_NAME}
+ "action/RunVision.action"
+ # 2. ADD THIS DEPENDENCIES SECTION:
+ DEPENDENCIES geometry_msgs
+)
+
+ament_package()
\ No newline at end of file
diff --git a/src/my_robot_interfaces/action/RunVision.action b/src/my_robot_interfaces/action/RunVision.action
new file mode 100644
index 0000000..a475110
--- /dev/null
+++ b/src/my_robot_interfaces/action/RunVision.action
@@ -0,0 +1,11 @@
+# Goal: What we send to start the task
+float32 duration_seconds
+---
+# Result: What we get back when finished/canceled
+bool success
+string message
+geometry_msgs/PoseStamped pose
+---
+# Feedback: What we receive continuously while running
+float32 time_elapsed
+string status
\ No newline at end of file
diff --git a/src/my_robot_interfaces/package.xml b/src/my_robot_interfaces/package.xml
new file mode 100644
index 0000000..a55c4d5
--- /dev/null
+++ b/src/my_robot_interfaces/package.xml
@@ -0,0 +1,19 @@
+
+ my_robot_interfaces
+ 0.0.0
+ Custom interfaces for my robot
+ user
+ TODO
+
+ ament_cmake
+
+ rosidl_default_generators
+ rosidl_default_runtime
+ rosidl_interface_packages
+ geometry_msgs
+ action_msgs
+
+
+ ament_cmake
+
+
\ No newline at end of file
diff --git a/src/perception/launch/action_launch.py b/src/perception/launch/action_launch.py
new file mode 100644
index 0000000..feab7f1
--- /dev/null
+++ b/src/perception/launch/action_launch.py
@@ -0,0 +1,51 @@
+from launch import LaunchDescription
+from launch.actions import DeclareLaunchArgument
+from launch.substitutions import LaunchConfiguration
+from launch_ros.actions import Node
+
+def generate_launch_description():
+ """Generates a launch description that can switch between robot and realsense inputs."""
+
+ # 1. Declare a launch argument 'input_source'
+ # This creates a variable that you can set from the command line.
+ # We'll set 'realsense' as the default value.
+ input_source_arg = DeclareLaunchArgument(
+ 'input_source',
+ default_value='realsense',
+ description='Input source for perception nodes. Can be "realsense" or "robot".'
+ )
+
+ # 2. YOLO Node
+ yolo_node = Node(
+ package='perception',
+ executable='action_yolo_node',
+ name='action_yolo_node',
+ output='screen',
+ parameters=[{
+ # Use the value of the 'input_source' launch argument here
+ 'input_mode': LaunchConfiguration('input_source'),
+ 'model_type': 'fine_tuned',
+ 'conf_threshold': 0.6,
+ 'device': 'cuda'
+ }]
+ )
+
+ # 3. Pose Node
+ pose_node = Node(
+ package='perception',
+ executable='action_pose_node',
+ name='action_pose_node',
+ output='screen',
+ parameters=[{
+ # Use the same 'input_source' launch argument here
+ 'input_mode': LaunchConfiguration('input_source')
+ }]
+ )
+
+
+ # Return the LaunchDescription, including the argument and all nodes
+ return LaunchDescription([
+ input_source_arg,
+ yolo_node,
+ pose_node,
+ ])
diff --git a/src/perception/perception/action_pose_pca.py b/src/perception/perception/action_pose_pca.py
new file mode 100644
index 0000000..fef1b2a
--- /dev/null
+++ b/src/perception/perception/action_pose_pca.py
@@ -0,0 +1,232 @@
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import PointCloud2, PointField, Image
+from vision_msgs.msg import Detection2DArray
+from geometry_msgs.msg import PoseStamped, TransformStamped
+from std_msgs.msg import Header
+
+import message_filters
+from cv_bridge import CvBridge
+import numpy as np
+import struct
+import sensor_msgs_py.point_cloud2 as pc2
+from transforms3d.quaternions import mat2quat
+from tf2_ros import TransformBroadcaster
+from std_srvs.srv import SetBool # <-- NEW: Service Import
+
+
+class PointCloudCropperNode(Node):
+ def __init__(self):
+ super().__init__('pointcloud_cropper_node')
+
+ self.bridge = CvBridge()
+
+ # --- PARAMETERS ---
+ self.declare_parameter('input_mode', 'realsense')
+ input_mode = self.get_parameter('input_mode').get_parameter_value().string_value
+
+ # Determine topics based on mode
+ if input_mode == 'robot':
+ self.pc_topic = '/camera/depth/color/points'
+ self.img_topic = '/camera/color/image_raw'
+ elif input_mode == 'realsense':
+ self.pc_topic = '/camera/camera/depth/color/points'
+ self.img_topic = '/camera/camera/color/image_raw'
+ else:
+ self.get_logger().warn(f"Unknown input_mode '{input_mode}', defaulting to 'realsense'")
+ self.pc_topic = '/camera/camera/depth/color/points'
+ self.img_topic = '/camera/camera/color/image_raw'
+
+ self.get_logger().info(f"Using input mode: '{input_mode}' with topics: {self.pc_topic}, {self.img_topic}")
+
+ # --- 1. SETUP PUBLISHERS (Always Active) ---
+ self.pc_pub = self.create_publisher(PointCloud2, '/cropped_pointcloud', 10)
+ self.pose_pub = self.create_publisher(PoseStamped, '/object_pose', 10)
+ self.tf_broadcaster = TransformBroadcaster(self)
+
+ # --- 2. OPTIMIZATION: INITIALIZE STATE ---
+ # We do NOT create subscribers or synchronizers here.
+ self.pc_sub = None
+ self.img_sub = None
+ self.det_sub = None
+ self.ts = None
+ self.is_active = False
+
+ # --- 3. CREATE TOGGLE SERVICE ---
+ self.srv = self.create_service(SetBool, 'toggle_pose', self.toggle_callback)
+
+ self.get_logger().info('PointCloud Cropper Node Ready in STANDBY mode.')
+ self.get_logger().info('Send "True" to /toggle_pose to start synchronization.')
+
+ def toggle_callback(self, request, response):
+ """Service to Turn Processing ON or OFF"""
+ if request.data: # ENABLE
+ if not self.is_active:
+ self.get_logger().info("ACTIVATING: Starting Time Synchronizer...")
+
+ # Create the message filters
+ self.pc_sub = message_filters.Subscriber(self, PointCloud2, self.pc_topic)
+ self.img_sub = message_filters.Subscriber(self, Image, self.img_topic)
+ self.det_sub = message_filters.Subscriber(self, Detection2DArray, '/detections')
+
+ # Create the Synchronizer
+ self.ts = message_filters.ApproximateTimeSynchronizer(
+ [self.pc_sub, self.det_sub, self.img_sub],
+ queue_size=10,
+ slop=0.1
+ )
+ self.ts.registerCallback(self.sync_callback)
+
+ self.is_active = True
+ response.message = "Pose Node Activated"
+ response.success = True
+ else:
+ response.message = "Already Active"
+ response.success = True
+
+ else: # DISABLE
+ if self.is_active:
+ self.get_logger().info("DEACTIVATING: Destroying Synchronizer to save CPU...")
+
+ # message_filters.Subscriber wrappers don't have a clean 'destroy' method
+ # exposed easily, but destroying the underlying subscription works.
+ # However, dropping the reference to the synchronizer stops the callbacks.
+
+ # Best practice: explicitly destroy the underlying rclpy subscriptions
+ if self.pc_sub: self.destroy_subscription(self.pc_sub.sub)
+ if self.img_sub: self.destroy_subscription(self.img_sub.sub)
+ if self.det_sub: self.destroy_subscription(self.det_sub.sub)
+
+ self.pc_sub = None
+ self.img_sub = None
+ self.det_sub = None
+ self.ts = None
+
+ self.is_active = False
+ response.message = "Pose Node Deactivated"
+ response.success = True
+ else:
+ response.message = "Already Inactive"
+ response.success = True
+
+ return response
+
+ def sync_callback(self, cloud_msg, detection_msg, image_msg):
+ # This callback logic remains EXACTLY the same as your original code
+ try:
+ color_image = self.bridge.imgmsg_to_cv2(image_msg, desired_encoding='bgr8')
+ except Exception as e:
+ self.get_logger().error(f"Image conversion error: {e}")
+ return
+
+ pc_width = cloud_msg.width
+ pc_height = cloud_msg.height
+
+ cloud_points = np.array([
+ [x, y, z]
+ for x, y, z in pc2.read_points(cloud_msg, field_names=("x", "y", "z"), skip_nans=False)
+ ]).reshape((pc_height, pc_width, 3))
+
+ all_colored_points = []
+
+ for idx, detection in enumerate(detection_msg.detections):
+ detected_class = detection.results[0].hypothesis.class_id
+
+ cx = int(detection.bbox.center.position.x)
+ cy = int(detection.bbox.center.position.y)
+ w = int(detection.bbox.size_x)
+ h = int(detection.bbox.size_y)
+
+ xmin = max(cx - w // 2, 0)
+ xmax = min(cx + w // 2, pc_width)
+ ymin = max(cy - h // 2, 0)
+ ymax = min(cy + h // 2, pc_height)
+
+ cropped_points = cloud_points[ymin:ymax, xmin:xmax, :].reshape(-1, 3)
+ cropped_colors = color_image[ymin:ymax, xmin:xmax, :].reshape(-1, 3)
+
+ valid_mask = ~np.isnan(cropped_points).any(axis=1)
+ cropped_points = cropped_points[valid_mask]
+ cropped_colors = cropped_colors[valid_mask]
+
+ for pt, color in zip(cropped_points, cropped_colors):
+ x, y, z = pt
+ b, g, r = color
+ rgb = struct.unpack('f', struct.pack('I', (int(r) << 16) | (int(g) << 8) | int(b)))[0]
+ all_colored_points.append([x, y, z, rgb])
+
+ self.get_logger().info(
+ f"Cropped '{detected_class}' object {idx}: [{xmin}:{xmax}, {ymin}:{ymax}] -> {len(cropped_points)} valid points"
+ )
+
+ if len(cropped_points) >= 3:
+ centroid = np.mean(cropped_points, axis=0)
+ centered = cropped_points - centroid
+ _, _, vh = np.linalg.svd(centered, full_matrices=False)
+ R = vh.T
+
+ T = np.eye(4)
+ T[:3, :3] = R
+ T[:3, 3] = centroid
+
+ quat_wxyz = mat2quat(T[:3, :3])
+ quat = [quat_wxyz[1], quat_wxyz[2], quat_wxyz[3], quat_wxyz[0]]
+
+ pose_msg = PoseStamped()
+ pose_msg.header.stamp = self.get_clock().now().to_msg()
+ pose_msg.header.frame_id = cloud_msg.header.frame_id
+ pose_msg.pose.position.x = float(centroid[0])
+ pose_msg.pose.position.y = float(centroid[1])
+ pose_msg.pose.position.z = float(centroid[2])
+ pose_msg.pose.orientation.x = float(quat[0])
+ pose_msg.pose.orientation.y = float(quat[1])
+ pose_msg.pose.orientation.z = float(quat[2])
+ pose_msg.pose.orientation.w = float(quat[3])
+
+ self.pose_pub.publish(pose_msg)
+
+ t = TransformStamped()
+ t.header.stamp = self.get_clock().now().to_msg()
+ t.header.frame_id = cloud_msg.header.frame_id
+ t.child_frame_id = f'object_frame_{idx}'
+ t.transform.translation.x = float(centroid[0])
+ t.transform.translation.y = float(centroid[1])
+ t.transform.translation.z = float(centroid[2])
+ t.transform.rotation.x = float(quat[0])
+ t.transform.rotation.y = float(quat[1])
+ t.transform.rotation.z = float(quat[2])
+ t.transform.rotation.w = float(quat[3])
+
+ self.tf_broadcaster.sendTransform(t)
+ self.get_logger().info(f"Published pose and TF for '{detected_class}' object {idx}")
+
+ if all_colored_points:
+ header = Header()
+ header.stamp = self.get_clock().now().to_msg()
+ header.frame_id = cloud_msg.header.frame_id
+
+ fields = [
+ PointField(name='x', offset=0, datatype=PointField.FLOAT32, count=1),
+ PointField(name='y', offset=4, datatype=PointField.FLOAT32, count=1),
+ PointField(name='z', offset=8, datatype=PointField.FLOAT32, count=1),
+ PointField(name='rgb', offset=12, datatype=PointField.FLOAT32, count=1),
+ ]
+
+ cropped_pc = pc2.create_cloud(header, fields, all_colored_points)
+ self.pc_pub.publish(cropped_pc)
+
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = PointCloudCropperNode()
+ try:
+ rclpy.spin(node)
+ except KeyboardInterrupt:
+ pass
+ finally:
+ node.destroy_node()
+ rclpy.shutdown()
+
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/src/perception/perception/action_vision_manager.py b/src/perception/perception/action_vision_manager.py
new file mode 100644
index 0000000..fba49b3
--- /dev/null
+++ b/src/perception/perception/action_vision_manager.py
@@ -0,0 +1,249 @@
+import time
+import rclpy
+from rclpy.node import Node
+from rclpy.action import ActionServer, CancelResponse, GoalResponse
+from rclpy.callback_groups import ReentrantCallbackGroup
+from rclpy.executors import MultiThreadedExecutor
+from std_srvs.srv import SetBool
+from geometry_msgs.msg import PoseStamped
+from rclpy.qos import QoSProfile, ReliabilityPolicy, HistoryPolicy
+import statistics
+
+from my_robot_interfaces.action import RunVision
+
+class VisionManager(Node):
+ def __init__(self):
+ super().__init__('vision_manager')
+
+ # We use a ReentrantCallbackGroup to allow the Action Loop and the
+ # Subscriber Callback to run in parallel on the MultiThreadedExecutor
+ self.group = ReentrantCallbackGroup()
+
+ # --- 1. ACTION SERVER ---
+ self._action_server = ActionServer(
+ self,
+ RunVision,
+ 'run_vision_pipeline',
+ execute_callback=self.execute_callback,
+ goal_callback=self.goal_callback,
+ cancel_callback=self.cancel_callback,
+ callback_group=self.group
+ )
+
+ # --- 2. SERVICE CLIENTS (Talks to YOLO and Pose nodes) ---
+ self.yolo_client = self.create_client(SetBool, '/toggle_yolo', callback_group=self.group)
+ self.pose_client = self.create_client(SetBool, '/toggle_pose', callback_group=self.group)
+
+ # --- 3. STATE MANAGEMENT ---
+ self.captured_poses = []
+ self.collection_active = False # The "Gate" flag
+
+ # --- 4. SUBSCRIBER ---
+ # Reliable QoS ensures we don't miss packets if they are sent correctly
+ qos_profile = QoSProfile(
+ reliability=ReliabilityPolicy.RELIABLE,
+ history=HistoryPolicy.KEEP_LAST,
+ depth=10
+ )
+
+ self.pose_sub = self.create_subscription(
+ PoseStamped,
+ '/object_pose',
+ self.pose_callback,
+ qos_profile,
+ callback_group=self.group
+ )
+
+ self.vis_pub = self.create_publisher(
+ PoseStamped,
+ '/visualized_average_pose',
+ 10
+ )
+
+ self.get_logger().info("Vision Manager Ready. Initializing sensors to OFF state...")
+
+ # --- 5. INITIAL CLEANUP TIMER ---
+ # We run this ONCE to ensure sensors start in a clean "Standby" state.
+ self.init_timer = self.create_timer(1.0, self.initial_cleanup)
+
+ async def initial_cleanup(self):
+ """Forces connected nodes to sleep on startup so we start fresh."""
+
+ # CRITICAL FIX: Cancel the timer so this function NEVER runs again
+ if self.init_timer:
+ self.init_timer.cancel()
+ self.init_timer = None
+
+ self.get_logger().info("System Startup: Ensuring sensors are in STANDBY mode...")
+ await self.set_nodes_state(False)
+
+ def pose_callback(self, msg):
+ """
+ Only process data if the Action is running (collection_active is True).
+ Otherwise, ignore the noise to prevent log spam and dirty data.
+ """
+ if not self.collection_active:
+ return # IGNORE BACKGROUND NOISE
+
+ self.get_logger().info(f"Received Pose: x={msg.pose.position.x:.2f}")
+ self.captured_poses.append(msg)
+
+ def goal_callback(self, goal_request):
+ return GoalResponse.ACCEPT
+
+ def cancel_callback(self, goal_handle):
+ return CancelResponse.ACCEPT
+
+ async def execute_callback(self, goal_handle):
+ self.get_logger().info('Goal Received. Opening the Gate...')
+
+ # 1. Reset Buffer for new run
+ self.captured_poses = []
+ result = RunVision.Result()
+ feedback = RunVision.Feedback()
+ duration = goal_handle.request.duration_seconds
+
+ # 2. Wake up nodes
+ if not await self.set_nodes_state(True):
+ goal_handle.abort()
+ result.success = False
+ result.message = "Failed to wake sensors"
+ return result
+
+ # 3. Enable Collection (Open Gate)
+ self.collection_active = True
+
+ # 4. Run Timer Loop
+ start_time = time.time()
+ feedback.status = "Collecting Poses"
+
+ while (time.time() - start_time) < duration:
+ # Check Cancel
+ if goal_handle.is_cancel_requested:
+ self.collection_active = False # Close gate
+ await self.set_nodes_state(False)
+ goal_handle.canceled()
+ result.success = False
+ result.message = "Canceled"
+ return result
+
+ # Publish Feedback
+ feedback.time_elapsed = time.time() - start_time
+ goal_handle.publish_feedback(feedback)
+ time.sleep(0.1)
+
+ # 5. Disable Collection (Close Gate)
+ self.collection_active = False
+
+ # 6. Shut Down Sensors
+ await self.set_nodes_state(False)
+
+ # 7. Process Data
+ if len(self.captured_poses) > 0:
+ final_pose = self.calculate_average_pose(self.captured_poses)
+
+ # Publish to RViz so we can see the result
+ self.vis_pub.publish(final_pose)
+ self.get_logger().info("Published final median pose to /visualized_average_pose")
+
+ result.success = True
+ result.message = f"Success. Calculated Median of {len(self.captured_poses)} frames."
+ result.pose = final_pose
+ goal_handle.succeed()
+ else:
+ result.success = False
+ result.message = "Time finished, but no objects were detected."
+ self.get_logger().warn("Finished with 0 poses.")
+ goal_handle.abort()
+
+ return result
+
+ def calculate_average_pose(self, poses):
+ """
+ Calculates the 'Truncated Mean' (Interquartile Mean).
+ 1. Sorts data.
+ 2. Removes top 25% and bottom 25% (outliers).
+ 3. Averages the remaining middle 50%.
+ """
+ if not poses: return PoseStamped()
+
+ # Helper function to get truncated mean of a list of numbers
+ def get_truncated_mean(data):
+ if not data: return 0.0
+ n = len(data)
+ if n < 3: return statistics.mean(data) # Too few to truncate
+
+ sorted_data = sorted(data)
+ # Remove top and bottom 25%
+ cut_amount = int(n * 0.25)
+ # Slice the middle
+ middle_data = sorted_data[cut_amount : n - cut_amount]
+
+ return statistics.mean(middle_data)
+
+ # 1. Calculate Truncated Mean for Position
+ final_x = get_truncated_mean([p.pose.position.x for p in poses])
+ final_y = get_truncated_mean([p.pose.position.y for p in poses])
+ final_z = get_truncated_mean([p.pose.position.z for p in poses])
+
+ # 2. Find the orientation from the pose closest to this new calculated position
+ # (We still shouldn't average quaternions simply, so we pick the best representative)
+ best_idx = 0
+ min_dist = float('inf')
+
+ for i, p in enumerate(poses):
+ dist = (p.pose.position.x - final_x)**2 + \
+ (p.pose.position.y - final_y)**2 + \
+ (p.pose.position.z - final_z)**2
+ if dist < min_dist:
+ min_dist = dist
+ best_idx = i
+
+ # 3. Construct Final Pose
+ final_pose = PoseStamped()
+ final_pose.header = poses[best_idx].header
+ final_pose.header.stamp = self.get_clock().now().to_msg()
+
+ final_pose.pose.position.x = final_x
+ final_pose.pose.position.y = final_y
+ final_pose.pose.position.z = final_z
+ final_pose.pose.orientation = poses[best_idx].pose.orientation
+
+ return final_pose
+
+ async def set_nodes_state(self, active: bool):
+ """Helper to call services asynchronously."""
+ req = SetBool.Request()
+ req.data = active
+
+ # Small timeout check to avoid blocking if nodes aren't up
+ if not self.yolo_client.wait_for_service(timeout_sec=1.0):
+ self.get_logger().warn("YOLO Service not available")
+ return False
+ if not self.pose_client.wait_for_service(timeout_sec=1.0):
+ self.get_logger().warn("Pose Service not available")
+ return False
+
+ future_yolo = self.yolo_client.call_async(req)
+ future_pose = self.pose_client.call_async(req)
+
+ try:
+ await future_yolo
+ await future_pose
+ return True
+ except Exception as e:
+ self.get_logger().error(f"Service toggle failed: {e}")
+ return False
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = VisionManager()
+
+ # CRITICAL: MultiThreadedExecutor is required for Callbacks to run
+ # while the Action Loop is active.
+ executor = MultiThreadedExecutor()
+ rclpy.spin(node, executor=executor)
+ rclpy.shutdown()
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/src/perception/perception/action_yolo_object_detection.py b/src/perception/perception/action_yolo_object_detection.py
new file mode 100644
index 0000000..303069f
--- /dev/null
+++ b/src/perception/perception/action_yolo_object_detection.py
@@ -0,0 +1,197 @@
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import Image
+from vision_msgs.msg import Detection2DArray, Detection2D, ObjectHypothesisWithPose
+from cv_bridge import CvBridge
+from ultralytics import YOLO
+from ultralytics.engine.results import Boxes
+import torch
+import cv2
+import os
+from ament_index_python.packages import get_package_share_directory
+from pathlib import Path
+from std_srvs.srv import SetBool # Required for the toggle service
+
+def get_package_name_from_path(file_path):
+ """Dynamically find the package name from the file path."""
+ p = Path(file_path)
+ try:
+ package_parts = p.parts[p.parts.index('site-packages') + 1:]
+ return package_parts[0]
+ except ValueError:
+ # Fallback if not installed in site-packages (e.g. running from source)
+ return 'perception'
+
+class YoloDetectorNode(Node):
+ def __init__(self):
+ super().__init__('yolo_detector_node')
+ self.package_name = get_package_name_from_path(__file__)
+ self.bridge = CvBridge()
+
+ # --- PARAMETERS ---
+ self.declare_parameter('model_type', 'default')
+ self.declare_parameter('input_mode', 'realsense')
+ self.declare_parameter('model_path', '')
+ self.declare_parameter('conf_threshold', 0.6)
+ self.declare_parameter('device', '')
+ self.declare_parameter('class_names', [])
+
+ model_type = self.get_parameter('model_type').get_parameter_value().string_value
+ input_mode = self.get_parameter('input_mode').get_parameter_value().string_value
+ explicit_model_path = self.get_parameter('model_path').get_parameter_value().string_value
+ self.conf_threshold = self.get_parameter('conf_threshold').get_parameter_value().double_value
+ device_param = self.get_parameter('device').get_parameter_value().string_value
+ class_names_param = self.get_parameter('class_names').get_parameter_value().string_array_value
+
+ # --- MODEL PATH LOGIC ---
+ if explicit_model_path:
+ model_path = explicit_model_path
+ else:
+ try:
+ package_share_directory = get_package_share_directory(self.package_name)
+ if model_type == 'fine_tuned':
+ model_path = os.path.join(package_share_directory, 'models', 'fine_tuned.pt')
+ else:
+ model_path = os.path.join(package_share_directory, 'models', 'yolov8n.pt')
+ except Exception:
+ # Fallback for when running locally/testing without full install
+ model_path = 'yolov8n.pt'
+ self.get_logger().warn(f"Could not find package share directory. Defaulting model path to: {model_path}")
+
+ self.get_logger().info(f"Using model type '{model_type}' from: {model_path}")
+
+ # --- 1. LOAD MODEL (Heavy operation, done ONCE at startup) ---
+ self.get_logger().info("Loading YOLO model... (This stays in RAM)")
+ try:
+ if device_param:
+ self.model = YOLO(model_path)
+ try:
+ self.model.to(device_param)
+ self.get_logger().info(f"Model moved to device: {device_param}")
+ except Exception as e:
+ self.get_logger().warn(f"Failed to move model to device '{device_param}': {e}")
+ else:
+ self.model = YOLO(model_path)
+ except Exception as e:
+ self.get_logger().error(f"Failed to load YOLO model from '{model_path}': {e}")
+ raise
+
+ # Optional override for class names
+ self.class_names = None
+ if class_names_param:
+ self.class_names = list(class_names_param)
+
+ # --- 2. DETERMINE TOPIC (Save for later) ---
+ if input_mode == 'robot':
+ self.image_topic = '/camera/color/image_raw'
+ elif input_mode == 'realsense':
+ self.image_topic = '/camera/camera/color/image_raw'
+ else:
+ self.get_logger().warn(f"Unknown input_mode '{input_mode}', defaulting to 'realsense'")
+ self.image_topic = '/camera/camera/color/image_raw'
+
+ # --- 3. SETUP PUBLISHERS ---
+ self.annotated_image_pub = self.create_publisher(Image, '/annotated_image', 10)
+ self.detection_pub = self.create_publisher(Detection2DArray, '/detections', 10)
+
+ # --- 4. OPTIMIZATION / SOFT LIFECYCLE ---
+ # We do NOT subscribe here. We start in "Standby" mode.
+ self.image_sub = None
+
+ # Create the service to wake up the node
+ self.srv = self.create_service(SetBool, 'toggle_yolo', self.toggle_callback)
+
+ self.get_logger().info(f"YOLOv8 Node Initialized in STANDBY mode.")
+ self.get_logger().info(f"Send 'True' to service '/toggle_yolo' to start processing {self.image_topic}")
+
+ def toggle_callback(self, request, response):
+ """Service callback to Turn processing ON or OFF"""
+ if request.data: # REQUEST: ENABLE
+ if self.image_sub is None:
+ self.get_logger().info(f"ACTIVATING: Subscribing to {self.image_topic}...")
+ self.image_sub = self.create_subscription(
+ Image, self.image_topic, self.image_callback, 10
+ )
+ response.message = "YOLO Activated"
+ response.success = True
+ else:
+ response.message = "Already Active"
+ response.success = True
+ else: # REQUEST: DISABLE
+ if self.image_sub is not None:
+ self.get_logger().info("DEACTIVATING: Unsubscribing to save CPU...")
+ self.destroy_subscription(self.image_sub)
+ self.image_sub = None
+ response.message = "YOLO Deactivated"
+ response.success = True
+ else:
+ response.message = "Already Inactive"
+ response.success = True
+ return response
+
+ def image_callback(self, msg):
+ """This function ONLY runs when the node is Activated"""
+ try:
+ cv_image = self.bridge.imgmsg_to_cv2(msg, 'bgr8')
+ except Exception as e:
+ self.get_logger().error(f'Image conversion error: {e}')
+ return
+
+ # Inference
+ results = self.model(cv_image, verbose=False) # verbose=False keeps terminal clean
+ detection_array_msg = Detection2DArray()
+ detection_array_msg.header = msg.header
+
+ for result in results:
+ filtered_boxes = [box for box in result.boxes if float(box.conf) >= self.conf_threshold]
+
+ # 1. Publish Annotated Image
+ annotated_image = result.plot()
+ try:
+ annotated_msg = self.bridge.cv2_to_imgmsg(annotated_image, encoding='bgr8')
+ annotated_msg.header = msg.header
+ self.annotated_image_pub.publish(annotated_msg)
+ except Exception as e:
+ self.get_logger().error(f'Annotated image conversion error: {e}')
+
+ # 2. Publish Detections
+ for box in filtered_boxes:
+ detection_msg = Detection2D()
+ detection_msg.header = msg.header
+
+ hypothesis = ObjectHypothesisWithPose()
+ try:
+ if self.class_names and int(box.cls) < len(self.class_names):
+ class_name = self.class_names[int(box.cls)]
+ else:
+ class_name = self.model.names[int(box.cls)]
+ except Exception:
+ class_name = str(int(box.cls))
+
+ hypothesis.hypothesis.class_id = class_name
+ hypothesis.hypothesis.score = float(box.conf)
+ detection_msg.results.append(hypothesis)
+
+ xywh = box.xywh.cpu().numpy().flatten()
+ detection_msg.bbox.center.position.x = float(xywh[0])
+ detection_msg.bbox.center.position.y = float(xywh[1])
+ detection_msg.bbox.size_x = float(xywh[2])
+ detection_msg.bbox.size_y = float(xywh[3])
+
+ detection_array_msg.detections.append(detection_msg)
+
+ self.detection_pub.publish(detection_array_msg)
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = YoloDetectorNode()
+ try:
+ rclpy.spin(node)
+ except KeyboardInterrupt:
+ pass
+ finally:
+ node.destroy_node()
+ rclpy.shutdown()
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/src/perception/perception/opencv_camera_feed.py b/src/perception/perception/opencv_camera_feed.py
deleted file mode 100644
index b9d8c7d..0000000
--- a/src/perception/perception/opencv_camera_feed.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import rclpy
-from rclpy.node import Node
-from sensor_msgs.msg import Image
-from cv_bridge import CvBridge
-import cv2
-
-class SimpleCameraNode(Node):
- def __init__(self):
- super().__init__('simple_camera_node')
- self.publisher = self.create_publisher(Image, 'image_raw', 10)
- self.bridge = CvBridge()
- self.cap = cv2.VideoCapture(4) # Video4Linux device
-
- timer_period = 0.03 # 30ms ~ 33 FPS
- self.timer = self.create_timer(timer_period, self.timer_callback)
-
- def timer_callback(self):
- ret, frame = self.cap.read()
- if not ret:
- self.get_logger().warn('Failed to capture frame')
- return
-
- msg = self.bridge.cv2_to_imgmsg(frame, encoding='bgr8')
- self.publisher.publish(msg)
-
-
-def main(args=None):
- rclpy.init(args=args)
- node = SimpleCameraNode()
- rclpy.spin(node)
- node.cap.release()
- node.destroy_node()
- rclpy.shutdown()
-
-
-if __name__ == '__main__':
- main()
diff --git a/src/perception/perception/opencv_yolo_object_detection.py b/src/perception/perception/opencv_yolo_object_detection.py
deleted file mode 100644
index 60677af..0000000
--- a/src/perception/perception/opencv_yolo_object_detection.py
+++ /dev/null
@@ -1,37 +0,0 @@
-import rclpy
-from rclpy.node import Node
-from sensor_msgs.msg import Image
-from cv_bridge import CvBridge
-from ultralytics import YOLO
-import cv2
-import os
-
-class YOLOv8Node(Node):
- def __init__(self):
- super().__init__('yolov8_node')
- self.bridge = CvBridge()
- model_path = os.path.expanduser('~/ros2_ws/models/yolov8n.pt')
- self.model = YOLO(model_path) # Replace with your model if custom
-
- self.subscription = self.create_subscription(
- Image,
- '/image_raw',
- self.image_callback,
- 10)
-
- self.publisher = self.create_publisher(Image, '/yolov8/image_annotated', 10)
-
- def image_callback(self, msg):
- frame = self.bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8')
- results = self.model(frame)
- annotated_frame = results[0].plot()
- out_msg = self.bridge.cv2_to_imgmsg(annotated_frame, encoding='bgr8')
- self.publisher.publish(out_msg)
-
-
-def main(args=None):
- rclpy.init(args=args)
- node = YOLOv8Node()
- rclpy.spin(node)
- node.destroy_node()
- rclpy.shutdown()
diff --git a/src/perception/perception/rviz/place_object.rviz b/src/perception/perception/rviz/place_object.rviz
new file mode 100644
index 0000000..7c7716f
--- /dev/null
+++ b/src/perception/perception/rviz/place_object.rviz
@@ -0,0 +1,314 @@
+Panels:
+ - Class: rviz_common/Displays
+ Help Height: 0
+ Name: Displays
+ Property Tree Widget:
+ Expanded:
+ - /Global Options1
+ - /Status1
+ Splitter Ratio: 0.5
+ Tree Height: 751
+ - Class: rviz_common/Selection
+ Name: Selection
+ - Class: rviz_common/Tool Properties
+ Expanded:
+ - /2D Goal Pose1
+ - /Publish Point1
+ Name: Tool Properties
+ Splitter Ratio: 0.5886790156364441
+ - Class: rviz_common/Views
+ Expanded:
+ - /Current View1
+ Name: Views
+ Splitter Ratio: 0.5
+ - Class: rviz_common/Time
+ Experimental: false
+ Name: Time
+ SyncMode: 0
+ SyncSource: PointCloud2
+Visualization Manager:
+ Class: ""
+ Displays:
+ - Alpha: 0.5
+ Cell Size: 1
+ Class: rviz_default_plugins/Grid
+ Color: 160; 160; 164
+ Enabled: true
+ Line Style:
+ Line Width: 0.029999999329447746
+ Value: Lines
+ Name: Grid
+ Normal Cell Count: 0
+ Offset:
+ X: 0
+ Y: 0
+ Z: 0
+ Plane: XY
+ Plane Cell Count: 10
+ Reference Frame:
+ Value: true
+ - Alpha: 1
+ Axes Length: 1
+ Axes Radius: 0.10000000149011612
+ Class: rviz_default_plugins/Pose
+ Color: 255; 25; 0
+ Enabled: false
+ Head Length: 0.30000001192092896
+ Head Radius: 0.10000000149011612
+ Name: Pose
+ Shaft Length: 1
+ Shaft Radius: 0.05000000074505806
+ Shape: Arrow
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ Filter size: 10
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /perception/target_place_pose
+ Value: false
+ - Class: rviz_default_plugins/Image
+ Enabled: false
+ Max Value: 1
+ Median window: 5
+ Min Value: 0
+ Name: Image
+ Normalize Range: true
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /camera/color/image_raw
+ Value: false
+ - Alpha: 1
+ Autocompute Intensity Bounds: true
+ Autocompute Value Bounds:
+ Max Value: 10
+ Min Value: -10
+ Value: true
+ Axis: Z
+ Channel Name: intensity
+ Class: rviz_default_plugins/PointCloud2
+ Color: 255; 255; 255
+ Color Transformer: RGB8
+ Decay Time: 0
+ Enabled: false
+ Invert Rainbow: false
+ Max Color: 255; 255; 255
+ Max Intensity: 4096
+ Min Color: 0; 0; 0
+ Min Intensity: 0
+ Name: PointCloud2
+ Position Transformer: XYZ
+ Selectable: true
+ Size (Pixels): 3
+ Size (m): 0.009999999776482582
+ Style: Flat Squares
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /camera/depth/color/points
+ Use Fixed Frame: true
+ Use rainbow: true
+ Value: false
+ - Alpha: 1
+ Autocompute Intensity Bounds: true
+ Autocompute Value Bounds:
+ Max Value: 10
+ Min Value: -10
+ Value: true
+ Axis: Z
+ Channel Name: intensity
+ Class: rviz_default_plugins/PointCloud2
+ Color: 255; 255; 255
+ Color Transformer: RGB8
+ Decay Time: 0
+ Enabled: true
+ Invert Rainbow: false
+ Max Color: 255; 255; 255
+ Max Intensity: 4096
+ Min Color: 0; 0; 0
+ Min Intensity: 0
+ Name: PointCloud2
+ Position Transformer: XYZ
+ Selectable: true
+ Size (Pixels): 3
+ Size (m): 0.009999999776482582
+ Style: Flat Squares
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /perception/debug/table_plane
+ Use Fixed Frame: true
+ Use rainbow: true
+ Value: true
+ - Alpha: 1
+ Autocompute Intensity Bounds: true
+ Autocompute Value Bounds:
+ Max Value: 10
+ Min Value: -10
+ Value: true
+ Axis: Z
+ Channel Name: intensity
+ Class: rviz_default_plugins/PointCloud2
+ Color: 255; 255; 255
+ Color Transformer: RGB8
+ Decay Time: 0
+ Enabled: true
+ Invert Rainbow: false
+ Max Color: 255; 255; 255
+ Max Intensity: 4096
+ Min Color: 0; 0; 0
+ Min Intensity: 0
+ Name: PointCloud2
+ Position Transformer: XYZ
+ Selectable: true
+ Size (Pixels): 3
+ Size (m): 0.009999999776482582
+ Style: Flat Squares
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /perception/debug/objects
+ Use Fixed Frame: true
+ Use rainbow: true
+ Value: true
+ - Class: rviz_default_plugins/Marker
+ Enabled: false
+ Name: Marker
+ Namespaces:
+ {}
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ Filter size: 10
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /perception/debug/viz_arrow
+ Value: false
+ - Alpha: 1
+ Axes Length: 1
+ Axes Radius: 0.10000000149011612
+ Class: rviz_default_plugins/Pose
+ Color: 255; 25; 0
+ Enabled: false
+ Head Length: 0.30000001192092896
+ Head Radius: 0.10000000149011612
+ Name: Pose
+ Shaft Length: 1
+ Shaft Radius: 0.05000000074505806
+ Shape: Arrow
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ Filter size: 10
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /perception/target_place_pose
+ Value: false
+ - Class: rviz_default_plugins/Marker
+ Enabled: true
+ Name: Marker
+ Namespaces:
+ safety_sphere: true
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ Filter size: 10
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /perception/debug/viz_sphere
+ Value: true
+ Enabled: true
+ Global Options:
+ Background Color: 48; 48; 48
+ Fixed Frame: camera_link
+ Frame Rate: 30
+ Name: root
+ Tools:
+ - Class: rviz_default_plugins/Interact
+ Hide Inactive Objects: true
+ - Class: rviz_default_plugins/MoveCamera
+ - Class: rviz_default_plugins/Select
+ - Class: rviz_default_plugins/FocusCamera
+ - Class: rviz_default_plugins/Measure
+ Line color: 128; 128; 0
+ - Class: rviz_default_plugins/SetInitialPose
+ Covariance x: 0.25
+ Covariance y: 0.25
+ Covariance yaw: 0.06853891909122467
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /initialpose
+ - Class: rviz_default_plugins/SetGoal
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /goal_pose
+ - Class: rviz_default_plugins/PublishPoint
+ Single click: true
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /clicked_point
+ Transformation:
+ Current:
+ Class: rviz_default_plugins/TF
+ Value: true
+ Views:
+ Current:
+ Class: rviz_default_plugins/Orbit
+ Distance: 2.601862668991089
+ Enable Stereo Rendering:
+ Stereo Eye Separation: 0.05999999865889549
+ Stereo Focal Distance: 1
+ Swap Stereo Eyes: false
+ Value: false
+ Focal Point:
+ X: -0.18230421841144562
+ Y: 0.2078571617603302
+ Z: 0.9030411839485168
+ Focal Shape Fixed Size: true
+ Focal Shape Size: 0.05000000074505806
+ Invert Z Axis: true
+ Name: Current View
+ Near Clip Distance: 0.009999999776482582
+ Pitch: 0.9502022862434387
+ Target Frame:
+ Value: Orbit (rviz)
+ Yaw: 1.5285863876342773
+ Saved: ~
+Window Geometry:
+ Displays:
+ collapsed: false
+ Height: 1003
+ Hide Left Dock: false
+ Hide Right Dock: false
+ Image:
+ collapsed: false
+ QMainWindow State: 000000ff00000000fd0000000400000000000002e400000338fc020000000bfb0000001200530065006c0065006300740069006f006e00000001e10000009b0000006f00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000004800000338000000f300fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000a0049006d0061006700650000000269000001170000001a00fffffffb0000000a0049006d006100670065010000022f000001510000000000000000fb0000000a0049006d00610067006501000002110000016f0000000000000000000000010000011500000338fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000004800000338000000c500fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073e00000042fc0100000002fb0000000800540069006d006501000000000000073e000002dc00fffffffb0000000800540069006d00650100000000000004500000000000000000000003370000033800000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+ Selection:
+ collapsed: false
+ Time:
+ collapsed: false
+ Tool Properties:
+ collapsed: false
+ Views:
+ collapsed: false
+ Width: 1854
+ X: 66
+ Y: 40
diff --git a/src/perception/perception/segment_object.py b/src/perception/perception/segment_object.py
new file mode 100644
index 0000000..77a212d
--- /dev/null
+++ b/src/perception/perception/segment_object.py
@@ -0,0 +1,190 @@
+import rclpy
+from rclpy.node import Node
+from rclpy.qos import QoSProfile, ReliabilityPolicy, HistoryPolicy
+import message_filters
+from sensor_msgs.msg import Image, PointCloud2
+from visualization_msgs.msg import Marker, MarkerArray
+from vision_msgs.msg import Detection3D, Detection3DArray, ObjectHypothesisWithPose
+from std_msgs.msg import Float32 # <--- NEW: Import for the radius topic
+from cv_bridge import CvBridge
+from sensor_msgs_py import point_cloud2 as pc2
+import numpy as np
+import cv2
+import torch
+from ultralytics import YOLO, SAM
+
+class ObjectSphereNode(Node):
+ def __init__(self):
+ super().__init__('object_sphere_node')
+
+ # --- CONFIGURATION ---
+ self.img_topic = '/camera/color/image_raw'
+ self.pc_topic = '/camera/depth/color/points'
+ self.yolo_model = '/home/mohsin/fix/r4s/models/fine_tuned.pt'
+ self.sam_model = "sam_b.pt"
+ self.target_classes = ["unit", "motor"]
+ # Define BGR colors for classes (Green for unit, Blue for motor)
+ self.class_colors = {"unit": (0, 255, 0), "motor": (255, 0, 0)}
+ self.min_points_threshold = 50 # Minimum valid points needed for 3D calculation
+
+ # --- MODELS ---
+ self.bridge = CvBridge()
+ self.device = 'cuda' if torch.cuda.is_available() else 'cpu'
+ self.get_logger().info(f"Loading Models on {self.device}...")
+ self.yolo = YOLO(self.yolo_model).to(self.device)
+ self.sam = SAM(self.sam_model).to(self.device)
+
+ # --- PUBLISHERS ---
+ # 1. 3D Markers for RViz Visualization
+ self.marker_pub = self.create_publisher(MarkerArray, '/object_markers', 10)
+ # 2. 3D Data for other nodes (position/size)
+ self.detect_pub = self.create_publisher(Detection3DArray, '/object_detections', 10)
+ # 3. 2D Segmentation visualization image
+ self.seg_pub = self.create_publisher(Image, '/object_segmentation', 10)
+ # 4. NEW: Single float radius publisher for external node
+ self.radius_pub = self.create_publisher(Float32, '/perception/detected_object_radius', 10)
+
+ # --- SUBSCRIBERS ---
+ qos = QoSProfile(reliability=ReliabilityPolicy.BEST_EFFORT, history=HistoryPolicy.KEEP_LAST, depth=1)
+ self.img_sub = message_filters.Subscriber(self, Image, self.img_topic, qos_profile=qos)
+ self.pc_sub = message_filters.Subscriber(self, PointCloud2, self.pc_topic, qos_profile=qos)
+
+ # Sync RGB and Depth
+ self.ts = message_filters.ApproximateTimeSynchronizer(
+ [self.img_sub, self.pc_sub], queue_size=5, slop=0.1
+ )
+ self.ts.registerCallback(self.callback)
+ self.get_logger().info("Node ready.")
+
+ def callback(self, img_msg, pc_msg):
+ # 1. Image Conversion
+ try:
+ cv_img = self.bridge.imgmsg_to_cv2(img_msg, desired_encoding='bgr8')
+ except Exception as e:
+ self.get_logger().error(f"CV Bridge Error: {e}")
+ return
+
+ # 2. YOLO Inference
+ yolo_res = self.yolo(cv_img, verbose=False, conf=0.5)[0]
+ boxes, labels = [], []
+ for box in yolo_res.boxes:
+ cls_id = int(box.cls[0])
+ name = yolo_res.names[cls_id]
+ if name in self.target_classes:
+ boxes.append(box.xyxy[0].cpu().numpy())
+ labels.append(name)
+
+ if not boxes: return
+
+ # 3. SAM Inference
+ boxes_np = np.array(boxes)
+ sam_res = self.sam(cv_img, bboxes=boxes_np, verbose=False)[0]
+ if sam_res.masks is None: return
+ masks_data = sam_res.masks.data.cpu().numpy()
+
+ # 4. Point Cloud Prep
+ if pc_msg.height <= 1: return
+ points = pc2.read_points_numpy(pc_msg, field_names=("x", "y", "z"), skip_nans=False)
+ try:
+ points_3d = points.reshape((pc_msg.height, pc_msg.width, 3))
+ except ValueError: return
+
+ # --- Initialize Outputs ---
+ marker_array = MarkerArray()
+ detection_array = Detection3DArray()
+ detection_array.header = pc_msg.header
+
+ # Create a black background image for segmentation visualization
+ seg_overlay_img = np.zeros((cv_img.shape[0], cv_img.shape[1], 3), dtype=np.uint8)
+
+ # NEW: Flag to track if the radius has been published in this frame
+ radius_published = False
+
+ # 5. Iterate Results
+ for i, (mask_small, label) in enumerate(zip(masks_data, labels)):
+ # A. Resize Mask
+ mask_uint8 = mask_small.astype(np.uint8)
+ # Resize to match the original image/pointcloud dimensions
+ mask_resized = cv2.resize(mask_uint8, (pc_msg.width, pc_msg.height), interpolation=cv2.INTER_NEAREST)
+ full_mask_bool = mask_resized.astype(bool)
+
+ # --- Paint Segmentation Image ---
+ # Get BGR color for this class
+ color_bgr = self.class_colors.get(label, (255, 255, 255))
+ # Use boolean indexing to color the pixels where the mask is True
+ seg_overlay_img[full_mask_bool] = color_bgr
+
+ # B. Extract 3D Points based on mask
+ obj_points = points_3d[full_mask_bool]
+ valid_obj_points = obj_points[~np.isnan(obj_points).any(axis=1)]
+
+ if len(valid_obj_points) < self.min_points_threshold: continue
+
+ # C. Calculate Sphere
+ centroid = np.mean(valid_obj_points, axis=0)
+ distances = np.linalg.norm(valid_obj_points - centroid, axis=1)
+ radius = np.max(distances)
+ diameter = radius * 2.0
+
+ # D. NEW: Publish radius for the first valid object
+ if not radius_published:
+ radius_msg = Float32()
+ radius_msg.data = float(radius)
+ self.radius_pub.publish(radius_msg)
+ self.get_logger().debug(f"Published radius for {label}: {radius:.4f} m")
+ radius_published = True
+
+ # E. Create Marker (RViz)
+ sphere = Marker()
+ sphere.header = pc_msg.header
+ sphere.ns = "detections"
+ sphere.id = i
+ sphere.type = Marker.SPHERE
+ sphere.action = Marker.ADD
+ sphere.pose.position.x = float(centroid[0])
+ sphere.pose.position.y = float(centroid[1])
+ sphere.pose.position.z = float(centroid[2])
+ sphere.scale.x = float(diameter); sphere.scale.y = float(diameter); sphere.scale.z = float(diameter)
+ # Set color based on class, matching segmentation color but semi-transparent
+ sphere.color.r = color_bgr[2] / 255.0 # BGR to RGB normalized
+ sphere.color.g = color_bgr[1] / 255.0
+ sphere.color.b = color_bgr[0] / 255.0
+ sphere.color.a = 0.5
+ marker_array.markers.append(sphere)
+
+ # F. Create Detection Message (Data)
+ detection = Detection3D()
+ detection.header = pc_msg.header
+ hypothesis = ObjectHypothesisWithPose()
+ hypothesis.hypothesis.class_id = label
+ hypothesis.hypothesis.score = 1.0
+ detection.results.append(hypothesis)
+ detection.bbox.center.position.x = float(centroid[0])
+ detection.bbox.center.position.y = float(centroid[1])
+ detection.bbox.center.position.z = float(centroid[2])
+ detection.bbox.size.x = float(diameter); detection.bbox.size.y = float(diameter); detection.bbox.size.z = float(diameter)
+ detection_array.detections.append(detection)
+
+ # --- Publish All outputs ---
+ self.marker_pub.publish(marker_array)
+ self.detect_pub.publish(detection_array)
+
+ # Publish Segmentation Image
+ try:
+ # Convert numpy array back to ROS Image message
+ seg_msg = self.bridge.cv2_to_imgmsg(seg_overlay_img, encoding="bgr8")
+ # IMPORTANT: Copy header from input to ensure sync in RViz
+ seg_msg.header = img_msg.header
+ self.seg_pub.publish(seg_msg)
+ except Exception as e:
+ self.get_logger().error(f"Could not publish segmentation image: {e}")
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = ObjectSphereNode()
+ rclpy.spin(node)
+ node.destroy_node()
+ rclpy.shutdown()
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/src/perception/perception/table_segmentation.py b/src/perception/perception/table_segmentation.py
new file mode 100644
index 0000000..4f08041
--- /dev/null
+++ b/src/perception/perception/table_segmentation.py
@@ -0,0 +1,428 @@
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import PointCloud2, PointField
+from geometry_msgs.msg import PoseStamped
+from visualization_msgs.msg import Marker
+from std_msgs.msg import Float32, Header
+import sensor_msgs_py.point_cloud2 as pc2
+import open3d as o3d
+import numpy as np
+import struct
+
+class TableSegmentationNode(Node):
+ def __init__(self):
+ super().__init__('table_segmentation_node')
+
+ # Declare Parameters
+ self.declare_parameter('input_mode', 'robot')
+ self.declare_parameter('debug_viz', True)
+
+ self.declare_parameter('mode', 'test') # 'test' or 'actual'
+ self.declare_parameter('test_radius', 0.07) # Default radius for test mode (7cm)
+ self.declare_parameter('safety_margin', 0.02) # Default safety margin (2cm)
+
+ # Get Parameters
+ input_mode = self.get_parameter('input_mode').get_parameter_value().string_value
+ self.debug_viz = self.get_parameter('debug_viz').get_parameter_value().bool_value
+ self.op_mode = self.get_parameter('mode').get_parameter_value().string_value
+ self.current_radius = self.get_parameter('test_radius').get_parameter_value().double_value
+ self.safety_margin = self.get_parameter('safety_margin').get_parameter_value().double_value
+
+ self.get_logger().info(f"Starting in MODE: {self.op_mode}")
+ self.get_logger().info(f"Initial Radius: {self.current_radius}m | Safety Margin: {self.safety_margin}m")
+
+ if input_mode == 'robot':
+ pc_topic = '/camera/depth/color/points'
+ elif input_mode == 'realsense':
+ pc_topic = '/camera/camera/depth/color/points'
+ else:
+ pc_topic = '/camera/depth/color/points'
+
+ self.get_logger().info(f"Subscribing to: {pc_topic}")
+
+ self.pc_sub = self.create_subscription(PointCloud2, pc_topic, self.cloud_callback, 10)
+
+ # Radius Subscriber (Only active in actual mode)
+ if self.op_mode == 'actual':
+ self.radius_sub = self.create_subscription(
+ Float32,
+ '/perception/detected_object_radius',
+ self.radius_callback,
+ 10
+ )
+ self.get_logger().info("Listening to /perception/detected_object_radius for updates...")
+
+ # Publishers
+ self.place_pose_pub = self.create_publisher(PoseStamped, '/perception/target_place_pose', 10)
+ self.viz_sphere_pub = self.create_publisher(Marker, '/perception/debug/viz_sphere', 10) # Publisher for the Safety Sphere
+
+ # Debug Publishers
+ self.table_cloud_pub = self.create_publisher(PointCloud2, '/perception/debug/table_plane', 10)
+ self.object_cloud_pub = self.create_publisher(PointCloud2, '/perception/debug/objects', 10)
+ self.viz_pub = self.create_publisher(Marker, '/perception/debug/viz_arrow', 10) # For RViz - Visual Offset above the table
+
+ def radius_callback(self, msg):
+ """Called only in actual mode when a new object size is detected."""
+ if msg.data > 0.01: # Minimum 1cm radius
+ self.current_radius = float(msg.data)
+ self.get_logger().info(f"Updated Object Radius to: {self.current_radius:.3f}m")
+
+ def cloud_callback(self, ros_cloud_msg):
+ self.get_logger().info(f"Processing cloud: {ros_cloud_msg.width}x{ros_cloud_msg.height}")
+
+ pcd = self.convert_ros_to_o3d(ros_cloud_msg)
+ if pcd is None:
+ return
+
+ max_depth = 1.2 # 1.2 meters
+
+ points = np.asarray(pcd.points)
+ if len(points) > 0:
+ # Keep points where Z is less than max_depth
+ mask = points[:, 2] < max_depth
+ pcd = pcd.select_by_index(np.where(mask)[0])
+
+ if len(pcd.points) < 100:
+ self.get_logger().warn("No points left after depth filtering!")
+ return
+
+ pcd_down = pcd.voxel_down_sample(voxel_size=0.005)
+
+ try:
+ plane_model, inliers = pcd_down.segment_plane(distance_threshold=0.008,
+ ransac_n=3,
+ num_iterations=1000)
+ except Exception as e:
+ self.get_logger().warn("Could not find a plane (table) in view.")
+ return
+
+ table_cloud = pcd_down.select_by_index(inliers)
+ raw_object_cloud = pcd_down.select_by_index(inliers, invert=True)
+
+ # Filter objects above the table
+ object_cloud = self.filter_objects_above_table(raw_object_cloud, plane_model)
+
+ total_check_radius = self.current_radius + self.safety_margin
+ target_point = self.find_empty_spot(table_cloud, object_cloud, total_check_radius, plane_model)
+
+ if target_point is not None:
+ quat, arrow_vector = self.get_orientation_from_plane(plane_model)
+
+ self.get_logger().info(
+ f"Target: X={target_point[0]:.2f}, Y={target_point[1]:.2f}, Z={target_point[2]:.2f}"
+ )
+
+ # Publish the real target pose for the robot
+ real_pose = PoseStamped()
+ real_pose.header = ros_cloud_msg.header
+ real_pose.pose.position.x = float(target_point[0])
+ real_pose.pose.position.y = float(target_point[1])
+ real_pose.pose.position.z = float(target_point[2])
+ real_pose.pose.orientation.x = float(quat[0])
+ real_pose.pose.orientation.y = float(quat[1])
+ real_pose.pose.orientation.z = float(quat[2])
+ real_pose.pose.orientation.w = float(quat[3])
+
+ self.place_pose_pub.publish(real_pose)
+
+ # Publish a visualization pose slightly above the table for RViz
+ viz_len = 0.15
+ hover_point = target_point - (arrow_vector * viz_len)
+
+ viz_pose = PoseStamped()
+ viz_pose.header = ros_cloud_msg.header
+ viz_pose.pose.position.x = float(hover_point[0])
+ viz_pose.pose.position.y = float(hover_point[1])
+ viz_pose.pose.position.z = float(hover_point[2])
+ viz_pose.pose.orientation = real_pose.pose.orientation
+
+ self.publish_arrow_marker(viz_pose)
+
+ self.publish_safety_sphere(real_pose, self.current_radius)
+ else:
+ self.get_logger().warn("Table full or no safe spot found!")
+
+ if self.debug_viz:
+ # Paint Green and Red
+ table_cloud.paint_uniform_color([0, 1, 0])
+ object_cloud.paint_uniform_color([1, 0, 0])
+
+ # Publish with Color support
+ self.publish_o3d(table_cloud, self.table_cloud_pub, ros_cloud_msg.header)
+ self.publish_o3d(object_cloud, self.object_cloud_pub, ros_cloud_msg.header)
+
+ def publish_safety_sphere(self, pose_stamped, radius):
+ marker = Marker()
+ marker.header = pose_stamped.header
+ marker.ns = "safety_sphere"
+ marker.id = 1
+ marker.type = Marker.SPHERE
+ marker.action = Marker.ADD
+ marker.pose = pose_stamped.pose
+
+ diameter = radius * 2.0
+ marker.scale.x = diameter
+ marker.scale.y = diameter
+ marker.scale.z = diameter
+
+ marker.color.r = 0.0
+ marker.color.g = 0.5
+ marker.color.b = 1.0
+ marker.color.a = 0.5
+
+ self.viz_sphere_pub.publish(marker)
+
+ def publish_arrow_marker(self, pose_stamped):
+ marker = Marker()
+ marker.header = pose_stamped.header
+ marker.ns = "target_arrow"
+ marker.id = 0
+ marker.type = Marker.ARROW
+ marker.action = Marker.ADD
+
+ marker.pose = pose_stamped.pose
+
+ marker.scale.x = 0.15 # 15cm Long
+ marker.scale.y = 0.01 # 1cm Wide
+ marker.scale.z = 0.02 # 2cm Head
+
+ marker.color.r = 0.0
+ marker.color.g = 1.0
+ marker.color.b = 1.0
+ marker.color.a = 1.0
+
+ self.viz_pub.publish(marker)
+
+ def filter_objects_above_table(self, object_cloud, plane_model):
+ """
+ Removes points that are on the wrong side of the table.
+ Also removes points that are too high to be relevant objects.
+ """
+ if len(object_cloud.points) == 0:
+ return object_cloud
+
+ a, b, c, d = plane_model
+
+ # Determine camera side sign
+ camera_sign = np.sign(d)
+
+ points = np.asarray(object_cloud.points)
+ colors = np.asarray(object_cloud.colors) if object_cloud.has_colors() else None
+
+ # Calculate signed distance for all points
+ distances = (points[:,0] * a) + (points[:,1] * b) + (points[:,2] * c) + d
+
+ # Filter
+ # - Must be on the same side as camera (Above table)
+ # - Must be within 50cm of the table surface (Ignore ceiling/high noise)
+ valid_mask = (np.sign(distances) == camera_sign) & (np.abs(distances) < 0.5)
+
+ filtered_cloud = o3d.geometry.PointCloud()
+ filtered_cloud.points = o3d.utility.Vector3dVector(points[valid_mask])
+ if colors is not None:
+ filtered_cloud.colors = o3d.utility.Vector3dVector(colors[valid_mask])
+
+ return filtered_cloud
+
+ def get_orientation_from_plane(self, plane_model):
+ """
+ Calculates a quaternion where the X-AXIS points into the table.
+ """
+ # Get the Normal Vector [a,b,c]
+ normal = np.array(plane_model[:3])
+ normal = normal / np.linalg.norm(normal)
+
+ # Define the arrow direction (X-axis)
+ if normal[1] < 0: # If Y is negative (pointing up)
+ target_x = -normal # Flip it to point down/table
+ else:
+ target_x = normal
+
+ # Construct Orthogonal Axes
+ ref_vector = np.array([0, 1, 0])
+
+ # If too close to parallel, use World X (1,0,0)
+ if np.abs(np.dot(target_x, ref_vector)) > 0.9:
+ ref_vector = np.array([1, 0, 0])
+
+ # Z = X cross Ref
+ z_axis = np.cross(target_x, ref_vector)
+ z_axis = z_axis / np.linalg.norm(z_axis)
+
+ # Y = Z cross X (Ensure orthogonality)
+ y_axis = np.cross(z_axis, target_x)
+ y_axis = y_axis / np.linalg.norm(y_axis)
+
+ # Create Rotation Matrix [ X Y Z ]
+ R = np.array([target_x, y_axis, z_axis]).T
+
+ # Convert to Quaternion [x, y, z, w]
+ tr = np.trace(R)
+ if tr > 0:
+ S = np.sqrt(tr + 1.0) * 2
+ qw = 0.25 * S
+ qx = (R[2,1] - R[1,2]) / S
+ qy = (R[0,2] - R[2,0]) / S
+ qz = (R[1,0] - R[0,1]) / S
+ elif (R[0,0] > R[1,1]) and (R[0,0] > R[2,2]):
+ S = np.sqrt(1.0 + R[0,0] - R[1,1] - R[2,2]) * 2
+ qw = (R[2,1] - R[1,2]) / S
+ qx = 0.25 * S
+ qy = (R[0,1] + R[1,0]) / S
+ qz = (R[0,2] + R[2,0]) / S
+ elif (R[1,1] > R[2,2]):
+ S = np.sqrt(1.0 + R[1,1] - R[0,0] - R[2,2]) * 2
+ qw = (R[0,2] - R[2,0]) / S
+ qx = (R[0,1] + R[1,0]) / S
+ qy = 0.25 * S
+ qz = (R[1,2] + R[2,1]) / S
+ else:
+ S = np.sqrt(1.0 + R[2,2] - R[0,0] - R[1,1]) * 2
+ qw = (R[1,0] - R[0,1]) / S
+ qx = (R[0,2] + R[2,0]) / S
+ qy = (R[1,2] + R[2,1]) / S
+ qz = 0.25 * S
+
+ return [qx, qy, qz, qw], target_x
+
+ def find_empty_spot(self, table_cloud, object_cloud, radius_to_check, plane_model):
+ if len(table_cloud.points) == 0: return None
+
+ a, b, c, d = plane_model
+
+ # Get table geometry statistics
+ table_pts = np.asarray(table_cloud.points)
+ min_x, min_y = np.min(table_pts[:,0]), np.min(table_pts[:,1])
+ max_x, max_y = np.max(table_pts[:,0]), np.max(table_pts[:,1])
+
+ avg_z = np.mean(table_pts[:,2]) # The height of the table plane
+ center_x, center_y = np.mean(table_pts[:,0]), np.mean(table_pts[:,1])
+
+ table_tree = o3d.geometry.KDTreeFlann(table_cloud)
+
+ has_objects = len(object_cloud.points) > 0
+ object_tree = None
+
+ if has_objects:
+ # Create a shadow cloud where all object points are projected onto the table plane (Z = avg_z).
+ # This ensures that tall objects block the grid points underneath them.
+ obj_points = np.asarray(object_cloud.points).copy()
+ obj_points[:, 2] = avg_z # Force Z to match table height
+
+ flat_object_cloud = o3d.geometry.PointCloud()
+ flat_object_cloud.points = o3d.utility.Vector3dVector(obj_points)
+
+ # Build tree on the flattened cloud
+ object_tree = o3d.geometry.KDTreeFlann(flat_object_cloud)
+
+ # Grid search
+ step = 0.05
+ best_pt = None
+ best_score = -float('inf')
+
+ for x in np.arange(min_x, max_x, step):
+ for y in np.arange(min_y , max_y, step):
+
+ if abs(c) < 0.001: # Avoid division by zero (vertical plane)
+ z_plane = avg_z
+ else:
+ z_plane = -(a*x + b*y + d) / c
+
+ # The candidate point follows the table tilt
+ cand = np.array([x, y, z_plane])
+
+ # use a temp candidate at avg_z for the KDTree checks
+ # (the tree and objects are built around avg_z for simplicity)
+ check_cand = np.array([x, y, avg_z])
+
+ # Check if it is this actually on the table
+ [k, _, _] = table_tree.search_radius_vector_3d(check_cand, 0.05)
+ if k == 0: continue
+
+ dist_center = np.sqrt((x - center_x)**2 + (y - center_y)**2)
+
+ # Check collision with flattened objects
+ if has_objects:
+ # Finds distance to the nearest object shadow
+ [_, _, d_sq] = object_tree.search_knn_vector_3d(check_cand, 1)
+ dist_obj = np.sqrt(d_sq[0])
+
+ # Radius Check
+ if dist_obj < radius_to_check:
+ continue
+
+ # Score: Maximize distance to object, minimize distance to center
+ score = dist_obj - (0.8 * dist_center)
+ else:
+ score = -dist_center
+
+ # Check if object radius fits on table
+ if (x - radius_to_check < min_x) or (x + radius_to_check > max_x):
+ continue
+ if (y - radius_to_check < min_y) or (y + radius_to_check > max_y):
+ continue
+
+ if score > best_score:
+ best_score = score
+ best_pt = cand
+
+ return best_pt
+
+ def convert_ros_to_o3d(self, ros_cloud):
+ try:
+ pcd_as_numpy = np.array([
+ [x, y, z]
+ for x, y, z in pc2.read_points(ros_cloud, field_names=("x", "y", "z"), skip_nans=True)
+ ])
+
+ if pcd_as_numpy.shape[0] == 0:
+ return None
+
+ pcd = o3d.geometry.PointCloud()
+ pcd.points = o3d.utility.Vector3dVector(pcd_as_numpy)
+ return pcd
+ except Exception as e:
+ self.get_logger().error(f'Conversion error: {e}')
+ return None
+
+ def publish_o3d(self, o3d_cloud, publisher, header):
+ points = np.asarray(o3d_cloud.points)
+ if len(points) == 0:
+ return
+
+ # If no colors, just send XYZ
+ if not o3d_cloud.has_colors():
+ msg = pc2.create_cloud_xyz32(header, points)
+ publisher.publish(msg)
+ return
+
+ # Pack RGB color into the message
+ colors = np.asarray(o3d_cloud.colors)
+ points_with_color = []
+
+ for i in range(len(points)):
+ x, y, z = points[i]
+ r, g, b = colors[i]
+ rgb_int = (int(r * 255) << 16) | (int(g * 255) << 8) | int(b * 255)
+ rgb_float = struct.unpack('f', struct.pack('I', rgb_int))[0]
+ points_with_color.append([x, y, z, rgb_float])
+
+ fields = [
+ PointField(name='x', offset=0, datatype=PointField.FLOAT32, count=1),
+ PointField(name='y', offset=4, datatype=PointField.FLOAT32, count=1),
+ PointField(name='z', offset=8, datatype=PointField.FLOAT32, count=1),
+ PointField(name='rgb', offset=12, datatype=PointField.FLOAT32, count=1),
+ ]
+
+ msg = pc2.create_cloud(header, fields, points_with_color)
+ publisher.publish(msg)
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = TableSegmentationNode()
+ rclpy.spin(node)
+ node.destroy_node()
+ rclpy.shutdown()
+
+if __name__ == '__main__':
+ main()
diff --git a/src/perception/setup.py b/src/perception/setup.py
index 9985fa8..fc8bb06 100644
--- a/src/perception/setup.py
+++ b/src/perception/setup.py
@@ -30,8 +30,14 @@
"yolo_node = perception.yolo_object_detection:main",
"classifier_node = perception.object_classifier_node:main",
"pose_node = perception.pose_pca:main",
- "opencv_camera_node = perception.opencv_camera_feed:main",
- "opencv_yolo = perception.opencv_yolo_object_detection:main",
+ "action_pose_node = perception.action_pose_pca:main",
+ "action_yolo_node = perception.action_yolo_object_detection:main",
+ "vision_manager_node = perception.action_vision_manager:main",
+ "table_segmentation_node = perception.table_segmentation:main",
+ "segment_object = perception.segment_object:main",
+
+
+
],
},
)
diff --git a/src/table_height_predictor/package.xml b/src/table_height_predictor/package.xml
new file mode 100644
index 0000000..08125a4
--- /dev/null
+++ b/src/table_height_predictor/package.xml
@@ -0,0 +1,26 @@
+
+
+
+ table_height_predictor
+ 0.0.0
+ TODO: Package description
+ mohsin
+ TODO: License declaration
+
+ sensor_msgs
+ std_msgs
+ rclpy
+ image_transport
+ cv_bridge
+ python3-opencv
+ opencv4
+
+ ament_copyright
+ ament_flake8
+ ament_pep257
+ python3-pytest
+
+
+ ament_python
+
+
\ No newline at end of file
diff --git a/src/table_height_predictor/resource/table_height_predictor b/src/table_height_predictor/resource/table_height_predictor
new file mode 100644
index 0000000..e69de29
diff --git a/src/table_height_predictor/rviz/table_height.rviz b/src/table_height_predictor/rviz/table_height.rviz
new file mode 100644
index 0000000..203a42a
--- /dev/null
+++ b/src/table_height_predictor/rviz/table_height.rviz
@@ -0,0 +1,258 @@
+Panels:
+ - Class: rviz_common/Displays
+ Help Height: 138
+ Name: Displays
+ Property Tree Widget:
+ Expanded:
+ - /Global Options1
+ - /Status1
+ - /Image1
+ - /PointCloud21
+ - /TF1
+ - /PointCloud22
+ Splitter Ratio: 0.5
+ Tree Height: 1531
+ - Class: rviz_common/Selection
+ Name: Selection
+ - Class: rviz_common/Tool Properties
+ Expanded:
+ - /2D Goal Pose1
+ - /Publish Point1
+ Name: Tool Properties
+ Splitter Ratio: 0.5886790156364441
+ - Class: rviz_common/Views
+ Expanded:
+ - /Current View1
+ Name: Views
+ Splitter Ratio: 0.5
+ - Class: rviz_common/Time
+ Experimental: false
+ Name: Time
+ SyncMode: 0
+ SyncSource: PointCloud2
+Visualization Manager:
+ Class: ""
+ Displays:
+ - Alpha: 0.5
+ Cell Size: 1
+ Class: rviz_default_plugins/Grid
+ Color: 160; 160; 164
+ Enabled: true
+ Line Style:
+ Line Width: 0.029999999329447746
+ Value: Lines
+ Name: Grid
+ Normal Cell Count: 0
+ Offset:
+ X: 0
+ Y: 0
+ Z: 0
+ Plane: XY
+ Plane Cell Count: 10
+ Reference Frame:
+ Value: true
+ - Class: rviz_default_plugins/Image
+ Enabled: true
+ Max Value: 1
+ Median window: 5
+ Min Value: 0
+ Name: Image
+ Normalize Range: true
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /table_segmentation_image
+ Value: true
+ - Alpha: 1
+ Autocompute Intensity Bounds: true
+ Autocompute Value Bounds:
+ Max Value: 10
+ Min Value: -10
+ Value: true
+ Axis: Z
+ Channel Name: intensity
+ Class: rviz_default_plugins/PointCloud2
+ Color: 255; 255; 255
+ Color Transformer: RGB8
+ Decay Time: 0
+ Enabled: false
+ Invert Rainbow: false
+ Max Color: 255; 255; 255
+ Max Intensity: 4096
+ Min Color: 0; 0; 0
+ Min Intensity: 0
+ Name: PointCloud2
+ Position Transformer: XYZ
+ Selectable: true
+ Size (Pixels): 3
+ Size (m): 0.009999999776482582
+ Style: Flat Squares
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /camera/depth/color/points
+ Use Fixed Frame: true
+ Use rainbow: true
+ Value: false
+ - Class: rviz_default_plugins/TF
+ Enabled: true
+ Filter (blacklist): ""
+ Filter (whitelist): ""
+ Frame Timeout: 15
+ Frames:
+ All Enabled: true
+ camera_color_frame:
+ Value: true
+ camera_depth_frame:
+ Value: true
+ camera_link:
+ Value: true
+ Marker Scale: 1
+ Name: TF
+ Show Arrows: true
+ Show Axes: true
+ Show Names: false
+ Tree:
+ camera_link:
+ camera_color_frame:
+ {}
+ camera_depth_frame:
+ {}
+ Update Interval: 0
+ Value: true
+ - Class: rviz_default_plugins/Marker
+ Enabled: true
+ Name: Marker
+ Namespaces:
+ table_center: true
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ Filter size: 10
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /table_marker
+ Value: true
+ - Alpha: 1
+ Autocompute Intensity Bounds: true
+ Autocompute Value Bounds:
+ Max Value: 3.0160000324249268
+ Min Value: 1.0190000534057617
+ Value: true
+ Axis: Z
+ Channel Name: intensity
+ Class: rviz_default_plugins/PointCloud2
+ Color: 255; 255; 255
+ Color Transformer: AxisColor
+ Decay Time: 0
+ Enabled: true
+ Invert Rainbow: false
+ Max Color: 255; 255; 255
+ Max Intensity: 4096
+ Min Color: 0; 0; 0
+ Min Intensity: 0
+ Name: PointCloud2
+ Position Transformer: XYZ
+ Selectable: true
+ Size (Pixels): 3
+ Size (m): 0.009999999776482582
+ Style: Flat Squares
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /table_points_debug
+ Use Fixed Frame: true
+ Use rainbow: true
+ Value: true
+ Enabled: true
+ Global Options:
+ Background Color: 48; 48; 48
+ Fixed Frame: camera_link
+ Frame Rate: 30
+ Name: root
+ Tools:
+ - Class: rviz_default_plugins/Interact
+ Hide Inactive Objects: true
+ - Class: rviz_default_plugins/MoveCamera
+ - Class: rviz_default_plugins/Select
+ - Class: rviz_default_plugins/FocusCamera
+ - Class: rviz_default_plugins/Measure
+ Line color: 128; 128; 0
+ - Class: rviz_default_plugins/SetInitialPose
+ Covariance x: 0.25
+ Covariance y: 0.25
+ Covariance yaw: 0.06853891909122467
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /initialpose
+ - Class: rviz_default_plugins/SetGoal
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /goal_pose
+ - Class: rviz_default_plugins/PublishPoint
+ Single click: true
+ Topic:
+ Depth: 5
+ Durability Policy: Volatile
+ History Policy: Keep Last
+ Reliability Policy: Reliable
+ Value: /clicked_point
+ Transformation:
+ Current:
+ Class: rviz_default_plugins/TF
+ Value: true
+ Views:
+ Current:
+ Class: rviz_default_plugins/Orbit
+ Distance: 1.535581350326538
+ Enable Stereo Rendering:
+ Stereo Eye Separation: 0.05999999865889549
+ Stereo Focal Distance: 1
+ Swap Stereo Eyes: false
+ Value: false
+ Focal Point:
+ X: -0.1352316290140152
+ Y: 0.32156407833099365
+ Z: 0.4516058564186096
+ Focal Shape Fixed Size: true
+ Focal Shape Size: 0.05000000074505806
+ Invert Z Axis: true
+ Name: Current View
+ Near Clip Distance: 0.009999999776482582
+ Pitch: 1.4647964239120483
+ Target Frame:
+ Value: Orbit (rviz)
+ Yaw: 4.534939289093018
+ Saved: ~
+Window Geometry:
+ Displays:
+ collapsed: false
+ Height: 2742
+ Hide Left Dock: false
+ Hide Right Dock: false
+ Image:
+ collapsed: false
+ QMainWindow State: 000000ff00000000fd0000000400000000000003c0000009acfc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b000000b200fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000070000006f70000018600fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb0000000c00430061006d006500720061010000022f000000bc0000000000000000fb0000000a0049006d0061006700650100000773000002a90000002800ffffff000000010000015d000009acfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000070000009ac0000013800fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000137c0000005efc0100000002fb0000000800540069006d006501000000000000137c0000047a00fffffffb0000000800540069006d0065010000000000000450000000000000000000000e47000009ac00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+ Selection:
+ collapsed: false
+ Time:
+ collapsed: false
+ Tool Properties:
+ collapsed: false
+ Views:
+ collapsed: false
+ Width: 4988
+ X: 132
+ Y: 64
diff --git a/src/table_height_predictor/setup.cfg b/src/table_height_predictor/setup.cfg
new file mode 100644
index 0000000..1d892df
--- /dev/null
+++ b/src/table_height_predictor/setup.cfg
@@ -0,0 +1,6 @@
+[develop]
+script_dir=$base/lib/table_height_predictor
+[install]
+install_scripts=$base/lib/table_height_predictor
+[build_scripts]
+executable = /usr/bin/env python3
diff --git a/src/table_height_predictor/setup.py b/src/table_height_predictor/setup.py
new file mode 100644
index 0000000..60af6e8
--- /dev/null
+++ b/src/table_height_predictor/setup.py
@@ -0,0 +1,27 @@
+from setuptools import find_packages, setup
+
+package_name = 'table_height_predictor'
+
+setup(
+ name=package_name,
+ version='0.0.0',
+ packages=find_packages(exclude=['test']),
+ data_files=[
+ ('share/ament_index/resource_index/packages',
+ ['resource/' + package_name]),
+ ('share/' + package_name, ['package.xml']),
+ ],
+ install_requires=['setuptools'],
+ zip_safe=True,
+ maintainer='mohsin',
+ maintainer_email='mohsinalimirxa@gmail.com',
+ description='TODO: Package description',
+ license='TODO: License declaration',
+ tests_require=['pytest'],
+ entry_points={
+ 'console_scripts': [
+ 'detect_floor = table_height_predictor.floor_detector_node:main',
+ 'table_height = table_height_predictor.table_height_node:main',
+ ],
+ },
+)
diff --git a/src/table_height_predictor/table_height_predictor/__init__.py b/src/table_height_predictor/table_height_predictor/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/src/table_height_predictor/table_height_predictor/floor_detector_node.py b/src/table_height_predictor/table_height_predictor/floor_detector_node.py
new file mode 100644
index 0000000..a929385
--- /dev/null
+++ b/src/table_height_predictor/table_height_predictor/floor_detector_node.py
@@ -0,0 +1,160 @@
+import rclpy
+from rclpy.node import Node
+from sensor_msgs.msg import PointCloud2
+from std_msgs.msg import Header
+import numpy as np
+import open3d as o3d
+import sensor_msgs_py.point_cloud2 as pc2
+
+# Import QoS classes
+from rclpy.qos import QoSProfile, QoSReliabilityPolicy, QoSHistoryPolicy
+
+# --- FIX 1: Import traceback for correct error logging ---
+import traceback
+
+class FloorDetectorNode(Node):
+ def __init__(self):
+ super().__init__('floor_detector_node')
+
+ # --- Parameters ---
+ self.declare_parameter('input_topic', '/camera/depth/color/points')
+ self.declare_parameter('distance_threshold', 0.02) # 2cm
+ self.declare_parameter('angle_threshold_deg', 45.0) # 10 degrees from Z-axis
+
+ input_topic = self.get_parameter('input_topic').get_parameter_value().string_value
+ self.distance_threshold = self.get_parameter('distance_threshold').get_parameter_value().double_value
+ self.angle_threshold_rad = np.deg2rad(self.get_parameter('angle_threshold_deg').get_parameter_value().double_value)
+
+ # --- Define the Sensor QoS Profile ---
+ qos_profile = QoSProfile(
+ reliability=QoSReliabilityPolicy.BEST_EFFORT,
+ history=QoSHistoryPolicy.KEEP_LAST,
+ depth=1
+ )
+
+ # --- Subscriber ---
+ self.subscription = self.create_subscription(
+ PointCloud2,
+ input_topic,
+ self.cloud_callback,
+ qos_profile # Use the sensor-specific QoS
+ )
+
+ # --- Publishers ---
+ self.floor_pub = self.create_publisher(PointCloud2, '/floor_cloud', 10)
+ self.other_pub = self.create_publisher(PointCloud2, '/other_cloud', 10)
+
+ self.get_logger().info(f"Floor Detector Node started. Subscribing to '{input_topic}'")
+
+ def cloud_callback(self, msg):
+ """Main callback: receives a point cloud, finds the floor, and republishes."""
+ self.get_logger().info("Callback triggered! Processing cloud...")
+
+ try:
+ # --- FIX 2: Simplify the conversion ---
+ # We assume read_points_numpy with field_names gives us a simple (N, 3) array
+ xyz_data = pc2.read_points_numpy(
+ msg,
+ field_names=("x", "y", "z"),
+ skip_nans=True
+ )
+
+ if xyz_data.size == 0:
+ self.get_logger().warn("Point list is EMPTY. Is the camera covered or facing the sky?")
+ return
+
+ self.get_logger().info(f"Successfully converted to array with shape: {xyz_data.shape}")
+
+ except Exception as e:
+ # --- FIX 1: Correct error logging ---
+ self.get_logger().error(f"Failed to convert PointCloud2 to NumPy: {e}")
+ self.get_logger().error(f"TRACEBACK: {traceback.format_exc()}")
+ return
+ # --- End Fix 1 ---
+
+ if xyz_data.size == 0:
+ self.get_logger().info("Numpy array is empty. Skipping.")
+ return
+
+ # 3. Convert NumPy array to Open3D PointCloud object
+ pcd = o3d.geometry.PointCloud()
+
+ # Open3D's Vector3dVector expects float64, so we ensure the type is correct.
+ pcd.points = o3d.utility.Vector3dVector(xyz_data.astype(np.float64))
+
+ # 4. Run RANSAC to find the largest plane
+ self.get_logger().info("Running RANSAC...")
+ try:
+ plane_model, inlier_indices = pcd.segment_plane(
+ distance_threshold=self.distance_threshold,
+ ransac_n=3,
+ num_iterations=1000
+ )
+ except Exception as e:
+ self.get_logger().warn(f"RANSAC segmentation failed: {e}")
+ self.get_logger().warn(f"TRACEBACK: {traceback.format_exc()}")
+ return
+
+ if not inlier_indices:
+ self.get_logger().info("No plane found. Publishing all points as 'other'.")
+ self.other_pub.publish(msg) # Publish original cloud
+ return
+
+ # 5. Check if the plane is the "floor"
+ [a, b, c, d] = plane_model
+ normal = np.array([a, b, c])
+ normal = normal / np.linalg.norm(normal) # Normalize
+
+ ### --- THIS IS THE FIX --- ###
+ # "Up" in the camera frame is the Y-axis, not the Z-axis.
+ up_vector = np.array([0, 1, 0])
+
+ angle_rad = np.arccos(np.clip(np.abs(normal.dot(up_vector)), -1.0, 1.0))
+ ### --- END OF FIX --- ###
+
+ angle_deg = np.rad2deg(angle_rad)
+
+ # 6. Select points based on whether the floor was found
+ if angle_rad <= self.angle_threshold_rad:
+ # (rest of your code is correct)
+ self.get_logger().info(f"Floor plane found with {len(inlier_indices)} points. Angle: {angle_deg:.1f} deg")
+ floor_pcd = pcd.select_by_index(inlier_indices)
+ other_pcd = pcd.select_by_index(inlier_indices, invert=True)
+ floor_points = np.asarray(floor_pcd.points)
+ other_points = np.asarray(other_pcd.points)
+ else:
+ self.get_logger().info(f"Plane found (angle: {angle_deg:.1f} deg), but it's not the floor.")
+ floor_points = np.array([]) # Empty array
+ other_points = xyz_data # All points are "other"
+
+ # 7. Convert NumPy arrays back to ROS PointCloud2 messages
+ header = msg.header # Re-use the original header
+
+ if floor_points.size > 0:
+ floor_msg = self.create_point_cloud_msg(floor_points, header)
+ self.floor_pub.publish(floor_msg)
+
+ if other_points.size > 0:
+ other_msg = self.create_point_cloud_msg(other_points, header)
+ self.other_pub.publish(other_msg)
+
+ def create_point_cloud_msg(self, points, header: Header) -> PointCloud2:
+ """Helper function to create a PointCloud2 message from a NumPy array."""
+ # This function creates a PointCloud2 message for only XYZ data
+ # `points` is an (N, 3) NumPy array
+ return pc2.create_cloud_xyz32(header, points.astype(np.float32))
+
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = FloorDetectorNode()
+ try:
+ rclpy.spin(node)
+ except KeyboardInterrupt:
+ pass
+ finally:
+ node.destroy_node()
+ rclpy.shutdown()
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/src/table_height_predictor/table_height_predictor/table_height_node.py b/src/table_height_predictor/table_height_predictor/table_height_node.py
new file mode 100644
index 0000000..758f9df
--- /dev/null
+++ b/src/table_height_predictor/table_height_predictor/table_height_node.py
@@ -0,0 +1,242 @@
+import rclpy
+from rclpy.node import Node
+import message_filters
+from sensor_msgs.msg import Image, PointCloud2
+from visualization_msgs.msg import Marker, MarkerArray # Changed to MarkerArray
+from cv_bridge import CvBridge
+import sensor_msgs_py.point_cloud2 as pc2
+import numpy as np
+import cv2
+import torch
+from ultralytics import YOLOWorld, SAM
+from sklearn.linear_model import RANSACRegressor # Added for Floor Math
+
+class TableHeightNode(Node):
+ def __init__(self):
+ super().__init__('table_height_estimator')
+
+ # --- CONFIGURATION ---
+ self.img_topic = '/camera/color/image_raw'
+ self.pc_topic = '/camera/depth/color/points'
+ self.custom_classes = ["white standing desk", "white table surface"]
+ self.conf_threshold = 0.2
+ self.device = 'cuda' if torch.cuda.is_available() else 'cpu'
+
+ # --- PUBLISHERS ---
+ # We use MarkerArray now to draw Table, Floor, Line, and Text all at once
+ self.marker_pub = self.create_publisher(MarkerArray, '/table_height_visualization', 10)
+ self.debug_pc_pub = self.create_publisher(PointCloud2, '/table_points_debug', 10)
+ self.seg_img_pub = self.create_publisher(Image, '/table_segmentation_image', 10)
+
+ # --- MODEL INITIALIZATION ---
+ self.get_logger().info(f"Loading models on {self.device}...")
+ self.det_model = YOLOWorld('yolov8l-worldv2.pt')
+ self.det_model.set_classes(self.custom_classes)
+ self.det_model.to(self.device)
+ self.seg_model = SAM('sam_b.pt')
+ self.seg_model.to(self.device)
+
+ # --- ROS SETUP ---
+ self.bridge = CvBridge()
+ self.img_sub = message_filters.Subscriber(self, Image, self.img_topic)
+ self.pc_sub = message_filters.Subscriber(self, PointCloud2, self.pc_topic)
+ self.ts = message_filters.ApproximateTimeSynchronizer(
+ [self.img_sub, self.pc_sub], queue_size=10, slop=0.1
+ )
+ self.ts.registerCallback(self.callback)
+
+ self.get_logger().info("Table Height Node Initialized.")
+
+ def callback(self, img_msg, pc_msg):
+ try:
+ cv_image = self.bridge.imgmsg_to_cv2(img_msg, desired_encoding='bgr8')
+ except Exception as e:
+ self.get_logger().error(f"CvBridge Error: {e}")
+ return
+
+ # 1. YOLO-World (Find Table)
+ det_results = self.det_model.predict(cv_image, conf=self.conf_threshold, verbose=False)
+ bboxes = det_results[0].boxes.xyxy.tolist()
+ if not bboxes: return
+
+ # 2. SAM (Segment Table)
+ table_box = [bboxes[0]]
+ seg_results = self.seg_model(cv_image, bboxes=table_box, verbose=False)
+ if seg_results[0].masks is None: return
+ table_mask = seg_results[0].masks.data[0].cpu().numpy()
+
+ # 3. Visualization Image
+ self.publish_debug_image(cv_image, table_mask, bboxes[0], img_msg.header)
+
+ # 4. Calculate Height Logic
+ self.process_point_cloud(pc_msg, table_mask)
+
+ def process_point_cloud(self, pc_msg, table_mask):
+ if pc_msg.height <= 1: return
+
+ # --- A. Parse PointCloud into (H, W, 3) Array ---
+ # (Optimized parsing logic)
+ raw_data = np.frombuffer(pc_msg.data, dtype=np.uint8)
+ try:
+ raw_data = raw_data.reshape(pc_msg.height, pc_msg.row_step)
+ except ValueError: return
+
+ bytes_per_pixel = pc_msg.point_step
+ raw_data = raw_data[:, :pc_msg.width * bytes_per_pixel]
+ pixel_chunks = raw_data.reshape(pc_msg.height, pc_msg.width, bytes_per_pixel)
+
+ # Get field offsets
+ off_x, off_y, off_z = 0, 4, 8
+ for field in pc_msg.fields:
+ if field.name == 'x': off_x = field.offset
+ if field.name == 'y': off_y = field.offset
+ if field.name == 'z': off_z = field.offset
+
+ x = pixel_chunks[:, :, off_x : off_x+4].view(dtype=np.float32).squeeze()
+ y = pixel_chunks[:, :, off_y : off_y+4].view(dtype=np.float32).squeeze()
+ z = pixel_chunks[:, :, off_z : off_z+4].view(dtype=np.float32).squeeze()
+
+ points_3d = np.dstack((x, y, z)) # Shape: (H, W, 3)
+
+ # --- B. Get Table Center ---
+ table_pts = points_3d[table_mask]
+ valid_table = table_pts[~np.isnan(table_pts).any(axis=1)]
+ if valid_table.shape[0] < 50: return
+
+ t_x = np.median(valid_table[:, 0])
+ t_y = np.median(valid_table[:, 1])
+ t_z = np.median(valid_table[:, 2])
+
+ # --- C. Get Floor Position (RANSAC) ---
+ # Strategy: Use points from bottom 50% of image that are NOT the table
+ h, w, _ = points_3d.shape
+ # Create a mask for "potential floor" (bottom half of image)
+ floor_region_mask = np.zeros((h, w), dtype=bool)
+ floor_region_mask[int(h*0.5):, :] = True
+
+ # Exclude the table itself from floor candidates
+ floor_candidates_mask = floor_region_mask & (~table_mask)
+
+ floor_pts = points_3d[floor_candidates_mask]
+ # Subsample for speed (take every 10th point)
+ floor_pts = floor_pts[::10]
+ valid_floor = floor_pts[~np.isnan(floor_pts).any(axis=1)]
+
+ floor_y_at_table = None
+
+ if valid_floor.shape[0] > 100:
+ # RANSAC: Fit plane y = f(x, z)
+ # We assume floor height (y) depends on horizontal (x) and depth (z)
+ X_in = valid_floor[:, [0, 2]] # Inputs: x, z
+ Y_out = valid_floor[:, 1] # Output: y (height)
+
+ ransac = RANSACRegressor(residual_threshold=0.05)
+ try:
+ ransac.fit(X_in, Y_out)
+
+ # KEY STEP: Predict floor Y specifically at Table's X and Z
+ floor_y_at_table = ransac.predict([[t_x, t_z]])[0]
+
+ # Sanity Check: Floor must be visibly lower (higher Y value) than table
+ if floor_y_at_table < t_y + 0.1:
+ floor_y_at_table = None # Invalid, floor appeared above table
+ except:
+ pass
+
+ # --- D. Visualize ---
+ self.publish_markers(t_x, t_y, t_z, floor_y_at_table, pc_msg.header)
+
+ # Publish Debug Cloud (Table Only)
+ debug_cloud = pc2.create_cloud_xyz32(pc_msg.header, valid_table)
+ self.debug_pc_pub.publish(debug_cloud)
+
+ def publish_markers(self, tx, ty, tz, fy, header):
+ marker_array = MarkerArray()
+
+ # 1. Table Marker (Red Sphere)
+ m_table = Marker()
+ m_table.header = header
+ m_table.ns = "table"
+ m_table.id = 0
+ m_table.type = Marker.SPHERE
+ m_table.action = Marker.ADD
+ m_table.pose.position.x, m_table.pose.position.y, m_table.pose.position.z = float(tx), float(ty), float(tz)
+ m_table.scale.x = m_table.scale.y = m_table.scale.z = 0.08
+ m_table.color.r, m_table.color.g, m_table.color.b, m_table.color.a = 1.0, 0.0, 0.0, 1.0
+ marker_array.markers.append(m_table)
+
+ log_msg = f"Table Z: {tz:.2f}m"
+
+ if fy is not None:
+ # Calculate Height
+ height_meters = abs(fy - ty)
+ log_msg += f" | Floor Est: {fy:.2f}m | HEIGHT: {height_meters:.3f}m"
+
+ # 2. Floor Marker (Green Flat Cube)
+ m_floor = Marker()
+ m_floor.header = header
+ m_floor.ns = "floor"
+ m_floor.id = 1
+ m_floor.type = Marker.CUBE
+ m_floor.action = Marker.ADD
+ # Uses Table X/Z but Floor Y
+ m_floor.pose.position.x, m_floor.pose.position.y, m_floor.pose.position.z = float(tx), float(fy), float(tz)
+ m_floor.scale.x, m_floor.scale.z = 0.2, 0.2
+ m_floor.scale.y = 0.005 # Thin
+ m_floor.color.r, m_floor.color.g, m_floor.color.b, m_floor.color.a = 0.0, 1.0, 0.0, 1.0
+ marker_array.markers.append(m_floor)
+
+ # 3. Connection Line (Yellow)
+ m_line = Marker()
+ m_line.header = header
+ m_line.ns = "line"
+ m_line.id = 2
+ m_line.type = Marker.LINE_LIST
+ m_line.action = Marker.ADD
+ m_line.scale.x = 0.005 # Line thickness
+ m_line.color.r, m_line.color.g, m_line.color.b, m_line.color.a = 1.0, 1.0, 0.0, 1.0
+ m_line.points.append(m_table.pose.position)
+ m_line.points.append(m_floor.pose.position)
+ marker_array.markers.append(m_line)
+
+ # 4. Text Label (Height Value)
+ m_text = Marker()
+ m_text.header = header
+ m_text.ns = "text"
+ m_text.id = 3
+ m_text.type = Marker.TEXT_VIEW_FACING
+ m_text.action = Marker.ADD
+ m_text.text = f"{height_meters:.2f}m"
+ m_text.pose.position.x = float(tx) + 0.15 # Offset text to right
+ m_text.pose.position.y = (ty + fy) / 2.0 # Center of line
+ m_text.pose.position.z = float(tz)
+ m_text.scale.z = 0.05 # Text size
+ m_text.color.r, m_text.color.g, m_text.color.b, m_text.color.a = 1.0, 1.0, 1.0, 1.0
+ marker_array.markers.append(m_text)
+
+ self.get_logger().info(log_msg)
+ self.marker_pub.publish(marker_array)
+
+ def publish_debug_image(self, cv_image, mask, bbox, header):
+ overlay = cv_image.copy()
+ overlay[mask] = [0, 255, 0]
+ blended = cv2.addWeighted(overlay, 0.4, cv_image, 0.6, 0)
+ x1, y1, x2, y2 = map(int, bbox)
+ cv2.rectangle(blended, (x1, y1), (x2, y2), (0,0,255), 2)
+
+ msg = self.bridge.cv2_to_imgmsg(blended, encoding="bgr8")
+ msg.header = header
+ self.seg_img_pub.publish(msg)
+
+def main(args=None):
+ rclpy.init(args=args)
+ node = TableHeightNode()
+ try:
+ rclpy.spin(node)
+ except KeyboardInterrupt: pass
+ finally:
+ node.destroy_node()
+ rclpy.shutdown()
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/src/table_height_predictor/test/test_copyright.py b/src/table_height_predictor/test/test_copyright.py
new file mode 100644
index 0000000..97a3919
--- /dev/null
+++ b/src/table_height_predictor/test/test_copyright.py
@@ -0,0 +1,25 @@
+# Copyright 2015 Open Source Robotics Foundation, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from ament_copyright.main import main
+import pytest
+
+
+# Remove the `skip` decorator once the source file(s) have a copyright header
+@pytest.mark.skip(reason='No copyright header has been placed in the generated source file.')
+@pytest.mark.copyright
+@pytest.mark.linter
+def test_copyright():
+ rc = main(argv=['.', 'test'])
+ assert rc == 0, 'Found errors'
diff --git a/src/table_height_predictor/test/test_flake8.py b/src/table_height_predictor/test/test_flake8.py
new file mode 100644
index 0000000..27ee107
--- /dev/null
+++ b/src/table_height_predictor/test/test_flake8.py
@@ -0,0 +1,25 @@
+# Copyright 2017 Open Source Robotics Foundation, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from ament_flake8.main import main_with_errors
+import pytest
+
+
+@pytest.mark.flake8
+@pytest.mark.linter
+def test_flake8():
+ rc, errors = main_with_errors(argv=[])
+ assert rc == 0, \
+ 'Found %d code style errors / warnings:\n' % len(errors) + \
+ '\n'.join(errors)
diff --git a/src/table_height_predictor/test/test_pep257.py b/src/table_height_predictor/test/test_pep257.py
new file mode 100644
index 0000000..b234a38
--- /dev/null
+++ b/src/table_height_predictor/test/test_pep257.py
@@ -0,0 +1,23 @@
+# Copyright 2015 Open Source Robotics Foundation, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from ament_pep257.main import main
+import pytest
+
+
+@pytest.mark.linter
+@pytest.mark.pep257
+def test_pep257():
+ rc = main(argv=['.', 'test'])
+ assert rc == 0, 'Found code style errors / warnings'