Ошибка вызова подпроцесса - Python - PullRequest
0 голосов
/ 05 февраля 2020

Я хотел бы запустить команду 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 находится в другом каталоге, чем «ожидаемая» команда. В этом случае он знает, где его найти!

...