3 Star 2 Fork 0

飞行器智能感知与控制/PI-Det

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

PI-Det

1.简介

PI-Det是面向无人机航拍图像的物体检测,基于PyTorch_YOLOv4的基础上进行改进,并结合增量学习方法,可通过使用新类别物体的数据进行训练,并保持一定的对旧类别物体的检测能力,避免神经网络发生灾难性遗忘,技术文档见无人机航拍图像物体检测

2.安装依赖

可通过下面这一行命令安装依赖(建议使用Ubuntu18.04)

pip install -r requirements.txt

并安装mish-cuda

git clone https://github.com/thomasbrandon/mish-cuda
cd mish-cuda
cp external/CUDAApplyUtils.cuh csrc        # cuda >= 11.0
python setup.py build install

本程序最好在Conda环境下运行,Conda的运行环境安装见InstallConda

3.数据准备

训练前需要将图像和标注分别放在 imageslabels文件夹下,并将训练集所有图像路径写入train.txt文本中,验证集所有图像路径写入val.txt文本中,测试集所有图像路径写入test.txt文本中,然后对coco.yaml文件进行更改,将其中的文件路径进行替换,例如:

train: ../your_path/train.txt  
val: ../your_path/val.txt  
test: ../your_path/test.txt  

# number of classes
nc: 3

# class names
names: ['person', 'bicycle', 'car']

数据标注格式与YOLOv4一致,即<object-class> <x_center> <y_center> <width> <height>,分别代表物体类别,中心点坐标(x,y),边界框的宽和高(w,h),<x_center> <y_center> <width> <height>均为归一化后的坐标,例如:

2 0.44091796875 0.1953125 0.2685546875 0.021484375
1 0.55029296875 0.173828125 0.0517578125 0.0234375
1 0.5517578125 0.5478515625 0.046875 0.02734375

示例数据集和预训练权重可在百度网盘下载:

链接: https://pan.baidu.com/s/1YZIckwLbVOVpSMuyt3ljwg 密码: inl0

4.训练

训练前需要对cfg文件进行修改,将其中每个[yolo]层中的classes 修改为所使用的类别数,并将前一个卷积层的filters 改为(classes+5)x3 ,例如:

[convolutional]
filters=255

[yolo]
classes=80

如果使用多GPU进行训练,可将--device 0改为--device 0,1,2,3;如果不想每训练完一个epoch就进行验证,可在命令中加上--notest

python train.py --device 0 --batch-size 16 --img 512 512 --data data/your_yaml --cfg cfg/your_cfg --weights weights/pretrained_weight --name your_name --epochs 100

如果要通过增量学习新类别物体,可使用以下命令运行train_incremental.py

python train_incremental.py --device 0 --batch-size 16 --img 512 512 --data data/your_yaml --cfg cfg/new_model_cfg --weights weights/your_weights --name your_name --epochs 100 --notest --incremental --old_mod cfg/old_model_cfg

5.测试

python test.py --img 512 --conf 0.001 --batch 16 --device 0 --data data/your_yaml --cfg cfg/your_cfg --weights/your_weights  --name data/data.names

可使用上面的命令进行测试,需要在--name 后输入含有类别名称的文件data.names ,例如:

person
bicycle
car

6.检测

可使用以下命令对图像或视频进行检测,需要在--weights后输入训练好的权重文件,在--source输入需要检测的图像或视频,检测结果保存在/inference/output/

python detect.py --img-size 512 --weights weights/your_weights --device 0 --cfg cfg/yolov4-new.cfg --names data/dota.names --source detect_image  or  video

部分检测结果如下:

参考

空文件

简介

无人机航拍图像的物体检测 展开 收起
Python 等 2 种语言
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/pi-lab/pi-det.git
git@gitee.com:pi-lab/pi-det.git
pi-lab
pi-det
PI-Det
master

搜索帮助

Cb406eda 1850385 E526c682 1850385