發表文章

目前顯示的是 8月, 2017的文章

[ Dlib ] 利用 Dlib訓練 Object Detector

圖片
本篇純為筆記,先寫下來擔心自己忘了,同時希望也能幫助到一些朋友。 可能有很多地方有錯,歡迎糾正。 上一篇 "利用 Dlib訓練 Shape Predictor",能夠訓練一個 Predictor去預測物體特徵,而 Object Detector則是從圖像中尋找物體。 其實這篇應該寫在前面才對,順序不小心搞混了。 開始之前需要先確認有安裝 Dlib和 scikit-image,scikit-image可以透過 pip安裝,imglab就有點麻煩了,可以參考 官方文檔 imglab的部分 。 python_examples中會有一個 train_object_detector.py 的文件,一樣可以直接執行。同樣使用 Dlib提供練習用的訓練數據。 python3 train_object_detector.py ../examples/faces/ faces資料夾中,除了照片外,同時也有 training.xml和 testing.xml,這兩個檔案是訓練的重要數據。內容和 training_with_face_landmarks.xml及 testing_with_face_landmarks.xml,有些不同,可以打開來看一下差異。 訓練完一樣會秀出幾張訓練的圖片和預測的結果。 訓練結束後會顯示一些訓練時使用的參數。 Training complete. Trained with C: 5 Training with epsilon: 0.01 Trained using 4 threads. Trained with sliding window 80 pixels wide by 80 pixels tall. Trained on both left and right flipped versions of images. Hit enter to continue Training accuracy: precision: 1, recall: 1, average precision: 1 接下來一樣需要準備數據。 因為需求想說拿來試試辨識一些手勢,所以找了 Idiap Research Institute提供的 Hand Posture and Gesture Datasets ,先拿 A的

[ Dlib ] 利用 Dlib訓練 Shape Predictor

圖片
本篇純為筆記,尚未有實際應用,只是先寫下來擔心自己忘了,同時希望也能幫助到一些朋友。 可能有很多地方有錯,歡迎糾正。 Dlib的安裝檔中有個 python_examples的資料夾,如果沒有可以到 Dlib的 GitHub 中下載。 開始之前需要先確認有安裝 Dlib和 scikit-image,scikit-image可以透過 pip安裝,imglab就有點麻煩了,可以參考 官方文檔 imglab的部分 。 python_examples中會有一個 train_shape_predictor.py 的文件,直接執行 train_shape_predictor.py就行了,但要附上要訓練的資料。直接使用 Dlib提供練習用的訓練數據,路徑是上一層 examples資料夾中的 faces,其輸入格式如下 python3 train_shape_predictor.py ../examples/faces/ faces資料夾中,除了照片外,同時也有 training_with_face_landmarks.xml和 testing_with_face_landmarks.xml,這兩個檔案是訓練用的重要數據。 執行 train_shape_predictor.py時只要將訓練的資料導向這個資料夾就行了,最後就會秀出幾張測試用的照片測試剛訓練出來的模型。同時也會生成出 predictor.dat和 image_metadata_stylesheet.xsl文件,predictor.dat文件就是拿來捕捉特徵用的模型,另一個我還不知道是做什麼用的 :P 在秀出圖片前會顯示 Training accuracy和 Testing accuracy。 左圖是作為訓練用的照片,右圖則是做為測試用的照片,可以看出對 landmarks捕捉還不夠成熟,但還算有點樣子。 接下來最麻煩的就是準備訓練用的數據。 Dlib有提供一個 tool叫 imglab可以幫助製作訓練用的數據。安裝的方式跟安裝 Dlib很類似。 cd dlib/tools/imglab mkdir build cd build cmake .. cmake --build . --config Release 安裝成功後,可以到 dlib/tools/imglab/build中找到 i