SkyNet 项目使用与启动教程

1. 项目介绍

SkyNet 是一个专门为对象检测和跟踪设计的高效硬件神经网络(DNN)项目。它基于一种新型的硬件设计方法,旨在为边缘 AI 解决方案提供支持。SkyNet 在第 56 届 IEEE/ACM 设计自动化会议系统设计竞赛(DAC-SDC)中,针对无人机(UAV)应用中的低功耗对象检测挑战展示了其性能,并赢得了 GPU 和 FPGA 轨道的冠军。

2. 项目快速启动

GPU 平台

  • 平台:Jetson Tx2, Jetpack 4.2

  • 安装

    $ sudo bash install.sh
    
  • 在给定数据集上测试

    $ python3 run.py
    

    数据集应按照指定格式组织。

  • 运行演示(摄像头)

    $ python3 demo.py
    
  • 运行演示(图片)

    $ python3 demo.py --input=samples/0.jpg
    

FPGA 平台

  • 平台:Xilinx Ultra96
  • 软件先决条件:Vivado Design Suite - HLx 版本
  • 直接在 FPGA 上运行演示: 此示例允许您直接尝试我们的比特流和权重,通过运行存储在 test_images 中的 16 张测试图片,从 0.jpg 到 15.jpg。 图片使用批大小 4 处理。 主机代码(SkyNet.py)在嵌入式 ARM 核上运行。 它首先加载权重文件(SkyNet.bin),然后加载二进制文件(SkyNet.bit)来配置 FPGA 程序逻辑。 然后激活 SkyNet IP 以执行输入图像的推理,并输出检测到的边界框的坐标。 最后它显示总执行时间(秒)和能耗(焦耳)。 运行演示的命令如下:
    $ cd ./FPGA/Deploy/
    $ sudo python3 SkyNet.py
    
    初始密码为 "xilinx"。您应该能够看到如下输出:
    **** Running SkyNet
    Allocating memory done
    Parameters loading done
    Bitstream loaded
    **** Start to detect
    ...
    **** Detection finished
    Total time: ... s
    Total energy: ... J
    

3. 应用案例和最佳实践

  • 案例一:无人机实时对象检测与跟踪 使用 SkyNet 在无人机上进行实时对象检测和跟踪,可以有效提高飞行安全性和任务执行效率。

  • 最佳实践:在部署前对模型进行充分的测试和校准,确保在不同环境下都能保持高准确率和低延迟。

4. 典型生态项目

  • 项目一:基于 SkyNet 的智能监控系统 结合视频流处理技术,构建一个基于 SkyNet 的智能监控系统,用于实时监控和记录重要区域的动态。

  • 项目二:SkyNet 在物联网设备中的应用 将 SkyNet 集成到物联网设备中,为边缘计算提供强大的对象检测和跟踪能力。

Logo

脑启社区是一个专注类脑智能领域的开发者社区。欢迎加入社区,共建类脑智能生态。社区为开发者提供了丰富的开源类脑工具软件、类脑算法模型及数据集、类脑知识库、类脑技术培训课程以及类脑应用案例等资源。

更多推荐