基于 Qt 的智能车辆分类系统
从车辆图片采集、DenseNet121 模型训练,到 TCP 模型服务与 Qt 桌面端集成的一次完整 AI 应用实践。
以 Qt、Python 服务与 DenseNet121 串起离线分类流程。
01 / 项目快照
独立开发者
2023
Python · TensorFlow · DenseNet121 · Qt · C++
TCP Socket
Windows · Ubuntu
数据采集 · 分类训练 · 离线部署 · 桌面应用
02 / 问题
模型不是最终交付;应用才是。
这个项目从一个实际问题出发:如何让车辆图片进入系统、由模型完成分类,再把结果返回给普通用户可操作的 Qt 界面。报告支持图片上传、预览与预测结果反馈,而非宏大的交通产品宣称。
03 / 数据采集与增强
从网络图片到可供训练的样本。
报告记录了使用 fetch.py 通过网页 URL 获取车辆图片,并按类别文件夹整理。报告不同章节的类别举例并不完全一致,因此这里不将它描述为严格固定的三分类系统,而统一表述为多个车辆类别的图像分类。
04 / 模型
基于预训练 DenseNet121 的分类头。
ImageNet · include_top=false↓GlobalAveragePooling2D↓Dense 256 / ReLU↓Softmax
报告代码使用 TensorFlow、ImageNet 预训练权重的 DenseNet121、GlobalAveragePooling2D、256 单元 ReLU 层与 Softmax;训练采用 Adam、categorical_crossentropy,batch size 为 32、epochs 为 10。它不是原创 CNN 架构。
05 / 模型训练
真实记录配置;不伪造曲线。
原始报告记录通过 fit() 训练,并保存模型权重、训练与验证的 accuracy / loss 字段;但没有提供可验证的逐 Epoch 数值序列或训练曲线。因此这里不生成 loss curve。报告只支持:课程实验中的训练准确率约为 95%,不等同于测试集、泛化或生产准确率。
06 / 从模型到服务
离线 Python 服务接收图片并返回结果。
报告中的服务端以 socket.socket(AF_INET, SOCK_STREAM) 建立 TCP 服务,使用 bind、listen、accept 与 recv 接收图片字节;再以 cv2.imdecode 解码、调用模型预测并 send 返回类别。
07 / Qt 桌面客户端
选择图片、发送字节流、等待预测并呈现结果。
报告的 on_pushButton_clicked() 中创建并配置 QTcpSocket,读取图片文件大小并发送图片字节流;客户端随后读取服务端结果并显示到 UI Label。环境资料记录了 Windows、Ubuntu、Qt 5.9.9、g++ 与 Qt Creator,页面仅保留为部署背景,不展开为安装教程。
08 / TCP 系统集成
让模型能力真正回到应用界面。
这不是只停留在训练代码中的模型:图片由 Qt 客户端通过 TCP 发送,Python 服务端完成解码与预测,结果再经 TCP 回到 Qt 界面。
09 / 运行证据
一列档案,保留真实的应用链路。
以下均提取自原始课程报告,经过必要裁切和路径遮挡;不包含虚构的终端、GUI 或训练图。点击可放大。
10 / 实例测试
有限的课程实验,不外推为通用性能。
报告称训练准确率约为 95%,并另选 10 张车辆图片进行实例预测测试,成功输出了部分车辆类别结果。证据范围不足以声明 95% 测试准确率、10/10 正确或真实世界基准表现。
11 / 技术价值
Data pipeline
从网络采集、文件夹整理到数据增强。
Transfer learning
使用预训练 DenseNet121 构建分类模型。
Model serving
Python TCP 服务接收图片并返回预测结果。
Application integration
Qt 将模型能力封装为可操作的桌面界面。
12 / 我的收获
模型准确率只是 AI 应用的一部分;真正产生价值,还要解决数据如何进入系统、模型如何被调用、结果如何返回,以及用户如何使用。
这次实践完整串起了数据获取、模型训练、离线部署、网络通信与 GUI 集成。今天回看,数据来源较粗糙、类别定义并不完全统一、训练与测试规模有限,评估指标也不够系统,TCP 通信与 Qt UI 都仍是课程原型。若今天重做,我会固定类别定义和干净的数据集划分,补充独立测试集、confusion matrix、precision / recall / F1,采用更规范的 inference API、自动化测试与更完善的 UI;这些是今天的改进方向,而非 2023 年已经完成的能力。