Releases: PlanktoScope/device-backend
Releases · PlanktoScope/device-backend
v2024.0.0
Changelog
Fixed
- (Segmenter) The segmenter now correctly sets the
img_rank
metadata field of the EcoTaxa export to1
, instead of setting it to an incrementing index which makes exports un-importable by EcoTaxa for datasets with more than ~32,000 objects.
Pull Requests
- Fix a few issues with setup on RPi OS 12 (bookworm) by @ethanjli in #15
- Change the path of the machine-name file to load by @ethanjli in #16
- Containerize the segmenter by @ethanjli in #17
- Bump pillow by @ethanjli in #18
- Fix incorrect pixel calibration sizes for v2.5 & v2.6 hardware by @ethanjli in #21
- Replace EcoTaxa export filename fields with just the acquisition ID by @ethanjli in #20
- Stop dropping root in segmenter container by @ethanjli in #22
- Try again to fix GH Actions errors in merge group by @ethanjli in #23
- Migrate to the picamera2 library for camera control & image acquisition by @W7CH in #19
- Bump dependencies by @ethanjli in #24
- Rename pscopehat to planktoscopehat by @ethanjli in #25
- Rename pscopehat to planktoscopehat in hardware config files by @ethanjli in #26
- Don't push container images in PRs from forks by @ethanjli in #30
- Try again to avoid pushing container images in PRs from forks by @ethanjli in #31
- Iterate on code comments and internal APIs for
camera
andimagernew
by @ethanjli in #27 - Only subtract consecutive masks when an env var is set by @ethanjli in #32
- Fix various picamera2 camera settings by @ethanjli in #33
- Refactor CI workflows, adjust image tagging by @ethanjli in #37
- Pull back default planktoscopehat hardware config to v2.5 hardware by @ethanjli in #38
- Initialize camera image gain to a consistent ISO of 150 by @ethanjli in #48
- Make EcoTaxa metadata TSV file names unique per dataset by @RomainFauvel in #40
- Try to mitigate camera preview stream latency problems by @ethanjli in #68
- Fix incorrect segmenter object size thresholding calculations by @ethanjli in #50
- Use merge gatekeeper to avoid running slow CI workflows when not needed by @ethanjli in #69
- Fix incorrect use of
img_rank
field in EcoTaxa export metadata by @ethanjli in #70
New Contributors
- @W7CH made their first contribution in #19
- @RomainFauvel made their first contribution in #40
Full Changelog: v2023.9.0...v2024.0.0
v2024.0.0-beta.3
Changelog
Changed
- (Hardware controller) The resolution of the camera preview stream has been reduced from 960x720 to 800x600 in an attempt to mitigate hard-to-reproduce preview stream latency problems.
- (Hardware controller) The bitrate of the camera preview stream has been reduced slightly from ~8 Mbps to ~7 Mbps.
- (Hardware controller) The framerate of the camera preview stream is now explicitly limited to 25 fps.
Fixed
- (Breaking change; segmenter) The previously incorrect method for filtering segmented objects by size has now been corrected to filter object sizes by filled area rather than bounding box area, and directly using the mesh size as the threshold for equivalent spherical diameter (ESD) instead of calculating a fictional ESD.
Pull Requests
- Try to mitigate camera preview stream latency problems by @ethanjli in #68
- Fix incorrect segmenter object size thresholding calculations by @ethanjli in #50
Full Changelog: v2024.0.0-beta.2...v2024.0.0-beta.3
v2024.0.0-beta.2
Changelog
Changed
- (Hardware controller) The default image gain used to initialize the camera module is now set to match a default equivalent ISO value of 150 across all camera sensor types, instead of being hard-coded to 1.0 (which corresponds to an ISO of around 40 or 50 depending on the camera sensor type).
- (Segmenter) Now the segmenter generates EcoTaxa export ZIP archives whose metadata files are not named
ecotaxa_export.tsv
, but instead are namedecotaxa_{acquisition id}.tsv
, to enable more efficient bulk importing of those ZIP archives into EcoTaxa.
Pull Requests
- Initialize camera image gain to a consistent ISO of 150 by @ethanjli in #48
- Make EcoTaxa metadata TSV file names unique per dataset by @RomainFauvel in #40
New Contributors
- @RomainFauvel made their first contribution in #40
Full Changelog: v2024.0.0-beta.1...v2024.0.0-beta.2
v2024.0.0-beta.1
Changelog
Added
- (Hardware controller) A default fairscope-latest hardware config file has been created as the default v2.6 hardware config file.
Changed
- (Breaking change; hardware controller) The default planktoscopehat hardware config file has been rolled back from the default v2.6 hardware config file to the default v2.5 hardware config file. This reverts a change made in v2024.0.0-alpha.1.
Pull Requests
Full Changelog: v2024.0.0-beta.0...v2024.0.0-beta.1
v2024.0.0-beta.0
Changelog
(this release involves no changes from v2024.0.0-alpha.2; it's just a promotion of v204.0.0-alpha.2 to a beta pre-release)
Pull Requests
Full Changelog: v2024.0.0-alpha.2...v2024.0.0-beta.0
v2024.0.0-alpha.2
Changelog
Changed
- (Breaking change; segmenter) Previously, the segmenter's default behavior was to subtract consecutive masks to try to mitigate image-processing issues with objects which get stuck to the flowcell during imaging. However, when different objects occupied the same space in consecutive frames, the subtraction behavior would subtract one object's mask from the mask of the other object in the following frame, which would produce clearly incorrect masks. This behavior is no longer enabled by default; in order to re-enable it, you should set the environment variable
SEGMENTER_PIPELINE_SUBTRACT_CONSECUTIVE_MASKS=true
when launching the segmenter. - (Hardware controller) The image quality of frames in the camera preview stream for the picamera2-based imager is increased, and frames also have greater width and height.
Deprecated
- (Hardware controller) The old raspimjpeg-based imager is deprecated and will be fully deleted in a subsequent release (potentially as early as v2024.1.0).
Fixed
- (Hardware controller) The incorrect scaling factor for converting between ISO settings (in the MQTT API) and image gains is fixed.
Pull Requests
- Fix a few issues with setup on RPi OS 12 (bookworm) by @ethanjli in #15
- Change the path of the machine-name file to load by @ethanjli in #16
- Containerize the segmenter by @ethanjli in #17
- Bump pillow by @ethanjli in #18
- Fix incorrect pixel calibration sizes for v2.5 & v2.6 hardware by @ethanjli in #21
- Replace EcoTaxa export filename fields with just the acquisition ID by @ethanjli in #20
- Stop dropping root in segmenter container by @ethanjli in #22
- Try again to fix GH Actions errors in merge group by @ethanjli in #23
- Migrate to the picamera2 library for camera control & image acquisition by @W7CH in #19
- Bump dependencies by @ethanjli in #24
- Rename pscopehat to planktoscopehat by @ethanjli in #25
- Rename pscopehat to planktoscopehat in hardware config files by @ethanjli in #26
- Don't push container images in PRs from forks by @ethanjli in #30
- Try again to avoid pushing container images in PRs from forks by @ethanjli in #31
- Iterate on code comments and internal APIs for
camera
andimagernew
by @ethanjli in #27 - Only subtract consecutive masks when an env var is set by @ethanjli in #32
- Fix various picamera2 camera settings by @ethanjli in #33
New Contributors
Full Changelog: v2023.9.0...v2024.0.0-alpha.2
v2024.0.0-alpha.1
Changelog
Added
- (Hardware controller) A new picamera2-based camera-management module (
camera
) is now available as an alternative to the camera-management part of the previous raspimjpeg-based image-acquisition-and-camera-management module. - (Hardware controller) A new image-acquisition module (
imagernew
) is now available for use with the new picamera2-basedcamera
module, as an alternative to the image-acquisition part of the previous raspimjpeg-based image-acquisition-and-camera-management module.
Changed
- (Hardware controller) The new picamera2-based image-acquisition module (
imagernew
) is now used by default, instead of the previous raspimjpeg-basedimager
module. - (Breaking change; segmenter) EcoTaxa export archive filenames are now saved as
ecotaxa_{acquisition id}.zip
instead ofecotaxa_{project id}_{date}_{sample id}.zip
, which was long and redundant and (because many devices have incorrect system times) inappropriate for viewing files in a logically sorted order. - (Breaking change; hardware controller) The version of the hardware controller for the PlanktoScope HAT has been moved from
control/pscopehat
tocontrol/planktoscopehat
.
Fixed
- (Breaking change; hardware controller) Images acquired by the hardware controller using the newly-default
imagernew
image-acquisition module now have more unique filenames (which include an incrementing index and the date of image capture, rather than just the time of the image capture). - (Hardware controller) The hardware controller using the newly-default
imagernew
image-acquisition module no longer crashes when invalid values are given for camera settings (e.g. null or non-numeric white balance gains). - (Hardware controller) The pixel calibration values have been switched between the default v2.5 hardware config file and the default v2.6 hardware config file, so that each file has the correct pixel calibration. The default pscopehat hardware config file has also been updated to include the changes made to the default v2.6 hardware config file.
- (Breaking change; segmenter) The segmenter now runs as
root
(instead ofpi
) in the Docker container for it, so that it doesn't break on various actual & potential edge cases of files/directories being created withroot
ownership (rather thanpi
ownership) before being bind mounted into the container.
Pull Requests
- Fix a few issues with setup on RPi OS 12 (bookworm) by @ethanjli in #15
- Change the path of the machine-name file to load by @ethanjli in #16
- Containerize the segmenter by @ethanjli in #17
- Bump pillow by @ethanjli in #18
- Fix incorrect pixel calibration sizes for v2.5 & v2.6 hardware by @ethanjli in #21
- Replace EcoTaxa export filename fields with just the acquisition ID by @ethanjli in #20
- Stop dropping root in segmenter container by @ethanjli in #22
- Try again to fix GH Actions errors in merge group by @ethanjli in #23
- Migrate to the picamera2 library for camera control & image acquisition by @W7CH in #19
- Bump dependencies by @ethanjli in #24
- Rename pscopehat to planktoscopehat by @ethanjli in #25
- Rename pscopehat to planktoscopehat in hardware config files by @ethanjli in #26
New Contributors
Full Changelog: v2023.9.0...v2024.0.0-alpha.1
v2024.0.0-alpha.0
Changelog
Added
- (Segmenter) A Docker container image is now built for the segmenter, for amd64, arm64, and armv7.
Changed
- (Breaking change) The machine name is now loaded from
/var/lib/planktoscope/machine-name
, rather than the previous location of/home/pi/.local/etc/machine-name
.
Fixed
- (Segmenter) An extraneous
export
directory should no longer be created by the segmenter under/home/pi/PlanktoScope
. The correct directory is/home/pi/data/export
.
Pull Requests
- Fix a few issues with setup on RPi OS 12 (bookworm) by @ethanjli in #15
- Change the path of the machine-name file to load by @ethanjli in #16
- Containerize the segmenter by @ethanjli in #17
- Bump pillow by @ethanjli in #18
Full Changelog: v2023.9.0...v2024.0.0-alpha.0
v2023.9.0
Changelog
(this release involves no changes from v2023.9.0-beta.2; it's just a promotion of v2023.9.0-beta.2 to a stable release)
Full Changelog: v2023.9.0-beta.2...v2023.9.0
v2023.9.0-beta.2
Changelog
Added
- A
hardware.json
file is now provided for the PlanktoScope v2.6 hardware.
Removed
- Morphocut is no longer required by the segmenter as a Python package dependency.
Fixed
- The default brightness of the illumination LED for the pscopehat version of the backend (for the custom PlanktoScope HAT) has been reduced; this a temporary workaround to a bug with raspimjpeg where saved images are overexposed even on the default brightness settings with minimum shutter speed and ISO, despite the brightness of raspimjpeg's camera preview looking reasonable (see PlanktoScope/PlanktoScope#259 for details).
Pull requests
- Upgrade some dependencies due to broken downloads from piwheels by @ethanjli in #11
- Add
hardware.json
config file for hardware v2.6 by @ethanjli in #12 - Reduce segmenter dependencies by @ethanjli in #13
- Reduce default brightness of illumination LED for pscopehat controller by @LaurentPV in #14
New Contributors
- @LaurentPV made their first contribution in #14
Full Changelog: v2023.9.0-beta.1...v2023.9.0-beta.2