KDP光学零件超精密车削加工误差的频谱特性与控制

王贵林

王贵林. KDP光学零件超精密车削加工误差的频谱特性与控制[J]. 应用光学, 2017, 38(2): 159-164. DOI: 10.5768/JAO201738.0201002
引用本文: 王贵林. KDP光学零件超精密车削加工误差的频谱特性与控制[J]. 应用光学, 2017, 38(2): 159-164. DOI: 10.5768/JAO201738.0201002
Wang Guilin. Spectral characteristics and control of machining errors of KDP optical elements in ultra-precision turning[J]. Journal of Applied Optics, 2017, 38(2): 159-164. DOI: 10.5768/JAO201738.0201002
Citation: Wang Guilin. Spectral characteristics and control of machining errors of KDP optical elements in ultra-precision turning[J]. Journal of Applied Optics, 2017, 38(2): 159-164. DOI: 10.5768/JAO201738.0201002

KDP光学零件超精密车削加工误差的频谱特性与控制

基金项目: 

国家自然科学基金 51475466

详细信息
    作者简介:

    王贵林(1974-),男,湖北荆州人,副教授,工学博士,主要从事超精密加工、先进光学制造与评价等领域的研究工作。E-mail:guilin74811@sina.com

  • 中图分类号: TN205; TH161.1

Spectral characteristics and control of machining errors of KDP optical elements in ultra-precision turning

  • 摘要: 超精密车削技术适于加工KDP(磷酸二氢钾)等频率转换类型的强光光学零件,但车削表面存在明显的加工纹理,导致抗激光损伤阈值降低。以加工表面误差幅值及其频谱分布为对象,分析了KDP光学零件超精密车削的加工特征和误差形态,采用功率谱密度(PSD)评价方法研究了工艺参数与误差频谱的内在关系,结果表明:不同进给速度及主轴转速将使螺旋形刀痕的间距发生变化,进而影响KDP表面误差的频率成分;切削深度虽然对误差频谱影响很小,但会改变PSD的幅值;当主轴转速高于500 r/min、进给速度小于2 mm/min、切削深度小于2 μm时能够加工出rms值优于20 nm的KDP面形。在此基础上,以典型KDP光学零件加工为例,通过超精密补偿车削方法将低频误差的PSD控制在300 nm2·mm以内,中高频误差的PSD控制到国家点火装置(NIF)标准线以下,满足强光系统的工作要求。
    Abstract: Ultra-precision turning technology is suitable for machining KDP optical elements which are used as frequency conversion unit in high-power laser system, but stripes are easy to come into being in machining process, and this will result in reduction of laser induced damage threshold. Taking magnitude and spectrum distribution of machining errors as researching object, machining features and error morphology of KDP elements are analyzed after ultra-precision turning in this paper, and correlation between error spectrum and machining parameters is studied based on power spectral density (PSD). Results show that feeding rate and spindle speed will change distance between spiral ripples and affect error spectrums of KDP machining surface, cutting depth has hardly any influence on spectrum of errors, but it will change magnitude of PSD. KDP surface can be accurately manufactured with rms value is smaller than 20nm when spindle speed is more than 500r/min, feeding rate is less than 2mm/min and cutting depth is less than 2 μm. According to a typical KDP element, PSD of low frequency errors is controlled within 300 nm2·mm by using ultra-precision compensating turning method, PSD of mid-to-high frequency errors is under "Not-to-Exceed" line applied in national ignition facility, and working requirements for high-power laser system are satisfied on the whole.
  • 英伟达TensorRT是一种高性能神经网络推理(Inference)引擎,是一个标准C++库。TensorRT只能用来做Inference(推理),不能用来进行训练,用于在生产环境中部署深度学习应用程序[1]。应用领域包括图像分类、分割和目标检测等,可提供最大的推理吞吐量和效率。TensorRT需要CUDA(compute unified device architecture)的支持,包含一个为优化生产环境中部署的深度学习模型而创建的库,可获取经过训练的神经网络(通常使用32位或16位数据),并针对降低精度的INT8运算来优化这些网络。借助CUDA的可编程性,TensorRT将能够应对深度神经网络日益多样化、复杂化的趋势。TensorRT在不断的改进过程中,在保证软件精度的同时,自动优化训练过的神经网络,不断提高速度。TensorRT能够支持Caffe等主流深度学习框架[2-3]

    本文实现了一个利用TensorRT执行智能视频分析的典型应用,演示了使用片上解码器进行解码,使用片上转换器进行视频缩放,利用TensorRT执行对象标识,利用OpenGL2和XWindow-11进行渲染,并在标识的对象周围生成包围框。此外,还使用视频转换器函数进行各种格式转换。使用EGLImage来演示缓冲区共享和图像显示。图1展示了使用TensorRT的流程细节[4-5]

    图  1  TensorRT处理流程
    Figure  1.  TensorRT processing flow

    本文例程将本地存储的H.264视频文件进行解码、格式转换和渲染,为了使流程清晰,便于管控,定义context_t结构管理视频处理全部资源。如表1所示成员主要包括一个解码器类、一个转换器类、一个渲染器类、一个数据指针。解码器类NvVideoDecoder封装了用于视频解码的多媒体API函数,用于从H.264视频文件解码压缩的视频。转换器类NvVideoConverter封装了视频转换的相关函数,包括色彩空间变换、尺度变换以及软硬件缓存空间的变换。渲染器类NvEglRenderer类封装了图像渲染的相关函数以及XWindow-11以及OpenGL2的部分函数,使用EGL和OpenGL ES 2.0进行呈现。渲染器需要缓冲区的文件描述符(FD)作为输入,创建自己的X窗口。渲染速率(以帧/s为单位),窗口的宽度、高度、水平偏移量和垂直偏移量都是可配置的。所有EGL调用只能通过一个线程进行。该类在内部创建一个线程,该线程执行所有EGL/GL初始化,从FD获取EGLImage对象,然后反初始化所有EGL/GL结构[6-9]

    表  1  Context_t结构主要成员
    Table  1.  Main members of Context_t structure
    成员描述
    NvVideoDecoder包含视频解码相关的成员和函数
    NvVideoConverter包含视频格式转换相关的成员和函数
    NvEglRenderer包含EGL显示渲染相关函数
    EGLImageKHREGLImage图像数据指针,用于CUDA处理,这个类型来源于EGL开源库
    下载: 导出CSV 
    | 显示表格

    英伟达提供的TRT_Context类包含一系列接口来加载Caffe模型并执行推理。表2描述了本示例中使用的关键TRT_Context成员。本文中使用buildTrtContext实现Caffe模型到TensorRT模型转换,它的输入参数包括caffe网络结构文件和模型参数文件。实际上也可借助转换工具实现Caffe模型到gie模型的转换。TRT_Context:: getNumTrtInstances用于获取加速上下文的实例。TRT_Context::doInference用转换好的模型利用TensorRT进行加速推理。此外,TRT_Context还实现了一些模型控制和剪裁的一些函数接口[10-13]

    表  2  TRT_Context类主要成员
    Table  2.  Main members of TRT_Context class
    TRT_Context类成员描述
    TRT_Context::buildTrtContext构建Tensorrt上下文
    TRT_Context::getNumTrtInstances获取TRT_context 实例.
    TRT_Context::doInferenceTensorRT 推理接口
    下载: 导出CSV 
    | 显示表格

    主进程调用以上定义的类和结构实现整个处理流程,主要代码如下:

    TRT_Context g_trt_context;

    main(int argc, char *argv[])

    {

    //程序入口参数处理

    context_t ctx[CHANNEL_NUM];

    global_cfg cfg;

    char **argp;

    set_globalcfg_default(&cfg);

    argp = argv;

    parse_global(&cfg, argc, &argp);

    parse_csv_args(&ctx[0], &g_trt_context, argc-cfg.channel_num-1, argp);

    //设置g_trt_context参数

    g_trt_context.setModelIndex(TRT_MODEL);

    g_trt_context.buildTrtContext(cfg.deployfile, cfg.modelfile, true);

    pthread_create(&TRT_Thread_handle, NULL, trt_thread, NULL);

    // 获取EGL默认值

    egl_display = eglGetDisplay(EGL_DEFAULT_DISPLAY);

    // EGL 初始化

    eglInitialize(egl_display, NULL, NULL)

    for (iterator = 0; iterator < cfg.channel_num; iterator++)

    {

    int ret = 0;

    sem_init(&(ctx[iterator].dec_run_sem), 0, 0);

    set_defaults(&ctx[iterator]);

    char decname[512];

    sprintf(decname, "dec%d", iterator);

    ctx[iterator].channel = iterator;

    ctx[iterator].in_file_path = cfg.in_file_path[iterator];

    ctx[iterator].nvosd_context = nvosd_create_context();

    //创建解码器

    ctx[iterator].dec = NvVideoDecoder::createVideoDecoder(decname);

    //设置输出面板格式

    ctx[iterator].dec->setOutputPlaneFormat(ctx[iterator].decoder_pixfmt, CHUNK_SIZE);

    //映射输出面板缓存

    ctx[iterator].dec->output_plane.setupPlane(V4L2_MEMORY_MMAP, 10, true, false);

    //创建渲染线程

    pthread_create(&ctx[iterator].render_feed_handle, NULL, render_thread, &ctx[iterator]);

    char convname[512];

    // 创建BL到 PL转换器

    ctx[iterator].conv = NvVideoConverter::createVideoConverter(convname);

    ctx[iterator].conv->output_plane.setDQThreadCallback(conv_output_dqbuf_thread_callback);

    ctx[iterator].conv->capture_plane.setDQThreadCallback(conv_capture_dqbuf_thread_callback);

    if (ctx[iterator].cpu_occupation_option!= PARSER)

    pthread_create(&ctx[iterator].dec_capture_loop, NULL, dec_capture_loop_fcn, &ctx[iterator]);

    pthread_create(&ctx[iterator].dec_feed_handle, NULL, dec_feed_loop_fcn, &ctx[iterator]);

    //等待解码器获取EOS

    sem_wait(&(ctx[iterator].dec_run_sem));

    //向渲染器发送命令

    ctx[iterator].stop_render = 1;

    pthread_cond_broadcast(&ctx[iterator].render_cond);

    pthread_join(ctx[iterator].render_feed_handle, NULL);

    }

    }

    在这个示例中,对象检测仅限于在960×540分辨率的视频流中识别汽车。该网络基于GoogleNet。推理是在逐帧的基础上进行的,不涉及任何对象跟踪,展示了如何使用TensorRT快速构建计算管道。示例使用训练过的GoogleNet网络,它是用NVIDIA深度学习GPU训练系统(DIGITS)训练的。训练是大约3 000帧从1.5 m(5英尺)~3 m(10英尺)的高度拍摄的。根据输入的视频样本,预计会有不同程度的检测精度。运行程序对H.264本地视频进行测试,TensorRT能够成功运行,实时识别目标图像[14-15],测试效果如图2所示。

    其运行性能如下:

    FP32 run:400 batches of size 100 starting at 100

    ........................................

    Top1: 0.9904, Top5: 1

    Processing 40000 images averaged 0.00157702 ms/image and 0.157702 ms/batch.

    FP16 run:400 batches of size 100 starting at 100

    Engine could not be created at this precision

    INT8 run:400 batches of size 100 starting at 100

    ........................................

    Top1: 0.9908, Top5: 1

    Processing 40000 images averaged 0.00122583 ms/image and 0.122583 ms/batch.

    图  2  程序测试效果
    Figure  2.  Program test effect

    可以看到这个例子中采用int8量化时,提速可以达到20%以上,对于大计算量的应用,提速效果更好。推理(Inference)可以使用低精度的技术,训练的时候因为要保证前后向传播,每次梯度的更新是很微小的,这个时候需要相对较高的精度,一般来说需要float型,如FP32,32位的浮点型来处理数据。但是在推理的时候,对精度的要求没有那么高,很多研究表明可以用低精度,如半长(16字节)的FP16,也可以用8位的整型INT8来做推理,结果没有特别大的精度损失。低精度计算的好处是一方面可以减少计算量,原来计算32位的单元处理FP16的时候,理论上可以达到2倍的速度,处理INT8的时候理论上可以达到4倍的速度。另一方面是模型需要的空间减少,不管是权值的存储还是中间值的存储,应用更低的精度,模型大小会相应减小。

    TensorRT的运行效果与GPU的硬件性能和采用的网络结构直接相关,量化标准仅仅是其中一个影响因素,不同的硬件和网络结构也会带来不同程度的速度提升。为了对比上述例子的加速性能,图3展示了采用GPU卡V100对ResNet网络进行TensorRT加速的实际效果。

    图  3  V100卡+ResNet网络使用TensorRT推理的效果
    Figure  3.  Effect of TensorRT reasoning in V100 card+ResNet network

    这是一个比较极端的例子,该例中使用的是先进的GPU卡V100,V100添加了专门针对深度学习优化的TensorCore,TensorCore可以完成4×4矩阵的半精度乘法,也就是可以完成一个4×4的FP16矩阵和另外一个4×4的FP16矩阵相乘,当然可以再加一个矩阵(FP16 或FP32),得到一个FP32或者FP16的矩阵的过程。TensorCore在V100上理论峰值可以达到120 Tflops。如果只是用CPU来做推理,首先它的吞吐只能达到140,也就是说每秒只能处理140张图片,同时整个处理过程需要有14 ms的延迟,也就是说用户提交请求后,推理阶段最快需要14 ms才能返回结果;如果使用V100,在TensorFlow中去做推理,大概是6.67 ms的延时,但是吞吐只能达到305;如果使用V100加TensorRT,在保证延迟不变的情况下,吞吐可以提高15倍,高达5 700张图片帧/s。可以看到随着GPU性能的提升,以及网络结构的复杂化,TensorRT对推理速度的提升非常明显,对于大数据应用是一个很好的选择。目标英伟达公司已经将TensorRT项目部分开源,这势必会使TensorRT得到更好的推广应用。

  • 图  1   超精密车削加工KDP光学零件

    Figure  1.   Ultra-precision turning of KDP optical element

    图  2   KDP光学零件超精密车削后的测量面形

    Figure  2.   Measuring surface of a KDP optical element after ultra-precision turning

    图  3   KDP光学零件超精密车削面形的PSD

    Figure  3.   PSD of KDP surface after ultra-precision turning

    图  4   不同进给速度对应的超精密车削加工面形

    Figure  4.   Ultra-precision turning surface in different feeding rates

    图  5   不同进给速度对应的超精密车削表面PSD曲线

    Figure  5.   PSD of ultra-precision turning surface in different feeding rates

    图  6   不同主轴转速对应的超精密车削表面PSD曲线

    Figure  6.   PSD of ultra-precision turning surface in different spindle speeds

    图  7   不同切削深度对应的超精密车削表面PSD曲线

    Figure  7.   PSD of ultra-precision turning surface in different cutting depths

    图  8   典型KDP光学零件超精密车削后的测量面形

    Figure  8.   Measuring surface of typical KDP element after ultra-precision turning

    图  9   典型KDP光学零件超精密车削误差的PSD曲线

    Figure  9.   PSD carve of surface error for typical KDP element after ultra-precision turning

  • [1]

    Hawley-Fedder R, Geraghty P, Locke S, et al. NIF pockels cell and frequency conversion crystals[J]. SPIE, 2004, 5341: 121-126. http://d.old.wanfangdata.com.cn/NSTLHY/NSTL_HYCC026387386/

    [2]

    Hu H, Dai Y F, Peng X Q.Research on reducing the edge effect in magnetorheological finishing[J]. Applied Optics, 2011, 50(9): 1220-1226. doi: 10.1364/AO.50.001220

    [3]

    Tie G P, Dai Y F, Guan C L, et al. Research on full-aperture ductile cutting of KDP crystals using spiral turning technique[J]. Journal of Materials Processing Technology, 2013, 213(12): 2137-2144. doi: 10.1016/j.jmatprotec.2013.06.006

    [4]

    Meiling H, Banine V, Kürz P, et al. The EUV program at ASML: an update[J]. SPIE, 2003, 5037: 24-35. http://cn.bing.com/academic/profile?id=e9d799c8868281ca1fb26698de0f10d5&encoded=0&v=paper_preview&mkt=zh-cn

    [5]

    ISO 10110-8. Annex B: Relationship between surface texture and scattering characteristic of textured surfaces[S]. Switzerland: International Organization for Standardization, 2001.

    [6] 李富仁.强光光学零件的中高频误差研究[D].长沙: 国防科技大学, 2013.

    Li Furen. Study on medium-high frequency errors of optical elements used in high-power system[D]. Changsha: National University of Defense Technology, 2013.

    [7]

    Wang G L, Dai Y F, Zheng Z W, et al. Machining characteristics of complex surfaces using fast tool servo system[J]. Machining Science and Technology, 2011, 15(3): 324-337. doi: 10.1080/10910344.2011.600199

    [8]

    Xie N, Guo Y, Huang W Q, et al. Improvement of near-field beam quality for high-power laser pulses by a two-photon-absorption organic compound[J]. Optik, 2013, 124(1): 60-63. doi: 10.1016/j.ijleo.2011.11.041

    [9]

    Cheung C F, Lee W B. A multi-spectrum analysis of surface roughness formation in ultra-precision machining[J]. Precision Engineering, 2000, 24(1): 77-87. doi: 10.1016/S0141-6359(99)00033-1

    [10]

    Mackinnon A J, Niemann C, Piston K, et al. Qualification of a near backscattering imaging system on the national ignition facility[J]. Rev. Sci. Instrum., 2006, 77(10): 10E529-10E529-4. doi: 10.1063/1.2336466

  • 期刊类型引用(24)

    1. 陈俊杰,洪心皓. 面向嵌入式平台的智能巡视点位校正系统研究. 福建电脑. 2025(02): 88-92 . 百度学术
    2. 孙晨,邓宽. 基于嵌入式AI设备的光伏电池片缺陷智能检测系统. 电子设计工程. 2024(04): 129-134 . 百度学术
    3. 杨海斌. 基于改进YOLOv5S算法的铝型材表面缺陷检测. 电脑知识与技术. 2024(06): 47-51 . 百度学术
    4. 陈炀,周雁,王庆娟,张馨元,谌业恒. 融合图像处理技术的红树林鸟类鸣声识别算法. 现代计算机. 2024(21): 38-42+48 . 百度学术
    5. 程强,张友兵,周奎. 基于改进YOLOX的动态视觉SLAM方法. 电子测量技术. 2024(23): 123-133 . 百度学术
    6. 马泉,张欣怡,李洪波,石广洋,郝斌,张飞. 胜利煤矿智能环境监测系统研究与设计. 中国煤炭. 2023(01): 77-82 . 百度学术
    7. 郭奕裕,周箩鱼. 安全帽佩戴检测网络模型的轻量化设计. 计算机工程. 2023(04): 312-320 . 百度学术
    8. 胡天鑫,邓超,马俊杰,刘旺. 方程式赛车ROS平台下基于TensorRT的YOLOv5算法改进. 农业装备与车辆工程. 2023(05): 14-19 . 百度学术
    9. 程绳,葛雄,肖非,朱传刚,吴军,肖海涛,李嗣,楚江平,袁雨薇. 基于多任务学习的输电线路小金具缺失推理加速算法. 计算机测量与控制. 2023(07): 251-257 . 百度学术
    10. 顾成伟,丁勇,李登华. 基于计算机视觉的工业厂区人员安全警戒系统. 计算机与现代化. 2023(09): 20-26 . 百度学术
    11. 张宇昂,李琦. 基于Jetson TX2的路面病害检测应用. 信息技术与信息化. 2023(09): 112-115 . 百度学术
    12. 刘一呈,赵建敏,赵宇飞. 基于机器视觉和TX2的牛生长参数测量系统设计. 信息技术与信息化. 2023(10): 13-18 . 百度学术
    13. 范亚龙,李琦,于令君. 基于深度学习的冶炼工人安全着装监测系统. 科学技术与工程. 2023(31): 13626-13631 . 百度学术
    14. 张宇昂,李琦,薛芳芳,于令君. 基于Jetson TX2的路面裂缝检测系统设计. 公路. 2023(12): 337-344 . 百度学术
    15. 郭智超,徐君明,刘爱东. 基于嵌入式平台与优化YOLOv3的航拍目标检测方法. 兵工自动化. 2022(03): 10-15+20 . 百度学术
    16. 徐丁天,李海峰,徐良. 基于人眼跟踪的360°悬浮显示系统及其畸变校正方法. 光学学报. 2022(09): 232-240 . 百度学术
    17. 贾云飞,郑红木,刘闪亮. 基于YOLOv5s的金属制品表面缺陷的轻量化算法研究. 郑州大学学报(工学版). 2022(05): 31-38 . 百度学术
    18. 何曦,李良福,王娇颖,王洁,卢晓燕,钱钧,杨一洲,刘培桢. 基于NPU的实时深度学习跟踪算法实现. 应用光学. 2022(04): 682-692 . 本站查看
    19. 王昀,刘泓,叶珺,刘亚璇,吴小莉. 一种基于YoloV4-tiny算法的智能电子秤设计. 长江信息通信. 2022(10): 37-41 . 百度学术
    20. 刘之禹,李述,王英鹤. 基于ZYNQ的深度学习卷积神经网络加速平台设计. 计算机测量与控制. 2022(12): 264-269 . 百度学术
    21. 刘智文,刘全,宋玮,赵天成. 基于共享主干网络的人物属性识别推理加速算法. 智能物联技术. 2022(06): 4-10 . 百度学术
    22. 钟昊,陈博,李占文,杨永成. 面向铁路安全的智能视觉PaaS平台研究. 中国铁路. 2021(08): 128-132 . 百度学术
    23. 李良熹,荣进国. 基于深度学习的智能烘培类商品识别系统研究. 信息与电脑(理论版). 2021(13): 156-158 . 百度学术
    24. 柴荣轩,赵津发,吴航,张文昌,张广,陈炜. 基于IPPG的非接触式血氧饱和度检测技术研究. 医疗卫生装备. 2021(12): 23-28 . 百度学术

    其他类型引用(79)

图(9)
计量
  • 文章访问数:  943
  • HTML全文浏览量:  232
  • PDF下载量:  101
  • 被引次数: 103
出版历程
  • 收稿日期:  2016-08-13
  • 修回日期:  2016-10-08
  • 刊出日期:  2017-02-28

目录

/

返回文章
返回