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已经在一些嵌入式开发板上移植运行成功,这个振奋的消息会不会又给自己挖了一个坑呢。

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

    关注

    26

    文章

    6408

    浏览量

    120580
  • dnn
    dnn
    +关注

    关注

    0

    文章

    61

    浏览量

    9539
  • 米尔电子
    +关注

    关注

    2

    文章

    197

    浏览量

    1118
  • AIGC
    +关注

    关注

    1

    文章

    393

    浏览量

    3269
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RZ/G2LRZ/G2LC系列MPU深度解析:硬件设计开发的新选择

    RZ/G2LRZ/G2LC系列MPU深度解析:硬件设计开发的新选择 在电子工程师的日常工作中,
    的头像 发表于 04-01 11:45 190次阅读

    米尔RZ/T2H MPU支持支持多轴实时控制,助力工业以太网

    米尔电子发布基于高端MPU处理器RZ/T2H的CPU模组- MYC-YT2HX核心
    发表于 03-20 19:01

    FPB-RA0E2开发板的批量加载例程

    “RA MCU众测宝典”环境搭建专题再添实用干货!上一篇我们搞定了【FPB-RA0E2开发板的基础环境配置,这次将解锁“批量加载官方例程”技能。
    的头像 发表于 01-29 17:52 7084次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>FPB-RA0E<b class='flag-5'>2</b><b class='flag-5'>开发板</b>的批量加载例程

    Renesas RZ/G2L, RZ/V2L SMARC模块硬件设计解析

    Renesas RZ/G2L, RZ/V2L SMARC模块硬件设计解析 在嵌入式系统开发领域
    的头像 发表于 12-30 09:35 1652次阅读

    Renesas SMARC EVK 开发板启动指南

    Renesas SMARC EVK 开发板启动指南 在嵌入式开发领域,Renesas 的 RZ/G2LRZ/
    的头像 发表于 12-29 16:15 503次阅读

    如何移植EtherCAT Igh--基于米尔RK3576开发板

    本文将介绍基于米尔电子MYD-LR3576开发板米尔基于芯微RK3576开发板)的端移植E
    的头像 发表于 09-26 08:04 1w次阅读
    如何移植EtherCAT Igh--基于<b class='flag-5'>米尔</b>RK3576<b class='flag-5'>开发板</b>

    米尔发表演讲,并携RZ产品亮相2025 Elexcon深圳电子展

    MYIR携RZ系列核心开发板等方案Demo亮相嵌入式MCU/MPU生态专区,并发表主题演讲。技术盛宴:
    的头像 发表于 08-28 08:05 964次阅读
    <b class='flag-5'>米尔</b>发表演讲,并携<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RZ</b>产品亮相2025 Elexcon深圳电子展

    【RA4E2开发板评测】点亮LED灯

    【资料下载】 开发板网址在RA生态网页可以非常方便的下载到:开发板和工具 | 设计资源 | RA MCU | RZ MPU | RA |
    发表于 08-27 20:53

    【免费试用】RA4E2开发板开发板免费评测

    您是硬件工程师、嵌入式系统设计师还是物联网开发者?想要亲身体验RA-ECO-RA4E2-64PIN-V1.0开发板的强大性能,并将其应用
    的头像 发表于 08-12 08:07 1554次阅读
    【免费试用】<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>RA4E<b class='flag-5'>2</b><b class='flag-5'>开发板</b><b class='flag-5'>开发板</b>免费评测

    有奖丨米尔 芯微RK3506开发板免费试用来啦!

    米尔芯微合作发布的新品基于芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额增加啦
    的头像 发表于 07-10 08:03 1183次阅读
    有奖丨<b class='flag-5'>米尔</b> <b class='flag-5'>瑞</b>芯微RK3506<b class='flag-5'>开发板</b>免费试用来啦!

    MCU方案:RZ/G2L Bootloader单独编译方法详解

    微处理器还配备有大量接口,如摄像头输入、显示输出、USB2.0和千兆以太网,因此特别适用于入门级工业人机界面(HMI)和具有视频功能的嵌入式设备等应用。       在RZ/G2L开发工作中,用户经常
    的头像 发表于 07-08 14:47 2968次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b>MCU方案:<b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> Bootloader单独编译方法详解

    基于64位MPU RZ/G2L的uboot串口多波特率支持介绍

    本文主要介绍基于64位MPU RZ/G2L,讨论uboot下非常规波特率115200的支持方法,用于解决客户对uboot下特殊波特率的需求,供客户参考。
    的头像 发表于 07-04 15:54 3222次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>64位MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>的uboot串口多波特率支持介绍

    基于64位MPU RZ/G2L进行32位应用软件开发

    本文主要介绍基于64位MPU RZ/G2L进行32位应用软件开发的介绍,用于解决客户32位软件移植相关问题,供客户参考。
    的头像 发表于 06-26 15:48 2175次阅读
    基于<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>64位MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>进行32位应用软件<b class='flag-5'>开发</b>

    有奖丨米尔 芯微RK3506开发板免费试用

    米尔芯微合作发布的新品基于芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的MYD
    的头像 发表于 06-19 08:04 1220次阅读
    有奖丨<b class='flag-5'>米尔</b> <b class='flag-5'>瑞</b>芯微RK3506<b class='flag-5'>开发板</b>免费试用

    有奖丨米尔 芯微RK3562开发板免费试用新增名额!

    米尔芯微合作发布的新品基于芯微RK3562应用处理器的MYD-YR3562开发板免费试用名额增加
    的头像 发表于 06-13 08:04 1944次阅读
    有奖丨<b class='flag-5'>米尔</b> <b class='flag-5'>瑞</b>芯微RK3562<b class='flag-5'>开发板</b>免费试用新增名额!