專案一 人臉識別

2021-10-09 21:50:18 字數 2351 閱讀 5413

linux ubuntu16.04 + ncnn框架

假設有乙個總目錄ncnn,**存放在ncnn目錄下的examples資料夾,編寫乙個cpp檔案後(內容就是簡單的hello world),然後編寫cmakelists.txt

cmake_minimum_required

(version 2.8

)#規定cmake的最低版本

project

(專案名稱eg.abc)#起乙個專案名稱

set(cmake_cxx_standard 11

)#用c++

11編譯

add_executable

(名稱eg.abc cpp檔案eg.main.cpp)#名稱是用來給編譯後的可執行檔案起名字的,cpp檔案就是可執行檔案對應的原始檔

include_directories

(path)#將給定路徑新增到編譯器中,用於搜尋該路徑下的標頭檔案(路徑:相對或者絕對都可以,也可以使用變數,稍後再說)

在當前目錄下

cmake .

make -j10#表示用10的cpu核來處理以加快速度。

#此時,檢視當前目錄就可以看到乙個名字為abc的可執行檔案(綠色)

./abc#執行可執行檔案

如果不新增include_directories(),在make -j10時就會報錯,fatal error:找不到標頭檔案。

如果你只寫cpp檔案,而且cpp檔案中的標頭檔案都是類似於之類的,可以不寫include_directories()

先說說cpp檔案的編譯過程:

cpp----編譯----->彙編**-----彙編----->.o(目標檔案)-------->鏈結器(連線庫檔案和其他目標檔案)-------->可執行檔案

再說說靜態庫和動態庫:

靜態庫:把所有檔案打包,在編譯時期與使用者合併,最終生成可執行檔案,在程式執行時,與靜態函式庫再也沒有聯絡。(linux下,靜態庫是.a檔案)

動態庫:在程式執行時期才把庫載入到程式中,即程式在執行時,才去找要呼叫的函式。(linux下,動態庫是.so檔案)

還是在當前目錄下:假設你有乙個.so檔案和乙個main1.cpp檔案,main1.cpp檔案要用這個so庫

編寫cmakelists.txt:(可以在上一步的基礎上寫,也可以保留上面的三行,刪掉底下的)

add_executable

(main1 main1.cpp)

include_directories

(cpp檔案的頭檔案目錄+so庫所需要的頭檔案目錄)#頭檔案目錄

target_link_directories

(main1 so檔案的絕對路徑)

在當前目錄下

cmake .

make -j10

./main1

忽略上邊的目錄結構,現在有乙個新的目錄結構:

主目錄ncnn,子目錄examples存在原始檔,examples下面有main.cpp

和標頭檔案,在examples下面有個資料夾,叫aaa,裡邊存放了乙個abc.cpp檔案(包含函式,沒有主函式),和標頭檔案。

先編寫aaa資料夾下的cmakelists.txt:

add_library

(庫名字eg.abc 型別shared or static 原始檔abc.cpp)#型別shared表示動態庫,生成的字尾為so,static為表示靜態庫,生成的字尾為a

include_directories

(path)#寫標頭檔案所在目錄,用絕對路徑會好一點

在examples資料夾下,編寫cmakelists.txt:

前三行不變(與文章開頭的cmakelists.txt相同)

add_subdirectory

(aaa)#要寫在前面,因為一會要呼叫。(引數為1個表示aaa目錄是子目錄,如果不是子目錄,那麼引數會是2個)

add_executable

(main main.cpp)

include_directories

(path)#cpp的標頭檔案和庫的標頭檔案

target_link_libraries

(main z1)#z1就是自己定義的動態或靜態檔案庫,

z1不用加路徑什麼的,因為只要在乙個工程下,就知道。

高階版cmakelists.txt寫法部落格:

cmakelists.txt各種命令用法:

鏈結

人臉識別9 人臉搜尋 概述

給定一張 與指定人臉庫中的n個人臉進行比對,找出最相似的一張臉或多張人臉。根據待識別人臉與現有人臉庫中的人臉匹配程度,返回使用者資訊和匹配度,即1 n人臉檢索。可用於使用者身份識別 身份驗證相關場景。一般人臉搜尋的步驟 給定一批人臉及標籤。對給定的人臉預先進行批量建模。對於後續新增或刪除的人臉可以進...

海思3559 人臉識別

nniefacelib是乙個在海思35xx系列晶元上執行的人臉演算法庫,目前整合了mobilefacenet和retinaface。後期也會融合一些其他經典的模型,目的也是總結經驗,讓更多人早日脫離苦海。目前只在3516dv300上進行了測試。鑑於很多同學在其他型號上進行測試失敗的情況,做一下統一說...

深度學習筆記(42) 人臉識別

現在可以看到很多產品在運用人臉識別,如手機解鎖 車站身份識別認證 刷臉支付等 在人臉識別的相關文獻中,人們經常提到 有時候也被稱作1對1問題 只需要弄明白這個人是否和他聲稱的身份相符 而人臉識別問題比人臉驗證問題難很多 因為這是1對多問題 1 k 假設有乙個驗證系統,準確率是99 自我感覺還可以 但...