Changelog¶
## 0.1.1 (01-24-2025)
### Added
- Frame packing objects
Under the detection submodule there are new objects for packing and unpacking frames for detection.
- tracking updates
tracking.trackers.KLTMultiTracker
tracking.MultiTrackerType
- research submodule
biglittle, implements BigLittle method for swapping between an expensive/accurate detector and a cheap/inaccurate detector
marlin, implements the MARLIN scheduler for choosing to run either a detector or cheap tracking algorithm to save energy
- bboxes.match, bboxes.calculate_metrics
Added functions for matching and computing accuracy between two lists of bounding boxes.
- io.Display.wait and nextkey init parameters.
Allows more syncronization on the Display class.
### Changed
- Now uses a single universal jit entrypoint behind the scenes.
Interface is exposed to users via the register_jit function Calling enable_jit or disable_jit will reset the registered function accordingly.
## 0.1.0 (12-05-2024)
### Fixed
- image.letterbox
new_shape was incorrectly using (height, width) format
## 0.0.25 (11-07-2024)
### Added
- bboxes.filter_bboxes_by_region
Get the bounding boxes from a list of bounding boxes which are contained inside the region
### Changed
- bboxes.nms now has conf and classid switched
in the bounding box entries.
## 0.0.24 (11-02-2024)
### Added
opacity argument to all functions in image.draw
- image.rescale
Rescale an image from [0:255] to a different range. Preserves scale within range.
### Changed
- Display.stopped now looks at whether the stop
key has been pressed. When stopped is called the value will reset. Enables easier use in use control flows. Display.is_alive still exists and holds the same function as the old stopped and is_alive (is_alive is unchanged, just preferred now.)
### Improved
- bboxes.bounding now raises ValueError if
the sequence is empty.
## 0.0.23 (10-28-2024)
### Added
- image.patch
Generate patches of a fixed size across and image.
### Changed
- image.divide
Now returns the subimages and offsets
## 0.0.22 (10-09-2024)
### Fixed
- image.divide
Docstring error, added test case coverage
## 0.0.21 (10-09-2024)
### Added
- image.divide
Divides an image into regions via the number of rows and columns given.
- bboxes.scale and bboxes.scale_many
Scale bounding boxes from one image size to another.
## 0.0.20 (09-24-2024)
### Fixed
- A Display would be created (but unused) if
show was set to False in VideoWriter
## 0.0.19 (09-20-2024)
### Added
- image.letterbox function
Resize an image using the letterbox method
## 0.0.18 (09-18-2024)
### Added
- image.color submodule
- Color enum for getting BGR colors and
the color in other formats
- Added nxyxy and nxywh formats to the bboxes
submodule.
## Fixed
- yolo format in bboxes submodules was incorrectly
using nxywh format. Renamed and addedd correct yolo format.
## 0.0.17 (09-15-2024)
### Added
- image.draw submodule
- Provides wrappers around some basic cv2
drawing functions. Primary focuses on providing general auto-filling of arguments
- io.VideoWriter now has show flag on initialization.
Will create an io.Display and display frames as they are written.
## 0.0.16 (08-12-2024)
### Added
- Tiling functions to the image submodule
- Create an image using tiles or iterate over an image
getting progessively tiled.
create_tiled_image
image_tiler
### Improved
- Display now has enter and exit statements so it can be
used with the ‘with’ statement.
## 0.0.15 (07-31-2024)
### Added
resize_image and convert_video_color cli
### Fixed
- Bug in video_from_images cli where strings were not
converted to Paths correctly.
## 0.0.14 (07-18-2024)
### Added
- detection Submodule
BlobDetector and detect_blobs
- bboxes Submodule
xyxy, xywh, and yolo conversion methods
draw_bboxes
- score_bbox and score_bboxes
- Simple bbox scoring methods based on euclidean distance
in pixels and area differences. Useful for assigning confidence scores to bboxes without scores when there is a target bounding box.
- video Submodule
create_timeline and video_from_images
## 0.0.13 (06-15-2024)
### Added
- tracking Submodule
Added the KLTTracker implementation
## 0.0.12 (06-01-2024)
### Added
- tracking Submodule
- cv_trackers, all tracking algorithms available through OpenCV
are wrapped in the same interface with common errors handled better than cv2.errors.
Tracker, generic class which can use all tracking algorithms
- MultiTracker, generic class allowing many objects to be tracked
at once, using the underlying single object trackers. Uses threads to achieve parallelism.
TrackerType, enum of all possible tracking algorithms
- AbstractTracker, AbstractMultiTracker, CVTrackerInterface
Allow custom implementations, and make wrapping OpenCV trackers easier.
- xyxy_to_xywh and xywh_to_xyxy in bboxes submodule
Allow changing bounding box format
- constrain in bboxes submodule
Restricts coordinates of bounding boxes to an image size
### Changed
Changed license to MIT
## 0.0.11 (06-01-2024)
### Added
- VideoWriter
- Class which makes handling OpenCV VideoWriters easier
to use. Add context manager and automatic frame sizing.
### Improvements
Improved test layout
## 0.0.10 (04-01-2024)
### Improvements
Fixed missing documentation
## 0.0.9 (03-25-2024)
### Added
- timeline
Add cli for generating timelines of videos
## 0.0.8 (03-13-2024)
### Added
- bboxes
Submodule focused on bounding box computations
- Has basic routines such as iou, iou for many boxes
non-max-suppression, and mean average precision computation
All routines are capable of being accelerated via the JIT
- template
Added JIT capability to match_multiple function
### Fixed
- Display
- Bug when logger gets deleted before global handler.
Handler now keeps a reference to package logger.
### Improved
- Testing
- Added wrappers to aid in testing JIT vs. normal
code execution. Significantly less code in tests
## 0.0.7 (03-07-2024)
### Added
- JIT
- Added enable_jit function to package, which
enables jit compilation using numba for certain routines/algorithms
- Display
Improved display window handling
## 0.0.6 (03-03-2024)
### Added
- Display
- Added stopped and is_alive properties for
identifying when display has been stopped.
- template submodule
Added match_single and match_multiple
- metrics submodule
Added ncc (normalized cross correlation)
- CLI
- Annotate cli program for annotating a video
with bounding boxes
## 0.0.5 (03-01-2024)
### Added
- Display
- Class which allows displays to be threaded for
faster iteration.
- Benchmarking
- Added a basic benchmarking setup showcasing
the speedup achieved if using our thread based video reading and display.
## 0.0.4 (02-23-2024)
### Added
- CLI interface
resize_video function is first available
## 0.0.3 (02-21-2024)
### Fixed
Package correctly gets detected as being fully typed.
## 0.0.2 (02-21-2024)
### Fixed
Docstring for IterableVideo