Skip to content

Releases: LilacMeteorObservatory/MetDetPy

MetDetPy v2.4.0

04 Jan 21:37

Choose a tag to compare

✅ New Feature(s)

  • MetDetPy
    • 正样本结果增加 relative_brightness 特征,无量纲,用于表示该样本相对背景的亮度。
    • 正样本结果增加 aesthetic_score 特征,无量纲,用于表征样本的观赏性。结合样本的长度,亮度和置信度计算。
  • MetDetPhoto
    • 支持直接读取主流数码相机的 RAW 格式文件(如 .NEF, .CR2, .ARW, .DNG 等)。读入后,图像将被应用自动的亮度拉伸和白平衡以进行检测。
    • 文件夹检测模式下,支持多线程读取图像,优化了图像加载和检测速度。
    • 序列检测模式下,检测结果将流式输出。
  • ClipToolkit
    • 在处理 MDRF 格式输入时,增加了过滤器:可以限制输出类别、得分和长度约束,从而快速筛选正样本(默认关闭,自行在配置中开启)。
    • 支持了包含 RAW 格式的 MDRF 文件的导出功能。
    • 新增 FFMpegVideoWriter,在自行配置本地 FFMpeg 和 FFProbe 路径后可以支持导出常见编码的常见视频格式(如h264编码的mp4)。
    • 支持截取视频模式下的 --with-bbox 选项,将在流星位置绘制一个包围框。

✅ Improvement

  • MetDetPy

    • DLDet 的单帧检测结果增加了方向信息,优化了方向计算结果。
  • ClipToolkit

    • 增强导出标注框(启用 --with-bbox 时)的视觉效果,标注框增加标签和概率得分,并可以为各个类别设置颜色。

✅ BugFix

  • 修复了 MetDetPhoto 在可视化模式下标注框错位问题。
  • 修复了 MetDetPhoto 保存 MDRF 格式输出时文件名可能受到输入路径格式影响导致空文件名的问题。
  • 修复了 ClipToolkit 执行保存带 labelme 标注时缺少导出文件名导致失败的问题。

New Contributors

Full Changelog: v2.3.2...v2.4.0

MetDetPy v2.3.2 release

18 Dec 03:20

Choose a tag to compare

Improvement

  • 增加了 Git-LFS 托管的网络权重格式检查。

Bug fixes

  • PyAVVideoWrapper 增加了帧缓存机制,优化了一次解码多帧时的帧丢弃情况。
  • 完善了 PyAVVideoWrapper 的错误捕获机制,减少偶发错误导致的强行终止问题。
  • 修复了 YOLOModel 推理错误时的兜底格式化错误。
  • YOLOModel 增加了线程锁以优化稳定性。

Documents

Full Changelog: v2.3.1...v2.3.2

MetDetPy v2.3.1-1 release

18 Nov 03:58

Choose a tag to compare

✅ Improvement

  • VideoLoader 添加 continue_on_err 选项,设置为 true 时会在帧数据解析失败时继续尝试向后解析[1]。可能会增加解码开销。默认为false
  • ClipToolkit 生成截图失败时,现在会在 stderr 抛出 fatal error,便于定位问题。
  • 冗余代码优化。

⚠️1:该设置可能不能改善缺失关键帧索引造成的连续读取失败。如果您的视频频繁出现大量失败,请优先尝试重新封装视频:
ffmpeg -i input.mp4 -c copy -map 0 fixed.mp4

✅ BugFix

  • 修复部分情况下 np.int32 类型数据导致的序列化失败问题。
  • 延长了 metlog 组件允许的最长等待时间,优化可能的输出不完整问题。
  • 修复了部分默认配置参数名错误或者缺省返回值错误导致的无法正常启动问题。

Full Changelog: v2.3.0...v2.3.1-1

MetDetPy v2.3.0

09 Aug 16:35

Choose a tag to compare

✅ New Feature(s)

  1. 新增 PyAVVideoWrapper 作为默认视频解码后端,相比OpenCVVideoWrapper跳转准确性和稳定性更好,并能改善解码性能。
  2. ClipToolkit 新增 --denoise 选项,支持在导出图像时降低噪声水平,同时连接图像中可能存在的断线。可以指定 simple (简单降噪)或者 mfnr-mix (多帧降噪)两种降噪算法*。

⚠️ *:simple 是使用双边滤波的传统降噪算法,运行较快;mfnr-mix是混合多帧降噪结果的降噪算法,效果更好,但耗时更长(通常慢于直接叠加5倍以上),适用于需要导出较高画质的场合。

✅ Improvement(s)

  1. ClipToolkit 在保存图像时,会尝试嵌入 sRGB 色彩配置文件。

✅ Bug Fixed

  1. 修复命令行直接调用ClipToolkit--save-path时,会忽略路径格式直接新建文件夹的问题。
  2. 修复ClipToolkit绘制包围框时的效果问题。
  3. 修复MetDetPy在重校验时可能会因为时间戳间隔过短,无法生成截图的问题。
  4. 修复MetDetPy在重校验运行失败时,忽略输出片段的问题。
  5. 修复MetDetPy在使用dldet调用深度学习模型时,可能出现非预期错误导致检测终止的问题。
  6. 修复 MetDetPhoto 检测单张照片时可视化的问题。

✅ Code Formatting

  1. 引入 typing 规范类型注解和静态类型检查。
  2. 引入 dacite 管理配置文件规范和参数解析。

Full Changelog: v2.2.0...v2.3.0

MetDetPy v2.2.0

10 Jan 11:07

Choose a tag to compare

Release Version of MetDetPy v2.2.0

(鸽了一年千呼万唤始出来的)MetDetPy v2.2.0 版本🌚🌚。主要更新有:
MetDetPy V2.2.0, a long-delayed version 🌚🌚(my fault). Main updates are:

✅ New Feature(s)

  1. 更新默认检测模型,优化检测稳定性,支持了更多检测类别。| Update the default detection model , improve the robustness and support more detection categories.
  2. 新增图像检测的工具入口 MetDetPhoto,可用于单张照片,延时序列(照片文件夹)或者延时序列视频的检测。 | Release MetDetPhoto for image meteor detection, which can be used for single photo, time-lapse image sequence and video.
  3. 检测模型支持多尺度推理,改善了流星召回率。| Model now supports multi-scale inference, improving target recall.
  4. 正式定义流星检测结果格式(MDRF)作为MetDetPy的流转文件格式,增加各脚本的通用性。有关该脚本的更多介绍见工具文档。| Introduce meteor detection result format (MDRF) as the standard file format of MetDetPy to increase the versatility of scripts. For more information about this script, see Tool Usage.

✅ Improvement(s)

  1. 调整了重校验阈值与前置预测的得分的融合计算方式,改善召回性能。| Adjust the fusion calculation method of the recheck threshold and the final predicted score, and improve the recall performance.
  2. 改进了 ClipToolkit 的易用性,提供了简化的调用接口,并允许同时保存Labelme格式标注或保存带标注框的图像等。用法见文档。| Improve the usability of ClipToolkit, providing a simplified version API, and allowing to save Labelme format annotations or images with annotation boxes. See the documents for more information.
  3. 增加了速度,距离和持续时间的归一化统计值输出,为不同设备上的统计值范围提供了统一参考。| Add the output of normalized speed, distance, and duration statistics, providing a unified reference for statistical uses.

✅ Bug Fixed

  1. 修复流星置信判定时速度统计值未归一化的问题,改善对卫星和飞机的误判。| Use normalized speed statistics to determine meteor confidence intervals, expecting to improve misjudgment of satellites and aircraft.

⚠️ Modification(s)

  1. 调整了后端模式下的输出逻辑,后端现在会输出所有检测类别(同样以 Meteor 开头)。| Adjust the output logic in the backend mode. All detection results will be output in the backend (starting with Meteor).
  2. 调整了 evaluate 的参数解析逻辑以适配MDRF格式。| Adjust the parsing logic of evaluate.py to support MDRF.
  3. 调整了保存到文件的结果,使其与命令行输出流一致。| Unify the coordinates and format saved to the test result file with the command line output.

⚠️

  1. 本次更新对默认参数范围有较大变动,使用从先前版本复制的自定义配置文件可能在新版本不适用,建议用户参考参数解释页手动更新配置文件。| This update has major changes to the default parameter ranges. If you want to use custom configuration files from previous versions, it is recommended to refer to the parameter explanation page to manually update the configuration files.
  2. 本次模型的更新对图像中目标的分类可能与先前版本存在Diff。如果希望沿用先前版本的模型,请修改模型相关路径为旧版本模型。| v2 model update may diff from the results of the previous version. If you want to use the previous version of the model, please modify the model-related path to the old version of the model.
  3. 由于稀有精灵样本较少,模型对该类别的识别准召率暂不理想,暂时不建议启用"RARE_SPRITE"作为正样本类型。| Due to the limited number of rare sprite samples, the model's precision and recall for this category are not ideal now. It is not recommended to enable "RARE_SPRITE" as positive category for now.

详细更新内容见更新日志-v2.2.0

Full Changelog: v2.1.0...v2.2.0

MetDetPy v2.1.0

26 Aug 19:40

Choose a tag to compare

Release of MetDetPy v2.1.0

✅ Bug Fixed

  1. 为Stacker增加出错兜底逻辑,修复Stacker在特定场景下报错会导致序列后续无输出的问题。| Added error handling logic to Stacker.
  2. 修复了2.0.1版本因为动态模板机制出错产生的效果差异。| Fixed the effect diff caused by the dynamic template mechanism error in version 2.0.1.
  3. 通过放宽重校验机制临时修复了对可能火流星的误报。会增加重校验负载。后续会对该类问题给出更稳健的解决方案。| Temporarily fixed the false positives for potential fire meteors by relaxing the revalidation mechanism.

⚠️ Revert

  1. 回滚了2.0.2版本中有关动态间隔机制的改动,维持效果一致性。该机制的下线还需要进一步测试。| Reverted the changes related to the dynamic gap mechanism in version 2.0.2 to maintain consistency. Further testing is required before deprecating this mechanism.

✅ New Feature(s)

  1. 为发行版引入 onnxruntime_directml,修复 onnxruntime 在 windows 平台不支持使用GPU的问题,缓解CPU负载。| Introduced onnxruntime_directml to the distribution, alleviating CPU load.
  2. 新增 --live-mode 选项,开启该选项可使检测速度与视频时长能够基本持平,均衡CPU负载,适用于直播场景。| Added the --live-mode option. Enabling this option allows the detection speed to match the video duration, balancing CPU load.
  3. 新增 --save 选项,允许保存运行结果到json文件。| Added the --save option, allowing the saving of results to a JSON file.

⚠️ 提供了 --provider cpu 以指定CPU运行模型,如果在未安装 DirectX 12的电脑上使用 onnxruntime_directml 造成报错,可以作为降级方案。| If using onnxruntime_directml on a computer without DirectX 12 installed causes errors, use --provider cpu option to specify CPU as a fallback solution.

✅ Improvement(s)

  1. 更新了评估工具evaluate.py,更改了评估标注格式,支持保存结果,与其他版本比较性能和效果等。该结果可作为回归测试与性能测试的基准,以确保迭代间的性能和效果稳定性。| Updated the evaluation tool evaluate.py, changing the evaluation annotation format to support saving results and comparing performance. These results can serve as a benchmark for regression testing and performance testing.

Full Changelog: v2.0.2...v2.1.0

MetDetPy v2.0.2

08 Aug 19:58

Choose a tag to compare

Release Version of MetDetPy v2.0.2

✅ Bug Fixed

  • 修正了输出分数的逻辑,现在模型重校验的分数能够正常输出到结果。

✅ Modification

  • 更新了线段检测器的输出分数计算逻辑。
  • 更改了后处理阶段的线段合并机制。
  • 补充了直接运行模型(run_model.py)的支持。

Full Changelog: v2.0.1...v2.0.2

MetDetPy v2.0.1

25 Jan 16:18

Choose a tag to compare

Release Version of MetDetPy v2.0.1

✅ Bug Fixed

  • 输出编码统一为utf-8。
  • 修复make_package中的错误。
  • 完善了视频读取非正常退出时的结束逻辑。

✅ Modification

  • 可视化接口重构及通用性扩展。

✅ Improvement(s)

  • 优化了detector与collector中的参数计算逻辑,加速检测。

Full Changelog: v2.0.0...v2.0.1

MetDetPy v2.0.0

10 Jan 07:22

Choose a tag to compare

Release version of MetDetPy V2.0.0

V2.0.0版本修复了已知的错误,改善运行稳定性,改善运行性能及重构已有代码的接口;同时支持了使用目标检测模型的检测,引入了后置的重校验机制,改善检测准确性,同时新增了部分预设配置config。版本的主要特性如下:

✅ Bug Fixed

  • 修复输出时间错位的问题
  • 修复ClipToolkit对单个输入的支持
  • 修复动态帧率解析和输出错误的问题(更新依赖 opencv-python>=4.9.0)

✅ New Feature(s)

  • 支持深度学习检测器:可使用ONNX框架下YOLO格式的网络作为检测器
  • 支持“重校验”选项:预测结果可以通过神经网络进行重校验,降低误报率
  • 预测结果新增类别,支持对流星以外的天文或大气现象进行检测

✅ Modification

  • 大量代码和API重构,优化代码结构,提升稳定性
  • config格式调整;不再兼容v1.x版本的config文件
  • 引入多种可选预设config替代简单的"sensitivity"设置
  • 可视化接口分离
  • 项目许可证更换为MPL2.0许可证

✅ Improvement(s)

  • 优化部分预设参数,改善默认检测模式下的运行效果。
  • 优化多线程视频读取和日志模块设计,完善退出时线程回收逻辑。
  • 优化估算SNR的计算流程。
  • 优化make_package在多平台和复杂环境下的打包稳定性。

Full Changelog: v1.3.0...v2.0.0

MetDetPy V1.3.0 Release

14 Mar 03:46

Choose a tag to compare

MetDetPy V1.3.0

It is our pleasure to pre-release MetDetPy v1.3.0 to everyone. In this version, several new features are introduced and detection results are more precise.

Bug Fixes

  • 修复了直线检测获取直线的数目问题。
  • 其他的已知问题。

API Improvement(s)

  • 命令行启动时的start-time与end-time参数现支持输入HH:MM:SS.MS格式的时间。
  • 调整检测的返回值:返回的JSON中的pt1pt2将按顺序描述起止位置。
  • Some API of config.json is modified and going to be merged or deprecated in the future. To keep compatibility, the old API is reserved until v2.0.0. / 对 config.json 的部分API进行了修改,先前版本的部分接口会在未来被合并或废弃。为保持兼容性,旧版本API会被保留至v2.0.0

Algo Improvement(s)

  • 简化了二值化前的图像增强方式
  • 增加了对检出直线的质量评定与非最大值抑制(NMS)机制
  • 增加了自适应gap
  • 增加了动态遮罩机制,优化了相机直录视频在星点附近的噪声
  • 引入面积响应,改善了容易排异火流星的情况
  • 完善了灵敏度相关的预设

⚠️ 这些改进主要针对“标准”灵敏度,能够优化大量的误报,但会导致对一些暗弱流星的召回率降低。如果希望获得更高的召回率,可以在config中关闭对应设置,或启用灵敏度为“高”。

New script(s)

  • 评估脚本正式上线。评估脚本能够自动根据标准加载视频,掩模以及标注,为对算法性能的定量分析提供支持。