[更新]:此存儲庫是我研究的驅動程序代碼。我剛剛畢業,非常忙於尋找研究實習 /獎學金角色,然後最終申請碩士。我暫時沒有時間研究問題。謝謝。
該存儲庫包含基於Yolov3的對象檢測器的代碼:一個增量改進,實現了pytorch。該代碼基於Marvis的Yolo V3的官方代碼以及原始代碼的Pytorch端口。該代碼的目標之一是通過刪除代碼的冗餘部分來改進原始端口(官方代碼基本上是一個完全爆炸的深度學習庫,其中包括諸如sequence模型之類的內容,這些模型在Yolo中未使用)。我還試圖將代碼保持最小,並儘可能地進行記錄。
如果您想了解如何從頭開始實現此檢測器,那麼您可以通過我在論文空間上寫的這個非常詳細的5部分教程系列。非常適合想要從初學者轉變為中級Pytorch技能的人。
從頭開始實施Yolo V3
截至目前,代碼僅包含檢測模塊,但是您應該很快期望訓練模塊。 :)
使用Pytorch 0.3將打破檢測器。
克隆和cd進入回購目錄。您需要做的第一件事是這次獲取權重文件,對於V3,作者僅在此處為可可提供了一個權扣,然後放置
權重文件到您的存儲庫目錄中。或者,您可以輸入(如果您在Linux上)
wget https://pjreddie.com/media/files/yolov3.weights
python detect.py --images imgs --det det
--images標誌將目錄定義為從或單個圖像文件加載圖像的目錄(它將弄清楚), --det是將圖像保存到的目錄。其他設置,例如批處理大小(使用--bs標誌),可以使用可以查找的標誌來調整對象閾值置信度。
python detect.py -h
您可以通過--reso標誌更改輸入圖像的分辨率。默認值為416。無論您選擇哪種值,記憶,它的倍數應該是32的倍數,大於32 。如果不這樣做,奇怪的事情就會發生。您已被警告。
python detect.py --images imgs --det det --reso 320
為此,您應該運行文件,video_demo.py,帶有-video標誌指定視頻文件。視頻文件應為.AVI格式,因為OPENCV僅接受OpenCV作為輸入格式。
python video_demo.py --video video.avi
可以使用-h標誌可以看到可調整的設置。
為了加快視頻推理,您可以嘗試使用Video_demo_half.py文件,而不是使用16位半精度浮點而不是32位浮點。我還沒有看到很大的進步,但我將其歸因於擁有較舊的卡(Tesla K80,Kepler Arch)。如果您有一張具有快速Float16支持的卡,請嘗試一下,如果可能的話,請進行基準測試。
與視頻模塊相同,但是您不必指定視頻文件,因為Feed將從相機中獲取。確切地說,將從openCV(識別為相機0)的feed中取出。默認圖像分辨率為160,儘管您可以使用reso標誌更改它。
python cam_demo.py
您可以輕鬆地調整代碼以使用不同的權重命令,可在YOLO網站上找到
注意:秤功能已被禁用以更好地進行重構。
Yolo V3在不同尺度上進行檢測,每個尺度都在檢測不同尺寸的對象取決於它們是否捕獲粗糙的特徵,細粒度的特徵或之間的其他內容。您可以通過--scales標誌對這些量表進行實驗。
python detect.py --scales 1,3