ORingView操作手冊

系統主畫面

尋找相機
相機資訊 (相機型號 序號)
FPS 每秒張數
開始啟像
停止啟像
儲存影像
檢測功能 (有四個檢測功能)
顯示數據 (半徑比例、半徑差)
良品門檻值
最大灰階值
最小面積

尋找相機 Find Device

按下「尋找相機 Find Device」,系統會偵測相機。

當系統並沒有相機時

當系統找到相機時

設定FPS

FPS: 每秒取像張數

開始取像 Start

停止取像 Stop

儲存影像 Save Image

檢測功能

曝光時間

分類: AOI, Software Technology | 標籤: | 發佈留言

XenethAOI 操作手冊

程式主畫面

程式功能

教導:每個焦段的偏移值與Motion Zoom Focus
RS232通訊埠設定
搜尋相機
相機的IP
開始取像
停止取像
載入校正檔
儲存影像
Color Map
是否套用影像偏移
每個焦段的按鈕:
透過RS232下 ZOOMPOS positionTime.Sleep(3)透過RS232下 FOCUSPOSposition

設定畫面

  • 定義每個焦段的名稱
  • 定義每個焦段的Zoom Encoder位置
  • 定義每個焦段的Focus Encoder位置
  • 定義每個焦段的影像的偏移值

RS232通訊設定

影像明暗調整

調整影像灰階比例:new image = image x aplpha + beta
Min: 0  Max: 255Min: 18  Max: 179

佈署及執行程式:

  1. 選擇安裝路徑,按Next開始安裝
分類: AOI, Software Technology | 發佈留言

Coating 製程噴液異常

噴液異常視覺檢測

鴻博資訊有限公司

系統架構圖

此專案規劃一台電腦最多可以跑四隻AOI程式,同時跑多隻AOI程式時的運行順暢度取決於電腦硬體本身的規格。

AOI程式與Modbus程式間是透過Socket進行通訊,每隻AOI程式需配置一個唯一序號,1到4號,當AOI程式偵測到異常時會發送一個訊號給Modbus程式,Modbus根據訊號中的AOI程式唯一序號,在對應的PLC Modbus位址上發送一個100 ms的ON訊號。

AOI IDModbus Address
1100
2101
3102
4103

工業相機

官網:https://www.toshiba-teli.co.jp/en/products/industrial-camera/index.htm

請點選【Support】【Software Download】下載軟體SDK

【註】使用Ubuntu 22.04 

下載TeliCamSDKforLinux_S5104031.zip

壓縮檔內容

請開啟Readme檔案

程式安裝路徑 /opt/TeliCamSDK

TeliViewer

說明文件:請參閱/opt/TeliCamSDK/documents/

啟用Dongle硬體

$ sudo vim /etc/udev/rules.d/99-my-hid.rules

99-my-hid.rules內容為:

SUBSYSTEM==”usb”, ATTRS{idVendor}==”096e”, ATTRS{idProduct}==”0304″, MODE=”0666″

$sudo udevadm control –reload-rules

Modbus 程式

Listen Port:此欄位是設定與 AOI 程式 Socket 交握的埠。

Modbus Slave IP: 此欄位是設定 PLC 的網路 IP 位址。

Modbus Slave Port: 此欄位是設定 PLC 的網路埠。

Modbus Slave:此欄位是設定 PLC 的 Slave ID。

Start Address:此欄位是設定AOI異常位址。

AOI IDModbus Address
1100
2101
3102
4103

如上圖:按下Start及Connection按鈕,啟動與AOI程式及PLC連線。

按上右上角的關閉按鈕,會提示此程式會隱藏並顯示在狀態列。

滑鼠移到Modbus 程式圖示上,按滑鼠右鍵,會跳出下列選單,按下【Show】則顯示主畫面;按下【Quit】則結果程式。

AOI程式

Camera下拉式選單,指定AOI程式連接的相機
Frame Rate:指定相機的Frame Rate
Exposure (us):指定相機的曝光時間 micro second
Connect:連接相機
Start:開始取像
Video:開始錄影
Demo:撥放Demo影片
Reset:清除 Demo影像
TCP Port:與Modbus通訊的Socket Port
Modbus:此AOI程式的唯一識別碼
Clear Count: 設定當Error Image大於100時,進行清除Error Image
Error Image:開啟存放Error Image的路徑
Log:開啟Log的路徑
Video:開啟Video的路徑
About:程式的開發公司的聯絡資訊
Exit:結束程式
ROI Height:檢測區域的高度
ROI Width:檢測區域的寬度
ROI offset:檢測區域的Y軸位置的偏移
Min Row:設定原始影像X軸最低位置
Max Row:設定原始影像X軸最高位置
Min Area:噴嘴治具在影像中會打光成白色,最小的白色面積
Max Width:噴嘴治具在影像中會打光成白色,最大寬度
Min Gray:噴嘴治具在影像中會打光成白色,最低灰階值
Threshold:檢測區域會進行AOI分析會得到一個數值,大於                    Threshold的設定值被判定為異常。
Show Bin:勾選時顯示Binary Image,未勾選顯示原始影像
Kernel:用於影像的的斷開
Set:儲存參數

Error Image路徑

About:程式的開發公司的聯絡資訊

異常影像

分類: AI, AOI | 標籤: , | 發佈留言

電池藍色蓋片貼合及外輪廓檢測

由左至右分為四個區塊:相機的觸發影像區塊,檢查異常的影像區塊,量測數據區塊、功能作業區塊。

相機區域

設定:進入教導畫面

開啟相機:執行開啟相機操作

開始取像:執行連續取像 (相機中心點會顯示十字,用於相機鎖附時調整中心點)

曝光時間:執行變更相機曝光時間操作(以拖拉及輸入的方式)

相機教導畫面

連續取像:執行連續取像

教導影像:執行擷取影像到教導所需的影像

練習:連續取像

  1. 使用者以滑鼠點擊「連續取像」按鈕。
  2. 可以看到右上角視窗顯示即時影像。

練習:教導影像

  1. 使用者以滑鼠點擊「教導影像」按鈕。
  2. 擷取即時影像存成左側教導畫面所需的影像。

練習:

先設定ROI(檢測區域),輸入圓的座標(X,Y)及半徑R

設定外圈最及內圈的亮度值。建議初始值如下所示。

亮度設定值:數值越小,比較暗的區域也會被選取;數值越大,比較亮的區域才會被選取。

偏心率:是焦距(焦點之間的距離)與長軸長度之比。該值在區間 [0, 1) 中。為 0 時,橢圓變為圓形。數值越小代表趨近圓形。

偏心率就偏高0.77

周長:區域輪廓的周長

右側周長為3648 左側周長為4707

面積:區域佔了多少像素。下圖有絕緣片翹起的情況,會造成內圈面積的差異。

填滿面積:將綠色區域填滿的面積。如右圖白色后域為左圖綠色區域填滿。

半徑差:下圖綠色區域有兩個圓,外側圓、內側圓這兩個的圓的半徑值相減。

教導畫面細項操作

(此拉條設定曝光時間)

將教導參數儲存到檔案

放棄此次教導設定,回復初始設定

儲存教導中的影像

載入教導所需影像

運行記錄

用於查看指定的影像,當初為何被判定良品或不良品。

操作方式:

  1. 點選右側Log Recorders的記錄
  2. 點選相機頁次
  3. 點選照片
  4. 就可以看節判定設定及結果

系統組態

設定相機、是否儲存影像,儲存位置、Modbus通訊參數。

操作情境

調整相機影像的明暗

上圖紅色方框可以以拖拉的方式與填入數值的方式進行設定,建議從1000這個數值為基準進行設定,當影像藍色的區域比較像真實的顏色,不會過白、過暗,即完成設定。

下圖左側的影像會比右側好,因為右側的影像有過亮的情況。

調整相機檢測區域

進入「光學檢測參數設定」畫面,可以看到「步驟1. 原始影像」區塊,紅色圈ROI,其中心點座標及半徑。

圖一:為ROI 中心座標為(400,512)半徑400,設定數字後,按下「設定」進行套用。

圖二:為ROI 中心座標為(100,512)半徑400,設定數字後,按下「設定」進行套用。

圖三:為ROI 中心座標為(100,100)半徑400,設定數字後,按下「設定」進行套用。

圖四:為ROI 中心座標為(640,512)半徑100,設定數字後,按下「設定」進行套用。

圖五:為ROI 中心座標為(640,512)半徑300,設定數字後,按下「設定」進行套用。

圖六:為ROI 中心座標為(640,512)半徑400,設定數字後,按下「設定」進行套用。

調整外圈亮度

可以看下圖左上角的區域,可以看到外圈的亮度的變化,亮點由80到255的變化。當製造發生異常造成外圈破損時,破損處的影像的光影變化處會呈現比較暗的情況。


圖一:請看右側的影像,外圈亮度80的變化。

圖二:請看右側的影像,外圈亮度90的變化。

圖三:請看右側的影像,外圈亮度100的變化。

圖四:請看右側的影像,外圈亮度110的變化。

外圈的亮度,目前的建議值為亮度100,比亮度100暗的情況就會造成外圈斷掉,檢測邏輯就可以檢出。

調整內圈亮度

圖一:內圈亮度150,所呈現的影像

圖二:內圈亮度170,所呈現的影像

圖三:內圈亮度250,所呈現的影像

建議設定在250以上,可以看上面的圖示可以清楚正確的捉到內圈的輪廓。

可以發覺當發生這種異常時,就可以被AOI檢測出異常。

調整斷開參數


斷開設定為3的影像,可以看到外圈3點鐘方向有一點輕微的異常,如果這種情況也捉取的話,可以改設定為5,可以看看調整後的檢測情況。

可以看到斷開參數調整成5時,就可以正確捉到這種異常。

分類: AI, AOI | 標籤: | 發佈留言

Coating製造噴液異常視覺檢測

檢測噴嘴輸出異的情況,針對異常的影像進行偵測、存檔。

Error Image路徑

分類: 未分類 | 發佈留言

React-Native Mobile App

WSL2 環境 

Java 環境

sudo apt install openjdk-17-jdk

Windows-based X Server

在Windows主機下查詢IP

修改WSL2中的~/.bashrc內容,增加一行

Android Studio環境

下載位置: https://developer.android.com/studio/?gclid=Cj0KCQiAjJOQBhCkARIsAEKMtO3zEhdK4_I0CEZic3UH4dl-9gVXuHFR9dCl3TOHKjmv3xWLU3UxfhYaApfAEALw_wcB&gclsrc=aw.ds&hl=zh-tw

~/.bashrc 增加下列

執行Android-studio

下載額外的Hardware Profiles

https://github.com/React-Native-Nation/Hardware-Profiles-For-Android-Studio

由ARM 改成 x86_64

NPM 環境

click a to run on Android

分類: 未分類 | 發佈留言

AI Logic to Detect Object Count

鐵條計數

鴻博資訊有限公司

鐵條影像

採用AI的物件偵測邏輯

AI的物件偵測的邏輯是基於計算機視覺(Computer Vision)和深度學習技術。它的核心是透過模型學習如何從影像中自動識別出物件的位置和類別。以下是物件偵測的基本邏輯,以及它如何確定影像中的物件數量和位置。

1. 基礎概念:分類與定位

物件偵測結合了兩個主要的任務:

  • 分類(Classification):識別影像中是否存在特定類別的物件,例如「貓」或「車」。
  • 定位(Localization):確定物件在影像中的具體位置,通常用矩形邊界框來表示。

2. 物件偵測的主要流程

1. 特徵提取(Feature Extraction)

  • 首先,深度學習模型(如卷積神經網路,CNN)會對輸入的影像進行特徵提取。這些特徵是影像中高維度的表示,能夠捕捉到物件的邊緣、顏色、形狀、紋理等信息。
  • 模型通過多層卷積層逐步提取出影像的不同層級特徵,從低層次的邊緣和紋理到高層次的形狀和物件結構。

2. 區域提議(Region Proposals)或網格劃分

  • 許多物件偵測算法會將影像分割成小區域,這些區域稱為“候選區域”或網格,並在每個區域中嘗試檢測物件。
  • 兩種主要的技術:
    • 區域提議(Region Proposal Networks, RPN):例如 Faster R-CNN 中,RPN 會提議潛在的物件區域並進行分類。
    • 網格劃分(Grid Division):YOLO 將整張影像劃分為若干個小網格,每個網格負責檢測位於其內部的物件。

3. 邊界框回歸(Bounding Box Regression)

  • 每個候選區域或網格會預測物件的邊界框(bounding box)。邊界框由四個數據組成:物件的左上角座標和右下角座標,或物件的中心點座標加上寬度和高度。
  • 邊界框回歸是基於對目標物件位置的估計,模型學習如何根據特徵調整這些估計,使預測框與物件的實際位置更精確。

4. 分類與置信度預測

  • 除了預測邊界框之外,模型還會對每個預測框中的物件進行分類。模型輸出物件的類別(例如「狗」、「貓」)以及對該預測的置信度分數。
  • 如果置信度低於某個閾值,則會將這些框過濾掉,保留高置信度的預測。

5. 非極大值抑制(Non-Maximum Suppression, NMS)

  • 當一個物件被多個框檢測到時,NMS 用來消除重疊度過高的邊界框。這一步是根據每個框的置信度來選擇,保留置信度最高的邊界框,並刪除其他重疊的框。
  • 這樣做可以避免多個框重疊預測同一個物件。

3. AI如何確定影像中的物件數量及位置?

1. 確定物件數量

  • 通過非極大值抑制(NMS),模型最終只保留每個物件的一個預測邊界框。剩下的框數量就是偵測到的物件數量。
  • 如果沒有預測框被保留,則表示該影像中沒有偵測到任何物件。

2. 確定物件位置

  • 每個物件的邊界框代表了物件在影像中的具體位置。邊界框的座標通常由左上角點的座標和右下角點的座標來表示。
  • 對於每一個物件,模型預測出它在影像中的位置(邊界框座標)以及它的類別。

展示瞭如何將圖像劃分為網格,使用邊界框和標籤來檢測和分類汽車、狗和人等物件。

使用AI技術進行實驗

第一步:拍攝多張影像

第二步:影像變形增量(變暗、變亮、放大、縮小、旋轉)

第三步:影像標記

第三步:訓練AI模型

第四步:訓練AI模型驗証、測試

206張實驗

在極暗、極亮、傾斜影像下的實驗結果

取像環境的規劃

  • 鐵鯈放置區域為乾淨較無干擾的背景
  • 配置合適的相機及光源
分類: 未分類 | 發佈留言

Python Numpy

Numpy Slice

數組的運算子:==,!=,~,&,|

數組軸對換 Axis Change

一元ufunc
abs, fabs計算絕對值 absolute value
sqrt平方根 square root
square平方
exp指數 expoent
log, log10, log2, log1p自然對數 natural logarithm 底數:e, 10, 2, (1+x)
sign各元素的正負號:1(正數), 0 (零), -1(負數)
ceil計算該值的最大整數
floor計算該值的最小整數
rint四捨五入
modf以獨立數值的方式回傳數組的小數和整數部份
isnan回傳哪些值不是Nan的Boolean數組
isfinite, isinf單傳哪些值是有限值的Boolean數組
cos, cosh, sin, sinh, tan,tanh三角函式
arccos, arccosh, arcsin, arcsinh, arctan, arctanh反三角函式
logical_not計算各元素not x的真值
add各元素相加
substract各元素相減
multiply各元素相乘
divide, floor_divide除法或丟去餘數
power求數值的N次方
maximum, fmax求數值中的最大值
minimum, fmin求數值中的最小值
mod除法的餘數
copysign將第二數組中的值符號Copy給第一數組
greater, greater_equal, less, less_equal, equal, no_equal, logical_and, logical_or, logical_xor>, >=, <, <=, =, !=, &, I, ^

Meshgrid

The purpose of meshgrid is to create a rectangular grid out of an array of x values and an array of y values.

np.where

統計方法

sum求總合
mean求平均值
std, var求標準差和方差
min, max最小值和最大值
argmin, argmax最小值的索引值和最大值的索引值
cumsum與前一欄的值累相加
cumprod與前一欄的值累相乘
分類: 未分類 | 發佈留言

Calcualte the distance of object in the image

Sensor Size:12.441 mm x 9.830 mm

Resolution: 2592 x 2048

Focal Length: 12mm

The physical size of each pixel: 

The projected width of the object:

Magnification:

Distance:

The projected width of the object:

Magnification:

Distance:

分類: 未分類 | 發佈留言

模擬不同高度量測物件尺寸

光學校正:

光學校正的步驟

  1. 校正片準備: 使用一個已知尺寸和形狀的校正片(如棋盤格、圓點陣列等)。校正片的幾何特徵應該清晰明顯,並且材質應避免反光。
  2. 拍攝校正片: 使用待校正的相機系統拍攝多張不同角度的校正片照片。確保校正片的整個區域都覆蓋在相機視野內,並從不同角度和距離進行拍攝,以獲取多樣化的校正圖像。
  3. 圖像處理: 將拍攝到的校正片照片導入圖像處理軟件(如OpenCV),自動或手動標記出校正片上的特徵點(如棋盤格的角點或圓點的中心)。
  4. 計算校正參數: 使用軟件進行內部和外部參數的校正。內部參數包括焦距、主點、畸變參數等,外部參數包括旋轉和平移矩陣。
  5. 應用校正參數: 使用計算出的校正參數來修正相機拍攝的所有圖像,以消除鏡頭的失真和其他光學偏差。

尺寸量測的步驟

  1. 修正圖像: 應用光學校正參數來校正實際拍攝的圖像。
  2. 標定參考物尺寸: 根據校正圖像中已知尺寸的物體或標記物,設定比例尺,這樣可以將圖像中的像素距離轉換為實際距離。
  3. 進行量測: 利用標定好的比例尺來量測圖像中物體的尺寸,計算長度、面積、角度等。
  4. 誤差檢查與修正: 檢查量測結果是否符合實際要求,必要時進行誤差修正。

關鍵元件:

  • 自動對焦相機
  • 光學校正片
  • 筆記本長:21公分;寬:15公分
NO規格相片
1UI-3884LEResolution:6.41 MPixOptical class:1/1.8″Pixel size:2.40 µm
26mm FL, Liquid Lens M12 LensFocal Length FL (mm): 6.0mm
3校正片7×7 12.5mm
4筆記本21 cm X 15 cm

拍攝校正片

相機內參矩陣[[2234.9151650412764, 0.0, 1613.33369580123],                    [0.0, 2245.021094475966, 1096.3297700427615],                    [0.0, 0.0, 1.0]]
畸變係數[[-0.27468132182099425, 0.19905562857571302, -0.002831944837372181, -0.01046052609357293, -0.1759195932009981]]
旋轉向量[[-0.01961335538368109], [-0.064561685464345], [-0.048599163141283534]]
平移向量[[-245.4462037894694], [-234.68707345975994], [589.3447597554461]]
旋轉矩陣[[0.9967368360429331, 0.04917594469298315, -0.06401098451575252], [-0.04791040290857523, 0.9986275099612804, 0.02115867769193121], [0.06496362804109107, -0.01802284139878348, 0.9977248639878897]]

情境一:

  1. 自動對焦:焦距數值 54
  2. 相機與量測的平面距離 73公分
  3. 拍攝光學校正片
  4. 計算校正參數:得到相機內參矩陣、旋轉矩陣、平移向量。
    • 相機內參矩陣描述了相機的內部參數,如焦距、光學中心和像素偏斜。它定義了如何將相機坐標系中的三維點映射到影像平面上的二維點。
    • 旋轉矩陣是一個3×3矩陣,用來描述相機坐標系與世界坐標系之間的旋轉關係。它將世界坐標系中的點旋轉到相機坐標系中。
    • 平移向量是一個3×1的向量,用來描述相機坐標系相對於世界坐標系的位移。它將世界坐標系中的點平移到相機坐標系中。
  5. 標記筆記本的長寬座標點:
    • 左上角座標 1327, 479
    • 左下角座標1243, 1035
    • 右上角座標 2091, 611
  6. 將影像座標轉換成實際座標:
    • 左上角世界座標:165.4430781105949, 78.0959286673178
    • 左下角世界座標:136.3602638761044, 225.29850326645803
    • 右上角世界座標:371.385150277364, 120.49460679088405
  7. 影像量測到筆記本的長、寬:
    • 長:210.26123036586773 mm
    • 寬:150.04801915524686 mm

情境一:

  1. 自動對焦:焦距數值 42
  2. 相機與量測的平面距離 90公分
  3. 拍攝光學校正片
  4. 計算校正參數:得到相機內參矩陣、旋轉矩陣、平移向量。
    • 相機內參矩陣描述了相機的內部參數,如焦距、光學中心和像素偏斜。它定義了如何將相機坐標系中的三維點映射到影像平面上的二維點。
    • 旋轉矩陣是一個3×3矩陣,用來描述相機坐標系與世界坐標系之間的旋轉關係。它將世界坐標系中的點旋轉到相機坐標系中。
    • 平移向量是一個3×1的向量,用來描述相機坐標系相對於世界坐標系的位移。它將世界坐標系中的點平移到相機坐標系中。
  5. 標記筆記本的長寬座標點:
    • 左上角座標 1060, 450
    • 左下角座標1042, 914
    • 右上角座標 1712, 473
  6. 將影像座標轉換成實際座標:
    • 左上角世界座標:95.74517669315097,116.92161043618675
    • 左下角世界座標:97.79422061504047, 265.3536817958457
    • 右上角世界座標:305.8426560794244, 109.68540108000529
  7. 影像量測到筆記本的長、寬:
    • 長:210.22205776348036 mm
    • 寬:148.4462137917728 mm

量測邏輯實作(A):

不同高度,不同的葉子堆疊個數(B):

A 所得到的葉面積 X B 依距對焦數值來決定葉子堆疊的倍率= C 得到預估的葉面積

假設: A 的數值為 100,B的數值為10 故預估的葉面積為100 X 10 = 1000

系統會提供一個實際調校功能,當使用者判斷實際面積為 800時,系統會根據800的數值去調校不同對焦數值的倍率。之後會跟據調校後的倍率來計算面積。

每一個拍攝的視野範圍有多個株植栽

目前系統只能以計算出來的總面積來等分有多少植栽

分類: 未分類 | 7 則留言