机器视觉:图像与视频朝向检测
在圖片社交、短視頻等行業(yè),用戶在導(dǎo)入圖片、視頻的時候,偶爾會導(dǎo)入一些橫屏拍攝的視頻,使得圖片、視頻在呈現(xiàn)給用戶觀看的時候,是旋轉(zhuǎn)了90度或者270度的圖片、視頻(180度一般極其少見),從而給用戶造成不好的體驗,特別是以瀑布流方式展示的app。這類視頻,由于導(dǎo)入的時候,拿不到原始的拍攝標(biāo)識信息,從而無法直接取到圖像、視頻是否旋轉(zhuǎn)的信息,而必須依賴視覺識別的方式,去判斷圖像、視頻是否旋轉(zhuǎn)。
對圖像朝向判斷問題,學(xué)術(shù)上研究得比較少,已有的論文主要還是以深度學(xué)習(xí)分類的方式去檢測,比如:
- Automatic Photo Orientation Detection with Convolutional Neural Networks
- Why My Photos Look Sideways or Upside Down? Detecting Canonical Orientation of Images Using Convolutional Neural Networks
對圖像Orientation Detection的難點主要在于:
- 當(dāng)圖片、視頻中的物體有傾斜,但是圖片、視頻本身是正常放置的,容易造成誤檢。比如拍攝是一張大臉,但大臉有傾斜,或者拍攝的是一個床上斜躺著的寶寶;
- 當(dāng)拍攝角度是向下或者向上的時,這類視頻容易造成誤分;比如拍攝天空、拍攝天花板等;
所以圖像Orientation Detection,在保證召回較好的前提下,準(zhǔn)確率要做得非常好(準(zhǔn)確率99%+以上,便于機器自動處理)還是很不容易的,特別是針對單張圖片檢測更是難上加難。不過,如果是短視頻行業(yè),由于短視頻行業(yè)自身的一些特性,使得這個問題還是可以比較好的解決的。在短視頻行業(yè),做圖像Orientation Detection可以利用的優(yōu)勢主要有三點:
- 數(shù)據(jù)優(yōu)勢。訓(xùn)練數(shù)據(jù)不用標(biāo)注,直接使用app自帶的相機拍攝的視頻,這些視頻可以認(rèn)為是0度放置的,通過此種方式,可以獲取到無窮無盡的標(biāo)簽噪聲非常少的訓(xùn)練數(shù)據(jù);
- 多幀檢測優(yōu)勢。利用多幀檢測的方式,可以極大地提升檢測的準(zhǔn)確率;
- Orientation Detection類型比較固定。通常主要是0度、90度和270度,180度幾乎不會出現(xiàn),也就是用戶導(dǎo)入視頻進(jìn)來的時候,如果有旋轉(zhuǎn),主要是橫屏,幾乎不會存在把視頻上下反轉(zhuǎn)一下的情況;
有了0度的訓(xùn)練數(shù)據(jù),其他角度的數(shù)據(jù),比如90度、270度(180度可以丟棄不檢測,因為出現(xiàn)這種導(dǎo)入情況的極少)可以通過0度變換一下便可得到。有了0度、90度、270度的訓(xùn)練數(shù)據(jù),訓(xùn)練可以采用CNN分類模型直接分類即可。
檢測準(zhǔn)確率提升
分類模型訓(xùn)練好了后,如果只檢測一幀,準(zhǔn)確率往往是不夠的,比如上面列舉的兩種情況,就極易以非常高的概率導(dǎo)致誤分,為了提升檢測的準(zhǔn)確率,并保持還不錯的召回率,可以通過聯(lián)合使用下面兩種方式使得最終的檢測準(zhǔn)確率達(dá)到99%+,這兩種方式分別為:
- 檢測多幀。比如一個視頻檢測3幀;
- 設(shè)置的檢測概率相對高一點。比如檢測3幀,兩幀朝向一致,且兩幀最小概率大于0.9的,則判斷為旋轉(zhuǎn),旋轉(zhuǎn)方向為兩幀朝向的方向;
通過這樣兩種方式,可以在保持召回還不錯的情況下,獲得較高的準(zhǔn)確率,最終達(dá)到機器自動處理的目的。
總結(jié)
視頻朝向檢測有自身多幀的優(yōu)勢,如果是圖片社交app,單張圖片要達(dá)到非常高的準(zhǔn)確率是極其困難的(在保持一定召回情況下)。
from:?http://yongyuan.name/blog/image-orientation-detection.html?
總結(jié)
以上是生活随笔為你收集整理的机器视觉:图像与视频朝向检测的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中的goto实现
- 下一篇: 视觉检索:视频多帧排序