L2CS R18

Click a block to read its description, or select it with Tab and Enter.

L2CS R18Face-crop gaze, 90 bins per angle, 3 × 448 × 448 normalized RGB input, native eval. Shapes exclude batch.LibreYOLOL2CS R18Face-crop gaze, 90 bins per angle, 3 × 448 × 448 normalized RGB input, native eval. Shapes exclude batch.ResNet face encoderNormalized face crop3 × 448 × 448Conv2d 7×7, stride23 to64; padding3;64×224×224BatchNorm2d + ReLU64 × 224 × 224MaxPool2d 3×3, stride264 × 112 × 112; padding1BasicBlock stage1, n=264 × 112 × 112BasicBlock stage2, n=2128 × 56 × 56BasicBlock stage3, n=2256 × 28 × 28BasicBlock stage4, n=2512 × 14 × 14Stage1 preserves stride4; stages2/3/4 downsample to stride32.Parallel angle heads and decodeAdaptiveAvgPool2d(1) + flatten512-element feature vectorLinear yaw512 to90 logitsSoftmax in float3290 probabilitiesAngular-bin expectation4 × sum(probability[i] × i) -180 degreesMultiply π/180yaw in radiansLinear pitch512 to90 logitsSoftmax in float3290 probabilitiesAngular-bin expectation4 × sum(probability[i] × i) -180 degreesMultiply π/180pitch in radiansNative model tuple order: (yaw_logits, pitch_logits).External decode returns columns [pitch, yaw] in radians.Face detection/cropping is a caller pipeline, not part of this network.Unused upstream fc_finetune layer is absent.BasicBlock stage 1First blockInput64 channelsConv2d 3×364 to64; stride1,padding1BatchNorm2d64 channelsReLUConv2d 3×364 to64; stride1,padding1BatchNorm2d64 channels+ReLU64 output channelsRepeat n=1Input64 channelsConv2d 3×364 to64; stride1,padding1BatchNorm2d64 channelsReLUConv2d 3×364 to64; stride1,padding1BatchNorm2d64 channels+ReLU64 output channelsBasicBlock stage 2First blockInput64 channelsConv2d 3×364 to128; stride2,padding1BatchNorm2d128 channelsReLUConv2d 3×3128 to128; stride1,padding1BatchNorm2d128 channels+Conv1×164 to128;s2BatchNorm128 channelsReLU128 output channelsRepeat n=1Input128 channelsConv2d 3×3128 to128; stride1,padding1BatchNorm2d128 channelsReLUConv2d 3×3128 to128; stride1,padding1BatchNorm2d128 channels+ReLU128 output channelsBasicBlock stage 3First blockInput128 channelsConv2d 3×3128 to256; stride2,padding1BatchNorm2d256 channelsReLUConv2d 3×3256 to256; stride1,padding1BatchNorm2d256 channels+Conv1×1128 to256;s2BatchNorm256 channelsReLU256 output channelsRepeat n=1Input256 channelsConv2d 3×3256 to256; stride1,padding1BatchNorm2d256 channelsReLUConv2d 3×3256 to256; stride1,padding1BatchNorm2d256 channels+ReLU256 output channelsBasicBlock stage 4First blockInput256 channelsConv2d 3×3256 to512; stride2,padding1BatchNorm2d512 channelsReLUConv2d 3×3512 to512; stride1,padding1BatchNorm2d512 channels+Conv1×1256 to512;s2BatchNorm512 channelsReLU512 output channelsRepeat n=1Input512 channelsConv2d 3×3512 to512; stride1,padding1BatchNorm2d512 channelsReLUConv2d 3×3512 to512; stride1,padding1BatchNorm2d512 channels+ReLU512 output channelsSource: libreyolo/models/l2cs/nn.py and model.py. Revision a4d0ecc9e17f.libreyolo.com