Dlib庫基本使用方法

2021-10-11 00:14:17 字數 3577 閱讀 7831

dlib是乙個用c ++編寫的工具庫,其中包含一些機器學習方面的演算法和軟體,用來解決複雜現實世界問題,目前該軟體庫在工業上和學術界都得到了廣泛的使用(該庫為開源庫)。

文件詳細:每個類和功能都有完整詳細的文件說明。

高質量的可移植**:適合大部分的平台,如 windows,linux、mac os x以及 posix(可移植作業系統介面)、solaris(unix的衍生版本)、hpux(惠普9000系列伺服器的作業系統)、bsd(unix的衍生系統)。

機器學習演算法:深度學習、大量分類和回歸演算法、多種svm工具、半度量學習、聚類演算法、多層感知機等。

數值演算法:矩陣、大整數、隨機數運算、一些優化演算法等。

圖形模型推斷演算法:貝葉斯網路、馬爾科夫鏈蒙特卡羅方法(mcmc)

影象處理:常見的影象處理(格式轉換、色彩空間轉換等)、邊緣查詢、特徵提取、姿態檢測、人臉識別。

執行緒:簡單的執行緒api、執行緒池

聯網:可移植的簡單的tcp套接字api和基於tcp的伺服器物件。

圖形使用者介面:整個dlib gui工具包都是執行緒安全的

資料壓縮和完整性演算法:加密解密演算法、多種壓縮演算法

測驗:執行緒完全日誌、單元模組化測試、多種assert支援

通用工具:xml解析、多種容器類、序列化支援、記憶體管理器、base64轉換、matlab支援。

檢測統計中人臉的數量並標記出來

("處理檔案中: {}"

.format

(path)

)img = dlib.load_rgb_image(path)

dets = cnn_face_detector(img,1)

print

("檢測到人臉數目: {}"

.format

(len

(dets)))

for i, d in

enumerate

(dets)

:print

("檢測到 {}: left: {} top: {} right: {} bottom: {} 可信度: {}"

.format

( i, d.rect.left(

), d.rect.top(

), d.rect.right(

), d.rect.bottom(

), d.confidence)

)rects = dlib.rectangles(

)rects.extend(

[d.rect for d in dets]

)win.clear_overlay(

)win.set_image(img)

win.add_overlay(rects)

dlib.hit_enter_to_continue(

)執行結果:

處理檔案中: ./7person.jpg

檢測到人臉數目: 7

檢測到 0: left: 181 top: 65 right: 220 bottom: 105 可信度: 1.1296461820602417

檢測到 1: left: 385 top: 134 right: 432 bottom: 182 可信度: 1.101375937461853

檢測到 2: left: 37 top: 118 right: 105 bottom: 186 可信度: 1.073663353919983

檢測到 3: left: 451 top: 151 right: 508 bottom: 208 可信度: 1.0721375942230225

檢測到 4: left: 97 top: 25 right: 136 bottom: 65 可信度: 1.0554574728012085

檢測到 5: left: 323 top: 110 right: 370 bottom: 158 可信度: 1.0327470302581787

檢測到 6: left: 293 top: 37 right: 332 bottom: 77 可信度: 0.9874222278594971

)

執行結果:

除了可以使用dlib庫本身有的模型以外,還可以在原來的基礎上訓練自己的模型。

dlib和opencv都有可以進行人臉檢測的模組。opencv的haar cascade執行速度快,但是容易出現將非人臉部分檢測為人臉的情況,dnn人臉檢測在各方面的表現都比較優秀,但是似乎不能使用nvidia gpu。

dlib中實現了surf、hog和fhog的特徵提取演算法。更夠準確檢測大部分人臉,對存在遮擋的人臉也能進行正確檢測,在少數極端情況下(如俯視、仰視)以及人臉過小的情況下容易出現檢測不準確的狀況(小臉的情況下,使用者可以用小尺寸的影象訓練自己的檢測器來解決)。

個人認為dlib的魯棒性強於opencv,但是在相同環境下opencv的執行速度略快。

dlib官方文件:

opencv官網:

wordcloud庫基本介紹和使用方法

1.1 wordcloud庫概述 wordcloud是優秀的詞云展示第三方庫 1.2wordcloud庫的安裝 pip install wordcloud cmd命令列 2.1 wordcloud庫基本是使用 wordcloud庫把詞云當作乙個wordcloud物件 2.2 wordcloud庫常規...

scp基本使用方法

scp基本使用方法 scp用於在兩台電腦之間進行資料的copy,形式如下 第一種,scp r 檔案 資料夾 user host dir 需要輸入密碼。第二種,scp r 檔案 資料夾 host dir,需要輸入使用者名稱和密碼。舉例 1.copy 檔案 scp framework.jar 10.10...

VIM基本使用方法

vi有三種基本的工作模式 指令行模式 文字輸入模式 行末模式。他們的相互關係如所示。指令模式 command mode 下輸入 a i o進入文字輸入模式 input mode 文字輸入模式 input mode 下按esc進入指令模式 command mode 指令模式 command mode ...