Coder Social home page Coder Social logo

kitware / dive Goto Github PK

View Code? Open in Web Editor NEW
78.0 10.0 21.0 65.07 MB

Media annotation and analysis tools for web and desktop. Get started at https://viame.kitware.com

Home Page: https://kitware.github.io/dive

License: Apache License 2.0

JavaScript 1.01% HTML 0.04% Vue 41.44% Dockerfile 0.35% Python 19.47% Shell 0.07% TypeScript 37.24% SCSS 0.11% HCL 0.18% Mako 0.08%
video video-analytics marine-biology computer-vision annotation image-annotation video-annotation object-detection docker machine-learning

dive's Introduction

VIAME Logo

DIVE is a web interface for performing data management, video annotation, and running a portion of the algorithms stored within the VIAME repository. When compiled, docker instances for DIVE can be run either as local servers or online in web services. A sample instance of DIVE is running on a public server at viame.kitware.com.

docs/images/Banner.png

Features

  • video annotation
  • still image (and image sequence) annotation
  • deep integration with VIAME computer vision analysis tools
  • single-frame boxes, polygons, and lines
  • multi-frame bounding box tracks with interpolation
  • Automatic transcoding to support most video formats
  • Customizable labeling with text, numeric, multiple-choice attributes

Documentation

Technologies Used

DIVE uses Girder for data management and has a typical girder + girder worker + docker architecture. See docker scripts for additional details.

  • The client application is a standard @vue/cli application.
  • The job runner is built on celery and Girder Worker. Command-line executables for VIAME and FFmpeg are built inside the worker docker image.

Example Data

Input

DIVE takes two different kinds of input data, either a video file (e.g. .mpg) or an image sequence. Both types can be optionally accompanied with a CSV file containing video annotations. Example input sequences are available at https://viame.kitware.com/girder#collections.

Output

When running an algorithmic pipelines or performing manual video annotation (and saving the annotations with the save button) output CSV files are produced containing output detections. Simultaneously a detection plot of results is shown underneath each video sequence.

dive's People

Contributors

aashish24 avatar bryonlewis avatar dependabot[bot] avatar jjnesbitt avatar marysalvi avatar mattdawkins avatar matthewma7 avatar mattrix27 avatar rgov avatar subdavis avatar waxlamp avatar zachmullen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dive's Issues

Zooming is laggy

Zooming the video window is too slow, should be more responsive. Seems like the window is doing inertial scroll, but I don't have scrolling inertia turned on.

Also, window seems to have fixed zoom levels, so zooming doesn't happen until you go over some threshold, which makes lag feel worse.

Allow changing of filenames

Pulled out from #18.

If uploading only 1 file, we should allow the renaming of files. This would necessitate an update to the fileUploader mixin in GWC.

Warn user of unsaved edits

When a user tries to leave the annotation page, either by closing the tab or going back to the data browser, they should get a modal warning if there are unsaved annotations in the session.

Advanced Image caching features

Once complete with the initial cache and sitting there idle, it should start continuing on and loading additional frames. This secondary buffer should be cleared at any time a user interaction starts. This prevents idle network time from not being used while also not polluting too much of the main image buffer.

The caching system should be smart enough to append on if the current frames are loaded.

  1. Go to a frame location
  2. Look forward and back to see if it is already cached
  3. If it is already cached expand the looking distance to prevent idle times

If the previous frames are already loaded while using the front/back ratio it should append to the list the items that should be loaded instead.

If the movement is continuous backwards (indicate that they are seeking backwards) the front back ratio should be changed and priority given to frames before the current frame.

Single frame advancement outside of playback (utilizing the keys) should force the caching to be directional as well. If the user is holding the ‘forward’ key it should be trying to reach forward in frames, the opposite is true if the user is holding the backwards key.

A single frame jump of decent size should be like before where it grabs frames alternating between front and back just in case we don’t know where the user is going.

Video Annotations not working properly

User issue:
"I found your email on your github page for the VIAME. I'm trying to use the web app to upload .mp4 files and then do annotation. I am able to upload the MP4 files successfully, but I never get a 'annotate' blue button next to the files. Is there something I am doing wrong?

The MP4 files are around 2.10GB each. Is there a max file size issue I am running into for using VIAME web app?"

Matthew has noted that no videos have Annotations available for them.

Upload progress reporting is insufficient.

The upload progress controls need some attention. All you get is an indeterminate progress bar and a label that says 0 images the whole time an upload is happening.

There's nothing to indicate to the user if things are still happening or the UI has gotten stuck, particularly if the upload is large.

I'd consider this of moderate priority.

species types as attribute confusion

"Another thing that's come up is people keep on adding species types as attributes and we'd want to make sure it's highlighted in the document which is which"

@mattdawkins please clarify what different parts of the app are being confused and what needs to be communicated. As far as I'm aware, there's only one way to provide freeform text.

Improve Run Pipeline drop down ordering

Ideally the ordering would be:

default pipelines first
default_*

generic pipelines next
generic_*

then all others in alphabetical order

Ideally it also doesn't show the .pipe extension

Track selection behavior doesn't make sense.

  • Left click to select track A
  • right click to edit track B

Track A is still highlighted in the track list and is still green, which doesn't make sense to me

  • press f

You're now in an invalid state (#10) but now track A has been deleted.

Timeline scaling on resize

Currently there is no timeline scaling when the user resizes the window. Instead it just remains at the default view size.
image

The Timeline and anything below the timeline should scale accordingly with the window size.

Unreadable colors for UI elements

Change to the base color makes it more difficult to read some of the UI elements in the page
image

Update to either use the accent color used in other UI elements instead of the base color for the text fields.
Test in any/every text field or other UI element location: login, register, new folder, attribute editing.
Test in both chrome and firefox to confirm that the representation is the same.

Seeking backward doesn't work, prefetching doesn't wait for frames to load.

Pre-fetching only works when playing the video forward in time. However, when doing an annotation, a user will want to find the beginning of the track, which can involve seeking backward.

  • Find a fish you want to track
  • grab the track head and drag backward to look for the fish's first appearance.

result: lots of waiting for an image to appear.

click handler misses

About 25% of my clicks don't do the thing they're supposed to do. Highlighting tracks, laying head and tail points, and everything else on the video window does nothing about a quarter of the time.

I don't know if this is a problem with this app or GeoJS's event hander. I use an apple Magic Trackpad, so I wonder if the slight movement of my cursor during a click is causing the click events to get interpreted as drags. Maybe the threshold for lateral movement during a click can be tuned?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.