留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

用于实时目标检测的高速可编程视觉芯片

李鸿龙 杨杰 张忠星 罗迁 于双铭 刘力源 吴南健

李鸿龙, 杨杰, 张忠星, 罗迁, 于双铭, 刘力源, 吴南健. 用于实时目标检测的高速可编程视觉芯片[J]. 红外与激光工程, 2020, 49(5): 20190553. doi: 10.3788/IRLA20190553
引用本文: 李鸿龙, 杨杰, 张忠星, 罗迁, 于双铭, 刘力源, 吴南健. 用于实时目标检测的高速可编程视觉芯片[J]. 红外与激光工程, 2020, 49(5): 20190553. doi: 10.3788/IRLA20190553
Li Honglong, Yang Jie, Zhang Zhongxing, Luo Qian, Yu Shuangming, Liu Liyuan, Wu Nanjian. A high speed programmable vision chip for real-time object detection[J]. Infrared and Laser Engineering, 2020, 49(5): 20190553. doi: 10.3788/IRLA20190553
Citation: Li Honglong, Yang Jie, Zhang Zhongxing, Luo Qian, Yu Shuangming, Liu Liyuan, Wu Nanjian. A high speed programmable vision chip for real-time object detection[J]. Infrared and Laser Engineering, 2020, 49(5): 20190553. doi: 10.3788/IRLA20190553

用于实时目标检测的高速可编程视觉芯片

doi: 10.3788/IRLA20190553
基金项目: 国家自然科学基金(61434004,61234003,61504141,61704167);北京市重点研发计划(Z181100008918009);中国科学院青年创新促进会计划(2016107);中国科学院战略性先导科技专项(XDB32050202)
详细信息
    作者简介:

    李鸿龙(1990-),男,博士生,主要从事高速视觉片上系统芯片方面的研究。Email:lihonglong@semi.ac.cn

    吴南健(1961-),男,研究员,博士生导师,博士,主要从事高速图像传感器、高速视觉片上系统芯片设计和图像并行处理片上系统芯片等方面的研究。Email:nanjian@red.semi.ac.cn

  • 中图分类号: TN492

A high speed programmable vision chip for real-time object detection

  • 摘要: 视觉芯片是一种高速、低功耗的智能视觉处理系统芯片,在生产生活中有广阔的应用前景。文中提出了一种新型的可编程视觉芯片架构,该架构的设计考虑了传统计算机视觉算法和卷积神经网络的运算特点,使其能够同时高效地支持这两类算法。该视觉芯片集成了可编程的多层次并行处理阵列、高速数据传输通路和系统控制模块,并采用65 nm标准CMOS工艺制程流片。测试结果表明:视觉芯片在200 MHz系统时钟下达到413GOPS的峰值运算性能,能够高效地完成包括完成人脸识别、目标检测等多种计算机视觉和人工智能算法。该视觉芯片在可编程度、运算性能以及能耗效率等方面都大大超越了其他视觉芯片。
  • 图  1  运算模式分析

    Figure  1.  Operation mode analysis

    图  2  视觉芯片整体架构

    Figure  2.  Vision chip architecture

    图  3  块处理单元电路图

    Figure  3.  Circuit of patch processing unit

    图  4  PE单元电路图

    Figure  4.  PE circuit schematic

    图  5  存储器的读写模式

    Figure  5.  Load/store pattern of memory

    图  6  多层次并行运算

    Figure  6.  Multilevel parallel operation

    图  7  视觉芯片显微照片

    Figure  7.  Microphotograph of the vision chip

    图  8  人脸识别算法和测试结果

    Figure  8.  Face detection algorithm and test result

    图  9  CNN图像分类

    Figure  9.  CNN image classification

    图  10  遥感图像目标检测

    Figure  10.  Target detection in remote sensing image

    表  1  视觉芯片参数

    Table  1.   Vision chip parameters

    Technology65 nm 1P9M
    Size4 mm×6 mm
    Core frequency200 MHz
    Processing unit1+16+512
    Operand bit-width2×8-bit fixed / 16-bit fixed
    Peak performance413GOPS@8b / 208GOPS@16b
    Peak power1.07 W
    I/O bandwidth3.2 Gbps (duplex)
    下载: 导出CSV

    表  2  与其他相关工作的对比

    Table  2.   Comparison with related work

    ReferencesThis workRef [5]Ref [12]Ref [13]Ref [14]
    Technology/nm65 180 13065 65
    Core area/mm24×69.8×8.4(include sensor)1874×44×4
    Frequency/MHz2005080200250
    On-chip SRAM320 kB32 kB236 kB192 kB282 kB
    Bit-width(fixed)1/8/161~1681616
    Traditional computer visionFilter, corner detection
    Histogram
    SVM/Adaboost
    Filter, corner detection HistogramFilter(enhance, morphology)N/AN/A
    Convolution neural networkConv
    Pooling
    FC
    SOM neural(FC)ConvConvConv
    Pooling
    FC
    Peak performance413GOPS@8b 208GOPS@16b14GOPS@8b61GOPS@8b67GOPS@16b32GOPS@16b
    Energy-efficiency (GOPS/W)194 @16b44 @8b(processor array)85 @8b166 @16b208 @16b
    下载: 导出CSV
  • [1] Sonka M, Václav Hlavác, Boyle R. Image Processing, Analysis and Machine Vision[M]. New York: Cengage Learning, 2014.
    [2] Ishikawa M, Ogawa K, Komuro T, et al. A CMOS vision chip with SIMD processing element array for 1 ms image processing[C]//IEEE Int Solid-State Circuits Conf, 1999: 206-207.
    [3] Miao W, Lin Q, Zhang W, et al. A programmable SIMD vision chip for real-time vision applications [J]. IEEE Journal of Solid-State Circuits, 2008, 43(6): 1470−1479. doi:  10.1109/JSSC.2008.923621
    [4] Zhang W, Fu Q, Wu N. A programmable vision chip based on multiple levels of parallel processors [J]. IEEE Journal of Solid-State Circuits, 2011, 46(9): 2132−2147. doi:  10.1109/JSSC.2011.2158024
    [5] Shi C, Yang J, Han Y, et al. A 1000 fps vision chip based on a dynamically reconfigurable hybrid architecture comprising a PE array and self-organizing map neural network[C]//2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC), 2014: 128-129.
    [6] Yamazaki T, Katayama H, Uehara S, et al. 4.9 A 1 ms high-speed vision chip with 3D-stacked 140GOPS column-parallel PEs for spatio-temporal image processing[C]//2017 IEEE International Solid- State Circuits Conference (ISSCC), 2017: 82-83.
    [7] Yang J, Yang Y, Chen Z, et al. A heterogeneous parallel processor for high-speed vision chip [J]. IEEE Transactions on Circuits and Systems for Video Technology, 2018, 28(3): 746−758. doi:  10.1109/TCSVT.2016.2618753
    [8] Krizhevsky A, Sutskever I, Hinton G E. Imagenet classification with deep convolutional neural networks[C]//Advances in Neural Information Processing Systems. 2012: 1097-1105.
    [9] Sze V, Chen Y, Yang T, et al. Efficient processing of deep neural networks: A tutorial and survey [J]. Proceedings of the IEEE, 2017, 105(12): 2295−2329. doi:  10.1109/JPROC.2017.2761740
    [10] Chen T, Du Z, Sun N, et al. Diannao: A small-footprint high-throughput accelerator for ubiquitous machine-learning [J]. ACM Sigplan Notices, 2014, 49(4): 269−284.
    [11] Liu D, Chen T, Liu S, et al. Pudiannao: A polyvalent machine learning accelerator[C]//ACM SIGARCH Computer Architecture News. ACM, 2015, 43(1): 369-381.
    [12] Millet L, Chevobbe S, Andriamisaina C, et al. A 5500FPS 85GOPS/W 3D stacked BSI vision chip based on parallel in-focal-plane acquisition and processing[C]//2018 IEEE Symposium on VLSI Circuits. IEEE, 2018: 245-246.
    [13] Chen Y, Krishna T, Emer J, et al. 14.5 Eyeriss: An energy-efficient reconfigurable accelerator for deep convolutional neural networks[C]//2016 IEEE International Solid-State Circuits Conference (ISSCC). IEEE, 2016: 262-263.
    [14] Jo J, Cha S, Rho D, et al. DSIP: A scalable inference accelerator for convolutional neural networks [J]. IEEE Journal of Solid-State Circuits, 2017, 53(2): 605−618.
  • [1] 张馨怡, 陈振林.  一种红外目标模拟器的大气传输校准方法研究 . 红外与激光工程, 2023, 52(3): 20220378-1-20220378-11. doi: 10.3788/IRLA20220378
    [2] 陆建华.  融合CNN和SRC决策的SAR图像目标识别方法 . 红外与激光工程, 2022, 51(3): 20210421-1-20210421-7. doi: 10.3788/IRLA20210421
    [3] 刘瀚霖, 辛璟焘, 庄炜, 夏嘉斌, 祝连庆.  基于卷积神经网络的混叠光谱解调方法 . 红外与激光工程, 2022, 51(5): 20210419-1-20210419-9. doi: 10.3788/IRLA20210419
    [4] 庄子波, 邱岳恒, 林家泉, 宋德龙.  基于卷积神经网络的激光雷达湍流预警 . 红外与激光工程, 2022, 51(4): 20210320-1-20210320-10. doi: 10.3788/IRLA20210320
    [5] 宦克为, 李向阳, 曹宇彤, 陈笑.  卷积神经网络结合NSST的红外与可见光图像融合 . 红外与激光工程, 2022, 51(3): 20210139-1-20210139-8. doi: 10.3788/IRLA20210139
    [6] 张津浦, 王岳环.  融合检测技术的孪生网络跟踪算法综述 . 红外与激光工程, 2022, 51(10): 20220042-1-20220042-14. doi: 10.3788/IRLA20220042
    [7] 齐悦, 董云云, 王溢琴.  基于汇聚级联卷积神经网络的旋转人脸检测方法 . 红外与激光工程, 2022, 51(12): 20220176-1-20220176-8. doi: 10.3788/IRLA20220176
    [8] 李保华, 王海星.  基于增强卷积神经网络的尺度不变人脸检测方法 . 红外与激光工程, 2022, 51(7): 20210586-1-20210586-8. doi: 10.3788/IRLA20210586
    [9] 高泽宇, 李新阳, 叶红卫.  流场测速中基于深度卷积神经网络的光学畸变校正技术 . 红外与激光工程, 2020, 49(10): 20200267-1-20200267-10. doi: 10.3788/IRLA20200267
    [10] 薛珊, 张振, 吕琼莹, 曹国华, 毛逸维.  基于卷积神经网络的反无人机系统图像识别方法 . 红外与激光工程, 2020, 49(7): 20200154-1-20200154-8. doi: 10.3788/IRLA20200154
    [11] 陈明, 赵连飞, 苑立民, 徐峰, 韩默.  基于特征选择YOLOv3网络的红外图像绝缘子检测方法 . 红外与激光工程, 2020, 49(S2): 20200401-20200401. doi: 10.3788/IRLA20200401
    [12] 徐云飞, 张笃周, 王立, 华宝成.  非合作目标局部特征识别轻量化特征融合网络设计 . 红外与激光工程, 2020, 49(7): 20200170-1-20200170-7. doi: 10.3788/IRLA20200170
    [13] 谢冰, 段哲民, 郑宾, 殷云华.  基于迁移学习SAE的无人机目标识别算法研究 . 红外与激光工程, 2018, 47(6): 626001-0626001(7). doi: 10.3788/IRLA201847.0626001
    [14] 张国山, 张培崇, 王欣博.  基于多层次特征差异图的视觉场景识别 . 红外与激光工程, 2018, 47(2): 203004-0203004(9). doi: 10.3788/IRLA201847.0203004
    [15] 姚旺, 刘云鹏, 朱昌波.  基于人眼视觉特性的深度学习全参考图像质量评价方法 . 红外与激光工程, 2018, 47(7): 703004-0703004(8). doi: 10.3788/IRLA201847.0703004
    [16] 张腊梅, 陈泽茜, 邹斌.  基于3D卷积神经网络的PolSAR图像精细分类 . 红外与激光工程, 2018, 47(7): 703001-0703001(8). doi: 10.3788/IRLA201847.0703001
    [17] 王鑫, 王向军.  大视场双目视觉定位系统中多目标稀疏匹配 . 红外与激光工程, 2018, 47(7): 726001-0726001(6). doi: 10.3788/IRLA201847.0726001
    [18] 郭强, 芦晓红, 谢英红, 孙鹏.  基于深度谱卷积神经网络的高效视觉目标跟踪算法 . 红外与激光工程, 2018, 47(6): 626005-0626005(6). doi: 10.3788/IRLA201847.0626005
    [19] 彭志勇, 王向军, 卢进.  窗口热辐射下基于视觉显著性的红外目标检测方法 . 红外与激光工程, 2014, 43(6): 1772-1776.
    [20] 杨亚威, 李俊山, 杨威, 赵方舟.  利用稀疏化生物视觉特征的多类多视角目标检测方法 . 红外与激光工程, 2012, 41(1): 267-272.
  • 加载中
图(10) / 表(2)
计量
  • 文章访问数:  1558
  • HTML全文浏览量:  800
  • PDF下载量:  108
  • 被引次数: 0
出版历程
  • 收稿日期:  2020-02-05
  • 修回日期:  2020-03-25
  • 网络出版日期:  2020-04-29
  • 刊出日期:  2020-05-27

用于实时目标检测的高速可编程视觉芯片

doi: 10.3788/IRLA20190553
    作者简介:

    李鸿龙(1990-),男,博士生,主要从事高速视觉片上系统芯片方面的研究。Email:lihonglong@semi.ac.cn

    吴南健(1961-),男,研究员,博士生导师,博士,主要从事高速图像传感器、高速视觉片上系统芯片设计和图像并行处理片上系统芯片等方面的研究。Email:nanjian@red.semi.ac.cn

基金项目:  国家自然科学基金(61434004,61234003,61504141,61704167);北京市重点研发计划(Z181100008918009);中国科学院青年创新促进会计划(2016107);中国科学院战略性先导科技专项(XDB32050202)
  • 中图分类号: TN492

摘要: 视觉芯片是一种高速、低功耗的智能视觉处理系统芯片,在生产生活中有广阔的应用前景。文中提出了一种新型的可编程视觉芯片架构,该架构的设计考虑了传统计算机视觉算法和卷积神经网络的运算特点,使其能够同时高效地支持这两类算法。该视觉芯片集成了可编程的多层次并行处理阵列、高速数据传输通路和系统控制模块,并采用65 nm标准CMOS工艺制程流片。测试结果表明:视觉芯片在200 MHz系统时钟下达到413GOPS的峰值运算性能,能够高效地完成包括完成人脸识别、目标检测等多种计算机视觉和人工智能算法。该视觉芯片在可编程度、运算性能以及能耗效率等方面都大大超越了其他视觉芯片。

English Abstract

    • 计算机视觉已经广泛应用于机器人导航、工业产品检测、自动驾驶、安防视频监控等诸多领域[1]。快速准确地实现图像分类、目标识别和追踪是计算机视觉领域的重要研究方向和热点,也是很多应用的关键所在。视觉芯片就是一种能够在多种场景下完成智能识别、追踪的高性能、低功耗、低延时的新型片上系统[2]。视觉芯片能够模仿人类视觉系统,集成了图像传感和处理的功能,相比于传统的基于通用CPU、GPU或者基于云端服务器的视觉处理系统,这种更靠近传感器的视觉处理特别适用于各种对体积、功耗和成本有严格限制的微小型嵌入式边缘型计算应用场景。

      过去的几十年中,国内外报道了大量的视觉芯片研究工作。妙维等人报道了一种基于阵列型像素处理单元的视觉芯片,然而这种芯片只能完成简单的图像滤波、二值形态学处理任务[3]。张万成等人设计了集成多层次处理阵列的视觉芯片,能够完成低中高级不同复杂度的图像处理算法,但是识别速度无法满足实际应用的要求[4]。视觉芯片的架构设计跟随着算法和应用需求的发展而不断演变[3-7]。近年来,以卷积神经网络(Convolutional Neural Networks, CNN)为代表的深度学习算法在计算机视觉领域获得巨大的成功[8],图像分类、检测的性能明显超越传统基于人工选取特征的算法。目前的视觉芯片设计已经很难胜任深度神经网络的处理,比如最近石匆等人提出的动态可重构视觉芯片,只能完成简单的SOM神经网络分类[5- 6],Yamazaki等人设计的视觉芯片只能完成简单的卷积功能[7]。很显然,视觉芯片需要更加灵活的架构和电路设计以支持神经网络算法。深度神经网络算法存在着网络参数量大、运算量大和运算复杂等一系列的挑战,目前只有一些专门针对神经网络的加速器芯片可以完成神经网络所需的计算[9- 10]。这类芯片只聚焦于对乘加运算的加速,在架构上并不适用于完成图像滤波、角点检测、直方图统计等重要的传统图像处理算法。然而,在各种视觉系统中,尤其是靠近图像传感器的应用中,经典的图像算法仍然是至关重要且必不可少的一环。

      为了使视觉芯片具备神经网络计算能力,同时进一步提高其对各种传统视觉算法的支持,文中提出了一种新型的视觉芯片架构。该视觉芯片充分考虑了传统计算机视觉算法和卷积神经网络的计算特点,集成了灵活可编程的多层次并行处理阵列和高速数据传输通路以及系统控制模块,能够通过指令编程对各种计算资源进行灵活的重构和使用。视觉芯片采用65 nm标准CMOS工艺制造,经测试芯片在200 MHz的系统时钟下达到413GOPS(Giga Operations Per Second)的峰值性能,能够同时高效地支持传统的计算机视觉算法和卷积神经网络算法,实现实时的图像分类、目标检测、目标追踪等视觉处理任务。

    • 为了能够很好地支持传统的计算机视觉和新兴的深度学习算法,文中首先详细分析了它们的运算特点,总结了实现这两类算法所需要的运算模式[5, 11]

      图1(a)所示,传统的计算机视觉算法可以分解为三个运算层次。

      图  1  运算模式分析

      Figure 1.  Operation mode analysis

      (1)低层次处理—对图像进行滤波、边缘、纹理、角点检测等处理。典型的滤波计算如下:

      $${{y}}(i,j) = \sum\limits_n^{} {\sum\limits_m^{} {I(i+m,j+n)*w(m,n)} } {{ +b}}$$ (1)

      式中:I是输入图像;w,b分别是是滤波核的系数和偏置;mn为对应的下标。每个像素和它周围3×3或者5×5邻域内的像素进行算术或者逻辑运算,每个点都可以独立计算,具有计算量大并行度高的特点。

      (2) 中层次处理—对图像某一块区域进行信息统计,比如直方图、积分图统计。通常是把低层次处理后的图像分成若干区域进行,以8×8或者16×16大小的图像块为单位分别统计直方图之后得到特征向量。中层次处理的所需的运算较低层次处理更为复杂,但是并行度次之。

      (3) 高层次处理—对特征向量进行分类,涉及到图像或者目标的整体信息,使用分类器判决图像是否属于要检测的目标类别。高层次处理运算最复杂但是并行度最低。一个典型的对输入向量$x$进行二分类的支持向量机运算如下:

      $${{y}} = \sum\limits_{{i}} {{a_i}{y_i}K({x_i},x)} {{+b}}$$ (2)

      式中:${x_i}$是分类器的支持向量;${a_i}$${y_i}$是支持向量的系数和标签,都由训练得到。对于最常用的线性核函数$K({x_{{i}}},x){\rm{ = }}x_i^{\rm{T}}x$,公式(2)可以写成:

      $${{y = }}{{{w}}^{\rm{T}}}{{x+b}}$$ (3)

      式中:${{w}} = \sum {{a_i}{y_i}{x_i}} $,主要的运算是向量内积。如果是多分类任务则会有多个分类器联合使用。

      图1(b)给出了卷积神经网络算法的运算模式。卷积神经网络(CNN)主要由卷积层(Convolution Layer, Conv)、激活层(Activation Layer, Act)、池化层(Pooling Layer)和全连接层(Fully Connected Layer, FC)构成。通过反复使用卷积、激活、池化层来逐层进行信息的提取和抽象,最后用全连接层来进行分类。卷积层运算公式为:

      $${{y}}(i,j) = \sum\limits_c^{} {\sum\limits_n^{} {\sum\limits_m^{} {I(i+m,j+n,c)*w(m,n,c)} } } {{ +b}}$$ (4)

      式中:c为图像通道(channel),除了在通道方向上进行累加外,卷积的运算模式和传统算法中的低层次处理滤波是一样的,可以逐个通道进行二维卷积公式(1)再相加即可得到公式(4)。

      激活层一般用在卷积层后面,主要是对卷积结果进行非线性处理,最常见的ReLU函数,只需要判断卷积结果的正负,更复杂的Sigmoid或者tanh函数可以使用分段线性函数来逼近模拟。池化层是把图像划分为若干区域,计算每个区域中的平均值或者最大值,与中层次处理类似,都是以图像块为单位进行信息统计。

      全连接层是实现向量和矩阵相乘,它的输入x是一个n维向量,输出是一个m维向量,那么全连接层的系数w是一个m*n的矩阵,偏置b是一个m维向量:

      $${{y}} = w{{x+b}}$$ (5)

      其运算模式和传统算法中的分类器类似,可以分解成若干个向量内积:

      $${{{y}}_i} = w_i^{\rm{T}}{{x+}}{{{b}}_i} \;\;\;\; i = 0,1 \cdots m - 1$$ (6)

      通过对公式(1)~(6)的分析,可以看到深度神经网络与传统的计算机视觉算法存在很多相似的运算模式,文中提出的新型视觉芯片架构充分利用这一特点,通过编程实现运算功能的重构,使得视觉芯片不仅能够兼容传统的基于人工选取特征和分类器的计算机视觉算法,而且能够高效地支持卷积神经网络等深度学习算法。

    • 文中提出了一种新型的基于多层次并行的可编程视觉处理芯片架构。图2是视觉芯片的整体架构图,整个芯片主要由图像计算阵列、数据传输通路和总体控制系统三大部分构成。图像计算阵列由多层次的并行处理单元和相应的存储器以及片上互联网络(Network on Chip, NoC)组成,主要负责完成各种算法的运算。数据传输通路主要由高速IO接口、片上IO数据缓存(Input/Output Buffer)和高速直接存储器存取(Direct Memory Access,DMA)构成,能够完成高速的片上/片下数据传输。RISC32微处理器和系统总线以及其他相关模块是整个芯片的控制系统,指挥数据通路和计算阵列协同工作。整个视觉芯片是一个功能完整的视觉处理系统,具有高速低功耗、灵活可编程的特点,适合应用于对功耗、尺寸、实时性有较高要求的边缘计算等场合。

      图  2  视觉芯片整体架构

      Figure 2.  Vision chip architecture

      视觉处理系统的数据带宽要求非常高,由于很多应用场景都对图像传感器有特殊的要求,视觉芯片设计了高速的图像数据传输接口。芯片一共有64个数据输入和64个数据输出管脚,管脚的工作频率为50 MHz。芯片其他部分的设计工作频率为200 MHz,利用两块IO数据缓存作为异步FIFO进行数据跨时钟域传递。图像数据输入芯片之后先存放在Input Buffer中,然后用高速DMA模块把图像搬运到计算阵列中,开始进行图像数据的处理。计算阵列完成对图像的处理之后,DMA模块再把处理结果从计算阵列搬到Output Buffer,输出到片外。

      计算阵列是视觉芯片进行图像数据运算的主要模块。如图2所示,整个计算阵列被分成了16组,每组被称为一个计算簇(Computation Cluster)。每一个计算簇主要包含:一个块处理单元(Patch Processing Unit, PPU)、32个互相连接的PE(Processing Element)单元以及它们共享的本地存储器(Local Memory)。图像数据进入处理阵列后会均匀分成32×32的小块分发到每个计算簇的本地存储器中,然后处理单元从本地存储器中读取数据进行运算。

      计算簇的具体运算功能均由指令控制,视觉芯片的指令集采用了精简指令集的设计模式,并针对图像常用的运算进行了优化和改进。指令主要包含数据加载存储、数据运算和分支跳转三种功能,从处理并行度上分为标量和向量指令两种类型。块处理单元(PPU)是标量处理单元,功能比较灵活,能够获取32×32图像块中任意数据并进行计算。32个PE构成向量处理单元,与一行图像32个像素一一对应,因此PE又被称为像素级处理器。32个PE工作在单指令多数据(Single Instruction Multiple Data, SIMD)模式下,可以进行并行计算。

      不同的计算簇也是工作在SIMD模式下,其中一个计算簇读取指令后分发给其他的计算簇。每个计算簇处理的是图像的不同部分或者卷积神经网络中不同的特征图映射(feature map),各个计算簇之间由NoC模块连接,可以广播或者交换数据,进行协同计算。

    • (1)多层次并行的处理模式

      计算阵列中的处理单元按照算法的需求来设计,计算簇中的向量处理器适合进行像素级并行处理,不同计算簇中的标量处理器在处理不同的图像块,构成了另一个多个层次的并行。整个视觉芯片上一共有16个块级处理器和512个像素级处理器。RISC32微处理器除了控制系统之外还具有获取全局数据和进行复杂运算的能力,和计算簇中的块级处理器(PPU)、像素级处理器(PE)一起构成了多层次并行的处理阵列。不同层次的处理单元具有的计算能力和并行度是不同的,可以根据算法中不同层次的并行度需求进行调度。

      (2)动态可编程的运算功能

      不管是传统的计算机视觉还是深度学习,算法都在不断地发展和变化,而在实际应用中也经常需要根据使用场景对准确率、速度的要求来选择使用的算法。整个计算阵列中的处理单元都是可编程的处理器核,其运算功能和连接状态都可以根据指令改变。通过基础指令的不同组合来实现不同的算法,可编程设计灵活地进行运算资源的动态配置,在不明显增加资源的情况下实现了对多种算法的支持。

      (3)高速灵活的数据传输

      受限于片上存储的容量,通常输入图像的尺寸为128×128像素。如果要处理尺寸较大的图像或者参数较多的神经网络,需要把图像或者网络进行切分。比如在大图上使用滑动窗口逐块地处理或者是在计算卷积神经网络时逐层把参数传输进来计算。在处理第一帧数据的同时,芯片可以接收第二帧数据的输入。这样数据的传输和数据处理可以流水进行,隐藏了计算阵列等待数据的时间,图像处理结果的输出同理,整个传输和计算的调度由RISC32微处理器和系统总线进行控制。

    • 图3展示了块处理单元(PPU)的具体电路。块处理单元是一个五级流水处理器,主要包含取指令、解码、执行、存储访问和写回五个部分。块处理单元具有比较灵活的处理功能,能够获取32×32本地存储的图像块中任意数据。除了串行处理的能力之外,PPU还负责并将解码后的指令广播至向量处理器,控制指令循环跳转等功能,因此PPU是整个计算簇的控制核心。

      图  3  块处理单元电路图

      Figure 3.  Circuit of patch processing unit

    • 图4是PE单元的电路图,每个PE具有一个16 bit的ALU (arithmetic and logic unit)和16个16 bit的寄存器组以及多个多路选择器。每个PE参与运算的数据可以来自于自身的寄存器中取,也可以来自左右邻近PE的寄存器组。ALU的功能包括加、减、乘、乘累加、比较、移位、逻辑等,每周期能够进行一个16 bit或者两个8 bit的运算。与PPU单元相比,PE单元没有取指令和指令解码的功能,它的运算的数据来源和运算功能均由PPU广播的指令控制,可以根据算法的需求实现不同的PE连接关系和运算功能。

      图  4  PE单元电路图

      Figure 4.  PE circuit schematic

    • 每一块本地存储器的容量为16 kB,带宽为256 bit,一个周期能读写32 Byte的数据。为了适应各种算法的需求,在存储器和PE单元之间有一个存储器接口(memory interface)模块来组织数据,实现各种复杂的读写功能。图5列举了一些读写的模式,如图5(a)中的正常模式常用于图像数据的读写,图5(b)中的两倍亚采样经常用于图像放缩和CNN中的池化层,图5(c)中的广播模式经常用于卷积系数的读取。

      图  5  存储器的读写模式

      Figure 5.  Load/store pattern of memory

    • (1)像素级并行计算

      像素级并行模式主要针对于图像的低层次处理,如滤波、角点检测、卷积层等。向量处理器横向排列,利用PE之间的相互连接关系,每个ALU的源操作数可以来自自身的寄存器组也可以来自邻近的PE。这样的连接是特别为图像运算设计的。以进行3×3窗口的卷积运算为例,计算过程如图6(a)所示,只需要把三行像素加载到PE的寄存器组里,对于每个PE来说,寄存器组里只有纵向一列的三个像素,但是它能拿到两边邻近PE寄存器组中的数据,三个PE共同构成一个3×3的窗口,利用乘累加运算,九个周期就完成一行卷积的结果输出。

      图  6  多层次并行运算

      Figure 6.  Multilevel parallel operation

      每个PE都与左边三个、右边三个最邻近的PE连接,可以直接支持最大7×7的卷积窗口,阵列边缘的PE可以选择连接到0或者自身的寄存器组,实现卷积边缘填充0或者填充图像边缘的像素。把乘、加运算替换为减法、比较大小等其他基础运算,就可以实现梯度、纹理角点检测等其他算法。

      可以看到,相邻的滤波(卷积)窗口之间存在大量的重叠区域,相互连接的PE阵列很好地利用了重叠区域数据的相关性,减少了数据的读取和重排。在像素级并行模式下每个PE都能进行一个卷积窗口的运算,并行度非常高。

      (2)块级并行计算

      块级并行模式主要用于中层次的处理,比如直方图、池化层等,以图像块为单位,利用多个PE的组合来完成运算。图6(b)所示为直方图统计的计算过程,首先给每一个PE分配直方图的一个bin,PPU把像素广播到PE阵列,每一个PE分别对像素和分配的直方图bin值进行比较,如果PE的bin和像素值相等,则把计数器+1,其他的PE计数器则保持原值。

      使用PE本身的寄存器组作为计数器,可以避免存储器的反复读写,使统计具有很高的效率。计算池化层的时候,每个PE先纵向找出一列里的最大值,然后再横向比较,得到图像块里的最大值,最后用亚采样存的方式输出池化结果。根据直方图bin的数目或者是池化区域的大小,把PE阵列划分为若干组,每组负责一个图像块的统计,可以达到块级并行的处理效果。

      (3)全局并行计算

      全局并行模式主要用于分类器的向量内积计算或者全连接层的向量矩阵相乘,计算同样可以利用PE间的连接关系,使所有的PE共同参与计算。向量内积计算过程如图6(c)所示,首先每个PE分别计算两个向量中对应元素的乘积,然后利用PE之间的连接把相邻两个PE的乘积相加,再利用亚采样存储的指令把间隔PE的和保留下来。反复进行这样两两合并的运算,对于N维的向量合并速度为log2N,即使对于几百维甚至上千维的特征向量,也只需要几十个时钟周期就能完成向量内积的计算。最后利用RISC32对分类器的计算结果进行汇总和比较,筛选最合适的分类结果。

      视觉芯片从整体框架到具体电路的设计都遵循了软硬件协同的原则,不管是传统的基于手工选择特征的算法还是深度神经网络算法,它们所需的所有基本运算操作都可以通过控制PE之间的连接关系和ALU的运算功能来实现。整个芯片具有很好的可编程性,可以根据应用的需求灵活地选择算法。

    • 可编程视觉芯片采用1P9M 65 nm CMOS工艺制成,芯片大小为4 mm×6 mm,其显微照片如图7所示。芯片周围是电源/地线、数据传输和控制信号管脚,16个计算簇对称地排放,中间则是数据通路以及控制系统。

      图  7  视觉芯片显微照片

      Figure 7.  Microphotograph of the vision chip

      经测试,芯片在1 V标准供电电压下运行频率达到200 MHz,在进行乘法器利用率最高的卷积神经网络计算时功耗仅1.07 W。表1列出了该芯片的重要性能参数。当进行16 bit精度运算时,芯片峰值运算性能达到208GOPS。采用8 bit精度运算时,芯片峰值运算性能则可到达413GOPS。

      表 1  视觉芯片参数

      Table 1.  Vision chip parameters

      Technology65 nm 1P9M
      Size4 mm×6 mm
      Core frequency200 MHz
      Processing unit1+16+512
      Operand bit-width2×8-bit fixed / 16-bit fixed
      Peak performance413GOPS@8b / 208GOPS@16b
      Peak power1.07 W
      I/O bandwidth3.2 Gbps (duplex)
    • 基于前面对算法模式的分析,该节采用一些应用算法对视觉芯片进行系统级的性能测试。为了体现视觉芯片的可编程性,分别选取了使用传统识别算法、深度学习算法和两者联合使用的应用对视觉芯片进行算法测试。

    • 图8给出了基于LBP(Local Binary Pattern)特征和Adaboost分类器的人脸检测流程和测试结果。图8(a)展现了一个典型的包含特征生成、特征提取以及特征分类三个步骤的传统目标检测算法。首先在3×3的窗口内,每个中心像素与周围八个像素比较大小,生成8 bit的LBP值;然后按16×16的图像块统计LBP直方图,形成特征向量;最后使用Adaboost分类器判别是否为人脸。计算LBP值、统计直方图和分类器分别对应低、中、高层次的处理,在视觉芯片上均可以高效支持。目标搜索框的大小为64×64,以步长为16像素在128×128的图像中移动进行检测,在判别过程中如果有多个重叠度大于0.5的搜索框都判定为人脸,则选取分类器响应最大的候选框作为检测结果。在检测的过程中LBP值和分块直方图都只需要计算一次,选择搜索框中的直方图作为特征向量进行分类即可。计算整张图LBP值和直方图分别需要大约2 400和1 600个周期。逐个搜索组合特征向量进行分类一共需要6 000个周期,再加上最后筛选结果并输出,计算一幅图像大约12 000个时钟周期,检测速度超过16 000 fps。

      图  8  人脸识别算法和测试结果

      Figure 8.  Face detection algorithm and test result

    • 图9给出了基于cifar10数据集的CNN分类网络。网络采用16 bit定点参数,预先线下训练好参数并进行定点化,为了适应硬件实现的特点,激活函数采用简单的ReLU函数,只需要判断卷积结果的正负,池化层都采用两倍下采样,这样卷积神经网络中的每一种操作视觉芯片都能高效支持。在计算卷积的过程中,输入的图像尺寸是32×32,对于不同的卷积核,每个计算簇可以计算一个feature map,随着池化层的加入,尺寸缩小,每个计算簇可以同时计算两个或四个feature map。经测试对于32×32的RGB图像,计算四层卷积和两层全连接的网络需要大约26 000个时钟周期,处理速度达到7 000 fps。

      图  9  CNN图像分类

      Figure 9.  CNN image classification

    • 在海洋遥感图像中视野非常宽广,大部分是海面和云层,目标的占比很小。采用传统的方法准确率比较低,如果全部采用卷积神经网络检测效率太低,速度太慢。文中设计了一种两级级联检测的方法,如图10所示,首先用传统的梯度和角点检测,设置合适的阈值筛掉大部分没有什么亮度变化的平静海面和大片云层,提取出可能存在船只的感兴趣区域(region of interest,ROI),然后对留下来的部分使用CNN进行精细分类,辨别是否是为船只。这样的混合算法速度比全图使用CNN搜索检测更快而准确率基本保持不变。图10展示了在遥感图像中进行船只检测的算法流程和测试结果。

      图  10  遥感图像目标检测

      Figure 10.  Target detection in remote sensing image

    • 测试结果表明,文中提出的视觉芯片确实能实现从图像预处理到特征提取再到特征分类的完整视觉处理流程,而且可以通过编程灵活实现不同的算法应用,达到实时检测的系统性能。表2列出了一些相关的视觉芯片和神经网络加速器芯片的参数对比。

      表 2  与其他相关工作的对比

      Table 2.  Comparison with related work

      ReferencesThis workRef [5]Ref [12]Ref [13]Ref [14]
      Technology/nm65 180 13065 65
      Core area/mm24×69.8×8.4(include sensor)1874×44×4
      Frequency/MHz2005080200250
      On-chip SRAM320 kB32 kB236 kB192 kB282 kB
      Bit-width(fixed)1/8/161~1681616
      Traditional computer visionFilter, corner detection
      Histogram
      SVM/Adaboost
      Filter, corner detection HistogramFilter(enhance, morphology)N/AN/A
      Convolution neural networkConv
      Pooling
      FC
      SOM neural(FC)ConvConvConv
      Pooling
      FC
      Peak performance413GOPS@8b 208GOPS@16b14GOPS@8b61GOPS@8b67GOPS@16b32GOPS@16b
      Energy-efficiency (GOPS/W)194 @16b44 @8b(processor array)85 @8b166 @16b208 @16b

      通过表2可以看出,与近年来所报道的其他视觉芯片相比,文中所提出的视觉芯片架构在片上存储容量、算法支持和峰值运算能力上有明显优势。特别是在对算法多样性的支持方面,除了能够很好地保留以往视觉芯片支持的传统计算机视觉算法之外,还能高效地支持卷积神经网络等深度学习算法,即使与一些专用的神经网络加速器相比,能耗效率依然不落后。文中提出的视觉芯片在可编程性、运算性能以及功耗效率等方面都超过了其他视觉芯片。

    • 文中提出了一种新型的高速可编程视觉芯片架构,它包括多层次并行的可编程处理阵列、高速数据传输通路和总体控制系统,不仅能够兼容传统的基于人工选取特征和分类器的目标检测算法,而且能够高效地支持卷积神经网络等深度学习算法。视觉芯片由65 nm标准CMOS工艺制成,在200 MHz系统时钟下达到413GOPS的运算性能和194GOPS/W@16 bit的能耗效率,在处理能力、可编程能力和能耗效率等方面明显优于其他类似的视觉芯片。测试结果表明:文中所设计的视觉芯片能够完成完整的图像分类、目标检测等视觉处理流程,实现了较高的系统性能。

参考文献 (14)

目录

    /

    返回文章
    返回