# NeophocaenaTracking
**Repository Path**: Do_yourself_maxin/neophocaena-tracking
## Basic Information
- **Project Name**: NeophocaenaTracking
- **Description**: 基于yolov5+deepsort实现的江豚多目标跟踪
- **Primary Language**: Python
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2023-03-29
- **Last Updated**: 2024-11-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# NeophocaenaTracking
$\color{red}{注:该图版权归中国科学院水生生物研究所王克雄团队所有,未经允许不能擅自使用!}$
## 介绍
《基于机器学习的江豚检测跟踪与行为分析》论文第2和第3章,基于yolov5+deepsort实现的江豚多目标跟踪.
## 软件架构
基于ultralytics yolov5 和 ZQPei deep_sort_pytorch的江豚多目标跟踪项目
## 安装教程
1. 克隆本仓库到本地路径
````
git clone https://gitee.com/Do_yourself_maxin/neophocaena-tracking.git
````
2. 安装必要的pip依赖包
````
pip install -r requirements.txt
````
## 使用说明
> Run demo:
````
python demo.py [--source] 预测方式可以是视频url,视频文件路径、图片路径和摄像头。摄像头预测设置为0即可
[--weights] 检测模型的路径,默认为./weights/jiangtun.pt
[--reid-weights] reid模型的路径,默认为./weights/jiangtun.ckpt
[--num-target] 跟踪目标的数量,默认为4.可根据所训练的reid模型中目标的数量进行修改
[--view-img] 跟踪结果可视化
[--save-txt] 跟踪结果保存。默认保存路径为runs/tracking/labels
````
## 训练检测模型
1. 标记数据
> 推荐使用DarkLabel标注工具进行标注
2. 修改数据集配置文件coco.yaml
> - 修改yolov5/data/coco.yaml文件,更改训练集(train)和测试集(val)所在路径
> - 修改nc为要检测的目标类别数,本项目中只检测江豚,所以设置为1
> - 修改names为要检测目标的类别名称,本项目中只检测江豚,所以设置为['Neophocaena']
3. 训练模型
````
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5n.yaml --batch-size 128
yolov5s.yaml --batch-size 64
yolov5m.yaml --batch-size 40
yolov5l.yaml --batch-size 24
yolov5x.yaml --batch-size 16
````
#### 训练Reid模型
1. 标记数据
> 推荐使用DarkLabel进行标记,标记时使用Box+Label+AutoID模式。联系前后帧,按住Shit选中目标标记框并双击鼠标可修改目标的ID
2. 生成数据集
> 生成Reid数据集可通过 `python ./scripts/reid.py ` 实现,将数据集划分成train和val,每头江豚都有一个身份编号,对应一个文件夹,文件夹中存放不同视频帧中同一头江豚的图片,如下图所示。把数据集放到`./deepsort/deep_sort/deep/data` 目录下
3. 训练
````
python deep_sort/deep_sort/deep/train.py [--data-dir] [--gpu-id]
````
#### 参考
paper: Simple Online and Realtime Tracking with a Deep Association Metric
code:
- nwojke/deep_sort
- ZQPei/deep_sort_pytorch
- yolov5
#### 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request
#### 致谢
在此特别感谢中国科学院水生生物研究所王克雄老师团队为本研究提供室内场景的江豚图像数据授权,王克雄老师是水生哺乳动物生物声学、行为生态学、保护生物学研究的专家,有幸看到本项目的学者请务必多了解王克雄老师在江豚方面的研究,一定会对您的研究大有裨益。