www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 嵌入式IoT

攝像頭機器視覺人工智能的"眼睛",其重要性在嵌入式領(lǐng)域不言而喻。但是如何理解和使用攝像頭卻是一個非常棘手的問題。本文主要針對調(diào)試攝像頭過程中遇到的問題,對攝像頭的基本原理及概述進(jìn)行整理,同時對自己在實際工作中遇到的問題進(jìn)行梳理總結(jié)。

1.簡介2.攝像頭模組基本構(gòu)造與工作原理2.1 基本構(gòu)造2.1.1 鏡頭Lens2.1.2 IR Filter紅外濾鏡2.1.3 Sensor2.2 數(shù)據(jù)輸出2.2.1 輸出格式2.2.2 ISP2.2.3 行場同步信號3.硬件設(shè)計與接口定義3.1 上下電時序3.2 PCLK \D1~D73.3 Camera Interface Module (CIM)4.驅(qū)動與調(diào)試4.1 Sensor 的初始化步驟4.1.1 I2C與SCCB總線協(xié)議4.2 攝像頭問題及解決辦法匯總4.2.1 名稱解釋4.2.2 圖像傳感器圖像問題總匯5. 總結(jié)

1.簡介

目前,包括移動設(shè)備在內(nèi)的很多 多媒體設(shè)備上都使用了攝像頭,而且還在以很快的速度更新?lián)Q代。目前使用的攝像頭分為兩種:CCD(Charge Couple Device電荷偶合器件)和 CMOS(Complementary Metal Oxide Semiconductor互補金屬氧化物半導(dǎo)體)。

這兩種各有優(yōu)劣:目前CCD主要使用高質(zhì)量的DC、DV,數(shù)碼相機和高檔手機上,其圖像質(zhì)量較好,但是整個驅(qū)動模組相對比較復(fù)雜,而且目前只有曰本一些企業(yè)掌握其生產(chǎn)技術(shù),對于選用的廠商來說成本會比較高昂,而且一些設(shè)備對與圖像質(zhì)量沒有很苛刻的要求,對體積要求會高一些;而CMOS正好滿足這樣的要求,CMOS模組則比較簡單,目前很多廠商已經(jīng)把驅(qū)動和信號處理的ISP(Image Signal Processor)集成在模組內(nèi)部,這樣體積就更小,而且其生產(chǎn)技術(shù)要求相對簡單、工藝比較成熟、成本較低、外圍電路簡單、圖像質(zhì)量也可以滿足一般的要求,所以在嵌入式市場中占有很大份額,目前一些高端的CMOS Sensor的質(zhì)量已經(jīng)可以和CCD 的質(zhì)量相媲美。

本文主要是圍繞CMOS攝像頭進(jìn)行軟件開發(fā)與調(diào)試,對之前的OV7740,OV7725及GC2155攝像頭的驅(qū)動調(diào)試經(jīng)驗上進(jìn)行技術(shù)總結(jié)。對前面開發(fā)過程中遇到的問題進(jìn)行回顧,同時對之前網(wǎng)上收集的資料進(jìn)行一下整理。

2.攝像頭模組基本構(gòu)造與工作原理

要認(rèn)識CMOS攝像頭的結(jié)構(gòu)。我們通常拿到的是集成封裝好的模組,一般由4個部分組成:FPC(柔性電路板),鏡頭、感應(yīng)器與圖像信號處理器構(gòu)成。一般情況下,集成好的模組我們只看到外面的鏡頭、接口和封裝殼,這種一般是固定焦距的。有些廠商只提供芯片,需要自己安裝鏡頭,鏡頭要選擇合適大小的鏡頭,如果沒有夜視要求的話,最好選擇帶有紅外濾光的鏡頭,因為一般的sensor都能感應(yīng)到紅外光線,如果不濾掉,會對圖像色彩產(chǎn)生影響,另外要注意在PCB設(shè)計時要保證鏡頭的聚焦中心點要設(shè)計在sensor的感光矩陣中心上。除了這點 CMOS Sensor硬件上就和普通的IC差不多了。

2.1 基本構(gòu)造

鏡頭(LENS):透鏡結(jié)構(gòu),有機玻璃和石英;

基座(LENS Base):用于固定鏡頭

圖像傳感器:

CCD(charge-coupled device) :電荷耦合器件

CMOS(complementary metal oxide semiconductor):互補金屬氧化物半導(dǎo)體

DSP數(shù)字處理電路:AD轉(zhuǎn)換器

電源:兩種工作電壓:3.3V和2.5V;

2.1.1 鏡頭Lens

光是一種波,可見光只是整個光波中的一段。Lens就是一個能夠截止不可見光波,而讓可見光通過的帶通濾波器。

鏡頭lens的主要規(guī)格參數(shù)有

1)有效焦距EFL:effective foce length

2)視場角FOV:field of view

視場角在光學(xué)工程中又稱視場,視場角的大小決定了光學(xué)儀器的視野范圍。


3)光圈F/NO:

光圈能調(diào)節(jié)進(jìn)入鏡頭里面的光線的多少,舉例來說:家養(yǎng)的小貓,白天的瞳孔總是縮成一條線,到了晚上,就自動地打開成為一個圓孔。所以,同樣道理,在拍照時,光線強烈,就要縮小光圈,光線暗淡,就要開大光圈。也就是說F值越小的相機(其他參數(shù)不變),越有利于夜景拍攝。

光圈數(shù)越小,入射光的鏡頭孔徑越大,單位時間進(jìn)入Camera的光通量就越大,弱光環(huán)境下,拍
照效果就越好,但同理景深就越淺,同時邊緣畫質(zhì)和主體銳度就較差

4)像圓徑:image circle

圓光學(xué)系統(tǒng)所成像的最大直徑圓。取決或決定于配合使用 Sensor尺寸。

5)鏡頭總高:total track length

光學(xué)總長是指由鏡頭中鏡片的第一面到像面的距離。


6)后焦距:back flage length

光學(xué)后焦:最后一片鏡頭中心到成像面的距離

機械后焦:底端面到成像面的距離

7)相對照度

畫面角落與中心的亮度比

8)主光線角度:chief ray angle (與sensor不匹配,會產(chǎn)生暗角偏色)

9)TV畸變:TV distortion

2.1.2 IR Filter紅外濾鏡

功能:除去紅外光,避免紅外線干擾,修正進(jìn)來的光線,改善sensor 鄰近干擾,使影像呈現(xiàn)的色彩符合人眼的感覺 。

分類:一般分為干涉式的IR/AR-CUT(在低通濾波晶片上鍍膜,利用干涉相消的原理)和吸收式的玻璃(利用光譜吸收的原理) 。

影響因素:針對IR-CUT,與IR-CUT厚度無關(guān),主要在于鍍膜工藝控制和鍍膜層數(shù)針對玻璃,與厚度相關(guān),越厚越好,另外針對高端的還有一種藍(lán)玻璃IRCF

針對手機Camera:
1)對可見光光譜段:430-620nm有透過率要求,Tmin>=85%
2)對濾除波段:650+/-10nm有濾除要求,T<=50%
3) 對近紅外光譜段:700-1200nm有透過率要求
4)AR面的對可見光的420-670nm有反射率要求

2.1.3 Sensor

Sensor分類按感光元件一般可分為CCD和CMOS

Sensor的工作原理

其實傳感器Sensor中感光的部分是由許個像素按照一定規(guī)律排列
的。

光照--〉電荷--〉弱電流--〉RGB數(shù)字信號波形--〉YUV數(shù)字信號信號


2.2 數(shù)據(jù)輸出

2.2.1 輸出格式

CMOS模組輸出信號可以是模擬信號輸出數(shù)字信號輸出。

模擬信號一般是電視信號輸出,PAL和NTSC都有,直接連到電視看的;

數(shù)字輸出一般會有并行和串行兩種形式,由于圖像尺寸大小不同,所要傳輸?shù)臄?shù)據(jù)不同,數(shù)據(jù)的頻率差異也很大,但是串行接口的pixel clock頻率都要比并行方式高(同樣的數(shù)據(jù)量下這不難理解),較高的頻率對外圍電路也有較高的要求;

并行方式的頻率就會相對低很多,但是它需要更多引腳連線;所以這應(yīng)該是各有裨益。

2.2.2 ISP

一般CMOS Sensor模組會集成ISP在模組內(nèi)部,其輸出格式可以選擇,這樣可以根據(jù)自己使用的芯片的接口做出較適合自己系統(tǒng)的選擇。其中,部分sensor為了降低成本或者技術(shù)問題,sensor部分不帶ISP或者功能很簡單,輸出的是BAYER PATTERN,這種格式是sensor的原始圖像,因此需要后期做處理,這需要有專門的圖像處理器或者連接的通用處理器有較強的運算能力(需要運行圖像處理算法)。

2.2.3 行場同步信號

一般都有三個同步信號輸出:幀同步/場同步(Frame synchronizing)、行同步(Horizontal synchronizing)和像素時鐘(pixel clock)。要保證信號的有效狀態(tài)與自己系統(tǒng)一致,如都是場同步上升(下降)沿觸發(fā)、行同步高(低)電平有效等。

3.硬件設(shè)計與接口定義

對于攝像頭的硬件接口

在君正的開發(fā)板上,接口定義如上圖所示。

Signal I/O Description
HREF I 行同步信號
PCLK I 像素時鐘
DATA[7:0] I 像素數(shù)據(jù)
SCCB I/O sccb通信
MCLK O 系統(tǒng)時鐘信號

控制邏輯為攝像頭上電、IIC控制接口。

數(shù)據(jù)輸出為攝像頭拍攝的圖傳到主控芯片,所有要有data、行場同步和時鐘號。CMOS接口的圖像傳感器芯片可以感知外部的視覺信號并將其轉(zhuǎn)換為數(shù)字信號并輸出。

我們需要通過MCLK給攝像頭提供時鐘,RESET是復(fù)位線,PWDN在攝像頭工作時應(yīng)該始終為低。PCLK是像素時鐘,HREF是行參考信號,VSYNC是場同步信號。一旦給攝像頭提供了時鐘,并且復(fù)位攝像頭,攝像頭就開始工作了,通過HREF,VSYNC和PCLK同步傳輸數(shù)字圖像信號。 數(shù)據(jù)是通過D0~D7這八根數(shù)據(jù)線并行送出的。

這里需要注意,在調(diào)試攝像頭之前,一定需要通過MCLK提高時鐘,否則攝像頭不能正常工作,通信接連接不上。

3.1 上下電時序

這個要接規(guī)格書上來,注間PWDN、RESETB這兩個腳,不同的攝像頭不太一樣,這個圖是上電時序,上電時參考一下,知道在那里看就行

嚴(yán)格的來說,應(yīng)該是按照這個時序來進(jìn)行設(shè)計。先進(jìn)行攝像頭上電,然后輸出MCLK到攝像頭模塊,接著PWDN,最后RESET一下攝像頭。目前來看,這個過程的時序要求不是十分的嚴(yán)格。但是PWDN后是否需要RESET,這有什么影響目前還不確定。

3.2 PCLK \D1~D7

對于數(shù)據(jù)的傳輸,需要關(guān)注的信號主要是PCLK與D1~D7信號

PCLK是像素時鐘,可通過設(shè)置寄存器的值來進(jìn)行PCLK的配置。

首先輸入時鐘MCLK如果為24MHz。

所以如果需要設(shè)置PCLK也為24M,可以通過設(shè)置0x11寄存器為0x01來設(shè)置

/* CLK */ {0x11, 0x01}, //時鐘頻率CLK [5:0] {0x36, 0x3f}, 

此時可以計算出一幀數(shù)據(jù)的時間。

通過計算,如果按照YUV圖像格式接收數(shù)據(jù),圖像為VGA,頻率為24MHz,那么一幀數(shù)據(jù)的時間約為33ms。

3.3 Camera Interface Module (CIM)

攝像頭的采集的數(shù)據(jù)CPU無法直接處理,主控芯片X1000里面集成了Camera控制器,叫CIM(Camera Interface Module)。攝像頭需要先把圖像數(shù)據(jù)傳給控制器,經(jīng)過控制器處理(裁剪拉升后直接預(yù)覽或者編碼)之后交給CPU處理。實際上攝像頭工作需要的時鐘(MCLK)也是CIM給它提供的。

在君正x1000上的攝像頭接口可支持CMOS 或者CCD類型的攝像頭, CIM可直接連接外部的攝像頭模塊。

在接口引腳方面,主要是下面幾個引腳

Name I/O Width Description
MCLK O 1 CIM輸出時鐘
PCLK I 1 像素時鐘
VSYNC I 1 垂直同步信號
HSYNC I 1 水平同步信號
DATA I 8 數(shù)據(jù)

通過CAM_MCLK給攝像頭提供時鐘,RST是復(fù)位線,PWDN在攝像頭工作時應(yīng)該始終為低。HREF是行參考信號,PCLK是像素時鐘,VSYNC是場同步信號。一旦給攝像頭提供了時鐘,并且復(fù)位攝像頭,攝像頭就開始工作了,通過HREF,PCLK和VSYNC同步傳輸數(shù)字圖像信號。數(shù)據(jù)是通過DATA0~DATA7這八根數(shù)據(jù)線并行送出的。

在行場同步信號中,可收集圖像的幀同步信號來判斷采樣點,同時內(nèi)部可通過設(shè)置設(shè)置一幀圖像對的大小來進(jìn)行一幀圖像是否完整的判斷。

4.驅(qū)動與調(diào)試

由于本文主要是針對攝像頭OV7740來進(jìn)行主要的分析,同時也對OV7725進(jìn)行一些探索。所以總結(jié)出攝像頭驅(qū)動編寫的一般流程與思路。同時在君正x1000上如何使用好攝像頭模塊進(jìn)行詳細(xì)的分析。

根據(jù)以往調(diào)試Camera驅(qū)動,總結(jié)的一些小經(jīng)驗:

1.首先對照電路圖,檢查Camera的電路連接是否正確;

2.用萬用表量Camera的電源管腳,查看Camera的供電是否正常,確定是否需要我們在程序中進(jìn)行電源控制;

3.查看Camera的Spec文檔,檢查PWDN和RESET的管腳觸發(fā)是否正常,是否需要在程序中進(jìn)行控制;

4.在Camera的Datasheet中找出該設(shè)備的I2C地址,檢查I2C地址配置是否正確;

5.查看I2C通信是否正常,是否能正常進(jìn)行讀寫,用示波器量出I2C的SCL和SDA的波形是否正常,未通信時都為高電平,通信時SCL為I2C時鐘信號,SDA為I2C數(shù)據(jù)通路信號;

6.用示波器量Camera的MCLK管腳,看是否正確,如果MCLK正常,通常情況下PCLK也應(yīng)該有波形;

7.檢查Camera的初始化寄存器列表的配置是否正確。

這幾步是很重要的,因為攝像頭是一個不可看見狀態(tài)的設(shè)備,所以在調(diào)試前期,一定要檢查電路的連接是否正常。如果硬件上出現(xiàn)問題,后面調(diào)試起來會走很多的彎路,也會浪費大量的時間與精力。

4.1 Sensor 的初始化步驟

一般 sensor 的初始化通常包含以下幾個步驟

1.sensor上電,電源分為模擬電壓,數(shù)字電壓,IO電壓。這三個電源并沒有嚴(yán)格的先后上電順序,可以在代碼中同時打開

2.對 sensor 輸出 MCLK,配置對 PCLK 采樣輸出頻率,這是能否正常接收 sensor 數(shù)據(jù)的關(guān)鍵。

3.配置 V, H 同步信號的輸出極性,如果極性配置不對,將造成圖象不能正常采集,自然顯示混亂。

4.硬件的 reset。sensor 的 reset 為低 reset,并且至少持續(xù) 1US。

5.軟件的 reset。 既然為軟件的 reset,那就必須要求 X1000夠?qū)?sensor 進(jìn)行寫寄存器。也就是要保證 IIC 能夠正常地寫數(shù)據(jù)進(jìn)入 sensor ISP,這點是保證軟件能夠進(jìn)行調(diào)試的基礎(chǔ)。軟件 reset 通常根據(jù) sensor 的不同會有所變化,注意硬件 reset 后要保留一些時間才能使用 IIC 總線。通常在 10 個 US 以上 。

6.OV7740或者OV7725在 ISP 中默認(rèn)了一組寄存器,能夠在 reset 后不用 IIC 寫任何寄存器就能輸出圖象,這個時候 sensor 的 input clock 是 output clock 的兩倍,前期可以用這個方法來驗證硬件和軟件供電,復(fù)位等是否正確,當(dāng)后端接受的圖象 engine只能用 mclk 來同步工作時候,必須要正確配置接收的采樣頻率 。

7.初始化寄存器,并配置輸出頻率和輸出圖象的分辨率 。

8.讀取 sensor 的版本號,如果與我們所用產(chǎn)品的 version 一致,就代表初始化工作正確完成 。

4.1.1 I2C與SCCB總線協(xié)議

I2C串行總線有兩根信號線:一根雙向的數(shù)據(jù)線SDA;另一根是時鐘線SCL。所有接到I2C總線上的設(shè)備的串行數(shù)據(jù)都接到總線的SDA線,各設(shè)備的時鐘線SCL接到總線的SCL。在I2C總線傳輸過程中,將兩種特定的情況定義為開始和停止條件,當(dāng)SCL保持“高”, SDA由“高”變?yōu)椤暗汀睍r為開始條件; SCL保持“高”, SDA由“低”變?yōu)椤案摺笔菫橥V箺l件。開始和停止條件由主控器產(chǎn)生。使用硬件接口可以很容易地檢測開始和停止條件,沒有這種接口的微機必須以每時鐘周期至少兩次對SDA取樣以使檢測這種變化 。

在調(diào)試ov7725攝像頭時,首先遇到的是ov7725攝像頭的I2C通信不能正常的通信的問題。在ov7725攝像頭和GC2155攝像頭上都可以正常的運行,可是同樣的程序在ov7725上就不能正常的運行了。其實這個是由于ov7725的攝像頭協(xié)議比較的嚴(yán)格,不兼容標(biāo)準(zhǔn)的i2c協(xié)議,而ov7725與gc2155攝像頭是兼容i2c協(xié)議的。

SCCB的寫數(shù)據(jù)

I2C寫數(shù)據(jù)

其實在寫數(shù)據(jù)協(xié)議這一塊兩者是沒有差別的,主要的問題就是對于OV7740和GC2155寫數(shù)據(jù)的方式可以通過下面的方式進(jìn)行寄存器數(shù)據(jù)的寫

首先寫設(shè)備ID,然后寫攝像頭寄存器的地址:

接著寫攝像頭的ID,然后寫像頭寄存器的數(shù)據(jù):

而這種方式對于OV7725操作是不行的,所以O(shè)V7725對協(xié)議的要求還是比較嚴(yán)格的。

SCCB的讀數(shù)據(jù)協(xié)議

首先寫寄存器的地址Sub-address


然后開始讀數(shù)據(jù)

I2C的讀數(shù)據(jù)協(xié)議


其實這里的最大問題就是發(fā)送了寄存器地址后,需要加一個停止位,然后從新開始發(fā)送設(shè)備地址,讀取數(shù)據(jù)。

對于ov7725而言,只能使用SCCB協(xié)議,而OV7740與GC2155是支持I2C數(shù)據(jù)協(xié)議的。

4.2 攝像頭問題及解決辦法匯總

4.2.1 名稱解釋

白平衡

白平衡指的是傳感器對在光線不斷變化環(huán)境下的色彩準(zhǔn)確重現(xiàn)的能力表示。大多數(shù)拍照系統(tǒng)具有自動白平衡的功能,從而能在光線條件變化下自動改變白平衡值。設(shè)計工程師尋找的圖像傳感器應(yīng)該配備了一個很好的自動白平衡(AWB)控制,從而提供正確的色彩重現(xiàn)。要說到白平衡就要先建立色溫的概念其實在攝影領(lǐng)域,光源大多是根據(jù)它們的色溫來定義。色溫的單位是開爾文,在不同溫度下呈現(xiàn)出的色彩就是色溫。 當(dāng)一個黑色物體受熱后便
開始發(fā)光,它會先變成暗紅色,隨著溫度的繼續(xù)升高會變成黃色,然后變成白色,最后就會變成藍(lán)色(大家可以觀察一下燈泡中的燈絲,不過由于受到溫度的限制,大家一般不會看到它變成藍(lán)色)??傊?,這種現(xiàn)象在日常生活中是非常普遍的。

人的大腦能仔細(xì)分析出從眼睛接受的信號,因而能感知不同的色溫(colortemperature)來顯示相同的白色。但 camera 卻不能,在早晨時分的相片偏紅,而黃昏時候的卻偏黃,就算同一張白紙在不同的環(huán)境下被拍攝,
如不同的時間,不同的光源,都會出現(xiàn)不同程度的偏差。調(diào)整白平衡,就是要給白色一個定義,能正確記錄我們眼睛所看到的顏色。 sensor 給出了兩種白平衡的控制方法,一種是自動白平衡(AWB),一種是手動白平衡(MWB)。自動白平衡為 sensor 內(nèi)部 ISP 的默認(rèn)設(shè)置, ISP 中有一結(jié)構(gòu)復(fù)雜的矩形圖,它可決定畫面中的白平衡基準(zhǔn)點,以此來達(dá)到白平衡調(diào)校。由于手機 camera 不屬于色彩要求很高的照相機范疇,所以我們一般使用自動白平衡,自動白平衡在光源不是特別復(fù)雜的時候有較好的效果。手動白平衡需要自己設(shè)置 R, G, B 的 gain 值, 寄存器中有專門設(shè)置這三個值的寄存器 。

動態(tài)范圍

動態(tài)范圍測量了圖像傳感器在同一張照片中同時捕獲光明和黑暗物體的能力,通常定義為最亮信號與最暗信號(噪聲門檻級別)比值的對數(shù),通常用54dB來作為商業(yè) 圖像傳感器的通用指標(biāo)。具有較寬動態(tài)范圍的 圖像傳感器可以在明光環(huán)境下提供更好的性能(例如,使用較窄動態(tài)范圍傳感器在明光環(huán)境下拍出的照片會出現(xiàn)“水洗”或模糊的現(xiàn)象。)

圖1--攝像頭在逆光時,整體入光量太大(窗外光線太強了),為避免過曝就導(dǎo)致背景正常了,但主體卻曝光不足因此就黑掉了

圖2—就是動態(tài)范圍比較好,把主體跟背景都能曝光正常.

工頻干擾

如果手機出現(xiàn)水波紋就是工頻干擾。工頻干擾是由于室內(nèi)日光燈閃爍造成的。 CMOS 與 CCD 兩種不同的工藝制造出來的 sensor 工頻干擾現(xiàn)象是不一樣的,這是由暴光的方式不同造成的。

Sensor在日光燈作為光源下獲取圖像數(shù)據(jù)時會產(chǎn)生flicker,其根本原因是照在不同pixel上光能量不同產(chǎn)生的,所接受的光能量的 不同也就是圖像的亮度的不同。
由于CMOS sensor的曝光方式是一行一行的方式進(jìn)行的,任何一個pixel的曝光時間是一樣的,也就是同一行上的每個pixel的曝光開始點和曝光的時間都是一模一樣的,所以同一行的所有點所接收到的能量是一樣的,而在不同行之間雖然曝光時間都是一樣的,但是曝光的開始點是不同的,所以不同行之間所接受到的能量是不一定相同的。 為了使不同行之間所接受的能量相同,就必須找一個特定的條件,使得每一行即使曝光開始點不同,但是所接受的光能量是相同的,這樣就避開了flicker,這個特定的條件就是曝光時間必須是光能量周期的整數(shù)倍時間。
Banding由工頻干擾引起,交流電光源都有光強的波動,在中國交流電頻率是50Hz,光強的波動就是100Hz,周期10ms。如果camera曝光時間不是10ms的整數(shù)倍,那么在不同的感光面接收到的光能量一定不一樣,體現(xiàn)在圖像上就是有明暗條紋。 消除banding就得想辦讓曝光時間是10ms的整數(shù)倍!60Hz的交流電需要控制曝光時間為8.33ms的整數(shù)倍。

以50Hz為例說明,實現(xiàn)這個有兩種辦法:
1、設(shè)置曝光控制,強制為10ms整數(shù)倍變化,但是這樣會浪費一部分曝光時間,導(dǎo)致曝光無法用滿,在室內(nèi)自然就會損失性能。

2、修改楨率,使每楨圖像分到的時間是10ms的整數(shù)倍,則可以用滿每楨曝光時間在,室內(nèi)效果更好。修改楨率可以插入Dummy Line或者Dummy Pixel。這需要一點點計算,具體計算需要看sensor輸出Timing。
例如把楨率設(shè)置為7.14fps,則每楨曝光時間是140ms。如果是15fps,則每楨曝光時間是66.66ms,如果強制曝光為10ms整數(shù)倍,最大即60ms,則有6.66ms無法參與曝光,損失性能。
具體調(diào)整楨率方法得和sensor的FAE溝通,每個sensor都可能不一樣,不能一概而論。調(diào)整楨率還有個原則要注意,預(yù)覽一般不能低于 10fps,再低就很卡,常用14.3fps和12.5fps;抓拍不能低于5fps,否則用手就很難拍出清晰的照片,常用7.14fps。楨率是一個權(quán) 衡折中
的選擇,高了曝光時間不夠,暗光效果太差,低了沒法拍照,容易虛。

IR cut (濾除紅外光)

sensor不僅對可見光譜感光,而且對紅外光譜感光. IR就是infrared紅外光, 如果沒有IR-Cut Filter,圖象就會明顯偏紅,這種色差是沒法來用軟件來調(diào)整的,一般IR-Cut在650+/-10nm,而UV,紫外光的能量很小,一般就忽略了.未加IR cut 拍攝的照片,可見影響最大的是圖像的色彩.+

Binning

Binning是將相鄰的像元中感應(yīng)的電荷被加在一起,以一個像素的模式讀出。Binning分為水平方向Binning和垂直方向 Binning,水平方向Binning是將相鄰的行的電荷加在一起讀出,而垂直方向Binning是將相鄰的列的電荷加在一起讀出,Binning這一 技術(shù)的優(yōu)點是能將幾個像素聯(lián)合起來作為一個像素使用,提高靈敏度,輸出速度,降低分辨率,當(dāng)行和列;同時采用Binning時,圖像的縱橫比并不改變,當(dāng)采用2:2Binning,圖像的解析度將減少75%。在手機小屏幕上Preview時建議用這種方式 而不是通過DSP來做抽點的動作。

4.2.2 圖像傳感器圖像問題總匯

出現(xiàn)橫向條紋

比如出現(xiàn)橫向的紫色或綠色條紋。一般情況下是時序有問題。
走線的時候要注意 MCLK、PCLK還有幀同步(vsync)和行同步(hsync),基本上市面上的芯片這些信號都要分開走線,最好加GND。

現(xiàn)象: 閃橫的紫色或綠色干擾線
原因: Hsync和高速線距離太近太長, 產(chǎn)生了耦合(10cm的高速線產(chǎn)生約5pF左右的耦合電容), 導(dǎo)致HSYNC不能迅速拉升至90%的區(qū)域,相位不同步,最終數(shù)據(jù)采集有錯位。然后因為YUV算法的作用,引起綠線和紫色的閃線。)

解決辦法:絕對禁止將HSYNC,PCLK,MCLK這三根線擠在一起走線。

1)HSYNC夾在低速線SDA和SCL之間

2)PCLK和MCLK如果一定要貼著走線,最好拉開一點距離,當(dāng)中夾一根地線。

顏色和亮度不連續(xù)

一般是數(shù)據(jù)線存在短路、斷路和連錯的問題。圖像會出現(xiàn)類似于水波紋的等高線或大面積色偏. D信號丟失畫面整體也會色偏,比如RGB565,D0~D4均斷路圖像會因藍(lán)色和綠色信號丟失過多而呈現(xiàn)紅色。

1)一根數(shù)據(jù)線虛焊導(dǎo)致的等高線及顏色失真

2)兩根數(shù)據(jù)線和其他設(shè)備復(fù)用導(dǎo)致的偏綠問題

3)數(shù)據(jù)線接反的情況

4)數(shù)據(jù)線錯位

圖像中只有紅或綠顏色

Y和U/V的順序不對。將攝像頭的采樣格式由CbYCrY改為YCbYCr后,顏色就對了。

模擬電壓過低或不穩(wěn)定

模擬電壓過低導(dǎo)致很強的光才能感應(yīng)圖像,并且偏色。

只有天花板上的燈管才感應(yīng)成像,其他部分很模糊。

模擬電壓過低導(dǎo)致豎向條紋。提高AVDD后問題解決。

在調(diào)試 OV7725時發(fā)現(xiàn),剛打開攝像頭時圖像有條紋,開了一段時間后圖像就正常了,有沒有哪位知道是什么原因;不正常的圖像如下。查出問題了,是模擬電壓不穩(wěn)導(dǎo)致的。

背部材料太薄導(dǎo)致“鬼影”

補強的表面要用亞光黑油,防止漏光。

由噪聲導(dǎo)致的圖像橫紋

將CMOS移到離主IC較遠(yuǎn)的地方現(xiàn)象就消失了,之前是放在主IC的背面,猜測是主IC對CMOS造成的影響,比如在模擬電壓上引入噪聲。

cmos為ov的30w像素,型號為ov7141。使用時出項很明顯的水平方向的橫波紋。 采用3.3v和2.5v供電,其中VDD_C和VDD_A是由2.5v供電,pcb上直接將他們連在一起接2.5v。直接鋪地,沒有劃分模擬地和數(shù)字地。
使用外接電源對AVDD供電,沒有出現(xiàn)上述現(xiàn)象。可以確定是由主板的電源噪聲引起的。

工頻干擾

在室外自然光下如果不會出現(xiàn),那一定是50/60Hz引起的flicker。

Lens校準(zhǔn)參數(shù)未調(diào)好導(dǎo)致的中間較亮的情況

中間較亮

軟件上,可能是lens correction沒調(diào)好(個人感覺樓主狀況屬此列),設(shè)定好correction區(qū)域然后將gain值拉高讓中心與周邊亮度差異減少,如果此時整個畫面過曝,可以將整體gain值再往下調(diào)(也可以設(shè)定曝光參數(shù)來減少畫面亮度)。

自動曝光計算出現(xiàn)的偏綠現(xiàn)象

在室外光線較亮拍攝時,畫面顏色任何時候都正常。在室內(nèi)光線較暗拍攝時,剛打開攝像時拍攝的畫面偏綠,幾秒鐘之后就會恢復(fù)正常。屬于正?,F(xiàn)象。OV7670 30W 計算AE時間比較長。在計算AE的過程中容易出現(xiàn)偏色現(xiàn)象。 可以丟幀或者延時解決這個問題。

時序不對導(dǎo)致的圖像上部或下部出現(xiàn)條紋

camera 模組的timing調(diào)整不了。修改AP的camera控制,使垂直同步偏移12 rows. 圖像輸出正確。

lens鏡間反射導(dǎo)致的眩光

這是一顆5M的模組拍攝的圖片,天花板的燈在視場外邊緣,圖中為何出現(xiàn)紫紅色的光?是什么原因造成的?

屬眩光現(xiàn)象,一般是由于多片lens鏡間反射造成。通過改善鍍膜制程,增加鏡片透射率可以緩解次問題。
另外,這張照片光心偏到左邊去了,holder偏移?lens set circle夠大啊,這種偏移都能cover掉。

pclk與vsync布線干擾

在調(diào)試一款手機攝像頭(OV7675)時,發(fā)現(xiàn)畫面垂直不同步,主要是畫面的下半部分跳動很厲害,上半部分是好的.
問題已經(jīng)找到了,幀同步VSYNC和PCLK布線有干擾

PCLK采樣邊沿選擇不對導(dǎo)致的噪點

轉(zhuǎn)換了一下Pclk的極性,這個躁點的問題得到了很好的解決。
例2. ov7675拍出來的照片發(fā)綠??赡苁荘CLK采樣邊緣不對,可以試試將pclk反向。也可能是數(shù)據(jù)線缺失問題。
例3, 如下圖所示。通過修改pclk的上升沿和下降沿就解決了。
主要有兩點:
1.修改PCLK的上升沿的斜率。 2.或者修改I/O的上升沿的斜率

原因是不同廠家的模組layout的走線的長短,F(xiàn)PC的厚薄,都可能影響到PCLK的獲取, FPC的公差過大,或者頭板的制作是否有什么問題,都可能引起這個問題。 如果可以通過硬件的方式改變PCLK上升沿的斜率,也可以解決這個問題。
通過修改pclk的上升沿和下降沿就解決了

FPN問題

白天或亮一點的地方是沒有這個問題,就只有在低照度下使用閃光燈拍照會有這樣的情形。
FPN( fixed pattern noise), 無解。

臺階效應(yīng)

gain過大,把digitalize的量化步距,乘大了,就出現(xiàn)臺階效應(yīng)。還與內(nèi)部的量化精度不夠,有關(guān)系。
另外,若不同的顏色通道的gain不同(白平衡計算出的R/G/B_gain不同),會出現(xiàn)color phase error。
只畫了B、G兩個通道,B_gain比G_gain大,會造成灰階的景物,有的地方B大,有的地方G大,就會出現(xiàn)顏色不斷交替。

因電源問題產(chǎn)生的豎向條紋

現(xiàn)在已經(jīng)確定是電源的問題了,我在每個電源都并上了一個大電容,條紋消失了?,F(xiàn)在我是用CPU的I/O采集的,效果很好。

Lens與攝像頭不匹配導(dǎo)致的部分偏紅現(xiàn)象

圖中下方居中的地方偏紅。ov工程師將LENS CORRECTION調(diào)到了極限問題還存在,確認(rèn)是LENS與SENSOR不匹配造成的,模組廠家更換了鏡頭后問題基本解決。

1.首先你的照片awb就不對,本身這張照片就沒有達(dá)到白平衡.

2.照片邊界鋸齒現(xiàn)象很嚴(yán)重.
3. 色偏問題,你首先要了解一下你的sensor的Lenschief ray angle角度是多少,還有l(wèi)ens的CRA是多少.如果lens的CRA小于sensor的.一定會有偏色的現(xiàn)象.要么換lens.如果市場上找不合適 的Lens,就說明sensor 本身品質(zhì)不是很好.
4.理論上lens shading是解決lens的通透率不一樣的問題.但也許各家回加自己的算法,可以一試.
5.如果Lens 和sensor都已經(jīng)固定,可以人為想一些辦法來減少色差. a.可以將顏色調(diào)淡點,這樣就不太明顯
b.做AWB校正,排除不同sensor對RGB感應(yīng)的不同,引起AWB曲線走的不準(zhǔn).
CRA通俗的講是lens的主軸光線和對成像有貢獻(xiàn)的最大的如射光線的夾角,一般Lens廠商會提供CRA曲線,因為Lens從中心到四周的CRA是不一樣的.9 f% N8 u2 L1 u9 K7 ?8 ]2 F# Y
偏紅除了SHADING外可能還是要調(diào)AWB,因為圖片的下方其實就是一片白色,sensor在照白色的地方出現(xiàn)了偏紅,再試試調(diào)整一下AWB,或者在燈箱里看看R,G,B的三條線是否重合!
如果是AWB的問題,那為什么圖像還有白色區(qū)域呢?AWB是不會調(diào)的有的偏色,有的不偏,不知道的就不要亂說。
如果是CRA不比配,那出現(xiàn)的偏色應(yīng)該是對稱的,下面偏紅則上面一定會偏紅。 個人覺得應(yīng)該是漏光造成的,不是barrel就是通光孔那里引入了雜光。

DOVDD28走線過細(xì)過長以及地線不合理

現(xiàn)象:花屏

原因:2.8V電壓因為導(dǎo)線上的電阻吸收了電壓,導(dǎo)致驅(qū)動能力不夠。地線被拉高并產(chǎn)生毛刺現(xiàn)象,影響信號完整性和數(shù)據(jù)采集。

DVDD電壓有問題

圖中的高光部分是辦公室窗戶。其它部分全黑,沒有任何細(xì)節(jié)? 是什么原因?AWB?AGC?還是對比度???
問題解決了,是DVDD電壓不對。
datasheet寫的1.8V,問了FAE結(jié)果是1.2V。

增益小導(dǎo)致的白色條紋問題

當(dāng)對著白色的物體時,剛進(jìn)入預(yù)覽時,會出現(xiàn)下圖中顯示的條紋,當(dāng)移動手機時,則這種條紋消失,以后也不會出現(xiàn),只有再次進(jìn)入預(yù)覽時可能會出現(xiàn),請教各位大蝦到底是什么原因?
這個問題,現(xiàn)在已經(jīng)解決了,加大了初始化代碼中的增益之后,就可以了。

幀率問題導(dǎo)致的圖像錯位

Sensor為0v9655 在拍sxga 130萬圖像有時會出現(xiàn)圖像錯位的問題(如圖),vga的則不會出現(xiàn),幫忙分析。謝謝!
幀率太高了,暴光時間短了.可以調(diào)整VBLANK,HBLANK來解決 再降低FPS到5,試試,你的buffer速度呢?? 謝謝大家!在我這里降低幀速率比較有效。

電源噪聲

OV9653出現(xiàn)如圖所示的橫向紋路。
問題已經(jīng)解決,電源問題,AVDD加鉭電容就好了。估計是電源紋波比較嚴(yán)重導(dǎo)致的。

圖像中有不斷變化的細(xì)密的水平條紋

與熒光燈的頻閃造成的大面積的滾動水平條紋不同,表現(xiàn)出來的是一個像素高的水平條紋狀躁點,位置不固定,數(shù)量比較多,而且隨光線強弱有一定的變化。

因為設(shè)置某些sensor寄存器的時候,會影響到這些水平條紋的顏色,所以基本上排除是在數(shù)據(jù)傳輸過程中板子對數(shù)據(jù)造成的干擾,也排除接觸不良的可能性,應(yīng)該是數(shù)據(jù)在sensor內(nèi)部已經(jīng)存在這些水平條紋。此外相同的初始化序列,相同的sensor,在廠商的demo版上也沒有發(fā)生這種情況,所以也基本排除軟件的問題。    最后,發(fā)現(xiàn)原先為了節(jié)省硬件成本,將sensor的兩個電壓相同的模擬電和數(shù)字電由同一芯片輸出供給,導(dǎo)致兩者之間互相干擾,影響了sensor的正常工作。

解決辦法

將模擬電和數(shù)字電分離單獨供電

圖像上有固定的鋸齒狀垂直條紋

圖像上有明顯的垂直條紋,全屏分布,非常細(xì)密,好像百葉窗一樣。

仔細(xì)看可以發(fā)覺該垂直條紋實際上是由于圖像上相鄰的兩兩像素互相錯位造成的鋸齒狀條紋6 仔細(xì)分析spec可以看到,由于sensor是按字節(jié)送出圖像數(shù)據(jù),在RGB565模式下,兩個字節(jié)表示一個像素。而在我所使用的CPU的Camera控制器中,數(shù)據(jù)是按4個字節(jié)也就是一個字為單位處理的,由于CPU這端是按LSB方式處理數(shù)據(jù)的,所以在一個字內(nèi)部,未經(jīng)調(diào)整的話,兩個像素的順序是顛倒過來的。也就是最終由DMA將數(shù)據(jù)送到內(nèi)存的連續(xù)buffer中時,像素的順序是:像素2,像素1,像素4,像素3。。。

解決辦法

用程序調(diào)整像素順序,為了減少附加計算對CPU的負(fù)擔(dān),可以將這一步操作合并在其它類似顏色轉(zhuǎn)換或PACK模式轉(zhuǎn)Planer模式等操作中。

大尺寸時容易出現(xiàn)圖像錯位

當(dāng)sensor工作在最大分辨率的情況下時,圖像容易出現(xiàn)上下錯位的現(xiàn)象。

跟蹤程序可以看到這時候CPU的Camera控制器的FIFO緩存發(fā)生了溢出現(xiàn)象,也就是說DMA來不及將FIFO中的數(shù)據(jù)傳送到內(nèi)存中,該例中sensor在最大分辨率的情況下,輸出數(shù)據(jù)的時鐘工作在24MHZ,理論上說,DMA應(yīng)該是來得急傳送數(shù)據(jù)的,但是可能因為內(nèi)存帶寬還會被其它設(shè)備如CPU占用,導(dǎo)致來不及寫入內(nèi)存,使得DMA沒有最大負(fù)荷的工作,所以來不及將FIFO中的數(shù)據(jù)讀出,導(dǎo)致部分?jǐn)?shù)據(jù)丟失,圖像錯位。

解決辦法

某些情況下,改變DMA傳輸?shù)膯雨I值可以解決該問題,但是有些情況是無效的    考慮到最高分辨率僅在拍照的時候使用,預(yù)覽的時候并不使用該分辨率,所以,在不影響預(yù)覽楨數(shù)的情況下,可以在拍照的一瞬間改變分辨率的同時,修改sensor的時鐘頻率,降低到一個不會導(dǎo)致FIFO溢出的頻率, 另外,在截獲最高分辨率的圖像的同時,盡量不執(zhí)行其它的內(nèi)存相關(guān)操作。截獲完圖像馬上切換回預(yù)覽用的分辨率。通過這些辦法,減少發(fā)生FIFO溢出的可能性。

讀取到的數(shù)據(jù)顯示出來的時候是花屏

讀取到的數(shù)據(jù)顯示出來的時候是花屏,但是明顯是隨著所拍攝的對象的變化而變化的。

顯示的數(shù)據(jù)是完全的花屏,或者可以看出物體大致輪廓,但顏色完全不對,例如一片綠色。這種情況往往是因為圖像數(shù)據(jù)格式不匹配,例如沒有處理YUV2RGB,YUV的各個分量采樣順序與軟件計算的取值順序不匹配等。

如果花屏的具體表現(xiàn)是圖像不斷變換,沒有規(guī)律,通常有可能是數(shù)據(jù)接收的觸發(fā)邊沿有誤,導(dǎo)致沒有正確的接收數(shù)據(jù)。

另外有一次,花屏的時候,仔細(xì)觀察花屏的圖案,發(fā)現(xiàn)有部分錯位重復(fù)的圖案的跡象。因此分析可能是Sensor的物理layout,其長寬比例與LCD剛好相反,仔細(xì)查看Spec得到確認(rèn)。

圖像干擾問題

原因可能是:

(1)、攝像頭模組有問題,換一個攝像頭試一下;

(2)、數(shù)據(jù)線驅(qū)動能力不足,這個可以在攝像頭寄存器里面改,問下攝像頭模組FAE,看改那些地方;

(3)、兩個攝像頭共用數(shù)據(jù)線時,不工作的攝像頭會把工作的數(shù)據(jù)信號減弱;

(4)、PCB 走線太長,也會有干擾,不過我覺得這個可能性小,調(diào)試好就一款這樣的的,模組廠FAE說的,不過他們模組本身也有問題,兩方面因素都有吧:PCB(線過長)、模組打樣也有問題。

YUV順序不對

yuv順序不對時,出現(xiàn)如下現(xiàn)象。

看下攝像頭規(guī)格書,把相應(yīng)寄存器的值改一下就可以了。如下以紅框里是不同yuv順序,找到改為相應(yīng)的。

雜光,鬼影

其行業(yè)的專業(yè)術(shù)語統(tǒng)稱為Flare,是指在拍攝光源或者強光物體時,邊緣出現(xiàn)光影或出現(xiàn)一個完整物體的影子,而且這種現(xiàn)象只能減輕不能完全消失,原因是由于鏡片的材質(zhì)導(dǎo)致光線不但存在折射還存在反射,整機由于鏡頭面到保護鏡片距離很大會更明顯!

采用頻率不匹配

必須要正確配置接收的采樣頻率,否則不能得出正確的圖象。

上圖就是采樣頻率不匹配的現(xiàn)象。請注意與 YUV, RGB 順序配置錯誤的現(xiàn)象有什么區(qū)
別。下圖是順序倒置:

亮度以及夜景模式

相信現(xiàn)在大家都知道圖象的亮度與暴光時間相關(guān),所以為了讓暗處的圖片能夠清晰地顯示必須增加 sensor 對暗處圖象的暴光時間, 也就是 line time 會設(shè)置得比普通模式的時候要大許多,這樣能使 CMOS sensor 擁有更多的暴光時間,從而提高亮度 。

上圖為沒有采用夜景模式的照片,下圖為使用夜景模式的照片

我們有兩種方法來控制圖像亮度,一種是使用 AE target,一種是加大灰度增益。我們使用的是 AE target 方式,這樣的圖片色彩更逼真。用這種辦法會影響到 frame rate,當(dāng)幀率達(dá)到我們限制的極限的時候,就要用增加模擬增益來做了,這樣會同時放大圖像噪聲。一般不用增加數(shù)字放大增益來調(diào)整圖像亮度。

5. 總結(jié)

本文主要從一些基本的概率出發(fā)介紹了攝像頭工作的原理及一些調(diào)試的經(jīng)驗。這些資料對于后期問題的分析有一些參考價值。其中很多的調(diào)試經(jīng)驗自己也犯過很多的錯誤,所以將這些經(jīng)驗無論是別人遇到的,還是自己遇到的,都進(jìn)行一下記錄。

本文的目的不是針對某一個具體的攝像頭和MCU而言,只是在自己的開發(fā)過程中對一些問題的思考以及對網(wǎng)上資料的收集與整理。所以不涉及到很多程序部分的邏輯。對問題和概念分析的比較多。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉