littlebot
Published on 2025-04-13 / 3 Visits
0

【源码】基于TensorFlow 2的Faster RCNN目标检测系统

项目简介

本项目基于TensorFlow 2框架实现了Faster R-CNN目标检测系统。Faster R-CNN作为两阶段的目标检测模型,在本项目中于TensorFlow 2里得到复现,可用于图像物体检测任务,提供完整的训练和预测流程。

项目的主要特性和功能

  1. 支持用PASCAL VOC格式的数据集进行训练。
  2. 提供预训练权重,便于快速开展目标检测。
  3. 支持使用自定义数据集训练,并能保存训练好的权重。
  4. 可对单张图片进行目标检测,也能借助摄像头进行实时检测。
  5. 提供mAP目标检测精度计算功能。

安装使用步骤

所需环境

确保安装了tensorflow-gpu==2.2.0

预测步骤

使用预训练权重

  1. 下载并解压项目源码,从百度网盘(链接: https://pan.baidu.com/s/1DzE6UwF4umzx5KUA3ABSxw 提取码: 92e8 )下载voc_weights.h5,放入model_data文件夹。
  2. 运行predict.py,输入img/street.jpg完成预测。
  3. 运行video.py可进行摄像头检测。

使用自己训练的权重

  1. 按照训练步骤完成训练。
  2. frcnn.py文件中,修改model_pathclasses_path,使其对应训练好的文件(model_path对应logs文件夹下的权值文件,classes_pathmodel_path对应分的类)。 python _defaults = { "model_path": 'model_data/voc_weights.h5', "classes_path": 'model_data/voc_classes.txt', "confidence": 0.5, }
  3. 运行predict.py,输入img/street.jpg完成预测。
  4. 运行video.py可进行摄像头检测。

训练步骤

  1. 项目使用VOC格式进行训练。
  2. 将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
  3. 将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
  4. 利用voc2frcnn.py文件生成对应的txt
  5. 运行根目录下的voc_annotation.py,运行前将classes改成自己的类别(注意不要使用中文标签,文件夹中不要有空格)。 python classes = ["aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow", "diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]
  6. 此时会生成对应的2007_train.txt,每一行对应其图片位置及其真实框的位置。
  7. 在训练前,在model_data下新建一个txt文档,输入需要分的类。
  8. train.pyNUM_CLASSSES修改成所需要分的类的个数 + 1,运行train.py开始训练。

mAP目标检测精度计算

具体计算步骤文档未详细给出,可根据项目内相关代码和注释进一步操作。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】