王琳,雷長海,楊勇驥,王曄
1. 解放軍第85醫院 眼科,上海 200052;2. 第二軍醫大學 基礎部生物物理學教研室,上海 200433;3. 華東師范大學 數據科學與工程學院,上海 200062
光學顯微鏡是利用光學原理,把人眼所不能分辨的微小物體放大成像,以供人們提取微細結構信息的光學儀器,被廣泛應用于工農業生產及科學研究,在生物學和醫學工作中也經常使用。隨著醫學手術的精細化發展,顯微鏡在各類手術中得到越來越廣泛的應用,尤其適用于微細血管和神經的縫合、眼科各類手術等需要借助于顯微放大進行的精細手術或檢查[1]。然而由于手術顯微鏡設備限制,大部分只提供一路助手鏡供助手觀摩顯微鏡下視野,不能供多人同時觀看,因此也無法為多人提供演示示教,影響了此類精密手術技術的學習和推廣效率。
采用分光模式架設多個顯微目鏡可以供多名用戶同時觀察相同的顯微視野,德國徠卡公司的Leica Multiviews系統就提供了類似產品,可供最多20名用戶同時使用,觀察同一標本,每個觀察點具有相同的清晰細節和顏色。然而此類系統價格昂貴,且設備硬件連接方式和人員使用方式決定了系統需要比較大型的場地空間,不適合手術顯微鏡的使用場景。
通過在顯微鏡觀察筒和鏡身上加裝電子攝像系統,是目前顯微示教的另一類主要模式,多個用戶可以通過大屏幕的方式共同觀察電子攝像的顯微視野,然而這類大屏系統也涉及到場地限制和經費問題,因此最新的顯微示教系統大都采用了多個智能終端無線接入的方法[1]。考慮到高清圖像傳輸所需要的高帶寬,大部分系統采用了Wi-Fi的無線接入方式[2]。比如徠卡顯微系統發布最新無線教學顯微相機,配備有無線信號發射裝置的全新Leica ICC 50 W寬場顯微攝像頭及EZ 4 W體視顯微鏡,使用一體化高清攝像頭系統共享、攝取和保存圖像,已在生命科學研究中得到應用。這兩款顯微鏡系統配合專用APP后都能直接將高清圖像傳輸至學生的移動設備,其自帶的Wi-Fi功能可供5臺移動設備同時接入,共享實時圖像。然而目前已有的此類顯微示教系統的缺點主要有:① 多為專用型儀器服務,價格不菲,移動性不強且不能適用于多種顯微鏡;② 在示教使用時只能觀察顯微鏡下圖像,不能同時觀察顯微鏡操作者(或手術操作者)的視頻圖像;③ 只能做單向的視頻觀察,無法實現老師和學生雙向交流,無法實現師生在線標注、在線討論等需求。
在總結了現有系統優缺點的基礎上,本文研究和開發一種低成本、小型的適用于各類顯微鏡的無線視頻示教裝置,用于實現多人同時多屏觀看顯微鏡視野和顯微鏡操作者視頻,并提供師生同時在線標注和在線討論的功能。
系統硬件主要包含3個部分:① 控制主機部分,一臺迷你尺寸的控制主機,集成可充電電池,集成無線網卡,集成一個內置魚眼廣角攝像頭(用于攝錄顯微鏡操作者視頻);② 電子目鏡部分,一個USB高清攝像頭插入控制主機的USB接口,多個尺寸的套管用于配合攝像頭插入不同型號的顯微鏡;③ 客戶端部分,包括一臺教師主機用于管理控制(可推送教師機桌面到控制主機,供學生同屏觀看),多臺學生終端同時接入訪問。
系統軟件主要包含4個模塊:① 教師管理端模塊,以HTML5的Web頁面形式提供迷你主機的實時管理功能,多用戶實時交流管理以及教學資源管理功能;② 多用戶實時在線交流模塊,可共同收看流媒體直播,以共享電子白板和彈幕的形式提供給多個用戶和教師一同交流;③ 輕量級WebServer,作為教師管理和多用戶交流的中間件模塊,負責后端應用服務與Web前端的通信服務;④ 應用服務端模塊,負責提供系統應用服務,包括視頻服務、文件服務和交互服務。系統架構,見圖1。
系統需要提供給多個用戶采用不同智能終端同時接入訪問,因此必須考慮系統的跨平臺特性和整體性能。經過綜合評估,我們確定采用如下的軟件架構。
(1)教師管理端模塊和多用戶交流模塊,基于HTML5前端實現。HTML5是HTML最新的修訂版本[3],2014年10月由萬維網聯盟(W3C)完成標準制定。它能夠減少網頁瀏覽器對于插件的需求,并且提供更多能有效加強網絡應用的標準集。支持HTML5的瀏覽器包括Firefox(火狐瀏覽器)、IE9及其更高版本、Chrome(谷歌瀏覽器)、Safari、Opera等;還有國內的360瀏覽器、搜狗瀏覽器、QQ瀏覽器、獵豹瀏覽器等,移動端(手機或Pad)瀏覽器同樣具備支持HTML5的能力。因此選用HTML5進行前端的開發有利于我們實現系統的跨平臺特性。在HTML5頁面上系統以HTML5 Canvas[4]實時繪制的方式提供視頻顯示和公共白板功能,通過定義Canvas(畫布)的 MouseDown、MouseMove和 MouseUp以及 TouchStart、TouchMove和TouchEnd事件處理函數,這樣就可以使用鼠標或者觸摸屏在Canvas容器上直接繪圖。在瀏覽器訪問HTML5的Javascript腳本中使用WebSocket[5]可與后端服務和其他正在訪問該頁面的瀏覽器直接通信。

圖1 系統架構
(2)輕量級WebServer,基于Nginx實現。迷你控制主機的計算能力有限,因此我們采用輕量級的WebServer——Nginx來作為HTML5的服務端,Nginx還添加了rtmp模塊用于解析視頻[6-7],在HTML5前端我們就可以使用開源的FlowPlayer作為視頻的播放器和直播的接收器。
(3)應用服務端模塊,基于Node.js實現。應用服務端我們采用Node.js[8]搭建,Node.js是一個基于Chrome V8引擎的JavaScript運行時平臺[9],用于方便地搭建響應速度快、易于擴展的網絡應用服務。Node.js使用事件驅動和非阻塞I/O模型而得以輕量和高效,非常適合在分布式設備上運行數據密集型的實時應用。我們使用基于Node.js的Socket.IO庫實現WebSocket服務端[10],主要負責三個部分的功能:① 實現高效的視頻服務端,采用WebSocket將獲取到的三路ffmpeg[11]視頻(包括顯微鏡視頻、操作者視頻以及教師機桌面)流轉碼,推送給Web前端,以Canvas實時繪制的方式顯示;② 實現文件上傳和管理服務端,Web頁面上采用AJAX的異步方式傳輸文件[12],不影響Web頁面上視頻的正常顯示,后端采用Node.js架設文件服務器;③ 實現交互服務端,在HTML5前端的Canvas上繪圖只能顯示在本地的瀏覽器上,要在多個瀏覽器上共同標注和繪圖就需要有服務器接收所有Canvas的繪圖指令,并轉發到所有客戶端上,繪圖服務器同樣采用Node.js實現,用類似的方式該服務器還實現了多個瀏覽器發送彈幕的功能。
按照前述系統架構,我們實現了該無線視頻示教裝置,以迷你控制主機為核心。系統實現的硬件連接,見圖2。

圖2 系統硬件連接示意圖
迷你尺寸控制主機的主板部分使用Element 14的樹莓派3代實現[13-14],內置一個1.2 GHz 64位四核ARMv8 CPU和802.11bgn無線網卡,以32G TF卡作為存儲,有4個USB2.0接口以及1個以太網接口,只有一張信用卡大小面積,體積是一個煙盒大小。控制主機中集成一個5 V/2 A的可充電移動電源為主機供電,同時集成樹莓派專用800萬像素攝像頭模塊,用于攝錄顯微鏡操作者的高清操作視頻。控制主機使用USB接口連接專用的500萬像素顯微鏡電子目鏡作為另一路攝像頭,采用多種尺寸的套管可以插入多種顯微鏡目鏡攝錄高清顯微視野的視頻。控制主機同時以無線網卡硬件結合hostapd軟件模塊[15]提供AP服務,實現802.11bgn接入和WPA-PSK認證,以dnsmasq軟件模塊[16]實現客戶端地址自動分配,多臺智能終端(筆記本電腦、手機或PAD設備,其一作為管理端,其余作為顯示和互動終端)可同時Wi-Fi接入控制主機,在多個終端打開瀏覽器訪問控制主機以HTML5的形式同時顯示顯微鏡動態圖像(視頻)和操作者操作視頻。
控制主機采用Raspbian操作系統,視頻采集單元以ffmpeg軟件采集兩路視頻并推流到視頻分發單元;視頻分發單元以Node.js架設迷你視頻服務器接收視頻推流,以Web Socket方式分發給客戶端;互動控制單元采用輕量級的Web服務器Nginx,以HTML5的形式負責接受指令拍攝、存儲動態視頻和靜態畫面,存儲在控制主機的TF卡內,同時服務多個終端使用彈幕和共享白板方式進行交流溝通,控制主機中的后臺應用服務采用Node.js實現。
本文研制了一套用于顯微鏡的無線視頻示教裝置,文中詳細介紹了系統的組成、系統架構、軟件設計和結構功能。研究創新點主要有以下三點:① 系統采用了基于樹莓派和高清USB攝像頭的硬件,集成了無線熱點和可移動電池供電,為系統提供了低成本和可移動的特性;② 在樹莓派Raspbian系統中以Nginx提供Web服務,基于Node.js和Canvas實現了實時HTML5視頻傳輸方案,系統視頻傳輸的時延在0.5 s左右;③ 基于WebSocket實現了多用戶在同一界面中共享白板共同標注和實時彈幕的功能,為系統提供了實時的交互特性。
與現有的顯微鏡示教系統相比,該系統最大的優勢在于小型化、低成本、高性能、可無線靈活部署和強大的交互功能。實際系統使用的展示,見圖3。

圖3 系統使用展示
在后續的研究中將探討系統實現音視頻的一體化直播功能,在系統的功能擴展中考慮在控制主機上增加一個帶麥克風的USB攝像頭,以rtmp[17](供PC端訪問)和hls[18-19](供移動端訪問)結合的方式提供一路教師的音視頻直播信號,豐富課堂展示效果。此外將研究在系統中以硬件方式提高無線AP性能,提高視頻數據傳輸速度,同時提高整體系統的無線承載能力以供更多用戶的同時Wi-Fi接入使用。