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

Suggestions For Improvement of Feature Visualization #3930

Closed
Zengyf-CVer opened this issue Jul 8, 2021 · 4 comments
Closed

Suggestions For Improvement of Feature Visualization #3930

Zengyf-CVer opened this issue Jul 8, 2021 · 4 comments
Labels
enhancement New feature or request Stale Stale and schedule for closing soon

Comments

@Zengyf-CVer
Copy link
Contributor

@glenn-jocher
First of all, thank you for your repair in Feature visualization. I have some new improvement ideas for Feature visualization:
I drew my improvement idea into a picture:
yolov5_vis02

step:

  • First find the feature map belonging to the output image in Stage23_C3_features through the output image. (Select 1 from 512)
  • Then at each stage, the corresponding feature map is selected according to this idea.
  • Finally, the 24 stages output 24 corresponding feature maps.

Since my level is far from enough, so please help me realize it. I think this idea is very practical, thank you.

@Zengyf-CVer Zengyf-CVer added the enhancement New feature or request label Jul 8, 2021
@glenn-jocher
Copy link
Member

@Zengyf-CVer hey thanks for the detailed graphics! I think I understand what you are saying but I also think you may be misunderstanding the flow of information through the model.

The various stages have various channel counts, but you could for example plot channel 0 through all the stages, i.e. 23 plots, but I doubt that the plots would have much to do with each other. For example in a 32x64 convolution all 32 input channels are convolved with all 64 output channels, so channel 0 input and channel 0 output are not related anymore than channel 0 input to channel 63 output.

That's my understanding at least. So you'd essentially be looking at 23 unrelated channel 0 feature maps.

Perhaps the main benefit would be in seeing the shape/resolution of the feature maps change through the model.

@glenn-jocher
Copy link
Member

@Zengyf-CVer we can definitely do this of course, the main challenge is implementing this in such a way as to minimally impact the forward method so that we are not hurting the much wider use-case of normal inference.

@Zengyf-CVer
Copy link
Contributor Author

@glenn-jocher
Thank you for your detailed response to my suggestion. Through your explanation, I have gained a lot.
As you said, the feature maps of each stage are weakly correlated, and the 23 feature maps obtained may be uncorrelated.My main idea is to select feature maps that are similar to the output image at each stage, even if there is a weak relationship in each stage, it will have no effect.
In this way, we can perform a more intuitive analysis on the feature maps of several stages close to the output layer, so as to further describe the interpretability of the model to the object detection process, and lay the foundation for the improvement of the function and performance of the neural network.

@github-actions
Copy link
Contributor

github-actions bot commented Aug 8, 2021

👋 Hello, this issue has been automatically marked as stale because it has not had recent activity. Please note it will be closed if no further activity occurs.

Access additional YOLOv5 🚀 resources:

Access additional Ultralytics ⚡ resources:

Feel free to inform us of any other issues you discover or feature requests that come to mind in the future. Pull Requests (PRs) are also always welcomed!

Thank you for your contributions to YOLOv5 🚀 and Vision AI ⭐!

@github-actions github-actions bot added the Stale Stale and schedule for closing soon label Aug 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Stale Stale and schedule for closing soon
Projects
None yet
Development

No branches or pull requests

2 participants