diff --git a/README.md b/README.md index c792138..16f99d2 100644 --- a/README.md +++ b/README.md @@ -131,8 +131,8 @@ python tools/test.py --cfg config/M3.yaml 2. Training/evaluation routines: `step_recog/iterators.py` (functions *train*, *evaluate*) 3. Model classes: `step_recog/models.py` 4. Dataloader: `step_recog/datasets/milly.py` (methods *_construct_loader* and *__getitem\__*) -- class *Milly_multifeature_v4* loads video frames and returns formated features -- class *Milly_multifeature_v5* loads (preprocessed) features and returns formated features +- class *Milly_multifeature_v4* loads video frames and returns features +- class *Milly_multifeature_v5* loads and returns (preprocessed) features 5. Image augmentation: `tools/augmentation.py` (function *get_augmentation*) 6. Basic configuration: `step_recog/config/defaults.py` (more important), `act_recog/config/defaults.py`, `auditory_slowfast/config/defaults.py` 6. Visualizer: `step_recog/full/visualize.py` implements a specific code that combines dataloading, model prediction, and a state machine. It uses the user interface with the trained models. diff --git a/act_recog/models/video_model_builder.py b/act_recog/models/video_model_builder.py index 3c07eb6..979236c 100644 --- a/act_recog/models/video_model_builder.py +++ b/act_recog/models/video_model_builder.py @@ -14,14 +14,19 @@ from torch.nn.init import normal_ from torch.utils import model_zoo from copy import deepcopy +from PIL import Image import pdb from .build import MODEL_REGISTRY from act_recog.datasets.transform import uniform_crop +from torchvision import transforms + +def max_norm(x): + return x / x.max() @MODEL_REGISTRY.register() class Omnivore(nn.Module): - def __init__(self, cfg): + def __init__(self, cfg, resize = True): super().__init__() # model @@ -32,6 +37,21 @@ def __init__(self, cfg): self.heads = self.model.heads self.model.heads = nn.Identity() + self.transform = transforms.Compose([ + transforms.ToPILImage(), + transforms.Resize(self.cfg.MODEL.IN_SIZE), + transforms.CenterCrop(self.cfg.MODEL.IN_SIZE), + transforms.ToTensor(), + transforms.Lambda(max_norm), + transforms.Normalize(mean=self.cfg.MODEL.MEAN, std=self.cfg.MODEL.STD), + ]) + + if not resize: + self.transform = transforms.Compose([ + transforms.ToTensor(), + transforms.Lambda(max_norm), + transforms.Normalize(mean=self.cfg.MODEL.MEAN, std=self.cfg.MODEL.STD), + ]) def forward(self, x, return_embedding=False): # C T H W shoulder = self.model(x, input_type="video") @@ -39,8 +59,16 @@ def forward(self, x, return_embedding=False): # C T H W if return_embedding: return y, shoulder return y - + def prepare_image(self, im, bgr2rgb = True): + # 1,C,H,W + if isinstance(im, Image.Image): + im = np.array(im) + + im = self.transform(im).float() + return im + + def prepare_image_v2(self, im, bgr2rgb = True): # 1,C,H,W im = prepare_image(im, self.cfg.MODEL.MEAN, self.cfg.MODEL.STD, self.cfg.MODEL.IN_SIZE, bgr2rgb) return im diff --git a/example/Perception_examples.ipynb b/example/Perception_examples.ipynb new file mode 100644 index 0000000..13a97b8 --- /dev/null +++ b/example/Perception_examples.ipynb @@ -0,0 +1,365 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "d4401ccb-8af6-4a95-bc60-4d5c5a2e603c", + "metadata": {}, + "outputs": [], + "source": [ + "## Follow the instructions to install the code https://github.com/VIDA-NYU/Perception-training\n", + "## Also install the jupyter https://pypi.org/project/jupyter/\n", + "## You'll not be able to run with a GPU with less than 12GB of memory\n", + "## It's going to take too long to run with CPU " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "71456c91-8731-45a7-92c8-943eadc12b0a", + "metadata": {}, + "outputs": [], + "source": [ + "1. Evaluating with dataloader and model (interface used for training evaluation)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "6e6b51bd-5dbf-4f00-9152-ffb796c5d22b", + "metadata": {}, + "outputs": [], + "source": [ + "import math, torch, cv2, matplotlib.pyplot as plt\n", + "from torch.utils.data import DataLoader\n", + "\n", + "from step_recog import evaluate, build_model\n", + "from step_recog.config import load_config\n", + "from step_recog.datasets import Milly_multifeature_v4, collate_fn\n", + "\n", + "def args_hook(cfg_file):\n", + " args = lambda: None\n", + " args.cfg_file = cfg_file\n", + " args.opts = None \n", + " return args" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "250c1ef8-8557-4349-8048-1de0c342722f", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Video: 100%|██████████| 1/1 [00:00<00:00, 29.28it/s, window total=83, padded videos=0]\n", + "Using cache found in /home/../.cache/torch/hub/facebookresearch_omnivore_main\n", + "/ext3/miniconda3/lib/python3.12/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + " from .autonotebook import tqdm as notebook_tqdm\n", + "/ext3/miniconda3/lib/python3.12/site-packages/torch/functional.py:512: UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argument. (Triggered internally at ../aten/src/ATen/native/TensorShape.cpp:3587.)\n", + " return _VF.meshgrid(tensors, **kwargs) # type: ignore[attr-defined]\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cfg = args_hook(\"config/M2.yaml\")\n", + "cfg = load_config(cfg)\n", + "\n", + "#reads frames and returns features\n", + "dataset = Milly_multifeature_v4(cfg, split='test')\n", + "data_loader = DataLoader(\n", + " dataset, \n", + " shuffle=False, \n", + " batch_size=cfg.TRAIN.BATCH_SIZE,\n", + " collate_fn=collate_fn,\n", + " drop_last=False)\n", + "\n", + "model, _ = build_model(cfg)\n", + "weights = torch.load(\"models/M2.pt\")\n", + "model.load_state_dict(weights)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "7e41e03b-a2ed-4dd4-b329-cee073dee8fd", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "WARNING ⚠️ NMS time limit 0.550s exceeded\n" + ] + } + ], + "source": [ + "#saves classification report, confusion matrix, and video evaluation (image with ground-truth, predicted and confidence)\n", + "evaluate(model, data_loader, cfg)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "04e691d0-9a07-4863-b98e-e3171b2be462", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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0+w5vPj8nzi4fz933nUPEWYz9y95kPffXcYnH33AvYsfwNAxK0mo5OTkcv3UaTz/p2c4eeIECxYuorammtWrVoKicP8DD7Ljm+28/JcXubljX918y620tLTwzNP/Q15ePoMGDQ7pttJoNCx58GE2rF/H66++xILb7yAqKoovPltOY1Mjo0aNJjsnl2eeat9XM2beQGpaGjfNmcufX3ie/fv2cufd94b8ZCshNoo//HIBKQkW/vmxm5kydgDD8jKYM2UILreX597dyCOLJvPkvdN56cOtOJweXv5oK5NG9OX/e3IeX2w8dF7B0VCIsli4+977ePvNN1i54nMWP7AEn6+zrbuYe/MttLW28swf/5v+HQm8ESNH0qdvP57543/jdDiYOeuGHj0xVQANSpd+esmNJnENmzRpEh6Ph6eeeor6+npmzJjR0yGJEAv22LgKL6QURWHJiBH87+nTuWXAAD66805yY2OD3xFaRaHN7WZGbi7pHUVFe1J8RATxERGsOnWKaqs1JPU+jtbVkRsXd8UKh3a63DU2eltiwxcIsOr06WCyx+3389mJE7R11BHrZPd624eH9ZL1EqGnqD1ZKa7DudOzwrfdpzu74ms7hk2cO5Rg06ZN2Gw2br755u9N6dq5PL/f3zFc5Ptd0X2B9p+uxuf3+1E6upcDwalkO/+tqmowzvb3bx9uodVoQj7VZGdM575vexz+jiEDSsewj29/74zr3PW4HFOYdnaD73zfzse0Wu33hoN0Pv/d7RdqF9p/ne2q8/lAIHDevrrQ9gt1TN9d73NjvNC+utD2C7XutfXQTK38YzFdibbe3Grnunv+QE1D1+6q6nSaYAlLvz+AitoRT/shVavVBJ/rpNEoaBQFn7/rXWX/49eLePzerl0QdbWtdx4XoXttXQEM2tAOB/EFVM42OLt8XI42aUmLNYYuACFCRFVVTpw4QWRkJHv27OkYJqdj9OjR9O3bNyTLX7lyJYmJiVx33XUhiFh0V0lzMze+8w4f3nEHY9PTezqcy+LDo0f5qriYl+bNOy+B4/H5mLp0KS/Pm8eI1NQejLD9M3Gkro7bP/yQKquV7JgYnp87lxv69u32OUlAVfnZihVMysrip6NHhzjiH/fMzp1UWq08ddNNl2X5JxoaeGzlSj656y6SOqZ+D2eBQID/s2UL/3frVjpPEeb2789nd999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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "cm = cv2.imread(\"output/confusion_matrix.png\")\n", + "cm = cv2.cvtColor(cm, cv2.COLOR_BGR2RGB)\n", + "\n", + "video_eval = cv2.imread(\"output/video_evaluation/M2-19-step_variation.png\")\n", + "video_eval = cv2.cvtColor(video_eval, cv2.COLOR_BGR2RGB)\n", + "\n", + "figure = plt.figure(figsize = (1366 / 100, 768 / 100), dpi = 100) \n", + "plt.subplot(1, 2, 1)\n", + "plt.imshow(cm)\n", + "plt.axis('off')\n", + "\n", + "plt.subplot(1, 2, 2)\n", + "plt.imshow(video_eval)\n", + "plt.axis('off')\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "1d0f1446-284a-4037-891f-817a96f4bbff", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " precision recall f1-score support\n", + "\n", + " Step 1 1.00 1.00 1.00 10\n", + " Step 2 0.38 1.00 0.56 5\n", + " Step 3 0.50 0.14 0.22 7\n", + " Step 4 0.75 0.86 0.80 7\n", + " Step 5 0.33 1.00 0.50 5\n", + " Step 6 0.00 0.00 0.00 0\n", + " Step 7 0.00 0.00 0.00 0\n", + " Step 8 0.60 1.00 0.75 3\n", + " No step 0.97 0.63 0.76 46\n", + "\n", + " accuracy 0.71 83\n", + " macro avg 0.50 0.63 0.51 83\n", + "weighted avg 0.83 0.71 0.72 83\n", + "\n", + "\n", + "Categorical accuracy: 0.71\n", + "Weighted accuracy: 0.80\n", + "Balanced accuracy: 0.80\n", + "\n" + ] + } + ], + "source": [ + "metrics = open(\"output/metrics.txt\")\n", + "metrics = metrics.read()\n", + "print(metrics)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7522c4c4-0745-4ed4-8b7f-5809012c60b7", + "metadata": {}, + "outputs": [], + "source": [ + "2. Evaluating with StepPredictor and ProcedureStateMachine (interface used by BBN)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "258cc394-f256-41a9-9ff8-dcc151fb22f3", + "metadata": {}, + "outputs": [], + "source": [ + "import supervision as sv, tqdm, torch, numpy as np, ipdb, pandas as pd\n", + "\n", + "from step_recog.full.model import StepPredictor\n", + "from step_recog.full.statemachine import ProcedureStateMachine" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "4a8c9108-35de-4dc7-bd24-781880316ce4", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Using cache found in /home/../.cache/torch/hub/facebookresearch_omnivore_main\n" + ] + } + ], + "source": [ + "video_path = \"videos/M2-19.mp4\"\n", + "video_info = sv.VideoInfo.from_video_path(video_path)\n", + "step_process = video_info.fps #1 second by default\n", + "\n", + "model = StepPredictor(\"config/M2.yaml\", video_info.fps).to(\"cuda\")\n", + "psm = ProcedureStateMachine(model.cfg.MODEL.OUTPUT_DIM)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "1fa51108-c221-4b15-9967-99a215432009", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "1870it [00:24, 74.98it/s]" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + " window_end_frame window_end_sec step_idx step_desc \\\n", + "0 0 0.000000 8 No step \n", + "1 1 0.033333 8 No step \n", + "2 2 0.066667 8 No step \n", + "3 3 0.100000 8 No step \n", + "4 4 0.133333 8 No step \n", + "... ... ... ... ... \n", + "1865 1865 62.166667 8 No step \n", + "1866 1866 62.200000 8 No step \n", + "1867 1867 62.233333 8 No step \n", + "1868 1868 62.266667 8 No step \n", + "1869 1869 62.300000 8 No step \n", + "\n", + " step_state \n", + "0 [0, 0, 0, 0, 0, 0, 0, 0] \n", + "1 [0, 0, 0, 0, 0, 0, 0, 0] \n", + "2 [0, 0, 0, 0, 0, 0, 0, 0] \n", + "3 [0, 0, 0, 0, 0, 0, 0, 0] \n", + "4 [0, 0, 0, 0, 0, 0, 0, 0] \n", + "... ... \n", + "1865 [2, 2, 2, 2, 2, 0, 0, 1] \n", + "1866 [2, 2, 2, 2, 2, 0, 0, 1] \n", + "1867 [2, 2, 2, 2, 2, 0, 0, 1] \n", + "1868 [2, 2, 2, 2, 2, 0, 0, 1] \n", + "1869 [2, 2, 2, 2, 2, 0, 0, 1] \n", + "\n", + "[1870 rows x 5 columns]\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "\n" + ] + } + ], + "source": [ + "prob_step = np.zeros(model.cfg.MODEL.OUTPUT_DIM + 1)\n", + "prob_step[-1] = 1.0\n", + "step_desc = \"No step\"\n", + "\n", + "window_prediction = {\"window_end_frame\": [], \"window_end_sec\": [], \"step_idx\": [], \"step_desc\": [], \"step_state\": []}\n", + "model.reset()\n", + "psm.reset()\n", + "\n", + "#Iterates over one video\n", + "for idx, frame in tqdm.tqdm(enumerate(sv.get_video_frames_generator(video_path))): \n", + " frame_aux = model.prepare(frame)\n", + " model.queue_frame(frame_aux)\n", + "\n", + " if idx % step_process == 0:\n", + " prob_step = model(frame_aux, queue_omni_frame = False).cpu().squeeze().numpy() \n", + " step_idx = np.argmax(prob_step)\n", + " step_desc = \"No step\" if step_idx >= len(model.STEPS) else model.STEPS[step_idx] \n", + "\n", + " #Most important output for BBN personnel\n", + " psm.process_timestep(prob_step)\n", + "\n", + " window_prediction[\"window_end_frame\"].append(idx)\n", + " window_prediction[\"window_end_sec\"].append(idx / video_info.fps)\n", + " window_prediction[\"step_idx\"].append(step_idx)\n", + " window_prediction[\"step_desc\"].append(step_desc)\n", + " current_state = psm.current_state.copy()\n", + " window_prediction[\"step_state\"].append(current_state)\n", + "\n", + "window_prediction = pd.DataFrame(window_prediction)\n", + "print(window_prediction)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5d349617-bae8-4714-bdfa-885a77922c26", + "metadata": {}, + "outputs": [], + "source": [ + "3. Evaluating with visualize.py (it uses StepPredictor and ProcedureStateMachine)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b7f711e4-5ee6-48c0-a7d4-52eb91f52777", + "metadata": {}, + "outputs": [], + "source": [ + "#Plots a histogram on the lef-top of the video with: step probatilities and states\n", + "!python ../step_recog/full/visualize.py videos/M2-19.mp4 output/out.mp4 ../config/M2.yaml" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "sing", + "language": "python", + "name": "sing" + }, + "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/example/config/M2.yaml b/example/config/M2.yaml new file mode 100644 index 0000000..53558ae --- /dev/null +++ b/example/config/M2.yaml @@ -0,0 +1,28 @@ +_BASE_: STEPGRU_BASE.yaml +MODEL: + OMNIGRU_CHECKPOINT_URL: 'models/M2.pt' + OUTPUT_DIM: 8 + YOLO_CHECKPOINT_URL: 'models/bbn_yolo_M2.pt' + +DATASET: + TR_ANNOTATIONS_FILE: "labels/M2_Alabama+BBN_videos_M2-19.csv" + VL_ANNOTATIONS_FILE: "labels/M2_Alabama+BBN_videos_M2-19.csv" + TS_ANNOTATIONS_FILE: "labels/M2_Alabama+BBN_videos_M2-19.csv" + +OUTPUT: + LOCATION: "output" + +TRAIN: + ENABLE: False + +SKILLS: + - NAME: M2 - Apply Tourniquet + STEPS: + - Place tourniquet over affected extremity 2-3 inches above wound site. + - Pull tourniquet tight. + - Apply strap to strap body. + - Turn windless clock wise or counter clockwise until hemorrhage is controlled. + - Lock windless into the windless keeper. + - Pull remaining strap over the windless keeper. + - Secure strap and windless keeper with keeper securing device. + - Mark time on securing device strap with permanent marker. diff --git a/example/config/OMNIVORE.yaml b/example/config/OMNIVORE.yaml new file mode 100644 index 0000000..c9945bc --- /dev/null +++ b/example/config/OMNIVORE.yaml @@ -0,0 +1,6 @@ +MODEL: + ARCH: omnivore_swinB_epic + MODEL_NAME: Omnivore + NFRAMES: 32 + MEAN: [0.485, 0.456, 0.406] + STD: [0.229, 0.224, 0.225] \ No newline at end of file diff --git a/example/config/SLOWFAST_R50.yaml b/example/config/SLOWFAST_R50.yaml new file mode 100644 index 0000000..7d3cce9 --- /dev/null +++ b/example/config/SLOWFAST_R50.yaml @@ -0,0 +1,68 @@ +TRAIN: + ENABLE: False + DATASET: epickitchens + BATCH_SIZE: 64 + EVAL_PERIOD: 2 + CHECKPOINT_PERIOD: 1 + CHECKPOINT_EPOCH_RESET: True + AUTO_RESUME: True + CHECKPOINT_FILE_PATH: "/home/user/data/SLOWFAST-AUDITORY/SLOWFAST_EPIC.pyth" +DATA: + INPUT_CHANNEL_NUM: [1, 1] +AUDIO_DATA: + CLIP_SECS: 1.999 + NUM_FRAMES: 400 +SLOWFAST: + ALPHA: 4 + BETA_INV: 8 + FUSION_CONV_CHANNEL_RATIO: 2 + FUSION_KERNEL_SZ: 7 +RESNET: + ZERO_INIT_FINAL_BN: True + WIDTH_PER_GROUP: 64 + NUM_GROUPS: 1 + DEPTH: 50 + TRANS_FUNC: bottleneck_transform + STRIDE_1X1: False + NUM_BLOCK_TEMP_KERNEL: [[3, 3], [4, 4], [6, 6], [3, 3]] + FREQUENCY_STRIDES: [[1, 1], [2, 2], [2, 2], [2, 2]] + FREQUENCY_DILATIONS: [[1, 1], [1, 1], [1, 1], [1, 1]] +BN: + USE_PRECISE_STATS: True + FREEZE: True + NUM_BATCHES_PRECISE: 200 +SOLVER: + BASE_LR: 0.001 + LR_POLICY: steps_with_relative_lrs + STEPS: [0, 20, 25] + LRS: [1, 0.1, 0.01] + MAX_EPOCH: 30 + MOMENTUM: 0.9 + WEIGHT_DECAY: 1e-4 + WARMUP_EPOCHS: -1.0 + WARMUP_START_LR: 0.01 + OPTIMIZING_METHOD: sgd +MODEL: + NUM_CLASSES: [34, 34] + ARCH: slowfast + MODEL_NAME: SlowFast + LOSS_FUNC: cross_entropy + DROPOUT_RATE: 0.5 +TEST: + ENABLE: False + DATASET: epickitchens + BATCH_SIZE: 32 + NUM_ENSEMBLE_VIEWS: 1 +DATA_LOADER: + NUM_WORKERS: 8 + PIN_MEMORY: True +EPICKITCHENS: + TRAIN_PLUS_VAL: False + AUDIO_DATA_FILE: "/home/user/data/BBN/new/M1/sound/files/BBN-M1-audio-windows_with_epic-structure.hdf5" + ANNOTATIONS_DIR: "/home/user/data/BBN/new/M1/sound/files" +NUM_GPUS: 1 +NUM_SHARDS: 1 +RNG_SEED: 0 +OUTPUT_DIR: "/home/user/data/BBN/new/M1/sound" +EXTRACT: + ENABLE: True diff --git a/example/config/STEPGRU_BASE.yaml b/example/config/STEPGRU_BASE.yaml new file mode 100644 index 0000000..188128e --- /dev/null +++ b/example/config/STEPGRU_BASE.yaml @@ -0,0 +1,31 @@ +MODEL: + HIDDEN_SIZE: 1024 + CONTEXT_LENGTH: 'full' + USE_ACTION: True ##default true + USE_OBJECTS: True ##default true + USE_AUDIO: False ##default false + USE_BN: False ##default false + DROP_OUT: 0.5 + + OMNIVORE_CONFIG: 'config/OMNIVORE.yaml' + SLOWFAST_CONFIG: 'config/SLOWFAST_R50.yaml' +DATASET: + NAME: 'Milly' + LOCATION: 'videos/frames' + AUDIO_LOCATION: '/sound' + INCLUDE_IMAGE_AUGMENTATIONS: True + INCLUDE_TIME_AUGMENTATIONS: False + IMAGE_AUGMENTATION_PERCENTAGE: 0.8 +DATALOADER: + NUM_WORKERS: 12 + PIN_MEMORY: True +TRAIN: + ENABLE: True + USE_CROSS_VALIDATION: True ##default true + USE_CLASS_WEIGHT: True ##default true + NUM_GPUS: 1 + BATCH_SIZE: 8 #32 + OPT: "adam" #adam sgd rmsprop + LR: 0.001 + EPOCHS: 25 + CV_TEST_TYPE: None # 10p bbn None diff --git a/example/labels/M2_Alabama+BBN_videos_M2-19.csv b/example/labels/M2_Alabama+BBN_videos_M2-19.csv new file mode 100644 index 0000000..bb455b4 --- /dev/null +++ b/example/labels/M2_Alabama+BBN_videos_M2-19.csv @@ -0,0 +1,8 @@ +narration_id,participant_id,video_id,narration_timestamp,start_timestamp,stop_timestamp,start_frame,stop_frame,narration,verb,verb_class,noun,noun_class,all_nouns,all_noun_classes,video_fps +302,M2,M2-19,00:00:00.000,00:00:00.000,00:00:00.000,374,638,Place tourniquet with over effected extremity 2-3 inches above wound site.,Place tourniquet with over effected extremity 2-3 inches above wound site.,0,Place tourniquet with over effected extremity 2-3 inches above wound site.,0,['Place tourniquet with over effected extremity 2-3 inches above wound site.'],[0],30 +303,M2,M2-19,00:00:00.000,00:00:00.000,00:00:00.000,677,785,Pull tourniquet tight.,Pull tourniquet tight.,1,Pull tourniquet tight.,1,['Pull tourniquet tight.'],[1],30 +304,M2,M2-19,00:00:00.000,00:00:00.000,00:00:00.000,806,884,Cinch tourniquet strap.,Cinch tourniquet strap.,2,Cinch tourniquet strap.,2,['Cinch tourniquet strap.'],[2],30 +305,M2,M2-19,00:00:00.000,00:00:00.000,00:00:00.000,896,1072,Turn windless clock wise or counter clockwise until hemorrhage is controlled .,Turn windless clock wise or counter clockwise until hemorrhage is controlled .,3,Turn windless clock wise or counter clockwise until hemorrhage is controlled .,3,['Turn windless clock wise or counter clockwise until hemorrhage is controlled .'],[3],30 +306,M2,M2-19,00:00:00.000,00:00:00.000,00:00:00.000,1187,1247,Cinch tourniquet strap.,Cinch tourniquet strap.,2,Cinch tourniquet strap.,2,['Cinch tourniquet strap.'],[2],30 +307,M2,M2-19,00:00:00.000,00:00:00.000,00:00:00.000,1254,1371,Lock windless into the windless keeper.,Lock windless into the windless keeper.,4,Lock windless into the windless keeper.,4,['Lock windless into the windless keeper.'],[4],30 +308,M2,M2-19,00:00:00.000,00:00:00.000,00:00:00.000,1454,1503,Mark time on securing device strap with permanent marker.,Mark time on securing device strap with permanent marker.,7,Mark time on securing device strap with permanent marker.,7,['Mark time on securing device strap with permanent marker.'],[7],30 diff --git a/example/models/.gitignore b/example/models/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/example/output/confusion_matrix.png b/example/output/confusion_matrix.png new file mode 100644 index 0000000..1acb8dc Binary files /dev/null and b/example/output/confusion_matrix.png differ diff --git a/example/output/metrics.txt b/example/output/metrics.txt new file mode 100644 index 0000000..06e063f --- /dev/null +++ b/example/output/metrics.txt @@ -0,0 +1,20 @@ + precision recall f1-score support + + Step 1 1.00 1.00 1.00 10 + Step 2 0.38 1.00 0.56 5 + Step 3 0.50 0.14 0.22 7 + Step 4 0.75 0.86 0.80 7 + Step 5 0.33 1.00 0.50 5 + Step 6 0.00 0.00 0.00 0 + Step 7 0.00 0.00 0.00 0 + Step 8 0.60 1.00 0.75 3 + No step 0.97 0.63 0.76 46 + + accuracy 0.71 83 + macro avg 0.50 0.63 0.51 83 +weighted avg 0.83 0.71 0.72 83 + + +Categorical accuracy: 0.71 +Weighted accuracy: 0.80 +Balanced accuracy: 0.80 diff --git a/example/output/video_evaluation/M2-19-step_variation.png b/example/output/video_evaluation/M2-19-step_variation.png new file mode 100644 index 0000000..06b06dc Binary files /dev/null and b/example/output/video_evaluation/M2-19-step_variation.png differ diff --git a/example/videos/.gitignore b/example/videos/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/example/videos/frames/.gitignore b/example/videos/frames/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/example/videos/frames/M2-19/.gitignore b/example/videos/frames/M2-19/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/step_recog/datasets/milly.py b/step_recog/datasets/milly.py index f1a5dbe..36b662b 100644 --- a/step_recog/datasets/milly.py +++ b/step_recog/datasets/milly.py @@ -140,6 +140,8 @@ def __len__(self): from ultralytics import YOLO #from torch.quantization import quantize_dynamic +from torchvision import transforms + from step_recog.full.download import cached_download_file from step_recog.full.clip_patches import ClipPatches @@ -180,6 +182,10 @@ def __init__(self, cfg, split='train', filter=None): self.augment_configs = {} self.device = torch.device("cuda") if torch.cuda.is_available() else torch.device("cpu") + self.transform = transforms.Compose([ + transforms.Resize(self.omni_cfg.MODEL.IN_SIZE), + transforms.CenterCrop(self.omni_cfg.MODEL.IN_SIZE) + ]) if self.cfg.MODEL.USE_OBJECTS: yolo_checkpoint = cached_download_file(cfg.MODEL.YOLO_CHECKPOINT_URL) @@ -192,7 +198,7 @@ def __init__(self, cfg, split='train', filter=None): self.clip_patches.eval() if self.cfg.MODEL.USE_ACTION: - self.omnivore = Omnivore(self.omni_cfg) + self.omnivore = Omnivore(self.omni_cfg, resize = False) self.omnivore.eval() self.sound_cache = deque(maxlen=5) @@ -431,7 +437,7 @@ def _construct_loader(self, split): video_windows = [] previous_stop_frame = 1 - for _, step_ann in vid_ann.iterrows(): + for idx, step_ann in vid_ann.iterrows(): win_size = self.rng.integers(len(win_size_sec)) hop_size = self.rng.integers(len(hop_size_perc)) @@ -537,15 +543,6 @@ def augment_frames(self, frames, frame_ids, video_id): return frames - #Both CLIP and Omnivore resize to 224, 224 - #With this code, Yolo is using the same size - def _resize_img(self, im, expected_size=224): - scale = max(expected_size/im.shape[0], expected_size/im.shape[1]) - im = cv2.resize(im, (0,0), fx=scale, fy=scale) - im, _ = uniform_crop(im, expected_size, 1) - - return im - def _get_sound_cache(self, video, path): sound = None @@ -587,9 +584,10 @@ def _load_frames(self, window): ## frame = cv2.imread(frame_path) ## frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) frame = Image.open(frame_path) + frame = self.transform(frame) frame = np.array(frame) - frame = self._resize_img(frame) self.frame_cache[frame_id] = {"frame": frame, "new": True} + window_frames.append(frame) window_frame_ids.append(frame_id) @@ -628,7 +626,7 @@ def _extract_img_features(self, window_frames): def _extract_act_features(self, window_frames): frame_idx = np.linspace(0, len(window_frames) - 1, self.omni_cfg.MODEL.NFRAMES).astype('long') - X_omnivore = [ self.omnivore.prepare_image(frame, bgr2rgb = False) for frame in window_frames ] + X_omnivore = [ self.omnivore.prepare_image(frame) for frame in window_frames ] X_omnivore = torch.stack(list(X_omnivore), dim=1)[None] X_omnivore = X_omnivore[:, :, frame_idx, :, :] _, Z_action = self.omnivore(X_omnivore.to(self.device), return_embedding=True) diff --git a/step_recog/full/clip_patches.py b/step_recog/full/clip_patches.py index 813ed10..36d4795 100644 --- a/step_recog/full/clip_patches.py +++ b/step_recog/full/clip_patches.py @@ -22,12 +22,17 @@ def stack_patches(self, patches): for x in patches ]) - def forward(self, image, xywh=None, patch_shape=None, include_frame=False): + def forward(self, image, xywh=None, patch_shape=None, include_frame=False): + if isinstance(image, Image.Image): + image = np.array(image) + patches = [] if xywh is None else extract_patches(image, xywh, patch_shape) + if include_frame: patches.insert(0, image) if not patches: return torch.zeros((0, 512), device=self._device.device) + X = self.stack_patches(patches) Z = self.model.encode_image(X) return Z diff --git a/step_recog/full/model.py b/step_recog/full/model.py index 83a3cc6..88bb6fa 100644 --- a/step_recog/full/model.py +++ b/step_recog/full/model.py @@ -5,6 +5,8 @@ from ultralytics import YOLO import ipdb import cv2 +from torchvision import transforms +from PIL import Image from act_recog.models import Omnivore from act_recog.config import load_config as act_load_config @@ -45,12 +47,16 @@ def __init__(self, cfg_file, video_fps = 30): for step in skill['STEPS'] ]) self.MAX_OBJECTS = 25 + self.transform = transforms.Compose([ + transforms.Resize(self.omni_cfg.MODEL.IN_SIZE), + transforms.CenterCrop(self.omni_cfg.MODEL.IN_SIZE) + ]) # build model self.head = OmniGRU(self.cfg, load=True) self.head.eval() if self.cfg.MODEL.USE_ACTION: - self.omnivore = Omnivore(self.omni_cfg) + self.omnivore = Omnivore(self.omni_cfg, resize = False) if self.cfg.MODEL.USE_OBJECTS: yolo_checkpoint = cached_download_file(self.cfg.MODEL.YOLO_CHECKPOINT_URL) self.yolo = YOLO(yolo_checkpoint) @@ -80,13 +86,7 @@ def queue_frame(self, image): self.omnivore_input_queue.append(X_omnivore) def prepare(self, im): - expected_size=224 - im = cv2.cvtColor(im, cv2.COLOR_BGR2RGB) - scale = max(expected_size/im.shape[0], expected_size/im.shape[1]) - im = cv2.resize(im, (0,0), fx=scale, fy=scale) - im, _ = uniform_crop(im, expected_size, 1) - - return im + return self.transform(Image.fromarray(im)) def forward(self, image, queue_omni_frame = True): # compute yolo diff --git a/tools/run_step_recog.py b/tools/run_step_recog.py index 27de2e5..0fe4c49 100644 --- a/tools/run_step_recog.py +++ b/tools/run_step_recog.py @@ -102,8 +102,10 @@ def my_train_test_split(cfg, videos): videos, video_test = train_test_split(videos, test_size=0.10, random_state=2359) #M5 1030: only with BBN 041624.zip elif "R18" in cfg.SKILLS[0]["NAME"]: videos, video_test = train_test_split(videos, test_size=0.10, random_state=2343) #R18 1740: only with BBN seal_videos.zip - else: #A8, M4, R16, R19 - videos, video_test = train_test_split(videos, test_size=0.10, random_state=1030) + elif "A8" in cfg.SKILLS[0]["NAME"]: + videos, video_test = train_test_split(videos, test_size=0.10, random_state=2329) #A8: + else: #M4, R16, R19 + videos, video_test = train_test_split(videos, test_size=0.10, random_state=1030) return videos, video_test diff --git a/tools/test.py b/tools/test.py deleted file mode 100644 index f727b43..0000000 --- a/tools/test.py +++ /dev/null @@ -1,45 +0,0 @@ -import torch -import pandas as pd -import os -from torch.utils.data import DataLoader - -from step_recog.config import load_config -from step_recog import datasets, build_model, extract_features -from run_step_recog import parse_args, my_train_test_split - -def main(): - """ - Main function to spawn the process. - """ - args = parse_args() - cfg = load_config(args) - - if cfg.DATALOADER.NUM_WORKERS > 0: - torch.multiprocessing.set_start_method('spawn') - - # build the dataset - timeout = 0 - data = pd.read_csv(cfg.DATASET.TS_ANNOTATIONS_FILE) - _, video_test = my_train_test_split(cfg, data.video_id.unique()) - DATASET_CLASS = getattr(datasets, cfg.DATASET.CLASS) - - ts_dataset = DATASET_CLASS(cfg, split='test', filter=video_test) - ts_data_loader = DataLoader( - ts_dataset, - shuffle=False, - batch_size=cfg.TRAIN.BATCH_SIZE, - num_workers=cfg.DATALOADER.NUM_WORKERS, - collate_fn=datasets.collate_fn, - drop_last=False, - timeout=timeout) - - print('Loading the best model to evaluate') - model, _ = build_model(cfg) - weights = torch.load(cfg.MODEL.OMNIGRU_CHECKPOINT_URL) - model.load_state_dict(model.update_version(weights)) - - # cfg.OUTPUT.LOCATION = os.path.join(cfg.OUTPUT.LOCATION, "test") - extract_features(model, ts_data_loader, cfg) - -if __name__ == "__main__": - main()