計算機視覺入門live筆記


知乎live:計算機視覺從入門到放肆--羅韻

知乎 計算機視覺從入門到放肆    羅韻

 

計算機視覺跟深度學習的結合是必然的事情

 

計算機視覺,圖像處理 基礎:

計算機視覺,機器視覺,圖像處理的關系是什么?

 

人工智能領域下的一個分支:計算機視覺

 針對場景、方法、工具都不一樣

 

 

入門提前知道的東西

圖像的基礎知識:

圖像深度:(存儲每一個像素用到的bits),占用的bit數越多,所能表現的顏色越多,越豐富

例如 400*400 8位(深度)圖,數據量有多少呢?

計算方法: 400*400*8/8 == 160k

根據深度的取值范圍:每個像素的取值范圍,決定了顏色的豐富度  2^8,0-255

 

圖像的數據量=圖像的分辨率 *圖像深度/8
圖像分辨率是指 一幅圖像橫向和縱向的像素點數相乘

 

圖像的壓縮格式:jpgpngbmptif   本質上是做壓縮編碼

奇怪的例子:兩張圖的大小,長寬,位數都一樣,但壓縮后的大小不一樣

一個很復雜的圖,和一張很簡單的圖,他們都是一張jpg,但他們的大小是不一樣的,是因為圖片使用的壓縮格式和編碼不一樣

 

圖片的通道數:灰度圖(單通道),RGBA(四通道):包括了RBGA(透明度)

兩通道的圖(一個通道放實數,另一個通道放虛數):主要為了編程的方便

16位圖:本來是三通道圖,為了減少數據量,壓縮到16位(剛好兩個通道),

 常見:RGB555R5位,G5位,B5位),RGB565    古老通道形式

監控攝像頭,模擬相機:yuvyuyv這些數據格式,關乎於圖片的通道數和存儲方式

 

 

 

視頻的基礎知識:

IPB幀,幀率,碼率,分辨率

視頻分析的第一步,視頻的結構,特點,比如(幀率和碼率特別低,是不能套模版的)

比如做目標跟蹤,人家是每秒30幀情況下跟蹤效果很好,但是如果你每秒只有2幀,那你

跟蹤效果,肯定會有影響(有可能人在上一幀有,下一幀就沒有了,跟蹤個P啊。。)

 

維度:

IPB:原始的視頻可以理解為是一些圖片的序列

而視頻里面每一張有序的圖片,我們叫做一幀

視頻:有序的圖片序列

(圖片都有壓縮,那視頻肯定也有壓縮啊)

IPB指的是,在壓縮完的視頻里面,只會存在的三種幀

I幀:關鍵幀,(會把一張圖片完整的保留下來),很重要,I幀不能出錯,出錯全GG

P幀:指的是當前這一幀和上一張關鍵幀的區別,解碼的時候很簡單,只需要用之前

緩存的畫面疊加上這一幀的差別,就能生成最終的畫面,所以我們就不需要把畫面 完全保留下來,而是保留下 P幀(當前幀和上一個I幀的差別)

B幀:雙向差別幀(跟上一個I幀的差別,下一個I幀的差別)

解碼B幀,cpu會比較累

所以一個視頻被壓縮后,只有這三種幀。

 

視頻在當前更多的使用方式,已經不是用硬盤去讀取,而是用網絡的形式去讀取

例如:網絡攝像頭,視頻的網絡地址(對於I幀的要求更高)

如果傳輸卻一個I幀,視頻會缺一段。。。

 

碼率:碼率越大,視頻體積越大,碼率越小,視頻體積越小

碼率:視頻傳輸的時候,單位時間傳送的單位數,kb/s,

采樣率:單位時間內取樣越多,精確度越大

視頻碼率很低--->單位時間內采樣率很低,

一個視頻,碼率不夠的情況,我們得到的視頻可能只有原數據的一半,就會很模糊

如果你了解到你這個視頻本身碼率很低的情況下,你要用的方法是低碼率的方法,

如果碼率很高,可以用常用的數據庫和數據集去學習訓練

幀率:每秒有多少幀。

分辨率:圖像的大小和圖像的質量  正比關系

 

 

 

網絡攝像機:網絡視頻地址的形式去訪問,清晰度比模擬攝像機高處不少,

比模擬攝像機的市場占有率高的多

工業攝像機:高精密儀器檢測。。

 

焦距:決定了取景范圍

顯卡GPU計算,谷歌TPU(高性能處理器)

GPUCPU的差別:

性能(低延時性)和吞吐量

CPU:低延時性,高性能,低吞吐量,local cache比較大,同時讀入大量的數據,集中分析

GPU:吞吐量很高,延時性比較高  ,cache小,並行線程非常多,處理小量數據

一張圖片特別合適用GPU分析,把每一個像素,當做一個線程處理,發揮GPU性能

 

 

計算機視覺設計到的面非常多,除了它是人工智能的一個分支外

包括 機器學習,數學,認知神經心理學,機器人控制,信號處理。。。

 

計算機視覺:偏軟件處理,跟應用場景相關。

機器視覺:硬件上的結合,機器人,工業級的攝像機,工業級的檢測,跟計算機本身交集多

圖像處理:更側重圖像像素級別的處理

 

 

cs231n 李飛飛 計算機視覺

 

編程語言: pythonnumbyscipiy,實現論文中的算法),c/c++(生產環境),熟練c/c++

Matlab(實現算法),java(實現算法)

數學基礎:概率學和統計學(對樣本分布的理解)---了解基本知識

幾何代數,微積分,機器學習(MachineLearning

 

 

第一本:適合入門級別(本科結束--研究生階段,基礎知識多,matlabcodesslis(音譯))

第四本:有一定計算機視覺基礎(入門后),opencv軟件庫,非常接地氣,一個情景一個 理論對應一個實現方法,快速進入開發,具備良好開發能力

第二本:對cv有一個深入的理解,計算機視覺領域的寶典,包含各個領域,權威書,工具

第三本:3D圖形學,arvrphotographcv里面的幾何知識。

 

 

兩門足夠了,認真看完,就是中等的cv研究人員,講的都很深入

Cs223b,講的更理論,純cv

Cs231n,非常經典的課程,比223b進步的地方主要是結合深度學習的

如果主攻3D重構,圖像,有cs223a(機器人導論???,live說錯了嗎),專門講重構,arvr

 

非常有用的網站

1994開始做的索引,涵蓋了cv的所有topicsubtopic,著作,論文,教材,各類主題的關鍵詞,會議,期刊,書籍,剛才書的第二本就有提到

 

 

深度學習的知識,唯一要看的書!

還有一些論文。。。

深度學習的入門書籍!(里面包含數學知識)

對於那行數學知識,不需要了解非常深入,但要了解到這本書前五個章節

 

 

 

學習一些開源的軟件,框架,opencv必不可少(快速實現經典算法和函數)

重要性排序:Opencvtensorflow(更像一門編程語言),caffe(深度學習子方向,卷積神經網絡)

Torch  mxnet看情況使用。。。

Ffmpeg視頻轉換處理,批量處理,格式的處理,很方便。

相關的論文:

每個研究方向。。

熟悉所在方向的發展歷程,有那些里程碑式的文獻(必須精度),研究人員寫的博文

,可以從論文前言,摘要,領域的研究現狀,研究過往,找到對應的文獻。。

 

例子:利用深度學習做目標檢測,這個領域在這兩年里程碑式的論文,包括RNNFAST RNN

並且要精度。。。

 

每天去看一下這個網站,更新最新的研究論文。

最好寫論文筆記,他解決了什么問題,用的什么方法,有沒有創新點,達到了什么效果,

存在着那些缺點。

 

自己做的研究領域,當前頂會和頂刊,沒有,可能是你after了,或者人做的少。

如果有的,你要去跟進當前最新的進展(過一遍),知道當前的潮流

----------------------------------------------------------------------------

一些問題的答案:

未來cv就業,工業應用級別C++是必須的。

 

cv需求還挺大

 

粗暴入門做項目。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM