2017年1月18日 星期三

[Java] 將照片的像素資料儲存成csv檔

之前Show Me The Code的講者介紹 Machine Learning 的 Python版本,上星期找到如何用 R 做之後,就只差準備資料。

記得學Java時有處理過圖片的。以下就是要將 3 (MaxN) 張 32*32 (Heigth*Width) 的JPEG 相片,轉換成灰階資料,儲存成 3*1024 的CSV 檔案。

當中幾個 Functions 提供以下功能:
  1. 相片轉換成灰度,記錄到 2D Array:
    convertTo2DUsingGetRGB() 或 convertTo2DWithoutUsingGetRGB()
  2. 2D Array 轉換成 1D Array:
    two2oneD()
  3. 3. 2D Array 儲存成 Csv 檔:
    save2csv()

2017年1月13日 星期五

[R] Show Me The Code - Machine Learning的簡易入門

上星期去了一個程式員的講座交流活動,6個講者就著不同題目介紹和展示相關的coding。怎樣擔起一場有魅力的演說,這種能力很多時候都需要。大約10分鐘的演講,不用Powerpoint的投影片,即場示範效果和做法。同一個活動,今個星期就見到別人已經好好地寫出一篇『親睹Machine Learning辨別靚仔靚女』

收工到場時已經錯過第一位講者講的WebVR。第二位分享用elm這個前端應用開發的經驗,只有少量Javascript認識的我只記得它是讓開發者可以寫完後compile成HTML+CSS+JS,因為先編譯,就不會等到執行時才出現運行時期的錯誤。第三位的標題很吸引,如何用十分鐘開發Facebook Bot』。原來前排見過的應用程式是透過這種工具開發。這技術可以充當你專頁的回覆的機械人,也可以是當FB Messager成為你應用程式的用戶介面。講者用的應該是PHP,網上也有其他用Node.JS,Python 的示範。

「[程式開發] Facebook Messenger 聊天機器人 API 環境建置 教學 (Node.JS)」

「用 Python 開發 Facebook Bot」


第二節開始的一個講者介紹API.AI,雖然示範的只是特定句子的對答,但API.AI這家被Google收購了機械人對話開發公司,還做到更多型式的文字/語音辨析。然後見到R、Python這些比較有親切感的語言。 R有電鋸陳分享他在Network Analysis的過程中,用Rcpp套件以C寫looping 的經驗,這樣編譯和運行的時間可以比用apply function的即譯式更快。之後嘗試rJava時可以留意這個用法吧。不過他的分享中其實有很多時間是放在解釋研究的方法:怎樣的數據形式、什麼是Network analysis 的Triad Census。他做過的分析和文章可以參考明報的報道,報道版當時也讓我深感佩服,原來香港還是有做數據分析的人。

「通識導賞﹕佔領時代的facebook專頁版塊巴爾幹化社會網絡分析」

「數據新聞:香港網絡生態系列之三 沒有最撕裂 只有更撕裂——後佔領時代的Facebook專頁板塊」

用Python 的Andy展示的是所謂Machine Learning、Deep Learning 今天已經可以如何容易地做到。示範用 Keras套件 以神經網絡Neural Network 的方式分辨男或女的面孔照片。有男女各大約1300+ 張相片,32*32 pixel的黑白大頭照。轉換成共約2800行1024列的數據集。2/3 Training, 1/3 Testing。想想這件事應該可以用R 做吧?如果先準備好代表這些相片的矩陣,就可以讓R做緊接的神經網絡分析。數據仍需要準備,但Coding的例子呢? 有,Google 一下就找到 R-Bloggers 上的Coding 例子:

2017年1月5日 星期四

香港的郊野公園動植物記 - 2016年末

上年報了AFCD郊野義工的導賞計劃,完成了蝴蝶導賞的訓練和評核等基本要求後,今年卻一直未有空,到年尾才出來開始。在服務別人之餘也看看自己可以遇到什麼品種,拍拍照。之後見相機中還有9月時跟人到大埔滘夜探青蛙時的相,一次過整理這些動植物的相。

大埔滘

青綠色的蛇,在香港最出名的一種大概是青竹蛇,牠是香港毒蛇中常見的一種,而這裡另一種更常見、無毒、青綠色的翠青蛇就因而經常被誤認。青竹蛇是紅眼白腹赤尾,頭呈三角型的;而全條青色橢圓形頭的則是翠青蛇。好幾次在野外見到的蛇都是翠青蛇。如果不想碰運氣的話,見過在鰂魚涌紅屋的展館中就有飼養。
翠青蛇