拼圖網站的構想

Posted By Mr. Thursday

現在網路上有許多相片服務網站,像是Flickr、Picasa、以及各類相簿空間網站。基本功能通常都是上傳相片,分享給朋友,增加註解或標示人名地點等等。今天想要提出來的,則是拼圖功能的構想。為什麼要拼圖呢?我想分為幾個部分來探討,簡單來說,對使用者可以有趣味社交的功能,對電腦來說可以有類似 reCAPTCHA 的學習看懂圖片的功能,對於平台提供者來說,也許是另外一種服務搭配廣告的模式。

接下來讓我們先回想一下一般拼圖遊戲的規則。通常就是一張圖,然後在電腦上面,可以用電腦自動切割成很多片。每一片拼圖之間,都會有一些凹凸的部分,作為使用者拼圖的線索。因此無論是風景照片、人物照片、商品照片,都可以先用電腦切割,變成拼圖遊戲。不過接下來,也許還可以有一些變化。

PhotoShoot這個網站裡面,使用者分為兩方,一位使用者負責標記有興趣的部分,另一位使用者射擊有興趣的部分,如果射擊的人和標記的人默契高,分數就越高。這個遊戲,也幫助電腦學習一張圖片的 ROI (region of interest),也就是人類看一張圖片的時候,第一眼會想注意的地方。電腦不是人腦,因此需要透過這個遊戲,來學習人類會注意照片的那個部分。

這個遊戲,其實就是透過人類互動,讓電腦學習的一種機制。另外一種遊戲就包括了 CAPTCHA,其實也不算遊戲,而是一種認證機制,在各種網站登入的時候,有時候會要求使用者輸入圖片裡面輸入的數字或字母,確定是人類在登入,而不是電腦程式在造訪網站。

reCAPTCHA則是把CAPTCHA更進一步,出現的兩個字裡面,一個字有標準答案,另外一個字則是從光學掃描書本得到的影像,使用者輸入認正文字的同時,也幫忙了一件重要的工作,就是把掃描的書本影像,轉換為電腦看得懂的字母。如果要機器完成這個步驟,需要 OCR (Optical Character Recognition) 的技術,也就是電腦透過一些數學模型,從掃描影像去預測對應到哪些字母。但是因為掃描的影像可能會有雜訊,或者手寫字母不像印刷字母一般整齊,數學模型的預測常常不夠準確,要校正不如直接請一位工讀生來打字。因此 reCAPTCHA 這個機制,就能夠讓大家在認證的同時,滴水穿石,慢慢地把 OCR 用人力來解決,但是完全免費!使用者也玩得盡興。

拼圖讓電腦學習影像分類

所以,在看過上面兩個例子之後,我們要怎樣子用拼圖網站,讓使用者玩得盡興的同時,也讓電腦學習影像分類(categorization)呢?這就是今天想要提出的構想。

首先,拼圖可以依照難易度,有大塊拼圖,有小塊拼圖。其次,拼圖可以兩個人一起玩,加入社交 (social) 的元素。當然啦!現在在構思網站的時候,反射動作一定要想的四個項目分別是:Web2.0使用者貢獻內容、手機移動 (mobile)、地區化應用 (location-based)、以及社交化 (social)。Web2.0有了,手機版要開發也可以,地區化則是要在想想,社交化則是讓遊戲增加趣味的方式之一。

接下來就是要如何讓電腦從使用者的行為產生的資料,來學習影像分類了。要怎麼做呢?最近幾年常常有食物添加不好的替代品,為了降低成本卻成為黑心貨的事情發生。reCAPTCHA的兩個單字,其中一個加入了沒有答案的單字,然後用大數法則,使用者一多,自然正確答案會浮現。不過我們也不能說 reCAPTCHA是黑心,畢竟情況不一樣,reCAPTCHA不是拿來吃的對吧!

所以在拼圖裡面,要加入什麼,滲入什麼呢?我們可以讓使用者知道(informed consent),在拼圖的片段裡面,我們會把某幾塊,換成不是這張圖片所切割下來的片段。使用者資料累積足夠多,自然會知道哪些圖片在人類看起來,是類似的圖案片段。也就是說,我們找到了圖片世界裡面的同義字 (synonym),或稱為「同義圖」。這些片段可能光線眀暗度、線條解析度、位置方向度,有一些稍微的差距,但是在一整張圖片的上下文範圍之內,人類可以把他們當成是同樣的東西,就如同一個句子裡面,可以代換同義字(synonym),讓句子換句話說,但是意思不變!

機器仍舊扮演重要角色

不過這個拼圖網站也不完全都是人類做白工,機器仍舊扮演一些重要的角色。譬如說尋找其他圖片相似的片段,來給現在這位使用者拼圖,仍舊需要一些演算法來幫助,只不過機器總有辨識錯誤的情況,這時候使用者就是臨門一腳,最後一道過濾片段的關卡。

另外重要的部分,則是機器本身學習的部分。每個相同的片段,彼此互為同義圖,機器裡面可以用一個node節點表示,並且連結這些片段。越小的片段,對於機器來說越容易比對相似度,因為一個 10*10的片段,裡面的變化種類,會比較少,相似度的比對也就比較容易讓機器猜對。

接著因為使用者可以嚐試同一張圖片不同大小的片段拼圖,因此可以讓機器學習到,哪些同義圖,可以彼此代換,並且組成更大張的同義圖,形成一個同義圖的階層分類 (hierarchical classification)。到最大張圖片的時候,經過長時間學習,機器就比較有機會,可以透過由下而上 (bottom-up) 的相似比對代換同義圖階層樹,學習到哪些圖片,即使看起來pixel差距很多,但是其實是同一類的圖片,屬於同一個類別 (category),譬如說同一個人的人臉,或是同一個性別的人臉,或是車子,或是椅子的類別

圖片的分類歸類 (categorization),對於電腦來說也是如同OCR一樣,是個滿大的人工智慧(AI: artificial intelligence)挑戰。因此這個拼圖遊戲,除了讓使用者玩的盡興,另一方面也希望讓電腦能夠透過這個方式,如同reCAPTCHA、PhotoShoot等遊戲,學習圖片歸類 (categorization) 這個工作。

拼圖網站使用者機制及可能獲利方式

目前寫軟體想要賺錢,如果不是直接買賣軟體,那麼就必須和硬體一同銷售,否則就只剩廣告一條路。因此,拼圖網站可能沒辦法直接買賣,也不是硬體的必須功能,大概就剩廣告這條路了。其他社交網站則是可以嚐試,譬如說 Facebook API開發小遊戲,或是即時通MSN的小遊戲,或是iPhone API開發手機版的小遊戲等等。

那麼使用者而言,有哪些享受呢?除了一時的遊戲的盡興、以及社交需求的滿足以外,長期來說,使用者教會了電腦如何影像分類,這項功能可以回饋給使用者,讓使用者可以做比較精確的圖片搜尋。譬如說使用者可以像是拼圖一樣,用一些現有的圖片片段,來找一個完整的圖片。而電腦已經有同義圖連結,並且有同義圖的階層分類,因此可以更準確地作(片段)圖找(完整)的搜尋工作。

甚至還可以依照比例原則,使用者玩拼圖的時候,如果每次玩遊戲可以滲入比較多張不是原來圖片的片段,並且給的答案接近大數法則得到的標準答案,就會得到比較高的點數,這個點數除了使用者可以得到心理上的滿足,也可以在電腦回饋圖片搜尋功能的時候,作一個區隔,譬如說點數多的使用者,可以讓圖片搜尋演算法跑比較久,找尋比較精確的結果等等。

結語

這個拼圖網站的構想,就是想一邊讓使用者在遊戲中達到社交功能或遊戲功能,一邊讓電腦學會影像分類,學習的結果可以回饋給使用者,而開發軟體的人也可以先選擇廣告的獲利方式。這個想法開放大家使用,可以自行開發,只要不要拿去申請專利變成是自己發明的就好。當然啦,如果已經有這個想法,甚至已經實做出來了,那麼就純屬雷同巧合,可以再想想有沒有其他可以區隔特點的地方。

為了至少Google一下,也貼上Google搜尋「拼圖」和「拼圖網站」、「pintu」、「jigsaw」的連結。這個網站「拼圖製造機」有線上拼圖功能,不過也許可以加上上述的這些功能嚐試一下囉!

 

延伸閱讀

喜歡這篇文章嗎? 分享出去給作者一點鼓勵吧!