Journal of China University of Science and Technology Vol.59-2014.04 肌 肉 萎 縮 患 者 電 腦 輸 入 裝 置 Assisted Computer Entry Device for Muscular Atrophy Patient 蔡 樸 生 Pu-Sheng Tsai 中 華 科 技 大 學 電 子 系 副 教 授 Department of Electronic Engineering China University of Science and Technology 摘 要 本 論 文 將 針 對 肌 肉 萎 縮 症 或 漸 凍 症 等 肢 體 障 礙 患 者, 無 法 使 用 滑 鼠 及 鍵 盤 但 頭 部 可 正 常 擺 動 之 人 士, 提 供 一 種 使 用 電 腦 的 控 制 及 輸 入 介 面 透 過 電 腦 及 Webcam 設 備, 拍 攝 使 用 者 頭 部 範 圍 之 影 像, 並 依 據 使 用 者 頭 部 之 擺 動 方 向 及 距 離, 經 由 影 像 處 理 的 計 算 轉 換 為 對 滑 鼠 游 標 位 置 的 控 制 及 執 行 點 擊 滑 鼠 按 鍵 之 動 作 在 判 斷 殘 障 者 頭 部 擺 動 的 部 分, 須 先 定 義 出 特 徵 點 並 自 影 像 中 加 以 辨 識 而 每 個 人 的 頭 部 輪 廓 五 官 位 置 五 官 形 狀 髮 型 膚 色 疤 痕 等 等 因 素, 均 有 不 小 的 差 異 及 變 數, 若 要 定 義 出 一 規 則, 自 不 同 的 人 之 臉 部 影 像 中 辨 識 出 特 徵 點, 並 準 確 的 控 制 滑 鼠 游 標, 在 程 式 方 面 的 運 算 時 間 及 複 雜 度 將 大 幅 增 加 為 了 準 確 且 快 速 的 辨 識 出 特 徵 點, 本 論 文 使 用 直 徑 約 1 公 分 之 圓 型 貼 紙 作 為 識 別 標 籤, 黏 貼 於 使 用 者 額 頭 上 經 由 網 路 攝 影 機 (Webcam) 取 得 影 像 後, 辨 識 出 識 別 標 籤 的 位 置 並 移 動 滑 鼠 游 標 本 論 文 透 過 Window API, 依 據 滑 鼠 游 標 一 連 串 之 移 動 方 式, 判 斷 出 使 用 者 欲 點 擊 滑 鼠 按 鍵 之 意 圖 並 執 行 該 動 作, 提 供 肢 體 障 礙 患 者 一 種 新 的 輔 助 方 案, 藉 由 頭 部 的 擺 動 實 現 電 腦 操 作 之 功 能 關 鍵 字 : 網 路 攝 影 機, 肌 肉 萎 縮 症, 漸 凍 症, 視 窗 應 用 程 式 界 面 Abstract This essay is aimed at people who suffer from MD (muscular dystrophy) or ALS (amyotrophic lateral sclerosis). They can t use mice and keyboards, but they can move their heads. We can offer them a kind of interface controlled by computers. By the equipment of the computer and Webcam, we shoot the wiggle directions and distances of the users head, via image process, to calculate and transform the position controlled by the mouse cursor and do the action clicked by the mouse. To determine the head 29
肌 肉 萎 縮 患 者 電 腦 輸 入 裝 置 swings from the handicapped, we should define and recognize the traits from the image. The outline of the head, positions of the facial features, hair styles, skin tones, and scars and so on are different dramatically. If we want to define a rule from the features of different face image and accurately control the mouse cursor, the time and complex of the program will increase a lot. For recognizing the features accurately and quickly, we use a round stick (diameter 1 cm) as an identification label stuck on the forehead of the user. By the image from the Webcam, we can recognize the positions of the label and move the mouse cursor. In the essay, we define a set of rule according to a series of move ways from the mouse cursor to determine the user s intention and perform the action. By making the use of Windows API auto developing program system, we have offered the handicapped a new assistant scheme that can help them use the computer only by their swings of the heads. Keywords: Webcam, MD (Muscular Dystrophy), ALS(Amyotrophic Lateral Sclerosis), Windows API. 壹 前 言 肌 肉 萎 縮 症 (Muscular Dystrophy, MD) 以 及 肌 萎 縮 性 脊 髓 側 索 硬 化 症 (Amyotrophic lateral sclerosis, ALS) 俗 稱 為 漸 凍 人 症, 是 一 個 漸 進 和 致 命 的 神 經 退 化 性 疾 病 [1], 患 者 的 肌 肉 會 漸 進 性 退 化, 逐 漸 軟 弱 萎 縮, 四 肢 及 軀 幹 呈 現 無 力 狀 態 患 者 的 智 力 卻 完 全 正 常, 仍 保 留 發 病 前 的 記 憶 及 相 同 的 人 格 特 質 因 此, 以 禁 錮 的 靈 魂 來 形 容 這 群 折 翼 的 天 使 是 最 恰 當 不 過 了 透 過 電 腦 讓 這 群 天 使 有 發 揮 的 空 間, 讓 心 靈 能 夠 翱 翔 在 網 路 的 世 界, 能 夠 在 OFFICE 套 裝 軟 體 內 編 寫 文 章 抒 發 情 感, 在 小 畫 家 中 塗 鴉 將 內 心 世 界 隨 著 水 彩 流 露 呈 現 在 畫 布 上, 讓 他 們 的 靈 魂 重 新 面 對 這 個 五 彩 繽 紛 的 世 界 是 難 能 可 貴 的 事 實 上, 肌 肉 萎 縮 症 與 漸 凍 人 的 患 者 與 一 般 人 一 樣 都 可 以 使 用 電 腦, 但 肢 體 功 能 隨 著 病 程 發 展 逐 漸 退 化, 標 準 滑 鼠 的 使 用 會 愈 來 愈 感 到 困 難 針 對 滑 鼠 而 言, 在 市 面 就 有 各 種 不 同 的 控 制 方 式, 包 括 吹 控 唇 控 嘴 控 頭 控 聲 控 腦 控 眼 控 等 文 獻 [2] 的 滑 鼠 只 要 輕 輕 吸 氣, 就 能 切 換 滑 鼠 左 鍵 拖 曳 右 鍵 捲 軸 等 功 能 悠 遊 鼠 [3] 則 藉 由 手 指 輕 推 游 標 方 向 控 制 鈕, 就 能 切 換 游 標 移 動 方 向 ; 游 標 移 動 時, 控 制 推 動 幅 度, 就 能 控 制 游 標 移 動 速 度 另 外 一 種 雙 鍵 滑 鼠 [4] 是 將 一 般 滑 鼠 功 能 透 過 兩 個 外 接 按 鍵 來 操 控, 這 兩 個 外 接 按 鍵 可 以 放 在 身 體 任 何 有 動 作 的 部 位, 輕 壓 外 接 游 標 方 向 控 制 鈕, 就 能 切 換 游 標 移 動 方 向 眼 球 追 蹤 技 術 目 前 已 被 植 入 智 慧 型 手 機 中, 未 來 人 們 只 需 要 動 動 眼 睛, 就 可 以 讓 滑 鼠 在 螢 幕 上 滑 來 滑 去, 扎 扎 眼 睛 就 可 以 執 行 手 機 上 的 遊 戲 有 關 眼 球 追 蹤 技 30
Journal of China University of Science and Technology Vol.59-2014.04 術 可 概 分 為 接 觸 式 及 非 接 觸 式 兩 種 接 觸 式 如 搜 尋 線 圈 法 (Search Coil, SC)[5] 以 及 眼 電 圖 法 (Electro-Oculography, EOG) [6], 在 文 獻 [7] 中 顯 示, 眼 球 運 動 偏 轉 角 度 與 體 表 電 位 變 化 量 間 的 關 係 曲 線, 以 此 結 果 作 為 眼 動 滑 鼠 系 統 人 機 介 面 的 設 計 基 礎 非 接 觸 式 中 以 紅 外 線 影 像 系 統 最 為 成 熟 [8], 利 用 瞳 孔 不 會 反 射 光 的 特 性, 使 用 紅 外 線 攝 影 機 對 準 眼 球 拍 攝, 自 拍 攝 的 影 像 中 計 算 出 瞳 孔 的 中 心 點 而 非 紅 外 線 攝 影 機 則 是 以 拍 攝 取 得 之 影 像, 以 各 種 不 同 的 演 算 法 計 算 出 眼 球 或 瞳 孔 的 中 心 點 針 對 肢 體 殘 障 者, 開 發 出 能 利 用 眼 球 運 動 來 控 制 電 腦 滑 鼠 的 人 機 介 面, 稱 之 眼 控 滑 鼠 (Eye-Controlled Mouse), 透 過 此 系 統 可 幫 助 肢 體 傷 殘 患 者 達 到 溝 通 與 學 習 的 目 的, 享 受 資 訊 科 技 所 帶 來 的 樂 趣 文 獻 [9] 研 發 與 整 合 一 套 眼 控 與 頭 控 結 合 之 人 機 介 面 系 統, 可 計 算 出 眼 球 中 心 位 置, 記 錄 眼 球 移 動 軌 跡 並 可 計 算 出 頭 部 中 心 點 位 置, 與 螢 幕 座 標 相 對 應 即 可 透 過 頭 部 動 作 控 制 游 標, 並 可 操 控 各 式 應 用 程 式 文 獻 [10] 設 計 一 套 電 腦 科 技 輔 具 系 統, 為 身 心 障 礙 人 士 提 供 一 個 無 障 礙 的 電 腦 使 用 環 境, 一 方 面 利 用 頭 部 運 動 來 控 制 滑 鼠 游 標 的 移 動, 另 一 方 面 以 眨 眼 訊 號 來 控 制 滑 鼠 的 按 鍵 功 能, 讓 身 心 障 礙 者 能 夠 透 過 這 套 系 統 來 操 控 電 腦 貳 影 像 辨 識 輔 助 電 腦 輸 入 裝 置 一 系 統 架 構 說 明 透 過 電 腦 及 Webcam 設 備, 拍 攝 使 用 者 額 頭 範 圍 之 局 部 影 像, 並 依 影 像 中 事 先 黏 貼 於 額 頭 上 之 識 別 貼 紙 的 移 動 方 向 及 距 離, 經 由 影 像 處 理 轉 換 為 對 滑 鼠 游 標 位 置 的 控 制 及 執 行 點 擊 滑 鼠 按 鍵 之 動 作 此 應 用 主 要 針 對 肌 肉 萎 縮 症 或 漸 凍 人 等 之 肢 體 障 礙 患 者, 雙 手 肌 肉 完 全 萎 縮, 無 法 正 常 使 用 滑 鼠 及 鍵 盤, 但 頭 部 可 正 常 擺 動 之 人 士, 以 價 格 低 廉 且 容 易 取 得 之 硬 體 設 備, 搭 配 自 行 開 發 之 系 統 軟 體, 提 供 一 種 使 用 電 腦 的 輔 助 工 具 及 輸 入 介 面 本 系 統 由 4 個 部 分 所 組 成, 分 別 包 含 了 電 腦 Webcam 識 別 貼 紙 及 Windows API 驅 動 程 式 所 組 成, 參 考 圖 1 所 示 31
肌 肉 萎 縮 患 者 電 腦 輸 入 裝 置 圖 1 系 統 組 成 示 意 本 系 統 程 式 軟 體 使 用 Visual Basic 2008 Express 開 發, 程 式 透 過 Windows API 對 Webcam 進 行 控 制 以 擷 取 影 像, 並 在 對 影 像 進 行 計 算 後, 再 次 透 過 Windows API 控 制 滑 鼠 游 標 之 位 置 及 產 生 點 擊 滑 鼠 按 鍵 之 動 作, 在 本 系 統 透 過 Windows API 控 制 Webcam 及 滑 鼠, 所 呼 叫 的 Windows API 及 用 途 分 別 敘 述 如 下 : 1. 偵 測 是 否 有 連 接 Webcam 設 備 Private Declare Function capgetdriverdescription Lib "avicap32.dll" Alias "capgetdriverdescriptiona" (ByVal dwdriverindex As Integer, ByVal lpszname As String, ByVal cbname As Integer, ByVal lpszver As String, ByVal cbver As Integer) As Boolean 2. 建 立 捕 捉 影 像 之 控 制 Private Declare Function capcreatecapturewindow Lib "avicap32.dll" Alias "capcreatecapturewindowa" (ByVal lpszwindowname As String, ByVal dwstyle As Integer, ByVal x As Integer, ByVal y As Integer, ByVal nwidth As Integer, ByVal nheight As Integer, ByVal hwndparent As Integer, ByVal nid As Integer) As Integer 3. 建 立 與 Webcam 之 連 線 擷 取 Webcam 所 拍 攝 之 影 像 將 Webcam 擷 取 之 影 像 載 入 至 系 統 剪 貼 簿 中 Private Declare Function SendMessageAsLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Integer, ByVal wmsg As Integer, ByVal wparam As Integer, ByVal lparam As Integer) As Integer 4. 設 定 Webcam 解 析 度 Private Declare Function SendMessageAsObject Lib "user32" Alias "SendMessageA" 32
Journal of China University of Science and Technology Vol.59-2014.04 (ByVal hwnd As Integer, ByVal wmsg As Integer, ByVal wparam As Integer, <MarshalAs(UnmanagedType.AsAny)> ByVal lparam As Object) As Integer 5. 控 制 滑 鼠 游 標 位 置 Private Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Integer, ByVal y As Integer) As Integer 6. 產 生 點 擊 滑 鼠 按 鍵 之 動 作 Private Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwflags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cbuttons As Integer, ByVal dwextrainfo As Integer) 7. 產 生 鍵 盤 按 鍵 之 動 作 Private Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bvk As Byte, ByVal bscan As Byte, ByVal dwflags As Long, ByVal dwextrainfo As Long) 二 影 像 處 理 演 算 法 本 系 統 運 作 是 由 Webcam 拍 攝 使 用 者 頭 部 範 圍 之 影 像, 並 依 據 使 用 者 頭 部 之 擺 動 方 向 及 距 離 來 決 定 滑 鼠 游 標 位 置 及 執 行 點 擊 滑 鼠 按 鍵 之 動 作 倘 若 要 判 斷 使 用 者 頭 部 的 擺 動, 須 先 定 義 出 特 徵 點 並 自 影 像 中 加 以 辨 識, 而 每 個 人 的 頭 部 輪 廓 五 官 位 置 五 官 形 狀 髮 型 膚 色 疤 痕 等 等 因 素, 均 有 不 小 的 差 異 及 變 數, 若 要 提 出 一 套 影 像 辨 識 演 算 法, 自 不 同 人 之 臉 部 影 像 中 辨 識 出 特 徵 點, 並 準 確 的 控 制 滑 鼠 游 標, 程 式 的 複 雜 度 是 非 常 的 高 為 了 準 確 且 快 速 地 辨 識 出 特 徵 點, 本 論 文 使 用 直 徑 約 1 公 分 之 紅 色 圓 型 貼 紙 作 為 識 別 貼 紙, 將 其 黏 貼 於 使 用 者 額 頭 上 當 作 特 徵 點, 並 確 認 額 頭 部 位 位 於 Webcam 所 拍 攝 之 影 像 範 圍 中, 參 考 圖 2 所 示 圖 2 拍 攝 影 像 的 區 域 範 圍 33
肌 肉 萎 縮 患 者 電 腦 輸 入 裝 置 Webcam 拍 攝 到 影 像 後, 首 先 將 原 始 的 1280 960 影 像 中 擷 取 200 150 之 局 部 影 像, 該 局 部 影 像 為 位 置 固 定 且 包 含 額 頭 部 位 識 別 貼 紙 之 影 像, 此 動 作 用 意 為 忽 略 識 別 貼 紙 不 會 出 現 之 位 置, 以 節 省 程 式 計 算 時 間 其 次, 利 用 迴 圈 取 得 200 150 影 像 中 之 每 一 個 像 素 (Pixel) 的 RGB 值, 判 斷 該 像 素 是 否 屬 於 識 別 貼 紙 之 影 像 範 圍 判 斷 準 則 為 若 該 像 素 中 代 表 紅 色 的 R 值 分 量 在 門 檻 值 150 以 上 ( 最 大 為 255), 且 代 表 綠 色 的 G 值 分 量 與 代 表 藍 色 的 B 值 分 量 均 小 於 門 檻 值 100, 則 此 像 素 屬 於 識 別 貼 紙 之 範 圍 本 論 文 採 用 的 識 別 貼 紙 約 為 直 徑 1 公 分 之 紅 色 圓 形 貼 紙, 黏 貼 於 額 頭 上 由 於 貼 紙 與 皮 膚 色 差 明 顯, 且 經 過 擷 取 之 200 150 影 像 僅 包 含 額 頭 之 局 部 部 位, 不 會 出 現 其 他 背 景 影 像, 干 擾 圓 形 貼 紙 之 識 別 經 過 多 次 測 試 後, 得 出 判 斷 紅 色 圓 形 貼 紙 的 R G B 分 量 最 佳 門 檻 值 為 150 及 100, 以 此 條 件 下, 識 別 貼 紙 及 皮 膚 之 間 的 辨 識 率 為 最 高 由 Webcam 攝 影 機 所 得 到 的 識 別 貼 紙 之 像 素 集 合 如 下 : P x, y, i 1 n, (1) i i i 經 由 上 述 的 判 斷 準 則 得 到 識 別 貼 紙 範 圍 內 的 像 素 ( 共 計 n 點 ) 集 合 後, 接 下 來 開 始 計 算 識 別 貼 紙 之 中 心 點 座 標 (x c, y c ), 以 集 合 中 最 左 緣 與 最 右 緣 之 像 素 座 標 來 計 算 x c, 以 集 合 中 最 上 緣 與 最 下 緣 之 像 素 座 標 來 計 算 y c, 其 公 式 彙 整 如 下 : xmax xmin xmax MAX xi, xmin MIN xi, xc, i 1,2,3 n, 2 (2) ymax ymin ymax MAX yi, ymin MIN yi, yc, i 1,2,3 n, 2 (3) 由 (2) 與 (3) 式 計 算 出 識 別 貼 紙 的 中 心 點 座 標 (x c, y c ) 後, 由 於 此 點 是 位 於 200 150 影 像 範 圍 內, 我 們 要 將 它 轉 換 為 滑 鼠 游 標 於 PC 螢 幕 中 之 位 置 (x m, y m ), 並 呼 叫 Windows API 將 滑 鼠 游 標 移 動 至 該 位 置 本 論 文 使 用 之 螢 幕 解 析 度 為 1024 768, 換 算 之 公 式 如 下 : x m xc 1024 yc 768 int, ym int 200 150, (4) 除 了 移 動 滑 鼠 游 標 外, 另 一 個 動 作 是 點 擊 滑 鼠 按 鍵 本 系 統 定 義 出 一 特 定 之 操 作 模 式, 用 以 認 定 為 使 用 者 欲 點 擊 滑 鼠 按 鍵 此 動 作 為 先 讓 滑 鼠 游 標 停 留 一 小 段 時 間, 接 著 作 一 個 先 往 下 再 往 上 之 點 頭 動 作, 當 影 像 處 理 演 算 法 捕 捉 到 這 連 貫 之 動 作 後, 呼 叫 Windows API 產 生 點 擊 滑 鼠 按 鍵 之 動 作 首 先, 程 式 計 算 完 識 別 貼 紙 中 心 點 並 移 動 滑 鼠 游 標 位 置 後, 會 以 目 前 識 別 貼 紙 中 心 點 ( x c new, y cnew ) 與 前 一 次 取 得 之 識 別 貼 紙 中 心 點 ( x c old, y cold ) 做 一 個 比 較, 計 算 出 兩 次 識 別 貼 紙 中 心 34
Journal of China University of Science and Technology Vol.59-2014.04 點 間 移 動 距 離, 其 公 式 如 下 : 2 2 d x x y y (5) c new c old c new c old 若 移 動 距 離 大 於 等 於 抖 動 上 限 值, 則 判 定 為 使 用 者 移 動 滑 鼠 游 標 ; 若 移 動 距 離 小 於 抖 動 上 限 值 則 判 定 為 使 用 者 保 持 滑 鼠 游 標 停 留 不 動 抖 動 上 限 值 是 用 以 區 分 出 使 用 者 是 否 為 有 意 移 動 滑 鼠 游 標 或 是 因 非 刻 意 的 頭 部 抖 動 而 產 生 之 移 動, 本 論 文 設 定 之 抖 動 上 限 值 為 5 當 滑 鼠 游 標 停 留 不 動 時, 程 式 開 始 累 積 停 留 不 動 連 續 之 次 數, 若 未 達 5 次 就 發 生 移 動 滑 鼠 游 標 之 動 作, 則 清 空 累 積 次 數, 並 回 復 到 一 般 狀 態 不 作 動 作 若 停 留 不 動 累 積 達 5 次, 則 進 入 等 待 點 擊 滑 鼠 按 鍵 狀 態, 接 下 來 有 三 種 可 能 : (A) 若 接 下 來 的 動 作 是 停 留 不 動, 則 繼 續 保 持 等 待 點 擊 滑 鼠 狀 態 ;(B) 若 接 下 來 的 動 作 是 有 移 動, 則 開 始 紀 錄 連 續 5 次 的 動 作, 在 這 5 次 的 動 作 中 一 旦 出 現 往 左 或 往 右 的 動 作, 即 判 定 為 使 用 者 無 意 點 擊 滑 鼠 按 鍵, 此 時 清 空 累 積 次 數, 並 回 復 到 一 般 狀 態 (C) 若 這 5 次 的 動 作 中 僅 有 往 上 或 往 下 或 停 留 不 動, 且 包 含 一 次 的 先 往 下 再 接 著 往 上 的 動 作, 即 判 定 為 使 用 者 欲 點 擊 滑 鼠 按 鍵, 此 時 呼 叫 Windows API 產 生 點 擊 滑 鼠 按 鍵 之 動 作 程 式 每 一 次 擷 取 影 像 計 算 游 標 位 置 與 移 動 游 標 等 動 作, 所 花 費 時 間 會 因 電 腦 CPU 的 效 能 而 有 差 異, 而 上 述 停 留 不 動 連 續 之 次 數 達 5 次 會 進 入 等 待 按 鍵 狀 態, 以 及 等 待 按 鍵 狀 態 時 紀 錄 連 續 5 次 動 作, 其 中 的 次 數 決 定 了 停 留 所 需 的 時 間 與 點 頭 的 速 度, 此 部 分 需 視 電 腦 CPU 的 效 能 並 配 合 使 用 者 頭 部 動 作 的 速 度 做 調 整 程 式 執 行 後 將 自 動 偵 測 Webcam 設 備 建 立 與 Webcam 設 備 之 連 線 設 定 解 析 度, 接 著 開 始 拍 攝 影 像, 並 依 本 章 前 段 所 述 之 計 算 原 理, 計 算 與 移 動 滑 鼠 游 標 之 位 置, 在 每 次 計 算 出 滑 鼠 游 標 位 置 後, 程 式 依 據 滑 鼠 游 標 一 連 串 的 移 動 記 錄 判 斷 使 用 者 是 否 欲 點 擊 滑 鼠 按 鍵, 若 為 是 則 呼 叫 Windows API 產 生 點 擊 滑 鼠 按 鍵 之 動 作 程 式 執 行 之 流 程 如 下 圖 3 所 示 35
肌 肉 萎 縮 患 者 電 腦 輸 入 裝 置 圖 3 影 像 辨 識 輔 助 電 腦 輸 入 系 統 程 式 流 程 圖 參 系 統 應 用 暨 實 驗 結 果 為 了 驗 證 本 系 統 的 可 行 性, 在 此 將 提 出 本 系 統 可 應 用 之 方 向 及 範 圍, 並 舉 出 數 個 例 子 分 別 說 明 其 使 用 之 方 式, 其 中 包 括 了 針 對 本 系 統 架 構 開 發 出 之 電 子 書 閱 讀 程 式 使 用 瀏 覽 器 上 網 執 行 應 用 軟 體 與 小 遊 戲 等 一 閱 讀 電 子 書 依 據 影 像 辨 識 輔 助 電 腦 輸 入 系 統 之 功 能, 開 發 出 一 套 電 子 書 閱 讀 程 式, 提 供 肌 肉 萎 縮 患 者 閱 讀 書 籍 之 用 系 統 設 計 程 式 以 操 作 介 面 單 純, 按 鈕 特 別 加 大 為 原 則, 可 提 升 使 用 者 在 操 作 時 之 便 利 性 並 提 高 辨 識 度 操 作 介 面 分 為 版 本 資 訊 區 系 統 訊 息 及 書 籍 內 容 顯 示 區 書 籍 選 擇 區 頁 面 切 換 區 影 像 顯 示 區 等 五 個 36
Journal of China University of Science and Technology Vol.59-2014.04 區 塊 其 中 版 本 資 訊 區 顯 示 程 式 版 本 資 訊 系 統 訊 息 及 書 籍 內 容 顯 示 區 在 程 式 一 開 始 執 行 時 顯 示 程 式 偵 測 Webcam 設 備 連 結 Webcam 設 備 設 定 解 析 度 載 入 書 籍 資 料 等 動 作 之 進 度 及 狀 態, 待 上 述 動 作 均 順 利 完 成 後, 此 區 塊 顯 示 書 籍 內 容 書 籍 選 擇 區 提 供 使 用 者 更 換 書 籍 以 及 結 束 程 式 之 功 能, 更 換 書 籍 時 可 選 擇 上 一 本 或 下 一 本 書 籍 頁 面 切 換 區 提 供 使 用 者 切 換 頁 面 之 功 能, 可 選 擇 前 十 頁 上 一 頁 下 一 頁 後 十 頁 影 像 顯 示 區 顯 示 Webcam 拍 攝 之 影 像, 影 像 中 以 十 字 線 標 示 出 經 程 式 計 算 後 得 到 之 識 別 貼 紙 中 心 點 程 式 執 行 後 將 自 動 偵 測 Webcam 設 備 建 立 與 Webcam 設 備 之 連 線 設 定 解 析 度 載 入 書 籍 資 料, 接 著 開 始 拍 攝 影 像, 並 計 算 與 移 動 滑 鼠 游 標 之 位 置, 在 每 次 計 算 出 滑 鼠 游 標 位 置 後, 程 式 依 據 滑 鼠 游 標 一 連 串 的 移 動 記 錄 判 斷 使 用 者 是 否 欲 點 擊 滑 鼠 按 鍵, 若 為 是 則 呼 叫 Windows API 產 生 點 擊 滑 鼠 按 鍵 之 動 作 程 式, 更 換 書 籍 或 切 換 頁 面 程 式 執 行 之 流 程 如 下 : 1. 程 式 執 行 後, 呼 叫 Windows API capgetdriverdescriptiona, 偵 測 是 否 有 連 接 Webcam 設 備, 參 考 圖 4 所 示 2. 偵 測 到 有 連 接 Webcam 設 備, 呼 叫 Windows API SendMessageA 配 合 建 立 連 線 之 參 數 WM_CAP_DRIVER_CONNECT, 與 Webcam 建 立 連 線, 參 考 圖 5 所 示 圖 4 偵 測 Webcam 設 備 圖 5 建 立 Webcam 連 線 3. 建 立 連 線 並 取 得 控 制 權 後, 呼 叫 Windows API SendMessageA 配 合 設 定 解 析 度 之 參 數 WM_CAP_SET_VIDEOFORMAT, 將 解 析 度 設 定 為 1280 960, 參 考 圖 6 所 示 4. 自 存 放 書 籍 之 路 徑 中 ( 程 式 執 行 檔 相 同 路 徑 下 名 為 Books 之 資 料 夾 ) 載 入 書 籍 資 料, 並 顯 示 出 第 一 本 書 的 第 一 頁 書 籍 資 料 於 書 籍 內 容 顯 示 區 中, 參 考 圖 7 所 示 37
肌 肉 萎 縮 患 者 電 腦 輸 入 裝 置 圖 6 設 定 Webcam 解 析 度 圖 7 載 入 並 顯 示 書 籍 資 料 5. 呼 叫 Windows API SendMessageA 配 合 參 數 WM_CAP_GRAB_FRAME 及 WM_CAP_EDIT_COPY 取 得 Webcam 所 拍 攝 之 影 像 後, 擷 取 200 150 之 局 部 影 像 顯 示 於 畫 面 右 下, 並 在 計 算 出 識 別 貼 紙 中 心 點 及 滑 鼠 游 標 位 置 後, 呼 叫 Windows API SetCursorPos 移 動 滑 鼠 游 標 位 置, 參 考 圖 8 所 示 6. 使 用 者 擺 動 頭 部 控 制 滑 鼠 游 標, 移 動 至 下 一 本 書 之 位 置, 該 按 鍵 自 動 反 白, 參 考 圖 9 所 示 圖 8 計 算 並 移 動 滑 鼠 游 標 位 置 圖 9 控 制 滑 鼠 準 備 換 下 一 本 書 7. 使 用 者 控 制 滑 鼠 游 標 於 下 一 本 書 之 上 停 留 短 暫 時 間, 進 入 等 待 按 鍵 狀 態, 參 考 圖 10 所 示 8. 使 用 者 控 制 滑 鼠 游 標 作 一 往 下 再 往 上 之 動 作, 系 統 判 定 為 使 用 者 欲 按 下 滑 鼠 按 鍵, 呼 叫 Windows API mouse_event 產 生 點 擊 滑 鼠 按 鍵 之 動 作, 並 更 換 至 下 一 本 書, 參 考 圖 11 所 示 38
Journal of China University of Science and Technology Vol.59-2014.04 圖 10 進 入 等 待 按 鍵 狀 態 圖 11 更 換 至 下 一 本 書 9. 使 用 者 擺 動 頭 部 控 制 滑 鼠 游 標, 移 動 至 下 一 頁 之 位 置, 該 按 鍵 自 動 反 白, 參 考 圖 12 所 示 10. 使 用 者 控 制 滑 鼠 游 標 於 下 一 頁 之 上 停 留 短 暫 時 間, 進 入 等 待 按 鍵 狀 態, 參 考 圖 13 所 示 圖 12 控 制 滑 鼠 游 標 準 備 換 下 一 頁 圖 13 進 入 等 待 按 鍵 狀 態 11. 使 用 者 控 制 滑 鼠 游 標 作 一 往 下 再 往 上 之 動 作, 系 統 判 定 為 使 用 者 欲 按 下 滑 鼠 按 鍵, 呼 叫 Windows API mouse_event 產 生 點 擊 滑 鼠 按 鍵 之 動 作, 並 翻 至 下 一 頁, 參 考 圖 14 所 示 12. 重 覆 步 驟 9 10 11, 再 次 切 換 至 下 一 頁, 參 考 圖 15 所 示 39
肌 肉 萎 縮 患 者 電 腦 輸 入 裝 置 圖 14 更 換 至 下 一 頁 圖 15 再 次 更 換 至 下 一 頁 在 電 子 書 的 部 份, 書 籍 資 料 必 須 事 先 經 過 編 排, 在 程 式 執 行 檔 相 同 路 徑 下, 建 立 一 名 為 Books 之 資 料 夾 用 以 存 放 書 籍 資 料 檔 案 在 此 資 料 夾 中 每 一 本 書 籍 資 料 均 以 各 自 之 資 料 夾 存 放, 其 中 每 一 頁 書 籍 各 為 一 個 檔 案, 檔 案 名 稱 為 一 四 位 數 數 字, 自 0000 開 始 依 序 編 排 至 9999, 程 式 在 選 擇 及 切 換 書 籍 時 顯 示 各 書 籍 資 料 夾 中 檔 案 名 稱 為 0000 之 檔 案 內 容, 切 換 頁 面 時 則 依 檔 案 名 稱 之 序 號 順 序 移 動 至 上 一 頁 或 下 一 頁 目 前 書 籍 資 料 之 檔 案 有 兩 種 模 式 : 第 一 種 模 式 是 以 純 文 字 檔 型 態 存 放, 自 原 文 中 擷 取 適 當 長 度 之 內 容, 並 經 過 編 排 後 依 序 儲 存 為 副 檔 名 為.txt 之 純 文 字 檔 案, 程 式 讀 取 該 檔 案 內 容 後, 以 固 定 大 小 之 文 字 置 中 顯 示 於 書 籍 內 容 顯 示 區 另 一 種 模 式 是 以 圖 片 檔 型 態 存 放, 將 原 文 每 一 頁 面 儲 存 為 副 檔 名 為.jpg 之 影 像 檔, 程 式 載 入 該 影 像 檔 後, 將 其 自 動 縮 放 並 顯 示 於 書 籍 內 容 顯 示 區 本 論 文 中 所 提 出 之 範 例 及 實 作 部 份 均 為 使 用 純 文 字 檔 模 式 進 行 執 行 程 式 前 先 將 識 別 貼 紙 黏 貼 於 使 用 者 額 頭 上, 並 確 認 額 頭 部 位 位 於 Webcam 所 擷 取 之 影 像 範 圍 中 程 式 執 行 後 會 自 動 偵 測 並 設 定 Webcam, 接 著 載 入 書 籍 資 料, 待 書 籍 內 容 顯 示 區 中 顯 示 第 一 本 書 籍 的 第 一 頁 內 容, 以 及 影 像 顯 示 區 出 現 拍 攝 到 的 影 像 後, 使 用 者 即 可 開 始 擺 動 頭 部 控 制 滑 鼠 游 標 要 切 換 頁 面 時, 將 滑 鼠 游 標 移 動 至 頁 面 切 換 區 中 的 前 十 頁 上 一 頁 下 一 頁 後 十 頁 其 中 一 個 按 鍵 上, 滑 鼠 游 標 停 留 短 暫 時 間 後 接 著 作 一 先 下 再 上 的 點 頭 動 作, 即 可 點 選 該 按 鍵 並 切 換 頁 面 要 更 換 書 籍 時, 將 滑 鼠 游 標 移 動 至 書 籍 選 擇 區 中 的 上 一 本 或 下 一 本 按 鍵 上, 滑 鼠 游 標 停 留 短 暫 時 間 後 接 著 作 一 先 下 再 上 的 點 頭 動 作, 即 可 點 選 該 按 鍵 並 更 換 書 籍 二 使 用 Internet Explorer 瀏 覽 器 上 網 本 影 像 辨 識 輔 助 電 腦 輸 入 系 統 可 用 以 操 作 Internet Explorer 瀏 覽 器 進 行 網 頁 瀏 覽, 為 了 讓 使 用 者 能 更 容 易 的 操 作, 可 將 Internet Explorer 瀏 覽 器 設 定 項 目 中 40
Journal of China University of Science and Technology Vol.59-2014.04 的 字 型 設 為 最 大 網 頁 中 之 超 連 結 與 選 項 之 文 字 變 大 後, 使 用 者 可 以 較 容 易 及 準 確 的 點 選 欲 執 行 的 項 目 瀏 覽 器 上 網 功 能 執 行 步 驟 如 下 : 1. 程 式 執 行 後, 呼 叫 Windows API capgetdriverdescriptiona, 偵 測 是 否 有 連 接 Webcam 設 備 2. 偵 測 到 有 連 接 Webcam 設 備 後, 呼 叫 Windows API SendMessageA 配 合 建 立 連 線 之 參 數 WM_CAP_DRIVER_CONNECT, 與 Webcam 建 立 連 線 3. 建 立 連 線 並 取 得 控 制 權 後, 呼 叫 Windows API SendMessageA 配 合 設 定 解 析 度 之 參 數 WM_CAP_SET_VIDEOFORMAT, 將 解 析 度 設 定 為 1280*960 4. 呼 叫 Windows API SendMessageA 配 合 參 數 WM_CAP_GRAB_FRAME 及 WM_CAP_EDIT_COPY 取 得 Webcam 所 拍 攝 之 影 像 後, 擷 取 200*150 之 局 部 影 像, 在 該 影 像 中 辨 識 出 識 別 貼 紙 5. 以 識 別 貼 紙 之 點 集 合 計 算 出 識 別 貼 紙 中 心 點 6. 計 算 出 滑 鼠 游 標 位 置, 並 呼 叫 Windows API SetCursorPos 移 動 滑 鼠 游 標 至 該 位 置 7. 使 用 者 擺 動 頭 部 控 制 滑 鼠 游 標, 將 滑 鼠 游 標 移 動 至 欲 點 選 之 位 置 8. 使 用 者 控 制 滑 鼠 游 標 於 欲 點 選 的 超 連 結 之 上 停 留 短 暫 時 間, 進 入 等 待 按 鍵 狀 態 9. 使 用 者 控 制 滑 鼠 游 標 作 一 往 下 再 往 上 之 動 作, 系 統 判 定 為 使 用 者 欲 按 下 滑 鼠 按 鍵, 呼 叫 Windows API mouse_event 產 生 點 擊 滑 鼠 按 鍵 之 動 作, 並 更 換 至 下 一 頁 面, 參 考 圖 16 所 示 10. 以 相 同 方 式 控 制 滑 鼠 游 標 並 點 擊 滑 鼠 按 鍵, 再 次 更 換 至 另 一 頁 面, 參 考 圖 17 所 示 圖 16 更 換 至 下 一 頁 面 圖 17 更 換 至 另 一 頁 面 41
肌 肉 萎 縮 患 者 電 腦 輸 入 裝 置 三 應 用 程 式 之 操 作 本 系 統 可 用 以 執 行 操 作 方 式 簡 單 的 應 用 程 式, 如 圖 18 所 示 為 一 款 影 片 撥 放 軟 體, 使 用 者 在 影 片 選 單 中 以 滑 鼠 左 鍵 點 選 欲 撥 放 之 影 片, 再 移 動 滑 鼠 游 標 至 左 方 控 制 面 板 的 撥 放 鍵, 並 點 擊 左 鍵, 即 可 開 始 觀 看 影 片 影 片 撥 放 的 過 程 中 可 以 相 同 之 控 制 方 式 執 行 撥 放 暫 停 及 停 止 等 等 操 作 圖 18 影 片 撥 放 軟 體 四 電 腦 小 遊 戲 之 操 作 本 影 像 辨 識 輔 助 電 腦 輸 入 系 統 可 用 以 進 行 簡 單 的 小 遊 戲, 網 路 上 有 許 多 免 費 且 操 作 簡 單 的 小 遊 戲, 如 圖 19 及 20 所 示 為 一 款 賽 車 遊 戲 [11], 此 遊 戲 僅 需 以 鍵 盤 之 左 鍵 與 右 鍵 控 制 賽 車 移 動, 按 下 左 鍵 不 放 時 賽 車 往 左 移 動, 按 下 右 鍵 不 放 時 賽 車 往 右 移 動, 左 右 鍵 放 開 時 賽 車 往 前 直 走 為 配 合 此 遊 戲 操 作 方 式, 本 系 統 程 式 部 份 略 作 修 改, 在 每 次 拍 攝 影 像 並 計 算 出 識 別 貼 紙 中 心 點 後, 以 識 別 貼 紙 中 心 點 之 x 座 標 為 判 斷 條 件, 若 x 介 於 0 至 70 之 間 則 呼 叫 Windows API 產 生 按 下 鍵 盤 左 鍵 之 動 作, 若 x 介 於 131 至 200 之 間 則 呼 叫 Windows API 產 生 按 下 鍵 盤 右 鍵 之 動 作, 若 x 介 於 71 至 130 之 間 則 呼 叫 Windows API 產 生 放 開 鍵 盤 左 鍵 及 放 開 鍵 盤 右 鍵 之 動 作, 若 拍 攝 到 的 影 像 中 辨 識 不 出 識 別 貼 紙 則 呼 叫 Windows API 產 生 放 開 鍵 盤 左 鍵 及 放 開 鍵 盤 右 鍵 之 動 作 經 上 述 修 改 後, 即 可 以 頭 部 的 偏 左 偏 右 與 置 中 控 制 賽 車 往 左 移 動 往 右 移 動 或 往 前 直 走 42
Journal of China University of Science and Technology Vol.59-2014.04 圖 19 賽 車 遊 戲 執 行 畫 面 1 圖 20 賽 車 遊 戲 執 行 畫 面 2 肆 結 論 與 未 來 研 究 方 向 本 研 究 之 目 的 乃 提 供 肢 體 障 礙 患 者 一 種 新 的 輔 助 方 案, 針 對 不 便 於 控 制 電 腦 滑 鼠 及 鍵 盤 之 人 士, 提 供 一 種 輸 入 及 控 制 之 介 面 以 頭 部 動 作 取 代 滑 鼠 操 作 電 腦 進 行 閱 讀 聽 音 樂 觀 看 影 片 上 網 玩 遊 戲 等 等 活 動, 達 到 溝 通 及 娛 樂 之 功 能 系 統 運 作 原 理 是 使 用 直 徑 約 1 公 分 之 紅 色 圓 型 貼 紙 作 為 識 別 貼 紙, 將 其 黏 貼 於 使 用 者 額 頭 上 當 作 特 徵 點, 由 Webcam 拍 攝 使 用 者 頭 部 範 圍 之 影 像, 並 依 據 使 用 者 頭 部 擺 動 之 方 向 及 距 離, 經 由 程 式 計 算 後 轉 換 為 對 滑 鼠 游 標 位 置 的 控 制 及 執 行 點 擊 滑 鼠 按 鍵 之 動 作 此 系 統 目 前 可 依 據 使 用 者 頭 部 的 移 動 控 制 滑 鼠 游 標 之 位 置, 以 及 依 據 滑 鼠 游 標 特 定 之 移 動 模 式 產 生 點 擊 滑 鼠 左 鍵 之 動 作 而 實 際 操 作 時 仍 有 幾 點 限 制 與 要 求 :1. 使 用 本 系 統 控 制 滑 鼠 游 標 時 靈 敏 度 及 精 細 度 較 傳 統 滑 鼠 為 略 低, 為 了 讓 使 用 者 能 更 容 易 的 操 作, 應 用 程 式 中 的 按 鍵 與 選 項 等 等 物 件 需 要 盡 可 能 加 大, 操 作 介 面 也 需 要 盡 可 能 簡 單 化 2. 系 統 程 式 在 判 斷 使 用 者 點 擊 滑 鼠 左 鍵 時, 使 用 者 需 做 出 短 暫 時 間 停 留 不 動, 接 著 做 出 先 下 後 上 的 點 頭 動 作, 停 留 時 間 之 長 短 與 點 頭 動 作 之 速 度 需 視 電 腦 CPU 的 效 能 而 定, 而 本 系 統 針 對 之 使 用 者 在 控 制 頭 部 擺 動 時 可 能 不 如 一 般 人 靈 活, 故 此 部 分 需 視 實 際 使 用 之 電 腦 CPU 的 效 能, 並 配 合 每 位 使 用 者 頭 部 動 作 的 速 度 調 整 程 式 中 的 參 數 3. 目 前 透 過 本 系 統 能 作 出 控 制 滑 鼠 游 標 位 置 與 產 生 點 擊 滑 鼠 左 鍵 之 動 作 若 應 用 程 式 中 需 使 用 到 一 般 滑 鼠 其 他 的 操 作 如 點 擊 滑 鼠 右 鍵 點 擊 滑 鼠 中 鍵 按 著 滑 鼠 按 鍵 拖 曳 快 速 連 續 點 擊 滑 鼠 按 鍵 轉 動 滑 鼠 滾 輪 等 等 動 作, 則 目 前 尚 不 適 用 本 系 統 如 何 定 義 出 各 種 不 同 的 動 作 模 式, 能 夠 在 兼 具 可 明 確 並 快 速 判 斷 出 使 用 者 的 意 圖, 以 及 不 增 加 操 作 複 雜 度 的 情 況 下, 做 出 上 述 各 種 動 作, 讓 本 系 統 能 夠 更 加 完 善 此 外, 除 了 用 以 43
肌 肉 萎 縮 患 者 電 腦 輸 入 裝 置 取 代 傳 統 滑 鼠 外, 若 可 在 此 架 構 下 延 伸 出 文 字 輸 入 之 功 能, 將 對 輔 助 肢 體 障 礙 人 士 使 用 電 腦 有 更 大 之 助 益, 開 發 出 本 系 統 適 用 之 文 字 輸 入 介 面, 是 未 來 可 繼 續 研 究 的 目 標 參 考 文 獻 [1] 中 華 民 國 肌 萎 縮 症 病 友 協 會 認 識 疾 病,2013/06/06, 網 址 : http://www.mda.org.tw/modules/tinyd0/index.php?id=10 [2] 財 團 法 人 - 第 一 社 會 福 利 基 金 會 輔 具 介 紹 吹 吸 口 控 滑 鼠,2013/07/07, 網 址 : http://www.diyi.org.tw/diyiat/atpage.aspx?id=26&&groupid=3 [3] 財 團 法 人 - 第 一 社 會 福 利 基 金 會 輔 具 介 紹 悠 遊 鼠,2013/07/07, 網 址 : http://www.diyi.org.tw/diyiat/atpage.aspx?id=27&&groupid=3 [4] 財 團 法 人 - 第 一 社 會 福 利 基 金 會 輔 具 介 紹 雙 鍵 滑 鼠,2013/07/07, 網 址 : http://www.diyi.org.tw/diyiat/atpage.aspx?id=28&&groupid=3 [5] R. V. Kenyon, A Soft Contact Lens Search Coil for Measuring eye Movements, Vision Res. Vol. 25, no. 11, pp. 1629-1633, 1985. [6] K. S. Park and K. T. Lee, Eye-controlled human computer interface using the line-of-sight and the intentional blink, Computer Engineering, vol. 30, no.3, pp. 463-473, 1996. [7] 劉 文 義," 以 眼 球 電 訊 號 控 制 之 殘 障 者 人 機 介 面 設 計 " 國 立 台 灣 大 學 電 機 工 程 研 究 所 碩 士 論 文,1996 [8] Z. Zhu and Q. Ji, Eye gaze tracking under natural head movements, IEEE Computer Society Conference on Computer Vision and Pattern Recognition, vol. 1, pp. 918-925, June, 2005. [9] 張 凱 傑," 眼 控 與 頭 控 之 人 機 介 面 系 統 研 發 與 整 合 " 逢 甲 大 學 自 動 控 制 工 程 學 系 碩 士 論 文,2001 [10] 高 為 澎," 身 心 障 礙 者 人 機 介 面 - 紅 外 線 頭 控 / 眨 眼 滑 鼠 系 統 之 研 製 " 國 立 臺 灣 大 學 電 機 工 程 學 研 究 所 碩 士 論 文,1999 [11] 超 級 F1 大 獎 賽 2,2013/07/07, 網 址 : http://i-gameworld.com/games/gf786.php 44