Я хотел бы запустить команду dar knet .exe (YOLOv3) из скрипта Py, потому что я автоматизирую некоторые вещи на работе.
Вот код (примечание: xxxxx в имени папки только для конфиденциальности!):
cmdDarkent = r"C:\Users\YodhResearch\Desktop\darknet-master\darknet-master\build\darknet\x64\darknet.exe "
cmdDetector = "detector "
cmdTest = "test "
cmdData = r"C:\Users\xxxxx\Desktop\darknet-master\darknet-master\build\darknet\x64\data\obj\GoodTraining\obj.data "
cmdCfg = r"C:\Users\xxxxx\Desktop\darknet-master\darknet-master\build\darknet\x64\data\obj\GoodTraining\yolo-obj.cfg "
cmdWeights = r"C:\Users\xxxxx\Desktop\darknet-master\darknet-master\build\darknet\x64\data\obj\GoodTraining\yolo-obj_final.weights "
cmdImage = r"C:\Users\xxxxx\Desktop\darknet-master\darknet-master\build\darknet\x64\data\obj\GoodTraining\divertixxxxx\TreatR01-7_14-38_ROI1366-0461_ImageROI1_00n.PNG "
cmdExtOutput = r"-ext_output"
import subprocess
subprocess.call([cmdDarkent, cmdDetector, cmdTest, cmdData, cmdCfg, cmdWeights, cmdImage, cmdExtOutput],shell=True)
Мой вывод:
CUDA-version: 10020 (10020), cuDNN: 7.6.5, CUDNN_HALF=1, GPU count: 1
OpenCV version: 3.4.9
Not an option: detector
Она запускает команду, но не находит детектор в качестве опции, но я на 100% уверен, что это правильно. Вот полная команда:
darknet.exe detector test data\obj\GoodTraining\obj.data data\obj\GoodTraining\yolo-obj.cfg data\obj\GoodTraining\yolo-obj_final.weights C:\Users\xxxxx\Desktop\darknet-master\darknet-master\build\darknet\x64\data\obj\GoodTraining\divertixxxxx\TreatR01-7_14-38_ROI1366-0461_ImageROI1_00n.PNG -ext_output
Это то, что я ожидаю увидеть:
C:\Users\xxxxx\Desktop\darknet-master\darknet-master\build\darknet\x64>darknet.exe detector test data\obj\GoodTraining\obj.data data\obj\GoodTraining\yolo-obj.cfg data\obj\GoodTraining\yolo-obj_final.weights C:\Users\xxxxx\Desktop\darknet-master\darknet-master\build\darknet\x64\data\obj\GoodTraining\divertixxxxx\TreatR01-7_14-38_ROI1366-0461_ImageROI1_00n.PNG -ext_output
CUDA-version: 10020 (10020), cuDNN: 7.6.5, CUDNN_HALF=1, GPU count: 1
OpenCV version: 3.4.9
compute_capability = 750, cudnn_half = 1
net.optimized_memory = 0
batch = 1, time_steps = 1, train = 0
layer filters size/strd(dil) input output
0 conv 32 3 x 3/ 1 416 x 416 x 3 -> 416 x 416 x 32 0.299 BF
1 conv 64 3 x 3/ 2 416 x 416 x 32 -> 208 x 208 x 64 1.595 BF
2 conv 32 1 x 1/ 1 208 x 208 x 64 -> 208 x 208 x 32 0.177 BF
3 conv 64 3 x 3/ 1 208 x 208 x 32 -> 208 x 208 x 64 1.595 BF
Чего мне не хватает?
Я действительно надеюсь, что это не вдвое вопрос, но я не могу найти то, что ищу.
ps: путь в скрипте python отличается от того, что pyscript находится в другом каталоге, чем «ожидаемая» команда. В этом случае он знает, где его найти!