Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update utils.py with temporal_NMS and utility functions #272

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

danielbdr
Copy link

@danielbdr danielbdr commented Dec 13, 2023

temporal_NMS class extends the static frame NMS considering successive frames. Improves accuracy by 2.5%-3% mAP over the static NMS on DBBK100 dataset

Other utility functions:

  • class storeData: efficient storage of pickeld data
  • accuracy function returning mAP results

Issue Number:

Objective of pull request:

Pull request checklist

Your PR fulfills the following requirements:

  • Issue created that explains the change and why it's needed
  • Tests are part of the PR (for bug fixes / features)
  • Docs reviewed and added / updated if needed (for bug fixes / features)
  • PR conforms to Coding Conventions
  • PR applys BSD 3-clause or LGPL2.1+ Licenses to all code files
  • Lint (flakeheaven lint src/lava tests/) and (bandit -r src/lava/.) pass locally
  • Build tests (pytest) passes locally

Pull request type

Please check your PR type:

  • Bugfix
  • Feature
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Documentation changes
  • Other (please describe):

What is the current behavior?

What is the new behavior?

Does this introduce a breaking change?

  • Yes
  • No

Supplemental information

temporal_NMS class extends the static frame NMS considering successive frames. 
Improves accuracy by 2.5%-3% mAP over the static NMS on DBBK100 dataset

Other utility functions:
- class storeData: efficient storage of pickeld data 
- accuracy function returning mAP results
@danielbdr
Copy link
Author

tests

cd /home/dbendaya/work/ContinualLearning/tinyYolov3_lava/YOLOsdnn/loihi8YOLO/

import sys
path = ['/home/dbendaya/work/ContinualLearning/tinyYolov3_lava/YOLOsdnn/',
        '/home/dbendaya/work/ContinualLearning/prophesee-automotive-dataset-toolbox/']
sys.path.extend(path)

from object_detection.boundingbox.utils import temporal_NMS, storeData, accuracy
from tqdm import tqdm
import numpy as np
T = 10
t_nms = temporal_NMS(16)
accuracy_t_nms = []
for k in tqdm(range(13), desc='loading BDD_on_yolo2hd predictions-accuracy tests on NMS methods:'):
    [inputs, targets, bboxes, predictions, counts] = storeData.load('tinyYolo_dump%02d.pkl'%k)
    t_nms.reset()
    detections_frame = [t_nms(predictions[..., t]) for t in range(T)]
    accuracy_t_nms.append(accuracy(detections_frame, bboxes))

print(accuracy_t_nms, np.array(accuracy_t_nms).mean(), sep='\n')

@danielbdr danielbdr closed this Dec 13, 2023
@danielbdr danielbdr reopened this Dec 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant