Ootzk / Silhouette

Master-Thesis Project: Region-based Quantization using global Silhouette

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Silhouette

Notice

Please access old repository until code-cleaning and project handover is ready...

Overview

Overview
Above figure shows the overview of project.
We install Auxiliary Network at arbitrary layer of Main Network(such as ResNet) architecture. (but highly recommended to install at the beginning of the main network so that many layers can perform region-based quantization)
We referred Attention Branch Network's module design, so Auxiliary Network is consist of 1 channel 1x1 convolution - batch normalization - sigmoid (they used as activation instead of ReLU because this showed better accuracy).
In detail, at forward path, flowing feature maps (size: B * C * H * W) at arbitrary layer are passed into Auxiliary Network and these are processed as Global Silhouette (size: B * 1 * H * W), and these are referred at behind layers.

Region-based Quantization
Extracted Global Silhouette are interpolated to fit the size of each behind layer's feature map.
Interpolated Global Silhouette are converted into Region Separating Bit-mask with preset policy. For example, '2bit 50%, 3bit 30%, 4bit 20%' in above figure. This means lowest 50% value region(violet) of feature map are quantized into 2bit, and highest 20% value region(yellow) of feature map are quantized into 4bit, and remained 30% value region(green) of feature map are quantized into 3bit. This policy is customizable by level of quantization.
All other parts are same as original main network's architecture, except the activation function has changed PACT to maintain the accuracy with extremely low bit-precision.

About

Master-Thesis Project: Region-based Quantization using global Silhouette