尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

5分钟上手R2CNN_Faster-RCNN_Tensorflow:用demo_rh.py快速实现遥感图像旋转目标检测

5分钟上手R2CNN_Faster-RCNN_Tensorflow:用demo_rh.py快速实现遥感图像旋转目标检测 5分钟上手R2CNN_Faster-RCNN_Tensorflow用demo_rh.py快速实现遥感图像旋转目标检测【免费下载链接】R2CNN_Faster-RCNN_TensorflowDetectionTeamUCAS/R2CNN_Faster-RCNN_Tensorflow: 是一个基于TensorFlow实现的Faster R-CNN变体适用于遥感图像处理。适合用于需要针对遥感图像进行目标检测的项目。特点是可以提供针对遥感图像优化的模型结构和训练流程。项目地址: https://gitcode.com/gh_mirrors/r2/R2CNN_Faster-RCNN_TensorflowR2CNN_Faster-RCNN_Tensorflow 是一个基于 TensorFlow 实现的 Faster R-CNN 变体专为遥感图像旋转目标检测设计。它在经典 Faster R-CNN 的基础上加入了旋转框旋转矩形输出能力能够精确框出飞机、船舶、车辆等任意朝向的遥感目标。对于刚接触遥感目标检测的新手只需运行一个脚本demo_rh.py5 分钟即可看到带旋转框的检测效果是学习旋转目标检测入门的宝藏项目。为什么遥感检测需要旋转框普通目标检测输出的都是与图像边平行的水平框但对一架 45° 斜停的飞机来说水平框会带入大量无关背景既不准确也不够紧凑。R2CNN 的核心思想就是让模型直接输出旋转框Rotated Box——用中心点 长边 短边 旋转角描述目标无论目标朝向如何框都能紧贴目标边缘。下面这张图就是 R2CNN 在 DOTA 数据集上对 15 类遥感目标的旋转检测效果包括飞机、船舶、车辆、直升机、运动场等可以看到检测框绿色都精准贴合了目标的实际朝向这正是旋转目标检测的价值所在。环境准备5分钟配好运行环境 ⚙️1. 克隆项目git clone https://gitcode.com/gh_mirrors/r2/R2CNN_Faster-RCNN_Tensorflow2. 安装依赖该项目基于 TensorFlow 1.x 生态推荐环境组合以 Anaconda2 为例tensorflow 1.2python 2.7cuda 8.0GPU 加速CPU 也能跑但较慢opencv-python提供cv2pip install tensorflow opencv-python3. 编译旋转框专用算子旋转 IoU 计算和旋转 NMS 是用 C/CUDA/Cython 写的加速算子运行 demo 前必须编译一次# 编译旋转框基础算子 cd libs/box_utils/ python setup.py build_ext --inplace # 编译 NMS 加速算子 cd libs/box_utils/cython_utils python setup.py build_ext --inplace 两个命令各执行一次即可编译产物会直接生成在源码目录下。下载模型权重与配置1. 下载预训练权重权重放置位置用途ResNet50 / ResNet101ImageNet 预训练data/pretrained_weights/训练自己的模型时作为初始化MobileNetV2data/pretrained_weights/mobilenet/轻量级网络初始化项目训练好的检测权重output/trained_weights/直接跑 demo 必需其中项目训练好的检测权重是跑 demo 的关键缺少它模型无法加载记得放入output/trained_weights/目录。2. 选择配置文件项目的模型结构、类别数、权重路径等全部由配置文件控制。以 DOTA 遥感数据集为例配置模板libs/configs/cfgs_DOTA_v3.py基于resnet_v1_101骨干网络使用方式把所选配置的内容复制到libs/configs/cfgs.py即可其他可选配置cfgs_FDDB_mobilenet_v1.py、cfgs_ICDAR2015_v1.py3. 设置一个关键参数在cfgs.py中找到SHOW_SCORE_THRSHOLD置信度阈值想保存可视化结果图→ 设为0.5左右想输出评估用的 txt 结果→ 设为0.00这个参数与下面命令里的--save_res是配套的不匹配会直接报错提示你修改。运行 demo_rh.py一行命令开始检测 ️进入tools目录执行cd tools python demo_rh.py --src_folder/你的/遥感图像/目录/ --image_ext.png --des_folder/你的/结果/保存目录/ --save_resTrue --gpu0各参数含义一目了然参数默认值说明--src_folder-输入遥感图像目录递归查找--image_ext.png图像扩展名--des_folder-检测结果保存目录--h_len / --w_len800切片大小大图会切成 800×800 小块检测--h_overlap / --w_overlap200切片重叠像素避免边缘目标被切断--save_resTrue保存可视化结果图False 则输出评估 txt--gpu0使用的 GPU 编号它内部做了什么不用看代码也能理解整个流程实现见 demo_rh.py切片把大图切成 800×800 的小块带 200 像素重叠适配遥感大图检测每个小块送入 R2CNN 网络同时得到水平框和旋转框两组结果拼接 去重把各小块的坐标还原回原图再按类别分别做旋转 NMS / 水平 NMS 去重输出--save_resTrue时保存xxx_h.jpg水平框和xxx_r.jpg旋转框两张结果图False时在txt_output/下生成 DOTA 竞赛 Task1旋转框和 Task2水平框格式的评估文件。检测效果展示 除了 DOTA 遥感目标同一套框架还支持场景文字检测和人脸检测。下图是 ICDAR2015 场景文字数据集的检测效果可以看到招牌、路牌上的文字都被旋转框精准框出而下面这张图则是 demo 使用的原始输入场景未检测状态与结果图对比可以看到模型的标注能力官方在 DOTA 数据集上给出的成绩也很能打旋转框任务Task1mAP 达到60.67超过了当时的 SSD10.59、YOLOv221.39等主流方法说明这套旋转目标检测框架的可靠性是经过验证的。✅进阶训练你自己的遥感数据 如果你有自己标注的遥感数据VOC 格式Annotation/放 xmlJPEGImages/放图片三步就能开始训练① 改配置修改libs/configs/cfgs.py中的CLASS_NUM、DATASET_NAME、VERSION等参数并在libs/label_name_dict/label_dict.py中加入你的类别名最后在data/io/read_tfrecord.py中注册数据集名。② 制作 tfrecordDOTA 数据集可先用data/io/DOTA/train_crop.py、val_crop.py做切片cd data/io python convert_data_to_tfrecord.py --VOC_dir/路径/VOCdevkit_train/ --xml_dirAnnotation --image_dirJPEGImages --save_nametrain --img_format.png --datasetDOTA③ 开始训练cd tools python train.py训练过程可用 TensorBoard 实时观察cd output/summary tensorboard --logdir.常见问题速查 Q1运行 demo 时报SHOW_SCORE_THRSHOLD相关断言错误说明--save_res和cfgs.py里的阈值不配套保存图片时阈值要 ≥ 0.5输出 txt 时要 0.005改完cfgs.py再运行即可。Q2为什么检测结果有_h和_r两套_h是水平框结果_r是旋转框结果。遥感旋转目标检测任务以_r旋转框为准DOTA 评测也分别对应 Task2水平和 Task1旋转。Q3编译算子报错确认安装了 gcc/CUDA 8.0 与匹配的 python 版本两个setup.py build_ext --inplace都要执行NMS 依赖cython_utils下的nms.pyx旋转 NMS 依赖box_utils下的nms_rotate.pyx。Q4只想跑场景文字或人脸检测怎么办把libs/configs/下对应的cfgs_ICDAR2015_v1.py文字或cfgs_FDDB_mobilenet_v1.py人脸内容复制到cfgs.py并下载对应权重人脸检测可直接运行tools/camera_demo.py实时调用摄像头。写在最后R2CNN_Faster-RCNN_Tensorflow 把旋转目标检测这件听起来很难的事简化成了复制配置 → 放好权重 → 跑 demo_rh.py三步。从上面的 DOTA 效果图也能看出它的旋转框能很好地贴合任意朝向的遥感目标。建议你先用自带的 DOTA 配置跑通 demo再逐步尝试自己的数据集——这就是入门遥感旋转目标检测最顺畅的路径。【免费下载链接】R2CNN_Faster-RCNN_TensorflowDetectionTeamUCAS/R2CNN_Faster-RCNN_Tensorflow: 是一个基于TensorFlow实现的Faster R-CNN变体适用于遥感图像处理。适合用于需要针对遥感图像进行目标检测的项目。特点是可以提供针对遥感图像优化的模型结构和训练流程。项目地址: https://gitcode.com/gh_mirrors/r2/R2CNN_Faster-RCNN_Tensorflow创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表