顯示具有 技術 標籤的文章。 顯示所有文章
顯示具有 技術 標籤的文章。 顯示所有文章

2009-06-16

我對 Strong Typing vs. Strong Testing 這篇文章的意見



今天下午在看這本書,裡頭有篇文章,看完之後,在噗浪上面寫了一句話,覺得這篇文章的說法似是而非(意思就是說,這文章看來有道理,事實上卻說不太通)。

下班的途中在捷運上又想了想,就把感想寫在這裡(噗浪還是不適合回長文啊)

文章裡說得對的地方:
If it's not tested, it's broken. 這是符合現代程式開發的普遍說法,根據我的經驗,這點我同意。

我覺得有問題的說法:
Python會在程式執行時才發現型別問題,然後丟出實行期錯誤,這個機制看來有問題,但是 Python 還是獲得巨大的成功,所以,執行時期才做型別檢查沒啥問題,只要靠完整的 unit test 就好。
我的回應是:如果你有完整的測試,整個程式都沒問題了,執行時期當然不會有問題啊(廢話)。所以,這個問題被轉換成:如何保證你的程式有"足夠"的測試。
千萬不要跟我說,執行時期才做型別檢查這個作法沒有問題。執行時期才檢查型別的不堅固(爛)程式語言一堆,我應該不需要舉例子吧。

再來舉兩個例子:
  1. 假設你有定期完整詳盡的健康檢查與醫療照護,你會因為這樣就放棄運動跟正常作息嗎?
  2. 假設你是七龍珠裡的孫悟空,你會因為會使元氣玉(大絕)就不用龜派氣功嗎?
舉上面兩個怪怪的例子的原因是:要寫文章推廣好的觀念是不錯,但是不能因為要推廣"大絕"就把容易又有效的小絕招放棄吧。所以,文中的這句 Strong testing, not strong typing.
應該可以改成 Strong testing, and strong typing.

根據我的開發經驗,如果可以在開發初期就做對決策,把軟體的品質放進產品裡(利用基本機制帶來的品質保護),這會比事後再做補救措施來得容易&節省資源。

再回來談大絕(就是文中的 adequate unit tests
就像大絕很難練成一樣,要能執行 adequate unit tests,跟團隊的能力/制度有關,不能假設開發團隊都有能力&資源執行夠質足量的 unit test,更不能為了假設有大絕,就放棄簡單易用的小絕招。

最後的補充:
程式的錯誤,一般來說,有語法錯誤跟邏輯錯誤兩種,如果有編譯器可以多幫你一些忙,處理掉一些錯誤,這是好事。軟體開發耗神費力,可以有多些幫助,就該謝天謝地了。

一些背景資料:
這篇文章的作者 Bruce Eckel 很有名啊,就是Thinking in Java的作者。我以前就是看了他的書才去學Python的。
聽說這篇也很有名(沒時間細查)。但在我看來,這篇說理的邏輯不太通(這就是會有這篇的原因),講述測試的重要性也沒有特別令人信服的地方,我實在看不出這篇的重要性在哪裡。

最後的最後:
多測試沒事,沒事多測試

2009-05-11

Roomba 的華麗之舞



使用Roomba 小黑(掃地機)跟小藍(刷地機)一年多以來,這兩個小傢伙明顯改善了我們的家居生活。這段日子我們也推薦了不少朋友使用。
最常被問到的問題是:會不會有地方掃不到?
要解釋路徑演算法跟模擬驗證,有點難解釋。
上面這張圖,可以解釋得很清楚。

下面是順手找到的相關報導,轉載如下:

透析iRobot Roomba 570高效率清掃的關鍵設計

黃裕元/DIGITIMES
2008/08/04

前言:機器人可以幫助人類,完成人類較難做到或是懶得處理的瑣碎事情,常久以來一直是大眾對於機器人所報有的夢想與憧憬,例如搬運重物、處理高危險事務、 打掃環境…等。iRobot公司的Roomba清掃機器人,是最早能將機器人科技家電化的劃時代產品,透過極具效率的科學運算與搭配耐用、實際的機構設 計,讓這款清掃機器人可以一連發展5代產品,成為市面上此類型產品的功能臨摹對象,透過這次實機拆解最新款的iRobot Roomba 570,瞭解Roomba的成功祕方…

美國iRobot公司,是由美國麻省理工學院(MIT)羅迪布魯克斯教授(Rondy Brooks)創立,由於iRobot初期設計、製造許多各型軍用機器人,有的機器人可以用於掃雷用途,有的機器人則是以偵測敵軍應用為主,再將衛星定位 (GPS)資訊傳回美軍戰地指揮所,原先也是針對戰爭用途開發的軍用設備。

所以,從波灣沙漠戰爭(Desert Storm)到伊拉克戰爭(Iraq War),美軍運用大量iRobot機器人在戰爭當中取代真人,以數以千計的iRobot機器人替代士兵處理危險任務。

然而戰爭結束後,軍用機器人使用數量需求銳減,iRobot逐漸轉移設計與應用方向,重新開始設計家庭用具清掃功能的機器人,並於1995年加入台灣宏碁集團資金,將家用機器人設計付諸實行。

而iRobot研發出的掃地機器人「Roomba」,到今日已是第5代產品,掃地機器人變成每個家庭主婦的夢幻家電,不但可有效清除家中地板灰塵,甚至未來還將機器人運作行為,導入居家關懷設計概念,當下也帶來話題與娛樂性,讓人們享受生活便利的同時,也帶來娛樂效果。

直至今日,iRobot全球銷售超過200萬台家用清掃機器人,透過拆解,可以瞭解,到底是什麼樣的機構設計,可以讓家庭主婦為之著迷。

新款iRobot Roomba 570,與舊款的掃地機器人最大的差異在於,下方底盤設計加強系統密閉性,先前的舊款掃地機器人,容易發生灰塵侵入主機內部,讓主機板上日積月累附著大量灰塵的困擾。

而新一代的主機底盤構造,則改採完全密封,讓主機板與掃地機構完全分離設計,彼此若有電力供應或感測控制連接,也透過模組化的連接座傳輸必要電力或控制訊號,連接處並針對防塵強化設計,並加裝了防護塑膠墊片,防止灰塵進入。

除此之外,掃地機器人新增1項特殊的配件「虛擬牆」,iRobot Roomba 570將虛擬牆升級成「虛擬燈塔」,虛擬牆的功能原本是用作來限制或阻擋掃地機器人掃除區域的配件,使用者可以在希望Roomba運作清掃的區域,如門口 擺1個虛擬牆設備,其實就是一個紅外線感應發訊裝置,其放出紅外線訊號就像多了一道看不見的牆壁,Roomba就不會跑出掃地範圍以外區塊,限制空間也能 更有效率完成區塊清潔掃除工作。

但是,舊款的虛擬牆在使用上,需要手動進行開關切換,若沒有設定好,Roomba掃地機器人很可能一不小心就會跑出原本設定限制的清掃範圍,原本該打掃的地方就感到掃得不乾淨,而使用者也需要再重新把機器拉回原處,不但浪費電力、也浪費打掃時間。

新款掃地機器人,搭配的是「虛擬燈塔」,虛擬燈塔與虛擬牆的外觀大同小異,同為紅外線感應技術設計的發射控制器,只是不同的功能在於,虛擬燈塔有自動開/關虛擬牆壁功能,及協調掃地機器人進行清掃的區域通知功能。

也就是說,當虛擬燈塔知道Roomba清掃機器人在這個區塊完成清掃任務後,便會自動開放紅外線構築的虛擬牆,讓掃地機器人到下個區塊繼續進行清掃工作, 當Roomba清掃機器人移動到了下個區塊後,虛擬燈塔會再度關上虛擬牆,但反觀前一代設計,舊款Roomba一次就只能清掃1個區塊(所謂區塊即如房 間、客廳)。

而舊款機種當清掃完限制區塊後,使用者必須將Roomba提著帶到下個區塊清掃,所以,即使部分舊款(4260、4230)具有定時啟動清掃功能,也只能 完成定時單一區塊清掃,而新一代Roomba 570則改進這個缺點,會在啟動區塊清掃完畢後,自行打開虛擬牆進入第2區塊進行清掃,進入後自行關閉1號虛擬牆,在第2區塊內執行清掃。

當第2個區塊清掃完畢,它又會打開2號虛擬牆,進入第3個區塊清掃,掃完後它會打開2號及1號虛擬牆,回到第1區塊的充電座上,自動倒車將充電端子自動湊 上充電座執行充電,這樣的功能可以利用不在家的時間,定時將家中絕大部份的區域清潔工作一次完成,保持家中在最乾淨的狀況,也不會碰上休息或看電視 時,Roomba運作干擾休憩活動進行。

Roomba清掃機器人掃地模式,為利用自動掃除技術,關鍵核心在於特殊的掃除路徑演算法!其演算法可用最經濟的路線,達到每執行1次掃除,就可確保每處都有被打掃過4次的機率,這是為何Roomba掃得比人掃得還乾淨的技術關鍵!

Roomba除可在無障物的平面順利進行掃除工作外,如果遇到桌子的桌腳或是其它柱形障礙物區域,由於掃除機器人機器前端佈滿紅外線障礙感測器,前半圓形 設計還有碰撞感應開關,可避免直接衝撞傢具或是障礙物的問題,而清掃機器人還會繞著桌腳或柱子四周徹底打掃,不放過任何死角。

打掃模式在開啟電源後,掃地機器人會先在原地,以逆時鐘旋轉方式向外擴展掃除區域,1個房間大約使用35~40分鐘進行掃除,當完成清掃後,即會自動進入下個屋內區塊繼續完成清掃,或是選擇在1個小範圍繼續執行清掃模式,這時就會限定機器人在1公尺內的距離執行打掃。

除此之外,還可透過預約設定,以1週7天為1個大單位,設定禮拜一到禮拜天的清掃時間,就算人不在家也可以自動啟動打掃行程,或是透過無線遙控方式,也可 以把Roomba 570當成1台另類的遙控車,讓家中的小朋友當遙控車玩的同時,也能達到清潔屋內地板的另類加值效果。

不管是新款或是舊款掃地機器人,感測裝置都是以紅外線感測和觸碰感測為主,業者表示,使用非雷射導向或是更先進的無線控制技術,並不是技術上辦不到,而是 就清潔、掃除應用而言,無線感測或是碰撞感測的技術選擇,應以實用、低成本、耐用為主要要求,而不是為了導入更新更炫的技術而進行相關設計。

Roomba機器本體、虛擬牆和充電座,均透過紅外線無線技術進行互相連結、控制,在機器底盤的部分亦設置4組紅外線裝置,可以防止Roomba移動到樓梯口或是有落差空間,透過摔落感應即時控制驅動系統回車,避免操作不慎摔落。

此外,底盤輪子結構有簡單的懸吊機構設計!一旦提起機器本體,Roomba即立刻自動停止掃除運作,除此之外,懸吊繫統還能應付不同材質地面時,發揮應有的清掃功能!例如,硬質地板與軟質長毛地毯,也能識別地板材質不同動態調整掃除機構。

Roomba 570的掃除機構,就具浮動能力的驅動輪設計,可以適應不同地板環境,而掃除的清掃機構,僅透過簡單的物理懸吊設計,當輪子走到長毛地毯使驅動阻力增加, 透過齒輪組的物理驅動鋼索控制掃除機構的懸吊高度,讓地毯的清掃深度加強,類似這樣簡單的機構設計概念,在這台掃地機器人設計上,都可以看到類似的巧思。

至於掃地機器人的刷子,即是執行清掃行程效率的重點機構!所以刷子設計一定是非常特殊,新一代的掃地機器人被設計成特殊爪型掃塵刷,掃塵刷的位置針對 Roomba的運作路徑最佳化,所以很多人覺得奇怪,掃塵刷應該在Roomba四處都裝才掃得乾淨?其實,有用的刷子一把就夠了,設計太多除了效益不高, 也只是浪費電罷了!Roomba所有的掃地元件,都可以被簡單的拆卸下來,讓使用者不用將Roomba送廠維修,在家中就能完成清潔動作,延長機器與元件 使用壽命。

掃地運作時,清掃集塵機構中的滾筒狀刷子,會將地面上的毛髮掃入集塵室中,許多毛髮也會捲在毛刷上面,久而久之就會降低清掃效果。為了克服這樣的難 題,iRobot公司設計1個毛刷清潔套,而使用隨機附送的毛刷清潔套,只需要將套筒與毛刷組合,來回刷上幾回,透過套筒上倒鉤設計,插入毛刷時可將毛髮 勾斷,拔出時順便將毛髮帶離刷毛,即可輕易的將附著在毛刷上的毛髮清除。

底部的清掃集塵機構,內部為1根柱狀毛刷與柱狀塑膠刷平行並排,設計原理就像平日用的掃把與畚箕!毛刷負責將灰塵揚起帶入塑膠刷上,塑膠刷再負責將灰塵送入集塵室中,如此一來可輕鬆又確實的完成整套掃除工作。
掃地運作時,清掃集塵機構中的滾筒狀刷子,會將地面上的毛髮掃入集塵室中,許多毛髮也會捲在毛刷上面,久而久之就會降低清掃效果。為了克服這樣的難 題,iRobot公司設計1個毛刷清潔套,而使用隨機附送的毛刷清潔套,只需要將套筒與毛刷組合,來回刷上幾回,透過套筒上倒鉤設計,插入毛刷時可將毛髮 勾斷,拔出時順便將毛髮帶離刷毛,即可輕易的將附著在毛刷上的毛髮清除。

底部的清掃集塵機構,內部為1根柱狀毛刷與柱狀塑膠刷平行並排,設計原理就像平日用的掃把與畚箕!毛刷負責將灰塵揚起帶入塑膠刷上,塑膠刷再負責將灰塵送入集塵室中,如此一來可輕鬆又確實的完成整套掃除工作。

在底盤還附設有1個灰塵感應裝置,而所謂的灰塵感應裝置,居然只是1個麥克風,透過打掃時灰塵揚起時碰撞麥克風的聲音,再與系統預存的灰塵聲紋進行比對, 讓Roomba可判斷地面上的灰塵厚度,然後下達在此區塊停留的時間加長,讓清潔行程在特別髒的區塊停留久一些,直到麥克風判斷此處灰塵減少已完成清掃 後,才指示Roomba此區完成清潔,可到其它區會計續清掃行程,看似簡單的原理,其構造與技術應用發想卻十分不簡單!

除了清掃模組外,還有1組側刷模組,新一代側刷增加刷毛,原本2支毛刷擴增為6支,如此一來大幅度增加清掃牆壁邊緣時的乾淨度。

iRobot Roomba 570底部有3個輪子,前方1個小輪子用於導向功能,設計上可以簡單的取出輪軸進行清潔,掃地時最常遇到的仍然是毛髮卡在輪子轉軸機構中,萬一頭髮卡在輪軸部分,輪子就不會繼續轉動,輪子的軸承部分就極易因此磨損,降低使用壽命。

而後方的2個輪子模組,為密封設計,與前方導向輪作用不同,負責Roomba本體的移動,每組驅動輪模組分別由驅動馬達與齒輪組、控制電路構成,完成整體動作,左/右驅動輪為馬達直接驅動設計,可以讓中央系統更有效率控制驅動行程,也能減少轉換動力的能源損失。
iRobot Roomba 570底部有3個輪子,前方1個小輪子用於導向功能,設計上可以簡單的取出輪軸進行清潔,掃地時最常遇到的仍然是毛髮卡在輪子轉軸機構中,萬一頭髮卡在輪軸部分,輪子就不會繼續轉動,輪子的軸承部分就極易因此磨損,降低使用壽命。

而後方的2個輪子模組,為密封設計,與前方導向輪作用不同,負責Roomba本體的移動,每組驅動輪模組分別由驅動馬達與齒輪組、控制電路構成,完成整體動作,左/右驅動輪為馬達直接驅動設計,可以讓中央系統更有效率控制驅動行程,也能減少轉換動力的能源損失。
iRobot Roomba 570底部有3個輪子,前方1個小輪子用於導向功能,設計上可以簡單的取出輪軸進行清潔,掃地時最常遇到的仍然是毛髮卡在輪子轉軸機構中,萬一頭髮卡在輪軸部分,輪子就不會繼續轉動,輪子的軸承部分就極易因此磨損,降低使用壽命。

而後方的2個輪子模組,為密封設計,與前方導向輪作用不同,負責Roomba本體的移動,每組驅動輪模組分別由驅動馬達與齒輪組、控制電路構成,完成整體動作,左/右驅動輪為馬達直接驅動設計,可以讓中央系統更有效率控制驅動行程,也能減少轉換動力的能源損失。

在電力系統部分,舊款電力約能離線使用60~90分鐘,新一代的Roomba,使用12顆中型的鎳氫電池,可以跑120分鐘,由面板上的LED燈作為電力容量指示,綠燈為滿電狀態、黃燈為消耗中、紅燈為缺電中,3個顏色為指示,當缺乏電力時會自動回到充電座進行充電。

在新款的充電座系統上,增加導航軌道,改善前一代機器回去充電時,有時必須試了兩、三次才能順利回到基座充電的缺點,在充電設計上,除依靠充電座充電外,也可透過變壓器直接外接在Roomba本體上進行充電,提高掃地機器人的攜帶性與機動性。

新一代遙控器比前一代遙控器更具質感,打破遙控器一定是長長方方的感覺,遙控器除了設定定時清潔行程,它還有遙控Roomba前進/左/右驅動遙控功能, 主要的功能在於清掃完成時,它可能剛好停留在床底下,這時有了遙控器,使用者就不需要爬到床底把Roomba抓出來,這也是1項很貼心的設計。

若是不想用遙控器,也可直接在主機的上方完成設定定時開關或是測試機器的一般操作,所有的按鍵設計都非常簡單易懂,而且採LED光源指示,在黑暗處也能看得非常清晰。

拆解機殼外部後,會看到內部主機板為一大片PCB板,從PCB的上方正面觀察,表面黏著設計的LED直接與PCB板結合,並且可以看到正面觸控鍵盤相對應 的端點,機體上的所有按鍵,全都用表面黏著方式焊在機板,PCB板看起來十分簡潔,而弧形的前端有總導向裝置模組,後方則分別為馬達模組、充電模組、定時 模組、遙控模組及揚聲器。

iRobot Roomba 570是目前所有同類型清掃機器人功能最完備的1款,所以,在主機板設計上,也是最完整的設計內容,在舊款機器上可能看不到定時模組、有的看不到遙控模 組,但為了簡化備料,其它版本的PCB板就會在沒有對應加值功能區塊上,找不到對應零件或料件,不過隨產品進化,未來會有更多、更新的設備不斷地添加。

由PCB版下方背面可以看到弧形前端有碰撞模組,前方導向輪的內置電源插槽,當導向輪掉落或忘記安裝,Roomba也不會自顧自的亂跑造成更嚴重的損壞, 算是相當貼心的設計!兩側輪子的電源插槽、集塵系統的電源插槽及充電電源的插槽,此外,在這邊可以看到iRobot Roomba 570是透過ST ARM系統晶片,完成整體的運動協調。

前幾代Roomba對於障礙物,是採輕輕碰撞的感應方式,新一代機器在偵測到前方有障礙物時,已改成會先減速後再輕輕接觸,藉由更輕微小心的接觸,可以保護傢俱不會因Roomba的清掃行程而損壞,不至於經多次打掃後損壞家具或掃地機器。

而內建的ARM晶片架構(Advanced RISC Machine),是1個32位元精簡指令集中央處理器架構,廣泛使用在不同種類的嵌入式系統,具有節能、低耗電特點。ARM處理器可以在很多消費性電子 產品上看到其蹤影,例如,行動電話、掌上型電玩,電腦週邊設備,甚至在控制飛彈的電腦軍用設備中,都可以看到。

前方半環狀的感應器,設有6個紅外線收發器與碰撞感應器,負責辨識目前的方位以及碰觸到硬物時,避開繼續打掃。掃地機器人的整體內部架構,至此一覽無遺,透過此次拆解瞭解iRobot對掃地機器人有著各項人性設計,如模組化設計,簡化拆卸與故障排除問題。

如強化耐用的機構設計,讓它長時間使用不怕損壞,電腦控制全以單晶片設計,強化耐用度,控制UI設計極簡易,不用學習就會用,甚至開發趣味性與話題性的遙 控操作應用,讓家中的小朋友也樂於遙控Roomba進行打掃。使用單純的雙輪驅動系統,設計跟兩輪車「賽格威」(Segway)有異曲同工之妙,用最少的 組件完成最精緻的驅動行程控制,另外,搭配無動力導向輪與各自配置驅動馬達的驅動輪,即構成iRobot實用的驅動系統...

另外就算話題性再怎麼高,趣味性再怎麼強,掃不乾淨再聰明也是枉然,iRobot利用強化清掃與集塵設計,讓灰塵只進不出,創意與概念相當值得學習。如這 代強化清潔毛刷,刷毛更長,當遇到頭髮絞住影響掃除機構運作,還會自動反轉解除故障問題,集塵機構利用大量物理技術設計,如高低反差與橡膠隔塵設計,讓刷 毛刷進塵屑的同時,也會經內部橡膠刷清除沾附刷毛上的灰塵、毛髮,避免灰塵洩出造成二度污染,讓掃除更具效率。

各種不同材質地面,自動調整刷子清掃角度,灰塵感應偵測功能在清掃過程中,遇到灰塵較厚的地方,會自動在原地停留,直到清掃完成後離開,樓梯偵測功能可自 動偵測樓梯,不會掉落。 前幾代機器都怕捲到電線或流蘇,新一代機器毛刷捲到電線或流蘇,刷子會自動反轉,前幾代機器都不適用於有流蘇的地毯,新一代機器已沒有這個問題。

刷子已改為易清理毛刷,所附的刷子清潔工具為1個套筒,套筒內為鉤子,清潔毛刷時,只需將刷子在套筒內來回穿梭,即可輕易取下刷子上的毛髮,特別是針對養寵物的朋友,縮短刷子清理時間,零件模組化,較易於維修。

而系統利用IR隨時確認主機與充電座間的距離,充電座本身會發出引導的兩條紅外線,當電池電力極低時,確保還有電力跑到充電座執行充電。在拆解的過程中, 發現大部分的螺絲都有防止遺失的保護措施,也就是說所有的螺絲都不會離開主體,可以防止在清潔機器時,避免發生組裝時找不到螺絲的窘況。

研究這Roomba外觀時,看到有1個類似電視s端子插孔,詢問代理商得到的答案,是有可能未來可以透過原廠獲得更新功能。不過原廠更透露下一代產品可能 會大幅升級,結合攝影機,可以透過網路在外地控制家中的機器運作。可以通話也可以傳輸影像,最多可達10個人同時使用,也可以作為家中的安全監控,或是搜 尋家人在家中的位置與家人談話,變成家庭安全防護與打掃的機器人。

2009-03-17

微軟的兩個對 2019 年的資訊生活的影片





我剛花了點時間看了上面這兩段影片,寫一下重點,當作筆記:

重點們:
電子紙(電子報紙,電子標籤),觸控介面(氾濫中),實體空間導覽,超輕薄的萬用裝置,多用途的卡片,兒童教育,跨語言溝通介面(即時字幕),資訊視覺化,到處都可顯示(投影)的環境,語音介面(同步翻譯)。

我的猜測,微軟想做的應該有兩個方面:
  1. 一個是超輕薄的隨身裝置,上面運用電子紙技術(顯示),以及觸控技術(輸入),方便切換功能(應用)。另一個是透明板的版本,與前面的差不多。
  2. 另一個是運用投影機與相機(可能還會加上觸控面板)形成的智慧互動空間。
影片裡的情境,要突破的技術,在硬體上主要是電子紙以及相關的顯示技術。但我覺得,重點會在軟體上面,1. 如何快速&有效建立應用(這應該需要新的開發工具),以及 2. 建立有效的底層引擎(例如視覺引擎),提供強固的辨識能力(而這又常與應用的內容相關)作為互動的基礎。

我最近在看人機互動的書,好的互動設計,當然也是一大考驗。

最後,我的問題是:這些情境要10年後才會出現?!我猜,除非金融風暴持續很久,才會如此。

這兩個video還蠻符合我對微軟的一貫想法。平凡無奇。

2008-05-09

EeePC Open Source Developer's Day



這兩天(5/8 和 5/9)去參加這個研討會,我雖然沒有開發Open Source S/W的經驗,兩天的課程聽下來,深感其中一些主題有趣&有用。寫一下我覺得的重點&結論:
  1. 由這次的研討會看來,華碩在成功利用EeePC打開全球低價電腦市場之後,下一步應該打算將EeePC定義成為軟體平台。協助軟體開發商在EeePC上開發行銷全世界的軟體,將軟體推向(經銷)全球的使用者;並藉由豐富EeePC上面的應用軟體強化這個產品的競爭力。
  2. 大型Open Source S/W 的開發流程是我很有興趣的一個題目,上川純一 先生演講的題目: Debian Project and the Development Process, and how to co-work with it 會是我之後整理研討會資料學習的重點。
  3. Rich Internet Application 的技術是越來越多了,除了紅了好一陣子的AJAX,這次介紹的Adobe AIR 看來也是個開發炫目介面的工具。
  4. Google Gears 也是很有用的技術,應該可以拿這個技術來做一些非原來定義的應用。
    1. AIR 跟 Google Gears都把SQL lite放到使用者的桌面下,以後桌子下藏的東西會越來越多囉。
    2. Google Gears這個技術,在它發表前幾個月才跟老婆聊到可以做這個技術.....。
  5. LXDE 是個很有效率,方便的桌面系統。另外,看PcMan的介紹也是很爽快的經驗。
  6. EeePC帶動的這波低價電腦風潮,應該會是自由軟體的大好機會。
雖然研討會已經結束了,但是slide會在之後放上網站,我把議程列在下面做個紀錄,如果各位看官有興趣,歡迎去上面的網址下載相關資料。

5/8
時間 議程 講者
09:00 ~ 09:30 報到
09:30 ~ 09:45 貴賓開幕致詞
09:45 ~ 10:20 Keynote Speech 開幕演講:EeePC 軟體平台商業營運模式 華碩電腦 | 王榮宗
10:20 ~ 10:50 EeePC 數位學習應用軟體展示 華碩電腦 | 周利欽
10:50 ~ 11:00 Tea Break
11:00 ~ 12:20 Eee PC SDK 發表與介紹 華碩電腦 | 師瑞祥 & 黃志偉
12:20 ~ 13:40 午餐
13:40 ~ 14:30 站在巨人肩膀上的遊戲規則 自由軟體鑄造場 | 葛冬梅
14:30 ~ 15:10 Python / GTK 應用程式開發環境介紹 自由軟體鑄造場 | 胡崇偉
15:10 ~ 15:30 Tea Break
15:30 ~ 16:10 Python / Qt 應用程式開發環境介紹 李文定
16:10 ~ 16:50 Firefox Platform Application Programming 李圭烽
16:50 ~ 17:30 Google Gears Programming 曾建銘
17:30 ~ 17:40 華碩 VS 軟體開發商交流研討 華碩電腦
5/9
09:00 ~ 09:30 報到
09:30 ~ 10:00 Eclipse, Gambas, Lazarus 開發環境介紹 華碩與資策會自由軟體組
10:00 ~ 10:50 Debian Project and the Development Process, and how to co-work with it 上川純一(Junichi Uekawa)
10:50 ~ 11:00 Tea Break
11:00 ~ 12:00 Eee PC Hacker Show 華碩電腦 | 詹相民
12:00 ~ 13:30 午餐
13:30 ~ 14:00 EeePC HotKey、WebCam與 Audio 控制 華碩電腦與資策會自由軟體組
14:00 ~ 14:15 自由軟體產業應用推動計畫及Open source 軟體開發交流平台介紹 資策會自由軟體組
14:15 ~ 14:30 Open Source Software Foundry 自由軟體鑄造場簡介 自由軟體鑄造場 | 吳孟勳先生
14:30 ~ 15:30 Adobe Air Platform Programming 恆逸資訊 | 宋志峰
15:30 ~ 15:40 Q & A
15:40 ~ 16:00 Tea Break
16:00 ~ 17:00 Linux Driver Project介紹 Brandon D. Philips
17:00 ~ 17:10 Q & A

2008-02-05

Face Recognition Technology: Polar Rose



這是同事傳來的技術網頁,蠻有意思的,研究了一下。
===== 以下是網路上的介紹 =====
新創公司Polar Rose準備在明年初推出可提高照片搜尋準確度的新科技。

這家瑞典業者先將2D照片推算至3D模式,再由電腦利用3D模式在網路和Flickr等公共照片網站上,搜尋相符的照片。該公司19日宣布,將自明年元月起進行實際測試,並在第一季推出公眾測試版。

3D模式雖是虛擬的,仍可讓電腦過濾掉光影、攝影角度,和物件對鏡角度等相關差異。Polar Rose創辦人兼技術長Eric Solem表示,過濾掉這些差異,搜尋結果將會更準確。即使是正面大頭照,該公司的搜尋引擎都能算出3D輪廓。

Solem說:「我們可以從一張照片製作出3D影像,臉部特徵通常會因為光線和姿勢而難以確認,3D影像可以解決這一點。」Polar Rose正在開發一項自串流影片中搜尋臉孔的工具。

影像搜尋逐漸引起業者和研究員的興趣,尤其是網路上的照片和影片數量大幅成長。許多照片搜尋服務,如Google的影像搜尋,其實完全沒有搜尋影像內的資 料。這類搜尋只針對照片的附加資料。假如你要搜尋夜間脫口秀主持人Jay Leno,結果將不只是這位喜劇演員的照片,還包括任何以Jay Leno為名的家庭寵物照。

其他公司,如EverNote,開發出可辨識影像內文字的軟體。IBM與3VR Security則提供串流影片之影像搜尋技術。今年稍早,另一家新創公司Riya也推出照片辨識服務。

雖然Riya與Polar Rose都針對同一目標,其辨識和搜尋比對的基礎方法卻不同。Riya採用情境辨識—其軟體「觀察」人的面孔,但也會考量服裝、髮型和照片中的其他特徵, 其原則是某人在一張照片中顯示的許多線索,也會在下一張照片出現。Riya也設立一個附屬網站Like.com,幫助民眾搜尋類似外觀的產品。

Polar Rose的運算法不以特定的臉部特徵為主。相反地,他們檢視每個臉部重要特徵的相對位置,再對照3D模式(該公司的名稱取自一種花狀的數學曲線,而非瑞典在地球上的位置)。Solem表示:「只要你各張照片之間的差異性小於你和其他人的照片,(軟體)就會找到你。」

===== 網路上的介紹完畢 =====

Face recognition technology (就是讓機器認人的技術) 有很多的用途,911之後,這樣的技術需求隨著安全監控產業的蓬勃發展而大增,相關的研究也變得很多。過去,face recognition 有三個不容易克服的地方: Pose,lighting and occlusion (另外,當然維度詛咒(Curse of Dimensionality)是所有appearance-based recognition 技術要克服的基本問題),Polar Rose 這項技術很聰明地靠建立3D模型及利用後續的模型比對來避掉前兩個問題(第三個問題要做到好很難,有遮蔽的人臉,連人都要認很久,這表示這不是在低階的視覺機制就可以認出來的東西,需要有高階的意識參與判斷)。

我的感想:
  1. 很多看起來很難的東西,事實上應該沒有想像中那麼難啦! 不要一直跟著別人的腳步,才會有創新的機會。
  2. 人臉事實上是很相似的東西(這句話還蠻怪的)。因此,從影像對人臉建立模型時,自由度不那麼大,有一個大致上的粗模可以套用(限制)。把這個技術用在建模與搜尋上,都相對容易。這是對我來說,在技術上的一個啟發。(這個技術可以辨識出象人嗎? 我猜不行! 我猜連一開始的 face detection 都偵測不出來了吧, 更別談不符合對人臉的prior knowledge了)。
  3. 有優異的技術,將產品做成網站,加上瀏覽器plugin,強化易用性及使用率是個好方法。
  4. 報導上說,這家公司已經得到510 萬美元的創業基金(真好!)。
再補充一點: 人類大腦裡有一個地方,已經特化出來,專門處理視覺中人臉的辨識,這有機會再介紹。

這裡過年前應該不會再更新了~
在這裡先預祝大家
新年快樂~ 賭博贏錢~ 萬事順利~
更重要的是
寒流到了~ 衣服穿多~ 別感冒啦~