Release Notes#

v0.10.2-release#

此版本新增多项3D图像测量相关函数,及添加了Intel Ultra系列CPU及B580等型号的GPU的推理支持,并修复了若干问题。

💪 新功能实现#

  1. 支持使用Intel Ultra系列CPU及Intel B580等型号的GPU的推理;

  2. Gauge3d: 新增3D平面拟合、平面校正、平面度测量、凹坑测量、高度测量函数;

  3. ELAssemblyVerification: EL装配检查工具支持使用CPU推理;

  4. Image: 新增固定阈值二值化、自动阈值二值化及孔洞填充等图像处理函数。

🐞 问题修复#

  1. ELUnsuperSegmentation: 修复EL非监督分割工具的一些潜在问题;

  2. Runtime: 在高频反复update_runtime和set_param的情况下,参数可能无法被更新入运行时的问题;

  3. VLMDetection: 修复VLMDetection训练后无法推理的问题;

  4. Geo3d: 修复若干3D几何库问题,具体请查阅Changelog。

v0.10.1-release#

此版本修复了若干问题,及添加了损坏工程的修复机制等功能。

💪 新功能实现#

  1. VLMDetection: 添加VLMDetection模型微调训练功能(仅Linux平台)。

  2. 添加工程自动修复功能,支持对于创建版本备份的情况下,当工程数据库损坏,但数据没有丢失的时,自动根据版本备份中信息将工程修复并恢复到最近的版本。注意,此功能无法修复没有创建版本备份的工程。

  3. PolygonRegion类型添加扩展信息设置和读取接口,便于用户在脚本工具中自定义输出扩展信息。及添加RegionList排序接口。

🐞 问题修复#

  1. 修复若干问题,具体更新内容请查阅文档中的Changelog。

v0.10.0-release#

在此版本中,我们对VisionFlow的功能、接口兼容性、几何工具、测量工具和运行效率进行了多项优化与扩展,以下是主要更新内容,更多细节请查阅文档中的 Changelog。

💪 新功能实现#

  1. 工具与接口

    • 添加使用工具类型查询工具名称的接口;

    • 命令行工具支持直接使用给定模型对给定目录下的图片文件进行推理评估;

    • CABI/CPPABI接口支持自定义日志接收对象;

    • Python接口支持捕获visionflow.excepts.DefaultException并输出详细错误信息;

    • 绘制区域时可选是否显示包围框和多边形。

  2. 图像与工程管理

    • 支持在软件启动时设置工程默认图像存储格式为JPEG,有效减少工程体积;

    • 视图转换器支持设置多个同名视图;

  3. 算法工具

    • 新增VLM-Detection工具;

    • 测量工具支持多页图像自由处理,不同测量项可处理不同图像页;

    • 测量工具支持查询/修改测量项内容,支持无参表达式及清空参数。

    • 测量工具增加RawImageInfo输入以访问图像附加信息。

  4. 几何库与3D几何库

    • 新增3D图像数据结构定义(Image3d)。

    • 新增3D几何基础元素(点、向量、平面、直线)及基础算法;

    • 补充distance_min运算,支持Ring/Polygon/MultiPolygon最小边缘距离计算。

  5. 运行时优化

    • Runtime新增inplace_update_runtime接口,实现就地更新以提高速度并减少资源占用。

🐞 问题修复#

  1. 检测工具:修复按类别过滤无效、训练崩溃问题。

  2. 测量工具:修复找圆ROI方向/圆弧方向不一致、卡尺结果偏差、参数设置异常删除失败等问题。

  3. 图像处理:修复图像融合函数在平滑系数越界时内存访问错误及彩色图像融合错误;修复高动态合成算法对输入顺序依赖的问题。

  4. 视图转换器:优化视图转换器计算精度,修复掩码边缘存在微小偏差的问题;视图转换器输出名称不再由视图参数ID控制,改为直接设置视图名称。

  5. Python接口:修复同名函数const/非const重载调用问题、Project::all_properties_name_type无法调用问题。

🚀 性能优化#

  1. EL非监督分割:优化训练与推理过程的内存和显存占用50%以上,并提升推理效率20%左右。此次升级后旧的模型不再能推理,需要重新训练。

  2. 几何搜索:优化默认参数可用性,调整目标数量和噪声阈值默认值;提高模板匹配易用性。

  3. 缓存管理:优化训练缓存策略,提升内存使用效率,降低OOM风险。

⚠️ 重大变更#

  1. 接口调整:视图转换器输出名称不再由视图参数ID控制,改为直接设置视图名称。

  2. 类型变更:visionflow::InitOptions 中的字符串类型改为 std::string,C/C++ 接口需对应调整。

  3. 几何库重构:部分几何库接口不再继承标准模板库,简化调用形式,部分几何库接口发生变化,需更新调用代码以确保正常编译与运行。

v0.9.1-release#

🐞问题修复#

  1. 修复检测工具在没有GPU的环境下训练会报错的问题。

v0.9.0-release#

在此版本中,我们对VisionFlow的功能、效率、稳定性和易用性进行了全面升级,以下是主要更新内容,更多细节请查阅文档中的 Changelog。

💪新功能实现#

  1. 图像处理增强:新增多曝光/多焦点图像融合功能(输入需同分辨率);优化智能标注算法的效率和效果;

  2. 测量工具升级:添加卡尺/找圆/找直线/凹凸点检测算子;支持条件性脚本(if-else逻辑);输出支持椭圆图形及MultiPoint2f类型;

  3. 多页图像支持:检测、定位、分割、OCR等工具支持选择处理指定图像页,默认处理所有页面;

  4. C#接口完善:C#接口支持GPU信息获取及全流程开发(导入数据、标注、训练、推理);

  5. Python接口完善: 添加较为完整的Python接口,支持全流程开发(导入数据、标注、训练、推理);

  6. 工程与视图优化:工程支持只读模式打开;视图转换器支持保留掩码传递;视图过滤新增前缀匹配模式;属性对象默认按添加顺序排序;

  7. 硬件兼容性:升级NVIDIA依赖库以支持50系列显卡;

  8. 其他功能:IDReader优化矩形ECC 200 DM码识别率;添加区域重复去重机制;支持通过标签管理测量项。

🐞问题修复#

  1. 核心库修复:修正几何库多边形求交/求并计算错误、直线交点错误、精度问题导致的训练漏检; 修复buffer函数错误导致的计算效果问题;

  2. 工具级修复:修复检测工具结果过滤失效、分割统计指标计算偏差、EL非监督分割掩码边缘误检;

  3. 接口问题:修复C#接口命名空间错误、Python接口不完整、C/C++跨编译器接口参数传递BUG;

  4. 数据安全:修复删除数据集时未检查备份导致的工程损坏;优化文件写入以部分防止断电/闪退损坏工程数据;

  5. 硬件兼容性:解决V100S GPU及计算能力6.0+显卡的兼容性问题;修复加密狗偶然超时错误。

🚀性能优化#

  1. 多曝光图像融合效率提升:单线程耗时降低40%,多线程(≥4)降低50%;

  2. EL非监督分割工具推理效率提升30%,支持大批量训练数据;

  3. 几何匹配工具优化彩色图像处理速度,训练耗时降低25%;

  4. 智能标注功能初始化速度提升20%,异常处理机制完善;

  5. 各算法工具推理速度提升20%~40%;

  6. 几何库多边形求交集、求并集、buffer算子计算速度提升90%。

⚠️重大变更#

  1. 接口变更:部分C/C++接口参数传递方式变化,改为引用或指针(需修改调用代码,具体变化可参考文档示例);

  2. 数据迁移:缩略图接口转移至props::ImageUserData,旧接口已废弃;

  3. 硬件兼容性: 显卡驱动版本要求更新到572以上版本,并不再兼容 GeForce GTX 1050 ~ GeForce GTX 1080 Ti 等计算能力低于6.1的显卡。

v0.8.2-release#

🐞问题修复#

  1. 修复C#接口无法使用的问题。

v0.8.1-release#

在此版本中,我们完善了EL算法工具,优化了接口易用性,以下是其中主要的一些更新内容,更多详细变更请查看文档中的Changelog。

💪新功能实现#

  1. 完善EL分类、EL无监督分类、EL-OCR等EL工具的算法,优化检测效果、推理速度和使用体验;

  2. 添加绘制文本的接口 visionflow::img::draw ,支持绘制Unicode字符集中的多数字符;

  3. 添加 RegionList::draw_on 接口将绝大多数标注、检测结果直接绘制到图像上,并提供更美观的默认样式;

  4. Python接口中添加 Image.to_numpy, Image.from_numpy 支持直接将图像转换为Numpy对象;

  5. cppabi中标准库对应类型的c++接口支持直接和对应的原生C++类型互相转换;

  6. 提供Project相关调用接口的C#封装;

  7. 推理接口提供批量推理功能和超时中断的功能。

🐞问题修复#

  1. 修复Python接口返回引用时, 父对象析构导致数据错误的问题;

  2. 修复未引入python内置模块导致某些使用的内置函数的python脚本执行报错的问题;

  3. 修复GeometrySearch工具的一些问题;

  4. 更多问题修复请查看文档中的 ChangeLog 部分。

v0.8.0-release#

在此版本中,我们对VisionFlow的功能、效率和稳定性、易用性都进行了多处增强,以下是其中主要的一些更新内容,更多细节请查看文档中的 Changelog。

💪新功能实现#

  1. 添加EL-分类、EL无监督分类等工具,需要的训练数据更少,能够快速解决轻量场景下的分类问题;添加IDReader等新工具;

  2. 完善C#接口功能:最低支持.NET Framework 4.0版本;支持捕获C++异常并获得其中的具体异常类型和异常信息;C#接口中支持自定义日志接收对象;支持获取当前库版本号和模型兼容信息等;

  3. 优化跨编译器C++接口形式和完善功能,简化接口形态;

  4. 添加区域计算工具,支持更加灵活的区域组合等逻辑;完善综合判定工具,支持返回更加丰富的判定信息;及优化判定标准管理机制,支持将判定逻辑和判定预置分离存储,便于修改判定阈值;

  5. 优化Runtime:添加跨进程和模型的Runtime构建缓存机制以优化模型初始化速度。默认启用Runtime构建缓存机制,用户可通过将库初始化配置中的runtime_timing_cache_path设置为空路径以禁用Runtime构建缓存机制;添加全局切换推理引擎类型选项,便于在创建Runtime时试试控制推理方式;

  6. 添加支持多种图像排布格式的转换函数,优化用户调用时的图像数据转换速度;

  7. 更多更新内容请查阅文档中的 ChangeLog 部分。

🐞问题修复#

  1. 修复多种问题,具体修复内容请查阅文档中的 ChangeLog 部分。

🚀性能优化#

  1. 大幅度优化各个工具的CPU推理速度,(单位时间吞吐量提升10倍以上,具体提升数值视不同硬件及训练推理参数有所差异);

  2. 优化各个工具的GPU推理速度 15%~20%(推理时占用显存会增加5%~10%);

  3. 优化分割工具、非监督分割工具在检出大而复杂缺陷时推理速度显著变慢的问题;

  4. 优化PNG格式图像编解码速度,编解码速度提升20%~30%;影响:提升图像导入速度、训练启动速度、数据包导出速度及一般的样本访问速度。

v0.7.5-release#

🐞问题修复#

  1. 修复部分特定情况下Python脚本可能崩溃的问题。

v0.7.4-release#

🐞问题修复#

  1. 修复同一进程中同时运行的多个综合判定工具会相互影响导致判定结果错误的问题。

v0.7.3-release#

🐞问题修复#

  1. 修复OCR工具只有一个样本时增量训练模型效果较差的问题。

v0.7.2-release#

🐞问题修复#

  1. 修复分割、分类、OCR工具重复训练时存在内存泄漏的问题;

  2. 修复当不同样本中存在不同数量的视图时,多卡训练可能卡住的问题;该问题影响范围为所有AI工具;

  3. 修复工程和模型使用极速推理模式推理后在移动到不同的操作系统平台下再次推理会失败的问题;

v0.7.1-release#

💪新功能实现#

  1. 添加几何定位工具。

🐞问题修复#

  1. 修复非监督分类工具推理时可能崩溃的问题。

v0.7.0-release#

经过多个中间小版本的迭代,与AIDI2.4相比,此版本中VisionFlow已经具备了比较完整的功能和比较稳定的指标,并在性能和易用性方面相比aidi_vision有一定优势。欢迎试用、反馈。

💪新功能实现#

  1. 完成所有AIDI2.4支持的算法工具的适配,并提供更加灵活易用的使用接口及组合搭配使用方式;支持复杂的分支、组合流程;

  2. 优化各个算法工具检测效果及易用性;

  3. 提供数据包功能,支持将图像和标注数据导出独立保存,长久维护数据资产;支持通过数据包在相同或不同工具之间迁移标注数据;

  4. 二次开发接口提供更易用的调用的推理接口;实验性支持C/跨编译器C++接口;

🚀性能优化#

  1. 全面优化了各个工具的训练、推理速度,相比于AIDI2.4.4推理速度最高提升10%~40%;

  2. 优化极速推理模式下在同型号GPU上重复加载同一模型的启动速度;

  3. 默认使用异步推理模式,异步推理模式下自动为多分支工程启动并行推理,自动优化复杂工程推理速度。

v0.0.1-alpha#

VisionFlow 的第一个版本已经发布,在此版本中,我们已经完成了工程数据管理等基础数据管理功能,并提供了初步的工程数据访问接口。欢迎试用并提出宝贵的意见和建议。

当前版本还不是完整版本,缺少相应的算法工具,我们正在紧张的开发中,如果您有任何建议,欢迎反馈给我们。

💪新功能实现#

  1. 实现样本集的集中管理,开发者无需再自行开发数据管理相关功能,只需通过VisionFlow提供的接口即可完成整个数据集的管理;

  2. 完成流程图框架搭建,支持后续添加不同的相互独立的算法工具,VisionFlow能够自动根据项目实际情况将他们组织为互相配合的缺陷检测流程

  3. 流程图支持分支结构,之后我们将不断迁移原AIDI所拥有的各种算法工具以及添加新的算法工具,你可以通过VisionFlow非常方便的处理各种不同的检测需求,一个流程搞定所有检测任务

  4. 提供基础的集合计算库接口(C++),方便的计算出你所关心检测结果的各种属性

🧳内部修改#

  1. 规范研发管理流程和代码结构,提高代码可读性和可维护性;

  2. 严格的代码质量控制,通过规范的设计和详尽的测试,消除一切可能遇到的Bug;