常見問題#
CMUcam1 與 CMUcam2 之間有哪些差異?#
簡介#
CMUcam2 以強化的形式囊括了 CMUcam1 的所有功能,並且遠不止如此。以下我們簡要說明新功能及其差異。您可能也會想看看關於如何決定要購買 CMUcam1 還是 CMUcam2 這個問題的解答。
硬體概觀#
有兩項重要的主要硬體差異:CMUcam2 使用與 CMUcam1 不同的處理器,而且 CMUcam2 納入了畫格緩衝晶片,CMUcam1 則沒有。
CMUcam2 使用 SX52 處理器,而 CMUcam1 使用 SX28 處理器,兩者都出自 Ubicom 的 SX 處理器系列。兩者的處理器都以 75 MHz 運行,因此在處理器速度或運算能力上並無差異。SX52 處理器的優勢在於它擁有更多的 RAM(262 對 136 位元組)、更多的 ROM(4096 對 2048 個字)以及更多的 I/O 針腳。更多的 RAM 與 ROM 意味著我們可以撰寫更複雜的程式碼,這讓我們能夠在 CMUcam2 中納入更多功能。更多數量的 I/O 針腳意味著我們有更多剩餘的針腳可用於其他功能——例如更多的伺服機、更多的設定跳線等。
這兩套系統之間的重大差異在於,CMUcam2 包含來自 AverLogic 的 AL422B 畫格緩衝晶片,而 CMUcam1 則沒有。這讓 CMUcam2 硬體能夠快速擷取單一完整畫格並將其儲存在畫格緩衝記憶體中。這帶來許多優點:
更複雜的處理。 在 CMUcam1 中,處理器必須在相機模組輸出像素資料串流的同時即時處理它。這種設計有助於降低系統硬體的複雜度與成本。然而,它限制了處理的複雜度,因為處理必須在像素之間或影像列之間即時執行。由於 CMUcam2 的處理器以自己的步調從畫格緩衝區存取像素資料,因此它可以對每個像素執行更複雜的處理。
更快的處理速度。 不必與相機模組像素串流保持同步的另一面是,處理器在需要像素資料時不必等待相機模組。消除這段等待時間意味著即使處理器的效能並未更強,CMUcam2 的處理器實際上能比 CMUcam1 更快地處理一個畫格。
每個畫格可執行多重操作。 由於儲存在畫格緩衝區中的影像不會改變,CMUcam2 可以對單一畫格執行多重操作。舉例來說,可以在單一畫格上同時偵測動作、計算區域統計以及追蹤多種色彩。
更佳的畫格傾印。 由於 CMUcam1 必須將傳輸的畫格傾印資料與相機模組資料串流同步,因此每個相機畫格只能傳送一欄資料。這表示影像的不同部分是在不同時間擷取的,因此快速移動的物體在 CMUcam1 的畫格傾印中會出現拖影。由於 CMUcam2 是從畫格緩衝區中的固定資料傳輸影像,因此這不再是個問題。
更佳的低鮑率處理。 擁有畫格緩衝區也意味著 CMUcam2 傳輸資料的時序可以完全與從相機模組讀取資料的時序脫鉤。這表示當通訊鮑率改變時,來自畫格傾印與點陣圖列模式的 CMUcam2 資料不會改變,無論鮑率為何,CMUcam2 都會將相同的畫格或點陣圖資料傳送給主機處理器。然而,每秒處理的畫格數在較慢的鮑率下仍可能改變,因為它仍需要先完成傳送一個畫格的所有資料,才能處理後續的畫格。
更佳的相機模組運作。 為了讓 CMUcam1 中的處理器能與相機模組的資料串流保持同步,相機模組的畫格速率必須降低至 17 fps。CMUcam2 所使用的畫格緩衝區讓我們能夠以完整畫格速度操作相機模組。其優點之一是相機的自動曝光與白平衡調整可以更快速地運作,因為它每個畫格只能進行一次調整,而現在每秒有更多畫格。第二個優點是黑白類比視訊輸出(僅在模組以完整畫格速率運作時才有作用)可以在 CMUcam2 處理影像資料的同時使用,而這在 CMUcam1 上是無法做到的。
功能概觀#
CMUcam2 實作了 CMUcam1 的所有功能,並且還增加了大量新功能。以下是摘要。
色彩追蹤。 CMUcam2 實作了色彩追蹤,就如同 CMUcam1 一樣。與 CMUcam1 相同,它實作了一個選用的點陣圖列模式,用以傳輸被追蹤像素的點陣圖。此外還有一些強化功能。有一個新的選用列模式,可提供每一列被追蹤像素的統計資料,包括被追蹤像素的平均值、最小與最大位置。這對於循線非常有用。還有一個新的選用模式,可將追蹤範圍的解讀反轉。在此模式下,追蹤範圍以外的像素會被視為「良好」。這對於在均勻背景下追蹤物體很有用——想想藍幕特效。當啟用像素差分(如下所述)時,它也可用於偵測邊緣。雜訊濾波選項也經過強化,允許針對雜訊情況調整濾波量。
影像統計。 CMUcam2 實作了影像區域的平均值與變異統計計算,就如同 CMUcam1 一樣。與 CMUcam1 相同,它實作了一個選用的列模式,用以傳輸影像每一列的平均值。此外還有一個新的強化列模式,可選擇性地逐列包含變異資訊。
動作偵測。 CMUcam2 中全新的功能是動作偵測(畫格差分)指令。這些指令可用於指示 CMUcam2 擷取目前影像的低解析度版本,並持續將其與新進來的影像進行比較。CMUcam2 的封包會回報影像是否有任何部分變化超過指定的量,這可能表示有動作發生。這些封包可以描述已變化影像區塊的形心與範圍,或提供哪些影像區塊已變化的點陣圖。此模式也可與像素差分(如下所述)結合,使動作偵測對照度變化更為穩健。
直方圖計算。 CMUcam2 中全新的功能是直方圖計算指令。這些指令可用於擷取單一色彩通道的一維直方圖,解析度最高可達 28 個區間。直方圖提供了摘要影像外觀的有用資訊。透過在主機處理器上進行額外的程式設計,這些資訊可用於協助偵測障礙物、特定物體或位置。
影像視窗化。 CMUcam2 實作了將處理限制在完整影像的一小塊區域(子視窗)內的能力,就如同 CMUcam1 一樣。在 CMUcam2 中此功能甚至更有用,因為它可用於仔細檢查儲存在畫格緩衝區中的單一影像的子視窗。此外,縮小垂直視窗大小可用於大幅增加每秒處理的畫格數,因為它大幅減少了 CMUcam2 需要處理的像素數。
輸出封包自訂。 CMUcam2 實作了比 CMUcam1 更具彈性的封包自訂功能。有一些指令可讓使用者自訂每個指令所產生的每個封包,使其只回傳特定應用程式所需的值。在許多情況下,這可大幅減少傳送至主機處理器並由其處理的資料量。
像素差分。 CMUcam2 中全新的功能是一個選用的像素差分模式。在像素差分模式下,像素會在被傳遞給 CMUcam2 其餘程式碼之前先經過預先處理。這個預先處理步驟會將新的像素值傳送給其餘程式碼,這些值是目前像素值與前一個像素值之間的差值。基本上,這樣做會濾除影像中除了垂直邊緣以外的一切。這是一項非常強大的操作,透過在主機處理器上進行額外的程式設計,可用於協助障礙物偵測與循線。
降取樣。 CMUcam2 中全新的功能是一個選用的降取樣模式。在降取樣模式下,CMUcam2 軟體會在處理相機影像之前先降低其解析度。這樣做的優點是需要處理與傳輸的像素少了許多。由於這是以軟體完成的,降取樣只會使處理速度略微提升。最大的好處在於減少傳輸的資料量。以傾印的影像畫格為例,降取樣可以輕易地將資料大小縮減,因而將傳輸時間縮短為 2 倍、4 倍甚至更多。同樣地,當使用點陣圖列模式時,點陣圖影像的大小可以大幅縮減,減少主機處理器必須接收與處理的資料量。
伺服控制。 原始的 CMUcam1 僅支援單一伺服機,且該伺服機只能在特定鮑率下以及 CMUcam1 處於串流模式時才能正常運作。CMUcam2 最多支援五個伺服機。CMUcam2 中的伺服控制器程式碼是以背景程序的方式實作,因此伺服輸出始終保持穩定,並可像任何其他伺服控制器一樣使用。此外,CMUcam2 可設定為自動控制平移與俯仰伺服機。在此模式下,每次命令 CMUcam2 計算色彩追蹤資料時,它都會更新伺服位置。
省電。 CMUcam2 中全新的功能是省電模式。在某些應用中,CMUcam2 不需要持續處理影像資料。在這些情況下,可以命令 CMUcam2 進入各種關機(或睡眠)模式。當 CMUcam2 處於其中一種模式時,不會執行任何追蹤指令或伺服控制。傳送一個簡單的序列指令即可在數毫秒內喚醒相機。
在 CMUcam2 上使用 OV6620 模組與 OV7620 模組之間有什麼差異?#
簡介#
就能力而言,OV7620 感測器是比 OV6620 感測器(356x292 個原始感測器位置)解析度更高的感測器(664x492 個原始感測器位置)。但這個事實與考量這些感測器中哪一個最符合您 CMUcam2 應用時所產生的問題關係不大。以下是一系列的考量事項。
解析度#
雖然 OV7620 感測器確實是比 OV6620 解析度更高的感測器,但由於 CMUcam2 的畫格緩衝區記憶體大小固定,CMUcam2 對 OV7620 感測器僅支援 160x239 的單一解析度。CMUcam2 對 OV6620 感測器支援 88x143 的低解析度模式以及 176x255 的高解析度模式。因此,以高解析度模式使用 OV6620,實際上可以達到比 OV7620 感測器可用的單一解析度模式更高的解析度運作。
畫格速率#
另一個與解析度相關的問題是持續處理影像串流時的最大畫格速率。解析度越低,需要處理的像素就越少,可達到的畫格速率也就越高。雖然可透過改變降取樣率與虛擬視窗大小來提高畫格速率,但感測器實際輸出的像素數影響更大。因此,當 OV6620 以其低解析度模式運作時,CMUcam2 所能達到的畫格速率遠高於 OV7620 唯一可用的單一解析度模式。
類比視訊輸出#
這兩個感測器之間的另一個差異在於兩者類比視訊輸出的格式。OV6620 感測器以類比 PAL 格式輸出,而 OV7620 感測器以類比 NTSC 格式輸出。在這兩種情況下,輸出皆為黑白。
重要的是要注意,在 CMUcam2 的大多數用途中,並不會使用類比輸出。在典型的應用中,處理影像的結果或原始像素會透過序列埠以數位方式傳輸至主機電腦或微控制器,因此這不成問題。然而,如果即時黑白視訊很重要,那麼您可能會想將類比視訊輸出的格式納入考量。
摘要#
我們的建議是,對於幾乎所有的應用而言,OV6620 模組都是最佳選擇,尤其考量到它較低的成本以及此模組可達到的較快處理時間。在少數需要 NTSC 單色類比視訊輸出的應用中,您可能會想考慮 OV7620。
目前的 CMUcam2 韌體版本是否有任何已知問題?#
有。在 1.00 版中,「RM」(Raw Mode)命令無法正確運作。1.01 版修正了那個問題。
CMUcam2 中的韌體是可升級的,但需要一個 SX-Key(或相容的)燒錄器才能進行。ROM 映像的「hex」檔案可在 下載 頁面取得。