1. 程式人生 > >樹莓派+普通usb攝像頭 做人臉識別

樹莓派+普通usb攝像頭 做人臉識別

http://v.eepw.com.cn/video/play/id/14049  我是根據這個來做的,原始碼就在github上https://github.com/codelast/raspberry-pi

1.刷系統以及安裝opencv: 我是參照視訊教程安裝了archlinuxarm。其實系統無所謂,用raspbian的安裝opencv請參照http://www.jb51.net/article/63103.html

2.把程式碼都下載到樹莓派裡面就可以拍照,錄視訊了。

3.人臉識別: 進行到人臉識別的時候卡住了。在樹莓派與face++伺服器通訊時(也就是程式碼中需要用到rapidjson  ),所以就安裝咯。根據網上搜索後能快速安裝,https://code.google.com/archive/p/rapidjson/wikis/UserGuide.wiki 一開始我是下載了Google code裡面的庫檔案,然後按照

1.2. Installation

rapidjson is a header-only library. That means, the only thing to be done is to copy rapidjson/include/rapidjson and its sub-directories to your project or other include paths.

rapidjson/include資料夾都拷到樹莓派庫檔案目錄下,那樹莓派庫檔案在哪嘞,可以試試,
#find  / -name stdio.h
然後編譯////get-image-face-ids
./compile-and-run.sh
結果出現以下rapidjson問題:
error: no matching function for call to 'rapidjson::GenericDocument<rapidjson::UTF8<> >::Parse(const char*)'    if (document.Parse(retData.c_str()).HasParseError()) {

error: ambiguous overload for 'operator[]' (operand types are 'const Value {aka const rapidjson::GenericValue<rapidjson::UTF8<> >}' and 'int')    cout << faces[0]["face_id"].GetString() << endl;


上面說到的兩個error ,就是rapidjson庫檔案過舊的問題 。下圖google code上的說明。去github上下載新的庫檔案程式碼就沒問題了微笑END