Darkflow: Não detecta meu conjunto de dados e ZeroDivisionError: divisão por zero

Criado em 17 ago. 2018  ·  4Comentários  ·  Fonte: thtrieu/darkflow

Estou tentando treinar meu próprio conjunto de dados com minhas anotações usando este comando:
python flow --model cfg/tiny-yolo-voc-4c.cfg --load bin/tiny-yolo-voc.weights --train --annotation custom/annotations --dataset custom/all --gpu 0.8 --epoch 500

minha pasta de anotações (tudo xml)
minha pasta de conjunto de dados (tudo jpg)

Erro:

Statistics:
Dataset size: 0
Dataset of 0 instance(s)
Traceback (most recent call last):
  File "flow", line 6, in <module>
    cliHandler(sys.argv)
  File "C:\Users\msi\Desktop\VSCode Folder\AI Stuff\YOLO Darkflow\darkflow-gpu\darkflow\cli.py", line 33, in cliHandler
    print('Enter training ...'); tfnet.train()
  File "C:\Users\msi\Desktop\VSCode Folder\AI Stuff\YOLO Darkflow\darkflow-gpu\darkflow\net\flow.py", line 39, in train
    for i, (x_batch, datum) in enumerate(batches):
  File "C:\Users\msi\Desktop\VSCode Folder\AI Stuff\YOLO Darkflow\darkflow-gpu\darkflow\net\yolo\data.py", line 102, in shuffle
    batch_per_epoch = int(size / batch)
ZeroDivisionError: division by zero

Comentários muito úteis

@ naren142 Sim, eu
Eu também mudei essa linha de código em darkflow / utils / pascal_voc_clean_xml.py. (linha 22) para:
annotations = glob.glob('*.xml')

O erro causado por uma anotação sem dados. (há uma anotação para a imagem, mas a imagem sumiu) Eu deletei esse annotation.xml e funcionou! Obrigado!

Todos 4 comentários

Estou recebendo o mesmo erro. Tentei retreinar usando o conjunto de dados VOC. Você conseguiu resolver isso?

Statistics:
Dataset size: 0
Dataset of 0 instance(s)
Traceback (most recent call last):
  File "/usr/local/bin/flow", line 6, in <module>
    cliHandler(sys.argv)
  File "/videoEval/darkflow/darkflow/cli.py", line 29, in cliHandler
    print('Enter training ...'); tfnet.train()
  File "/videoEval/darkflow/darkflow/net/flow.py", line 39, in train
    for i, (x_batch, datum) in enumerate(batches):
  File "/videoEval/darkflow/darkflow/net/yolo/data.py", line 102, in shuffle
    batch_per_epoch = int(size / batch)
ZeroDivisionError: division by zero

@humanova no "darkflow / darkflow / net / yolov2 / data.py" tente imprimir o caminho da imagem, aí você vai ficar sabendo qual é o erro aí .. !! Veja o seguinte código.

jpg = chunk[0]; w, h, allobj_ = chunk[1]
allobj = deepcopy(allobj_)
path = os.path.join(self.FLAGS.dataset, jpg)
**print("Processed : {}".format(path))**
img = self.preprocess(path, allobj)

@ naren142 Sim, eu
Eu também mudei essa linha de código em darkflow / utils / pascal_voc_clean_xml.py. (linha 22) para:
annotations = glob.glob('*.xml')

O erro causado por uma anotação sem dados. (há uma anotação para a imagem, mas a imagem sumiu) Eu deletei esse annotation.xml e funcionou! Obrigado!

Tive o mesmo problema. Descobri que o darkflow precisava de arquivos xml em vez de anotações txt.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

xunkaixin picture xunkaixin  ·  4Comentários

borasy picture borasy  ·  3Comentários

realityzero picture realityzero  ·  3Comentários

jubjamie picture jubjamie  ·  4Comentários

bareblackfoot picture bareblackfoot  ·  5Comentários