Darkflow: Ne détecte pas mon jeu de données et ZeroDivisionError : division par zéro

Créé le 17 août 2018  ·  4Commentaires  ·  Source: thtrieu/darkflow

J'essaie d'entraîner mon propre ensemble de données avec mes annotations à l'aide de cette commande :
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

mon dossier d'annotations (tout en xml)
mon dossier de jeu de données (tout en jpg)

Erreur :

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

Commentaire le plus utile

@naren142 Ouais, j'ai résolu le problème le même jour où j'ai créé ce problème avec l'impression d'images traitées tout en le faisant s'entraîner.
J'ai également modifié cette ligne de code dans darkflow/utils/pascal_voc_clean_xml.py. (ligne 22) à :
annotations = glob.glob('*.xml')

L'erreur causée par une annotation sans données. (il y a une annotation pour l'image mais l'image a disparu) J'ai supprimé cette annotation.xml puis ça a fonctionné ! Merci!

Tous les 4 commentaires

Je reçois la même erreur. J'ai essayé de me recycler à l'aide de l'ensemble de données COV. As-tu réussi à le résoudre ?

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 dans le "darkflow/darkflow/net/yolov2/data.py" essayez d'imprimer le chemin de l'image, alors vous saurez quelle est l'erreur là-bas .. !! Voir le code suivant.

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 Ouais, j'ai résolu le problème le même jour où j'ai créé ce problème avec l'impression d'images traitées tout en le faisant s'entraîner.
J'ai également modifié cette ligne de code dans darkflow/utils/pascal_voc_clean_xml.py. (ligne 22) à :
annotations = glob.glob('*.xml')

L'erreur causée par une annotation sans données. (il y a une annotation pour l'image mais l'image a disparu) J'ai supprimé cette annotation.xml puis ça a fonctionné ! Merci!

A eu le même problème. J'ai compris que darkflow avait besoin de fichiers XML plutôt que d'annotations txt.

Cette page vous a été utile?
0 / 5 - 0 notes