iT邦幫忙

0

dlib安裝心得 -- Windows 環境

  • 分享至 

  • xImage
  •  

前言

剛剛克服了 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

先安裝 VS 2019:須安裝 VC toolset、English language pack 元件。
https://ithelp.ithome.com.tw/upload/images/20200520/20001976nSIaGFhOfy.png

https://ithelp.ithome.com.tw/upload/images/20200520/20001976WYqH35ICFD.png

再安裝 CMake:自官網下載,將安裝路徑下的bin加到環境變數 Path 中。

安裝

搞定上述軟體,開始建置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 !!

後記

之後看到 conda 直接提供二進位套件安裝,各位看官可以試試看。
conda install -c conda-forge dlib

** 2022/3/9 升級至Python v3.9 後發生編譯錯誤 **,發現 C:\anaconda3\Library\include\gif_lib.h 的第286行錯誤:

const unsigned char XPORT GifAsciiTable8x8[][GIF_FONT_WIDTH];
加 extern
extern const unsigned char XPORT GifAsciiTable8x8[][GIF_FONT_WIDTH];

再重新執行 python setup.py build、python setup.py install即可。

若編譯錯誤,可使用VS載入 F:\dlib-master\build\temp.win-amd64-3.9\Release\dlib_python_bindings.sln,較容易觀察錯誤。

** 要使用較新的CUDA Toolkits **,可修改 F:\dlib-master\build\temp.win-amd64-3.9\Release_dlib_pybind11.vcxproj,全部取代 11.1 至 新版本號,例如 11.2。


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言