Skip to content

MBriad/openCVandSTM32

Repository files navigation

OpenCV与STM32物体检测系统

项目结构

.
├── stm32_project/           # STM32项目目录
│   ├── Inc/                # 头文件目录
│   │   ├── protocol.h     # 协议定义
│   │   └── ...
│   ├── Src/               # 源文件目录
│   │   ├── protocol.c     # 协议实现
│   │   └── ...
│   └── ...
├── python/                 # Python项目目录
│   ├── main.py           # 主程序
│   ├── camera.py         # 摄像头控制
│   └── ...
└── README.md              # 项目说明文档

功能说明

  1. 使用OpenCV进行实时物体检测
  2. 通过串口与STM32通信
  3. 根据检测结果控制LED指示灯

通信协议

  • 命令格式:单字符命令
    • 'A': 检测到物体A
    • 'B': 检测到物体B
    • 'N': 未检测到物体
  • 响应格式:
    • "ACK_A\r\n": 确认收到A命令
    • "ACK_B\r\n": 确认收到B命令
    • "ACK_N\r\n": 确认收到N命令
    • "ERR\r\n": 错误响应

使用说明

  1. STM32端:

    • 编译并下载程序到STM32开发板
    • 确保LED1和LED2正确连接
    • 通过UART1与Python程序通信
  2. Python端:

    • 安装依赖:pip install -r requirements.txt
    • 运行程序:python main.py
    • 按'q'键退出程序

开发环境

  • STM32CubeIDE
  • Python 3.8+
  • OpenCV 4.5+
  • VSCode

注意事项

  1. 确保摄像头正确连接
  2. 检查串口连接是否正确
  3. 确保LED引脚配置正确

YOLO物体检测应用

这是一个基于YOLOv4-tiny的实时物体检测应用程序,使用OpenCV和Python实现。该应用程序可以通过摄像头实时检测物体,并可以保存检测结果。

功能特点

  • 使用YOLOv4-tiny进行实时物体检测
  • 支持显示检测框、标签和置信度
  • 显示FPS和推理时间等性能指标
  • 错误处理和异常恢复机制
  • 支持按键保存检测结果
  • 支持自动保存检测到物体的帧
  • 兼容不同版本的OpenCV

系统要求

  • Python 3.6或更高版本
  • OpenCV 4.2或更高版本
  • NumPy
  • 摄像头或视频输入设备

安装

  1. 克隆或下载代码库
  2. 安装所需依赖:
pip install opencv-python numpy
  1. 下载YOLOv4-tiny模型文件:
    • yolov4-tiny.weights:预训练权重文件
    • yolov4-tiny.cfg:模型配置文件
    • coco.names.txt:类别名称文件

使用方法

基本用法:

python object_detection.py

命令行参数:

python object_detection.py --config yolov4-tiny.cfg --weights yolov4-tiny.weights --names coco.names.txt --camera 0 --confidence 0.5 --nms 0.4 --save --output output

参数说明:

  • --config:YOLO配置文件路径(默认:yolov4-tiny.cfg)
  • --weights:YOLO权重文件路径(默认:yolov4-tiny.weights)
  • --names:类别名称文件路径(默认:coco.names.txt)
  • --camera:摄像头索引(默认:0)
  • --confidence:置信度阈值(默认:0.5)
  • --nms:非极大值抑制阈值(默认:0.4)
  • --save:启用检测结果保存功能
  • --output:输出文件夹(默认:output)

键盘快捷键

在程序运行时,可以使用以下键盘快捷键:

  • q:退出程序
  • s:手动保存当前帧(如果启用了保存功能)

错误处理

应用程序包含多种错误处理机制:

  • 检查所需文件是否存在
  • 处理摄像头初始化失败的情况
  • 处理视频帧获取失败时的重连机制
  • 处理物体检测和渲染过程中的异常
  • 防止非法的坐标值和数组访问错误

示例输出

程序在终端上会输出如下信息:

摄像头分辨率: 640x480, FPS: 30.0
已保存检测结果到: output/detection_20230915_153045.jpg
总运行时间: 120.56秒
处理帧数: 3512
平均FPS: 29.13
保存的检测结果: 15张

许可证

MIT

openCVandSTM32

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors