class FVD
Bases: BaseMetric
Fréchet Video Distance (FVD) computation using I3D model. Users can first download the pretrained I3D model from: https://github.com/hassony2/kinetics_i3d_pytorch/blob/master/model/model_rgb.pth Then put in the folder: AIGVE_Tool/aigve/metrics/video_quality_assessment/distribution_based/fvd/
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model_path
|
str
|
Path to pre-trained I3D model. |
required |
feature_layer
|
int
|
Layer to extract features from. Default is -2 (penultimate layer). |
-2
|
is_gpu
|
bool
|
Whether to use GPU. Default is True. |
True
|
Source code in aigve/metrics/video_quality_assessment/distribution_based/fvd/fvd_metric.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 |
|
calculate_fvd(real, fake)
Compute FVD score between real and generated videos.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
real
|
Tensor
|
Real video tensor [T, C, H, W]. |
required |
fake
|
Tensor
|
Generated video tensor [T, C, H, W]. |
required |
Returns:
Name | Type | Description |
---|---|---|
float |
float
|
FVD score. |
Source code in aigve/metrics/video_quality_assessment/distribution_based/fvd/fvd_metric.py
calculate_statistics(video_tensor)
Extract activation statistics from video frames.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
video_tensor
|
Tensor
|
Video tensor [T, C, H, W]. |
required |
Returns:
Type | Description |
---|---|
tuple[ndarray, ndarray]
|
Tuple[np.ndarray, np.ndarray]: Mean and covariance of extracted features. |
Source code in aigve/metrics/video_quality_assessment/distribution_based/fvd/fvd_metric.py
compute_metrics(results)
Compute the final FVD score.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
results
|
list
|
List of FVD scores for each batch. |
required |
Returns:
Type | Description |
---|---|
Dict[str, float]
|
Dict[str, float]: Dictionary containing mean FVD score. |
Source code in aigve/metrics/video_quality_assessment/distribution_based/fvd/fvd_metric.py
load_i3d_model(model_path, feature_layer)
Load a pre-trained I3D model and modify it to extract features.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
model_path
|
str
|
Path to the I3D model checkpoint. |
required |
feature_layer
|
int
|
The layer index from which to extract features. |
required |
Returns:
Type | Description |
---|---|
Module
|
torch.nn.Module: I3D feature extraction model. |
Source code in aigve/metrics/video_quality_assessment/distribution_based/fvd/fvd_metric.py
preprocess_tensor(video_tensor)
Resize and normalize a video tensor.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
video_tensor
|
Tensor
|
Tensor of shape [T, C, H, W]. |
required |
Returns:
Type | Description |
---|---|
Tensor
|
torch.Tensor: Preprocessed tensor of shape [T, C, H, W]. |
Source code in aigve/metrics/video_quality_assessment/distribution_based/fvd/fvd_metric.py
process(data_batch, data_samples)
Process a batch of videos and compute FVD.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
data_batch
|
dict
|
Not used here. |
required |
data_samples
|
List[Tuple[Tensor], Tuple[Tensor], Tuple[str], Tuple[str]]
|
A list containing four tuples:
- A tuple of |
required |