//Description: 视频编解码学习笔记
Push Yolov8n Pre-train Model To rk3588 (4)
//Description: c++部署和优化。记录yolov8n部署到rk3588使用C++部署和优化过程。发现rknn_model_zoo对图像的处理没有考虑非16倍长宽的图像,也没有考虑内存大于4G时的rga函数imfill的使用,对此进行了修改。同时发现零拷贝在帧率上并没有明显提升;多核ConvExSwish
算子不生效等等问题。转成c++后每帧从python的0.5s降到0.35s,主要耗时均在SDK的三个api中(rknn_init,rknn_inputs_set,rknn_run),每个api用时0.1+s,整个识别过程就特别慢。
Linux Yolov8 C++ And ROS SLAM
//Description: 记录使用C++在linux上部署yolov8检测和跟踪的过程,及在RK3588带aarch64的Kylin系统上部署ROS+SLAM的过程。遇到dnn::readNetFromONNX
错误,升级OpenCV版本可解决。同时记录输入图像尺寸和模型尺寸不一致时出现的错误。写于2024年夏。
Linux Kernel Notes
//Description: 记录因各种导致系统异常的误操作。
Push Yolov8n Pre-train Model To rk3588 (3)
//Description: 优化。记录yolov8n部署到rk3588后的优化,从原先的单核npu跑修改成使用线程池开3个线程3个核一起跑,本地视频的识别帧率从原来的14+提升到40+,但网络摄像头的识别帧率依旧在15+,最终发现和摄像头支持的最高帧率及当前设置的帧率有关系。
Push Yolov8n Pre-train Model To rk3588 (2)
//Description: 性能统计。记录yolov8n部署到rk3588后的性能统计和分析,然而并没有明显优化效果,最终通过模型不同的输出测试,确认为输入分辨率对识别耗时有明显影响。同时统计了不同分辨率下的推理正确率。写于2024年4月初,SDK文档参考了v2.0.0beta0版本,板子实际运行安装的SDK是1.6.0版本。
Yolo Learning Notes
//Description: Yolo目标检测网络学习笔记。记录在学习Yolo过程中遇到的问题。Yolo网络分为三部分:主干网络、颈部网络和检测头。主干网络VGG->ResNet->DarkNet->MobileNet->ShuffleNet用于提取出图像中的特征信息。颈部网络SPP->SDD->FPN。检测头MLP->CNN->DETR。
Push Yolov8n Pre-train Model To rk3588 (1)
//Description: 模型转换。记录把Yolov8n预训练的模型push到rk3588的板子上进行目标检测的整个过程,其中遇到原始模型无法jit.load、模型转换后检测错误、板子上安装SDK失败等问题,最终通过改用load、分析error list抛弃部分模型、检查版本一致性解决。写于2024年4月初,SDK文档参考了v2.0.0beta0版本,板子实际运行安装的SDK是1.6.0版本。后发现更建议用SDK的官网转换而不是Yolov8的官网转换方法,同时记录了模型转换过程中的剪枝、量化、混合量化等操作;同时pt转onnx的方式有问题,应该使用SDK官网的转换方式并设置imgsz而不是使用Yolov8官网的转换方式。
Orin下使用Python调试网络摄像头笔记
//Description: 记录在Orin下使用Python调试网络摄像头获取rtsp流数据遇到的断网、延迟、获取不到数据等问题,最终发现网络是由于系统网络不稳定、延迟改用GStreamer获取数据、获取不到数据是由于安装的OpenCV不支持GStreamer需要重新源码编译并打开GStreamer支持。写于2024年3月初。
Reconstruction Papers
//Description: 利用imu+激光点云+图像进行实时三维重建技术笔记。