项目简介
本项目基于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】