×

DeepLabV3开发板应用

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-20

h1654155273.0656

分享资料个

描述

DeepLabV3 开发板应用

该应用程序演示了图像语义分割。本应用中使用的DeepLabV3是谷歌实现的一种语义分割算法。

这将对给定肖像图像中每个像素中的对象进行分类,并将标签分配给每个对象。图像语义分割有助于背景变化、人像模式等应用。

为了开发用于图像分割的 DeepLabV3 模型,我们使用 Snapdragon 移动平台 (SD835) 和高通神经处理 SDK。

模型训练的推荐设置

硬件先决条件

  • 英特尔 i5 或更高
  • NVIDIA 10 系列或更高版本
  • 内存 16 GB 或更多

系统软件要求

  • Ubuntu 14.04 LTS 或以上版本
  • 库达
  • CuDNN

如何训练模型

Tensorflow 的 DeepLab API 设置是训练 DeepLabV3 模型的先决条件。安装步骤请按照以下说明进行,

  • 执行以下命令来安装依赖项,
# Run this command from $ sudo pip install -r dependencies/requirement.txt
  • 通过执行以下命令克隆 tensorflow 及其模型存储库,
$ git clone https://github.com/tensorflow/tensorflow.git
$ cd tensorflow
$ git clone https://github.com/tensorflow/models.git
  • 更新 Python 环境设置
$ cd /tensorflow/models/research
$ export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

注意:需要为每个新的终端会话进行环境设置。

为避免为每个新会话更新环境路径,请在带有绝对路径的 .bashrc 文件末尾添加以上行。

测试安装

运行以下命令测试是否安装成功,

$ cd to tensorflow setup>/tensorflow/models/research
$ python deeplab/model_test.py

安装完成后,执行以下命令开始训练,

$ cd /tensorflow/models/research/deeplab
$ sh local_test.sh 

注意:默认local_test.sh中的迭代次数为10,如有需要请自行修改。

如何将Tensorflow的模型转化为DLC?

先决条件:Qualcomm 神经处理 SDK 设置。使用以下链接中的说明进行设置,

https://developer.qualcomm.com/software/qualcomm-neural-processing-sdk/getting-started

  • 使用tensorflow初始化Neural Processing SDK SDK的环境变量。
  • 该模型使用 TensorFlow 框架进行训练,并导出为扩展名为 .pb 的图形文件。
  • 使用以下命令将 .pb 文件转换为 .dlc 文件后:

使用高通神经处理 SDK 在 Ubuntu 上进行推理

SDK 不支持将直接图像作为推理模型的输入。

Qualcomm 神经处理 SDK 需要将 NumPy 数组存储为原始文件。为了在 SDK 中运行应用程序,我们需要对输入图像进行预处理。

以下是 src/deep_input_raw.py 文件中预处理步骤的详细信息,

(我们已经使用opencv对图像进行预处理)

  • 将图像调整为 513x513x3 的尺寸。
  • 用平均值 128 填充较小的维度以生成 513x513x3 的图像。
  • 将图像转换为 float32 类型。
  • 将图像逐元素乘以 0.00784313771874 并分别减去 1.0。
  • 将此预处理数组存储为原始文件 (blob.raw)。

在执行 src/deep_input_raw.py 脚本时,会生成 blob.raw 文件。

使用 DeepLab 更改背景的过程

以下是使用 src/post_process_deeplab_output.py 更改预处理图像背景的详细步骤说明,

  • 上一节的输出 (output/Result_0/ArgMax:0.raw) 是一个维度为 513x513x1 的 NumPy 数组。
  • 数组中的每个元素都包含给定输入图像对应像素的预测类别索引。
  • 人的索引号是 15。
  • 将 NumPy 数组读入 float32 类型的数据缓冲区。
  • 要将背景更改为灰度,请分配像素值,使 R、G 和 B 分量具有相同的值。例如,将像素值 R(123)、G(93) 和 B(49) 修改为 R( 123),G(123),B(123)。
  • 遍历 NumPy 数组并更改原始调整大小图像中的像素值(按照上面的步骤 5),而不是类索引 15 的像素。
  • 将图像调整为原始大小。

post_process_deeplab_output.py 脚本会将预处理图像的背景更改为灰度。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !