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

有关RAW Model #1

Closed
xiao-junhua opened this issue Jan 2, 2023 · 18 comments
Closed

有关RAW Model #1

xiao-junhua opened this issue Jan 2, 2023 · 18 comments

Comments

@xiao-junhua
Copy link

有关RAW 图像上直接做目标检测的算法会公开吗?我拜读了你们的论文,非常感兴趣,想复现一下

@lizhihao6
Copy link
Collaborator

lizhihao6 commented Jan 2, 2023 via email

@Chegva
Copy link

Chegva commented Feb 6, 2023

想问下,你们提供的华为的raw图格式是RYYB的,但asi和iphone的raw图格式是RGGB的,如果我想练一个输入是RAW图的目标检测器,这两种格式的图片能混合去训练吗?你们有什么归一化之类的方法吗?谢谢。

@lizhihao6
Copy link
Collaborator

您好,我们在论文中是分开训练的。您可以尝试 ( (RAW-blc) / (saturation-blc) ) ^ (1/2.2) 后混合训练,对训练集中含有的相机进行测试应该问题不大,具体效果需要实验论证。

@Chegva
Copy link

Chegva commented Feb 7, 2023

我用yolov5直接去训练asi_294mcpro的RAW图,用rawpy取代cv2去获取raw图,就下面两句,raw = rawpy.imread(f),im = raw.raw_image.astype(np.uint16)/16, 然后就用这种图练,只用了yolov5自带的mosaic数据增强方式,其他都关了,训练了大概30epoch,发现recall和precision极其低,只有0.000几的。能问下你们是怎么处理raw图去训练的吗?

@Chegva
Copy link

Chegva commented Feb 8, 2023

请问你们是否知道有没有什么论坛有讨论用raw图作训练数据的吗,想去了解了解

@lizhihao6
Copy link
Collaborator

RAW图需要根据blc和saturation归一化,blc和saturation信息可以通过metainfos里面对应文件或者rawpy获取。输入网络可以rearrange成四通道,或者demosaic成三通道。

@Chegva
Copy link

Chegva commented Feb 8, 2023

直接用原始的单通道bayer阵列图片去训练的方式走不通吗,我的意思是,你们尝试过经过归一化之后,但不进行pack成4通道之类的操作,直接进去网络训练的方式效果不理想吗。

@lizhihao6
Copy link
Collaborator

我们没尝试过

@Chegva
Copy link

Chegva commented Feb 16, 2023

你好,我用asi_mcpro294数据训练模型,效果不怎么好,请问你们有没什么建议呢。下面是具体实现细节。

我用yolov5s,启用预训练模型,只用上下翻转,左右翻转,缩放,平移4种数据增强,用上adamw,lr为0.001, 批次128,训练300轮。

归一化直接除以16383,因为这个数据集的blacklevel是0,所以按照你们提供的公式,其实就是除16383。输入图片pack成RGGB4个通道,然后平均掉中间两个绿色通道,最终变为3通道输入模型。

我也是只选用了数据标注里的car,bus,truck这三个vehicle类别的,最后结果如下:
Class Image Instance P R AP50 AP50-95
all 885 7977 0.723 0.423 0.461 0.291
car 885 7055 0.795 0.574 0.647 0.416
bus 885 268 0.717 0.407 0.426 0.272
truck 885 654 0.658 0.287 0.31 0.186

可见,综合指标AP50只有0.461,还没达到论文上的AP0.785,按理来说,yolov5模型应该比换了主干的v3要强,但是也只有用上了预训练权重,AP也才0.46,不用的话只有0.2。

我想这里面肯定有哪些操作我没做到位,所以想请教下你们,上述有什么能改进的吗?

@lizhihao6
Copy link
Collaborator

lizhihao6 commented Feb 16, 2023 via email

@lizhihao6
Copy link
Collaborator

lizhihao6 commented Feb 16, 2023

gamma correction 具体公式可以在 supplemental S.I.C 中找到

@Chegva
Copy link

Chegva commented Feb 16, 2023

( (RAW-blc) / (saturation-blc) ) ^ (1/2.2),这个1/2.2就是gamma值吗

@Chegva
Copy link

Chegva commented Feb 16, 2023

好的,我去看看

@Chegva
Copy link

Chegva commented Feb 20, 2023

你们练RAW图时是用的去demosaic之后的raw图吗

@lizhihao6
Copy link
Collaborator

lizhihao6 commented Feb 20, 2023 via email

@Chegva
Copy link

Chegva commented Feb 20, 2023

1

这里不管使用百分之多少的raw图作训练图片时,验证集都是固定的吗,这几幅图的AP涨得都很高,都到80了,远超RGB baseline的55.6了。因为我用asi_294mcpro练,里面默认2100张训练,900张验证,我只有在把训练集当验证集用的时候,AP50才能到80+,如果用验证集去测试模型,在启用yolo自带的预训练权重,论文的归一化和伽马校准方式,数据增强的情况下,练了300epoch,AP50也才到0.501,用的类别也是car,truck和bus。感觉再练下去,AP50最多到0.55吧。

@Chegva
Copy link

Chegva commented Feb 20, 2023

或者你们能发一下你们用模型练RAW图的代码吗,想看看

@lizhihao6
Copy link
Collaborator

请仔细阅读我们的论文。


远超RGB baseline的55.6了

Recall and Average Precision (AP) of Object Detection on the testing set of iPhone RAWs. RGB detector is trained using original RGB images in BDD100K [29];

”55.6“ RGB baselines 是 BDD100K - RGB pretrained 后直接在 iPhone RGB 测试的结果。


用的类别也是car,truck和bus

We only conducted training and testing on the “vehicle” category that has the largest number of objects (e.g., >55 %) and presents the smallest differences.

我们只用了 car 类别训练测试。

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

3 participants