在前面的很多目标检测实战的博文和项目开发中我们主要精力放在模型的开发和特定场景领域化数据集的采集和标注,在可视化系统层面比较少关注过,上周的时候在家正好空闲就想着单纯针对可视化系统层面的设计来深入多做一些工作,这里来整体展示对应的设计内容。
使用的组件库主要是PyQt5,PyQt5 是Qt5应用程序框架的一套完整的Python绑定。它让你能用Python语言调用Qt强大的C++库来创建图形用户界面(GUI),本质上是Python和Qt之间的桥梁。
简单来说,PyQt5让你可以:
-
用Python写界面:享受Python简洁的语法,同时拥有Qt强大的功能和丰富的控件库。
-
跨平台运行:写一次代码,就能在Windows、macOS、Linux乃至移动平台(iOS, Android)上运行。
-
使用成熟框架:Qt本身就是最强大的GUI库之一,拥有完备的功能模块,从多媒体、网络到数据库无所不包。
核心架构
PyQt5非常庞大,包含超过620个类和6000个函数与方法。它的功能被划分到了不同的模块中,其中最核心、最常用的是下面这三个:
-
QtCore (核心模块):它包含所有非GUI的基础功能,是运行的基础。负责事件循环、多线程(
QThread)、文件和目录操作(QFile,QDir)、定时器(QTimer)以及最核心的信号与槽机制(Signal & Slot)。 -
QtGui (图形模块):它提供了窗口系统集成、事件处理和2D图形绘制的底层类。比如,用
QPainter绘制自定义图形,使用QFont管理字体,以及加载和操作图像(QImage,QPixmap)。 -
QtWidgets (控件模块):这是你构建界面的“工具箱”,包含了一组用于创建经典桌面风格UI的控件。我们常用的窗口(
QWidget)、按钮(QPushButton)、标签(QLabel)、文本框(QLineEdit)、下拉列表(QComboBox)和各种布局管理器(QVBoxLayout,QGridLayout)都在这里。
除了这三个基础模块,PyQt5还有处理网络(QtNetwork)、数据库(QtSql)、多媒体(QtMultimedia)、甚至Web浏览器(QtWebEngineWidgets)等功能的扩展模块,可按需调用。先完成整体架构的设计,之后围绕整体架构来进行改造,整体架构设计如下:
┌─────────────────────────────────────────────────────────┐
│ MainWindow (主窗口) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Header (顶部导航栏) │ │
│ │ Logo | Model Select | Browse | Load | Device │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌────┬──────────────────────────────────────┬────────┐ │
│ │ │ │ │ │
│ │ N │ Canvas Stack │ Stats │ │
│ │ A │ ┌──────────┐ ┌──────────┐ │ Panel │ │
│ │ V │ │ Original │ │ Result │ │ │ │
│ │ │ │ Canvas │ │ Canvas │ │ 自定义 │ │
│ │ P │ └──────────┘ └──────────┘ │ 统计 │ │
│ │ A │ │ 控件 │ │
│ │ N │ ┌─────────────────────────────────┐ │ │ │
│ │ E │ │ Detection Table │ │ │ │
│ │ L │ └─────────────────────────────────┘ │ │ │
│ │ │ │ │ │
│ └────┴──────────────────────────────────────┴────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Action Bar (底部操作栏) │ │
│ │ Upload | Detect | Save | Clear | Export | ... │ │
│ └─────────────────────────────────────────────────────┘ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Progress Bar (进度条) │ │
│ └─────────────────────────────────────────────────────┘ │
下面首先看下直观的视觉效果:






















































































































































这里系统性开发设计了100余款不同风格的可视化系统界面,后续根据实际受欢迎反响程度把呼声最高的给完善优化发布出来,所有的可视化系统在目前设计层面都支持图像推理、视频推理、实时推理、热力图可视化、对比评估可视化五大核心功能,主要的差异体现在界面系统的布局、样式、组件等UI元素的设计层面上。
667

被折叠的 条评论
为什么被折叠?



