0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用DNN深度神经网络实现图像AIGC的开发-基于米尔瑞萨RZ/G2L开发板的创新应用

米尔电子 2023-10-21 08:01 次阅读

本文由米尔论坛优秀评测者“ALSET”提供。

01.

项目背景介绍


AIGC(即ArtificialIntelligence Generated Content),中文译为人工智能生成内容。简单来说,就是经过大量特征训练过的神经网络模型来对新的内容或者需求来生成人们需要的创作内容,类似使用人类用思考和创造力才能完成的工作过程,而现在可以利用人工智能技术来替代我们完成。在狭义上AIGC是指利用AI自动生成内容的生产方式,比如自动写作、自动设计等。在广义上,AIGC是指像人类一样具备生成创造能力的AI技术,它可以基于训练数据和生成算法来完成各类的内容生成创作。在图像生成模型生成方面最主要的几个代表模型,是以下常见的4个模型:

DNNGANVAEDiffusion

其中基于深度神经网络(DNN)的进行图像艺术风格转移(Transform),生成高质量的具有艺术风格图像的神经网络模型。该模型通过深度神经网络分别提取图像中的内容和风格特征,然后对其目标图片内容进行重组,生成具有原图内容和艺术风格的图像,其风格转移不仅对图像的图案,颜色,特征等进行修改还保留原图高可辨识的内容载体。通常AIGC对硬件性能要求较高,只要具备高性能的图形图像的PC图形工作站或者服务器上来运行。而这里我们将使用MYD-YG2L开发板上来实现在嵌入式设备上完成图像风格转移计算这一任务。并且结合图形界面和USB摄像头完成对任意拍摄的图片进行图像风格化的开发。让嵌入式上也能够体验这种独特的AIGC内容生成方式。


02.

技术硬件方案


项目采用MYD-YG2L为主控板,使用800万像素4K级广角USB相机镜头,通过采集画面,在主控板内完成对画面的风格化处理,并通过HDMI输出显示生成的图像。

这里使用开发板连接HDMI显示器和接入一个4K高清镜头,主要硬件连接如下图:

01e24ac2-6fa5-11ee-9788-92fbcf53809c.png

03.

主要技术原理


图像风格转移的主要过程是对输入img_content和img_style,然后要把img_content的内容主体和img_style进行一个结合,实现一个图像的创意创作,这个过程也叫做Style Transform 即风格转移。

其核心的算法是把基于CNN卷积编码后的特征向量transformer第一个结合到风格迁移任务中,再对混合后的内容进行解码,从而输出新的图像内容,主要参考李飞飞论文,其核心流程如下图:02144842-6fa5-11ee-9788-92fbcf53809c.png022a2d7e-6fa5-11ee-9788-92fbcf53809c.png023f21e8-6fa5-11ee-9788-92fbcf53809c.png 经过测试MYD-YG2L较好的支持OpenCV这个工具库,并且具备较强的图像处理能力。那么就可以在板上使用OpenCV的DNN模块来实现以上算法过程。OpenCV的DNN模块从发行版开始,主要是支持推理,而数据训练不是其支持的目标。因此我们可以使用已经训练好的模型,在板上上完成推理过程,即图像风格转移生成的这一过程。现在OpenCV已经支持TensorFlow、Pytorch/Torch、Caffe、DarkNet等模型的读取,OpenCV的 DNN模块的用法。OpenCV的DNN模块进行模型推理就显得比较简单,过程就是:1.加载模型因为OpenCV DNN模块主要用来做推理计算,所以在使用前首先准备一个训练好的模型(如何训练自己的不同风格的模型后面也会阐述)。OpenCV支持所有主流框架的大部分模型。OpenCV的readNet系列函数就可以看出所支持的框架类型:

readNetFromCaffereadNetFromTensorflowreadNetFromTorchreadNetFromDarknetreadNetFromONNXreadNetFromModelOptimizer

这里所用风格迁移模型是开源的Torch/Lua的模型fast-neural-style。他们提供了十种风格迁移的模型,模型的下载脚本在:https://github.com/jcjohnson/fas ... _transfer_models.sh。这里使用OpenCV的readNetFromTorch函数加载PyTorch模型。2.输入图像预处理在OpenCV中输入给模型的图像需要首先被构建成一个4个区块的数据块(Blob),并且做如resize、归一化和缩放之类的一些预处理。3.模型推理模型推理过程就是把输入构建的blob输入给模型神经网络模型进行一次前向传播,在OpenCV中,用以下非常简单的两行代码即可完成:net.setInput(blob)output = net.forward()

04.

软件系统设计


在本软件开发,主要使用MYD-YG2L的SDK中,使用了OpenCV SDK与QT SDK。QT 主要实现文件图像风格转移的界面操作,使用OpenCV实现DNN图像推理计算。设计QTUI,选择文件或者摄像头采集原图像

024432f0-6fa5-11ee-9788-92fbcf53809c.png 

开发UI交互逻辑代码

025e854c-6fa5-11ee-9788-92fbcf53809c.png 

开发OpenCV DNN神经网络调用模块

026b3ab2-6fa5-11ee-9788-92fbcf53809c.png 

在开发板的交叉编译环境编译,把编译的结果部署到开发板上。另外把风格转移用到的训练模型文件也部署到开发板上,经过实际测试,以下模型在开发板上运行正常,而其它模型则因内存不够而报错。1: "udnie", 2: "la_muse", 3: "the_scream", 4: "candy", 5: "mosaic", 6: "feathers", 7: "starry_night"

05.

软件运行效果


把QT软件与相关模型文件部署到开发板上后,即可以运行测试效果,开发板上启动运行QT程序命令:./style_transform -platform linuxfb运行后,选择一张图片显示

点击 “transform”按钮,等待约13秒,得到风格转移输出画面

再换一张米尔的LOGO图,这个图片尺寸较小,图像内容变化率低看一下,风格化转换时间:

02a73f8a-6fa5-11ee-9788-92fbcf53809c.png 

测试仍然为13秒左右,得到如下输出图像:

02b7a230-6fa5-11ee-9788-92fbcf53809c.png 

这上面使用的是feathers模型生成的风格图片,其它模型时间也差不多在这个时间。

06.

开发后记


最后使用开发的图像转换程序,在MAC电脑上编译了MAC版本与开发板上对同一图片转换进行比较。其使用MacBook Pro 2.2G 16G内存主频硬件运行该图片转换时,需要8.6秒。多次测试,对不同模型的转换分别测试,基本上在MYD-YG2LX上运行速度能达到MAC电脑转换的66%性能,这个结果看该开发板其DNN推理计算性能比较强悍。 该项目在后续的发展中,在有更多时间时,将尝试训练更多特色的风格,以及融入GAN生成神经网络模型的内容生成模型,尝试多种方法来进行更丰富多彩的内容生成。在做本项目开发时,从资料中已知知名的内容生成项目stable diffusion已经在一些嵌入式开发板上移植运行成功,这个振奋的消息会不会又给自己挖了一个坑呢。

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

    关注

    25

    文章

    4429

    浏览量

    93993
  • dnn
    dnn
    +关注

    关注

    0

    文章

    56

    浏览量

    8952
  • 米尔电子
    +关注

    关注

    0

    文章

    62

    浏览量

    362
  • AIGC
    +关注

    关注

    1

    文章

    260

    浏览量

    906
收藏 人收藏

    评论

    相关推荐

    米尔-RZ/G2UL开发板】3.杂项测试

    米尔-RZ/G2UL开发板】3.杂项测试 不知道为啥我这板子好多奇奇怪怪的调试信息蹦出来,
    发表于 02-28 15:25

    米尔-RZ/G2UL开发板】1.开箱

    米尔-RZ/G2UL开发板】1.开箱 开箱视频 开箱也许会迟到,但是绝对不会缺席。今天开箱
    发表于 02-04 23:38

    米尔RZ/G2L开发板-试用体验】认识一下米尔RZ/G2L开发板的核心

    图 通过这篇文章,希望各位看官能初步了解米尔RZ/G2L开发板强大的功能及
    发表于 07-29 00:21

    米尔RZ/G2L开发板-试用体验】米尔RZ/G2L开发板使用SSH登录

    收到的米尔RZ/G2L开发板上电测试一下SSH登录方式和其它测试! SSH登录 在使用
    发表于 06-11 21:47

    米尔瑞萨RZ/G2L开发板-试用体验】创建TCP服务器

    米尔RZ/G2L开发板上用C 创建TCP服务器
    的头像 发表于 05-27 08:59 7499次阅读
    【<b class='flag-5'>米尔</b>瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b><b class='flag-5'>开发板</b>-试用体验】创建TCP服务器

    米尔瑞萨RZ/G2L开发板 安装交叉编译器

    米尔瑞萨RZ/G2L开发板安装交叉编译器
    的头像 发表于 05-26 22:05 1714次阅读
    <b class='flag-5'>米尔</b>瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b><b class='flag-5'>开发板</b> 安装交叉编译器

    150套开发板免费送!还有5G手机拿?米尔RZ/G2L开发板创意秀

    /12 05 送的是哪款开发板米尔MYD-YG2LX开发板,该款产品采用
    发表于 05-24 16:36

    米尔RZ/G2L开发板 触摸屏测试 #米尔开发板 #YG2LX #触摸屏

    开发板米尔
    华仔stm32
    发布于 :2023年05月24日 13:17:25

    米尔RZ/G2L开发板-试用体验】米尔RZ/G2L开发板开箱视频

    今天刚刚收到米尔RZ/G2L开发板,拆开包裹后给人的感觉是惊艳,板卡设计真的很棒,来看看视频
    发表于 05-22 21:58

    米尔RZ/G2L开发板-试用体验】米尔-RZG2L - 64位双核MPU开发板开箱测评

    刚收到米尔RZ/G2L开发板打开包装后看到的很大的一块黑色PCB,做工精美的
    发表于 05-22 21:53

    米尔RZ/G2L开发板-试用体验】LCD 显示测试

    实验器材 1、米尔RZ/G2L开发板 2、MY-
    发表于 05-22 19:26

    米尔瑞萨RZ/G2L开发板 TF卡读写速度测试

    米尔瑞萨RZ/G2L开发板TF卡读写测试
    的头像 发表于 05-22 09:07 1007次阅读
    <b class='flag-5'>米尔</b>瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b><b class='flag-5'>开发板</b> TF卡读写速度测试

    米尔RZ/G2L开发板-试用体验】开箱 + 开机

    感谢 感谢电子发烧友论坛、感谢米尔电子,把米尔RZ/G2L
    发表于 05-18 19:33

    米尔瑞萨RZ/G2L开发板-初体验

    介绍米尔RZ/G2L开发板
    的头像 发表于 05-15 09:10 699次阅读
    <b class='flag-5'>米尔</b>瑞萨<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b><b class='flag-5'>开发板</b>-初体验

    米尔RZ/G2L开发板-试用体验】开箱

    感谢 感谢电子发烧友论坛、感谢米尔电子,把米尔RZ/G2L
    发表于 05-14 19:41