在 VEXcode V5 區塊中使用 AI 視覺感測器進行編碼

確保您的 AI 視覺感測器配置了 顏色簽名顏色代碼 ,以便它們可以與您的模組一起使用。 要了解有關如何配置它們的更多信息,您可以閱讀以下文章:

AI視覺感測器還可以偵測AI分類和AprilTags。 若要了解如何啟用這些檢測模式,請前往此處:

要了解有關這些單獨區塊以及如何在 VEXcode 中使用它們的更多詳細信息,請訪問 API 網站。


拍攝快照

包含命令「拍攝快照」的區塊,具有兩個下拉選項:一個標記為 AIVision1,另一個標記為 COL1。 該區塊旨在從 AI 視覺感測器拍攝快照,並從視覺編碼環境中的指定變數引用特定物件或顏色。 塊的形狀兩端有輕微的曲線,這是基於塊的編碼介面的典型特徵。

拍攝快照 塊拍攝 AI 視覺感測器目前看到的內容的圖片,並從該快照中提取數據,然後可以在專案中使用。 拍攝快照時,您需要指定AI視覺感測器應收集哪種類型的物體資料:

  • 顏色簽名
  • 顏色代碼
  • 人工智慧分類
  • 四月標籤

拍攝快照將建立您指定的所有偵測到的物件的陣列。 例如,如果您想偵測「紅色」Color Signature,並且 AI 視覺感測器偵測到 3 個不同的紅色物體,則所有三個物體的資料都將放入陣列中。

有關如何在不同物件之間指定的更多信息,請轉至本文中的「設定物件項目」部分。

淺藍色編碼區塊,帶有拍攝對像或顏色快照的指令。 有兩個下拉選項:一個標記為 AIVision2,另一個標記為藍色。 該區塊設計用於基於區塊的編碼環境,其中它從 AI 視覺感測器捕獲快照並追蹤定義為藍色的物件或顏色。 此區塊具有輕微的曲線,這是使用模組化區塊的編碼介面的典型特徵。

在此範例中,它將僅檢測與其配置的“藍色” 顏色簽名 匹配的對象,而不會檢測其他對象。

從快照中取得的數據

請記住,AI 視覺感測器將使用其最後拍攝的快照來處理後續的任何區塊。 為確保您始終從 AI 視覺感測器獲取最新信息,請在每次想要從中提取數據時重新拍攝快照。 

解決

了解人工智慧視覺感測器的解析度對於準確解釋數據至關重要。 此感測器的解析度為 320x240 像素,精確中心位於座標 (160, 120)。

X 座標小於 160 對應於感測器視野的左半部分,而大於 160 的 X 座標對應於感測器視野的右半部分。 同樣,Y 座標小於 120 表示視圖的上半部分,大於 120 的 Y 座標表示視圖的下半部分。

請參閱 以了解 VEXcode V5 中 AI 視覺實用程式中的數據,以了解有關如何使用 AI 視覺感測器測量物體的更多資訊。

寬度和高度

這是偵測到的物件的寬度或高度(以像素為單位)。

該圖像顯示了一個藍色的巴基球,有一個白色的方形輪廓來追蹤它。 左上角有一個標籤,表示它是一個藍色對象,座標 X:176,Y:117,尺寸 W:80,H:78。 紅色箭頭突出顯示物件的寬度和高度。

寬度和高度測量有助於識別不同的物體。 例如,巴基球的高度比環的高度高。

視覺辨識系統正在追蹤兩個藍色立方體物體。 上面的立方體有一個白色輪廓,帶有一個標籤,指示其位置為 X:215、Y:70 和尺寸 W:73、H:84。 下部立方體具有類似的白色輪廓,標籤顯示 X:188、Y:184 和尺寸 W:144、H:113。 每個立方體都有一個居中的白色十字,可能表示追蹤的焦點。 標籤突出顯示每個物件的測量和追蹤數據。

寬度和高度也表示物體與 AI 視覺感測器的距離。 較小的測量值通常意味著物體距離較遠,而較大的測量值則表示物體較近。

程式從啟動時的區塊開始,然後永遠循環。 在循環內,程式使用 AI 視覺感測器 (AIVision1) 拍攝快照來偵測藍色物體。 如果該物件存在,程式將檢查該物件的寬度是否小於 250 像素。 如果為 true,則機器人向前行駛;如果為 true,則機器人向前行駛。否則,它將停止行駛。 這些區塊堆疊在一起,指示模組化編碼環境中的程式流程。

在此範例中,物件的寬度用於導航。 機器人會接近物體,直到寬度達到特定尺寸才停止。

X 中心和 Y 中心

這是檢測到的物件的中心座標(以像素為單位)。

電腦視覺系統正在追蹤藍色巴基球。 該物體的輪廓是一個白色方塊,輪廓內部是一個較小的紅色方塊,周圍有一個中心白色十字。 在影像的左上角,標籤指示該物件為藍色,座標 X:176,Y:117,尺寸 W:80,H:78。

CenterX 和 CenterY 座標有助於導航和定位。 AI視覺感光元件的解析度為320 x 240像素。

視覺系統追蹤的兩個藍色立方體物體。 上部物件標有座標 X:215、Y:70 和尺寸 W:73、H:84,並帶有白色輪廓和居中的白色十字。 下部物件標有座標 X:188、Y:184 和尺寸 W:144、H:113,也以白色輪廓顯示,並帶有居中的白色十字。

您可以看到,距離 AI 視覺感測器較近的物體將比距離較遠的物體具有較低的 CenterY 座標。

基於區塊的編碼序列從whenstarted開始,後面跟著一個永遠循環。 在循環內,程式使用 AIVision1 拍攝快照來偵測藍色物體。 如果存在物體,程式就會轉動,直到物體位於 AI Vision 感測器視圖的中心。 如果該物件的 centerX 值在 150 到 170 之間,則該物件被視為居中。 如果物體不在中心,機器人向右轉;否則,它將停止行駛。 這些區塊表示可視化程序的流程和邏輯。

在此範例中,由於 AI 視覺感測器的視圖中心為 (160, 120),因此機器人將右轉,直到偵測到的物體的 centerX 座標大於 150 像素但小於 170 像素。

角度

Angle 屬性僅適用於顏色代碼AprilTags。 這表示偵測到的顏色代碼AprilTag 的方向是否不同。

一堆兩個立方體,一個綠色在頂部,一個藍色在底部,由視覺系統追蹤。 兩個立方體周圍都有白色輪廓,綠色立方體中心有一個白色十字。 影像底部的標籤顯示 Green_Blue A:87°,指示偵測到的顏色和角度測量值。 以下所列的座標為 X:117、Y:186,尺寸為 W:137、H:172,表示框架中堆疊的立方體的位置和大小。

您可以查看機器人相對於顏色代碼AprilTag 的方向是否不同,並據此做出導航決策。

兩個立方體,一綠一藍,並排放置並由視覺系統追蹤。 白色輪廓圍繞著兩個立方體,中心有一個白色十字。 左上角標籤指示 Green_Blue A:0°,參考偵測到的顏色和角度測量。 下面,座標顯示為X:150,Y:102,尺寸W:179,H:109,表示立方體在框架內的位置和大小。

例如,如果沒有以正確的角度偵測到顏色代碼 ,則機器人可能無法正確拾取它所代表的物體。

OriginX 和 OriginY

OriginX 和 OriginY 是偵測到的物件左上角的座標(以像素為單位)。

視覺系統正在追蹤藍色巴基球。 白色輪廓包圍該對象,輪廓內有一個居中的白色十字。 左上角標籤指示物件的顏色為藍色,以及座標 X:176、Y:117 和尺寸 W:80、H:78。 一個紅色小方塊突顯了物件的左上角。

OriginX 和 OriginY 座標有助於導航和定位。 透過將此座標與物件的寬度和高度結合,您可以確定物件邊界框的大小。 這可以幫助追蹤移動物件或在物件之間導航。

基於區塊的編碼序列以whenstarted開始,後面跟著一個forever循環。 在循環內,程式使用 AIVision1 拍攝快照來偵測藍色物體。 如果物件存在,程式將根據該物件的位置和大小在 Brain 螢幕上繪製一個矩形。 此矩形是使用 AIVision1 感測器提供的物件的 originX、originY、寬度和高度值繪製的。 該程式以視覺方式追蹤並突出顯示大腦螢幕上檢測到的物體。

在此範例中,將使用其原點、寬度和高度的精確座標在大腦上繪製一個矩形。

標籤ID

tagID 僅適用於AprilTags。 這是指定的AprilTag的 ID 號碼。

三張帶有 AprilTags 的方形卡片由視覺系統追蹤。 每張卡都標有 ID 號碼和相關的追蹤資料。 左邊的卡片標示為 ID:0,顯示座標 A:350°、X:110、Y:96、W:41、H:41。 中間的卡片,標示為 ID:3,座標 A:1°、X:187、Y:180、W:57、H:57。 右側卡片的標籤為 ID:9,座標 A:3°、X:237、Y:89、W:38、H:38。 每張卡片都有白色輪廓,系統正在追蹤它們的位置和方向。

辨識特定的 AprilTags 可以進行選擇性導航。 您可以對機器人進行編程,使其向某些標籤移動,而忽略其他標籤,從而有效地將它們用作自動導航的路標。

分數

當使用 AI 視覺感測器檢測AI 分類 時,將使用分數屬性。

該圖像顯示了視覺系統正在追蹤的四個物體:兩個球和兩個環。 紅球標示為座標 X:122、Y:84、W:67、H:66,得分 99%。 藍球X:228,Y:86,W:70,H:68,得分為99%。 綠色環的座標 X:109、Y:186、W:98、H:92,得分為 99%。 紅環標示為X:259,Y:187,W:89,H:91,得分為99%。 每個物體都以白色勾勒出輪廓,顯示追蹤的準確性。

置信度分數表示 AI 視覺感測器對其檢測的確定程度。 在此影像中,它識別這四個物件的 AI 分類的置信度為 99%。 您可以使用此分數來確保您的機器人僅專注於高度可信賴的檢測。


設定對象項目

當人工智慧視覺感測器偵測到一個物體時,它就會被放入一個陣列中。 預設情況下,AI 視覺感測器將從數組中的第一個物件或索引為 1 的物件中提取資料。 如果您的 AI 視覺感測器僅偵測到一個物體,則預設選擇該物體。

但是,當您的 AI 視覺感測器同時偵測到多個物件時,您需要使用Set Object Item 模組來指定要從中擷取資料的物件。

淺藍色編碼塊。 它包含一個將 AIVision1 的物件項目設定為 1 的指令。 該區塊是基於區塊的編碼環境的一部分,通常用於定義 AI 視覺感測器應關注或追蹤的物件或項目。 塊的形狀有輕微的曲線,適合視覺編碼平台的模組化性質。

當AI視覺感測器偵測到多個物體時,它們會按照從大到小的順序排列在陣列中。 這表示偵測到的最大物件將始終設定為物件索引 1,最小物件將始終設為最高編號。

AI Vision Utility 介面在左側偵測到兩個藍色立方體,每個立方體都標有 X 和 Y 座標和尺寸。 系統已連接,AprilTags 已打開,而 AI 分類已關閉。 右側顯示藍色設定以及可調整的色調和飽和度範圍,分別設定為 22 和 0.34。 有一個選項可以添加或設定顏色並凍結影片。 韌體是最新的,運行版本1.0.0.b16,底部有關閉按鈕。

在此範例中,已偵測到兩個具有顏色簽名 “藍色”的物件。 當使用Take Snapshot 塊時,它們都會被放入陣列中。

AI Vision Utility 介面,追蹤兩個標有 X、Y 和尺寸資料的藍色立方體。 左側立方體的座標為 X:127、Y:179,尺寸為 W:136、H:123,右側立方體的座標為 X:233、Y:74,尺寸為 W:78、H:87。 系統已連接,AprilTags已打開,AI分類已關閉。 藍色設定的色調範圍為 22,飽和度為 0.34。 底部顯示「凍結影片」按鈕和韌體資訊(版本 1.0.0.b16)。

在這裡,前面的物件將成為物件索引 1,因為它是最大的對象,而最小的物件將成為物件索引 2。


對象存在

在從快照中提取任何資料之前,請務必進行始終 檢查,以確保 AI 視覺感測器首先從該快照中偵測到任何物件。 這就是Object Exists 塊發揮作用的地方。

存在帶有文字 AIVision1 物件的淺藍色六邊形編碼區塊嗎? 該區塊是基於區塊的編碼環境的一部分,通常用於檢查標記為 AIVision1 的 AI 視覺感測器是否偵測到物件。 該塊被設計成適合模組化編碼結構,具有此類環境的輕微曲線和形狀特徵。

該區塊將傳回TrueFalse 值,判斷最後拍攝的快照中是否偵測到任何物件。

該區塊應該始終 用於確保您不會嘗試從可能為空的快照中提取任何資料。

基於區塊的編碼序列,從whenstarted開始,後面跟著一個永遠循環。 在循環內部,AI 視覺感測器 (AIVision2) 會拍攝快照以偵測藍色。 如果偵測到具有藍色視覺特徵的物體,機器人就會向前行駛。 如果沒有偵測到物體,機器人將停止行駛。 這些塊堆疊起來代表程式的條件邏輯,其中檢測到的物體的存在控制機器人的運動。

例如,這裡的機器人將不斷地使用人工智慧視覺感測器拍攝快照。 如果它辨識出 任何 具有「藍色」 顏色簽名的物體,它將向前行駛。


如果任何快照沒有「藍色」 顏色簽名,機器人將停止移動。


對象計數

標記為 AIVision1 物件計數的淺藍色圓形編碼區塊。 此區塊在基於區塊的編碼環境中用於檢索標記為 AIVision1 的 AI 視覺感測器偵測到的物件數量。 該區塊適合模組化結構,通常用於機器人或視覺系統的可視化程式介面。

使用 物件計數 區塊將允許您查看 AI 視覺感測器在其最後快照中可以看到多少個特定 顏色簽署 的物件。 

AI Vision Utility 介面,左側偵測到兩個藍色立方體。 系統已連接,啟用 AprilTags 並關閉 AI 分類。 介面顯示檢測藍色的設置,色調設定為 22,飽和度設定為 0.34。 存在用於凍結影片以及添加或設定顏色的按鈕。 韌體顯示為最新版本,運行版本 1.0.0.b16。 還有一個按鈕用於斷開連接或關閉實用程式。

在這裡,我們看到 AI 視覺感測器配置了 顏色簽名 “藍色”,並且正在偵測兩個物體。

基於區塊的編碼序列從whenstarted開始,然後是永遠循環。 在循環內,程式使用 AIVision2 拍攝快照來偵測藍色視覺簽名。 在檢查是否偵測到任何藍色物體之前,它會清除並重置控制台。 如果存在藍色對象,則對象計數將列印到控制台。 然後程序等待兩秒鐘,然後重複該過程。 這些區塊直觀地代表對藍色物件的連續檢查,並在控制台中顯示結果。列印數字 2 的控制台輸出。 該控制台是一個更大介面的一部分,該介面可能顯示在基於區塊的編碼環境中運行的程式的結果。 控制台的頂部有用於附加操作或控制的按鈕,這裡運行的程式正在將資料輸出到列印控制台,螢幕上顯示結果為2。

在此代碼中,AI 視覺感應器將拍攝快照並在 VEXcode 控制台上列印“2”,因為它只偵測到兩個“藍色” 顏色簽名


目的

用於選擇與 AIVision1 相關的物件屬性的下拉式選單。 選定的選項是寬度,選單列出了其他選項,包括高度、centerX、centerY、角度、originX、originY、tagID 和分數。 這些選項可讓使用者從 AI 視覺感測器偵測到的物體中檢索特定資料點,從而為追蹤或測量物體的各種屬性提供靈活性。

Object 塊可讓您報告指定物件的屬性。 這使您可以使用從最近拍攝的快照中提取的任何可用資料。

可以從拍攝的快照中提取的物件屬性包括:

  • 寬度
  • 高度
  • 中心X
  • 中心Y
  • 角度
  • 原點X
  • 原點Y
  • 標籤ID
  • 分數

有關這些屬性的更多信息,請閱讀本文的“從快照獲取的數據”部分。


偵測到 AprilTag 是

編碼介面的淺藍色六邊形塊。 它包含一個檢查 AIVision1 偵測到的 AprilTag 是否與值 1 相符的命令。 此區塊用於基於區塊的編碼環境,旨在評估是否存在特定的 AprilTag。 其形狀和結構使其能夠適合其他邏輯區塊,通常用於機器人或人工智慧視覺任務的視覺化程式設計。

Detected AprilTag is block 只有在AprilTag 偵測模式 開啟時才可用。

該區塊將根據指定物件是否為某個 AprilTag 報告 True 或 False。

視覺系統正在追蹤三個 AprilTag。 每個標籤都有一個 ID 和關聯的座標。 左側標籤標示為 ID:0,座標 X:110、Y:96、W:41、H:41。 中心標籤標示為 ID:3,座標 X:187、Y:180、W:57、H:57。 右側標籤標示為 ID:9,座標 X:237、Y:89、W:38、H:38。

當在單一快照中偵測到多個 AprilTags 時,它們會根據其識別的 ID(而不是大小)排列在陣列中。

在此影像中,偵測到 ID 為 0、3 和 9 的三個 AprilTag。 它們將按照數組中 ID 的升序進行組織。 索引 1 處的物件對應於 ID 為 0 的 AprilTag,索引 2 處的物件對應於 ID 為 3 的 AprilTag,索引 3 處的物件對應於 ID 為 9 的 AprilTag。

有關 AprilTags 是什麼以及如何使用 AI 視覺感測器進行檢測的更多信息,請閱讀本文。


AI分類是

來自基於區塊的編碼環境的淺藍色六邊形區塊。 該區塊包含命令 AIVision1 AI 分類是 BlueBall? 此區塊檢查 AI 視覺感測器 (AIVision1) 是否已將偵測到的物件分類為 BlueBall。 該區塊具有下拉選項,允許用戶在視覺化程式設計介面中選擇不同的物件或 AI 分類以進行追蹤和決策。

AI 分類為 塊僅在AI 分類檢測模式 開啟時可用。

 

該區塊將根據指定物件是否屬於某個 AI 分類來報告 True 或 False。

AI 視覺感測器可以偵測到的 AI 分類會因您使用的型號而異。 有關可用的 AI 分類以及如何使用 AI 視覺感測器進行檢測的更多信息,請閱讀本文。

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: