Aurora Vision Studio

Aurora Vision Studio 入門教學、深度學習

AuroraVisionStudioTraining

怎麼註冊及下載試用

Aurora Vision Studio 有分免費版 (Lite) 及專業版 (Professional),其中免費版可以自由下載使用,雖然沒有時間限制,但會有部分功能限制 (例如相機取像有浮水印);而專業版具有全部的功能,但若要評估專業版,需要先上 Aurora Vision Studio 官方網站註冊一個使用者帳戶,再透過使用者帳戶申請 30 天試用版。

再者,如您本來就是專業版用戶,我們也會推薦您註冊一個使用者帳戶,已獲得後續在服務上的聯繫 (更新 / 升級 / 技術支援)。

 

您可以按照如下影片教學流程申請 Aurora Vision Studio 試用版,或是下載此 PDF 文字說明檔

  1. 到 Aurora Vision 官方網站。
  2. 於官方網站註冊一個個人帳號,須提供 email 地址。註冊時請填寫經銷商為 URVISION,以取得更即時的服務。
  3. 等待 email 收到個人帳號的核可通知,收到通知後按下 email 中連結啟用帳號。
  4. 回到 Aurora Vision 官方網站使用者區域,登入個人帳號。
  5. 點選【申請試用取可】連結,填寫要申請的版本 (建議選 Windows + Professional + Library + DeepLearning) 並註明申請原因後,按下 Submit 提交。
  6. 等待 email 申請成功通知,內有配發給您的【試用版認證券】的連結。
  7. 下載】安裝檔並安裝之。
  8. 安裝完成後,使用安裝環境內建的 License Manager 生成電腦 ID,將電腦 ID 填到【試用版認證券】網頁內,即可下載 license 檔。
  9. 將 license 檔匯入到 License Manager 內,啟用 30 天試用。
 

 


導覽01: 簡易設計第一支小程式

Aurora Vision Studio 能快速設計視覺檢測方案,即使是深度學習也不例外。這部影片教你如何快速拉一個深度學習模型、訓練它、讀取影像檔案、辨識這些影像檔案。

導覽02: 設計使用者操作介面 (HMI)

有時候,設計一個視覺辨識專案不僅僅是核心演算法,也需要秀圖、顯示結果、輸入參數、調整設定,以往這些過程我們都是透過程式語言提供的工具 (MFC、QT、.NET WinForm 等等) 來達成。

Aurora Vision Studio 是一套完整的圖控式開發平台,試圖讓您可以使用它,把整個流程一條龍串起來。所以除了可以設計演算法程式以外,也可以設計使用者操作介面 (HMI),這個影片教你怎麼把上一個 01 範例,增加一個顯示介面秀出來給使用者看,並且把這個小程式匯出成可獨立執行的執行檔 (*.avexe)。 

導覽03: 用C#寫Aurora Vision Library

有時候您可能還是會覺得寫 Code 比較習慣,一種常見的原因是,為了開發各種機器設備您手上早已準備許多利用程式語言寫好的 API (取像卡、軸控、CIM 呈報系統等等),所以視覺辨識必須也用 Code 來寫比較方便跟它們串在一起。

我們這套開發平台也提供 Aurora Vision Library,它是 Aurora Vision Studio 的底層架構,語法幾乎相同,您可以利用這個函示庫呼叫各種演算法函示、HMI 控制項,直接用程式語言把專案做出來。

本影片示範怎麼把上一個導覽 02 改用 C# 重寫一次。 

到這裡,您已經學會 Aurora Vision 兩種不同的開發方式。

導覽04: 用C#寫Aurora Vision Library續篇 - 取像

這是導覽 03 的續篇。假設您打算用函示庫來寫 Code,一個視覺案件的第一件事其實不是像剛才那樣去讀硬碟裡的圖檔,而是從相機取像。如果您選用的相機剛好支援標準 GenICam 通訊協定,例如 GigEVision 或 USB3Vision,我們的函示庫已經內建 GenICam 通訊協定的取像,而且語法簡潔明瞭,您不需要再加掛其它的 API。

導覽05: 用 Aurora Vision Studio 取像

承 04 導覽範例,GigEVision 相機的取像在 Aurora Vision Studio 圖控開發模式就更簡單了,它只需要一個工具 (Filter),把它拉進來,指定一下 IP 就可以了。

導覽06: 用C#呼叫Studio打包的程式

綜合前面幾個範例,您已經知道我們可以用圖控 (Studio) 去寫演算法、甚至設計 HMI,也知道我們也可以直接用函示庫 (Library) 去寫程式。

但是您可能會想要圖控 (Studio) 設計演算法的方便,因為所見及所得,能大幅縮短開發時間;又想要程式語言的無限擴充能力 (銜接取像卡、軸控、CIM 呈報系統等等)。

這時候,我們提供第三種開發模式,您可以先用圖控 (Studio) 將寫好的演算法打包起來變成副程式,因為我們的函示工具都有一個專有名詞叫做【Filter】,所以集合眾多 Filter 的副程式就叫做【Macro Filter】。您可以把在圖控評估、除錯、寫好的 Macro Filter 匯出到 DLL,匯出的 DLL 是 .NET Framworks 介面,您可以用 C# 或 VB.NET 去呼叫它,命令它驅動圖控腳本執行您設計好的演算法,

本開發模式也方便設計視覺辨識演算法的工程師,與設計取像卡、軸控、CIM 呈報系統、乃至於系統 UI 的工程師團隊能妥善分工,完成大型專案。

導覽: 怎麼用Studio圖控設計執行續

雖然多執行續的設計與使用是常見於 C++/C#/VB 等等程式語言的。

但是多執行續在圖控平台是少見的,流程圖風格的圖控式設計軟體就未必都有支援多執行續的設計元素,因為它們原本的市場只設計給超級簡單的專案來使用,所以只能一個腸子通到底,先做完先要做的事,再慢慢把後面的步驟處理掉,所以往往一遇到稍微大一點的專案就做不出來。

我們的 Aurora Vision Studio 有支援多執行續的設計功能,您可以參考本影片知道如何使用多執行續。通常,多執行續在視覺開發工程上不外乎以下兩件事,

第一,您可能有好幾個影像來源 (多台相機),而且每個影像來源都必須要平行處理自己的影像不互相干涉。

第二,您可能想利用多執行續來進行作業分工,例如取像是一個執行續,處理是另一個執行續,回報又是另一個執行續。


入門教學01: 產品架構簡介

Aurora Vision 有數千種工具,架構細分為 Studio、Library,集2D、3D、深度學習於一身,適合快速開發各種客製化應用,本篇從整套框架的宏觀架構開始,帶您入門認識這套產品以及特色。

入門教學02: 基礎操作及取像教學

通常認識一套開發框架,必須要先大致熟悉整個環境,本篇帶您認識Aurora Vision Studio的基礎操作與簡單的取像教學。

入門教學03: 簡易影像處理、資料流架構概念

本篇利用一個簡單的影像處理範例,利用二值化、Blob、形態學、面積篩選、計算區塊中心、統計個數,來練習資料流程式設計的基礎概念。

入門教學04: 繪圖工具介紹、簡易HMI小程式

本篇簡單的示範怎麼將計算結果直接畫在影像上,以及示範HMI Designer設計互動式人機操作介面,輸出成可執行的avexe小程式。

入門教學05: Formula工具、HMI設計Recipe及顯示OK、NG

本篇介紹Formula工具的使用情境、設計公式來判斷影像處理數值的OK/NG,以及HMI如何使用StateControlBox製作簡易的Recipe下拉式選單以儲存畫面中的設定參數。

入門教學06: 2D尺寸測量工具

本篇介紹量測工具的基本原理,量測工具適合用於打背光、或者其他能夠呈現黑白分明的影像的場景,能定位指定搜尋範圍內的物體特徵並將座標貨尺寸計算出來。

入門教學07: 組合各種幾何工具以測量進階尺寸特徵

本篇教學教您如何利用幾何工具,將量測Fitting工具抓到的初階特徵,排列組合形成進階的抽象特徵,例如點到點、點到線、角度等等,發揮測量工具彈性開發的優勢。

入門教學08: 用定位工具做量測前的相對座標錨定

本篇先引入資料流程式開發中一個重要的觀念,也就是帶問號(?)的資料型別用於表示計算過程中可能是NIL無計算結果的資料。接下來,由於量測工具只能在一個限定的搜尋範圍中才能做Fitting,那麼,需要利用定位工具才能在全景中抓到想要量測的工件,並且透過相對座標錨定的技巧,將定位工具與量測工具整合起來使用。

入門教學09: 靈活的利用各種幾何工具建立相對座標系

本篇繼續上一集相對座標錨定學到的觀念,衍生出更多靈活的玩法,所謂萬物皆可定位,各種幾何特徵,例如點、線段、矩形等等,都可以建立出相對座標,使開發流程充滿自由及彈性。

入門教學10: 利用TCP/IP接收指令以及傳出辨識結果

通常介紹幾個影像處理演算法功能,我們會先打住休息一下,介紹一下其他的東西,畢竟使用視覺開發工具的目的是要整合功能來設計出檢測設備。因此,若我們已經能辨識出影像特徵,要如何與設備互動、丟出資訊呢? Aurora Vision Studio支援多種通訊交握方式,其中TCP/IP是其中一種簡單易用的方案。

入門教學11: 深度學習架構及安裝說明

本篇簡介深度學習的產品架構,了解深度學習插件(Deep Learning Add-on)底下各元件如訓練服務(Service)、推論(WEAVE引擎)、標註編輯器(Deep Learning Editor)的關係。以及了解如何查看安裝結果是否正確、如何上網查看顯示卡支援度等等。

入門教學12: 輕鬆搭建深度學習的第一個入門應用

本篇利用一個簡單的鋼板瑕疵檢測範例,教您從儲存訓練影像、開啟新模型、標註訓練資料、訓練模型,直到模型能實際檢測瑕疵,來熟悉深度學習應用搭建的大致原則及套路。

入門教學13: 深度學習模型迭代、多模型的聯集運用

使用深度學習的過程中,必然會遇到檢測結果不好或者過殺的情況,本篇學習到如何增加資料量並訓練模型迭代,增強檢測結果以及降低過殺。另外,同一個模型設定常常只能適應特定範圍種類的特徵,太多元的範圍種類特徵辨識得不太好或者訓練不起來的情況,於是也要學到如何聯集多個模型、共同運用來克服多元的瑕疵或特徵問題。

入門教學14: HMI設計案例,讓Runtime操作者打開及訓練指定的深度學習模型、一鍵儲存圖片

某些深度學習的應用情境,例如生產線的生產的形體會有換款或換線的情況,會需要讓生產線使用者自行訓練深度學習模型。因此,我們在設計操作介面(HMI)的時候,會特意設計能開啟專案中指定的深度學習模型的視窗、以及讓操作者能點擊按鈕儲存訓練圖檔的功能。

補充教材

知道如何用HMI設計一個按鈕來自動開啟指定的模型以後。可以進一步去設計下拉式選單去切換不同的Recipe,每個Recipe對應一款產品、也對應該產品的檢測模型;另外,新增新的Recipe的時候,自動套用事先準備好的空的樣板模型,減少操作人員重新設定參數的失誤。

入門教學15: 深度學習LocatePoints模型、以及跟其他模型的整合應用

本篇介紹深度學習除了最常用的DetectFeatures以外的另一個基礎模型 LocatePoints,它通常用來辨識影像中大量的顆粒狀物體特徵,獲得特徵的Pixel座標以及特徵的數量,故很常用來用在個數統計的應用上。另外,我們又介紹怎麼拿LocatePoints跟DetectFeatures進行整合運用,從這個案例可以看到,深度學習並不是只能做瑕疵檢測,搭配各種邏輯運算可以玩出相當多的花樣。

入門教學16: 將圖控程式打包成Runtime DLL給C#呼叫調用

本篇介紹Aurora Vision Studio最熱門的第二種開發方式,將圖控開發好的演算功能封裝到Runtime及DLL中,匯出給C#進行呼叫調用。因為PC based工業控制許多裝置元件皆有支援C#、以及C#環境開發人機操作視窗容易上手等等特點,機台設備自動化開發業者使用C#進行開發的普及率相當高。我們可以將Studio圖控開發視覺影像處理有所見及所得、容易除錯的優點,將它輕易跟C#整合在一起。

入門教學17: 觸發同步飛拍取像用法

當被檢測物件連續移動通過鏡頭前方,如何將相機取像與軟體進行同步定位? 如果您以前沒有研究過軟硬體整合設計,往往以純軟體的想法來思考設計,很有可能會採取連續採集影像並且一邊判斷物件是否剛好在視野正中間的策略;其實,將工業相機切換到觸發模式,並且透過正確的硬體接線,可以實現連續移動同步拍攝的效果,相機會剛好定格在物件的正中心,這有一個專有名詞叫做【飛拍】。本篇介紹如何透過Aurora Vision Studio去設定GigEVision相機的觸發模式,以及了解到相機影像與圖控流程的交互關係。

入門教學18: 深度學習OCR及程式計算時間診斷器用法

文字辨識簡稱OCR,是一種試圖透過影像來提取出畫面中的文字,進而轉成文字字碼的動作。因為圖像中的文字只是像素級別,必須要轉成文字字碼符號才能用於後續的字碼比對或記錄留存。DL_ReadCharacters是Aurora Vision Studio提供的利用深度學習技術實現的文字辨識工具,它已經被千種以上的字型訓練過,達到隨插即用的方便性,不需要再由開發者訓練字型,並且持續由Zebra團隊訓練維護當中優化其辨識性能。

另外,我們在開發演算程式的時候常常需要分析各階段的計算時間,Aurora Vision Studio提供簡單易用的分析工具讓你一目了然程式各函數的計算時間分布情形。

入門教學19: 利用Serial Port工具透過RS232控制外部裝置

 

首先介紹如何統計目前程式的FPS (frames per second)技巧,以及在此之下如何推導取像架構的最高可支援FPS。本篇主要的重點在於,Serial Port工具透過RS232控制外部裝置,我們示範下達ASCII字串命令給旋轉馬達,結合HMI視窗的開關按鈕,來啟動或停止馬達。

 

入門教學20: 執行續及Queue的用法

 

本篇介紹執行續(WorkerTask)的使用方法,它能獨立於主執行續(Main)平行運作,並且介紹如何透過佇列(Queue)在執行續之間互相傳遞任務資料。要注意的是,若在多個執行續使用影像處理工具,會影響程式開發完成輸出程執行檔以後,Runtime License的執行續費用計算方式。

另外,本篇也介紹多個HMI互動式工具的設計方式,例如用旋鈕轉盤設定類比轉速、用列表清單顯示Log等等。

 

入門教學21: Anomaly Detection訓練良品檢出可疑瑕疵

 

本篇介紹Anomaly Detection異常檢測工具,這是一種利用深度學習技術,訓練一定批量的良品影像當作Golden Sample,嘗試分析Golden Sample資料集的相似度範圍,藉此檢出各種可疑瑕疵、進行缺陷檢測。該模型在訓練的時候只需要給定打勾(良品)或打叉(異常),不需要做嚴格的瑕疵像素範圍標註,適合用於受檢良品在影像中有高重複性,但瑕疵類型還無法掌控或歸納的情形。

 

入門教學22: 利用GenICam擷取CXP擷取卡影像

 

GenICam GenTL是一個通用標準,其設計目的是為了提供一種連接影像採集設備與採集裝置的通用介面,它底層的核心是定義統一的傳輸層介面(TLI)。另外,GenICam GenAPI模組又定義了以XML格式來描述採集裝置的參數與控制功能,裡面定義了功能與行為的命名規則與標準,例如我們看到的曝光參數等等名稱即是。如此一來,只要第三方的開發者(相機、擷取卡等等廠商)按照該標準進行軟硬體開發,使用者皆可以相同的傳輸層進行資料溝通及獲取。

本集示範利用GenICam_GrabImage工具來獲取銜接在ActiveSilicon CXP影像擷取卡上的25MP大面陣相機畫面。。

 

入門教學23: 適用於低失真遠心鏡頭的Pixel轉真實尺寸換算方式

 

用演算法計算影像中的特徵得到測量值或是定位座標以後,得到的都是Pixel的值,但我們最終的目的往往都是想要真實世界的尺寸,例如毫米或是微米。本篇介紹搭配低失真的遠心鏡頭的用法,只要一個比例轉換工具去算出Pixel轉mm的結果。

入門教學24: 適用於FA鏡頭的2D世界座標平面校正法

 

如果你用的是FA鏡頭(Factory Automation,其實就是指各種一般的泛用型鏡頭),會有透視失真、畸變等等情況,無法使用像遠心鏡頭影用一個轉換係數將Pixel值轉成mm值。這時候,需要引入校正的概念,經過校正以後,可以把測量平面空間轉到世界座標系統。

入門教學25: 2D世界座標校正結合定位工具,用於2D抓取

 

本篇介紹定位工具進階模式的參數調整方法,以及如何整合2D校正座標,分別於世界座標系、影像座標系顯示它們的相對關係。有了這些觀念以後,您在進行2D視覺整合機器手臂上下料的時候就會如魚得水。

入門教學26: 2利用DXF向量圖檔建立對位模型,結合校正作工件對位

 

一般對位工具入門用法都是用影像直接建立模型去做對位,但某些應用場景中,客戶習慣採用向量CAD設計檔當作匹配模型的來源資料。本篇教學由淺入深帶您一步一步將DXF向量圖檔轉到影像座標,並且結合前幾篇的校正觀念,將它們整合在一起。

入門教學27: Edge/NCC定位工具探討

 

定位工具一般分為兩種,分別為Edge模式與NCC模式。Edge模式使用邊緣特徵來進行定位,NCC模式使用影像的灰階來進行定位,各有各的優缺點,本篇簡短的用兩個範例帶您認識兩種定位模式適合的應用場景影像類型,以及調整技巧。

入門教學28: 傳統Golden比對檢測工具

 傳統Golden比對檢測工具乃基於平均影像與影像相減的技術,其目的於較【先進】的深度學習Anomaly Detection相同,都是試圖想要建立一個標準樣板用於檢測出任何可疑的異常;前者用法簡單但只適合剛性、變化少的工件,後者訓練較複雜但更彈性、能適應局部變化。Golden比對檢測工具常與定位工具一併使用,本篇可以學到如何進行整合。。

入門教學29: 有、無 檢測工具

 有無檢測工具也是一種傳統影像檢測工具,也有人稱作缺件檢測,原理是在指定的地方、指定的範圍、檢測指定的特徵是否滿足條件,輸出True(有)或False(無),很常用於一些簡單、灰階特徵差異相當明顯的場景。

入門教學30: Photometric Stereo突顯2D影像的凹坑或台階

 Photometric Stereo又稱為光度立體視覺,是一種透過多張2D取像同時去改變光照的方向,計算光影的漫射程度改變反推出物體表面【立體感】的演算法。搭配遠心鏡頭以及平行光束,可以高精度的定性感測出物體表面的凹坑、台階起伏情形。

因為改變光照的方向需要拍攝多張影像,在實務上常常會搭配快速切換光源的閃頻控制使用

入門教學31: 如何用深度學習LocateObjects加流程控制,實現Video物流追蹤(Tracking)

深度學習 LocateObjects 模型,是 Aurora Vision 所推出的類似 YOLO 的物件定位模型,它除了能辨識物件座標以外也能約略的計算包圍框 (bounding box) 的角度。但是我們常常以為能夠即時的偵測畫面中的所有物件,就做到了【追蹤Tracking】,其實不然,做到追蹤還得加上幾個要件。具體來說,你必須要能夠根據時間的前後關係,用影像處理的話來描述就是前後frame的關係,去記錄物件的 1 號就是 1 號、2 號就是 2 號,能夠【跟著】場景的物流在移動,才算做到追蹤。

入門教學32: 打包辨識及手臂通訊DLL給C#做動作,實現用視覺讀碼切換彈性的示教路徑

通常我們在講解一些功能或應用方法之間,會來個 Break Time,目的是既然學了一些方法,那麼真的遇到案子的時候該怎麼整合、怎麼做。

這裡用一個案例,想用視覺來辨識料盤上的 QR Code 二維條碼,讓手臂知道現在是哪一款料盤,引導它去做相對應的動作。

由於料盤的種類繁多,需要在電腦上設計讓操作人員彈性增加及設定手臂動作的UI介面。這時候,使用 Aurora Vision Studio 專心撰寫取像、辨識、手臂動作通訊,將模組打包給C#進行模組功能的調用,更容易寫出結構清晰、邏輯分明、操作彈性的設備系統。

在教學的末尾提到,我們已經用 Aurora Vision Studio 將 DOBOT 的 MG400、CR、CRA三大產品線的通訊 API 包裝完成,可以向我們工程支援團隊索取相關資源,只要拖拉進圖控專案中,就能隨插即用用指令遙控 DOBOT 機器手臂做動作。



Next: 3D視覺 教學課程

機器視覺小教室,大家一起玩 3D ! 您是否對 3D 影像處理、3D視覺、辨識、定位、量測有莫名的恐懼感,明明看著人家做出一些成果,但自己一碰到就不得其門而入,我們這個課程將降低您對 3D 的技術門檻。