AdaptiveAvgPool2d with None dimensions can cause issues with some ONNX
runtimes. Use AvgPool2d with kernel=(img_h//16, 1) to achieve the same
height-to-1 reduction with full ONNX compatibility.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Split the single "3d" captcha type into three independent expert models:
- 3d_text: 3D perspective text OCR (renamed from old "3d", CTC-based ThreeDCNN)
- 3d_rotate: rotation angle regression (new RegressionCNN, circular loss)
- 3d_slider: slider offset regression (new RegressionCNN, SmoothL1 loss)
CAPTCHA_TYPES expanded from 3 to 5 classes. Classifier samples updated
to 50000 (10000 per class). New generators, model, dataset, training
utilities, and full pipeline/export/CLI support for all subtypes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>