Convolutional Neural Networks Are Beautiful
We all take our eyes for granted, we glance at an object for an instant and our brains can identify with ease. However distorted the information may be, we do a pretty good job at it.
Low light, obscured vision, poor eyesight... There are a myriad of situations where conditions are poor but still we manage to understand what an object is. Context helps, but we humans were created with sight in mind.
Computers have a harder time, but modern advances with convolutional neural networks are making this task a reality.
Computers are amazing, the neural networks and maps they create are beautiful.
Why not have an explore?
First import / gather your model (this does not have to be a pretrained pytorch model).
import torchvision
model = torchvision.models.vgg19(pretrained=True)
Import MapExtract's Feature Extractor and load in the model
from MapExtrackt import FeatureExtractor
fe = FeatureExtractor(model)
Set image to be analysed - input can be PIL Image, Numpy array or filepath. We are using the path
fe.set_image("pug.jpg")
View Layers
fe.display_from_map(layer_no=1)
View Single Cells At a Time
fe.display_from_map(layer_no=2, cell_no=4)
Slice the class to get a range of cells (Layer 2 Cells 0-9)
fe[2,0:10]
Or Export Layers To Video
fe.write_video(out_size=(1200,800), file_name="output.avi", time_for_layer=60, transition_perc_layer=0.2)
For LOTS more - view the jupyter notebook.
pip install mapextrackt
or build from source in terminal
git clone https://github.com/lewis-morris/mapextrackt &&\
cd mapextrackt &&\
pip install -e .
- Add the ability to slice the class i.e FeatureExtractor[1,3]
- Show parameters on the image
- Fix video generation
- Enable individual cells to be added to video
- Add video parameters such as duration in seconds.
- Clean up code
- Make speed improvements
Created by me, initially to view the outputs for my own pleasure.
If anyone has any suggestions or requests please send them over I'd be more than happy to consider.