question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Using additional channels for object detection

See original GitHub issue

🚀 Feature

Is your feature request related to a problem? Please describe. Is is possible to use images with more then 3 RGB channels for training? I mean e.g. using the infrared light as an additional channel?

My first guess is not, since in Parser we return file_path not the image?, but maybe I’m wrong?

def filepath(self, o) -> Union[str, Path]:
        return self.source / f"{o.image_id}.jpg"

Describe the solution you’d like

Maybe instead of returning the image path, would it be possible to alternatively return an image itself (since sometimes infrared images are in seprate files so some form of manual merging of the images should be conducted)?

Additional context This would enable using the ice vision to the wider variety of tasks, especially the real-world, industrial applications

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Reactions:1
  • Comments:6 (1 by maintainers)

github_iconTop GitHub Comments

1reaction
rbaverycommented, May 7, 2022

And even beyond earth science, there’s plenty of other use cases in medical imaging and geology where more than 3 bands are useful. Geology in particular often makes use of 100s of bands (hyperspectral data) https://www.usgs.gov/centers/geology%2C-geophysics%2C-and-geochemistry-science-center/science/science-topics/hyperspectral

1reaction
tugot17commented, Oct 4, 2020

I guess that it is not much different then training on RGB images.

One solution would be to add additional channel in the input layer, similarly to as it is done in this efficientnet implementation, so to replace the first layer with Conv of different size, and treat infrared as just an additional channel

if  in_channels != 3:
      Conv2d = get_same_padding_conv2d(image_size=self._global_params.image_size)
      out_channels = round_filters(32, self._global_params)
      self._conv_stem = Conv2d(in_channels, out_channels, kernel_size=3, stride=2, bias=False)
Read more comments on GitHub >

github_iconTop Results From Across the Web

Multi-Channel CNN-based Object Detection for Enhanced ...
In this study, we propose a novel detection algorithm for military objects by fusing multi-channel CNNs. We combine spatial, temporal and ...
Read more >
Meaning of Tensorflow Object Detection API ... - Stack Overflow
It seems to accept additional channels during training (you need to add them during the creation of your TfExample file(s)).
Read more >
An Object Detection Method Combining Multi-Level Feature ...
In this work, we propose a novel object detection method combining multi-level feature fusion and region channel attention (ODMC).
Read more >
Multi-Channel Convolutional Neural Network Based 3D ...
We propose a multi-channel CNN for 3D object detection, which fuses three input channels including RGB, depth, and bird's eye view (BEV) images....
Read more >
An improved object detection algorithm based on multi-scaled ...
We use deep convolutional networks to obtain multi-scaled features, and add deformable convolutional structures to overcome geometric ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found