[PYTHON] Je veux copier l'annotation de yolo

J'ai fait une nouvelle annotation par erreur!

Vous créez plusieurs txt pour la même image. Je pense qu'il existe une telle chose.

Copiez l'annotation et ajoutez ou créez-en une nouvelle.

how to Spécifiez un dossier et travaillez sans distinction avec le texte à l'intérieur. Si vous trouvez train.txt ou class.txt, veuillez évacuer.

Après avoir copié par numéro, recherchez le txt du même nom et ajoutez une ligne.

Si vous voulez ajouter 2 de l'annotation dans le dossier arm_anno au txt d'annotation de la même image dans body_anno

$ python3 yolocopy.py arm_anno body_anno 2

Ce sera.

code

yolocopy.py


import glob
import os
import sys

path = os.getcwd()

_, infile, outfile, inline = sys.argv # target_file, output_file, target_number

for nowtxt in glob.glob(infile + "/*.txt"):
	textline = []
	with open(nowtxt) as f:
		l_strip = [s.strip() for s in f.readlines()]
		for k in l_strip:
			if str(k[0]) == str(inline):
				textline.append(k)
	basename = os.path.basename(nowtxt) #get name
	with open(outfile +'/'+ basename, mode='a') as f:
		for k in textline:
			f.write('\n' + str(k))
	
	trueline = []
	with open(outfile +'/'+ basename) as f:
		l_strip = [s.strip() for s in f.readlines()]
		for k in l_strip:
			if len(str(k))>0:
				trueline.append(k)
	#os.remove(outfile +'/'+ basename)
	with open(outfile +'/'+ basename, mode='w') as f:
		f.write('\n'.join(trueline))

Améliorations futures

Je pense que ce serait plus facile si vous vous limitez au txt qui a l'image avec le même nom, mais ce n'est pas gênant.

Recommended Posts

Je veux copier l'annotation de yolo
Je veux résoudre SUDOKU
Je veux comprendre à peu près systemd
Je veux gratter des images et les former
Je veux faire ○○ avec les Pandas
Je veux déboguer avec Python
Je veux épingler Spyder à la barre des tâches
Je veux détecter des objets avec OpenCV
Je veux sortir froidement sur la console
Je veux les gratter tous ensemble.
Je veux gérer la rime part1
Je veux savoir comment fonctionne LINUX!
Je veux écrire un blog avec Jupyter Notebook
Je veux gérer la rime part3
Je veux utiliser jar de python
Je veux créer un environnement Python
Je veux utiliser Linux sur mac
Je veux installer Python avec PythonAnywhere
Je veux jouer avec aws avec python
Je souhaite utiliser la console IPython Qt
Je veux afficher la barre de progression
Je veux faire un programme d'automatisation!
Je veux intégrer Matplotlib dans PySimpleGUI
Je voulais vraiment copier avec du sélénium
Je veux gérer la rime part2
Je souhaite développer des applications Android sur Android
Je veux que CAPTCHA dise des mots HIWAI
Je veux gérer la rime part5
Je veux gérer la rime part4
Je veux faire de matplotlib un thème sombre
Je veux faire le test de Dunnett en Python
Je veux pouvoir penser à la récurrence
Je souhaite créer facilement un modèle de bruit
Je veux utiliser MATLAB feval avec python
Je veux corriger Datetime.now dans le test de Django
Je veux mémoriser, y compris les arguments de mots clés de Python
Je veux créer une fenêtre avec Python
Quoi qu'il en soit, je veux vérifier facilement les données JSON
Je souhaite envoyer un e-mail depuis Gmail en utilisant Python.
[Python] Je veux gérer 7DaysToDie depuis Discord! 1/3
Je veux moquer datetime.datetime.now () même avec pytest!
Je souhaite afficher plusieurs images avec matplotlib.
Je veux frapper 100 sciences des données avec Colaboratory
Je veux faire un jeu avec Python
Je veux visualiser les fichiers csv en utilisant Vega-Lite!
Je veux gérer la rime part7 (BOW)
Je veux être OREMO avec setParam!
Je ne veux pas passer un test de codage
Je souhaite stocker les informations de la base de données dans la liste
Je veux fusionner des dictionnaires imbriqués en Python
Je veux faire des crises de ma tête
Je veux gérer systemd par fuseau horaire! !!
Je veux obtenir les données de League of Legends ②
Je veux utiliser le solveur ceres de python
Je ne veux pas utiliser -inf avec np.log
#Unresolved Je veux compiler gobject-introspection avec Python3
Je souhaite créer un type d'implémentation pouvant être branché
Je souhaite utiliser ip vrf avec SONiC