Skip to content

Fish-SWA/RK3588_FPV_Master

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

版本说明

  • 用于电赛&嵌塞无人机的视觉, 在RK3588上运行
  • 正在边学边写ing

项目结构

//待完善

环境要求

  • Opencv 4.10
  • 完整的OpenCL环境,配置方法见此处
  • clash & vscode (非必须, 方便调试)

TODO

  • 移植一个线程池来最大化NPU利用率
  • 写完串口通讯
    • 串口发 √
    • 串口收 ×
    • 模拟串口中断 ×
  • 实现与无人机飞控的串口通讯
    • 通过发结构体解决?
    • [0xEF] -- data -- [0xEE]
  • 写一个自动配置环境的脚本

开源引用

  • yolov5模型的preprocess & postprocess的库来自rknpu2, 位于library/rknpu/yolo5_process

改动记录

6.18 by Fish

  • 实现了NPU调用,现在可以用RK3588的NPU跑YOLO了(喜
    • 参考RKNPU的API手册实现
    • 调用接口在rknpu_yolo.cpp的RkNPU类中,使用方法如下
      • 初始化一个RkNPU类
      • 通过RkNPU::model_path和RkNPU::label_name_txt_path设置rknn模型文件&label_list文件的路径
      • 使用RkNPU::rknn_model_init初始化RKNN模型
      • 使用RKNPU::rknn_img_inference执行推理,输入是Mat对象,输出是_detect_result_group_t结构体
      • 可以选用RlNPU::yolo_draw_results在图像中画出判定框, 以及用RkNPU::yolo_print_results打印出识别结果
      • 全过程都可以通过RlNPU::error_ret来判断是否发生错误(error_ret=0为正常, 其他会对应错误码)
  • NPU性能测试
    • 单线程下,可以利用一个NPU核心的50%左右(一共有3个NPU核心)
    • 运行640*640输入&INT8量化的yolov5模型,帧率在30~40FPS
  • 非常好进度,但是48小时之后的考试大概或许是要寄了(悲

6.14~6.16 by Fish

  • 加入了OpenCV
  • 在vision.cpp中的双目相机类BinoCamera中实现了乒乓球的识别
    • 但是基于色彩过滤,比较依赖环境光照

5.31 by Fish

  • 新建项目
  • 非常基本的串口通讯

About

无人机的上位机&视觉代码

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages