⥠AI Models Quick Summary
Ultra-quick reference for all 11 models
Perfect for quick lookup - what each model does and which to use
ð All 11 Models at a Glance
Detection Models (8 models)
These find and label objects/text in drawings.
| # |
Model |
What It Finds |
Speed |
| 1 |
canvas_ocr |
Dimension tolerances, beveling, instructions |
40ms |
| 2 |
welding_symbol_detection |
Welding symbols (fillet, butt, groove, etc) |
20ms |
| 3 |
surface_roughness_detection |
Surface finish symbols (Ra 3.2, etc) |
50ms |
| 4 |
thickness_estimation |
Thickness specifications |
15ms |
| 5 |
manufactured_size_estimation |
Size/dimension marking regions |
15ms |
| 6 |
geometric_tolerance_detection |
14 types of tolerance specs |
60ms |
| 7 |
part_table_recognition |
Tables with parts lists |
100ms |
| 8 |
material_shape_classification |
Material shape (cylinder, cube, plate, etc) |
10ms |
Feature Model (1 model)
Converts images to numerical vectors.
| # |
Model |
What It Does |
Output |
| 9 |
deep_feature_v2 |
Convert image to 1024-dimensional vector |
1024 numbers |
Classification Models (2 models)
Binary classification decisions.
| # |
Model |
What It Decides |
Use Case |
| 10 |
drawing_or_not_classification |
Is this a technical drawing? |
Preprocessing filter |
| 11 |
dummy_inference |
Returns "hello world" |
Testing only |
ðŊ Which Model to Use?
Detect Welding Symbols
Use: welding_symbol_detection
Extract Surface Roughness
Use: surface_roughness_detection
Extract Dimensions/Tolerances
Use: canvas_ocr
Geometric Tolerance Specs
Use: geometric_tolerance_detection
Extract Parts Table
Use: part_table_recognition
Identify Material Shape
Use: material_shape_classification
Find Similar Drawings
Use: deep_feature_v2
Check if Image is Drawing
Use: drawing_or_not_classification
Detect Thickness Specs
Use: thickness_estimation
Find Size Markings
Use: manufactured_size_estimation
ðïļ Architecture Patterns
Simple Pattern (2 models)
Image â Model â Result
Models: drawing_or_not_classification, material_shape_classification
Detection Pattern (3 models)
Image â YOLOX detection â NMS filtering â Result
Models: welding_symbol_detection, thickness_estimation, manufactured_size_estimation
Detection + OCR Pattern (4 models)
Image â YOLOX â Find text â Rotate text â Recognize text â Result
Models: canvas_ocr, surface_roughness_detection, geometric_tolerance_detection
Complex Pattern (1 model)
Image â Detection â Table Structure â Text Detection â
Text Recognition â Assembly â HTML/CSV Result
Models: part_table_recognition
Feature Extraction Pattern (1 model)
Image â EfficientNet-B2 â GeM Pooling â 1024-dim vector
Models: deep_feature_v2
ð API Usage Pattern
All models follow the same HTTP API pattern:
POST /predict
Content-Type: application/json
{
"image": "data:image/jpeg;base64,/9j/4AAQSkZJRgABA..."
}
Response:
{
"detections": [...],
"model_version": "v1.2.3",
"inference_time_ms": 45
}
Framework: LitServe (9 models) or FastAPI (2 models)
Input: Base64-encoded image
Output: JSON with model-specific results
ð Performance Specs (on GPU)
Fastest (< 20ms)
| Model |
Speed |
| drawing_or_not_classification |
5ms |
| deep_feature_v2 |
10ms |
| material_shape_classification |
10ms |
| thickness_estimation |
15ms |
| manufactured_size_estimation |
15ms |
Medium (20-50ms)
| Model |
Speed |
| welding_symbol_detection |
20ms |
| canvas_ocr |
40ms |
Slowest (50ms+)
| Model |
Speed |
| surface_roughness_detection |
50ms |
| geometric_tolerance_detection |
60ms |
| part_table_recognition |
100ms |
ð ïļ Technology Stack
Deep Learning
PyTorch, YOLOX, EfficientNet-B2, BERT, Vision Encoder-Decoder
Serving
LitServe (9 models), FastAPI (2 models)
Image Processing
OpenCV, PIL, Pydantic validation
Infrastructure
Kubernetes (GKE), Docker, Git tags for versioning
⥠Key Facts
- ð Total models: 11
- ðŊ Detection-based: 8
- ð Using YOLOX: 8
- ð§ Using LitServe: 9
- âïļ Using FastAPI: 2
- ð Lines of code: 50,000+
- ðū Model size (total): ~2GB
- ðĨïļ GPU memory per pod: 4-8GB
- âąïļ Avg inference time: 30-50ms on GPU
- ð Typical throughput: 50-200 req/sec per pod
ð Real-World Example
Analyzing a Technical Drawing
Input: Technical Drawing
â
[drawing_or_not_classification] â "Yes, it's a drawing"
â
[canvas_ocr] â "Tolerance: Âą0.05mm"
â
[welding_symbol_detection] â "Fillet weld at (100, 200)"
â
[surface_roughness_detection] â "Ra 3.2 Ξm"
â
[geometric_tolerance_detection] â "Perpendicularity: 0.05mm to datum A"
â
[part_table_recognition] â Extracts table (if exists)
â
[deep_feature_v2] â [1024-dim vector for search]
â
Structured Output JSON
ð Common Issues & Fixes
| Problem |
Cause |
Solution |
| CUDA out of memory |
Model too large |
Use GPU with more VRAM or CPU mode |
| Low accuracy |
Blurry/small image |
Ensure input image quality and size |
| Slow inference (>500ms) |
Using CPU |
Use GPU instead |
| Wrong detections |
Overlapping boxes |
Lower NMS threshold |