背景
产品型号:AIxBoard-N5105
开发公司:蓝蛙智能
蓝蛙智能成立于2018年,2021年成为英特尔OpenVINO官方技术伙伴,2023年推出英特尔数字化开发套件爱克斯板AIxBoard-N5105。
资源
类型 | 网站 | 备注 |
产品介绍 | 产品介绍 - 英特尔数字化开发套件 | |
案例分析 | 案例分享 - 英特尔数字化开发套件 | |
硬件资源 | 硬件资源 - 英特尔数字化开发套件 | |
AI应用开发(OpenVINO) | 本地gitlab: http://10.8.59.16/Code/openvino_note 公网github: https://github.com/openvinotoolkit/openvino_notebooks(一系列可立即运行的 Jupyter 笔记本,用于学习和试验 OpenVINO™ 工具套件) https://github.com/openvinotoolkit/open_model_zoo(预训练的深度学习模型和演示) | |
ftp资料目录 | ftp://10.8.59.196/EUMS/IntelAI/AIxBoard/ | |
OpenCV学习 |
| |
| ||
| ||
| ||
AI预训练模型 |
| |
| ||
免费学习资源 |
|
开发板资料
该套件预装了英特尔OpenVINO™工具套件、模型仓库和演示案例,便于您轻松快捷地开始应用开发。
套件主要接口与Jetson Nano(由NVIDIA推出的一款小型AI开发板,带有GPU:384-core NVIDIA Volta GPU with 48 Tensor Cores)载板兼容,GPIO与树莓派兼容,能够最大限度地复用成熟的生态资源。这使得套件能够作为边缘计算引擎,为人工智能产品验证和开发提供强大支持;同时,也可以作为域控核心,为机器人产品开发提供技术支撑。
注:NVIDIA Volta(伏特)架构是NVIDIA 定义的架构类型;Tensor Core(张量计算核心)是由NVIDIA研发的新型处理核心,可实现混合精度计算,并能根据精度的升降动态调整算力,在保持准确性的同时提高吞吐量。
主要参数
- 11代英特尔赛扬处理器N5105 2.0GHz (Intel(R) Celeron(R) N5105 @ 2.00GHz)
- 板载LPDDR4x内存,最高支持8GB,2933MHz, 4GB/6GB/8GB(目前开发板为DDR4 8G)
- 板载64GB eMMC存储
- 1个千兆以太网口, 4个USB3.0
- 板载WiFi6模块 Intel AX201
- 1个M.2存储扩展槽,支持SATA&NVME协议
- 1路DP接口, 1路HDMI接口,支持双显
- Typc-C PD供电, DC 12V供电
- 系统支持 Ubuntu20.04 LTS、Winodws 10/11
- 英特尔N5105处理器显卡是基于第 11 代(GEN11-LP GT1)显卡内核架构,能够大幅提升性能和降低功耗。
AI推理单元
借助OpenVINO工具,能够实现CPU+iGPU(同时拥有CPU和GPU功能的处理器,被称为集成图形处理器或IGPU。IGPU是在CPU上集成的GPU,用于对计算机系统进行图形处理和图像渲染。随着技术的进步,现在的主板通常都会配备IGPU)异构计算推理,iGPU算力约为0.6TOPS
Cpu、Gpu、Npu的区别
CPU(中央处理器):CPU是计算机系统中最重要的处理器,它被用于执行通用计算任务,例如操作系统、办公软件、浏览器等。CPU通常包含几个核心,每个核心可以执行多个线程。CPU的特点是普适性强,适用于广泛的处理任务,但相对于GPU和NPU而言,在执行大量浮点运算时性能较差。
GPU(图形处理器):GPU最初是为了图形渲染而开发的,随着计算机的发展,GPU也被用于执行大量的并行计算任务,例如深度学习、机器学习、加密货币挖矿等。GPU具有众多的核心,可以同时处理大量的数据,特别是浮点运算。GPU的优势在于可以高效地执行大量的并行计算任务,但相对于CPU而言,其通用性较差。
NPU(神经网络处理器):NPU是专门用于执行神经网络计算任务的处理器,其设计目的是为了提高深度学习模型的训练和推理速度。NPU通常采用定制化的硬件架构和算法,以满足神经网络计算的特殊需求。NPU的优势在于可以高效地执行神经网络计算任务,但相对于CPU和GPU而言,其通用性更低,只适用于特定的应用场景。
格式 | 解码级别 | 编码级别 |
H.265/HEVC | M10P @ L5.1 8b/10b Up-to 4kp60 (3480x2160); (420) Up-to 4kp30 (3480x2160);(444) | M10P @ L5.1 8b/10b Up to 4kp60 (3480x2160); (420) Up-to 4kp30 (3480x2160); (444) |
VP9 | Profile 0,1,2,3 8b/10b Up-to 4kp60 (3480x2160);(420) Up-to 4kp30 (3480x2160);(444) | Profile 0,1,2,3 8b/10b Up-to 4kp60 (3480x2160);(420) Up-to 4kp30 (3480x2160); (444) |
H.264 | MP, HP, CBP L5.2 8b/ Up-to 4kp60 (3480x2160); (420) | MP, HP, CBP 8b/ Up-to 4kp60 (3480x2160); (420) |
WMV9/VC1 | SP ML/MP HL/AP L4 and up to 4Kp60 (3480x2160); AP L3 Up-to 1920x1080p24 AP L4 Up to 2048x1536p24 MP HL Up to 1920x1080p30 SP ML Up to 352x288p15 | Not Supported |
MPEG-2 | 1080p60 (MP@HL and MP@ML) | Not Supported |
VC-1 | AP L3 8b/ Up to 1080p30 | Not Supported |
JPEG/MJPEG | 850Mpps (420), 640Mpps (422), 428Mpps (444) | 800Mpps (420), 600Mpps (422) |
CPU框图
Audio Codec 音频编解码器
开发板使用的音频编解码器。本开发板使用的是ALC269高清音频编解码器,集成了 2+2 声道 DAC、4 声道 ADC 和 D 类扬声器放大器。 2+2 声道 DAC 同时支持两个独立的立体声输出。 4 通道 ADC 集成了两个立体声和独立的模拟声音输入。
- RTL Audio Codec ALC269
- 本地手册位置:\\10.8.59.196\data\EUMS\IntelAI\AIxBoard\硬件资源\ALC269.PDF
Pin No. | Function | Linux GPIO |
1 | 3V3 VCC | |
2 | 5V VCC | |
3 | I2C1_SDA | |
4 | 5V VCC | |
5 | I2C1_SCL | |
6 | GND | |
7 | GPIO(GP_D04) | gpio880 |
8 | UART_TX | ttys4 |
9 | GND | |
10 | UART_RX | ttys4 |
11 | GPIO(GP_H19) | 无 |
12 | GPIO(GP_D13) | gpio889 |
13 | GPIO(GP_D17) | gpio893 |
14 | GND | |
15 | GPIO(GP_E01) | gpio973 |
16 | GPIO(GP_D06) | gpio882 |
17 | 3V3 VCC | |
18 | GPIO(GP_D22) | gpio898 |
19 | SPI0_MOSI | |
20 | GND | |
21 | SPI0_MISO | |
22 | GPIO(GPPC_H11) | gpio855 |
23 | SPI0_SCL | |
24 | SPI0_CS0 | |
25 | GND | |
26 | SPI0_CS1 | |
27 | I2C0_SDA | |
28 | I2C0_SCL | |
29 | GPIO(GP_D23) | gpio899 |
30 | GND | |
31 | GPIO(GPPC_H13) | 无 |
32 | GPIO(GP_D05) | gpio881 |
33 | GPIO(GP_D07) | gpio883 |
34 | GND | |
35 | GPIO(GP_D12) | gpio888 |
36 | GPIO(GP_H16) | gpio860 |
37 | GPIO(GP_H18) | gpio862 |
38 | GPIO(GP_D14) | gpio890 |
39 | GND | |
40 | GPIO(GP_D15) | gpio891 |
连接外设
- 通过 接口6/7 USB口连接鼠标键盘
- 通过 接口8 DP或HDMI接口连接显示器
下载操作系统
下载Ubuntu20.04LTS操作系统。这里使用的是Canonical为Intel优化的版本
- 官网下载
- 云盘下载
制作U盘启动盘
- AI镜像:
适用于专注AI Edge应用的开发者
- 操作系统
-- Ubuntu20.04 LTS
- 预置软件
-- OpenVINO(OpenVINO™工具套件是英特尔出品的一款开源的神经网络推理加速工具。)
注:神经网络是一种计算模型,灵感来源于人类神经系统的结构和功能。它是人工智能(AI)领域中重要的一部分,用于处理复杂的数据输入并进行模式识别、分类、预测和优化等任务。神经网络通常用于机器学习和深度学习。
这种模型的核心组成部分是神经元(或称为节点或单元)。神经元接收输入数据,对其进行加权处理,并应用激活函数产生输出。神经元之间的连接带有不同的权重,这些权重在训练过程中通过学习来调整,从而使网络能够适应特定的任务。
-- OpenCV(OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉和机器学习软件库,OpenCV支持多种编程语言,包括C++、Python、Java和MATLAB等,并可以在多个操作系统上运行,例如Windows、Linux和macOS。OpenCV包含许多现成的计算机视觉算法实现,包括图像处理、目标检测、人脸识别、姿态估计、立体视觉和运动估计等。这些算法可以被广泛应用于各种应用程序,例如视频分析、医学图像处理、智能交通、机器人技术和安全监控等。) -- OpenMV(OpenMV是一个开源,低成本,功能强大的机器视觉模块。) -- VS Code -- VLC(VLC多媒体播放器) -- Netron Netron是一种用于神经网络、深度学习和机器学习模型的可视化工具,它可以为模型的架构生成具有描述性的可视化(descriptive visualization) -- git
- 案例资源
-- OpenVINO Notebooks案例环境 -- OpenCV Zoo案例环境 -- yolov5项目环境
- 下载链接
即将发布
- ROS镜像
适用于专注ROS机器人的开发者
- 操作系统
-- Ubuntu20.04 LTS
- 预置软件
-- ROS Noetic -- ROS2 foxy -- VS Code -- VLC -- git -- Nomachine -- foxglove studio -- moveit
- 下载链接
即将发布
- AI ROS镜像
AI镜像与ROS镜像的合集,包含以上全部工具软件,适用于ROS与AI融合的开发者 下载链接:即将发布
零编码体验一个AI示例
https://github.com/openvinotoolkit/open_model_zoo.git
开发Demo实验
https://github.com/openvinotoolkit/open_model_zoo/tree/master/demos
中英文实验对照表单
演示案例 | 说明 | 备注 |
3d_segmentation_demo/python | 本主题演示如何运行 3D 分割演示,该演示使用 3D 卷积网络分割 3D 图像。 | C |
action_recognition_demo/python | 动作识别 Python演示,对输入视频上执行的动作进行分类:例如驾驶、打电话等(400 个动作)模型。 | B |
background_subtraction_demo | 背景扣除演示。 | B |
bert_named_entity_recognition_demo | BERT 命名实体识别演示,应用程序从给定 URL 的 HTML 页面读取文本,为每个句子输出识别的命名实体( | C |
bert_question_answering_demo | BERT 问答演示,使用 Squad-tuned BERT 模型进行推理的问答演示应用程序。 | C |
bert_question_answering_embedding_demo/python | 嵌入式BERT问答演示 备注: 1、使用的维基百科网页,百度页面无法使用; 2、启动后,可执行,但是会出现卡死; | A4 |
classification_benchmark_demo | 分类基准 C++ 演示,展示OpenVINO 在图像分类神经网络推理,及性能演示 | C |
classification_demo | 分类演示,使用 Python模型 API 和异步管道进行分类网络的推理。 | C |
colorization_demo | 着色演示:使用神经网络对灰度图像或视频进行着色的示例 | B |
crossroad_camera_demo | Crossroad 相机 C++ 演示,用于人员检测、识别和重新识别的推理管道。 | B |
deblurring_demo | 图像去模糊 Python演示 | B |
face_detection_mtcnn_demo | 人脸检测演示 说明:检测输入的图像或者视频是否是人脸,并在图像中标注出人脸特征点(将嘴角,眼角等人脸特征抽象为一个点) | B |
face_recognition_demo | 人脸识别演示 说明:检测输入的视频或图像中的人脸是谁(人脸识别技术用于门禁系统、刷脸支付、无人超市等场景中) | A5 |
formula_recognition_demo | 公式识别演示,识别数学公式 | B |
gaze_estimation_demo | 视线估计演示,展示了注视估计模型的工作,估计检测到的面部、眼睛状态。 | C |
gesture_recognition_demo | 手势识别演示说明:对人手做出的不同动作进行识别(如,表示打电话的手部动作,表示ok的手部动作,表示数字3的手部动作等) | C |
gpt2_text_prediction_demo | GPT-2 文本预测演示 异常情况: 1、可以启动,但是问答无返回; 可能是某个组件编译错误,需定位; | A3 |
handwritten_text_recognition_demo | 手写文本识别演示 | C |
human_pose_estimation_3d_demo | 人体姿势估计 Python演示 任务是检测输入视频中每个人的姿势:身体骨骼,由关键点及其之间的连接组成。该姿势最多可包含 18 个关键点:耳朵、眼睛、鼻子、颈部、肩膀、肘部、手腕、臀部、膝盖和脚踝。该算法的一些潜在用例是动作识别和行为理解。 | B |
human_pose_estimation_demo | 人体姿势估计 C++演示 检测输入视频中每个人的身体姿势; | B |
image_inpainting_demo | 图像修复 Python 演示 | B |
image_processing_demo | 图像处理 C++ 演示 | B |
image_retrieval_demo | 图像检索 Python 演示 | C |
image_translation_demo | 图像翻译演示: 使用神经网络根据示例图像合成逼真图像的示例。 | B |
instance_segmentation_demo | 实例分割 Python演示:将图像中的每个物体实例(instance)分割成像素级的区域,从而在图像中准确地识别和定位每个物体。 | C |
interactive_face_detection_demo | 交互人脸检测演示: 人脸检测与年龄/性别、头部姿势、情绪和面部标志检测器相结合。支持视频和摄像头输入。 | B |
machine_translation_demo | 机器翻译 Python演示: 程序输出从源语言到目标语言的翻译句子。 | A6 |
mask_rcnn_demo | 使用Mask R-CNN深度学习模型,TensorFlow对象检测进行分割对象演示 | C |
monodepth_demo | MonoDepth 演示应用程序,该应用程序为给定的输入图像生成视差图。 | C |
mri_reconstruction_demo | MRI 重建演示,与数据压缩相关 | C |
multi_camera_multi_target_tracking_demo | 多相机多目标 Python 演示 说明:多相机多目标指的是利用多个摄像头对多个目标进行跟踪, 例如,在足球比赛中使用多个相机拍摄的视频,追踪球员在球场的3d位置,达到分析运动员轨迹和比赛策略的目的。 | A7 |
multi_channel_common | 多通道公共文件 | C |
multi_channel_face_detection_demo | 多通道人脸检测 C++ 演示说明:根据代码的readme来看,多通道指的是将多个摄像头采集到的数据作为输入数据,使用openCv进行人脸检测 | B |
multi_channel_human_pose_estimation_demo | 多通道人体姿态估计 C++ 演示 通过 OpenCV* 最多 16 个摄像头作为输入; 检测输入视频中每个人的身体姿态; 说明: 1 根据代码的readme来看,多通道指的是将多个摄像头采集到的数据作为输入数据 2 人体姿态估计指的是图像或视频中人体关节(也称为关键点,例如肘部,手腕等)的定位问题 | B |
multi_channel_object_detection_demo_yolov3 | 多通道目标检测 Yolov3 C++ 演示:Yolov3 一种深度学习目标检测算法。 说明:根据代码的readme来看,多通道指的是将多个摄像头采集到的数据作为输入数据,使用openCv进行目标检测。目标检测:找出图像或视频中感兴趣的目标(物体),同时确认它们的类别和位置(例如,找出一张图片中所有的人) | A8 |
noise_suppression_demo | 噪声抑制演示,读取用户提供的混合了语音和一些噪音的声音文件,输出具有清晰语音的音频。 已完成; | A2 |
object_detection_demo | 对象检测演示: 目标对象进行检测,生成的边界框、文本标签(来自标签文件)或类号的可视化 说明:对象检测是指利用图像处理与模式识别等领域的理论和方法,检测出图像中存在的目标对象,确定这些目标对象的语义类别,并标定出目标对象在图像中的位置。 | C |
pedestrian_tracker_demo | 行人跟踪器 C++ 演示 从输入视频序列中读取帧,检测帧中的行人,并以逐帧的方式构建行人的运动轨迹。 | C |
place_recognition_demo | 地点识别 Python* 演示: 应用程序搜索图像库中的数据,以确定图库中的哪张图像,与该图像最相似。 | B |
security_barrier_camera_demo | 安全屏障摄像头 C++ 演示,展示了车辆和车牌检测。 | B |
segmentation_demo | 图像分割演示。 | |
single_human_pose_estimation_demo | 单个人体姿势估计演示(自上而下的管道),展示了对视频或图像进行人体姿势估计的自上而下的流程。任务是预测帧上每个人的 边界框,然后预测每个检测到的人的姿势。该姿势最多可包含 17 个关键点:耳朵、眼睛、鼻子、肩膀、肘部、手腕、臀部、膝盖和脚踝 | B |
smart_classroom_demo | 智能课堂演示:联合使用多个神经网络来检测学生动作的示例 | C |
smartlab_demo | 带有 smartlab 对象检测和 smartlab 动作识别算法的演示应用程序 | C |
social_distance_demo | 社交距离 C++ 演示 | C |
sound_classification_demo sound_classification_demo | 声音分类演示 看python源码,是根据加载模型的label,对源声音数据按匹配label进行分类。 | A9 |
speech_recognition_deepspeech_demo | 语音识别DeepSpeech演示 说明:读取标准化音频信号,输出解码的文本。(英文,使用Mozilla* DeepSpeech 0.8.2 模型) | C |
speech_recognition_quartznet_demo | 语音识别 QuartzNet演示 说明:读取标准化音频信号,输出解码的文本。(英文,使用Wav2Vec 模型) 轻量型适合边缘计算 已完成: 仅支持 16 位、16 kHz、单通道 WAVE 音频文件。 原文: Sometimes there's things a man cannot know Gears won't turn and the leaves won't grow 解析如下: | A1 |
speech_recognition_wav2vec_demo | 语音识别 Wav2Vec演示 说明:读取标准化音频信号,输出解码的文本。(英文,使用QuartzNet 模型) 同时测试下,比较效果。。。加载200M模型失败 | C |
text_detection_demo | 文本检测 C++ 演示 说明:根据输入的图片,检测图片中是否有文字 | C |
text_spotting_demo | 文本识别 Python演示 说明:根据输入的图片,识别图片中的文字是什么 | C |
text_to_speech_demo | 文本转语音 Python* 演示 | B |
time_series_forecasting_demo | 时间序列预测演示,时间序列预测的目标是根据过去的数据模式和趋势,预测未来一段时间内的数值。 | A10 |
whiteboard_inpainting_demo | 白板修复演示,演示重点关注与人重叠的白板文本,使白板上的所有文本都可见 | C |
语音识别
AI应用开发
speech_recognition_quartznet_demo | 语音识别 QuartzNet演示 说明:读取标准化音频信号,输出解码的文本。(英文,使用Wav2Vec 模型) 轻量型适合边缘计算 已完成: 仅支持 16 位、16 kHz、单通道 WAVE 音频文件。 原文: Sometimes there's things a man cannot know Gears won't turn and the leaves won't grow 解析如下: | A1 |
noise_suppression_demo | 噪声抑制演示,读取用户提供的混合了语音和一些噪音的声音文件,输出具有清晰语音的音频。 已完成; | A2 |
gpt2_text_prediction_demo | GPT-2 文本预测演示 异常情况: 1、可以启动,但是问答无返回; 可能是某个组件编译错误,需定位; | A3 |
bert_question_answering_embedding_demo/python | 嵌入式BERT问答演示 备注: 1、使用的维基百科网页,百度页面无法使用; 2、启动后,可执行,但是会出现卡死; | A4 |
face_recognition_demo | 人脸识别演示 说明:检测输入的视频或图像中的人脸是谁(人脸识别技术用于门禁系统、刷脸支付、无人超市等场景中) 已完成; | A5 |
machine_translation_demo | 机器翻译 Python演示: 程序输出从源语言到目标语言的翻译句子。 已完成; | A6 |
multi_camera_multi_target_tracking_demo | 多相机多目标 Python 演示 说明:多相机多目标指的是利用多个摄像头对多个目标进行跟踪, 例如,在足球比赛中使用多个相机拍摄的视频,追踪球员在球场的3d位置,达到分析运动员轨迹和比赛策略的目的。 已完成; | A7 |
multi_channel_object_detection_demo_yolov3 | 多通道目标检测 Yolov3 C++ 演示:Yolov3 一种深度学习目标检测算法。 说明:根据代码的readme来看,多通道指的是将多个摄像头采集到的数据作为输入数据,使用openCv进行目标检测。目标检测:找出图像或视频中感兴趣的目标(物体),同时确认它们的类别和位置(例如,找出一张图片中所有的人) | A8 |
sound_classification_demo sound_classification_demo | 声音分类演示 看python源码,是根据加载模型的label,对源声音数据按匹配label进行分类。 已完成: 每秒检查,推理出类型class和概率。推测结果class 52为人声。 | A9 |
time_series_forecasting_demo | 时间序列预测演示,时间序列预测的目标是根据过去的数据模式和趋势,预测未来一段时间内的数值。 已完成。电力数据推理预测 | A10 |
实验过程
1 speech_recognition_quartznet_demo
语音识别 QuartzNet演示
说明:读取标准化音频信号,输出解码的文本。(英文,使用Wav2Vec 模型) 轻量型适合边缘计算
仅支持 16 位、16 kHz、单通道 WAVE 音频文件
(1)进入下面的代码目录
/home/ubuntu/xuwt/open_model_zoo/demos/speech_recognition_quartznet_demo/python/
(2)使用下面命令运行python程序
python3 speech_recognition_quartznet_demo.py -m ./public/quartznet-15x5-en/FP16/quartznet-15x5-en.xml -i stay_alive.wav
python程序的参数说明如下:
usage: speech_recognition_quartznet_demo.py [-h] -m MODEL -i INPUT [-d DEVICE]
optional arguments:
-h, --help Show this help message and exit. //显示帮助信息
-m MODEL, --model MODEL //必须的参数,.xml训练好的模型的路径
Required. Path to an .xml file with a trained model.
-i INPUT, --input INPUT //必须的参数, 16 位、16 kHz、单通道 WAVE 音频文件路径
Required. Path to an audio file in WAV PCM 16 kHz mono format
-d DEVICE, --device DEVICE //可选的参数,使用CPU还是GPU进行推理
Optional. Specify the target device to infer on, for
example: CPU or GPU or HETERO. The
demo will look for a suitable OpenVINO Runtime plugin for this
device. Default value is CPU.
(3)实验结果
输出识别结果如下
原文:
Sometimes there's things a man cannot know
Gears won't turn and the leaves won't grow
实际输出:
thesys u the li in ao sometimes ther things a man cannotknow gite place too lon an nosanwath wteteinto the so seerin a a vili a coe o e o iae ethese days with ha ligh on a the coastolfa e yo empty e nothingdream an e wolcachain walcom there is a trutin sonor sa gorners cominnp look into the sord as o
2 noise_suppression_demo
噪声抑制演示,读取用户提供的混合了语音和一些噪音的声音文件,输出具有清晰语音的音频。
(1)进入下面的代码目录
/home/ubuntu/xuwt/open_model_zoo/demos/noise_suppression_demo/python/
(2)依次使用下面命令运行程序
#1.修改音频音频码率为64k,采样率为16000,因为该程序支持的码率为64k,采样率为16000
ffmpeg -i noise_p232_007.wav -aframes 100 -b:a 64k -ar 16000 -ac 2 noise_16000.wav
#2. 运行程序得出结果
python3 noise_suppression_demo.py --model=./intel/noise-suppression-denseunet-ll-0001/FP16/noise-suppression-denseunet-ll-0001.xml --input=noise_16000.wav --output=clean007.wav
参数说明
python3 noise_suppression_demo.py \
// 指定模型的路径
--model=<path_to_model>/noise-suppression-poconetlike-0001.xml \
// 指定输入的音频路径
--input=noisy.wav \
// 指定输出的音频路径
--output=cleaned.wav
3 gpt2_text_prediction_demo
GPT-2 文本预测演示
(1)进入下面的代码目录
/home/ubuntu/xuwt/open_model_zoo/demos/gpt2_text_prediction_demo/python/
(2)使用下面命令运行程序
python3 gpt2_text_prediction_demo.py --model=./public/gpt-2/FP16/gpt-2.xml --vocab=./public/gpt-2/gpt2/vocab.json --merges=./public/gpt-2/gpt2/merges.txt
参数说明
python3 gpt2_text_prediction_demo.py
//指定模型的路径
--model=<path_to_model>/gpt-2.xml
//指定带有标记的词汇文件的路径
--vocab=<models_dir>/models/public/gpt-2/gpt2/vocab.json
// 指定合并文件的路径,
--merges=<models_dir>/models/public/gpt-2/gpt2/merges.txt
(3)实验结果
输入 the 进行预测
输出结果:
生成的序列:“theberryy+1”
4 bert_question_answering_embedding_demo/python
嵌入式BERT问答演示
(1)进入下面的代码目录
/home/ubuntu/xuwt/open_model_zoo/demos/bert_question_answering_embedding_demo/python/
(2)使用下面命令运行程序
python3 bert_question_answering_embedding_demo.py
--vocab=<models_dir>/models/intel/bert-small-uncased-whole-word-masking-squad-0002/vocab.txt
--model_emb=<path_to_model>/bert-large-uncased-whole-word-masking-squad-emb-0001.xml
--input_names_emb="input_ids,attention_mask,token_type_ids,position_ids"
--model_qa=<path_to_model>/bert-small-uncased-whole-word-masking-squad-0002.xml
--input_names_qa="input_ids,attention_mask,token_type_ids,position_ids"
--output_names_qa="output_s,output_e"
--input="https://baike.baidu.com/item/2022%E5%B9%B4%E6%9D%AD%E5%B7%9E%E4%BA%9A%E8%BF%90%E4%BC%9A/18420947?fr=aladdin"
--input="https://baike.baidu.com/item/%E6%9D%AD%E5%B7%9E%E5%B8%82/200167?fromtitle=%E6%9D%AD%E5%B7%9E&fromid=147639"
-c
参数说明
Options:
-h, --help Show this help message and exit. //显示帮助信息
-i INPUT, --input INPUT //必须的参数,指向具有上下文的 Wiki 页面的 URL
Required. Urls to a wiki pages with context
--questions QUESTION [QUESTION ...] //可选的参数,准备好的问题
Optional. Prepared questions
--best_n BEST_N Optional. Number of best (closest) contexts selected //可选参数,选择的最佳(最接近)上下文数
-v VOCAB, --vocab VOCAB //必须的参数,带有标记的词汇文件的路径
Required. Path to vocabulary file with tokens
-m_emb MODEL_EMB, --model_emb MODEL_EMB //必须的参数,指定训练模型路径
Required. Path to an .xml file with a trained model to
build embeddings
--input_names_emb INPUT_NAMES_EMB // 网络中输入的名称MODEL_EMB。例如“input_ids,attention_mask,token_type_ids”,“pos”ition_ids'
Optional. Names for inputs in MODEL_EMB network. For
example 'input_ids,attention_mask,token_type_ids','pos
ition_ids'
-m_qa MODEL_QA, --model_qa MODEL_QA //可选参数,具有经过训练的模型的 .xml 文件的路径,以给出准确的答案
Optional. Path to an .xml file with a trained model to
give exact answer
-d DEVICE, --device DEVICE //可选参数,指定使用CPU还是GPU进行推理,默认使用CPU
Optional. Specify the target device to infer on; CPU
is acceptable. The demo will look for a suitable plugin
for device specified. Default value is CPU
-c, --colors Optional. Nice coloring of the questions/answers. //可选参数,指定问答文本颜色
Might not work on some terminals (like Windows* cmd
console)
(3)实验结果
实验失败
使用的维基百科网页,但国内无法正常访问。百度页面无法使用;
5 face_recognition_demo
人脸识别演示
说明:检测输入的视频或图像中的人脸是谁(人脸识别技术用于门禁系统、刷脸支付、无人超市等场景中)
(1)进入下面的代码目录
/home/ubuntu/xuwt/open_model_zoo/demos/face_recognition_demo/python/
(2)使用下面命令运行程序
python face_recognition_demo.py -i head-pose-face-detection-female-and-male.mp4 -m_fd ./intel/face-detection-retail-0004/FP16/face-detection-retail-0004.xml -m_lm ./intel/landmarks-regression-retail-0009/FP16/landmarks-regression-retail-0009.xml -m_reid ./intel/face-reidentification-retail-0095/FP16/face-reidentification-retail-0095.xml
参数说明
usage: face_recognition_demo.py [-h] -i INPUT [--loop] [-o OUTPUT] [-limit OUTPUT_LIMIT] [--output_resolution OUTPUT_RESOLUTION] [--no_show] [--crop_size CROP_SIZE CROP_SIZE] [--match_algo {HUNGARIAN,MIN_DIST}] [-u UTILIZATION_MONITORS]
[-fg FG] [--run_detector] [--allow_grow] -m_fd M_FD -m_lm M_LM -m_reid M_REID [--fd_input_size FD_INPUT_SIZE FD_INPUT_SIZE] [-d_fd {CPU,GPU,HETERO}] [-d_lm {CPU,GPU,HETERO}] [-d_reid {CPU,GPU,HETERO}] [-v]
[-t_fd [0..1]] [-t_id [0..1]] [-exp_r_fd NUMBER]
optional arguments:
-h, --help show this help message and exit //显示帮助信息
General: //通用参数
-i INPUT, --input INPUT //必填项,指定输入,输入必须是单个图像、图像文件夹、视频文件或摄像机id
Required. An input to process. The input must be a single image, a folder of images, video file or camera id.
--loop Optional. Enable reading the input in a loop. //可选参数,启用循环读取输入。
-o OUTPUT, --output OUTPUT
Optional. Name of the output file(s) to save. //可选参数,输出文件的名称
-limit OUTPUT_LIMIT, --output_limit OUTPUT_LIMIT //可选参数,要存储在输出中的帧数。如果设置为 0,则存储所有帧。
Optional. Number of frames to store in output. If 0 is set, all frames are stored.
--output_resolution OUTPUT_RESOLUTION
// 可选参数,以(宽 x 高)格式指定最大输出窗口分辨率。示例:1280x720。默认使用的输入帧大小。
Optional. Specify the maximum output window resolution in (width x height) format. Example: 1280x720. Input frame size used by default.
--no_show Optional. Don't show output. //可选参数,不展示输出结果
--crop_size CROP_SIZE CROP_SIZE
//可选参数,将输入流裁剪为此分辨率。
Optional. Crop the input stream to this resolution.
Faces database:
-fg FG Optional. Path to the face images directory. //可选参数,人脸图片文件夹
// 可选参数,使用人脸检测模型在人脸图像上查找人脸,否则使用完整图像。
--run_detector Optional. Use Face Detection model to find faces on the face images, otherwise use full images.
Models:
// 必须的参数,人脸检测模型文件路径
-m_fd M_FD Required. Path to an .xml file with Face Detection model.
//必须的参数,具有面部特征点检测模型的.xml文件的路径
-m_lm M_LM Required. Path to an .xml file with Facial Landmarks Detection model.
// 必须的参数,具有人脸重新识别模型的.xml文件的路径
-m_reid M_REID Required. Path to an .xml file with Face Reidentification model.
--fd_input_size FD_INPUT_SIZE FD_INPUT_SIZE
// 可选参数,指定用于整形的检测模型的输入大小。示例:500 700。
Optional. Specify the input size of detection model for reshaping. Example: 500 700.
Inference options: // 推理选项
-d_fd {CPU,GPU,HETERO} // 人脸检测模型的设备。默认值为 CPU
Optional. Target device for Face Detection model. Default value is CPU.
-d_lm {CPU,GPU,HETERO} //面部特征点检测模型的设备。默认值为 CPU
Optional. Target device for Facial Landmarks Detection model. Default value is CPU.
-d_reid {CPU,GPU,HETERO} // 人脸识别模型的设备,默认值为 CPU
Optional. Target device for Face Reidentification model. Default value is CPU.
-t_fd [0..1] Optional. Probability threshold for face detections. // 人脸检测的概率阈值
(3)实验结果
原始视频:
人脸识别后的视频:
6 machine_translation_demo
机器翻译 Python演示:程序输出从源语言到目标语言的翻译句子。
支持英语、德语、俄语之间的互相翻译
(1)进入下面的代码目录
/home/ubuntu/xuwt/open_model_zoo/demos/machine_translation_demo/python/
(2)使用下面命令运行程序
//以下为英语翻译为德语的代码
python3 machine_translation_demo.py -d CPU -i "a sample english text" -m ./intel/machine-translation-nar-en-de-0002/FP16/machine-translation-nar-en-de-0002.xml --tokenizer-src ./intel/machine-translation-nar-en-de-0002/tokenizer_src/ --tokenizer-tgt ./intel/machine-translation-nar-en-de-0002/tokenizer_tgt/
//以下为英语翻译为俄语的代码
python3 machine_translation_demo.py -d CPU -i "a sample english text" -m ./intel/machine-translation-nar-en-ru-0002/FP16/machine-translation-nar-en-ru-0002.xml --tokenizer-src ./intel/machine-translation-nar-en-ru-0002/tokenizer_src/ --tokenizer-tgt ./intel/machine-translation-nar-en-ru-0002/tokenizer_tgt/
参数说明
usage: machine_translation_demo.py [-h] -m MODEL --tokenizer-src TOKENIZER_SRC
--tokenizer-tgt TOKENIZER_TGT
[-i [INPUT [INPUT ...]]] [-d DEVICE]
[-o OUTPUT] [--output-name OUTPUT_NAME]
optional arguments:
-h, --help show this help message and exit //显示帮助信息
-m MODEL, --model MODEL //必须的参数,指定训练模型的路径
Required. Path to an .xml file with a trained model
--tokenizer-src TOKENIZER_SRC //必须的参数,带有 src 标记器的文件夹的路径包含 vocab.json 和 merges.txt。
Required. Path to the folder with src tokenizer that
contains vocab.json and merges.txt.
--tokenizer-tgt TOKENIZER_TGT //必须的参数,带有 tgt 分词器的文件夹的路径包含 vocab.json 和 merges.txt
Required. Path to the folder with tgt tokenizer that
contains vocab.json and merges.txt.
-i [INPUT [INPUT ...]], --input [INPUT [INPUT ...]] //可选参数,需要翻译的文本或者输入的翻译的txt文件路径
Optional. Text for translation or path to the input
.txt file.
-d DEVICE, --device DEVICE //可选参数,指定使用CPU还是GPU进行推理
Optional. Specify the target device to infer on; CPU or
GPU is acceptable. The demo
will look for a suitable plugin for device specified.
Default value is CPU.
-o OUTPUT, --output OUTPUT //可选参数,指定输出的txt文件路径
Optional. Path to the output .txt file.
(3)实验结果
1)英文翻译为俄文
2)英文翻译为德文
7 multi_camera_multi_target_tracking_demo
多相机多目标 Python 演示,
说明:多相机多目标指的是利用多个摄像头对多个目标进行跟踪
(1)进入下面的代码目录
/home/ubuntu/xuwt/open_model_zoo/demos/multi_camera_multi_target_tracking_demo/python/
(2)使用下面命令运行程序
python3 multi_camera_multi_target_tracking_demo.py -i ./videos/people-detection.mp4 ./videos/car-detection.mp4 ./videos/head-pose-face-detection-female-and-male.mp4 --m_detector ./intel/person-detection-retail-0013/FP16/person-detection-retail-0013.xml --m_reid ./intel/person-reidentification-retail-0277/FP16/person-reidentification-retail-0277.xml --config configs/person.py
参数说明
optional arguments:
-h, --help show this help message and exit //显示帮助信息
-i INPUT [INPUT ...], --input INPUT [INPUT ...]
//必须的参数,输入源,相机序号或者视频文件路径
Required. Input sources (indexes of cameras or paths
to video files)
--loop Optional. Enable reading the input in a loop //可选参数,开启输入循环
--config CONFIG Configuration file //配置文件
-m M_DETECTOR, --m_detector M_DETECTOR //对象检测模型的路径
Path to the object detection model
--t_detector T_DETECTOR //对象检测模型的阈值
Threshold for the object detection model
--m_reid M_REID Required. Path to the object re-identification model //必须的参数,对象重新识别模型的路径
--output_video OUTPUT_VIDEO //可选参数,输出视频的路径
Optional. Path to output video
--no_show Optional. Don't show output //可选参数,不显示输入结果
-d DEVICE, --device DEVICE //选择CPU还是GPU
(3)实验结果
8 multi_channel_object_detection_demo_yolov3
多通道目标检测 Yolov3 C++ 演示:Yolov3 一种深度学习目标检测算法。
说明:根据代码的readme来看,多通道指的是将多个摄像头采集到的数据作为输入数据,使用openCv进行目标检测。
目标检测:找出图像或视频中感兴趣的目标(物体),同时确认它们的类别和位置(例如,找出一张图片中所有的人)
实验无法进行:
官方仓库中找不到README文档中的multi_channel_object_detection_demo_yolov3文件
官方仓库只有4个文件
9 sound_classification_demo
声音分类演示:看python源码,是根据加载模型的label,对源声音数据按匹配label进行分类。
每秒检查,推理出类型class和概率。推测结果class 52为人声。
(1)进入下面的代码目录
/home/ubuntu/xuwt/open_model_zoo/demos/sound_classification_demo/python/
(2)使用下面命令运行程序
python3 sound_classification_demo.py -i clean007.wav -m ./public/aclnet/FP16/aclnet.xml -d CPU --sample_rate 16000
参数说明
Options:
-h, --help Show this help message and exit. //显示帮助信息
-i INPUT, --input INPUT //必选参数,指定要处理的输入
Required. Input to process
-m MODEL, --model MODEL //必选参数,指定训练模型路径
Required. Path to an .xml file with a trained model.
-d DEVICE, --device DEVICE //可选参数,指定使用CPU还是GPU进行推理训练,默认使用CPU
Optional. Specify the target device to infer on; CPU or
GPU is acceptable. The demo
will look for a suitable plugin for device specified.
Default value is CPU
--labels LABELS Optional. Labels mapping file //可选参数,标签映射文件,指定class类
-sr SAMPLE_RATE, --sample_rate SAMPLE_RATE
Optional. Set sample rate for audio input //可选参数,设置音频输入的采样率
(3)实验结果
1)输入音频如下
输出结果:class代表不同类型的声音,前面的百分比代表准确度
2)将一段只有人声的音频输入,音频如下
使用下面命令运行程序
python3 sound_classification_demo.py -i clean007.wav -m ./public/aclnet/FP16/aclnet.xml -d CPU --sample_rate 16000
输出结果
因此可以得出class 52代表人声
10 time_series_forecasting_demo
时间序列预测演示,时间序列预测的目标是根据过去的数据模式和趋势,预测未来一段时间内的数值。
电力数据推理预测
(1)进入下面的代码目录
/home/ubuntu/xuwt/open_model_zoo/demos/time_series_forecasting_demo/python/
(2)使用下面命令运行程序
python3 time_series_forecasting_demo.py -i electricity.pickle -m ./intel/time-series-forecasting-electricity-0001/FP16/time-series-forecasting-electricity-0001.xml
参数说明
optional arguments:
-h, --help show this help message and exit //显示帮助信息
-m MODEL, --model MODEL //必须的参数,指定训练模型的路径
Required. Path to an .xml file with a trained model
-i INPUT, --input INPUT //必须的参数, .pickle 格式的数据集文件的路径
Required. Path to the dataset file in .pickle format.
(3)实验结果
不指定--quantiles QUANTILES参数
- P10 (0.1)-预计真实值将在 10% 的时间内低于预测值。
- P50 (0.5)-预计真实值将在 50% 的时间内低于预测值。这也称作中位数的预测。
- P90 (0.9)-预计真实值将在 90% 的时间内低于预测值。
OpenCV学习
AI预训练模型
- Hugging Face 机器学习界的github,共享超过100000个与训练模型,10000个数据集,涵盖了 NLP、计算机视觉、语音、时间序列、生物学、强化学习等领域,以帮助科学家和相关从业者更好地构建模型,并将其用于产品或工作流程。
- Intel Open Model Zoo 英特尔OpenVINO工具套件的预训练模型库,包含商业级模型及公开模型,可快速应用于项目
- Pytorch预训练模型 Pytorch预训练模型
- Tensorflow预训练模型 TensorFlow Hub 是一个包含经过训练的机器学习模型的代码库,这些模型稍作调整便可部署到任何设备上。您只需几行代码即可重复使用经过训练的模型,例如 BERT 和 Faster R-CNN
- 飞桨预训练模型 PaddleHub可以便捷地获取PaddlePaddle生态下的预训练模型,完成模型的管理和一键预测。配合使用Fine-tune API,可以基于大规模预训练模型快速完成迁移学习,让预训练模型能更好地服务于用户特定场景的应用
开发案例
基于英特尔开发者套件及 OpenVINO分析时序数据预测通行速度
荣旭智能基于Anomalib打造智能光学字符瑕疵检测系
在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型
在AI爱克斯开发板上用OpenVINO运行GPT-2模型
自训练Pytorch模型使用OpenVINO优化并部署在AI爱克斯开发板 开发者实
10分钟用英特尔® 开发者套件搭建RTMP流媒体服务器并基于OpenVINO™ AI赋能视频处理
从零开始带你用英特尔开发者套件 AI 爱克斯板 + OpenVINO™ 做视频流检测 | 开发者实战
案例分享
- 在AI爱克斯开发板上用OpenVINO™运行GPT-2模型
- 在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型
- 在AI爱克斯开发板上用OpenVINO加速YOLOv8目标检测模型
- 在AI爱克斯开发板上用OpenVINO加速YOLOv8-seg实例分割模型
- 使用AI爱克斯开发板与LabVIEW实现麦克纳母轮小车的控制
- 自训练Pytorch模型使用OpenVINO™优化并部署在AI爱克斯开发板
- 英特尔开发者套件爱克斯板与CODESYS实现软PLC配置并与外界程序通信
- 在英特尔开发者套件上用OpenVINO™ 2023.0加速YOLOv8-Pose姿态估计模型
- 10分钟用英特尔开发者套件搭建RTMP流媒体服务器并基于OpenVINO™ AI赋能视频处理
- 基于英特尔数字化开发套件爱克斯板利用Anomalib 打造智能光学字符瑕疵检测系统
- 基于英特尔开发者套件及 OpenVINO™ 分析时序数据预测通行速度
参与竞赛
- 2023 EdgeX全球大学生挑战赛
- 2023 中美青年创客大赛
- Robocpu Home2023