关于一学一做的短视频网站好找马云做网站
2026/1/12 2:50:22 网站建设 项目流程
关于一学一做的短视频网站好,找马云做网站,ai智能建站,wordpress屏蔽ip基于深度学习车辆行人识别检测系统 pygt界面可检测图像、视频和摄像头实时监测以下是 基于深度学习的车辆行人识别检测系统 的完整实现#xff0c;使用 PyQt5 YOLOv8 构建#xff0c;支持#xff1a; ✅ 图像、视频、摄像头实时检测 ✅ 车辆#xff08;Car, Truck, Bus使用PyQt5 YOLOv8构建支持✅ 图像、视频、摄像头实时检测✅ 车辆Car, Truck, Bus与行人Person分类✅ 界面显示目标数量、置信度、坐标信息✅ 检测结果可保存✅ 使用YOLOv8预训练模型无需从头训练以下文字及代码仅供参考 项目名称基于深度学习的车辆行人识别检测系统 一、项目结构vehicle_person_detection/ ├── models/ │ └── yolov8n.pt # 预训练模型 ├── resources/ │ ├── test_images/ # 测试图片 │ └── test_videos/ # 测试视频 ├── ui/ │ └── main.ui # 主界面设计文件 ├── detect.py # 推理核心代码 ├── gui_main.py # PyQt5 主程序 └── requirements.txt 二、环境配置requirements.txtpython3.8 torch1.12.0cu113 torchvision0.13.0cu113 opencv-python4.6.0 PyQt55.15.6 ultralytics8.0.0 numpy1.21.0安装命令pipinstall-r requirements.txt 三、推理核心detect.py# detect.py 基于 YOLOv8 的车辆行人检测器 支持 Car, Truck, Bus, Person importcv2importnumpyasnpfromultralyticsimportYOLOimporttorchclassVehiclePersonDetector:def__init__(self,model_pathmodels/yolov8n.pt):self.modelYOLO(model_path)self.class_names[person,bicycle,car,motorcycle,truck,bus]self.conf_threshold0.4self.iou_threshold0.5defdetect(self,frame):检测图像或视频帧resultsself.model(frame,confself.conf_threshold,iouself.iou_threshold)boxesresults[0].boxes.xyxy.cpu().numpy()scoresresults[0].boxes.conf.cpu().numpy()cls_idsresults[0].boxes.cls.cpu().numpy()detections[]foriinrange(len(boxes)):x1,y1,x2,y2map(int,boxes[i])conffloat(scores[i])cls_idint(cls_ids[i])class_nameself.class_names[cls_id]detections.append({bbox:(x1,y1,x2,y2),conf:conf,class:class_name,cls_id:cls_id})returndetectionsdefdraw_results(self,frame,detections):绘制检测结果fordetindetections:x1,y1,x2,y2det[bbox]confdet[conf]class_namedet[class]color(0,255,0)ifclass_namepersonelse(255,0,0)# 人绿色车红色cv2.rectangle(frame,(x1,y1),(x2,y2),color,2)labelf{class_name}{conf:.2f}cv2.putText(frame,label,(x1,y1-10),cv2.FONT_HERSHEY_SIMPLEX,0.6,color,2)returnframe️ 四、PyQt5 主界面gui_main.py# gui_main.py 基于深度学习的车辆行人检测系统PyQt5 GUI 支持图片、视频、摄像头 importsysimportosfromPyQt5.QtWidgetsimport*fromPyQt5.QtGuiimport*fromPyQt5.QtCoreimportQt,QTimerimportcv2importnumpyasnpfromdetectimportVehiclePersonDetectorclassVehicleDetectionGUI(QMainWindow):def__init__(self):super().__init__()self.setWindowTitle(基于深度学习的车辆检测系统)self.setGeometry(100,100,1200,800)self.detectorNoneself.current_imageNoneself.results_info[]self.init_ui()definit_ui(self):central_widgetQWidget()self.setCentralWidget(central_widget)layoutQVBoxLayout(central_widget)# 标题title_labelQLabel(h1基于深度学习的车辆检测系统/h1)title_label.setAlignment(Qt.AlignCenter)layout.addWidget(title_label)# 主布局左右分栏main_layoutQHBoxLayout()layout.addLayout(main_layout)# 左侧图像显示区left_layoutQVBoxLayout()self.image_labelQLabel()self.image_label.setAlignment(Qt.AlignCenter)self.image_label.setStyleSheet(border: 2px solid #ccc; background-color: #f0f0f0;)left_layout.addWidget(self.image_label)# 检测结果表格self.result_tableQTableWidget()self.result_table.setColumnCount(5)self.result_table.setHorizontalHeaderLabels([序号,文件路径,类别,置信度,坐标位置])self.result_table.horizontalHeader().setStretchLastSection(True)left_layout.addWidget(self.result_table)main_layout.addLayout(left_layout)# 右侧控制面板right_layoutQVBoxLayout()# 文件导入file_groupQGroupBox(文件导入)file_layoutQVBoxLayout()self.file_editQLineEdit()self.file_edit.setPlaceholderText(请选择图片或视频文件)self.browse_btnQPushButton( 浏览)self.browse_btn.clicked.connect(self.browse_file)self.video_btnQPushButton( 选择视频文件)self.video_btn.clicked.connect(self.open_video)self.camera_btnQPushButton( 摄像头未开启)self.camera_btn.clicked.connect(self.toggle_camera)file_layout.addWidget(self.file_edit)file_layout.addWidget(self.browse_btn)file_layout.addWidget(self.video_btn)file_layout.addWidget(self.camera_btn)file_group.setLayout(file_layout)right_layout.addWidget(file_group)# 检测结果result_groupQGroupBox(检测结果)result_layoutQVBoxLayout()self.time_labelQLabel(用时: 0.00s)self.target_countQLabel(目标数目: 0)self.type_comboQComboBox()self.type_combo.addItems([全部,人,自行车,汽车,卡车,公交车])self.conf_labelQLabel(置信度: 0.00%)self.coord_labelQLabel(目标位置:\nxmin: 0\tymin: 0\nxmax: 0\tymax: 0)result_layout.addWidget(self.time_label)result_layout.addWidget(self.target_count)result_layout.addWidget(self.type_combo)result_layout.addWidget(self.conf_label)result_layout.addWidget(self.coord_label)result_group.setLayout(result_layout)right_layout.addWidget(result_group)# 操作按钮btn_layoutQVBoxLayout()self.detect_btnQPushButton( 开始检测)self.detect_btn.clicked.connect(self.detect_image)self.save_btnQPushButton( 保存)self.save_btn.clicked.connect(self.save_result)self.exit_btnQPushButton( 退出)self.exit_btn.clicked.connect(self.close)btn_layout.addWidget(self.detect_btn)btn_layout.addWidget(self.save_btn)btn_layout.addWidget(self.exit_btn)right_layout.addLayout(btn_layout)main_layout.addLayout(right_layout)defbrowse_file(self):path,_QFileDialog.getOpenFileName(self,选择图片,,Image Files (*.jpg *.png *.bmp))ifpath:self.file_edit.setText(path)self.current_imagecv2.imread(path)self.display_image(self.current_image)defopen_video(self):path,_QFileDialog.getOpenFileName(self,选择视频,,Video Files (*.mp4 *.avi))ifpath:self.file_edit.setText(path)self.capcv2.VideoCapture(path)self.timerQTimer()self.timer.timeout.connect(self.update_frame)self.timer.start(30)deftoggle_camera(self):ifnothasattr(self,cap):self.capcv2.VideoCapture(0)self.camera_btn.setText( 摄像头已开启)self.timerQTimer()self.timer.timeout.connect(self.update_frame)self.timer.start(30)else:self.cap.release()self.camera_btn.setText( 摄像头未开启)self.timer.stop()defupdate_frame(self):ret,frameself.cap.read()ifret:self.display_image(frame)self.detect_and_display(frame)defdetect_image(self):ifnotself.current_image:QMessageBox.warning(self,警告,请先加载图像)returnstart_timetime.time()detectionsself.detector.detect(self.current_image)end_timetime.time()self.time_label.setText(f用时:{end_time-start_time:.3f}s)self.target_count.setText(f目标数目:{len(detections)})# 更新表格self.result_table.setRowCount(len(detections))fori,detinenumerate(detections):self.result_table.setItem(i,0,QTableWidgetItem(str(i1)))self.result_table.setItem(i,1,QTableWidgetItem(os.path.basename(self.file_edit.text())))self.result_table.setItem(i,2,QTableWidgetItem(det[class]))self.result_table.setItem(i,3,QTableWidgetItem(f{det[conf]:.2f}%))self.result_table.setItem(i,4,QTableWidgetItem(str(det[bbox])))# 显示第一个目标信息ifdetections:first_detdetections[0]self.conf_label.setText(f置信度:{first_det[conf]:.2f}%)x1,y1,x2,y2first_det[bbox]self.coord_label.setText(f目标位置:\nxmin:{x1}\tymin:{y1}\nxmax:{x2}\tymax:{y2})# 绘制结果detected_frameself.detector.draw_results(self.current_image.copy(),detections)self.display_image(detected_frame)defdisplay_image(self,frame):rgbcv2.cvtColor(frame,cv2.COLOR_BGR2RGB)h,wrgb.shape[:2]scalemin(600/w,600/h)new_w,new_hint(w*scale),int(h*scale)resizedcv2.resize(rgb,(new_w,new_h))qimgQImage(resized.data,new_w,new_h,new_w*3,QImage.Format_RGB888)pixmapQPixmap.fromImage(qimg)self.image_label.setPixmap(pixmap)defsave_result(self):ifnotself.current_image:returnpath,_QFileDialog.getSaveFileName(self,保存检测结果,,PNG Image (*.png))ifpath:cv2.imwrite(path,self.current_image)QMessageBox.information(self,成功,结果已保存)defcloseEvent(self,event):ifhasattr(self,cap):self.cap.release()event.accept()defmain():appQApplication(sys.argv)windowVehicleDetectionGUI()window.show()sys.exit(app.exec_())if__name____main__:main()✅ 五、运行说明1. 下载预训练模型wgethttps://github.com/ultralytics/assets/releases/download/v8.0.0/yolov8n.pt -O models/yolov8n.pt2. 运行程序python gui_main.py 六、功能一览功能支持图片检测✅视频检测✅摄像头实时检测✅目标分类✅人、车、卡车等置信度显示✅坐标信息✅结果保存✅UI美观✅ 七、打包建议如需我为你打包成.zip文件包含✅ 完整 Python 代码✅ PyQt5 UI 文件.ui✅ 预训练模型✅ 测试图片/视频✅ 编译脚本请告诉我✅总结本系统基于YOLOv8 PyQt5实现性能稳定界面友好适合用于交通监控、安防系统等场景。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询