camera学习入门指南

等待补充。

1.背景介绍

        近年来,随着消费电子领域市场的快速增长,如安防、图像等领域,camera市场得到了快速发展。智能手机这几年以拍照作为主打卖点,带动了camera(CCM)出货。

        具体可以看电子行业分析或者券商研报行业分析,比如下面两份。

        网盘链接: https://pan.baidu.com/s/1r8qXU0mrBo-J4HHn7Ygwhg 提取码: qjx9 

摘录一段内容        
        摄像头芯片是半导体行业中最好的赛道:由于光是模拟信号,摄像头芯片属于泛模拟电路行业。泛模拟电路行业规律不符合摩尔定理,其产品型号丰富,价格稳定。弱周期性波动,不会因为一个客户的消亡而消亡,也不会因为一个应用的消失而消失。
        摄像头芯片行业高增速:整体市场未来每年年复合7%以上增速,汽车和手机领域增速高于整体。手机领域主要来自摄像头数量的增加,像素点的增加以及像素点尺寸的增加;汽车领域主要来自智能驾驶对于摄像头数量需求的增加;安防领域来自国家高清视频的建设,以及更低功耗更高效率摄像头需求的推动。
        摄像头芯片行业高壁垒:目前第一梯队的索尼,三星和豪威切分近70%的市场份额,未来有望达到90%,其他厂商主要由于技术能力的不足,只能在低像素副摄像头领域占有一小部分的份额。

        在招聘网站上搜索camera,可以看到,多为手机厂商、智能硬件和汽车安防相关行业,包括tuning、效果、系统、性能功耗、测试等,其中camera tuning的岗位是最多的。绝大多数产品方案系统都是使用Android操作系统方案,所以需要对Android有一定了解。

        以前camera tuning工作是由算法工程师完成,后面随着用户对图像质量要求越来越高。ISP处理器出现和流行催生很多tuning的工作。

        camera涉及的基础知识:光学基本概念、camera基础知识:涉及硬件模组、软件架构等,linux驱动开发基本知识,Android开发等。

2.camera基础篇

camera和光学知识和摄影知识密切相关。

2.1.光学知识

成像原理:凸透镜成像。

视场角FOV(Field of View):指镜头能够拍摄到的范围,包括HFOV水平), VFOV垂直),DFOV对角)

DOF(depth of field):景深,指焦点前后相对清晰的成像范围。

Focal Length:焦距。

EFL(Effective Focal Length):有效焦距。

Fno(Aperture Value对应的Focal number):光圈数值,如F2.8,为光圈“系数”,简称为F值。Fno = EFL/D(光圈直径)。

ISO(International Organization for Standardization):感光度。

shutter speed:快门速度。

exposure:曝光。曝光由快门、光圈、、感光度共同决定,曝光影响影像的亮度。

色彩知识:

RGB(red green blue),光学三原色。自然界中肉眼所能看到的任何色彩都可以由这三种色彩混合叠加而成,因此也称为加色模式。

YUV(全称英文真没找到),是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠。Y”表示明亮度(Luminance或Luma),也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma)。

2.2.图像知识

Pixel:像素,整个图像中最小单位。

2MP(2 million pixel):两千万像素。

ppi(Pixels Per Inch):像素密度,描述分辨率的一种单位。

resolusion:分辨率,包括图像和视频。一般可以表述为水平象素×垂直象素+比例,比如说1280*720 16:9

图像处理相关:数字图像处理。最经典的一本书:数字图像处理(冈萨雷斯 第三版)。简单的说大致流程就是:处理图像:图像获取->图像滤波与增强->图像复原->图像(编码)压缩->形态学处理->图像分割->表示和描述->目标识别。显然图像处理这块是偏算法这块的

网上文章大把,大家可以自己搜。
camera sensor图像获取这一阶段,图像处理这块交给硬件isp去做了,压缩编码以jpeg图像保存。

2.3.camera相关知识

2.3.1.camera常见名词

下面名词百度整理而来。

lens:镜头。

sensor:传感器,camera特指图像传感器。常见的有CCD和CMOS两种。

CCD(Charge coupled Device):电荷耦合元件,感光元件之一,可用于图像传感器,多用于高端摄像头。

CMOS(Complementary Metal Oxide Semiconductor):指互补金属氧化物半导体,感光元件之一,图像传感器,多用于低端摄像头。

fpc柔性电路板:其实就是pcb的一种,用于承载电路,进行通信。

CCM(camera control module)摄像头模组。摄像模组包括lens、sensor、isp、

ISP(image signal process),图像信号处理,是DSP(digital signal process)的一种

AEC(auto exposure control):自动曝光控制

AWB(auto white balance):自动白平衡

AF(auto focus):自动对焦

3A算法:AEC、AWB、AF三种图像效果算法,故被称为3A。

JPEG:拍照数据的存储通过该硬件模块进行jpeg编码工作。

2.3.2.camera原理

CMOS:Understanding CMOS Image Sensor

H264基本原理:https://zhuanlan.zhihu.com/p/31056455

视频压缩与编解码的基本原理:https://zhuanlan.zhihu.com/p/67305755

Understanding MIPI Interface:https://zhuanlan.zhihu.com/p/100476927

Understanding ISP Pipeline:https://zhuanlan.zhihu.com/p/98820927

Understanding Light and Color:https://zhuanlan.zhihu.com/p/98834353

Understanding White Balance Control:https://zhuanlan.zhihu.com/p/98835300

Understanding Auto Exposure Control:https://zhuanlan.zhihu.com/p/100369527

Understanding Auto Focus:https://zhuanlan.zhihu.com/p/109000056

Understanding Image Quality Tuning:https://zhuanlan.zhihu.com/p/100650969

2.4.学习路径

下面是camera tuning工程师学习路径。网上的一张图,忘记出处了

(1)通信协议基础:I2C、MIPI(驱动需要深入了解)

(2)inux驱动基础:了解驱动设备,清除驱动的初始化流程,中断、锁的应用等。

(3)Android基础:adb命令,log分析。Android camera框架,camera的开发分app、framework、HAL、kernel层,对应的也就是应用、系统、驱动。算法的实现由oem第三方厂商去实现,还有效果、性能功耗、测试。Android代码走读:C/C++,java,以及Android的一些语法特性。 Android软件框架如下,图片来自谷歌官方

(4)调试:主要是log和addr2line。

(5)软件框架:高通关注camx框架,camera provider进程,open、configurestream、request、result、flush流程。还有各种usecase。

(6)驱动:kernel驱动关注sensor probe,i2c通信、上下电。

2.4.1.代码路径

APP:frameworks/base/core/java/android/hardware/

JNI:frameworks/base/core/jni/

Native:frameworks/av/camera/

server:frameworks/av/services/camera/libcameraservice

HIDL:hardware/interfaces/camera/

HAL:hardware/qcom/camera/ 实现了hal3的一系列接口。

vendor/qcom/proprietary/ 下面包括chi-cdk和camx。

KMD框架(高通):kernel/msm-4.19/teckpack/camera/

V4L2框架:kernel//drivers/media/v4l2-core

高通老的架构是mm-camera,新架构是camx,现在用的基本都是是camx了。

​​​​​​2.4.2.​debug流程

先分析是硬件问题还是软件问题。硬件问题一般和驱动有关,软件问题多了去,应用系统效果算法都有可能。

2.5.学习和参考资料

2.5.1.书籍

摄像、sensor相关

Image sensors and signal processing for digital still cameras

The manual of photography photographic and digital imaging

Single-Sensor Imaging Methods and Applications for Digital Cameras

Digital Color Imaging Handbook

Perfect Digital Photography

沟通与交流:非暴力沟通,金字塔原则

2.5.2.学习网站

android官方学习资料:

https://source.android.google.cn/devices/camera

https://developer.android.google.cn/training/camerax

图像色彩学习网站:http://handprint.com/HP/WCL/

知乎刘斯宁:无法抗拒的图像技术

知乎Yvon Shong:键盘摄影

知乎小P说相机:https://www.zhihu.com/column/irentals

Android Camera学习指南:https://www.jianshu.com/nb/31102210

高通官网文档:https://createpoint.qti.qualcomm.com

深入理解高通 Camx CHI 架构:https://www.jianshu.com/p/33fa6b466cca

深入理解Android相机体系结构(camx-chi架构)

https://blog.csdn.net/u012596975/article/details/107135938

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1383133.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

机器视觉——入门基础(三)——相机镜头选型

目录 相机选型 分辨率、快门、帧率、色彩、靶面、接口 镜头选型 分辨率、靶面、焦距、接口、光圈畸变工作距离 常用计算示例 相机选型 分辨率、快门、帧率、色彩、靶面、接口 镜头选型 分辨率、靶面、焦距、接口、光圈畸变工作距离 常用计算示例 1. 面阵相机和镜头选型 已…

划重点!| 必须了解的工业相机入门级知识

工业相机是机器视觉系统的核心部件,其相关基础知识是行业内人员必须熟知的。那么分辨率、像素深度、行频、信噪比具体是指什么?CCD和CMOS又该如何去进行选择?今天我们就对这些内容进行一个简单的梳理,希望能够帮助大家了解更多。 …

机器视觉——入门基础(一)—— 相机篇

目录 一,相机就是CCD么? 二,像素。 三,像素直径。 四,CCD的大小。 五,快门速度。 六,增益。 七,1D相机(线扫描相机) 八,3D相机。 九&…

IP 协议的相关特性和数据链路层相关知识总结

目录 IP 协议的相关特性 一、IP协议的特性 二、 IP协议数据报格式 三、 IP协议的主要功能 1. 地址管理 动态分配 IP地址 NAT机制 NAT背景下的通信 IPV6 2. 路由控制​​​​​​​ 3.IP报文的分片与重组 数据链路层相关知识 1、以太网协议(Ethernet) 2.M…

掌握Python的X篇_28_python包管理工具pip命令

本篇将会介绍在实际使用python中最能节省效率的内容,利用第三方库拿来就用。 文章目录 1. pip命令是什么2. pip相关操作2.1 list2.2 install2.3 uninstall2.4 导出和导入2.4.1 freeze命令2.4.2 “-r” 3. 国内镜像4. Python Packges Index网站 1. pip命令是什么 p…

DiskGenius分区移动硬盘

打开DiskGenius 右键点击1T(实际显示是900多G)的移动硬盘,选择快速分区 分区个数按自己需要来选,卷标也按自己需要来修改,取消主分区的勾选框,因为是移动硬盘,不需要转操作系统,所以…

AUtoCAD Civil 3D-曲面-原始数据处理

Civil3D中,曲面是最重要的一个对象之一。曲面涉及到的知识点比较多,作为一个刚接触Civil3D的学习者,可能对于各种概念和各种概念之间的关系比较迷惑。这篇文章及梳理下曲面的一些重要的概念框架。 1、 曲面的分类 曲面可以分为四种类型&…

如何将卫星影像或者航拍影像叠加到CAD设计图上(Auto CAD版)

同步视频教程:卫星图像应用到AutoCAD工程设计(套合、叠加、配准)-Bigemap GIS Office 视频教程:如何选择中央子午线或者分度带 第一步 工具准备 BIGEMAP地图下载器:Bigemap系列产品-GIS行业基础软件kml\shp 相关教…

AutoCAD套合(叠加)卫星影像和矢量路网数据-CAD配准

BIGEMAP无偏移影像叠加配准(Auto CAD版) ​ 同步视频教程:http://www.iqiyi.com/w_19rubyfogh.html 专题地图制作视频教程:http://www.iqiyi.com/w_19rvlbep4l.html#vfrm16-1-1-1 下载:全国路网数据、全国水系矢量 …

cad图转成shp文件并把其平面坐标投影配准成大地坐标(配准针对没有底图的情况)

所需工具:arcmap,supermap(这里安装过程就不写了,网上一堆,自行搜搜吧。) 一、先将cad图转成shp文件 打开arcmap中,在图层中加入数据。 在arcmap中导入cad图后,选择需要的要素导出。比如,这里需要面要素,右击面要素,选择数据,点击导出数据。 选择将要导出shp文件…

history记录日期时间和日志记录操作

history命令能查看到操作日期和时间的配置方法: 1)在/etc/profile文件中添加一行: export HISTTIMEFORMAT"%F %T whoami " 2)保存后,执行加载命令: source /etc/profile 3)然后检…

ASP.NET Core - 缓存之分布式缓存

分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时。 与其他将缓存数据存储在单个应用服务器上的缓存方案相比&am…

【SWAT水文模型】SWATCUP率定参数实例-以洮河流域为例

SWATCUP率定参数实例 以SWATCUP首次模拟结果为例,具体模拟结果如下: 模拟参数结果如下: Parameter_Name Fitted_Value Min_value Max_value 1:R__CN2.mgt -0.180000 -0.200000 0.200000 2:V__SUR…

深入浅出流批一体理论篇——数据架构的演进

一、前大数据时代 人人都知道罗马不是一天建成的,但没人告诉过你罗马是怎样一天天建成的。你看见罗马时,它就已经是罗马了。当我进阿里时,正是这样的感觉。我没有经历过阿里数据架构(包括平台工具)从0到1的过程。我相…

linux镜像下载与安装

https://www.kernel.org/ 中国科技大学网站:http://centos.ustc.edu.cn/centos/ 清华大学网站:https://mirrors.tuna.tsinghua.edu.cn/centos/7/isos/ http://mirror.centos.org/centos/7/isos/ Centos7.6 安装 1、引导进入安装界面后,选择安…

linux系统镜像官方下载地址

Centos镜像 http://mirror.nsc.liu.se/centos-store/7.2.1511/isos/x86_64/ #所有镜像下载地址 https://www.centos.org/download/ 这里选择的是centos7,64位系统 选择国内的镜像即可 选择第一个镜像文件下载 Ubuntu镜像 ubuntu 后面跟LTS(Long Term Support )&#xff0…

Linux系统各发行版镜像下载

标题Linux系统各发行版镜像下载,包括CentOS、RedHat Enterprise Linux、Ubuntu、Fedora、SUSE等。 建议选择地域离您比较近的服务器。 1、搜狐 http://mirrors.sohu.com/ 例如: CentOS7.7的下载目录是http://mirrors.sohu.com/centos/7.7.1908/isos…

下载虚拟机安装linux镜像(图形化)

1、下载虚拟机的网址 https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html 这里选择第一个windows的版本,直接下载安装就好了,里面需要的序列号百度找一下就好了 我的虚拟机版本是15.5的,这里就没用详细…

Linux镜像下载及虚拟机中安装

目录 一、官网下载 二、新建虚拟机 三、镜像安装 一、官网下载 Download - CentOS Wiki 或者右上角download-》下拉找到如图找到老版本 1.往下拉,我们选择7.7版本 2.往下拉,找到ISOS 3.选择版本 4.找DVD.iso的就可以 二、新建虚拟机 1.新建虚拟机…

linux虚拟机镜像下载

下载VMware 下载链接 https://download3.vmware.com/software/wkst/file/VMware-workstation-full-15.0.4-12990004.exe 如果下载最新版 在vmware官网该找到下载 选择要使用的系统 下载的版本 进入下载页面,选择版本并在下载页中点击了解更多 软件详情 复制软件…