基于YOLOv5的作弊行为检测系统Python和pycharm实现可实时检测有方便操作的图形化界面考场里转笔的手速再快也快不过AI的识别速度。今天咱们来搞点有意思的——用YOLOv5做个能实时抓作弊行为的系统重点在于手部异常动作识别。别被吓到这玩意儿实现起来比想象中简单咱们边撸代码边聊。先上硬货环境配置用conda新建个环境conda create -n cheat_det python3.8 conda activate cheat_det pip install torch1.9.0cu111 torchvision0.10.0cu111 -f https://download.pytorch.org/whl/torch_stable.html pip install pyqt55.15.4 opencv-python4.5.3.56装完这些基本就能跑起来了。YOLOv5的源码直接去官方仓库拖下来注意别用最新版v6.0之后的版本对自定义数据不太友好建议用v5.0分支。界面部分咱们用PyQt5搭个操作台比tkinter那套好看不止一星半点。核心代码结构长这样class MainWindow(QMainWindow): def __init__(self): super().__init__() self.video_thread VideoThread() # 视频流处理线程 self.init_ui() def init_ui(self): self.video_label QLabel(self) # 显示视频的组件 self.start_btn QPushButton(启动监控, self) self.start_btn.clicked.connect(self.toggle_detection) def toggle_detection(self): if not self.video_thread.isRunning(): self.video_thread.start() self.start_btn.setText(停止监控) else: self.video_thread.terminate() self.start_btn.setText(启动监控)重点是这个VideoThread继承自QThread负责在后台跑YOLOv5的检测逻辑避免界面卡死。这年头不用多线程搞实时检测的都是耍流氓。基于YOLOv5的作弊行为检测系统Python和pycharm实现可实时检测有方便操作的图形化界面模型加载部分得注意参数设置def load_model(): model torch.hub.load(ultralytics/yolov5, custom, pathbest.pt, force_reloadTrue) model.conf 0.6 # 置信度阈值别设太低误检会要命 model.iou 0.45 # 交并比适中防止重复框选 return model这里有个坑——如果直接调用detect.py视频流延迟会很高。咱们得自己重写推理循环def run(self): cap cv2.VideoCapture(0) # 0号摄像头 while True: ret, frame cap.read() if ret: results self.model(frame, size640) # 输入尺寸别超过640 self.send_result.emit(results.render()[0])注意这个size参数设太大虽然精度可能提升但帧率会暴跌。实测在RTX3060上跑640尺寸能到45帧足够流畅。作弊行为识别的关键在数据标注。需要重点标注这些动作手部快速移动传纸条头部频繁左右转动偷看邻座异常身体倾斜看小抄标注文件用YOLO格式举个样例0 0.4453125 0.329861111111 0.1484375 0.157407407407 # 正常坐姿 1 0.678125 0.4325 0.0875 0.155 # 手部异常动作数据增强要适度特别是随机旋转别超过15度否则正常转头和作弊动作容易混淆。最后打包时用pyinstaller记得加这些参数pyinstaller --noconsole --add-data best.pt;. --hidden-import PyQt5.sip main.py不然分分钟给你报找不到模型文件的错误。实测打包后的exe在Win10下能跑但建议还是配个环境省事。整个项目跑起来后你会发现这系统最实用的场景可能不是考场——试试用来监控自家猫主子偷吃效果拔群。毕竟在AI眼里作弊行为和偷吃小鱼干的动作模式可能也没差多少嘛。