PyQT5+ONNXRUNTIME实现风格迁移应用

2023-10-26 18:31:53 浏览数 (3)

2023年一月份跟二月份创建了一个PyQT5人工智能软件开发系列的文章系列,过去的两个月都没怎么更新,心里一直想有时间继续更新下去,今天又更新了一篇,基于PyQT5实现多线程、界面化、风格迁移模型的实时推理。

基本设计思路

这个系列我好久没有更新了,今天更新一篇PyQT5中如何实现风格迁移模型的推理界面化与多线程支持。构建如图:

参数设置选择模型文件与数据文件地址作为输入。

推理按钮开发推理演示,支持视频与图像文件,开始推理会单独开启一个推理线程实现推理,推理结果通过信号发送到指定的槽函数处理之后更新界面,通过信号与槽机制实现界面线程跟推理线程相互独立与数据共享。

模型说明

基于PyQT5与Candy风格迁移模型实现一个可视化的风格迁移界面程序,实现对任意视频与图像的Candy风格化。这里我选取了一个轻量化的风格迁移模型,整个模型大小只有不到2MB,模型的输入与输出格式与解释截图如下:

记住输入图像的通道顺序是BGR、大小是720x720,然后输出跟输入的格式一致,但是输出是浮点数,需要转化一下才可以正常显示。

运行与演示

图像输入与风格迁移效果:

视频运行

应用程序演示

最终调用应用程序代码,实现启动与运行的界面如下

代码语言:javascript复制
# 初始化APP实例
import platform
app = QtWidgets.QApplication(sys.argv)
if 'Windows' == platform.system():
    app.setStyle('Windows')
# 初始化桌面容器
main_win = QtWidgets.QMainWindow()
# 设置APP窗口名称
main_win.setWindowTitle("图像风格迁移演示-2号高手")
# 初始化内容面板
content_panel = YOLOv8InferPanel()
# 设置窗口大小
main_win.setMinimumSize(1280, 860)
main_win.setCentralWidget(content_panel)

# 请求显示
main_win.show()
# 加载窗口并启动App
app.exec()

0 人点赞