# 概述

 OpenNCC View是一款用于快速体验OpenNCC开发套件的软件,运行OpenNCC View下默认模型不依赖OpenVINO,OpenNCC View集成了OpenNCC SDK全部API,可以完成OpenNCC在独立模式下实现对相机的连接,固件和AI模型的下载,及完成视频流显示与算法结果的后处理。用户可以通过友好的界面,来操作和控制相机.
Figure-1

# 模型解析

 模型在OpenNCC完成推演后,通过OpenNCC SDK API获取实时的推演结果,OpenView针对物体检测这类模型Object Detection Models (opens new window)实现了推演结果的通用解析器。
OpenView的推演后处理支持如下格式输出:

输出的数据形态:[1, 1, N, 7]
N是当前帧下检测到的物体框数量
对于每个检测框,包含以下信息格式:[image_id, label, conf, x_min, y_min, x_max, y_max], 其中:
    image_id - ID of the image in the batch
    label - predicted class ID
    conf - confidence for the predicted class
    (x_min, y_min) - coordinates of the top left bounding box corner
    (x_max, y_max) - coordinates of the bottom right bounding box corner.  

用户可以训练自己的模型,并将输出层按照以上格式定义,可以免编程使用OpenView的模型导入功能添加并测试物体检测模型。如果用户需要添加其他输出格式的模型,需要自己参考ncc_SDK/Samples/How_to/load a model并结合自己应用场景来编写解析代码。

# 功能点详细介绍

1)Get Device Info:获取设备与电脑usb连接信息及NCC设备模块信息,若连接的设备支持,能够解锁更多功能选项。(例如NCC与电脑通过usb 3.0连接,可解锁yuv出流显示视频;NCC装配了4K模组,可解锁4K分辨率显示)

2)Stream Format:选择NCC相机USB视频输出格式,目前支持YUV420P,H.264,MJPEG格式。(选择YUV420P前需先点击Get Device Info,仅在usb 3.0连接时可选)

3)Stream Resolution:更换NCC相机的视频分辨率,可选1080P或4K. 4K分辨率支持需要选装相应4K摄像模块。 (选择4K前需先Get Device Info,仅在模组支持4K时可选)

4)1st network model:选择算法模型,选择None即不加载模型,仅出流显示视频,而选择加载算法模型后,可以通过框选ROI区域,仅对区域内的场景进行识别。

5)Model Score:加载算法后,对物品的识别计算结果是有分数的,当超过了某一分数阈值,才会在视频中框选,而Model Score即为控制阈值的选项,根据用户需求,实时调整识别的最低分数(默认值为0.5)

6)ROI:配合算法模型使用,加载模型后,如果需要仅对某一区域进行算法识别,可以手动点击鼠标左键拖动,框选出自己感兴趣的区域,仅对区域内的场景进行识别

7)Display Scaler:视频显示时,由于不同电脑的分辨率不同,按原本尺寸显示1080P或4K的视频,可能会出现视频大小超出桌面大小的情况,用户可通过Display Scaler实时控制视频显示窗体大小(默认值为0.5)

8)Add model:点击"add model" ,导入生成好的.blob模型文件,此处注意,需要把.blob文件和对应的IR文件(.xml&&.bin)放在同一位置,且文件名相同。.blob文件的生成过程参考开发手册。添加后即可在1st network model中选择对应模型。

9)Del model:删除用户导入的模型文件,删除后即会在1st network model中移除用户自己的模型。

10)Start running model:点击即开始加载固件,并根据用户的选项,显示视频窗口

11)Log:显示NCC工作时的log,用户可在此处查看设备的运行状况,以及关于设备异常状态的提示信息

12)Algo Results:显示算法结果,当用户选择加载算法模型,且在实际场景中有被识别到的算法模型,即会有算法结果在此处打印(如被识别模型相对当前窗口的坐标信息,及算法计算出的识别分数等)

13)inference accelerate: 选择是否启用算法加速功能。

# 算法加速功能介绍

​ OpenNcc搭载了Movidius Myriad X VPU,该处理器是一个拥有16块shave片的视频处理平台核心引擎,承担了包括视频流处理、AI推理等任务。

​ Shave片的数量决定了引擎的计算能力。基于Myriad框架的模型会有不同的分配方案,为了满足不同平台的算力差异,大多数模型并不会把推理所需的shave片数设定为较高的初始值(通常是4个)。所以在OpenNCC中,处理器在算法推理阶段依旧存在较多算力盈余。如果能够有效利用这些盈余算力,就可以显著提升处理器的AI推理效率。

​ 当推理加速开关打开,设备检测到足够的shave片处于空闲状态,就会按照原推理引擎中的shave配置模式创建一个新的引擎,也即双引擎模式。双引擎采用并行计算的方式提高计算速率,从而对AI的整体推理产生加速效果。

# 算法加速测试结果

AR0234 60Hz 1080P USB_3.0 YUV YUV H.264 H.264 MJPEG MJPEG
Number of Acceleration Engines 2 1 2 1 2 1
Model AI FPS AI FPS AI FPS AI FPS AI FPS AI FPS
classification-fp16 25 14 25 14 25 14
face-detection-retail-0004-fp16 80 43 80 55 80 52
face-detection-adas-0001-fp16 15 7 15 8 15 8
person-detection-retail-0013-fp16 12 5 12 6 12 6
person-vehicle-bike-detection-crossroad-0078-fp16 6 2 6 3 6 3
face-person-detection-retail-0002-fp16 10 4.5 10 5 10 5
pedestrian-detection-adas-0002-fp16 15 7 15 9 15 9
vehicle-detection-adas-0002-fp16 15 8 15 9 15 9
vehicle-license-plate-detection-barrier-0106-fp16 45 24 45 28 45 29
license-plate-recognition-barrier-0001 40 24 40 23 40 23
pedestrian-and-vehicle-detector-adas-0001-fp16 12 7 12 7 12 7