常見問題#

一般問題#

CMUcam1 有何獨特之處?#

傳統上,需要快速的電腦才能擷取並處理相機影像。同時也必須撰寫軟體來執行這些處理。因此,要在簡單的系統中將視覺當作感測器來使用是很困難的。

CMUcam1 視覺系統使用一顆快速、低成本的微控制器來處理相機資料的所有高速運算,並包含執行簡單視覺任務的軟體。由於使用者可以選擇僅從視覺系統輸出低頻寬的高階資訊(例如紅色物體位於 X-Y 位置),因此像 PIC 微控制器這樣簡單的處理器便有可能讀取這些資料,並在諸如追逐彩色球之類的任務中指揮一台小型機器人。CMUcam1 視覺系統讓使用者能夠忽略相機介接的複雜性,並像使用機器人系統中常用的任何其他感測器(即聲納)一樣使用視覺。

CMUcam1 的畫格率為何?#

最快的畫格率為每秒 16.7 個畫格。這表示 CMUcam1 每秒約可告訴您物體位置 17 次。使用序列軟體協定,您可以在需要時將其放慢。

CMUcam1 支援哪些鮑率?#

自最新版本的韌體(v1.12)起,CMUcam1 可以 9600、19200、38400 或 115200 的鮑率進行通訊。鮑率是透過電路板上的跳線設定來選擇。

我要如何升級我的 CMUcam1 韌體?#

如果您目前使用的是韌體 v1.11,除非您需要支援較低的鮑率,否則沒有理由升級。1.11 版支援 38400 與 115200 鮑率。1.12 版支援那些鮑率,並新增了對 9600 與 19200 鮑率的支援。若要升級您的韌體,您將需要重新編寫處理器晶片中的快閃記憶體。如果您有燒錄器,可以從我們的 下載 頁面下載目前的版本,並自行重新燒錄處理器。

CMUcam1 可以在戶外運作嗎?#

CMUcam1 可在戶外運作,但不能在陽光直射下運作。我們所使用的 CMOS 相機沒有高品質的 IR 濾鏡,因此在陽光直射下,日光會使紅色像素飽和,影像基本上會變成單色。可以加裝一個外部濾鏡來改善戶外運作。我們有一份簡短的說明,向您展示照明條件如何影響 CMUcam1,您可以在 此處 下載。

我可以為 CMUcam1 撰寫自訂程式碼嗎?#

當然可以。要這麼做,請向我們索取韌體原始碼,為 Ubicom 晶片訂購一套 C 程式設計環境,然後放手去做。當我們寄給您韌體原始碼時,也會附上程式碼結構的摘要以及我們所使用程式設計環境的相關資訊。

CMUcam1 消耗多少電力?#

整個系統約消耗 200 毫安培。

CMUcam1 的視野為何?#

這取決於您裝在 CMOS 相機上的鏡頭。如果您依標準販售方式訂購 CMOS 相機,您最終會得到約 25 度的視野,這相對狹窄。不過,您可以在訂購 CMOS 相機時客製化訂購更廣角的鏡頭。

CMUcam1 使用哪一款處理器?#

我們的影像處理程式碼位於一顆來自 Ubicom、以 75 MHz 運行的微控制器晶片上,即 SX28AC。此晶片透過並列介面從 CMOS 相機讀取所有像素,並即時完成所有處理。接著它透過序列埠介面將結果傳達給您的微控制器或電腦。

CMUcam1 使用哪一款 CMOS 相機?#

我們使用一款 CMOS 相機,它採用了 OmniVisionOV6620 單晶片 CMOS 相機。我們使用型號為 C3088 的 CMOS 相機板,其上安裝了感測器、一個連接器以及一個鏡頭。

CMUcam1 可以搭配其他 CMOS 相機使用嗎?#

不行。目前硬體與軟體系統是專為搭配 OmniVision OV6620 CMOS 相機而設計的。若要搭配另一款相機使用,系統將需要完全重新設計。

有沒有什麼地方可以讓我找到我其他問題的答案?#

有。我們在本頁面上有一些關於更多技術問題的資訊。

我在哪裡可以找到更多關於一般電腦視覺的資訊?#

CMUcam1 在一個小巧、廉價的封裝中執行它被設計來執行的簡單電腦視覺任務。然而,試圖在任意條件下辨識任意物體這個一般性的電腦視覺問題,仍然是一個非常活躍的研究主題,而且離被解決還差得非常遠。

如果您想進一步了解電腦視覺,您可能會想嘗試這些連結:

技術問題#

示範模式在開機時所執行的確切步驟順序為何?#

以下是示範模式在開機時所執行的確切順序:

  1. 重設相機。

  2. 等待 5 秒,讓相機參數自動調整穩定下來。

  3. 傳送相機暫存器字串:CR 18 32 19 32,此字串會選擇 YCrCb 模式並關閉自動增益。

  4. 執行 TW 指令。

之後,相機會開始將伺服機驅動至由 TW 指令所偵測色彩的質心。

「TW」命令所執行的確切步驟順序為何?#

以下是 TW 指令所執行的確切順序:

  1. 將視窗縮小為目前視窗的 1/4 大小(每個維度皆縮小),成為以目前視窗中心為中心的新視窗。

  2. 呼叫 get mean。

  3. 將視窗還原至完整影像大小。

  4. 將每個色彩通道的最大值與最小值設定為該通道的平均值 +/- 30。

之後,相機會開始串流 Type C、M 或 N 封包。

在啟用自動模式時,追蹤 LED 在什麼條件下會亮起?#

當回傳的 pixel_count >= 2時,LED 會亮起。回傳值 pixel_count = (actual_pixel_count + 4) / 8

如果 CMOS 相機的解析度是 352 x 288 像素,為什麼 CMUcam1 的解析度只有 80 x 143?#

這裡的問題在於彩色數位相機的運作方式。在所有數位彩色相機中(即使是非常昂貴的相機——除了某些以某種 非常先進的技術 為基礎的相機以外),每個像素位置您只會得到一個色彩通道的測量值,這稱為馬賽克濾波。以下是一張有助於解釋此點的精美圖表:

Mosaic

(圖表由 Foveon, Inc. 提供)

所以您可以看到,像素可以被想成是以四個為一組的方式排列,每組中有兩個 G 測量值以及各一個 R 和 B 測量值。如果您捨棄其中一個 G 測量值(我們就是這麼做),您會發現 352x288 相機的實際解析度更接近 176x144。我們以半解析度模式運行相機,此模式會在水平方向上跳過每隔一個的 2x2 區塊,這樣會得到 88x144。由於處理器的記憶體限制,我們在水平方向上捨棄 8 欄、垂直方向上捨棄 1 列(其中含有一個測試圖樣),這樣最終的解析度為 80x143。

僅供參考,標準數位相機使用複雜的內插技術,嘗試填補每個像素上缺失的色彩值,給您一些比較接近感測器完整解析度的結果。

我要如何精確對焦 CMUcam1?#

當然,進行對焦最好的方式是使用 GUI 擷取畫格傾印。您可能手邊沒有電腦,或者您可能正在使用 BotBall CMUcam1,它在硬接線的 9600 鮑率下沒有足夠的解析度來讓此方法運作良好。

在這種情況下,有兩種替代方案。首先,您可以嘗試計算螺紋數。在對焦最佳時,鏡頭並未完全鎖入。相反地,會露出約 1 毫米的螺紋間隙。以螺紋數來說,那大約是在鏡頭與鏡頭接環之間的間隙中露出約 2 圈螺紋。

第二種替代方法所依據的想法是:當一張影像清晰時,暗處最暗、亮處最亮。換句話說,就是對比最大的時候。當影像變得失焦時,這些極值便會淡化為較均勻的強度分佈。因此,如果您啟動串流模式,然後呼叫 GM(Get Mean),您就可以即時對焦。請看紅色偏差值。當您在所需距離對一個高對比物體(例如一張寫滿字的紙)清晰對焦時,在對焦最清晰之際,紅色偏差值會有一個明顯的峰值。請注意,這種對焦方法要求您在轉動鏡頭時將相機與目標都固定得相當穩固。