UNFINISHED.
软件正处在开发初期,只完成了视觉的核心部分,其余部分正在开发中。
本开源软件为青岛大学未来战队机器人的视觉和人工智能的代码。参考了其他战队代码和各种开源机器人项目,从零编写而成。中心思想:
- 使用基于pytorch的yolov5算法,训练得到的权重和模型导出到ONNX格式。
- 在妙算平台使用TensorRT运行导出的模型。
- 基于行为树设计哨兵的AI
- 一个项目适配不同型号的机器人。
这样做增加代码了的重用,减少了工作量。实现了通过DLA(深度学习加速器)加速妙算上模型的推断速度。利用行为树实现了可控的复杂行为。
- 依赖:OpenCV、BehavoirTree.CPP、MVS SDK、spdlog、CUDA、TensorRT。
- Linux平台,使用CMake和VS Code开发。未在Windows平台测试。
-
安装依赖
-
获得代码.
git clone --recursive https://github.com/qsheeeeen/qdu-rm-ai
-
编译程序
cd qdu-rm-ai mkdir build cd build cmake .. make -j
-
训练神经网络
- 准备
# 以下脚本涉及相对路径,需要在此文件夹内运行。 cd ./third_party/yolov5 # 安装依赖的包 pip3 install -r requirements.txt # 导出模型需要用到ONNX pip3 install -U onnx
- 训练
# 以下脚本涉及相对路径,需要在此文件夹内运行。 cd /path/to/qdu-rm-ai/utils # 处理数据集 sh python3 roco2x.py ----dji-roco-dir=/path/to/DJI ROCO/ # 训练模型 sh ./train_vision.sh
-
运行
-
暂时:使用VS Code运行,或者在repo跟目录里运行build里的二进制文件
-
TODO:
#安装后直接使用 qdu-rm-ai-auto-aim qdu-rm-ai-full-auto qdu-rm-ai-radar
-
文件夹 | 内容 |
---|---|
image | 图片。包含效果展示,程序运行时也会往里存图片 |
logs | 程序运行日志 |
mid | 程序的中间产物,包含训练好的权重,TensorRT的engine等 |
src | 源代码 |
test | 测试代码 |
third_party | 第三方软件 |
utils | 辅助的脚本和文件 |
src内 | 内容 |
---|---|
app | 应用。包含哨兵使用的全自动、步兵等使用的自瞄和雷达 |
behavior | 行为库。基于行为树开发的AI |
device | 设备库。外接设备的抽象 |
vision | 视觉库。目标识别等代码 |
- Debug Detector 输出。
- Debug Detector 输入预处理。
近期:
-
添加与MCU的通信协议,完成联调。
-
添加 CInstall
-
添加 CTest
-
实现类似多级流水线的视觉算法流程。参考文章
远期:
-
ONNX1.8发布后适配yolov5的master
-
添加Int8运行
-
添加自瞄部分代码。
-
添加机关击打。
-
【视情况】添加雷达部分代码。