开关量输出模块 1794-IB16 耐腐蚀性好
1756-A10 1756-A13 1756-A17 1756-A4 1756-A7 1756-BA1 1756-BA2 1756-BATA | 1756-IF16 1756-IF16H 1756-IF8 1756-IF8H 1756-IF8I 1756-IF6I 1756-IF6CIS 1756-IT6I
| 1794-IM16 1794-IM8 1794-IR8 1794-IRT8 1794-IT8 1794-IV16 1794-IV32 1794-OA16
| 1756-HSC 1756-IA16 1756-IA16I 1756-IA32 1756-IB16 1756-IB16D 1756-IB16I 1756-IB32
|
1756-CN2 1756-CN2R 1756-CNB 1756-CNBR 1756-DHRIO 1756-DNB 1756-EN2T 1756-EN2TR 1756-EN3TR 1756-ENBT 1756-ENET 1756-EWEB | 1756-IR6I 1756-IR12 1756-IRT8I 1756-IT6I2 1756-IM16 1756-L61 1756-L62 1756-L63 1756-L64 1756-L65 1756-L71 1756-L71S
| 1756-M03SE 1756-M08SE 1756-M16SE 1756-N2 1756-OA16 1756-OA16I 1756-OB16D 1756-OB16E 1756-OB16I 1756-OB32 1756-OF4 1756-OF8
| 1756-BATA 1756-CNB 1756-IC16 1756-IB16 1756-IB32 1756-IF16 1756-IR61 1734-ACNR 1734-ADN 1734-AENT 1734-AENTR 1734-APB
|
1756-TBS6H 1756-TBSH 1757-SRM 1746-N2 1746-NI16I 1746-NI4
| 1756-PA75R 1756-PB72 1756-PB75 1756-RM 1756-IB16 1746-IV32
| 1756-OF8I 1756-OW16I 1756-PA72 1756-PA75 1794-OA8 1794-OA8I
| 1746-IA16 1746-IB16 1746-IB32 1746-IM16 1746-IO12DC 1746-ITB16 |
开关量输出模块 1794-IB16 耐腐蚀性好
OpenCV的DNN模块进行模型推理就显得比较简单,过程就是:
1.加载模型
因为OpenCV DNN模块主要用来做推理计算,所以在使用前首先准备一个训练好的模型(如何训练自己的不同风格的模型后面也会阐述)。OpenCV支持所有主流框架的大部分模型。OpenCV的readNet系列函数就可以看出所支持的框架类型:
readNetFromCaffe
readNetFromTensorflow
readNetFromTorch
readNetFromDarknet
readNetFromONNX
readNetFromModelOptimizer
这里所用风格迁移模型是开源的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,选择文件或者摄像头采集原图像
开发UI交互逻辑代码
开发OpenCV DNN神经网络调用模块
在开发板的交叉编译环境编译,把编译的结果部署到开发板上。另外把风格转移用到的训练模型文件也部署到开发板上,经过实际测试,以下模型在开发板上运行正常,而其它模型则因内存不够而报错。
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图,这个图片尺寸较小,图像内容变化率低看一下,风格化转换时间:
测试仍然为13秒左右,得到如下输出图像:
这上面使用的是feathers模型生成的风格图片,其它模型时间也差不多在这个时间。
06.
开发后记
后使用开发的图像转换程序,在MAC电脑上编译了MAC版本与开发板上对同一图片转换进行比较。其使用MacBook Pro 2.2G 16G内存主频硬件运行该图片转换时,需要8.6秒。多次测试,对不同模型的转换分别测试,基本上在MYD-YG2LX上运行速度能达到MAC电脑转换的66%性能,这个结果看该开发板其DNN推理计算性能比较强悍。
该项目在后续的发展中,在有更多时间时,将尝试训练更多特色的风格,以及融入GAN生成神经网络模型的内容生成模型,尝试多种方法来进行更丰富多彩的内容生成。
在做本项目开发时,从资料中已知的内容生成项目stable diffusion已经在一些嵌入式开发板上移植运行成功,这个振奋的消息会不会又给自己挖了一个坑呢。
开关量输出模块 1794-IB16 耐腐蚀性好