Python 如何通过YOLACT保存有关实例分割结果的信息?

Python 如何通过YOLACT保存有关实例分割结果的信息?,python,pytorch,Python,Pytorch,在使用YOLACT执行实例分割时,是否有任何方法将检测到的类别、它们的编号、掩码区域等保存到TXT文件或CSV文件 我使用YOLACT()来挑战实例分割。 我能够使用eval.py对自己的数据进行实例分割,并保存图像或视频。 然而,我真正需要的是由YOLACT的AI检测和分类的类名及其编号,以及​​面具 如果我们可以将这些信息输出到txt文件或csv文件,我们就可以使用YOLACT更高级 如果我可以通过在eval.py中添加选项或修改代码来实现,请教我 谢谢。您已经从eval.py中获得了这些信

在使用YOLACT执行实例分割时,是否有任何方法将检测到的类别、它们的编号、掩码区域等保存到TXT文件或CSV文件

我使用YOLACT()来挑战实例分割。 我能够使用eval.py对自己的数据进行实例分割,并保存图像或视频。 然而,我真正需要的是由YOLACT的AI检测和分类的类名及其编号,以及​​面具 如果我们可以将这些信息输出到txt文件或csv文件,我们就可以使用YOLACT更高级

如果我可以通过在eval.py中添加选项或修改代码来实现,请教我


谢谢。

您已经从
eval.py
中获得了这些信息

eval.py
中的这一行提供了信息

#第160行
类、分数、框=[x[:args.top_k].cpu().numpy(),用于t[:3]]
掩码=t[3][:args.top\u k]
面积=[]
对于遮罩中的遮罩:
#使用OpenCV的findContours()检测并获取变量掩码的轮廓
#使用OpenCV的轮廓面积()计算面积
区域。附加(区域)
获取检测数量:

#第162行
num_dets_to_consive=min(args.top_k,classes.shape[0])
对于范围内的j(要考虑的数量):
如果得分[j]
要将课程和分数保存为csv文件,请执行以下操作:

将熊猫作为pd导入
df=pd.DataFrame(列=['class','score'])
c=0
对于反向中的i(范围(num_dets_至_考虑)):
classname=cfg.dataset.class_名称[classes[j]]
分数=分数[i]
df.loc[c]=[类名,分数]
c+=1
df.to_csv('info.csv',index=None)
编辑1: 您可以从prep_display()返回值(类、分数、区域),然后在evalimage()中检索它们。请注意,evalimage()调用prep_display()。您可以这样做:

班级、分数、区域=prep\u display()
#在这里您可以包含熊猫代码。请注意,它只存储一个图像的信息。可以使用循环,然后存储所有图像的信息。
编辑2:

#这是eval.py第600行的默认行
#这可以在evalimage()中找到
img\u numpy=prep\u显示(preds,frame,None,None,undo\u transform=False)
#将上述行更改为:
类、分数、区域、img\u numpy=prep\u显示(preds、frame、None、None、undo\u transform=False)
#另外,请记住从prep_display()返回这4个值。
#否则,将导致错误。
#img_numpy是将从prep_display()返回的默认值。
#现在只返回4个值,而不是1个值。
#注意:我加入了img_numpy,因为我发现prep_display()在很多地方都被使用。
#在eval.py中调用prep_display()时,需要修改返回值。我想它在eval.py的不同地区被调用了3次。

感谢您的宝贵建议!顺便问一下,我应该在eval.py中的何处添加此代码(df=pd.DataFrame…)?另外,这个额外的代码是否给我提供了有关表面面积的数字信息​​还有面具吗?对不起,我是python新手。我已经编辑了我的原始答案。您可以检查更改。我可以通过在第167行调用pandas来获取csv,但是我在获取掩码区域信息时遇到问题,我应该在哪一行插入代码以获取代码“classes,scores,areas=prep_display()”?提前谢谢。我已经做了第二次编辑。你可以找到变化。@planet_冥王星是否可以只保存面具?