目录
7、支持 360 度镜头(HYPERCENTER LENSES)
1、深度学习
借助于HALCON Progress 18.05软件,用户可以在CPU上执行深度学习推理,例如,将已训练完毕的卷积神经网络(CNN)应用于新数据的分类。HALCON Progress 18.05的CPU深度学习推理方法已针对Intel兼容X86处理器进行了高度优化,这使得一个标准Intel CPU的分类速度可以与大多数中档的GPU媲美。
相比于上一版本17.12,HALCON Progress 18.05 支持CPU分类,HALCON Progress 18.05取消了对专用GPU的需求(即:无需GPU也可以执行深度学习)极大的增加了操作的灵活性。例如对于没有搭载高性能GPU的工业PC现在也可以轻松地用于深度学习的分类。
此外,HALCON Progress 18.05 支持任意大小图片进行训练和分类,用户可以调整自己的深度学习分类器中输入图像的大小。这有利于在网络中对较小的相关信息进行训练,从而达到提升网络性能的效果。例如,一副大图像中的一个非常小的缺陷,如果较小的图像对于给定的检测目标来说信息已足够,那么减小输入图像的大小加快分类的速度。
不同输入图像大小对分类速度的影响程度:
如果要通过HALCON Progress 18.05搭建自己需要的深度学习解决方案,可以依据下图实现深度学习应用流程:
对应HALCON Progress 18.05中深度学习算子如下:
根据这个流程我们可以很快的搭建基于HALCON Progress 18.05的深度学习解决方案,更详细的halcon代码信息,请参考halcon安装自带的例程classiify_fruit_deep_learning.hdev或者classify_pill_defects_deep_learning.hdev。
使用HALCON Progress 18.05深度学习注意事项:
-
每类数据建议至少提供500个样本图像
-
相同类别的样本如差异较大,需每种情况提供500以上样本
-
训练时每类的样本数目尽量相同,有助于提高分类正确率,有助于提高再训练的处理效果
-
确保每类样本包括所有的场景
-
训练效果不佳时可考虑增大样本
-
至少要提供两类样本
2、改进的条形码阅读器
HALCON Progress 18.05 优化了边缘检测功能,提高了对线宽非常小的以及极为模糊的条形码的读取能力。此外,还会根据最新版的 ISO/IEC 15416 标准对条码质量进行评估。可参考halcon例程barcode_status.hdev。
3、增强的偏折法
HALCON中已经集成了大量的三维检测技术,如多目立体视觉,激光三角测量,光度立体等。但是这些检测方法都不适合表面反光的物体。针对此类应用HALCON17.12提供名为偏折法的技术,通过显示器将已知条纹投影到被测物表面。相机从侧面接收由被测物反射后的图像,HALCON可以通过这些图案对被测物进行压痕和划痕检测。
HALCON Progress 17.12 版本中引入的偏折法检测功能在 HALCON Progress 18.05 版本中包含了一种新的图案类型,可提高误差检测的精度和鲁棒性,尤其是在局部带有镜面反射的物体表面,例如对于涂过漆的金属板,检测结果相比于上一版本效果更佳。参考例程:structured_light_partially_specular.hdev、structured_light_tap_collar.hdev。
缺陷图像:
4、改进的 3D 功能
HALCON Progress 17.12为我们提供了一种新的方法,将多个 3D 点云融合到一个均匀的重采样点云表面。这种新方法能够将各种 3D 传感器的数据结合起来,即使是不同的类型,如:立体相机、TOF 相机以及光栅投影。由于标定的误差和噪声,很难得到精确的数据。此融合算法会抑制离群值,点云将在保留边缘信息的情况下被平滑,补洞,生成等距采样的网格化表面。它可以用于创建拥有更多细节的表面,可以应用于逆向工程。
HALCON Progress 18.05 对基于表面的 3D 匹配功能进行了优化。这样可以更可靠地确定 3D 空间中目标的位置,使得 3D 应用程序的开发更加容易。
通过设置匹配模型中对称轴或者对称的姿态信息,可以更好更快的确定3D目标位置。如下图所示:(halcon代码参考例程find_symmetric_3d_objects.hdev)
通过在匹配模型中限制3D目标旋转范围,可以更好的定位出符合我们特定角度要求的3D目标物。详细的halcon代码可以参考例程find_surface_model_restrict_rotation_range.hdev。
此外,HALCON Progress 18.05 现在还包含一种新的帮助程序,允许开发人员快速检查和调试基于表面的匹配应用程序的参数和结果。新的内置函数实现了3D表面匹配的可视化调试过程,使其更加简单易用。详细的halcon代码可以参考例程debug_find_surface_model.hdev。
5、自动句柄清理
HALCON Progress 18.05 可以自动清理不再需要的句柄,使得句柄的应用更加得心应手。这样大大降低了内存泄漏的风险,因为用户不再需要手动释放未使用的内存。通过这种方式,编写“安全代码”变得更加容易。
6、改进的 HDEVENGINE
HALCON 17.12 版本中包含了新的 HDevelop 库导出功能,在 C++ 中调用 HDevelop 函数就像调用其他任何 C++ 函数一样简单直观。这个新的库导出功能也会生成 CMake 工程,该工程可以很容易的配置输出许多主流 IDE(如:Visual Studio)的工程文件。这些功能将会大大简化我们的集成工作。
HALCON Progress 18.05 对 HDevelop 库导出功能进行了扩展:开发人员可以通过导出的打包文件(exported wrapper)在C++ 或者 .NET 中调用 HDevelop 程序,就像调用原生函数一样简单直观,显著提高了开发效率。
7、支持 360 度镜头
(HYPERCENTER LENSES)
这是 HALCON 内的一种新的相机模型,它可以校正通过360 度镜头拍摄带来的图像失真。这种镜头可以同时对一个物体的多个侧面进行成像,从而得到测试物体的会聚视图。借助这项技术,用户仅需一个相机系统即可进行检测和识别任务,例如检测圆柱形物体。详细halcon代码可参考calibrate_cameras_hypercentric.hdev。