2018年2月22日 星期四

NodeJS 產生 QRCode

# QRCode > 本篇介紹如何使用 NodeJS 產生 QRCode,這裡使用的是[soldair/node-qrcode](https://github.com/soldair/node-qrcode)的套件,以下將介紹幾個較常用的情境和範例程式。 [Github範例程式](https://github.com/MarcWang/nodejs-tutorial/tree/master/1.image-qrcode) ## 產生 QRCode 並輸出成 url ``` js const QRCode = require('qrcode'); const text = 'Hello Marc!!'; QRCode.toDataURL(text, (err, url) => { if (err) throw err; console.log(url); }); ``` --- ## 產生 QRCode 並儲存成圖片 ``` js const QRCode = require('qrcode'); // 容錯率 L < M < Q < H const opts = { errorCorrectionLevel: 'H', version: 2 }; const text = 'Hello Marc!!'; const path = './qrcode.png'; QRCode.toFile(path, text, opts, (err) => { if (err) throw err; console.log('saved.'); }); ``` ## 產生自訂顏色的 QRCode ``` js const QRCode = require('qrcode'); // 容錯率 L < M < Q < H const opts = { errorCorrectionLevel: 'H', version: 2, color: { dark: '#00F', light: '#0000' } }; const text = 'Hello Marc!!'; const path = './qrcode.png'; QRCode.toFile(path, text, opts, (err) => { if (err) throw err; console.log('saved.'); }); ```
continue reading NodeJS 產生 QRCode

2018年2月20日 星期二

三竹簡訊 NodeJS 的使用方式

## 三竹Mitake > 三竹簡訊API使用方式,必須先跟三竹業務申請開通以公司帳號註冊的帳號,第一次必須先變更密碼才能成功發送簡訊,三竹 API 的 Host 位置為 smexpress.mitake.com.tw , 選擇 Http 方式使用 Port(9600),Https 方式則用 Port(9601),如果是 Http 方式大概會像 `http://smexpress.mitake.com.tw:9600/XXX?username=XXX&password=XXX&...`,以下簡單介紹基本發送及查詢的使用方式。價格最低消費500元=582點,等於每一筆0.86元。 - [三竹簡訊(二站)](https://sms.mitake.com.tw/member/index.jsp?t=1519109355166C3CCD2FE752F47DFE186CD3B006CE327) - [三竹簡訊(三站)](https://msg2.mitake.com.tw/SMS/Home.jsp?t=1519109439596FDDE6CD1EB896E19D4B743073986A64A) - 本文章介紹是使用三站的帳號 [Github範例程式](https://github.com/MarcWang/nodejs-tutorial/tree/master/9.sms) ### 發送單筆簡訊 > 三竹發送簡訊方式分為單筆跟多筆,多筆會用POST方式,因為我的使用情境用不到多筆發送,所以這裡只介紹單筆的方式。 ```js const Request = require('request'); const querystring = require('querystring'); const username = process.env.MITAKE_USR; const password = process.env.MITAKE_PWD; const phone = '0931XXXXXX'; const text = '你好嗎??'; const msg = querystring.escape(text); const api = `${HTTP_HOST}/SmSendGet.asp?username=${username}&password=${password}&dstaddr=${phone}&smbody=${msg}&encoding=UTF8`; Request.get(api, (error, response, body) => { if (error) console.error(error); else console.log(body); }); ``` ### 查詢餘額 > 回傳剩餘點數 ``` js const Request = require('request'); const username = process.env.MITAKE_USR; const password = process.env.MITAKE_PWD; const api = `${HTTP_HOST}/SmQueryGet.asp?username=${username}&password=${password}`; Request.get(api, (error, response, body) => { if (error) console.error(error); else console.log(body); }); ```
continue reading 三竹簡訊 NodeJS 的使用方式

2018年1月26日 星期五

JSON匯出成CSV檔 NodeJS使用方式

# json2csv 使用方式 > JSON 轉成 CSV,使用的套件為[json2csv](https://github.com/zemirco/json2csv/tree/master) ## 安裝 ``` sh $npm install json2csv --save ``` ## 範例 --- ### 1.基本使用方式 ``` js const json2csv = require('json2csv'); const fs = require('fs'); const fields = ['car', 'price', 'color']; const myCars = [{ "car": "Audi", "price": 40000, "color": "blue" }, { "car": "BMW", "price": 35000, "color": "black" }, { "car": "Porsche", "price": 60000, "color": "green" }]; const csv = json2csv({ data: myCars, fields: fields }); fs.writeFile('file.csv', csv, (err) => { if (err) throw err; console.log('file saved'); }); ``` 產生結果 ``` text "car","price","color" "Audi",40000,"blue" "BMW",35000,"black" "Porsche",60000,"green" ``` --- ### 2.使用中文的使用方式 ``` js const fields_chinese = ['車款', '價位', '顏色']; const cars_chinese = [{ "車款": "奧迪", "價位": 40000, "顏色": "藍色" }, { "車款": "寶馬", "價位": 35000, "顏色": "黑色" }, { "車款": "保時捷", "價位": 60000, "顏色": "綠色" }]; const csv_chinese = json2csv({ data: cars_chinese, fields: fields_chinese }); ``` 產生結果 ``` text "車款","價位","顏色" "奧迪",40000,"藍色" "寶馬",35000,"黑色" "保時捷",60000,"綠色" ``` --- ### 3.定義欄位名稱的使用方式 ``` js const json2csv = require('json2csv'); const fs = require('fs'); const fields_defined_name = [{ label: 'Car Name', value: 'car' }, { label: 'Price USD', value: 'price' }, { label: 'Car Color', value: 'color' }]; const myCars = [{ "car": "Audi", "price": 40000, "color": "blue" }, { "car": "BMW", "price": 35000, "color": "black" }, { "car": "Porsche", "price": 60000, "color": "green" }]; const csv_defined_name = json2csv({ data: myCars, fields: fields_defined_name }); ``` 產生結果 ``` text "Car Name","Price USD","Car Color" "Audi",40000,"blue" "BMW",35000,"black" "Porsche",60000,"green" ``` --- ### 4.物件方式的欄位名稱 ``` js const fields_properties = ['car.make', 'car.model', 'price', 'color']; const cars_properties = [{ "car": { "make": "Audi", "model": "A3" }, "price": 40000, "color": "blue" }, { "car": { "make": "BMW", "model": "F20" }, "price": 35000, "color": "black" }, { "car": { "make": "Porsche", "model": "9PA AF1" }, "price": 60000, "color": "green" }]; const csv_properties = json2csv({ data: cars_properties, fields: fields_properties }); ``` 產生結果 ``` text "car.make","car.model","price","color" "Audi","A3",40000,"blue" "BMW","F20",35000,"black" "Porsche","9PA AF1",60000,"green" ``` --- 可參考[Github](https://github.com/MarcWang/nodejs-tutorial/tree/master/4.file-json2csv)
continue reading JSON匯出成CSV檔 NodeJS使用方式

2018年1月25日 星期四

Facial Recognition(人臉辨識、人脸识别、顔認識システム、얼굴 인식)

# Facial Recognition(人臉辨識、人脸识别、顔認識システム、얼굴 인식) 人臉辨識技術的研究始於1960年代末期,但一直到1990年代後期,一些商業性的人臉辨識系統,才開始進入市場,所以Face Recognition人臉辨識屬於新的技術,也是未來生物辨識中相當重要的一環,以下是我目前所注意的一些人臉辨識公司以及目前的技術和產品。Human-Computer Interaction (HCI)雖然現在人臉辨識率已經達到90%以上,但環境的變化依然是最大的問題。 2D人臉辨識技術已經走到技術的瓶頸,不管是傳統的電腦視覺演算法還是近來火紅的深度學習都各有優缺點,但實際應用的情境中,時常遇到的利用照片或影片欺騙攝影機已達到通過辨識。後來有人使用3D人臉辨識技術加以防範,因為多一層深度特徵可以計算是否為活體。近年許多公司提出使用人臉辨識結合RFID或BEACON、指紋等相關技術,利用雙重關卡以確保防止誤判,或者提升辨識速度。但一開始使用人臉辨識最主要的初衷就是不需要再攜帶其他可身分驗證的裝置。都各有利弊。 目前手機App廣泛使用Face Detection 及 Feature Extraction這兩類的服務,最常見的就是修圖軟體或者是影片遮罩的應用。目前有很多公司都有提供線上的WebAPI供大家開發,在移動裝置更提供ios及android的SDK。算是非常普遍的技術支援。以下文章也有提供幾家公司可參考。 目前使用人臉辨識常遇到的瓶頸,當需比對的人臉資料庫太大時辨識率會下降及辨識速度的問題。無法在同場域幫該使用者建檔,必須透過其他途徑建檔,如證件或照片等來源當作建檔,這都會大大影響辨識率的效果。環境光線隨著時間變化改變大也會大大影響辨識結果。 **大部分的人分不清楚人臉偵測與人臉辨識,經常可以看到一些文章或者新聞標題寫著人臉辨識技術,但實際點進去才發現只是人臉偵測,到底差別在哪裡?請看下列一個簡易流程圖。** [![](https://2.bp.blogspot.com/-u4qQhzPBvXg/U9za6jYEqKI/AAAAAAAABCw/0OqPwxkbjK8/s1600/face+detection+and+facial+recognition.png)](http://2.bp.blogspot.com/-u4qQhzPBvXg/U9za6jYEqKI/AAAAAAAABCw/0OqPwxkbjK8/s1600/face+detection+and+facial+recognition.png) 整個流程可以再細分為: [![](https://1.bp.blogspot.com/-ZZTZuZllBdM/VYE9kmJKBGI/AAAAAAAABno/4aZjEMmBcPI/s640/facial%2Brecognition%2Bflow.png)](http://1.bp.blogspot.com/-ZZTZuZllBdM/VYE9kmJKBGI/AAAAAAAABno/4aZjEMmBcPI/s1600/facial%2Brecognition%2Bflow.png) 其實,從人臉可得到的資訊並不只有身分辨識,比如說可以得知表情、性別、年齡、眼鏡及眼睛視角等應用。 **美國聯邦公平交易委員(Federal Trade Commission)對人臉辨識科技提出幾項建議:** - 研發及利用臉部辨識科技的公司,要保持客戶臉型數據的安全及隱密。 - 不能永久保持客戶的臉部數位資訊。 - 不能在有個人隱私顧慮的地方架設辨識系統,如洗手間,更衣室,醫療中心,並應避免拍攝兒童。 - 需要有招牌註明辨識系統在運作。 - 社群網路如臉書應該要有開關辨識系統的功能。 - 如要收集臉部資訊,需要先告知。 - 不使用「辨識陌生人」功能,除非被辨識者巳經同意被別人辨識。產業分析界指出,臉部辨識科技有如一把雙面利劍;一方面可以有效的保護個人隱私;另一方面有可能失去個人隱私。 --- ## 商業應用 ### 零售業 - 利用人臉偵測判斷消費者是否觀看廣告或商品。 - 預估消費者年齡及性別判斷廣告吸引主要目標,以利量測廣告效益。 - 整合POS機加入消費者年齡及性別資訊,事後統計商品消費資訊使用。 - 使用人臉追蹤技術計算消費者觀看商品或廣告時間。 - 透過人臉辨識VIP客戶名單,快速且到位服務重要賓客。 - 使用微笑預估提升店員服務態度及消費者滿意度。 ### 監控業 - 辨識所有進入家中的人員,防止小偷。 - 身分驗證 - 可疑人士提醒 --- ## 各國人臉偵測用語 - 台灣 - 人臉偵測 - 中國 - 人脸檢測 - 日本 - - 美國 - Face Detection - 韓國 - 얼굴 인식 --- ## 各國人臉辨識用語 - 台灣 - 人臉辨識 - 中國 - 人脸识别、人像识别、面部识别 - 日本 - 顔認識、システム - 美國 - Facial Recognition - 韓國 - 얼굴 인식 --- ## 人臉辨識的障礙 - 光線變化(illumination ) - 單方向性強光 - 陰影 - 姿勢變化(pose changes) - 俯仰角過大、側臉 - 表情變化(facial expression) - 大笑 - 年齡改變(age variation) - 皺紋 - 五官深度 - 臉部遮蔽(occlusions) - 墨鏡 - 帽子 - 口罩 --- ## 研究方法 Research Methods - knowledge-based method(自己何謂定義人臉) - feature invariant approaches(人臉結構特徵) - template matching methods(建立人臉雛形比對) - appearance-based methods(臉的外型邊緣) --- ### 相關演算法 Algorithm - Active Shape Model(ASM) - Active Appearance Model(AAM) - AdaBoost - Covolutional Neuron Networks(CNN) - Deep neural networks(DNNs) - EigenFace - FisherFace - Gray Scale - Gabor Filter - Hidden Markov Models (HMM) - Histogram of Oriented Gradients(HOG) - Histogram of Shearlet Coefficients(HSC) - Linear Discriminant Analysis(LDA) - Local Binary Pattern(LBP) - Local Directional Pattern(LDP) - Local Ternary Pattern(LTP) - Local Tetra Pattern(LTrP) - Local Adaptive Teranry Pattern(LATP) - Local Gabor Binary Pattern(LGBP) - Local Vector Pattern(LVP) - Nearest Neighbor(NN) - Sobel Filter - Support Vector Machine(SVM) - Sparse Representation Classification(SRC) - Scale-Invariant Feature Transform(SIFT) - Speed-Up Robust Feature(SURF) - Tracking-Learning-Detection(TLD) - Part-Gabor Filter - Principal Component Analysis(PCA) - Patterns of Oriented Edge Magnitudes(POEM) - Image Processing - Histogram Specification - Histogram Equalization - Gamma Correction - Difference of Gaussion Filter - Contrast Equalization --- ## 資源 Open Source - 【OpenCV】[http://opencv.org/](http://opencv.org/) - 【Dlib】[https://github.com/davisking/dlib](https://github.com/davisking/dlib) - 【CLM】[https://github.com/TadasBaltrusaitis/CLM-framework](https://github.com/TadasBaltrusaitis/CLM-framework) - 【caffe】[http://caffe.berkeleyvision.org/](http://caffe.berkeleyvision.org/) - 【AForge.NET】[http://aforgenet.com/](http://aforgenet.com/) - 【OpenBR】[http://openbiometrics.org/](http://openbiometrics.org/) - 【Accord.NET】[https://code.google.com/p/accord/](https://code.google.com/p/accord/) - 【libsvm】[http://www.csie.ntu.edu.tw/~cjlin/libsvm/](http://www.csie.ntu.edu.tw/~cjlin/libsvm/) - 【asmlib】[https://code.google.com/p/asmlib-opencv/](https://code.google.com/p/asmlib-opencv/) - 【Stasm】[http://www.milbo.users.sonic.net/stasm/index.html](http://www.milbo.users.sonic.net/stasm/index.html) - 【facereclib】[https://pypi.python.org/pypi/facereclib](https://pypi.python.org/pypi/facereclib) - 【jsfeat】【Javascript】 [https://github.com/inspirit/jsfeat](https://github.com/inspirit/jsfeat) - 【trackingjs】【Javascript】[https://trackingjs.com/](https://trackingjs.com/) - 【face_recognition】【Python】[face_recognition](https://github.com/ageitgey/face_recognition) --- ## 學習平台 - 【愛開發】[http://www.akaifa.com/service/4/face](http://www.akaifa.com/service/4/face) - 【泡麵吧】[http://www.paomianba.com/](http://www.paomianba.com/) --- ## 學術研究單位 - [西安交通大學-人工智能與機器人研究所](http://www.aiar.xjtu.edu.cn/dfrlsjk5.htm) - [Stan Z. Li(李子青)- 中国科学院自动化研究所](http://www.cbsr.ia.ac.cn/Li%20Group/publicationsCH.asp) - [Shiguang Shan(山世光) - 中科院計算所](http://www.jdl.ac.cn/user/sgshan/index.htm) - [Zhi-Hua Zhou(周志华) - 南京大學](http://cs.nju.edu.cn/zhouzh/) - [Prof. Tang Xiaoou, Sean 湯曉鷗教授](https://www.ie.cuhk.edu.hk/people/xotang.shtml) - [芬蘭奧盧大學計算機科學與工程學院](http://www.cse.oulu.fi/CMV/Research) --- ## 應用 Application - [【西班牙劇團TEATRE】 - 微笑辨識收費](http://www.56.com/u89/v_MTE3MDQ3MDMw.html/1030_xl-yyttqlsipu.html) - [【日本環球影城】- 常客可使用人臉辨識系統當作門票](http://www.usj.co.jp/apass/facecertification.html) - [【明星比對】 - 與哪位明星最像](http://www.pictriev.com/?lang=zh) - [【世紀佳緣】- 線上交友](http://www.jiayuan.com/) - [【AsianDating】- 線上交友](http://www.asiandating.com/) - [【Match.com】- 線上交友](http://tw.match.com/) - [【Face Unlock Alarm Clock】- 鬧鐘App](http://dl.pconline.com.cn/download/131791.html) - [【JailBase】- 手機和網頁結合人臉辨識系統,快速比對通緝犯的影像](http://www.jailbase.com/) - [【智慧電鈴】 - 比對來客資訊以不同錄音回答](http://www.hksilicon.com/kb/articles/453980/Chui) - [【FaceIT】 - 遊戲平台](http://play.faceit.com/) - [【Pictrev】-名星比對](http://www.pictriev.com/?lang=en) --- ## 相關公司 Related Company - [倚辰](http://www.face-tek.com/index.php) 【台灣】【產品】 - [笛林傑](http://www.tljtech.com/introduction.php) 【台灣】【產品】 - [天誠盛業](http://www.techshino.com/product/detail.html?id=15) 【中國】【產品】 - [中自維森](http://www.cavision.cn/) 【中國】【產品】 - [汉王](http://www.hanwang.com.cn/) 【中國】【產品】 - [基嘉科技](http://www.chiga.com.tw/pld-facehunterr.htm) 【台灣】【產品】 - [石安](http://www.sazn.cn/rlsb/) 【中國】【產品】【解決方案】 - [眾智益華](http://www.bjzzyh.com.cn/) 【中國】【產品】【解決方案】 - [飛瑞斯](http://www.firscom.cn/index.html) 【中國】【產品】【解決方案】 - [途拓](http://www.touco.cn/article/) 【中國】【產品】 - [智慧眼](http://www.a-eye.cn/index.html) 【中國】【產品】【解決方案】 - [瑞為](http://www.reconova.com/cn) 【中國】【產品】【SDK】 - [寶島極光](http://www.tscl.com.tw/main3_3_2_3.html#t6) 【台灣】【產品】【解決方案】 - [遠漢](http://www.han.com.tw/) 【台灣】【產品】 - [怡群](http://www.biolifetec.com/) 【台灣】【產品】 - [怡鑫](http://www.ecaftech.com/cht/index-2.html) 【台灣】【產品】 - [銀瀑](http://www.impower-tech.com/cn/index.html)【中國】【產品】 - [螢石](http://www.ys7.com/)【中國】【家庭監控】【產品】 - [銳控](http://www.reconbiometrics.com/index.html)【中國】【產品】 - [騰訊](http://open.youtu.qq.com/welcome/index) 【中國】【WebAPI】 - [Acsys](http://www.acsysbiometrics.com/index.html) 【產品】【SDK】【加拿大】 - [ApiCloud.Me](http://apicloud.me/) 【WebAPI】 - [Alchemy](http://vision.alchemy.ai/)【WebAPI】 - [Avalon Biometrics](http://www.avalonbiometrics.com/details/faves_facial_automated_verification_solution.html)【西班牙】【產品】【解決方案】【SDK】 - [Animetrics](http://animetrics.com/) 【美國】【產品】【解決方案】【SDK】【WebAPI】 - [Ayonix](http://ayonix.com/)【產品】【SDK】【日本】 - [Betaface](http://betaface.com/wpa/index.php/products) 【德國】【SDK】【WebAPI】 - [BioID](http://www.bioid.com/) 【德國】【產品】【解決方案】【WebAPI】 - [Biometrypass](http://www.biometrypass.com/) 【智利】【產品】 - [Crossmatch](http://www.crossmatch.com/) 【美國】【產品】 - [CeeQ](http://ceeqme.com/) 【WebAPI】 - [Cybula](http://www.cybula.com/index.htm) 【英國】【產品】 - [CityLive](http://www.mediacooutdoor.co.uk/citylive/)【英國】【產品】 - [EyeDea](http://www.eyedea.cz/) 【捷克】【產品】【WebAPI】 - [FaceCash](https://www.facecash.com/) 【WebAPI】 - [Face++](http://www.faceplusplus.com.cn/) 【中國】【WebAPI】 - [FaceR](http://www.facerapp.com/) 【WebAPI】 - [Face-six](http://www.face-six.com/) - [Google](https://cloud.google.com/vision/) 【WebAPI】 - [Hyperlayer](http://www.hyperlayer.io/)【美國】【SDK】 - [iOmnsicient's](http://www.iomniscient.com/)【產品】 - [Kairos](http://www.kairos.com/)【美國】【WebAPI】 - [KeyLemon](https://www.keylemon.com/) 【WebAPI】【SDK】 - [LinkFace](http://www.linkface.com.cn/index.html#index)【中國】【WebAPI】 - [LYKAON](http://www.face-lykaon.net/product.php) 【日本】【產品】 - [Lambda Labs](http://www.lambdal.com/) 【美國】【WebAPI】 - [Luxand](http://www.luxand.com/index.php) 【SDK】【產品】【WebAPI】 - [Moodru](http://www.moodru.com/landing)【美國】【產品】 - [Neurotechnology](http://www.neurotechnology.com/) 【歐洲】【SDK】 - [NEC](http://tw.nec.com/zh_TW/solutions/security/neoface.html) 【日本】【產品】【解決方案】【SDK】 - [OpenFace](http://openfaceapi.com/) 【WebAPI】 - [Pixuate](http://www.pixuate.com/#) 【WebAPI】【Service】 - [PUX](http://www.pux.co.jp/en/softsensor/faceu.html) 【產品】 - [ReKognition](https://rekognition.com/) 【美國】【WebAPI】 - [Recon](http://www.reconbiometrics.com/tw/a/gongsigaikuang/)【中國】【產品】【SDK】 - [Seeing Machines](http://www.seeingmachines.com/)【美國】【產品】【解決方案】【SDK】 - [SimpliCam](http://www.simplicam.com/)【家庭監控】【產品】 - [Sightcorp](http://sightcorp.com/)【荷蘭】【產品】【SDK】 - [SkyBiometry](https://www.skybiometry.com/) 【美國】【WebAPI】 - [Tastenkunst](http://www.tastenkunst.com/#/brf)【德國】【SDK】 - [TrueFace](https://trueface.ai/) 【WebAPI】 - [Viulib](http://www.viulib.org/index.html)【產品】【SDK】 - [TCIT](http://www.tcit.com.tw/) 【台灣】【產品】【解決方案】【SDK】【WebAPI】 --- ## 常用的人臉資料庫 Face Database [The AR Face Database](http://www2.ece.ohio-state.edu/~aleix/ARdatabase.html) 4,000 color images corresponding to 126 people's faces [BioID Face Database](https://www.bioid.com/About/BioID-Face-Database) 1521 gray level images [The CMU Multi-PIE Face Database](http://www.multipie.org/) 750,000 images of 337 people [The Japanese Female Facial Expression (JAFFE) Database](http://www.kasrl.org/jaffe.html) 213 images of 7 facial expressions [Labeled Faces in the Wild](http://vis-www.cs.umass.edu/lfw/) 13,000 images of faces [Labeled Wikipedia Faces (LWF)](http://www.info.polymtl.ca/~mdhas/LWF/) 8,500 faces for about 1,500 identities, taken from Wikipedia [Yale Face Database](http://vision.ucsd.edu/content/yale-face-database) 165 grayscale images in GIF format of 15 individuals 更多的人臉資料庫請參考:[人臉資料庫](http://ccw1986.blogspot.tw/2015/06/face-database.html) --- ## 相關新聞 Related News - [2018.01.24-春運在即,廣州火車站啟用人臉辨識閘機](http://www.chinatimes.com/realtimenews/20180124002839-260409) - [2018.01.11-義隆人臉辨識,搶攻非蘋](https://money.udn.com/money/story/5710/2922985) - [2017.09.13-聚焦Face ID:Apple Pay人臉支付,比支付寶刷臉支付更安全有隱私嗎?](https://www.bnext.com.tw/article/46138/apple-pay-alipay-face-id) - [2016.03.25-NEC表示辨識速度達到1秒300萬筆](http://www.chinatimes.com/newspapers/20160325000320-260210) - [2016.01.02-台灣銀行結合人臉辨識技術迎賓](https://tw.news.yahoo.com/%E8%80%81%E8%A1%8C%E5%BA%AB%E5%B0%AC%E6%96%B0%E7%A7%91%E6%8A%80-%E5%BC%95%E9%80%B2%E4%BA%BA%E8%87%89%E8%BE%A8%E8%AD%98-%E6%A9%9F%E5%99%A8%E4%BA%BA-215006562--finance.html) - [2015.12.10-豪宅電梯結合人臉辨識](http://home.appledaily.com.tw/article/realtimenews/20151210/750549/%E5%B0%B1%E5%83%8F%E9%9B%BB%E5%BD%B1%E3%80%80%E9%9D%A0%E4%BA%BA%E8%87%89%E8%BE%A8%E8%AD%98%E5%BE%9E%E9%9B%BB%E6%A2%AF%E7%9B%B4%E9%81%94%E4%BD%8F%E5%AE%B6%E6%A8%93%E5%B1%A4) - [2015.11.01-Google 相簿人臉辨識搜尋支援台灣](http://www.bnext.com.tw/ext_rss/view/id/1038521) - [2015.08.26-智慧監控與辨識、智慧製造展出人臉辨識大數據分析](http://www.chinatimes.com/newspapers/20150826000346-260210) - [2015.07.30-Win10支援人臉辨識開機](http://www.ithome.com.tw/news/97792) - [2015.06.16-Facebook發表相片分享App 具人臉辨識功能](https://tw.news.yahoo.com/%E8%87%89%E6%9B%B8%E6%8E%A8%E7%9B%B8%E7%89%87%E5%88%86%E4%BA%ABapp-%E5%85%B7%E4%BA%BA%E8%87%89%E8%BE%A8%E8%AD%98%E5%8A%9F%E8%83%BD-082505914.html) - [2015.05.30-中國發表第一台人臉辨識ATM](http://www.cna.com.tw/news/acn/201505300201-1.aspx) - [2015.05.22-思科發表智慧視訊會議系統,透過聲音、人臉偵測自動追踨發言者](http://www.ithome.com.tw/news/96148) - [2015.05.01-微軟 How-old.net 魅力引起大家關注人臉辨識熱門的WebAPI平台](http://ccw1986.blogspot.tw/2015/05/how-oldnet-webapi.html) - [2015.03.29-ATM可望使用人臉辨識領錢](http://www.appledaily.com.tw/realtimenews/article/new/20150329/582909/ATM%E6%87%89%E7%94%A8%E4%BA%BA%E8%87%89%E8%BE%A8%E8%AD%98%E3%80%80%E9%9D%A0%E8%87%89%E9%A0%98%E6%AC%BE%E5%8F%AF%E6%9C%9B%E6%88%90%E7%9C%9F) - [2015.03.24-美國機場導入人臉辨識測試](http://money.udn.com/storypage.php?sub_id=5641&art_id=785671) - [2015.03.03-AVG提出對抗人臉辨識的眼鏡](http://www.ithome.com.tw/news/94298) - [2015.02.20-入歐旅客將實施指紋加人臉辨識](http://www.cna.com.tw/news/aopl/201502200220-1.aspx) - [2015.02.09-日本飯店使用機器人取代人力,並以人臉辨識取代鑰匙](http://www.ithome.com.tw/news/93950) - [2014.12.18-販賣機靠著人臉辨識推薦購買者](http://news.tvbs.com.tw/entry/558954) - [2014.11.06-前線媒體結合人臉辨識吸引Intel投資](http://www.chinatimes.com/newspapers/20141106000055-260202) - [2014.11.05-中國人臉辨識公司Face++完成B輪美金2200萬融資](http://tech.sina.com.cn/i/2014-11-06/doc-iavxeafr4447805.shtml) - [2014.09.24-零售業導入人臉辨識啟動全新商業模式](http://money.udn.com/storypage.php?sub_id=5640&art_id=385289) - [2014.09.07-中科院開發人臉辨識線上支付系統](http://big5.chinanews.com:89/gate/big5/finance.chinanews.com/fortune/2014/09-07/6570041.shtml) - [2014.09.03-保全業者導入人臉辨識門禁系統](http://news.pchome.com.tw/society/ettv/20140903/index-14097188243410417002.html) - [2014.08.13-台灣之星101旗艦店結合人臉辨識分析客群精準行銷](http://www.bnext.com.tw/article/view/id/33405) - [2014.07.30-比利時首都布魯塞爾市札文騰機場於2015年啟用人臉辨識通關](http://news.xinhuanet.com/world/2014-07/29/c_126811289.htm) - [2014.07.18-實體零售業結合人臉辨識提升銷售目標](http://www.36kr.com/p/213845.html) - [2014.06.12-人臉辨識驗證考生真實身分](http://big5.xinhuanet.com/gate/big5/www.sd.xinhuanet.com/sdzf/2014-06/13/c_1111122947.htm) - [2014.06.05-Amazon推出人臉辨識功能的手機](http://www.36kr.com/p/212642.html) - [2014.06.03-BesEye推出人臉辨識雲端監控系統](http://mobileai.net/2014/06/03/computex-2014-beseye/) - [2014.05.25-中國成都醫院導入人臉辨識系統防鬧事人士](http://big5.ycwb.com/health/2014-05/25/content_6818549.htm) - [2014.05.22-Panasonic電視支援人臉辨識開機](http://news.sina.com.tw/article/20140522/12498040.html) - [2014.05.21-漢王人臉辨識產品疑似有漏洞](http://headlines.yahoo.co.jp/hl?a=20140521-00000005-scan-sci) - [2014.04.20-日本機場重新啟動人臉辨識結合晶片過關](http://big5.cri.cn/gate/big5/gb.cri.cn/42071/2014/04/20/6071s4510486.htm) - [2014.03.21-女警利用手機人臉辨識系統抓小偷](http://www.appledaily.com.tw/realtimenews/article/new/20140321/364198/) - [2014.02.27-日本NTT DoCoMo展出人臉辨識智慧型眼鏡](http://www.saydigi.com/2014/02/docomo-hmd.html) - [2014.02.26-警方利用人臉辨識系統幫老婦找回家的路](http://yam.taiwanhot.net/portal.php?mod=view&aid=41702) - [2014.01.15-Intel與前線媒體合作導入人臉辨識系統精準廣告行銷](http://www.techbang.com/posts/16531-digital-sign) - [2014.01.05-失智人口走失,依靠人臉辨識系統找回家的路](http://www.chinatimes.com/realtimenews/20140104003522-260402) - [2013.11.20-軍人結夥搶劫,警方靠人臉辨識系統抓人](http://www.libertytimes.com.tw/2013/new/nov/20/today-so16.htm?Slots=So) - [2013.10.30-販賣機依人臉資訊推薦商品](http://news.cts.com.tw/cts/international/201310/201310301333096.html) - [2013.09.25-西安城東客運站設置人臉辨識的電子置物櫃](http://www.youtube.com/watch?v=LE0zapFIeGw) - [2013.09.05-人臉及聲音辨識公司KeyLemon獲得150萬美元投資](http://news.zol.com.cn/article/144979.html) - [2013.08.21-前線媒體利用人臉關注廣告程度營造年收上百億](http://www.appledaily.com.tw/appledaily/article/headline/20130821/35236233/) - [2013.07.30-收銀機利用人臉辨識提升服務品質](http://techorange.com/2013/07/30/rebuzz-synqera/) - [2013.07.20-利用人臉辨識技術取代麻煩的付費機制](http://www.techbang.com/posts/14116-to-see-the-painted-faces-cover) - [2013.06.18-台北101推出智慧化購物環境,鼎泰豐門口架設人臉性別分析](http://www.ithome.com.tw/itadm/article.php?c=81001) - [2013.06.15-大陸女子整形加假指紋還是騙不了人臉辨識系統](http://news.chinatimes.com/society/110503/112013061600360.html) - [2013.05.30-利用人臉辨識防止司機瞌睡](http://news.chinatimes.com/focus/11050105/112013053000094.html) --- 反人臉辨識(Anti-Facial Recognition) [CV Dazzle Anon Salon](https://www.blogger.com/) --- 人臉辨識相關職缺 --- 所有資訊持續更新,如有錯誤或觸犯貴公司資訊請告知
continue reading Facial Recognition(人臉辨識、人脸识别、顔認識システム、얼굴 인식)

雲端圖片服務 Cloudinary&NodeJS 使用方式

# 雲端圖片服務 Cloudinary ## 使用方式 先到[Cloudinary](https://cloudinary.com/)申請開發者帳號,取得以下開發必要的資訊。 ``` js const cloudinary = require('cloudinary').v2; cloudinary.config({ cloud_name: process.env.IMG_CLOUDINARY_AC, api_key: process.env.IMG_CLOUDINARY_API_KEY, api_secret: process.env.IMG_CLOUDINARY_API_SEC }); ``` ### 使用callback方式上傳圖片 ``` js const file = './../assets/images/waffle.png'; const options = { tags: 'waffle' } cloudinary.uploader.upload(file, options, (err, result) => { if( err ){ console.error(err); return; } console.log(result); }); ``` > 如果上傳成功會回傳以下資訊 - public_id: 'khwdncjw3gnlpb5y5eyv' `可以透過URL直接取得的ID` - version: 1516851472 - signature: '3be614aa611918fdb87748a3cb074b8f27043616' - width: 204 `原始圖片寬度` - height: 201 `原始圖片長度` - format: 'png' `原始圖片格式` - resource_type: 'image' - created_at: '2018-01-25T03:37:52Z' `建立時間` - tags: [ 'waffle' ] `該圖片的tag` - bytes: 31764 `原始圖片檔案大小` - type: 'upload' - etag: '55a9b992d9da4a6852e810d4f028eab0' - placeholder: false - url: http://res.cloudinary.com/YOUR_CLOUD_NAME/image/upload/v1516851472/khwdncjw3gnlpb5y5eyv.png - secure_url: https://res.cloudinary.com/YOUR_CLOUD_NAME/image/upload/v1516851472/khwdncjw3gnlpb5y5eyv.png - original_filename: 'waffle' --- ### 使用stream方式上傳圖片 ``` js const file = './../assets/images/waffle.png'; const options = { tags: 'waffle' } const upload_stream = cloudinary.uploader.upload_stream(options, (err, result) => { if (err) { console.error(err); return; } console.log(result); }); const file_reader = fs.createReadStream(file).pipe(upload_stream); ``` --- ### 使用Promise方式上傳圖片 ``` js const file = './../assets/images/waffle.png'; const options = { tags: 'waffle' } cloudinary.uploader.upload(file, options).then(image => { console.log(image); }).catch(err => { console.error(err); }); ``` --- ### 指定 Public ID ``` js const file = './../assets/images/waffle.png'; const options = { tags: 'waffle' } const options_public_id = Object.assign({ public_id: 'unique_id' }, options); cloudinary.uploader.upload(file, options_public_id).then(image => { console.log(image); }).catch(err => { console.error(err); }); ``` --- ### 上傳圖片時直接做型態轉換 ``` js const file = './../assets/images/waffle.png'; const options = { tags: 'waffle' } const eager_options = { width: 64, height: 64, crop: 'scale', format: 'jpg' }; const options_transformations = Object.assign({ eager: eager_options }, options); cloudinary.uploader.upload(file, options_transformations).then(image => { console.log(image); }).catch(err => { console.error(err); }); ``` > 比照原本的回傳值會多出一個eager的物件 - eager: - transformation: 'c_scale,h_64,w_64/jpg', - width: 64, - height: 64, - bytes: 3052, - url: 'http://res.cloudinary.com/dcqgm4tgy/image/upload/c_scale,h_64,w_64/v1516851039/pofiverbkbtgj2nqx16t.jpg', - secure_url: 'https://res.cloudinary.com/dcqgm4tgy/image/upload/c_scale,h_64,w_64/v1516851039/pofiverbkbtgj2nqx16t.jpg' 相關程式碼可參考[Github](https://github.com/MarcWang/nodejs-tutorial/blob/master/1.image-cloudinary/index.js)
continue reading 雲端圖片服務 Cloudinary&NodeJS 使用方式

2017年5月31日 星期三

OpenCV Tutorial (學習筆記)

Opencv-Tutorial


介紹 (Introduction)

下載 (Download)

安裝 (Installer)

基本操作 (Base Operation)

視訊操作 (Camera Operation)

影像操作 (Image Operation)

色彩轉換 (Color Conversion)

影像處理 (Image Processing)

特徵擷取 (Feature Extraction)

影像切割 (Image Segmentation)

背景相減 (Background Subtraction)

物件偵測 (Object Detection)

機器學習 (Machine Learning)

其他 (Else)

Video & Image Database

GitHub : MarcWang/opencv-tutorial

continue reading OpenCV Tutorial (學習筆記)

2016年11月16日 星期三

JavaScript 之 Array 詳解

Array.prototype.concat()

Syntax

var new_array = old_array.concat(value1[, value2[, …[, valueN]]])

可以連接多個Array,不會改變原本的Array,但會回傳一個連接後的Array

let arr = [1,2,3];
let concat_arr = arr.concat(['a','b','c']);

console.log(concat_arr);
// [1, 2, 3, 'a', 'b', 'c']

加入連接的值可以是 String、Number 或 Boolean

let arr = [1,2,3]
let str = String('STR');
let num = Number(5);
let boolean = Boolean(true);
let concat_arr = arr.concat(str, num, boolean);

console.log(concat_arr);
// [1, 2, 3,'STR', 5, true]

如果是 new String、 new Number、 new Boolean 會是以物件型態加入

let arr = [1,2,3]
let str = new String('STR');
let num = new Number(5);
let boolean = new Boolean(true);
let concat_arr = arr.concat(str, num, boolean);

console.log(concat_arr);
// [ 1, 2, 3, [String: 'STR'], [Number: 5], [Boolean: true] ]

Array.prototype.every()

Syntax

arr.every(callback[, thisArg])

針對 Array 裡每個值做處理,所有都滿足條件回傳 true,否則回傳 false

function isBigEnough(element, index, array) {
    return element >= 10;
}

let res = [12, 5, 8, 130, 44].every(isBigEnough);
console.log(res);
// false

也可以寫成箭頭函式

let res = [12, 5, 8, 130, 44].every(elem => elem >= 10);
console.log(res);
// false

Array.prototype.fill()

Syntax

arr.fill(value)
arr.fill(value, start)
arr.fill(value, start, end)

這裡會使用到三個變數,value 是指填充在Array的值,start 指的是起始位置,初始值是 0 ,end 指的是結束位置,初始值是 Array.length。

let arr = [1, 2, 3, 4, 5];
arr.fill(5); // [ 5, 5, 5, 5, 5 ]
arr.fill(value = 5, start = 0, end = arr.length); // [ 5, 5, 5, 5, 5 ]
arr.fill(5, 1); // [ 1, 5, 5, 5, 5 ]
arr.fill(5, 1, 3); // [ 1, 5, 5, 4, 5 ]
arr.fill(5, -2); // [ 1, 2, 3, 5, 5 ]
arr.fill(5, -6); // [ 5, 5, 5, 5, 5 ]

Array.prototype.filter()

Syntax

var new_array = arr.filter(callback[, thisArg])

列出Array內的值大於10

function isBigEnough(element, index, array) {
    return element >= 10;
}

let res = [12, 5, 8, 130, 44].filter(isBigEnough);
console.log(res);
// [12, 130, 44]

舉一個例子,過濾帳號資料含 usernamepassword的列表。

let obj_arr = [{
    username: 'marc',
    password: 'A123456'
}, {
    username: 'marc_1',
    password: 'B123456'
}, {
    username: 'marc_2'
}, {
    email: 'marc@gmail.com'
}]

function accountFilter(acc) {
    return (acc.username !== undefined && acc.password !== undefined) ? true : false;
}

let res = obj_arr.filter(accountFilter);
console.log(res);
// [ { username: 'marc', password: 'A123456' },{ username: 'marc_1', password: 'B123456' } ]
continue reading JavaScript 之 Array 詳解