无法运行restart_rknn.sh

  • 我根据瑞新微的文档,进行如下操作

    Code: Select all

    # 进入 rknpu2 目录
    cd Projects/rknn-toolkit2/rknpu2
    # 推送 rknn_server 到板端
    adb push runtime/Linux/rknn_server/armhf-uclibc/usr/bin/*
    /oem/usr/bin
    # 推送 librknnmrt.so
    adb push runtime/Linux/librknn_api/armhf-uclibc/librknnmrt.so
    /oem/usr/lib
    # 进入板端
    adb shell
    # 赋予可执行权限
    chmod +x /oem/usr/bin/rknn_server
    chmod +x /oem/usr/bin/start_rknn.sh
    chmod +x /oem/usr/bin/restart_rknn.sh
    # 重启 rknn_server 服务
    restart_rknn.sh
    
    但是运行start_rknn.sh时提示找不到rknn_server这个程序,请问如何解决?
  • 另外,我根据文档编译了yolov5的程序,程序传输至rv1103后运行程序,显示内存不足,请问有任何的解决方法吗?

    Code: Select all

    # ./rknn_yolov5_demo model/yolov5.rknn model/bus.jpg
    load lable ./model/coco_80_labels_list.txt
    E RKNN: failed to allocate fd, ret: -1, errno: 12, errstr: Cannot allocate memory
    E RKNN: failed to allocate model memory!, size: 14750080, flags: #2
    rknn_init fail! ret=-1
    init_yolov5_model fail! ret=-1 model_path=model/yolov5.rknn
    # free -h
                  total        used        free      shared  buff/cache   available
    Mem:          33.7M       17.3M        1.6M        9.7M       14.8M        3.7M
    Swap:             0           0           0
    
    
    
  • kw_ddw wrote: 2024-04-05 12:08 我根据瑞新微的文档,进行如下操作

    Code: Select all

    # 进入 rknpu2 目录
    cd Projects/rknn-toolkit2/rknpu2
    # 推送 rknn_server 到板端
    adb push runtime/Linux/rknn_server/armhf-uclibc/usr/bin/*
    /oem/usr/bin
    # 推送 librknnmrt.so
    adb push runtime/Linux/librknn_api/armhf-uclibc/librknnmrt.so
    /oem/usr/lib
    # 进入板端
    adb shell
    # 赋予可执行权限
    chmod +x /oem/usr/bin/rknn_server
    chmod +x /oem/usr/bin/start_rknn.sh
    chmod +x /oem/usr/bin/restart_rknn.sh
    # 重启 rknn_server 服务
    restart_rknn.sh
    
    但是运行start_rknn.sh时提示找不到rknn_server这个程序,请问如何解决?
    您好,请检查三个文件是否被传输到正确的位置,oem/usr/bin 是环境变量,如果移动到其他地方会导致找不到rknn_server的位置,这是我测试后的结果。
    restart_rknn_output.jpg
  • kw_ddw wrote: 2024-04-06 14:09 另外,我根据文档编译了yolov5的程序,程序传输至rv1103后运行程序,显示内存不足,请问有任何的解决方法吗?

    Code: Select all

    # ./rknn_yolov5_demo model/yolov5.rknn model/bus.jpg
    load lable ./model/coco_80_labels_list.txt
    E RKNN: failed to allocate fd, ret: -1, errno: 12, errstr: Cannot allocate memory
    E RKNN: failed to allocate model memory!, size: 14750080, flags: #2
    rknn_init fail! ret=-1
    init_yolov5_model fail! ret=-1 model_path=model/yolov5.rknn
    # free -h
                  total        used        free      shared  buff/cache   available
    Mem:          33.7M       17.3M        1.6M        9.7M       14.8M        3.7M
    Swap:             0           0           0
    
    
    
    RV1103本身内存使用紧张,请尝试关闭默认运行的rkipc程序,执行

    Code: Select all

    killall rkipc
    
    或者

    Code: Select all

    RkLunch-stop.sh
    
  • 您好,我想要部署自己重新训练的yolov5模型,了解到部署时部分网络结构需要替换,请问我是否可以这样操作:
    1.得到自己训练的yolov5onnx模型
    python export.py --rknpu --weight yolov5s.pt(自己训练的PT)
    2.修改rknn_model_zoo/examples/yolov5/model/coco_80_labels_list.txt。
    比如我只想识别人,那么这个txt里我只有人一个标签。
    3.根据文档执行其他操作

    感谢!
  • kw_ddw wrote: 2024-04-09 16:57 您好,我想要部署自己重新训练的yolov5模型,了解到部署时部分网络结构需要替换,请问我是否可以这样操作:
    1.得到自己训练的yolov5onnx模型
    python export.py --rknpu --weight yolov5s.pt(自己训练的PT)
    2.修改rknn_model_zoo/examples/yolov5/model/coco_80_labels_list.txt。
    比如我只想识别人,那么这个txt里我只有人一个标签。
    3.根据文档执行其他操作

    感谢!
    使用自训练模型还需要修改postprocess.h 下的 OBJ_CLASS_NUM (识别种类)参数,比如您的使用场景只有一种类型需要识别就修改为1。不然在解析输出数据会出现段错误。
  • 您好,我在rv1103上跑yolov5模型,帧数大概在八九帧。如果我想提高帧数,大概可以采取哪些方法?感谢
  • kw_ddw wrote: 2024-04-11 15:32 您好,我在rv1103上跑yolov5模型,帧数大概在八九帧。如果我想提高帧数,大概可以采取哪些方法?感谢
    这个需要根据您的使用场景,正常如果传入的图像是视频流可以尝试在视频捕获阶段把图像缩放为640*640(按模型的输入需求修改),将传入图像的接收地址设置为RKNN模型的输入虚拟地址,优化掉图像传入模型处理的过程,每一次进行模型推理时仅需要执行rknn_run即可。

    您还可进行尝试优化图像捕获过程,如果相比于把图像处理为模型输入需求,捕获分辨率过大的图像比较耗时,就可以尝试先获取小图像,再处理为大图像(利用rga算法,rga再luckfox-pico上只能处理DMA的数据,直接将DMA的目标地址设置为模型的输入虚拟地址)

    如果您在获取到识别结果后还需要进行一些其他操作,比如画框标记等,还是可以尝试使用多线程来处理。

    希望这对您有所帮助。
  • 您好,我在rv1103上运行使用opencv-mobile库的代码时,遇到摄像头图像无法读取的情况。之后我运行了opencv-mobile例程,遇到同样的问题.
    具体输出如下。

    Code: Select all

    # pwd
    /
    # killall rkipc
    killall: rkipc: no process killed
    # ./opencv-mobile-test
    opencv-mobile HW JPG encoder with rk mpp
    opencv-mobile MIPI CSI camera with v4l2 rkaiq
       devpath = /dev/video11
       driver = rkisp_v7
       card = rkisp_mainpath
       bus_info = platform:rkisp-vir0
       version = 20000
       capabilities = 84201000
       device_caps = 4201000
       fmt = UYVY 4:2:2  59565955
       fmt = Y/CbCr 4:2:2  3631564e
       fmt = Y/CrCb 4:2:2  3136564e
       fmt = Y/CrCb 4:2:0  3132564e
           size = 32 x 16  ~  2304 x 1296  (+8 +8)
       fmt = Y/CbCr 4:2:0  3231564e
       fmt = Y/CrCb 4:2:0 (N-C)  31324d4e
       fmt = Y/CbCr 4:2:0 (N-C)  32314d4e
    rkaiq log level ff0
    
    
    此后程序卡死,无任何输出。