236 Followers
·
Follow

香港政府近日以發展「智慧城市」為由,積極推行包含人臉辨識功能的「多功能智慧燈柱」,收集大量公眾數據。這邊廂「智能城市」技術剛要起步之際,美國加州奧蘭多省議會不久前則宣布禁止政府機構及警隊使用臉部辨識技術。理由是認為臉部辨識技術爭議太多,並不適合警方用於「起底」用途:

Face recognition technology runs the risk of making Oakland residents less safe as the misidentification of individuals could lead to the misuse of force, false incarceration, and minority-based persecution.

除了技術上的問題(例如準確度不足)外,系統針對有色人種和女性的辨識上存在顯著「技術偏見」 ,再加上全天候監控帶來的私隱問題,奧蘭多政府認為人臉辨識監控試驗計劃目前弊多於利,決定終止計劃。

Image for post
Image for post
智能燈柱外貌 - 圖片來源:https://inno.emsd.gov.hk/tc/it-solutions/index_id_236.html (機電工程署)

開始探討「多功能智慧燈柱」的利弊之前,我們先看看每枝價值港幣 68 萬的燈柱具備甚麼功能。

燈柱的智能裝置及設備
燈柱的智能裝置及設備
智能裝置及設備

除了常見的 Wifi、藍牙、無線射頻識別 (RFID) 技術,還有氣象和交通監察的裝置。我們最關心的就是當中的「Artificial intelligence image processing」系統。

相信現階段大部份的「人工智能」,都集中在圖像處理方面,主要從全景攝影機的影像當中分析出有用的資訊。

技術探討:AI 如何監控?

(編按:多功能智慧燈柱目前並未開啟監控設備技術,直到在未來數月成立諮詢委員會,與社會達成共識,以及釋除公眾對多功能智慧燈柱的疑慮後,才會安裝和開啟相關功能)

以下內容主要探討 AI 如何透過所獲得的資料達到監控目的。

首先,最簡單就是從影片或相片中,分析出「人像」、「物件」、「文字」的訊息。一般來說,我們會使用一個有關 object detection 的深度學習卷積神經網絡(CNN):YOLOv3。

範例:輸入以下圖片。

Image for post
Image for post

透過 YOLOv3 分析,我們得知圖片中有 5 個人,而且還有不少「Chair」和「TVmonitor」。

分析圖片
分析圖片

配合高空監察片段使用的話,其實具有很大威力。最近有機構使用 AI 進行點算人數,也是利用同樣的技術。

第二步,有了「個別人像」圖片,就可以透過比對資料庫,分析「人像」的身份。圖中有一個正面的人像,我們就可以透過程式剪裁,輸入並進行臉部辨識。

Image for post
Image for post

網上亦有不少的 face recognition library,只要有人像的數據,我們也可以自己打造一個人臉辨識系統。更可以直接在 Rasberry-pi 上運行,建立一個小型 IoT。

Image for post
Image for post

配合其他資訊,例如地理位置、時間等等,便可以分析出某人出現的確實時間和地點。

來看看中國應用在紅綠燈過馬路的例子:

第三,如何獲取更多資訊?

除了身份之外,程式可以解構更深入的資訊,從而分析當下的情況。其中一個常用的技巧,就是「姿態辨識」(Pose-recognition)。

透過姿態辨識,可以得知人物大概在做甚麼動作,例如「站立」、「坐下」、「走路」、「跳舞」、「舉手」等等。

Image for post
Image for post
Image for post
Image for post
AI 更可以同時分析多人動態

另外,透過收集 RFID、藍牙、Wifi 等無線傳輸資訊,也有助鎖定人物身份。

理論與實戰:有沒有方法避開「天眼」?

雖然政府聲稱並不會在第一階段使用上面提到的技術,但現時已經有類似「影快相」的計劃,透過辨認車牌號碼來偵測超速車輛、分析不法傾倒廢料等違法行為。

相信擔心個人私隱被侵犯的市民,對於被監控和分析都會持有戒心。說實在,滿街的鏡頭實在難以一一閃避,那麼如何可以避免身份被系統分析?

簡略來說有以下技巧:

1. 分身術

德國的 HyperFace 研發了人臉迷彩圍巾,在電腦眼中,可能會認為有「1200 張人臉」。

實測:似乎無法令比較成熟的系統產生混亂。

Image for post
Image for post
HyperFace 人臉迷彩圍巾實測:似乎無法令比較成熟的系統產生混亂。

2. 易容術

嘗試利用化妝技術令系統無法辨認你的「臉部」,避開人臉辨識:

實測:似乎電腦還是很厲害,能辨認出這是一張人臉。而且這樣走在路上反而可能直接被截查,還是戴個口罩好了。

Image for post
Image for post

3. 使用道具

有研究人員嘗試「攻擊」深度學習的根源,企圖誤導系統令分析結果出錯。

Image for post
Image for post
研究人員戴上特製的眼鏡

實測:似乎效用不大。未知是否能辨認出身份。

Image for post
Image for post

4. 隱形斗篷

和第 3 點基本上是同一道理,只是目標改成辨識人體的 YOLOv3 系統。

Image for post
Image for post
右邊的人員因為身上有特別標誌,影響了系統的判斷。

以上各種方法都還在研究階段,加上深度學習的進步速度驚人,實在難以確保上述方法有效。目前最佳保密方法仍然是蒙面。(或者這就是新疆為甚麼有「禁蒙面法」的原因?)

結語

深度學習技術發展日趨成熟,要建構一個臉部辨識系統並不困難。甚至一般市民也可以利用網上資源,打造出一個自家的臉部識別系統。不過,就像想要成功建立一個 Airbnb 平台一樣,系統最重要的部分仍然是背後的大數據。

對政府機構來說,駕駛執照、回鄉證、護照和身分證明文件都有臉部照片資料,要建立人臉辨識數據庫輕而易舉。

雖然目前政府內部的個人資料機構仍然沒有互通,但從醫管局的 「急症室資訊系統」 (AEIS) 和警方的「重大事件調查及災難支援系統」(MIIDSS) 相連事件被揭發後,有關市民的個人私隱安全性的確存在隱憂。

以技術層面來說,現時臉部辨識技術已經相當先進。再加上「智慧城市」和「數碼個人身分」(eID) 計劃,要達成上述監控的技術門檻其實並不高。

現在的聚焦點反而是,應該像奧蘭多政府式的「非不能也,實不為也」;還是傚仿中國,向治安和方便性靠攏?

有人認為治安比私隱重要,你認同嗎?

現代城市裡,處處潛伏著私隱危機 - 你有信心走在街頭而確保沒有被任何一部攝錄機拍到嗎?

事實上,除了被動的監控,更多機構為了方便加上了「臉部認證」功能,讓使用者自願將個人私隱雙手奉上。

參考連結

我們曾為多間知名企業打造 machine learning application,對開發 AI 應用具有豐富經驗。如果你正在尋找合作夥伴一起打造 AI 產品,來跟我們聊聊吧!

Originally published at https://blog.oursky.com on August 15, 2019.


Image for post
Image for post

“10 Things I Regret About Node.js” — Ryan Dahl

「養不教,父之過」- Node.js founder Ryan Dahl 在 JSconf 2018 點評了十個在設計和更新 Node.js 時犯下的錯誤。

發現中文圈子還沒有太多關於這資訊的整理,在這裡輕輕的寫一下。

2008年 Chrome 才剛剛出現(現在已經更新到v66.0了);而 Node.js 也其實也是至十年冒起的代表 - 它只是2009年的產物,現在出到version 10 ,卻在軟件界家傳戶曉了。

不過有用過 Node.js 作 production 的工程師,應該很同意,Node.js 其中的一個中重要的 f̵e̵a̵t̵u̵r̵e̵ 就是:Memory leak。所以在實戰時,往往都要用 forever 來自動定時重啟 Node.js Server。

🔧 很多基層的設計錯誤

要了解這些錯誤及其重要性,可能要對程式語言設計和軟件工程有深入點的認識。Ryan Dahl 在Node.js 中的設計和應用,都直接或間接都影響了不少重要的軟件,甚至整個軟件行業。(因為有不少軟件和平台都以 Node 為根基)

Ryan Dahl 在演講中用了個很嚴重的說法指出:

動態語言適合用於一次性的科學用演算,而 JavaScript就是最好的例子。

不然,Node中充滿著值得投訴的缺陷。

原文:

Dynamic languages are the right tool for scientific computing, where often you do quick one-off calculations. And JavaScript is a the best dynamic language.

Rather I will complain about all the warts in Node.

真的是相當嚴重的悔懊。 因此,他以「Design mistakes in Node」為題,指出了十個「悔不當初」的錯誤:

後悔之一:沒有堅持使用 Promise

在 2009年六月在 Node 中開始引入 JavaScript 的 Promises,但又在 2010年二月就移除掉了。

結果,隨著日子久遠,Node裏面就遍佈著 async/await 和 promise 的不同 async…


Image for post
Image for post

As a company founded by developers, we created an office that would naturally attract other passionate geeks to join us. But as we hired designers, and then business team members, we realized our new team members didn’t always understand us.

Hence we’ve prepared a general guide to help you communicating with your geek friends.

1. “X is a subset of Y.” — Often heard in arguments between developers.

Image for post
Image for post

Computer Scientists often emphasize that X is a kind of Y, but Y is not X.

Here’s a real life example:

“Matcha is a subset of green tea. They are different!”

This is often heard when developers are arguing about naming conventions and categorising APIs. Some of these arguments are obvious but some of them might be ultra confusing. Here are some concepts to get you started:

Level 1 : An apple is a subset of fruit but not a fruit is not an apple.
Level 2 : Photo is a subset of Image but not vice versa. …

About

David Ng

Software Developer | Previously Product & Growth @ SCMP | davidng.hk | Hiking and camping.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store