XinZhangRadar / Ship-Go

MIT License
10 stars 0 forks source link

NotImplementedError: Dataset [I2IDataset() form data.dataset] not recognized.请问这个异常该怎么解决呢? #6

Open yakiratian opened 6 months ago

yakiratian commented 6 months ago

q1

您好,我在phd单步调试的时候遇到了这个问题,在检查def init()时发现最后一行“if not os.path.exists(self.out_anns_path ): ”报错

XinZhangRadar commented 6 months ago

重新更新了下data文件夹中的dataset.py,更新下这个文件吧。 这个问题是因为你在config文件里没有给这个路径参数,因此默认的none,所以在调用这个创建文件夹的命令的时候,不接受none的输入。

image 可以按照上图,把train和test的配置里加上output_anns和out_anns_path两个参数,第一个参数代表是否在生成的同时输出标注,第二个参数代表输出标注的地址。建议train的时候不生成标注,test的时候生成标注。

yakiratian commented 6 months ago

谢谢您的解答!但是更改后依旧会报错,具体问题如下,请问这个问题该怎样解决呢,ValueError: operands could not be broadcast together with shapes (0,) (2,) image

XinZhangRadar commented 6 months ago

确定下这个数据集的路径是否设置正确了?感觉没有读到标注信息?

yakiratian commented 6 months ago

感谢您的回复!您的回复对我帮助非常大,谢谢!

Muruizhe commented 5 months ago

请问问题如何解决的呢?目前也遇到了

Muruizhe commented 5 months ago

感谢您的回复。想问一下您,出现这个shaps(0,)(2,)后,数据集路径是如何设置的呢?我修改多次,都是这个报错

---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2024年06月19日 23:29 | | 收件人 | @.> | | 抄送至 | @.>@.> | | 主题 | Re: [XinZhangRadar/Ship-Go] NotImplementedError: Dataset [I2IDataset() form data.dataset] not recognized.请问这个异常该怎么解决呢? (Issue #6) |

就是按照作者给的建议操作的,但是他这整个实验对卡的要求很高,一般的电脑不太行

---- 回复的原邮件 ---- | 发件人 | @.> | | 日期 | 2024年06月19日 09:34 | | 收件人 | @.> | | 抄送至 | @.>@.> | | 主题 | Re: [XinZhangRadar/Ship-Go] NotImplementedError: Dataset [I2IDataset() form data.dataset] not recognized.请问这个异常该怎么解决呢? (Issue #6) |

请问问题如何解决的呢?目前也遇到了

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

notplus commented 1 month ago

@Muruizhe 出现这个shaps(0,)(2,)后,可以尝试将dataset.py 160行左右for循环修改为如下代码

        for objects in objectlist:
            namelist = objects.getElementsByTagName('name')
            objectname = namelist[0].childNodes[0].data
            segm = objects.getElementsByTagName('segm')                    
            one_segm_points_list = []
            x1 = int(objects.getElementsByTagName('rotated_bndbox')[0].getElementsByTagName('x1')[0].childNodes[0].data)
            y1 = int(objects.getElementsByTagName('rotated_bndbox')[0].getElementsByTagName('y1')[0].childNodes[0].data)
            x2 = int(objects.getElementsByTagName('rotated_bndbox')[0].getElementsByTagName('x2')[0].childNodes[0].data)
            y2 = int(objects.getElementsByTagName('rotated_bndbox')[0].getElementsByTagName('y2')[0].childNodes[0].data)
            x3 = int(objects.getElementsByTagName('rotated_bndbox')[0].getElementsByTagName('x3')[0].childNodes[0].data)
            y3 = int(objects.getElementsByTagName('rotated_bndbox')[0].getElementsByTagName('y3')[0].childNodes[0].data)
            x4 = int(objects.getElementsByTagName('rotated_bndbox')[0].getElementsByTagName('x4')[0].childNodes[0].data)
            y4 = int(objects.getElementsByTagName('rotated_bndbox')[0].getElementsByTagName('y4')[0].childNodes[0].data)

            one_segm_points_list = [[x1,y1],[x2,y2],[x3,y3],[x4,y4]]
            pts = np.array(one_segm_points_list, np.int32)
            pts = pts * scale_factor
            pts = np.fix(pts).astype(np.int) 

            cv2.fillPoly(mask, [pts], 0)

其他数据集也是类似的

Jindcjc commented 3 weeks ago

@yakiratian 请问一下我也是按照datasets下三个文件夹Annotations、image、flist这样排列,flist里放的还是作者给的文件,也把config文件里作者标出来的那几行改过了,但还是一直提示Dataset not recognized这样的错误,您是如何解决的呢?还是说datasets文件夹里需要有什么额外的设置吗