TShopping

 找回密碼
 註冊
搜索
查看: 794|回復: 0
打印 上一主題 下一主題

[教學] python使用opencv來訓練自己的人臉分類器出現問題?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2020-10-27 21:50:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
2.生成.vec檔案

vec檔案是為樣本訓練所使用的

開啟cmd 切換到當前的工作目錄下,執行以下命令:

  1. opencv_createsamples.exe -vec pos.vec -info posdata.txt -num 50 -w 20 -h 20
複製代碼


-info,指樣本說明檔案

-vec,樣本描述檔案的名字及路徑

-num,總共有多少張樣本圖

-w -h指明想讓樣本縮放到什麼尺寸。這裡的奧妙在於你不必另外去處理第1步中被矩形框出的圖片的尺寸,因為這個引數幫你統一縮放!(我們這裡準備的樣本都是20*20)

執行結束後,會在當前目錄生成一個pos.vec的檔案。



3. 訓練樣本

  1. opencv_traincascade.exe -data xml -vec pos.vec -bg negdata.txt -numPos 45 -numNeg 300 -numStages 15 -w 20 -h 20 -mode ALL
複製代碼


這裡要注意大小寫。

-numStages,層級數

-numPos ,正樣本數

-numNeg ,負樣本數

-fmaxfalsealarm,最大誤檢率的值應該設定在0.4-0.5之間



訓練完成後在xml裡面會生成 cascade.xml (這就是我們所需要的分類器),等下拿這個檔案去檢測。



3.1 可能會出現的問題

問題一:Train dataset for temp stage can not be filled.Branch training terminated.

Cascade classifier can't be trained.Check the used training parameters.

解決: negdata.txt 檔案不要替換,儲存為以下格式就ok了。

negdata/1.jpg

negdata/10.jpg

negdata/100.jpg

negdata/101.jpg

negdata/102.jpg

問題二:Error :Bad argument (can not get new positive sample).The most possible reason is insufficient count of samples in given vec-file.

解決: 將命令列中的numPos改小一些,即可接著現有的層級訓練(減少50%左右即可)。

4.檢測效果



文章出處

網頁設計,網站架設 ,網路行銷,網頁優化,SEO - NetYea 網頁設計

 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-20 16:50 , Processed in 0.042804 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表