Linux Camera驱动开发(用树莓派学习camera驱动)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

现在是一个ai的时代,不管是图片,还是文字、语音,几乎所有的东西都要和ai沾上边。就拿图像来说,大家想的都是用gpu、npu、cpu从图像中来获取信息,但是怎么获取高质量的图片,大家却不是很关心。而这一点,其实是十分重要的。所以对图像感兴趣的同学,不妨多学学lense、sensor、驱动、isp这些,这样就会对图像有更深的认识。

1、大部分驱动都和特定的平台相关

很多驱动,比如csi2、mipi、isp的配置,都是和平台相关的。这就意味着,如果我们要驱动好sensor,不仅要配置好sensor,还得把csi2这部分内容准备好。但这些平台相关的代码,很多都是要签署nda的,而且大多数它是面向b端客户的,对一般的开发者并不友好。

2、树莓派的platform驱动

相比较形形色色的soc,树莓派的驱动算是比较开放的。sensor端的代码,位于drivers/media/i2c,这一点不必多说。而platform平台端的代码,位于drivers/media/platform/raspberrypi,可以很容易找到。另外,网上关于树莓派的资料很多,对于初步入门的同学来说,这一点就非常方便。

3、树莓派的sensor驱动流程

树莓派的sensor驱动,和其他sensor一样,没有什么差别,主要的差别是platform驱动。csi2+mipi配置好,并且初始化好sensor之后,就可以从sensor拿到frame。这个时候,raspberry下面的pisp-fe就发挥用处了,它的作用就是把图片送到isp硬件。

**目前isp硬件这部分,大家可以看成是固化的算法,具体的内容都是不可见的,但是后期可以用json文件来进行标定。**等isp处理好之后,就会在pisp_be.c里面,拿到结果,并且送给上面的用户侧接口。这就是树莓派sensor处理的主要流程。

4、树莓派isp标定

和商业soc相比较,树莓派没有专业的isp上位机标定软件,基本上只能通过手工修改json文件的方法,去一点、一点优化frame效果。不像海思,或者是其他国外的soc,他们都有很完善的标定软件和标定流程,这一点树莓派只是解决有无,不解决好坏。

5、和mipi屏幕一起学习

除了csi mipi接口之外,树莓派还支持mipi屏幕。虽然lane的数量不多,但是4~5寸的应用还是可以部署的,这一点来说再加一点lvgl的应用,就可以做不少事情。

6、没有集成npu是一个遗憾

如之前所说,现在的ai特别流行,但是ai本身运行除了model之外,还需要npu加速,这一点树莓配没有优势。虽然官方也发布了AI HAT+,性价比和其他soc相比较,还是差不少。不过作为学习者来说,它可以帮助我们比较容易地掌握sensor和screen,从这一点来说,就很有价值了。

相关推荐
charlie1145141916 小时前
嵌入式Linux驱动开发pinctrl篇(1)——从寄存器到子系统:驱动演进之路
linux·运维·驱动开发
猫猫的小茶馆11 小时前
【Python】函数与模块化编程
linux·开发语言·arm开发·驱动开发·python·stm32
高翔·权衡之境17 小时前
主题9:DMA与零拷贝——让CPU从数据搬运中解放
驱动开发·安全·缓存·系统安全·信息与通信
小此方20 小时前
Re:Linux系统篇(十七)进程篇·二:深入浅出 [进程概念与进程父子关系]:从底层原理到实战应用
linux·运维·驱动开发
小此方20 小时前
Re: Linux系统篇(十八)进程篇·三:深度硬核!全面起底 Linux 进程状态变化与内核链表动态解绑
linux·驱动开发·链表
楼兰公子2 天前
# RK3588 Linux 驱动开发完整学习指南RK3588_Linux_Driver_Development.md
linux·驱动开发
念何架构之路3 天前
GoFrameMap转换详解
驱动开发
charlie1145141913 天前
嵌入式Linux嵌入式Linux驱动开发:设备树驱动改造——从硬编码到设备树的实战之旅
linux·运维·驱动开发
国产芯片设计3 天前
小家电单段码屏项目实战|YL1621 LCD驱动开发与调试心得
驱动开发·stm32·单片机·mcu·51单片机
小此方3 天前
Re:Linux系统篇(十六) 进程篇 · 一:深入理解操作系统:从软硬件架构到“先描述,再组织”的管理哲学
linux·驱动开发·硬件架构