2012-02-02 26 views
24

像Google Picasa這樣的軟件很好地展示了軟件可以確定在沒有Exif-Data的情況下拍攝照片的方式,因爲它不適用於所有相機。什麼方面是? - 自動圖像旋轉算法

是否有文件化的算法輸出是否需要旋轉圖像? 我想找出沒有使用EXIF數據的旋轉。如果可能的話,我會想用ImageMagick做到這一點。

+1

您是否看到任何Picasa不會產生正確結果的示例?您是否嘗試過加載合成圖像以查看Picasa如何處理它們?另外,你可以發佈一些樣本圖片嗎? – Rethunk 2012-02-06 23:35:37

+1

重複:http://stackoverflow.com/q/1141928 – ergosys 2012-02-07 22:50:59

+1

我用谷歌查詢「圖像方向檢測算法」發現了幾篇論文(和上面的重複)。 – ergosys 2012-02-07 22:58:18

回答

28

這是一個複雜的問題,需要進行相應的研究。 Yann's answer基本上指向通常的方法(+1)和mfrellum's hint朝向主題模式識別同樣也適用(+1) - 對於更深入的分析,您可能需要閱讀以下兩篇論文(主觀選擇從我的過去的研究):

[請注意:下面的大多數PDF鏈接已從Google Scholar推斷 - 谷歌自然很擅長於在其他地方找到匹配的PDF公開摘要的論文,其中實際內容往往不是隱藏在付費牆背後。這樣做的合法性受到課程的熱烈討論,並因此被屏蔽定期政府資助的科研像這樣擺在首位 - 做出自己的判斷]

不幸的是,我不知道任何現成的實現/庫,但我會河畔如果至少沒有可用的位,則爲珍貴。

玩得開心:)

15

它可能讀取存儲在jpg標題中的exif information,當它可用時。這給出了拍照時相機的方向。這是一種比試圖分析照片以查看哪種方式更簡單的方法。

還有eight possible orientations。這些標誌告訴你哪種方式是:

EXIF Orientation Value Row #0 is: Column #0 is: 
1      Top   Left side 
2*      Top   Right side 
3      Bottom  Right side 
4*      Bottom  Left side 
5*      Left side Top 
6      Right side Top 
7*      Right side Bottom 
8      Left side Bottom 

NOTE: Values with "*" are uncommon since they represent "flipped" orientations. 

這將減少圖片識別必須使用的照片數量。

+4

注意:我在**更新問題之前添加了此答案**,以指定EXIF信息並非始終可用。 – ChrisF 2012-02-09 11:08:36

7

我不知道具體實施的,但這裏有一些想法:

  1. 天空是藍色的。沿着邊緣尋找藍色。更多藍色=更有可能達到。
  2. 圖像的上部區域比較低的區域傾向於具有較少的細節(天空,雲)。
  3. 做邊緣檢測並尋找長水平線。如果它們不是水平的,那麼它的圖像可能就在它的旁邊。與#1和#2結合看看你是否180度。

請注意,EXIF數據中有一個旋轉字段來自相機的方位傳感器。總是首先使用這些數據,因爲其餘部分是圖像處理猜測。

5

我不知道這個問題現成的解決方案,但它是一個分類問題,並且有許多可以使用的經典算法。由B.D.提供的 Pattern Recognition and Neural Networks裏普利在這個問題上是一個很好的閱讀。

openCV有一個machine learning模塊,可用於此。

該解決方案可能涉及Yann Ramin的答案中的1-3這樣的啓發式算法,但量化爲0到1之間的數字並放入向量中。您可以使用帶有關於方向的exif數據的imags來爲分類器創建一個訓練集。

+0

有關使用exif數據進行訓練的圖像非常有用。 – 2013-02-26 17:20:37

0

Picasa具有面部識別功能,即使它沒有實際標記已知人物,也可能有幫助。

4

主導光源通常都在漲,無論它是否是白天或黑夜,不論是否還有人在現場。將突出顯示檢測與邊緣檢測相結合,您可以識別場景光源的可能位置並判斷哪個方向。

編輯:偉大的問題 - 我只花了5分鐘在谷歌學術搜索,甚至沒有找到正確的問題域。

編輯:明白了。這就是所謂的'圖像定位檢測' - 不要太模糊標題。

編輯:快速審查表明,主要有兩種途徑:

  1. 組合分類 - 培養許多不同的分類和合並的結果,一個經典的「你扔在它得到的一切」鳥槍法。在這裏,論文的大部分創新貢獻似乎在於如何爲不同分類器的組合設計新方法。
  2. 特定功能 - 挑選特定(或一小組特定)特徵,並使用它們進行分類,檢測方向。一些例子是:面部識別+邊緣檢測,局部二元模式重疊(相對:僅在相同主題的兩個圖像之間起作用)。

無論如何,它肯定是一個有趣的領域,似乎有比專利更多的專利,這使得它更有趣。但是,我沒有發現任何說明Picasa方法的內容。但是我沒有找到這樣的:

S. Baluja(從谷歌)已經公佈了以下文件:

由此可以得出結論,其中的方法表明Google使用的是什麼。