Wednesday, February 28, 2007

PC-Vision Based System for Robust Face Tracking in "Smart Airbag"

PC-Vision Based System for Robust Face Tracking in "Smart Airbag"
2005 ASEAN Virtual Instrumentation Applications Contest Submission

Y.K. Liaw, School of Engineering, Monash University Malaysia
Alex See, School of Engineering, Monash University Malaysia

Industry: Automotive, University/Education

LabVIEW 7.1
Vision Development Module 7.1
LabVIEW NI-USB Webcam Driver
Vision Assistant 7.1

The Challenge:
Most airbags consider a single standard for the occupant’s size and the nature of crash. The airbags deployment in this case is not considered as a “smart airbag” system. Airbags are extremely dangerous due to its explosion force and have caused fatality leading to death of occupants in vehicles if deployed incorrectly. This is even more troubling if the occupants are little kids or infant. Analysis of the vehicle’s occupant position or posture is a key in designing a “smart airbag” system. “Smart airbag” should be able to distinguish a small person and person not in a safe spatial position for airbag deployment. One of the main difficulties encountered by the decision logic systems used in airbag deployment deals with the critical assumption about the occupant size and position in the car at the time of a crash. With this challenging problem, steps have been taken to make airbag deployment safer by adding adaptive deployment decision capabilities.

The Solution:
One of the methods of determining these deployment decisions is by using sensors in the passenger seat to estimate passenger’s size and deploy an airbag at a force appropriate to protect the passenger. If something is shoved under the seat or if the passenger is in the wrong position, the sensor can misread the occupant and potentially set off a deadly airbag deployment. One of the solutions is to use a vision occupant-sensing spatial position system. The vision system uses a tiny stereo camera system mounted in the overhead console in the vehicle’s compartment. The camera is posited to face inwards to track the passengers’ activity. The stereo video mode allows data to be triangulated to pinpoint the position of the occupant. If the occupant ends up in a zone that would prove deadly if an airbag deploys, the system will have to make a decision to prevent that deployment. A prototype LabVIEW vision based system has been developed for robust face tracking and spatial 3-D position estimation.

As a first step towards the solution mentioned above, a computer vision color tracking algorithm is developed by using LabVIEW and applied towards tracking human faces. The developed algorithm must be fast and efficient for tracking in real time without consuming a major share of computational resources. The face tracking algorithm is based on mean shift algorithm as a basis and modified as Continuously Adaptive Mean Shift (CAMSHIFT) algorithm and applied with the selected kernel. The flow of operation of developed algorithm is presented as well in the following part and completed with the results tested under different conditions.

This paper mainly describes a program developed in LabVIEW for human face tracking purpose utilizing a computer. The aim was to facilitate and have the ability to segment, track, and estimate the 3D spatial position of a human in front of a webcam. Furthermore, the developed robust tracker must be able to track a given face in the presence of noise, other face occlusion, half-face occlusion, and the movement of hand. Moreover, for tracker program, during the period of tracking, it should not utilize too much of computer memory available or other computer resources so that the algorithm can also be implemented for slow computer specification and inexpensive consumer cameras.

In order to develop such an algorithm, attention has been focused on robust statistics and probability distributions. Mean shift algorithm is one of the most efficient algorithm operates on probability distributions. It is a robust non-parametric technique for climbing density gradients to find the mode/ peak of the probability distributions. [1]

Mean shift was first applied to the problem of mode seeking by Cheng. [2] Besides that, kernel based object tracking including adaptive scale and background- weighted histogram extension was described by Comanuciu. [3] Camshift is primarily intended to perform head and face tracking in a perceptual user interface was performed by Bradski. [4] Mean shift has also been implemented by coupling two of this algorithm together to track migrating cells. [5]

The idea of using robust statistics is because it tends to ignore outliers in the data, such as the points far away from the region of interest (ROI). Therefore, the developed algorithm recompenses for noise and “distractors” in the vision data. Robust statistics are collaborated with mean shift algorithm in order to find the mode represents the Centroid of the face that is being tracked. Details of tracking operation is discussed below.

Software Architecture
Tracking algorithm was fully programmed by using LabVIEW. It consisted of two main parts, namely :
(1) creation of probability distribution image, and
(2) adaptive tracking

Figure 1: Camshift is a new developed method modified from mean shift algorithm which climbs the density gradients to find the mode of probability distribution. The mode of a color distribution within image plane is considered in this case. The modified version is necessary to deal with dynamically changing color probability distributions derived from video frame sequences.

Figure 1 depicts the detail flow of Camshift operation implemented in the program. A user needs to position his/ her head on the center of an onscreen box to extract the flesh sample. Color planes of an acquired image are converted at the beginning from RGB planes to HSL planes.

HSL stands for HUE, SATURATION, and LUMINANCE color space that corresponds to projecting standard RGB color space. HSL separates out HUE from SATURATION and from brightness. Thus, the problem of luminance variation can be solved in this case since the LUMINANCE plane has been separated out.

The program utilized the HUE plane and bins into 1D histogram. The histogram is quantized into bins, which reduces the computational and space complexity and allows similar color values to be clustered together. The histogram is saved for future use when the sampling is complete. The result of histogram is used as a model or lookup table to transform each acquired image into probability distribution image. (Figure 2) The histogram may consist of unwanted region (background pixels), the 2D probability distribution image will be influenced by their frequency in the histogram back- projection. In order to assign higher weighting to pixels nearer to the region center, a weighted histogram may be used to compute the target histogram. Tracking is performed by Camshift on this probability of flesh image.

Probability image is nothing but a grayscale image which the gray value gives the probability of the pixel representing skin.

Mean shift algorithm is performed within the ROI to find the Centroid position and move the center of ROI to that point and research Centroid until it converges. This process could be only one or more iterations. Zeroth moment is computed as one parameter in calculating the size of new ROI region.

Equation (1)

Whereby is the Zeroth moment, is the probability pixel value at position , x and y range over the ROI search window, s is the new window width, and h is window length. All these parameters are reported after mean shift and new size of ROI search window is set and overlaid to indicate the detected face region. The iteration is repeated so that the ROI tracks on the moving face. The whole process is known as CAMSHIFT as it continuously adapts its window size to deal with dynamically changing color distribution and at the same time mean shift algorithm is iteratively running within the ROI search window. The search window is able to track with the ROI covers the whole face region a smaller face/ smaller ROI (far away from webcam) or bigger face/ bigger ROI (nearer to webcam).

Implementation and Result Analysis

Figure 2: Probability Distribution Image is created based on the sampled user fleshy tone pixels. This process is known as histogram Back- Projection. Histogram Back- Projection is a primitive operation that associates the pixel values in the image with the value of the corresponding histogram bin. Since the background does not have any flesh HUE value, all the pixels in this region have been turned to black, except for the skin region (face & hand).

An onscreen box of 30X30 pixels is initially overlaid on image plane. A user is required to put the face on the box and waits for a count down finishes. After the time has elapsed, flesh sample is taken and Camshift starts to perform tracking. The ROI search window is continuously adapting its window size, based on Equation 1, by calculating the Zeroth moment, area, and 3D position until it covers the whole face region. The center of ROI window is located at the Centroid found in the mean shift algorithm.

ROI search window keeps on tracking the face by climbing the density gradient of the probability distribution in any direction. Unlike the Mean Shift algorithm, which is designed for static distribution (distribution is not updated unless the target experiences significant changes in shape, size or color), Camshift is designed for dynamically changing distributions. These occur when objects in video sequences are being tracked and the object moves so that the size and location of the probability distribution changes in time. Thus, the Camshift algorithm adjusts the search window size in the course of its operation.

Camshift tracker can handle and avoid of off-tracking when another face appears on the image plane. This can be explained the powerful of using robust statistics that ignore outliers in the vision data. Another case is when the face near to an unwanted fleshy-liked object. Due to the behavior of webcam, exposure will be automatically changed with the movement of any object. This may be causing the background fleshy tone object partially appears as noisy distribution. Weight has played a vital role in this case whereby it assigns no or lower weight to the pixels far away from the center of ROI. Hence, the ROI search window is not moving towards other object (out tracking) or covering any unnecessary objects.

Tracking a face with the presence of passing hand occlusion. Camshift tends to be robust against transient occlusion because the search window will tend to first absorb the occlusion and then stick with the dominant distribution mode with the occlusion passes.

Camshift is also able to keep track on the face even the face only partially appears on the screen.

The developed prototype algorithm functions as a prototype as part of the program used in safety airbag deployment system. Camshift is a simple, computationally efficient face and colored object tracker. It has been seen that it compacts with any kind of possible conditions occur while driving the vehicle by robust tracking of occupant. This algorithm can still be improved by implementing an adaptive color model in real time. Since the current program relies on fixed model/ histogram, it may be still affected by significant changing in luminance. In order to alleviate this problem, at each time frame, a new set of pixels is sampled from the tracked region and can be used to update the weighted histogram. The algorithm was coded utilizing LabVIEW, and the prototyping has been very efficient and rapid.

Not all the samples can be correctly used in adaptation. An obvious problem with adapting a color model during tracking is the lack of ground-truth. Any color- based tracker can lose the object it is tracking due, for example, to occlusion or lighting varying. If such errors go undetected the color model will adapt to image regions which do not correspond to the object. Observed log-likelihood measurement can be used to overcome this problem to detect erroneous frames. Color data from these frames are not used to adapt the object’s color model. This is known as selective adaptation, which can be further investigated. This developed prototype system is considered a low cost system, which has potential for utilizing this in the automotive environment for safe deployment of airbag in a vehicle.

[1] K. Fukunaga, D. Hostetler (1975), “The Estimation of the Gradient of a Density Function, with Applications in Pattern Recognition”, IEEE Transactions on Information Theory, Jan 1975, vol. 21, No. 1.
[2] Yizong Cheng, (1995), “Mean Shift, Mode Seeking, and Clustering”, IEEE Transactions on Pattern Analysis and Machine Intelligence, August 1995, vol. 17, Issue: 8, pg. 790-799
[3] Comaniciu, D., Ramesh, V., Meer, P., “Kernel-Based Object Tracking”, IEEE Transactions on Pattern Analysis and Machine Intelligence, May 2003, vol. 25, Issue: 5, pg. 564-577
[4] Bradski, G.R. (1998), “Real Time Face and Object Tracking as a Component of a Perceptual user Interface”, In Applications of Computer Vision, 1998. WACV’98. Proceedings., Fourth IEEE Workshop, 19-21 October 1998, vols. 1, pg. 214-219
[5] O. Debeir, P. Van Ham, R. Kiss, C. Decaestecker (2005), “Tracking of Migrating Cells Under Phase-Contrast Video Microscopy with Combined Mean-shift Processes” IEEE Transactions on Medical Imaging, June 2005, vol. 24, No. 6.

For more information, contact:
Alex See, Lecturer
Y.K. Liaw, Student
Monash University Malaysia
School of Engineering
No. 2 Jalan Kolej, Bandar Sunway
46150, Selangor, MALAYSIA
Tel: +60 3 5636 0600
Fax: +60 3 5632 9314

Monday, February 12, 2007


Friday, February 09, 2007


上網時間: 2007年02月08日


在DisplayPort之前,數位多媒體介面標準經歷了多次紛爭,逐漸形成了外部連接(Box-to-Box)與內部連接(Chip-to-Chip)兩塊相互獨立的陣地。在外部連接方面,PC已有DVI; 而CE方面也有方興未艾的HDMI;至於內部連接則是約定俗成的標準─LVDS。既然DisplayPort力求一統,那它究竟有哪些先進之處呢?本文將 分別從鏈路層、實體層、內外部接頭三方面詳細闡述DisplayPort的技術特點,最後結合PC和CE應用探討其優勢。


DisplayPort由三部份組成,分別為主鏈路、輔助通道和熱插拔訊號檢測(HPD)。其中,主鏈路是一條單向、高頻寬、低延遲的傳輸 鏈路,用於傳輸無壓縮的時脈同步視訊、音訊串流;輔助通道是一條雙向通道,用於傳輸狀態資訊、控制命令等;熱插拔訊號則實現了終端設備(Sink Device)中斷請求(如圖1所示)。

1. 主鏈路的構成

主鏈路實際由4條線路(Lane)組成,每一條線路都是一對差分線。根據實際需要,DisplayPort可以分別使用1、2或4條線路。 每一條線路都支援兩種傳輸速率:2.7Gbps或1.62Gbps,4條線路則可以實現最高10.8Gbps的傳輸速率,在相同的線路數下 DisplayPort比DVI快2.2倍。

在這種高頻寬的支援下,DisplayPort可以滿足各種多媒體、特別是視訊應用的需求。任何色深(Color Depth)、解析度和畫面刷新頻率(Rate)都可以自由轉換。例如,使用2.7Gbps的傳輸速率,DisplayPort可以支援最高視訊解析度如下:

1. 12-bpc YCbCr 4:4:4(36bpp),1,920×1,080p@96Hz

2. 12-bpc YCbCr 4:2:2(24bpp),1,920×1,080p@120Hz

3. 10-bpc RGB(30bpp),2,560×1,536@60Hz

值得注意的是,每一條線路都是數據線,這意味著DisplayPort沒有單獨的時脈通道。實際上,DisplayPort在主鏈路上採用 的是ANXI 8B/10B編碼,時脈訊號是從數據串流中擷取出來的。這個有別於DVI和HDMI的特點,大幅降低了DisplayPort產品EMI設計難度。同時, 由於DisplayPort傳輸線路採用交流耦合,發送端和接收端有不同的共模電壓,這使晶片可以擁有更小的特徵尺寸,也方便了DisplayPort與 其它新興高速數位介面(如PCI Express)的連接、耦合。

2. 輔助通道

輔助通道是由一對交流耦合差分線組成的雙向、半雙工通道。其中,源端設備為主、終端設備為從。所有通訊都必須由源端設備發起,終端設備也可 以透過熱插拔訊號來提出通訊請求。輔助通道在15公尺的傳輸距離上提供1Mbps的傳輸速率,同時對傳輸延遲做了嚴格要求:通訊必須在500us內完成。


3. 鏈路層




鏈路層主要實現兩項功能:時脈同步數據串流傳輸服務和鏈路與設備服務。其中,時脈同步數據串流傳輸服務保證了視訊、音訊數據串流透過一定的 規則從主鏈路傳輸到終端,以使終端設備能夠正確地恢復和識別原始數據和時脈訊號;鏈路與設備服務透過讀取終端設備DPCP和EDID,識別其工作能力和狀 態,分別在鏈路級和設備級配置和維護傳輸。DisplayPort的鏈路層的主要特點是微封包架構(Micro-Packet Architecture)傳輸。

4. 微封包架構傳輸

在DisplayPort的主鏈路上,所有的視訊、音訊數據串流都被封包化為微封包,這些微封包稱為傳輸單元。每一個傳輸單元都由64個字 符組成。如果被傳輸的數據串流小於64個字符,DisplayPort會自動將它補足為64個。使用微封包傳輸使數據完整性得到了大幅提升,這種微封包與 傳統的類比、數位多媒體介面有很大不同。以HDMI為代表的傳統介面均採用類似交換式傳輸方式,即視訊以即時方式傳輸。相較之下,雖然封包式傳輸較難保證 傳輸流量與即時性,但只要有適當的頻寬、流量管理配套,它能比交換式傳輸提供更多功能和更廣的上升空間。

由於採用微封包式傳輸,DisplayPort大幅提升了傳輸數據完整性,可達1E-12,遠超過了HDMI標準的1E-9。同時,微封 包架構相當彈性,可在同一條線路內傳輸多組視訊,反之交換式傳輸就限定一條鏈路只能傳輸一組視訊。此外,這種架構也能輕易在既有傳輸中追加新的協議內容, 特別是內容防拷協議。

微封包架構讓DisplayPort跳脫單純的視訊、音訊傳輸角色,進而提升成可匯聚、整合各種音視訊應用的傳輸方式。這也是 DisplayPort大幅超越DVI、HDMI之處,即使DVI、HDMI在後續版本中進一步提升傳輸速率,但在無法改變其基礎本質(TMDS傳輸)的 情況下,依然難以在架構上超越DisplayPort。

5. 實體層



6. 內外部接頭

DisplayPort內部接頭和外部接頭具有不同的形態。內部接頭僅寬26.3mm、高1.1mm,尺寸比LVDS小30%,但傳輸率卻 是LVDS的3.8倍,因為LVDS的每組對線僅有0.945Gbps的傳輸率。此外,內接DisplayPort允許的線路長度達610mm,這在設計 大尺寸DTV時非常有用。

而外部接頭有兩種,一種是標準型,類似USB、HDMI等接頭,但多了一個可讓接頭反扣於連接處的牢固設計,用於防止意外衝撞致使接頭掉 落,使用者只要用拇指壓按接頭即可解除反扣。另一種則是低矮型(Low Profile),這是針對連接面積有限的應用制訂的。這種應用以超薄筆記型電腦最為明顯,同時也適用於其他方面,例如,同一部桌上型電腦要進行多組視訊 輸出,在I/O面板面積有限的情況下也適合使用低矮型的DisplayPort接頭。

無論是標準型接頭還是低矮型接頭,其最長外接距離均為15公尺,而且接頭的相關規格都已經為日後的速率升級做好準備。VESA預計在 2008、2009年提出2X的新速率標準,屆時Main Link將達21.6Gbps,AUX CH也可能相對提升,然而這些提升都不需要再對接頭、接線進行變更。




1. 顯示器應用



2. 筆記型電腦應用

傳統筆記型電腦的LCD面板是透過LVDS排線與顯卡連接。使用DisplayPort可以用更少的纜線來實現同樣解析度的傳輸。例如:傳 輸XGA解析度需要的線數由16條減為2條,傳輸UXGA解析度需要的線數由20條減為8條。這些節省出來的空間將可望擴展筆記型電腦的應用。


3. 視訊源端應用

如前文所述,DisplayPort採用了交流耦合,其訊號電氣特性與顯示晶片組常用的PCI Express非常相似。使用DisplayPort將大幅簡化視訊源端(如顯示卡)的設計。


從上述技術特性和應用來看,無論從傳輸速率、安全性或可擴展性來看,DisplayPort都遠超過了現有的數位多媒體介面,其特性符合PC和消費 性電子領域對數位多媒體介面的需求。毫無疑問,所有這些特點都將使DisplayPort在不遠的將來一統數位多媒體介面標準。



Analogix Semiconductor


Monday, February 05, 2007


【撰文/比爾‧蓋茲(Bill Gates);翻譯/鍾樹人】


特羅爾的機器人小組已經開始應用微軟的數種先進技術了。這些技術由微軟首席研究暨策略長蒙迪帶領的小組所研發,其中一項技術解決了機器人設計師最困難的問 題之一:如何同時處理來自多個感應器的資料,並且傳送適宜的指令給機器人的馬達,也就是知名的「同作」(concurrency)問題。常見的解決方法為 傳統的單執行緒程式──有一個長迴圈,一開始先讀入來自感應器的所有資料,然後處理資料,最後送出結果並決定機器人的行為;然後再一次重頭開始執行迴圈。 這個方式的缺點很明顯:即使機器人從感應器收到的最新訊息是,機器已經臨近懸崖邊緣,但由於程式還在迴圈後半部計算軌跡的部份,所以會根據先前輸入的資 料,命令輪子快點運轉,機器人很可能根本沒有機會處理新資訊,就跌下了樓梯。

「同作」不僅是機器人學所面臨的挑戰,現在有越來越多的應用軟體是為了分散式電腦網路而寫。程式設計師煞費苦心尋找有效率的編碼方式,好讓 程式同時在不同的伺服器上運作。單一處理器的電腦已漸漸被多處理器及「多核心」處理器(具有兩個以上處理器的積體電路,可提升效能)的機器所取代,軟體設 計師必須以新的方法,來設計桌上型電腦的應用程式與作業系統。為了充份利用平行處理器的效能,新軟體也必須處理同作問題。

處理同作的方式之一,是撰寫多執行緒程式,允許資料透過不同的路徑傳送。但每個撰寫多執行緒程式碼的設計師都會告訴你,這是非常困難的程式 設計工作。蒙迪小組針對同作問題的解答是:「執行期同作協調」(CCR)。這是一個函式庫,也就是一組可以執行特定工作的軟體程式碼,協助設計師更輕易撰 寫出可協調多項同步活動的多執行緒應用程式。CCR的設計原本是為了協助程式設計師發揮多核心與多處理器系統的效能,但是結果對機器人學也有同樣的好處。 機器人設計師運用函式庫撰寫程式,可大幅降低他們的軟體因為急著把輸出資料傳送給輪子,而無暇讀取來自感應器的輸入,使得機器人撞牆的機會。

除了解決同作問題之外,蒙迪小組的成果也可簡化撰寫分散式機器人應用程式的複雜度。這項技術叫做「去中心式軟體服務」(DSS)。在DSS 的協助之下,研發者所設計的應用程式中的各個服務(也就是程式中用來讀取感應器或控制馬達等的部份)可彼此獨立運作,但也能彼此整合,就好比來自不同伺服 器的文字、影像與資訊也能夠整合成單一網頁一樣。DSS讓軟體內的不同單元可彼此獨立運作,因此當機器人的某個單元故障時,就可個別關閉再重新啟動(或甚 至替換掉),而無需重新啟動整部機器。這個架構若再結合寬頻無線技術,使用者就可輕易從遠端透過網頁瀏覽器監控與調整機器人。

不僅如此,控制機器人裝置的DSS應用程式,再也不需要全部都安裝在機器人身上,而可分散放置於多部電腦內。如此一來,可把複雜的處理工作 分派給當今家用電腦裡的高性能硬體處理,機器人的價格或許就不再那麼昂貴了。我相信這個進展會促使全新類型的機器人出現,基本上,這種機器人是可移動的, 具有無線設備可與桌上型個人電腦相連,讓電腦負責處理運算需求高的工作,好比視覺辨識與導航。也由於這些周邊設備能以網路彼此連結,可想見的,機器人將可 集體合作,完成海底探勘或種植作物等工作。

這些正是微軟的「機器人工坊」(Robotics Studio)的關鍵技術。機器人工坊是特羅爾小組新設計出來的軟體開發套件,其中還有些工具能協助設計師輕易以各種程式語言撰寫機器人應用程式。例如, 裡面有種模擬工具可讓機器人設計師在立體的虛擬環境中測試應用程式,而不需要實境測試自己的作品。我們發佈這項產品是為了提供一種人人可負擔的開放平台, 協助機器人開發者將軟硬體一併整合進他們的設計中。


究竟還要多久,機器人才會變成我們日常生活中的一部份?根據國際機器人聯盟的估計,2004年全球各地個人所用的機器人大約有200萬具, 到了2008年,這個數目得再加上700萬。南韓的資訊通訊部希望在2013年之前,能讓國內每個家庭裡都有一具機器人。日本機器人協會則預言,到了 2025年,個人機器人產業每年全球的產值將超過500億美元。今天,這個數目約為50億美元。

就好比1970年代的個人電腦產業一般,現在不可能明確預言出,何種應用會在未來帶動這項新產業發展。不過,機器人未來很可能在生理上的輔 助,甚至陪伴老年人的心理層面,都扮演重要的角色。機器人設備可能協助殘障朋友行動,增強士兵、建築工與醫療專業人士的氣力與持久力。機器人將繼續擔任危 險產業裡的機具,處理危險的物料,並且監控遠端的油管。它們也將協助醫務人員診斷與治療病人,即使病人遠在千里之外。在保全系統與搜救任務上,它們也會是 重要的一員。

未來,也許有些機器人會長得像「星際大戰」裡的人型裝置,但絕大部份應該和機器人C-3PO一點兒也不像。事實上,隨著移動式周邊設備越來 越普遍,我們也許也會越難精確說出機器人到底是什麼,新機器將變得專業、無所不在,但一點兒也不像科幻片裡的兩腳機器人。到了那時候,我們可能甚至不以機 器人來稱呼它們了。但由於這些設備將是人人皆可負擔,對我們的工作、通訊、學習與娛樂也將發生重大的衝擊,就像是個人電腦過去30年來造成的影響一樣。




機器人產業的興起和30年前的電腦業有許多相似之處。想想看,當今自動裝配線上所使用的工業機器人,就如同昨日的大型主機。這項產業的利基產品包括手術專 用的機器手臂、部署在伊朗與阿富汗地區用來掃除路邊詭雷的檢查用機器人,以及清理地板的家用機器人...
【撰文/比爾‧蓋茲(Bill Gates);翻譯/鍾樹人】



想像一下親身參與某個新產業的誕生。這是個以創新技術為基礎的產業,其中有幾家知名企業銷售高度專業的商用設備,但也有越來越多新興公司在製造新穎的玩 具、專供玩家收藏的玩意兒,以及其他有趣的利基產品。這也是個極為分化的產業,少有共通的標準或平台;計畫很複雜,進展相當遲緩,實際應用也相對稀少。儘 管有種種激勵人心的消息與承諾,事實上卻沒有人可以確定這個產業何時(或甚至能否)達到臨界質量(critical mass)。不過如果達到的話,世界很可能就此改變。

當然,這段話也能用來描述1970年代中期的電腦產業,那時艾倫(Paul Allen)和我剛剛創辦了微軟。回到當時,各大公司行號、政府部門與其他機構,全都採用昂貴的大型主機支援運算,一流大學與業界實驗室的研究員正在創造 資訊時代的基本構件;英特爾剛剛推出8080微處理器,雅達利(Atari)正在販售紅極一時的電動遊戲「乒乓」(Pong);在自家成立的電腦俱樂部 裡,熱心人士努力想發掘出這項新科技究竟能帶來什麼好處。

但我心裡所想的是更遠的未來:機器人產業的興起。這項產業的發展和30年前的電腦業有許多相似之處。想想看,當今自動裝配線上所使用的工業機器人,就如同 昨日的大型主機。這項產業的利基產品包括手術專用的機器手臂、部署在伊朗與阿富汗地區用來掃除路邊詭雷的檢查用機器人,以及清理地板的家用機器人。電子公 司生產了會模仿人、狗或恐龍的機器玩具,玩家也急欲擁有最新版的樂高機器人系統。

值此同時,一些全球頂尖的人才正試著解決機器人學裡最困難的問題,好比視覺辨識、導航與機器學習,而且漸有成果。2004年,美國國防部高 等研究計畫署(DARPA)在加州莫哈未沙漠長達230公里的顛簸道路上,舉辦了一場自動導航機器人「大挑戰」賽車,結果第一名只跑了12公里,車輛就故 障了。但是到了2005年,卻有五輛賽車跑完全程,而且冠軍車的平均速度達到每小時30公里。(機器人與電腦產業之間還有另一項有趣的相同點:當今網際網 路的前身Arpanet,當初也是由DARPA贊助而催生的。)

不僅如此,機器人產業所面臨的挑戰,也很類似我們30年前在電腦產業裡處理的問題。機器人公司沒有標準的作業軟體,所以可在各種裝置上運作 的大眾化應用程式也不存在。機器人處理器與其他硬體的標準化還相當有限,某部機器所用的程式碼鮮少能應用在另一部機器上。無論何時,任何人若想建造新的機 器人,通常都得從頭開始。

儘管困難重重,但每當我和機器人領域的人交談時──包括學院內的研究者、創業家、業餘玩家與高中學生,那種興奮與期盼之情,一再讓我回想起 艾倫和我當初看著新技術整合,並且夢想總有一天每個家庭的每張書桌上都會有一部電腦的情景。現在,我又看到一股整合的趨勢開始了,可以想見,機器人裝置未 來終將成為我們日常生活中普遍存在的一個角色。我相信,許多技術將為新一代的自動裝置開啟大門,包括分散式運算、聲音與視覺辨識,以及無線寬頻連線等,將 讓電腦得以代替我們完成實體世界裡的各項工作。我們即將邁入新時代,在這個新時代裡,個人電腦即將起身走下書桌,讓我們能夠看到、聽到、摸到、並且操控另 一個地方的物件。


“ROBOT”(機器人)這個名詞,在1921年因為捷克劇作家恰佩克(Karel apek)而變得普遍,其實數千年來,人們一直渴望製作出類似機器人的裝置。在希臘與羅馬神話裡,金工之神以黃金打造了機器奴僕;公元一世紀時,亞歷山大 城的海龍(Heron of Alexandria,據信為發明首部蒸汽機的偉大工程師)曾設計出有趣的機器人,據說其中一個還能講話;達文西在1495年描繪了可站立並移動手腳的機 器騎士,成了公認第一個人型機器人的設計。

在過去一個世紀,透過艾西莫夫的《我,機器人》等書、「星際大戰」系列等電影,以及「星艦奇航」等電視影集,人型機器已經變成通俗文化裡常 見的角色。虛構的情節裡經常出現機器人,代表人們可以接受「終有一天,這些機器將走入人群,並且成為人類的幫手或甚至同伴」這樣的想法。然而,機器人雖然 在某些產業佔有重要的一席之地──例如在汽車製造業裡,大約每10個工人就會有一個機器人,但真實的機器人距離科幻小說裡的同伴,還有很大的一段距離。

造成距離的原因之一在於,電腦與機器人比預期中更難感應周遭環境,也無法快速而準確的做出反應。事實證明,想把人類習以為常的能力賦予機器 人,比如在房內定位出自己與其他物件的相對方向,對聲音做出反應以及詮釋語音,抓握不同尺寸、質感與易碎度的物件,都是難上加難的事。即使只是分辨打開的 門與窗戶之間的不同這般簡單的事,對機器人來說仍然極為不易。

不過研究者已經開始尋找答案了。其中一項有幫助的趨勢是,龐大的電腦運算能力越來越便宜了。100萬赫茲的運算能力在1970年的價格超過 7000美元,但現在只要幾毛錢就買得到;100萬位元儲存空間的價格也同樣大幅滑落。為了讓機器人成真,科學家必須解決許多困難的基礎問題,而便宜的運 算能力提供了不少幫助。舉例來說,今天的聲音辨識程式已經具有相當不錯的字彙辨識能力,但更大的挑戰是,讓機器能夠理解這些字彙在前後文中的意義。隨著運 算能力繼續增強,機器人設計師可望取得必要的運算能力,進而處理更複雜的問題。

機器人的發展還有另一項瓶頸,那就是昂貴的硬體,好比機器人用來測定距離的感應器,以及馬達和伺服電動機,機器人得靠它們才有力量,並且才 能夠精細地處理物件。但硬體的價格也在快速滑落,幾年前,機器人用來精確測量距離的雷射測距儀,價格還高達一萬美元左右,現在大概只要2000美元。而新 型的超寬頻雷達感應器不僅更精準,價格甚至更便宜。

現在,工程師可在合理的成本之下,為機器人加裝全球定位系統晶片、攝影機、陣列傳聲器(比傳統傳聲器更能從背景雜訊中分辨出特定聲音),以 及一大堆附加的感應器,機器人的功能當然變得更強;再加上強大的運算能力與龐大的儲存空間,今天的機器人已經有辦法在房內吸塵,或協助清除路邊的詭雷。幾 年前,還沒有任何商用機器能執行這些工作。


2004年2月,我造訪了一些美國的頂尖大學,包括卡內基美倫大學、麻省理工學院、哈佛、康乃爾和伊利諾大學,探討電腦在解決社會一些最緊 迫的問題上,可扮演什麼重要的角色。我的目標是協助學生了解資訊科學有多麼精采且重要,也希望鼓勵其中一些人以科技為志業。在每一所大學演講完之後,我總 是有機會前往學校的資訊科學系,親自參觀一些最有趣的研究計畫。幾乎沒有例外,每次我都會看到至少一個有關機器人的計畫。

當時,學術界和商用機器人公司也曾詢問我在微軟的同事,我們公司是否也有進行機器人方面的研究,或許可在研發上助他們一臂之力。我們並沒 有,所以我們決定好好研究一下。於是我請特羅爾(Tandy Trower)展開大規模的訪查工作,和機器人社群的成員好好談一談。特羅爾是我的幕僚之一,也是在公司服務25年的資深員工,他發現大家對機器人的潛力 都很感興趣,而且整個產業都希望能有一些工具可減輕研發的難度。特羅爾結束訪查任務之後,在交給我的報告上寫著:「許多人認為機器人產業正面臨技術上的轉 捩點,如果能夠移轉到個人電腦架構上,將是更為合理的方法。就像卡內基美倫大學的DARPA大挑戰參賽小組領隊惠塔克說過的,硬體的功能幾乎已經齊全了, 現在的問題是怎麼設計出正確的軟體。」

回到個人電腦剛出現的年代,我們知道自己需要一種要素,來把所有的先驅工作帶到臨界質量,才能整合出真正的產業,製造出商業上真正有用的產 品。結果顯示,我們需要的是微軟BASIC。我們在1970年代創造的這種程式語言,提供了一個共通的基礎,於是,為特定硬體開發的程式,也能在另一套硬 體上執行了。BASIC讓電腦程式設計變得容易許多,吸引越來越多人進入這個產業。雖然許多人在個人電腦的發展上都有卓越的貢獻,但微軟的BASIC卻帶 動軟硬體的革新,無疑是個人電腦革命的重要推手。

閱讀過特羅爾的報告之後,有件事似乎清楚了起來。機器人產業若想如30年前的個人電腦產業一般,達成跳躍式的進步,就必須找到這項缺失的要 素。因此我請特羅爾召集一小隊人馬,與機器人學的研究者展開合作,研究目的是創造一套程式設計工具,提供基本方針,讓每個對機器人感興趣的人,只要有基本 的電腦程式概念,都能輕易撰寫出可在各類硬體上執行的機器人應用程式。看看能否提供共通的低階基礎,以便整合機器人設計中的軟硬體,就像微軟BASIC當 初在電腦程式設計上的功能一樣。