项目简介
本项目基于TensorFlow 2框架实现了Faster R-CNN目标检测系统。Faster R-CNN作为两阶段的目标检测模型,在本项目中于TensorFlow 2里得到复现,可用于图像物体检测任务,提供完整的训练和预测流程。
项目的主要特性和功能
- 支持用PASCAL VOC格式的数据集进行训练。
- 提供预训练权重,便于快速开展目标检测。
- 支持使用自定义数据集训练,并能保存训练好的权重。
- 可对单张图片进行目标检测,也能借助摄像头进行实时检测。
- 提供mAP目标检测精度计算功能。
安装使用步骤
所需环境
确保安装了tensorflow-gpu==2.2.0。
预测步骤
使用预训练权重
- 下载并解压项目源码,从百度网盘(链接: https://pan.baidu.com/s/1DzE6UwF4umzx5KUA3ABSxw 提取码: 92e8 )下载voc_weights.h5,放入model_data文件夹。
- 运行predict.py,输入img/street.jpg完成预测。
- 运行video.py可进行摄像头检测。
使用自己训练的权重
- 按照训练步骤完成训练。
- 在frcnn.py文件中,修改model_path和classes_path,使其对应训练好的文件(model_path对应logs文件夹下的权值文件,classes_path是model_path对应分的类)。python _defaults = { "model_path": 'model_data/voc_weights.h5', "classes_path": 'model_data/voc_classes.txt', "confidence": 0.5, }
- 运行predict.py,输入img/street.jpg完成预测。
- 运行video.py可进行摄像头检测。
训练步骤
- 项目使用VOC格式进行训练。
- 将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
- 将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
- 利用voc2frcnn.py文件生成对应的txt。
- 运行根目录下的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"]
- 此时会生成对应的2007_train.txt,每一行对应其图片位置及其真实框的位置。
- 在训练前,在model_data下新建一个txt文档,输入需要分的类。
- 将train.py的NUM_CLASSSES修改成所需要分的类的个数 + 1,运行train.py开始训练。
mAP目标检测精度计算
具体计算步骤文档未详细给出,可根据项目内相关代码和注释进一步操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】