yatengLG / ISAT_with_segment_anything

Labeling tool with SAM(segment anything model),supports SAM, SAM2, sam-hq, MobileSAM EdgeSAM etc.交互式半自动图像标注工具
https://www.yatenglg.cn/isat/
Other
1.23k stars 130 forks source link

bfloat16勾选了,分割到第5张就卡住不动,分割速度也跟float32没区别 #210

Closed 379061296 closed 1 week ago

379061296 commented 1 week ago

bfloat16勾选了,视频分割5帧,分割到第5张就卡住不动,分割速度也跟float32没区别,还有,在float32能不能不弹窗提示,每次打开ISAT,选了sam2模型,都弹一次,很不友好,不要加这个提示啊

8张图片,标注完成以后,点击分割视频,全部分割的情况下,会出现一个提升,看第2图

QQ20240928-195550

379061296 commented 1 week ago

模型bfloat16勾选了,8张图片,标注完第1张图,点击分割视频,全部分割的情况下,会出现一个提示,看下图, 要点击一下文件列表的其他图片,再点击一下标注好的那个图,才会分割,但是分割过程也出现了分割第4张图片卡住不动

QQ20240928-200546

yatengLG commented 1 week ago

模型bfloat16勾选了,8张图片,标注完第1张图,点击分割视频,全部分割的情况下,会出现一个提示,看下图, 要点击一下文件列表的其他图片,再点击一下标注好的那个图,才会分割,但是分割过程也出现了分割第4张图片卡住不动

QQ20240928-200546

这个提示不是很明显嘛。标注完没保存T.T

yatengLG commented 1 week ago

我不清楚你的数据是什么情况,但在isat提供的测试数据上是完全没有问题的。

image

yatengLG commented 1 week ago

sam2的视频标注时,图像序列必须是按顺序的。从你发的图看来, 应该是你的数据问题,毕竟你都不是同一个视频的序列数据,怎么能自动视频分割呢。

image

yatengLG commented 1 week ago

另外,sam2在bfloat16使比float32快一倍不止,这个是实际测试过的。在使用视频分割时,不论是速度还是现存占用,提升都会特别大。

379061296 commented 1 week ago

sam2的视频标注时,图像序列必须是按顺序的。从你发的图看来, 应该是你的数据问题,毕竟你都不是同一个视频的序列数据,怎么能自动视频分割呢。

image

如果是根据顺序,001.jpg 002.jpg 这种,就太死板了,毕竟截图以后,有的图片又需要删除掉,可以改一改吗,根据读取到列表里面的顺序,获取路径+文件名去分割,而且,我这个图片命名,float32视频分割没问题,bfloat16确实不行

379061296 commented 1 week ago

图片根据顺序命名 001.jpg---007.jpg,测试还是卡住不动

379061296 commented 1 week ago

我看跟你的cmd显示不一样,我这个应该是报错了,float32 bfloat16 都报这个错误,分割几张就卡住不动

sam_tag: True sam_video_tag: True C:\yolo\ISAT_with_segment_anything-1.2.1.3\ISAT\segment_any\sam2\modeling\backbones\hieradet.py:72: UserWarning: 1Torch was not compiled with flash attention. (Triggered internally at C:\actions-runner_work\pytorch\pytorch\builder\windows\pytorch\aten\src\ATen\native\transformers\cuda\sdp_utils.cpp:555.) x = F.scaled_dot_product_attention( self.start_frame_idx: 0 self.max_frame_num_to_track: None init state finished. propagate in video: 29%|██████████████████▎ | 2/7 [00:02<00:06, 1.33s/it]Segment video: 1/8 propagate in video: 43%|███████████████████████████▍ | 3/7 [00:05<00:08, 2.02s/it]Segment video: 2/8 propagate in video: 57%|████████████████████████████████████▌ | 4/7 [00:09<00:07, 2.59s/it]Segment video: 3/8 propagate in video: 71%|█████████████████████████████████████████████▋ | 5/7 [00:13<00:06, 3.03s/it]Segment video: 4/8 propagate in video: 86%|██████████████████████████████████████████████████████▊ | 6/7 [00:23<00:05, 5.40s/it]Segment video: 5/8

yatengLG commented 1 week ago

你可以用项目的样例数据测试下。

379061296 commented 1 week ago

你可以用项目的样例数据测试下。

我猜测是不支持gpu,现在准备重新搭建cpu版的torch测试

yatengLG commented 1 week ago

sam2的视频标注时,图像序列必须是按顺序的。从你发的图看来, 应该是你的数据问题,毕竟你都不是同一个视频的序列数据,怎么能自动视频分割呢。 image

如果是根据顺序,001.jpg 002.jpg 这种,就太死板了,毕竟截图以后,有的图片又需要删除掉,可以改一改吗,根据读取到列表里面的顺序,获取路径+文件名去分割,而且,我这个图片命名,float32视频分割没问题,bfloat16确实不行

这不是死板不死板的问题。你一个视频500帧,一帧接一帧的。你现在只要第1、第328、第500帧,这还叫视频嘛。T.T这和命名有啥关系。 你总不能间隔帧太多,还要求自动识别吧。T.T,不然为啥叫视频分割。


没有要求必须所有帧才能视频分割,但总不能像你这个图片里数据这个样子啊T.T。和命名没关系。是你帧之间差异太大了。

image

yatengLG commented 1 week ago

你可以用项目的样例数据测试下。

我猜测是不支持gpu,现在准备重新搭建cpu版的torch测试

不需要猜测,直接测试就行。是数据问题还是环境问题,用样例数据一测就知道了。

379061296 commented 1 week ago

你可以用项目的样例数据测试下。

我猜测是不支持gpu,现在准备重新搭建cpu版的torch测试

不需要猜测,直接测试就行。是数据问题还是环境问题,用样例数据一测就知道了。

好的,我重新弄gpu版本的环境,大概20分钟就好,

379061296 commented 1 week ago

环境: win10 x64 python-3.10.11-amd64.exe cuda_11.8.0_522.06_windows.exe cudnn-windows-x86_64-8.9.7.29_cuda11-archive.zip pip install torch==2.4.1 torchvision==0.19.1 torchaudio==2.4.1 --index-url https://download.pytorch.org/whl/cu118

ISAT_with_segment_anything-1.2.2使用模型: sam2_hiera_base_plus.pt

样例数据: C:\yolo\ISAT_with_segment_anything-1.2.2\example\videos

一样有个错误输出,你这个每张图标注的目标比较少, 处理起来比较快,我那个基本图片8个目标以上,我打算降低torch==2.2.0 测试一下看还有错误不 pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118

C:\yolo\ISAT_with_segment_anything-1.2.2>python main.py

379061296 commented 1 week ago

环境: win10 x64 python-3.10.11-amd64.exe cuda_11.8.0_522.06_windows.exe cudnn-windows-x86_64-8.9.7.29_cuda11-archive.zip pip install torch==2.2.0 torchvision==0.17.0 torchaudio==2.2.0 --index-url https://download.pytorch.org/whl/cu118

ISAT_with_segment_anything-1.2.2使用模型: sam2_hiera_base_plus.pt

样例数据: C:\yolo\ISAT_with_segment_anything-1.2.2\example\videos

报错:


warning

SAM not support the image: 00000.jpg Error: Current CUDA Device does not support bfloat16. Please switch dtype to float16.

OK

翻译:


警告

SAM不支持图像:00000. jpg 错误:当前CUDA设备不支持bfloat16。请将dtype切换到float16。

好的。

379061296 commented 1 week ago

你的python版本多少 cuda版本 torch torchvision torchaudio 版本

这个网址说需要处理器支持,我的处理器E5 2690 V2

  1. 哪些处理器支持 bfloat16 ? 首当其冲的是首先 Intel® Xeon® 可扩展处理器应该是有的,据说最新的Intel ® 12/13 代处理器不支持,再就是 AMD 的最新 Zen4 架构应该支持。其它的不了解,请自行查询 https://www.bilibili.com/read/cv26988670/
yatengLG commented 1 week ago

你的python版本多少 cuda版本 torch torchvision torchaudio 版本

这个网址说需要处理器支持,我的处理器E5 2690 V2

  1. 哪些处理器支持 bfloat16 ? 首当其冲的是首先 Intel® Xeon® 可扩展处理器应该是有的,据说最新的Intel ® 12/13 代处理器不支持,再就是 AMD 的最新 Zen4 架构应该支持。其它的不了解,请自行查询 https://www.bilibili.com/read/cv26988670/

和设备有啥关系?你上面不都跑了bfloat16了吗?

image

另外,就你说有个报错,它这不UserWarning嘛? T.T

分析问题不是这么个方法,也不是这么个思路。

yatengLG commented 1 week ago

image

报的两个userwarning,其实是同一个问题,都是和flash attention相关的。

具体的原因也提示的很明白

UserWarning: Flash Attention is disabled as it requires a GPU with Ampere (8.0) CUDA capability.

就是cuda版本低,cuda8.0不支持flash attention(或者显卡型号比较旧,不太支持新特性)。

但是,和软件运行没有任何关系,和bfloat16也没有关系

379061296 commented 1 week ago

1070 显卡不支持,折腾死人了,大佬你的啥显卡

yatengLG commented 1 week ago

1070 显卡不支持,折腾死人了,大佬你的啥显卡

3060、4070

那个警告不需要管的,没有影响。

379061296 commented 1 week ago

1070 显卡不支持,折腾死人了,大佬你的啥显卡

3060、4070

那个警告不需要管的,没有影响。

嗯,弄了1个晚上各种环境,各种cuda cudnn 版本测试,不折腾了,毁灭吧,

258692011 commented 1 week ago

嘎嘎,我换新账号了,那个 379061296 不用了