bywang2018 / security-dataset

Apache License 2.0
52 stars 10 forks source link

code confussion #8

Open ztfmars opened 2 years ago

ztfmars commented 2 years ago

i didnt see SSA & SCA module in your code . maybe you just add a general attention module add the end of backbone (resnet 101)? that's totally different from the paper. i am really confused, is there anything wrong ? thx for your reply

bywang2018 commented 2 years ago

Sorry to confuse you, but please note that our implementation is consistent with that in the paper. There are obvious differences between the proposed attention mechanism and the general attention mechanism. The implementation path of the SDA module is:

security-dataset/mmdet/models/detectors/cascade_rcnn.py

The implementation of SCA is located in lines 20 to 44. The implementation of SSA is located in lines 46 to 68

ztfmars commented 2 years ago

that's really a quick respond! thx very much!!!

  1. i just wonder is it too heavy to use all layers to fuse together meanwhile add channel attention and sptial attention together? is there any advise on how to light the model?
  2. have you thought of how to expand the receipt field , like Deformable Convolution , will it be useful for occulasion?
  3. how to use the color attribution of x-ray img or other edge info for attention? thx again for your well-done jobs, look forward to your anwers
bywang2018 commented 2 years ago

ahh, Don’t mention it! If you want to make the model lighter, I suggest you use a single-layer dense selective attention. Specifically, you can select a specific scale of a certain layer, and then obtain the context information through the dense attention mechanism. Finally, you can up-sample the information to different scales and fuse it with the original features. I think the second and third ideas you mentioned are really great. But we haven't explored further how to realize it. If you have any ideas, please feel free to communicate with us!

ztfmars commented 2 years ago

hi~~ sorry to bother you again. here comes some new questions: (1) what's the version of your code's mmdetection? (2) i think the mmdetection's warm up ration is usually seted as: ... optimizer_config = dict(grad_clip = None) lr_config=dict( ... warm_ratio=0.001)

but your cascade rcnn config is setting as: grad_clip=dict(max_norm=35, norm_type=2) .. warmup_ratio=1/3

i have test the changged warmup parameters, and it will directly be very helpful to increase the AP of easy dataset in pidxray,
but when with the same parameters added attention module, it will do harm to the map of easy dataset while be useful for hard and hidden dataset?

(3) at result (COCO map) in table3, how to calculate the overall? overall = sum(easy + hard + hidden)/3 or there is annother annotation that contains all the 3 types of dataset? you use the total dataset to calculate the overall ap value? i didn't find the all total all annotation.

(4) about the code have you refined thecode of RPNTestMixin or the forward_train process?

i have read the code and want to transfer the sdanet to my own code(mmdet 2.23, mmcv1.4.5),

""" class CascadeRCNN(TwoStageDetector): .... self.selective_attention_0 = selective_attention(0) self.selective_attention_1 = selective_attention(1) self.selective_attention_2 = selective_attention(2) self.selective_attention_3 = selective_attention(3)

...

def extract_feat(self, img): x = self.backbone(img) x = self.neck(s) x = self.enhance_feature(x) return x """

the AP of hard, hidden , has been increased , but the AP of easy has been decreased compared to the result of using the same training parameter( the same warmup) cascade rcnn... that's really wired strange

(4) becase my GPU is limited, i tried to set the batch size = 1, but it will come to error due to the nn.bachnormal in channle_attention module. so will it be better to replace the conv-bn-relu to fc-relu-fc like in "Squeeze-and-Excitation Networks" ?

look forward to your reply, thx a lot!

bywang2018 commented 2 years ago
  1. Sorry, I can't remember the version number clearly due to the time reason. However, I conduct the experiment on the latest mmdetection(mmdet version 2.3.0), and our approach remains effective.
  2. As for the parameters, we apply the default setting in mmdetection. The parameters may be adjusted in the latest mmdetection version.
  3. Indeed, the calculation formula of overall is: overall = sum(easy + hard + hidden)/3
  4. I did not modify other parts of the code, such as the RPNTestMixin or forward_train process.
  5. I can't answer this question, you may need to try it.
ztfmars commented 2 years ago

thx for your answer and guide!

justin14567 commented 2 years ago

作者您好,请问一下数据集在下载过程中出现问题,area的值全为1.0,导致相关中物体和大物体检测不了,能否在提供一下数据集

bywang2018 commented 2 years ago

作者您好,请问一下数据集在下载过程中出现问题,area的值全为1.0,导致相关中物体和大物体检测不了,能否在提供一下数据集

Thank you for your attention to our work! The annotation file provides the coordinate value of the object, which can be used to calculate the area.