【免费】2026年6月最新XPlane12 12.4.3-r1和谐版免费下载
2026/7/22 8:46:27
智能科学与技术机器视觉毕业设计:新手入门实战指南与避坑清单
做机器视觉毕设,实验室里最常听到的三句话:
“老师,我环境又崩了。”
“Git 是啥?我代码在 U 盘里。”
“跑通一次就改不动,越调越乱。”
总结下来,新手最容易踩的坑无非这三类:
gesture_v1.py一路写到gesture_final_really_final.py,最后连自己都分不清哪个能跑。这些“非算法”问题,往往比调参更浪费时间。下面给出一条“能跑起来再说”的实战路线,先把流程打通,再谈创新点。
| 方案 | 优点 | 缺点 | 毕设场景建议 |
|---|---|---|---|
| OpenCV | C++ 底层,Python 接口成熟,文档多 | 手写算法多,开发慢 | 图像预处理、传统特征提取 |
| MediaPipe | 现成手掌/人脸关键点,一行代码出结果 | 黑盒,自定义模型难 | 快速原型、演示环节 |
| YOLOv5 | 社区活跃,mAP 高,导出 ONNX 方便 | 权重 7-14 MB,CPU 延迟 200 ms+ | 精度优先,GPU 可用 |
| MobileNet-SSD | 1.3-2.8 MB,CPU 延迟 50 ms,量化后 30 ms | 精度略低,小目标容易漏检 | 资源受限、树莓派部署 |
经验:如果答辩现场只给用笔记本摄像头,选 MobileNet-SSD + OpenCV 就能 30 分钟搭出 demo,老师先看“能动”,再听你讲“为什么能动”。
下面以“剪刀石头布”三分类为例,手把手走一遍“数据采集 → 训练 → 摄像头推理”。
letterbox缩放到模型输入 224×224,减少失真。data/gesture/{paper,rock,scissors}存放,后面直接喂给ImageFolder。transform = A.Compose([ A.ShiftScaleRotate(shift_limit=0.1, scale_limit=0.2, rotate_limit=15, p=0.7), A.RandomBrightnessContrast(p=0.5), A.HorizontalFlip(p=0.5), A.Resize(224, 224), A.Normalize(), ToTensorV2() ])经验:别在验证集做翻转,防止“左右手”标签互换,答辩被怼。
import torchvision.models as models model = models.mobilenet_v2(pretrained=True) model.classifier[1] = nn.Linear(model.last_channel, 3)见附录train.py,支持:
best.pth# 伪代码 while True: frame = cap.read() hand = detect_hand(frame) # 返回 ROI if hand is None: continue pred = model(hand) # 3 类概率 label = ['paper', 'rock', 'scissors'][pred.argmax()] cv2.putText(frame, label, (50, 50), ...)注意:MediaPipe 的 detect_hand 返回的是相对坐标,记得乘回原始宽高,否则 ROI 会裁错。
project/ ├── data/ # 原始图片 ├── models/ # 存放 pth、onnx ├── src/ │ ├── dataset.py # 只干数据读取 │ ├── model.py # 只干模型定义 │ ├── train.py # 只干训练循环 │ └── infer.py # 只干摄像头推理 ├── logs/ # TensorBoard + txt └── README.md # 运行步骤,一行命令函数职责单一示例:
# src/utils.py def letterbox(im, new_shape=(224, 224)): """保持纵横比缩放,边缘灰条填充""" ... return resized, ratio, (dw, dh)| 指标 | 目标值 | 实测(i5-8250U) | 优化手段 |
|---|---|---|---|
| 推理延迟 | < 100 ms | 55 ms | ONNX + CPU 线程数 4 |
| 内存占用 | < 500 MB | 380 MB | 图片队列长度 3,及时 del |
| 摄像头权限 | 现场笔记本 | 弹出授权窗 | 提前测试,用管理员运行一次 |
经验:带个绿色补光灯,防止现场背光导致手黑成剪影,模型直接“瞎猜”。
torch.onnx.export(..., opset_version=11),兼容 Win10 的 ONNXRuntime 1.10+。logging模块,同时输出文件与控制台,方便老师现场复现错误。requirements.txt固定 版本 +setup.sh脚本,换电脑 5 分钟搭完环境。毕业设计不是发顶会,先把流程走通、代码写稳、演示不翻车,就已经赢过 80% 的同学。本文给的模板,去年学长用它在 3 周内完成初稿,查重 8%,答辩 92 分。你完全可以照抄再改,更可以在此基础上玩出更多花样。摄像头已经打开,下一步,轮到你了。