- Sat Arora ([email protected])
- Richard Fan ([email protected])
This report explores approaches to building a "Class Activation Map" (CAM) around objects. To do this, we train Convolutional Neural Networks (CNNs) on a face/no-face dataset first to classify images, and then, we can generate heat using the weights trained by the CNN.
Sample heatmap and image classifier output (this is also in the report):
With the approach to the heatmap being independent of this "binary" classifier, it can be easily extended to training with more than 2 classes (in this case, the classes are face and no-face). Instructions for applying the dataset used in our training process are in the report, and the same directory structure would need to be used for any arbitrary dataset if a user wishes to have minimal code modifications. The general idea for how a dataset should be laid out for the current structure to analyze well is as follows:
├── Dataset
│ ├── train
│ │ ├── Class 1
│ │ ├── Class 2
│ │ ├── ...
│ │ ├── Class k
│ ├── test
│ │ ├── Class 1
│ │ ├── Class 2
│ │ ├── ...
│ │ ├── Class k
└──
The report goes deep into the motivation, theoretical approach, and breaks down the actual code of the whole process. Feel free to take a look at the PDF file for the report, or if you want to play around with the source, the Jupyter Notebook is also attached. Reach out to us if you have any questions!