我們可以使用hadoop在多個圖像上運行SIFT嗎?Hadoop可以減少SIFT的運行時間嗎?
SIFT在每個圖像上需要1秒來提取關鍵點及其描述符。考慮到每次運行都獨立於其他運行並且不能減少1次運行的運行時間,我們是否可以減少運行時間?
多線程將運行時間減少了一定數量的核心處理器。我們可以在每個處理器上運行每個映像。
可以使用hadoop以任何方式並行運行多個圖像?
如果是的話,假設我們有3個集羣,它可以通過什麼因素減少運行時間?
我們可以使用hadoop在多個圖像上運行SIFT嗎?Hadoop可以減少SIFT的運行時間嗎?
SIFT在每個圖像上需要1秒來提取關鍵點及其描述符。考慮到每次運行都獨立於其他運行並且不能減少1次運行的運行時間,我們是否可以減少運行時間?
多線程將運行時間減少了一定數量的核心處理器。我們可以在每個處理器上運行每個映像。
可以使用hadoop以任何方式並行運行多個圖像?
如果是的話,假設我們有3個集羣,它可以通過什麼因素減少運行時間?
是的,Hadoop可以用來從多個圖像中提取SIFT描述符。這是一個example of SIFT descriptor extraction for Hadoop using OpenIMAJ。
Hadoop將在所有羣集節點上並行處理圖像。但潛在的加速取決於圖像數據集的大小。如果大小很小,則由於Hadoop開銷,運行時可能會增加。
您可以體驗兩個問題。
將圖像複製到HDFS可能會很慢。在一臺計算機上處理所有圖像可能會更快,然後將它們複製到HDFS並在3節點羣集上處理。它取決於數據集的大小和羣集中節點的數量。
與HDFS塊大小(默認爲64M)相比,通常圖像大小較小。 Hadoop對這些文件不起作用(see Cloudera blog)。您可以使用Hadoop序列文件將許多小圖像文件合併爲一個大文件。 OpenIMAJ包含SequenceFileTool,可用於此目的。