本研究分成硬體和軟體兩個部份(圖 3-1)。硬體部分是由視訊鏡頭搭配電子天秤和冷 陰極管組成一個藥物影像的擷取平臺。軟體部分則是由 NI Vision Builder、NI
LabVIEW、Microsoft Office Access 2000 組成。首先會先由藥物影像擷取平臺擷取影像,
然後利用 Vision Builder 這套軟體去測量藥物的長度、重量、顏色這三個數據,搭配電 子天秤測量藥物的重量。將這四個數據藉由 LabVIEW 以人機介面的方式呈現給使用 者,再利用這四個數據去 Microsoft Office Access 資料庫那搜尋出數據相同的藥物出來 顯示給使用者觀看。
圖 3- 1 系統整體架構示意圖
3-1 硬體架構
有鑑於謝家興和林建弘的藥物辨識系統因為沒有固定的平臺而導致每次取像的時 候都要考慮很多因素,例如:距離、焦距、燈光…等等。所以本研究有架構一個藥物影像 的擷取平臺(圖 3-2)。硬體主要由三個部分構成:1.網路攝影機(webcam)、2.電子天秤、3.
冷陰極燈管。
圖 3- 2 藥物影像的擷取平臺 (1)網路攝影機(webcam) :
本研究採用兩百萬畫數的網路攝影機(webcam), 解析度是 352*288 pixel。網路攝影機 (webcam)的優點在於價錢便宜而且容易取得,採用手動對焦的方式去調整藥物圖片的清
冷陰極燈管(Cold Cathode Fluorescent Lamp 簡稱 CCFL)是一種發散的光源。
由於在處理影像的時候,光線的干擾常常是影像處理的問題,所以本研究在藥物影像擷 取平臺上架設獨立光源,這樣可以降低周圍燈光對影像的影響[19][20](附錄A)。
註:網路攝影機距離藥物高度為9公分(CM)。
3-2 軟體架構
本研究主要使用NI Vision builder AI、NI LabVIEW、Microsoft Office Access這三套
(1)網路攝影機(webcam)
(3)冷陰極燈管
(2)電子天秤
軟體,軟體版本如下:
1. NI Vision builder AI 3.0 2. Microsoft Office Access 2000 3. NI LabVIEW 8.5
3-3 NI Vision builder AI
NI Vision builder主要在測量藥物的長度、形狀、顏色。首先影像進來會先做影像處 理然後定義影像的座標,再將影像的pixels值轉換為毫米(mm),接下來偵測影像中是否 有圓形,然後找出物體測量它的長度,最後測量藥物的顏色,主要流程圖如下(圖3-3)。
圖 3- 3 Vision builder 流程圖
3-3-1 藥物影像
本研究在藥物影像的左邊放上尺標,用來定義長度。由於在不同的燈光下顏色也會 有些許的差異,所以在藥物影像的兩側還放上黑色與白色兩種顏色用來定義在這個光線 下的黑色和白色(圖3-4)。
圖 3- 4 藥物影像
3-3-2 影像處理
由於擷取出來的藥物影像是彩色的,RGB色彩空間中,影像色彩很容易受到光源強 弱的影響而變化,所以直接取RGB色彩空間來做運算會有誤差。故一般為防止此現象發 生,會先對其影像轉換至對光線變化較不敏感的色彩空間[21]。影像處理流程圖如下(圖 3-5)。首先先將彩色影像轉成HSV空間取得一個灰階影像,接著對此灰階影像做二值化,
再利用Median濾波把雜點濾除掉。實際影像如(圖3-6)。
圖 3- 5 影像處理流程圖
藥物影像(RGB) HSV轉換
二值化(Threshold) 濾波(Median) 圖 3- 6 實際影像處理
3-3-3 定義座標
本研究測量藥物長度的方式,是利用影像的pixels值轉換成豪米(mm)。所以在每張 藥物影像上都有一個尺標用來定義座標。假設A到B這段的pixels值是10豪米(mm),那不 管藥物影像是如何放置,其pixels值都不會改變,長度也不會因為藥物放置的位置而改 變(圖3-7)。
圖 3- 7 藥物影像尺標圖
3-3-4 偵測圓形
A B
有偵測到圓形 沒偵測到圓形 圖 3- 8 偵測圓形結果圖
3-3-5 測量長度
由於上述有把藥物影像粗略分為圓形和不規則,所以測量長度也有兩種方式。
圓形:
在圓心的位置開座標,測量邊(edge)到邊的距離(圖3-9)。
在圓心開座標 測量邊到邊的距離
圖 3- 9 測量長度(圓形)
不規則:
由於不規則的藥物沒有圓心,所以要先找尋出藥物的位置,然後搜尋藥物的重心在重心 位置開座標,測量重心兩端邊到邊的距離,主要流程如(圖3-10),實際影像如(圖3-11)。
圖 3- 10 測量長度(不規則)流程圖
HSV轉換 找物體
在重心開座標 測量長度
圖 3- 11 測量長度(不規則)實際影像
3-3-6 測量藥物顏色
最後則是測量藥物的顏色,首先要把處理過後的影像轉回來,然後找尋剛剛圓心或 是重心的位置去測量藥物的顏色,這裡是用RGB的平均值表示(圖3-12)。
圖 3- 12 測量藥物顏色
3-4 Microsoft Office Access
藥物辨識系統都需要有自己的資料庫,可以依照輸入的參數或是關鍵字去資料庫內 搜尋條件相同的資料。本研究利用Microsoft Office Access建構一個藥物的資料庫(圖 3-13),它的優點就是速度快而且可以跟LabVIEW做連結,另外它還可以單筆資料的方
資料來源源自於行政院衛生署和臺北醫學大學藥學系聯合出版的「2004藥物實體外觀辨 識手冊」。
圖 3- 13 Access 資料庫(1)
圖 3- 14 Access 資料庫(2)
3-5 NI LabVIEW
本研究的LabVIEW程式主要分成兩個部份,第一個部份由Vision Builder轉換成 LabVIEW的程式碼,用來測量長度、形狀、顏色等等數據。第二部份是由LabSQL ADO functions組成訪問資料庫程式,用來連結LabVIEW和Access資料庫。
3-5-1 Vision Builder轉LabVIEW Code
Vision Builder有一個功能就是把程式轉換成LabVIEW的Code,步驟是先點選 Tools,選擇Migrate Inspection to LabVIEW(圖3-15)。
圖 3- 15 Migrate Inspection to LabVIEW 轉換出來的LabVIEW Code如下(圖3-16):
圖 3- 16 Vision Builder 轉 LabVIEW Code : IMAQ Create,使影像產生一個臨時的記憶位置。
: Vision Builder產生的模組,內部包含影像處理、定義座標、偵測圓形、測 量長度、測量顏色等等程式的設定狀況。
: Vision Builder產生的模組,將影像路徑(Image Src)轉成影像輸出(Image Out)。
: Vision Builder產生的模組,內部包含影像處理、定義座標、偵測圓形、測量長度、
測量顏色等等程式。
: Step Results,處理case的結果。
: Inspect Transition Manager,將目前的狀態(Current State)轉換到下一個狀態(Next State)。
: Image,提供IMAQ的影像輸出。
: inspection status,檢查目前的狀態,如果有error就輸出訊號Fial。
版本是LabSQL Release 1.1a,LabSQL支援Windows作業系統中任何基於OBDC的資料 庫,包括Acess,SQL Server,Orcale,Pervasive,Sybase等。LabSQL是利用Microsoft ADO以及 SQL語言來完成資料庫訪問,將複雜的底層ADO及SQL操作封裝成一系列的LabSQL VIs。利用LabSQL幾乎可以訪問任何類型地資料庫,執行各種查詢,對記錄進行各種操 作。系統需求如下 :
1.LabVIEW 6.0 或更高版本, 在Windows上執行。
2.要具有鎖須要連結資料庫的ODBC driver (如: Access, SQL Server, Oracle, Pervasive, 等) 。
要讓LabVIEW成功的訪問資料庫,首先要先設定DSN (Data Source Name),才能讓系統 知道資料庫所在的位置以及資料庫相關的屬性。再來就是利用LabSQL模組組成訪問資 料庫程式,讓LabVIEW和Access做連結。
3-5-2-a DSN設定 步驟一 :
控制臺→效能及維護→系統管理工具→點選”資料來源(ODBC)”(圖3-17)。
圖 3- 17 DSN 設定(1)
步驟二:
點選”系統資料來源名稱”,選擇"Microsoft Access Driver"(圖3-18)(圖3-19)。
圖 3- 18 DSN 設定(2)
圖 3- 19 DSN 設定(3)
步驟三:
在"資料來源名稱"中填入"myDB", 然後按"選取"→選擇”藥物資料庫.mdb”所在路徑,如 此即完成DSN之建立。(圖3-20)(圖3-21)。
圖 3- 20 DSN 設定(4)
圖 3- 21 DSN 設定(5)
3-5-2-b 訪問資料庫程式
完成DSN設定後,利用LabSQL ADO functions撰寫一個訪問資料庫的程式,並使用 SQL語法控制此程式(圖3-22)。
圖 3- 22 訪問資料庫程式 : ADO Connection Create,建立ADO連接元件。
: ADO Connection Open,控制DSN設定開啟ADO物件。
: SQL Execute,使用SQL語法控制ADO元件訪問資料庫。
: ADO Connection Close,關閉ADO元件並且輸出error訊號。
: Read BMP File,讀取BMP圖形檔,建立繪圖程式設計所需的影像資訊。
: Draw Flattened Pixmap,繪製一個1bit、4bit、8bit或24bit的pixmap。
: new picture,產生一個新的影像。
載入影像到圖片顯示,LabVIEW目前支援三種常用的影像格式:BMP(bitmap)、JPEG(Joint Photographic Experts Group)、PNG(Portable Network Graphics)(圖3-23)[23]。
圖 3- 23 載入影像到圖片顯示
3-5-2-c SQL語法
SQL 全名是結構化查詢語言(Structured Query Language),是用於資料庫中的標準 數據查詢語言。在完成訪問資料庫的程式後,須利用SQL語法去控制此程式。以下將有 使用到的SQL語法列出[24]:
SELECT "欄位名" :指定資料庫欄位的位置," "內填中文字元,' '內則是填英文或數字字 元。
FROM "表格名" : 指定資料庫表格的位置。
WHERE "條件" : 設定條件。
{[AND|OR] "條件"}+ : { }+代表{ }之內的情況會發生一或多次。在這裡的意思就是 AND加簡單條件及OR加簡單條件的情況可以發生一或多次。另外,我們可以用( )來代 表條件的先後次序。
BETWEEN '值一' AND '值二' : 這將選出欄位值包含在值一及值二之間的每一筆資料。
LIKE '% %' : 模糊搜尋,搜尋所有名稱內含有% %內部字元的資訊。
範例 : 在藥物資料表(表3-1)中如果使用下列SQL語法就會將(表3-2)顯示出來。
表 3- 1 藥物資料表
SELECT * //*表示搜尋全部的欄位元//
FROM 藥物 WHERE 長度
BETWEEN 10 AND 12 AND
重量 BETWEEN 119 AND 121 AND
狀態=0; //這裡狀態0表示此藥物形狀為圓型//
顯示結果:
表 3- 2 SQL 搜尋顯示結果
3-5-3 LabVIEW主程式
在完成上述的程式以後,將Vision Builder轉成LabVIEW的程式和訪問資料庫的程式 整合起來(圖3-24),將量測出來的數據送到訪問資料庫的程式,去Access資料庫搜尋數 據相同的資料回饋給使用者。
圖 3- 24 主程式
: 使用SQL語法控制ADO(ActiveX Data Object)物件去連結LabVIEW和 Access資料庫的程式。
: RGB to Color,把紅、藍、綠三種顏色的平均值轉成彩色。
: Parameters,開啟檔案。
3-5-4 前置面板
前置面板如(圖3-25)。使用者設定好參數和輸入重量後,按下藥物辨識的按鈕,程 式會自動執行搜尋出資料庫內相同的資料並且把圖片和顏色顯示出來。
圖 3- 25 前置面板
(1) 選擇形狀按鈕 : 選擇藥物的形狀,這裡可以選擇圓形、不規則兩種形狀。
(2) 藥物辨識按鈕 : 設定好參數後按下此紐可以開始辨識藥物。
(3) 開啟檔案 : 按右上角 選擇想要開啟的藥物影像。
(4) 長度 : 顯示出藥物長度,單位是毫米(mm)取值到小數點下兩位。
(5) 資料庫來源 : 顯示DSN設定的狀態。
(6) 重量 : 輸入電子天秤量測出來的重量。
(7) 選擇圖片按鈕 : 當資料庫找出兩筆以上的藥物影像資料時,可按此紐選擇圖片。
(8) 資料庫圖片捷徑 : 顯示資料庫圖片的存放位置。
(9) 資料庫詳細資料 : 顯示資料庫內搜尋到藥物的詳細資訊。
(10) 藥物圖片 : 藥物影像擷取平臺擷取出來的藥物影像。
(11) 資料庫圖片 : 顯示資料庫內搜尋到藥物的影像。
(12) 藥物顏色 : 顯示藥物的顏色。
(13) SQL語法 : 顯示控制訪問資料庫程式的SQL語法。