OpenCV自帶dnn的Example研究(1)— classification


這個博客系列,簡單來說,今天我們就是要研究
6個文件,看看在最新的OpenCV中,它們是如何發揮作用的。
在配置使用的過程中,需要注意使用較高版本的VS避免編譯器兼容問題;由於DNN程序的運行依賴於訓練成功的模型,因此需要預先下載准備;此外如果出現各種報錯,需要對症下葯。
此外,由於需要使用common.hpp文件,所以需要引入dnn目錄到include中
用到的數據集都放在:
鏈接:https://pan.baidu.com/s/1WPoXU3VodErPHZo6Yc21xA 
提取碼:01no 
如果你沒找到,那一定是我忘了。
=====================================================================================友善的分割線============================
注意,這個例子是有官方文檔的

它推薦的調用的模式為:
. /example_dnn_classification --model =bvlc_googlenet.caffemodel --config =bvlc_googlenet.prototxt --width = 224 --height = 224 --classes =classification_classes_ILSVRC2012.txt --input =space_shuttle.jpg --mean = "104 117 123"

從參數中,我們可以看出,這里的模型為caffemodel,模型的參數配置為prototxt,而 classification_classes_ILSVRC2012.txt應該是和訓練類型相關的,它長這樣:

按照文檔中說明,打開參數配置
在當前項目屬性頁->調試->命令參數下面:
--model =e : / template /bvlc_googlenet.caffemodel --config =e : / template /bvlc_googlenet.prototxt --width = 224 --height = 224 --classes =e : / template /classification_classes_ILSVRC2012.txt --input =E : / template /dogvscat1K /cat. 1.jpg --mean = "104 117 123" --rgb
識別的結果,肯定是沒有問題的。我沒看看tabby cat這個來自哪里?
就來自上面的分類文件。

肯定是有正確的也會有失敗的。我相信隨着模型的不斷完善,特別是對特定領域內數據的專門訓練,肯定在判斷的結果上能夠有提升的方法。
僅僅憑借幾張照片還看不出結果,必須依據科學的方法來做。

代碼中
mean subtraction (-104, -117, -123) for each blue, green and red channels 
這句可能和項目本身是有關系的,這里先不做追究。
 




附件列表

     


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM