当前位置: 首页 > news >正文

简历项目之无人机图像目标识别

项目介绍

这个项目是一个基于嵌入式平台的无人机图像智能探测系统,周期大约一年。同时也是我的硕士课题。项目的目标是实现无人机端的高效实时图像检测,同时兼顾精度和轻量化。
我的职责主要工作包括四个方面:
第一,基于 V4L2 框架完成 CSI/USB 摄像头的视频采集,保证了高效、低延迟的数据输入;
第二,针对复杂环境下模型鲁棒性不足以及图像容易受到对抗样本的干扰问题,我生成了 对抗样本(如 PGD、DeepFool 等),并进行对抗训练,提高了模型在干扰场景下的稳定性;
第三,使用 PyQt 搭建了训练与检测的图形化界面,便于模型和数据源的选择,提升了实验效率;
最后,我对检测模型进行了剪枝和蒸馏等轻量化处理,并部署到 Jetson AGX Orin 平台,实现了实时检测。
最终成果是:模型的 map@50 提升了 13.2%,达到 96.67%;在视频检测上可以达到 68 FPS;同时,模型参数减少了 31.3%,计算量降低 35.6%。此外,项目还产生了 2 篇 SCI 论文、2 项发明专利和 1 项软件著作权。

项目问题

1、介绍一下V4L2框架
介绍:V4L2,全称 Video for Linux 2,是 Linux 内核提供的一套视频采集与控制的标准 API,它主要解决两个问题:
(1)统一接口:不同的摄像头硬件底层差异很大,V4L2 在内核中抽象成统一的接口,应用层不需要关心具体硬件实现。
(2)高效传输:通过零拷贝机制(mmap、DMA),提升视频流的采集效率,满足实时处理需求。
在嵌入式系统里,比如 Jetson、树莓派等,V4L2 是最底层、最直接的摄像头视频采集方式,效率比 OpenCV 的封装更高。
工作流程:
V4L2 的典型工作流程可以分为五个阶段:
(1)打开设备
应用层通过 open(“/dev/video0”) 获取摄像头设备句柄。
设备文件 /dev/videoX 由内核驱动创建。
(2)查询与设置参数
使用 VIDIOC_QUERYCAP 查询设备能力,比如是否支持视频捕获、是否支持流式 I/O。
设置采集参数:分辨率(640×480、1920×1080)、像素格式(YUYV、NV12、MJPEG)、帧率等。
这些通过 VIDIOC_S_FMT、VIDIOC_S_PARM 来配置。
(3)申请缓存与映射
使用 VIDIOC_REQBUFS 申请若干缓冲区。
通过 mmap() 将内核空间的缓冲区映射到用户空间,避免数据拷贝,降低延迟。
(4)开始采集与数据流转
用 VIDIOC_QBUF 把缓冲区放入队列,驱动填充采集到的帧数据。
应用层调用 VIDIOC_DQBUF 从队列中取出已经填满的缓冲区,得到一帧视频数据。
通过轮询或 select/poll/epoll 等方式进行帧同步。
(5)停止采集与释放资源
调用 VIDIOC_STREAMOFF 停止采集。
释放映射内存,关闭设备。

2、介绍剪枝与蒸馏
剪枝原理:通过移除神经网络中冗余、不重要的参数或结构,减少模型规模和计算量。
方法选择:
主要使用了结构化剪枝(channel/filter pruning),而不是单纯的非结构化剪枝。
原因是结构化剪枝能减少整个卷积核或通道,更容易在硬件上加速,而非结构化剪枝需要稀疏矩阵计算,硬件优化难度更大。
实现步骤:
(1)分析卷积层中权重的重要性(如基于权重的 L1 范数)。
(2)删除贡献度低的通道/卷积核。
(3)微调模型,恢复精度。

http://www.dtcms.com/a/395791.html

相关文章:

  • pantherx2 armbian librga-rockchip librga.so 编译安装方法
  • 【精品资料鉴赏】189页工程车辆集团数字化转型SAP解决方案
  • 算法 --- 多源 BFS
  • 15.Linux 硬盘分区管理
  • 2.UE-准备环境(二)-下载虚幻引擎源码和搞成vs项目并使用vs打开
  • G-Star公益行获评CCF优秀技术公益案例,用开源技术传递善意
  • 文化赋能・创意西宁 西宁传媒行业创业发展沙龙成功举办 探索本土企业升级新路径
  • TDengine 与 MYSQL 的差异总结
  • Mysql杂志(二十一)——Hash索引和二叉搜索树、AVL树
  • 什么是类的实例化
  • 西门子 S7-200 SMART PLC 实操案例:中断程序的灵活应用定时中断实现模拟量滤波(下)
  • STM32FreeRtos入门(二)——创建第一个多任务程序
  • Qt QML and Qt Quick 简述及例程
  • Linux 系统移植
  • 小杰机器学习(six)——概率论——1.均匀分布2.正态分布3.数学期望4.方差5.标准差6.多维随机变量及其分布
  • 【Linux】Ext系列文件系统(上)
  • 【ROS2】Beginner: Client libraries - 发布者、订阅者例子 C++ Python
  • AI设计功能性病毒:从DNA语言模型到精准杀菌实战
  • Qt 共享指针QSharedPointer与std::shared_ptr
  • Java课程 第02周 预习、实验与作业:Java基础语法2:面向对象入门
  • 词性标注技术漫谈:为词语赋予语法灵魂的旅程
  • K230基础-MicroPython
  • 网站访问问题:无法访问此网站、404
  • Redis 与Memcached 的对比
  • PyTorch 神经网络工具箱:核心原理与实践指南
  • 广义矩估计错误指定时的一个推导【续5】
  • 【STM32】ADC数模转换器
  • Tensorboard学习记录
  • Redis中常见数据结构底层实现结构是什么
  • 高频交易技术演进:从毫秒到纳秒的极限延迟优化之路