【ATU Book-i.MX8系列 - TFLite 进阶】 物件侦测应用
一. 概述
在边缘运算的重点技术之中,模组轻量化网路架构 是不可或缺的一环,如何高效的利用硬体资源来达到最佳目标,特别是在效能与准确度的衡量上,是个非常有趣的议题。此章节先探讨深度学习热门的研究项目之一 物件侦测(Object Detection) ,此项目为最初的研究议题,故有衍伸出多种神经网路架构,比如 VGG-19、ResNet、Inception V4、MobileNet + SSD 以及近年相当火红的 yolo 系列皆可实现物件识别之目的,其中差异就是取决于准确度、参数量(模组大小)、运行速度性能等等。
若新读者欲理解更多人工智能、机器学习以及深度学习的资讯,可点选查阅下方博文
大大通精彩博文 【ATU Book-i.MX8系列】博文索引
TensorFlow Lite 进阶系列博文-文章架构示意图
二. 算法介绍
由于 边缘运算(edge computing) 需以轻量、快速、准确为主。故采用神经网路架构最轻量,且有一定识别能力、运行效率极佳的 MobileNet + SSD 架构。
本章节将介绍由 轻量化网路架构 MobileNet 与 物件检测算法(Single Shot MultiBox Detector, SSD) 组成之应用。
神经网路架构探讨 :
(1) MobileNet
核心概念是利用拆分的概念,将原本的卷积层拆成 深度卷积(Depthwise Convolution) 与 逐点卷积(Pointwise Convolution) 两个部分,称作 深层可分离卷积(Depthwise Separable Convolution) 。
以此方式进行运算,能够大幅度减少参数量,以达到加快运算速度。(用途撷取特征)
MobileNet 轻量化概念示意图, 参考 LaptrihnX 网站
(2) Single Shot Multi-Box Detector, SSD
核心概念是由 金字塔特征结构(Pyramidal Feature Hierarchy) 与 先验框(Prior Boxes) 的概念组成。
金字塔特征结构(Pyramidal Feature Hierarchy) :
采用不同大小的特征图检测物件,比如说大特征图检测小物件、小特征图检测大物件。
先验框(Prior Boxes) :
让每个特征图上设置不同尺寸、长宽比的先验框,以作为预测框的基准。这能够帮助训练过程时,提供梯度一定程度的范围限制,能够降低一定程度的训练难度。
如下图所示,金字塔特征结构概念就是在每个不同大小的特征层之中,进行预测来判断是否有物件,并总和每个特征层的结果,找出最大可能性的物件。
金字塔特征结构(Pyramidal Feature Hierarchy) 示意图, 参考 ResearchGate 网志
如下图所示,为 VGG-19 搭配 SSD 的神经网路架构(Neural Network)。如同上述金字塔特征结构概念,更明确的呈现 SSD 架构的作法。
其实就是在 VGG 每一层的输出都装上 检测器(Detector) 与分类器 (Classifier) ,并将每层结果连结至 Fast NMS 来找最佳的物件检测结果 !!
SSD 架构概念示意图, 参考 Medium 网志
换个方式呈现上述概念。如下图所示&