iT邦幫忙

0

dlib安裝心得 -- Windows 環境

前言

剛剛克服了 YOLO v4 安裝的問題,又碰上另一個 C library 需要安裝,真是頭痛。dlib 是一個機器學習的函數庫,它包含許多功能(可參考官網),許多影像辨識的 Python 套件都會呼叫它,跟YOLO一樣,它的安裝必須依照機器的環境,從原始碼建置。在 LINUX 上以 g++ 建置應該是比較直覺而簡單,不過,筆者比較習慣使用 Windows 作業系統,因此,本文主要是說明在 Windows 下如何建置 dlib。

安裝

dlib 建置的過程會自動判別是否有安裝 CUDA TOOLKIT,如果要建置支援CUDA的Library 需同時安裝 CUDA TOOLKIT 及 CuDNN,並將路徑放入環境變數 Path 中,例如:
https://ithelp.ithome.com.tw/upload/images/20200522/20001976GK01MExabj.png

筆者分別編譯有 CUDA TOOLKIT及無 CUDA TOOLKIT 的情況,都沒有問題。

與 YOLO 建置一樣,需先準備前置作業,安裝以下軟體:

  1. VS 2017 或 2019
  2. CMake

搞定上述軟體,開始建置dlib:

  1. 下載 dlib:自官網下載,解壓縮。
    https://ithelp.ithome.com.tw/upload/images/20200522/20001976Ln85XGIxLS.png

  2. 建置:切換至 dlib-19.19 目錄,開啟 DOS 視窗,執行下列指令
    python setup.py build
    ** 有趣的事情發生了,建置過程發生錯誤,Google 一下,程式碼放在較深的目錄竟然不行,姑且一試,把它全部搬到根目錄,神奇的傑克,竟然成功了。**
    建置期間會發生以下錯誤訊息,不用理會。
    https://ithelp.ithome.com.tw/upload/images/20200522/200019761ujLSKiD0R.png

  3. 安裝套件:執行下列指令
    python setup.py install

** 自【這裡】可以找到建置好的套件,可惜只支援到 Python 3.6 版,3.7版之後還是自行努力。**

測試

參考『Python 使用 OpenCV、Dlib 實作即時人臉偵測程式教學』一文,先安裝相關套件:
pip install imutils

將下列程式存檔為 test.py,執行:
python test.py

# pip install imutils
import dlib
import cv2
import imutils

# 讀取照片圖檔
img = cv2.imread('image.png')

# 縮小圖片
img = imutils.resize(img, width=640)

# Dlib 的人臉偵測器
detector = dlib.get_frontal_face_detector()

# 偵測人臉
face_rects = detector(img, 0)

# 取出所有偵測的結果
for i, d in enumerate(face_rects):
  x1 = d.left()
  y1 = d.top()
  x2 = d.right()
  y2 = d.bottom()

  # 以方框標示偵測的人臉
  cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 4, cv2.LINE_AA)

# 顯示結果
cv2.imshow("Face Detection", img)

cv2.waitKey(0)
cv2.destroyAllWindows()

https://ithelp.ithome.com.tw/upload/images/20200522/20001976rgWHUJDtXD.png

正確偵測到兩位老兄,勝利成功, Ya !!


尚未有邦友留言

立即登入留言