Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

问题汇总 #16

Open
Jiolen opened this issue Dec 31, 2020 · 35 comments
Open

问题汇总 #16

Jiolen opened this issue Dec 31, 2020 · 35 comments

Comments

@Jiolen
Copy link

Jiolen commented Dec 31, 2020

非常感谢badboy的工作,👍赞

记录下自己在使用项目过程中遇见的问题
1、
问题:torch 用不了cuda
原因:pytorch==1.5.0 是用pip安装的,导致torch和cuda可能不匹配,具体匹配规则可见https://blog.csdn.net/kellyroslyn/article/details/109668001
解决:去torch官网下载https://pytorch.org/get-started/previous-versions/,选定指定版本的torch和cuda

2、
问题:训练识别的时候,No module named “warpctc_pytorch”
原因:没有这个库,不能用pip安装,pip直接安装的会报错。
解决:去pypi官网下载这个包即可,需要选定pytorch版本和cuda版本和python版本https://pypi.org/project/warpctc-pytorch/#files
注意:ptocr/model/loss/ctc_loss.py 作者的ctc还有另外一个torch.nn.CTCLoss ,如果用这个的话,训练出来结果不准。网上可以去搜这两个ctc的区别,搞不懂

3、
问题1:编译pse出错,比如 recipe for target 'pixel merge.so' failed
问题2: pse预测的时候出错,libopencv_imgproc.so.3.2:cannot open shared object file
原因:opencv导致,opencv不能用pip安装的,需要源码编译
解决:去opencv官网https://opencv.org/releases/下载3.2.0版本,然后按照下面的教程编译即可https://blog.csdn.net/kingroc/article/details/93893828
(camke的时候注意python版本)

4、
scikit-image 和 numpy 库要匹配,我用的是skimage==0.17.2 和numpy==1.16.2

@BADBADBADBOY
Copy link
Owner

非常感谢badboy的工作,👍赞

记录下自己在使用项目过程中遇见的问题
1、
问题:torch 用不了cuda
原因:pytorch==1.5.0 是用pip安装的,导致torch和cuda可能不匹配,具体匹配规则可见https://blog.csdn.net/kellyroslyn/article/details/109668001
解决:去torch官网下载https://pytorch.org/get-started/previous-versions/,选定指定版本的torch和cuda

2、
问题:训练识别的时候,No module named “warpctc_pytorch”
原因:没有这个库,不能用pip安装,pip直接安装的会报错。
解决:去pypi官网下载这个包即可,需要选定pytorch版本和cuda版本和python版本https://pypi.org/project/warpctc-pytorch/#files
注意:ptocr/model/loss/ctc_loss.py 作者的ctc还有另外一个torch.nn.CTCLoss ,如果用这个的话,训练出来结果不准。网上可以去搜这两个ctc的区别,搞不懂

3、
问题1:编译pse出错,比如 recipe for target 'pixel merge.so' failed
问题2: pse预测的时候出错,libopencv_imgproc.so.3.2:cannot open shared object file
原因:opencv导致,opencv不能用pip安装的,需要源码编译
解决:去opencv官网https://opencv.org/releases/下载3.2.0版本,然后按照下面的教程编译即可https://blog.csdn.net/kingroc/article/details/93893828
(camke的时候注意python版本)

4、
scikit-image 和 numpy 库要匹配,我用的是skimage==0.17.2 和numpy==1.16.2

感谢分享,对于第二点,我解释一下,对于warp-ctc 见 https://github.com/SeanNaren/warp-ctc/blob/pytorch_bindings/pytorch_binding/warpctc_pytorch/__init__.py 这里第34行求得是sum,size_average默认false,所以结果是没有除以batch_size的,于是在 https://github.com/BADBADBADBOY/pytorchOCR/blob/master/ptocr/model/loss/ctc_loss.py
第19行除以batch_size, 如果要使用torch ctc,需要把注释的第九行打开,注释第十行,并把config['loss']['reduction']设置成sum,这样两者的结果应该是类似的

@BADBADBADBOY
Copy link
Owner

补充一点,能装一下warp ctc最好,torch ctc会出现莫名nan的情况,不知道高版本的有没有修复,当然我在crnn.py中也加了防止nan的操作,现在用torch ctc 一般来说不因该会出现nan, 总之warp ctc 用起来更加友好

@leng-yue
Copy link

torch ctc nan 是因为超 step 的原因, 加个 zero infinity 就好

@fxwfzsxyq
Copy link

infinity

是官网给出的那个 把梯度为nan的置零的操作吗

@leng-yue
Copy link

对的, CTCLoss 有这个参数, 根据我自己撸框架的经历来说有两种情况会导致 loss nan

  • 图片宽度不够 / 网络太深, 出来的 timestep 太短 (<= label length * 1.5), 无法对齐
  • 没有使用 log softmax

ZeroInfinity 可以解决偶尔 label 太长的问题

@Lanme
Copy link

Lanme commented Aug 2, 2021

下载ag_DB_bb_resnet50_he_DB_Head_bs_8_ep_1200和ag_DB_bb_resnet50_he_DB_Head_bs_8_ep_1201均解压失败,不如直接放上来模型呀。

@fxwfzsxyq
Copy link

下载ag_DB_bb_resnet50_he_DB_Head_bs_8_ep_1200和ag_DB_bb_resnet50_he_DB_Head_bs_8_ep_1201均解压失败,不如直接放上来模型呀。

这里面的不用解压,就是模型文件

@yufanxin
Copy link

yufanxin commented Sep 1, 2021

Windows环境遇到 if subprocess.call(['make', '-C', BASE_DIR]) != 0: # return value
raise RuntimeError('Cannot compile lanms: {}'.format(BASE_DIR))
直接将这两行注释掉就可以了

@wayne2tech
Copy link

Windows环境遇到 if subprocess.call(['make', '-C', BASE_DIR]) != 0: # return value raise RuntimeError('Cannot compile lanms: {}'.format(BASE_DIR)) 直接将这两行注释掉就可以了

请问 Windows 也可以跑这个代码吗

@Jiolen
Copy link
Author

Jiolen commented Oct 18, 2021 via email

@wayne2tech
Copy link

可以跑的-------- 原始邮件 --------发件人: Ethan @.>日期: 2021年10月18日周一 上午9:54收件人: BADBADBADBOY/pytorchOCR @.>抄送: Jiolen @.>, Author @.>主 题: Re: [BADBADBADBOY/pytorchOCR] 问题汇总 (#16) Windows环境遇到 if subprocess.call(['make', '-C', BASE_DIR]) != 0: # return value raise RuntimeError('Cannot compile lanms: {}'.format(BASE_DIR)) 直接将这两行注释掉就可以了 请问 Windows 也可以跑这个代码吗 —You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

请问在win下编译是怎样的流程呢,需要修改什么文件吗,https://blog.csdn.net/kingroc/article/details/93893828 您给出的这个方法好像只针对于linux系统,win下我没编译成功

@LanWong1
Copy link

Xnip2021-11-11_15-25-04

@LanWong1
Copy link

Xnip2021-11-11_15-24-07

@Jiolen
Copy link
Author

Jiolen commented Nov 12, 2021 via email

@GYxiaOH
Copy link

GYxiaOH commented Nov 16, 2021

你好,我看你dbnet的蒸馏算法里,loss两个都是dice loss,可原版dbnet一个loss是bceloss 这么用是经过实验的吗

@fxwfzsxyq
Copy link

fxwfzsxyq commented Nov 16, 2021 via email

@LanWong1
Copy link

LanWong1 commented Nov 16, 2021 via email

@GYxiaOH
Copy link

GYxiaOH commented Nov 18, 2021

在icdar2015上实验的,性能就是表格里给的

------------------ 原始邮件 ------------------ 发件人: @.>; 发送时间: 2021年11月16日(星期二) 下午3:39 收件人: @.>; 抄送: @.>; @.>; 主题: Re: [BADBADBADBOY/pytorchOCR] 问题汇总 (#16) 你好,我看你dbnet的蒸馏算法里,loss两个都是dice loss,可原版dbnet一个loss是bceloss 这么用是经过实验的吗 — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe. Triage notifications on the go with GitHub Mobile for iOS or Android.

好的谢谢,所以是实验过在teachermodel里用dice loss会比较好是吗,因为我之前在dbnet里把bce loss 换成了dice loss 效果还是差的比较明显的

@GYxiaOH
Copy link

GYxiaOH commented Nov 18, 2021

dice用于分割可能比较好吧祝好!王毅---- 回复的原邮件 @.>发送日期2021年11月16日 15:39 @.> @.@.>主题Re: [BADBADBADBOY/pytorchOCR] 问题汇总 (#16) 你好,我看你dbnet的蒸馏算法里,loss两个都是dice loss,可原版dbnet一个loss是bceloss 这么用是经过实验的吗 —You are receiving this because you commented.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android. [ { @.": "http://schema.org", @.": "EmailMessage", "potentialAction": { @.": "ViewAction", "target": "#16 (comment)", "url": "#16 (comment)", "name": "View Issue" }, "description": "View this Issue on GitHub", "publisher": { @.": "Organization", "name": "GitHub", "url": "https://github.com" } } ]
谢谢,因为我之前在dbnet里把bce loss 换成了dice loss 效果还是差的比较明显的

@LanWong1
Copy link

请问以下模型剪枝只适用于mobilenetv3吗?为什么不是通用的剪枝呢?还有就是您使用的剪枝算法是什么?流程是怎么样的? @BADBADBADBOY

@LanWong1
Copy link

问一下如何加入群呢?二维码已经失效了?

@fxwfzsxyq
Copy link

fxwfzsxyq commented Jan 20, 2022

请问以下模型剪枝只适用于mobilenetv3吗?为什么不是通用的剪枝呢?还有就是您使用的剪枝算法是什么?流程是怎么样的? @BADBADBADBOY

请问以下模型剪枝只适用于mobilenetv3吗?为什么不是通用的剪枝呢?还有就是您使用的剪枝算法是什么?流程是怎么样的? @BADBADBADBOY

用L1正则化加到BN层的缩放因子上,训练的时候L1正则化推动BN层的缩放因子趋向于零,然后对bn层通道排序,再剪掉一定比例的通道,最后再finetune,方法适用任何有bn的模型,只是剪枝部分需要根据不同模型重写

@LanWong1
Copy link

LanWong1 commented Jan 21, 2022 via email

@LanWong1
Copy link

def polygon_area(self, polygon):
#这么算面积多方便
#return cv2.contourArea(polygon.astype(np.float32))
#为啥要这么算面积 这么算面积都是为0
edge = 0
for i in range(polygon.shape[0]):
next_index = (i + 1) % polygon.shape[0]
edge += (polygon[next_index, 0] - polygon[i, 0]) * (polygon[next_index, 1] - polygon[i, 1])
return edge / 2.

@LanWong1
Copy link

这里面积总是为0 的, 因为四个点是按照顺时针方向的, 那么polygon[next_index, 1] - polygon[i, 1]肯定是0 或者 (polygon[next_index, 0] - polygon[i, 0])为0
Xnip2022-01-26_16-35-37

@morestart
Copy link

crnn的文档可否完善一下

@fxwfzsxyq
Copy link

这里面积总是为0 的, 因为四个点是按照顺时针方向的, 那么polygon[next_index, 1] - polygon[i, 1]肯定是0 或者 (polygon[next_index, 0] - polygon[i, 0])为0 Xnip2022-01-26_16-35-37

是的 这是个bug

@fxwfzsxyq
Copy link

crnn的文档可否完善一下

crnn的文档可否完善一下

周末我看看,具体哪里有问题你可以先提出来,不然不知道怎么完善,我这里给出的默认是有一定基础和debug能力的

@morestart
Copy link

key_file是字典吗?bg_path里的图是用来做什么的,合成数据还是?
还有个问题请教一下,我自己实现了resnetvd的crnn但是reshape到B,C,H*W维度之后接两层lstm后几乎不收敛,loss维持在4.左右,去掉lstm层,reshape后的数据直接到全连接的话就可以收敛的很好,没想明白为什么。。。

@fxwfzsxyq
Copy link

key_file是字典吗?bg_path里的图是用来做什么的,合成数据还是? 还有个问题请教一下,我自己实现了resnetvd的crnn但是reshape到B,C,H*W维度之后接两层lstm后几乎不收敛,loss维持在4.左右,去掉lstm层,reshape后的数据直接到全连接的话就可以收敛的很好,没想明白为什么。。。

key_file 是字典,bg_path是背景图地址,crnn里一种数据增强会用到

@gitTongzhen
Copy link

postprocess文件夹在什么地方

@shenweiwu
Copy link

请问DBNet有识别任务的预训练模型吗

@huangxin168
Copy link

可以跑的-------- 原始邮件 --------发件人: Ethan @.>日期: 2021年10月18日周一 上午9:54收件人: BADBADBADBOY/pytorchOCR @.>抄送: Jiolen @.>, Author @.>主 题: Re: [BADBADBADBOY/pytorchOCR] 问题汇总 (#16) Windows环境遇到 if subprocess.call(['make', '-C', BASE_DIR]) != 0: # return value raise RuntimeError('Cannot compile lanms: {}'.format(BASE_DIR)) 直接将这两行注释掉就可以了 请问 Windows 也可以跑这个代码吗 —You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.Triage notifications on the go with GitHub Mobile for iOS or Android.

我也是win下编译不了。。。

@laoma1234567
Copy link

我有一个问题,就是文字检测训练完成之后想执行infer测试一下,由于我是windows操作系统,需要调用ptocr/postprocess
/dbprocess下的cppdbprocess.so文件,但我在 windows下调用cppdbprocess.so文件无法运行,所以我想编译cppdbprocess.pyd文件,但我发现cppdbprocess.pyd文件编译较为困难,尝试多次都失败了,该编译.so的文件的makefile我也都看过了,但在 visual studio生成cppdbprocess.pyd这一环卡主,导致无法执行infer,请问作者能否提供一些帮助?以及在生成cppdbprocess.pyd这个文件上有什么方法?非常感谢。

@fxwfzsxyq
Copy link

fxwfzsxyq commented Sep 1, 2023 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests