johko / computer-vision-course

This repo is the homebase of a community driven course on Computer Vision with Neural Networks. Feel free to join us on the Hugging Face discord: hf.co/join/discord
MIT License
376 stars 124 forks source link

Image and Imaging Outline #62

Closed bellabf closed 2 months ago

bellabf commented 7 months ago

Hello everyone, We finally have an outline for the Image and Imaging chapter.

1. What is an image? [image.mdx]

2. Fundamentals of Imaging and its technical aspects of images [imaging.mdx]

3. How we imaged everything/When in doubt, image it. [extension-image.mdx]

Our biggest concern was the possible overlap of our content with the “Feature Detection/Feature Extraction chapter” content, especially regarding image transformations, filters, and convolution. We opt to left it out, considering that the proposed outline for Feature Detection.

Let us know what you think!

Team members - @bellabf, @seshu-pavan, @mfidabel @froestiago, @froestiago bcc - @johko @lunarflu @merveenoyan @MKhalusova

Best, Image and Imaging team

MKhalusova commented 7 months ago

The outline looks really good to me, thank you for working on this! Lots of good fundamental information on images to build up learners' understanding. For the "Imagine everything" feel free (if you'd like) to link an example that we have in the Audio course on audio classification using spectrograms to encourage learners to think out of the box on what else can be viewed as an image.

ATaylorAerospace commented 7 months ago

@bellabf This is a fantastic outline!

In between Section 2 and 3 what do you think about going into more detail on this topic?

bellabf commented 7 months ago

@bellabf This is a fantastic outline!

In between Section 2 and 3 what do you think about going into more detail on this topic?

  • Image Processing Techniques:
  • [ ] Basic Operations: Including filtering, histogram manipulation, thresholding, and morphing ops for example.
  • [ ] Image Enhancement and Restoration: Techniques for improving image visibility and reducing noise.
  • [ ] Edge Detection: Discuss algorithms like Sobel, Cann, Prewitt etc for identifying edges in images.

Hi! Thank you for the feedback. I think it would be great to have image processing techniques in the course content. It would also ease the transition into the feature extraction chapter. I think we can first add enhancement and restoration within section two, and go into more detail in section three (introduce the concept with a simple example and then add different examples and go into more depth as we discuss other imaging technique). As for basic operations and edge detection, I think should be after section 3. By adding into afterward we can show output of what histograms, thresholds techniques, edge detection look like in different types of images and make a stronger overall connection to the other points made within this chapter. I think it would make a more impactful delivery. What do you think?

merveenoyan commented 7 months ago

This is very cool! I wouldn't like this section to be very overwhelming content-wise though as computer vision with ML itself is the opposite of traditional image processing where one e.g. applies kernels manually, does histogram matching or contrast stretching and so forth. We could mention these briefly IMHO. Maybe we could also mention how one uses these as a layer of pre-processing to train a model.

bellabf commented 7 months ago

This is very cool! I wouldn't like this section to be very overwhelming content-wise though as computer vision with ML itself is the opposite of traditional image processing where one e.g. applies kernels manually, does histogram matching or contrast stretching and so forth. We could mention these briefly IMHO. Maybe we could also mention how one uses these as a layer of pre-processing to train a model.

I see your point. Completely agree on it not being too overwhelming. Personally, I think there is a lot of complexity here. For instance, you can do conventional machine learning to do segmentation on engineered features based on pre-processing techniques.. Or you can do deep learning (i.e autoencoders) and use that for registering/rendering afterward. That is part of the reason why we decided "draw a line" between pre-processing and computer vision when we introduce what computer vision is (the outline it was proposed here).

So, if we assume we will be going with a clear definition then we use this part to highlight with examples like downsampling and the use of geometric transformation for data augmentation.

To recap, we will add a section 4 where the first part is using pre-processing techniques to compare images types (i.e. histograms, thresholds techniques, edge detection look like in image coming from different conditions), and the second part is common operations before training (downsampling and data augmentation).

johko commented 7 months ago

Hey, sorry for my late reply.

I also really like the content you came up with! :hugs:

Similar to @merveenoyan, I would say don't go too deep into actual methods, but of course it is good for the course participants to have an intuition for what edge detection does, as that is fundamental for feature extraction and is a good connection to the next chapter.

If you wanna go wild you can also add a notebook with more of the classical methods and just refer to it in the .mdx file, so curious people can have a look. But I would see that as low priority.

lunarflu commented 7 months ago

Overall looks good! Building off what others have said, I think you could start now with tackling individual sections + documents with individual PRs (it's fine to have them as rough drafts) 🚀 WDYT?