ruv-swarm
Version:
High-performance neural network swarm orchestration in WebAssembly
387 lines (375 loc) • 10.7 kB
JavaScript
/**
* Computer Vision Neural Network Presets
* Production-ready configurations for image and video processing tasks
*/
export const visionPresets = {
// Real-time Object Detection
object_detection_realtime: {
name: 'Real-time Object Detector',
description: 'Optimized for real-time object detection in video streams',
model: 'cnn',
config: {
inputShape: [416, 416, 3],
architecture: 'yolo_v5',
convLayers: [
{ filters: 32, kernelSize: 3, stride: 1, activation: 'mish' },
{ filters: 64, kernelSize: 3, stride: 2, activation: 'mish' },
{ filters: 128, kernelSize: 3, stride: 1, activation: 'mish' },
{ filters: 256, kernelSize: 3, stride: 2, activation: 'mish' },
],
anchors: [[10, 13], [16, 30], [33, 23], [30, 61], [62, 45], [59, 119], [116, 90], [156, 198], [373, 326]],
numClasses: 80,
dropoutRate: 0.2,
},
training: {
batchSize: 16,
learningRate: 1e-3,
epochs: 100,
optimizer: 'sgd',
momentum: 0.9,
augmentation: {
rotation: 15,
zoom: 0.2,
flip: true,
colorJitter: 0.2,
},
},
performance: {
expectedAccuracy: '85-88% mAP',
inferenceTime: '8ms (30+ FPS)',
memoryUsage: '150MB',
trainingTime: '24-48 hours on GPU',
},
useCase: 'Security cameras, autonomous vehicles, robotics',
},
// Facial Recognition
facial_recognition_secure: {
name: 'Secure Facial Recognition',
description: 'High-accuracy facial recognition with privacy features',
model: 'resnet',
config: {
inputShape: [160, 160, 3],
architecture: 'facenet',
numBlocks: 8,
blockDepth: 3,
hiddenDimensions: 512,
initialChannels: 64,
embeddingSize: 128,
useArcFaceLoss: true,
},
training: {
batchSize: 128,
learningRate: 5e-4,
epochs: 200,
optimizer: 'adam',
scheduler: 'cosine',
margin: 0.5,
scale: 30,
},
performance: {
expectedAccuracy: '99.2% on LFW',
inferenceTime: '5ms',
memoryUsage: '200MB',
trainingTime: '3-5 days on GPU',
},
useCase: 'Access control, identity verification, secure authentication',
},
// Medical Image Analysis
medical_imaging_analysis: {
name: 'Medical Image Analyzer',
description: 'Analyze medical images for diagnosis support',
model: 'cnn',
config: {
inputShape: [512, 512, 1], // Grayscale medical images
architecture: 'unet_3d',
convLayers: [
{ filters: 64, kernelSize: 3, stride: 1, activation: 'relu', batchNorm: true },
{ filters: 128, kernelSize: 3, stride: 1, activation: 'relu', batchNorm: true },
{ filters: 256, kernelSize: 3, stride: 1, activation: 'relu', batchNorm: true },
{ filters: 512, kernelSize: 3, stride: 1, activation: 'relu', batchNorm: true },
],
skipConnections: true,
attentionGates: true,
dropoutRate: 0.3,
},
training: {
batchSize: 8,
learningRate: 1e-4,
epochs: 150,
optimizer: 'adamw',
lossFunction: 'dice_bce',
classWeights: 'auto',
augmentation: {
rotation: 20,
elasticDeformation: true,
intensityShift: 0.1,
},
},
performance: {
expectedAccuracy: '93-95% Dice Score',
inferenceTime: '200ms',
memoryUsage: '2GB',
trainingTime: '48-72 hours on GPU',
},
useCase: 'Tumor detection, organ segmentation, disease classification',
},
// Autonomous Driving
autonomous_driving: {
name: 'Autonomous Driving Vision',
description: 'Multi-task vision for autonomous vehicles',
model: 'cnn',
config: {
inputShape: [640, 480, 3],
architecture: 'multitask_network',
backboneNetwork: 'efficientnet_b4',
tasks: {
segmentation: { numClasses: 19 },
detection: { numClasses: 10 },
depthEstimation: { outputChannels: 1 },
laneDetection: { numLanes: 4 },
},
featurePyramid: true,
dropoutRate: 0.2,
},
training: {
batchSize: 4,
learningRate: 2e-4,
epochs: 80,
optimizer: 'adam',
multiTaskWeights: {
segmentation: 1.0,
detection: 1.0,
depth: 0.5,
lanes: 0.8,
},
mixedPrecision: true,
},
performance: {
expectedAccuracy: '88-91% mIoU',
inferenceTime: '25ms',
memoryUsage: '500MB',
trainingTime: '5-7 days on multi-GPU',
},
useCase: 'Self-driving cars, ADAS systems, robotics navigation',
},
// Quality Inspection
quality_inspection: {
name: 'Industrial Quality Inspector',
description: 'Detect defects in manufacturing',
model: 'cnn',
config: {
inputShape: [224, 224, 3],
architecture: 'siamese_network',
backbone: 'resnet50',
metricLearning: true,
embeddingDimension: 256,
anomalyThreshold: 0.85,
dropoutRate: 0.3,
},
training: {
batchSize: 32,
learningRate: 1e-3,
epochs: 100,
optimizer: 'adam',
contrastiveLoss: true,
hardNegativeMining: true,
augmentation: {
rotation: 360,
brightness: 0.3,
contrast: 0.3,
noise: 0.05,
},
},
performance: {
expectedAccuracy: '96-98% defect detection',
inferenceTime: '10ms',
memoryUsage: '300MB',
trainingTime: '12-24 hours on GPU',
},
useCase: 'Manufacturing QC, PCB inspection, surface defect detection',
},
// Satellite Image Analysis
satellite_image_analysis: {
name: 'Satellite Image Analyzer',
description: 'Analyze satellite imagery for various applications',
model: 'cnn',
config: {
inputShape: [512, 512, 8], // Multispectral channels
architecture: 'deeplab_v3_plus',
backbone: 'xception',
outputStride: 16,
numClasses: 15,
asppDilationRates: [6, 12, 18],
dropoutRate: 0.3,
},
training: {
batchSize: 8,
learningRate: 5e-4,
epochs: 120,
optimizer: 'sgd',
momentum: 0.9,
polynomialDecay: true,
augmentation: {
randomCrop: 448,
horizontalFlip: true,
verticalFlip: true,
gaussianNoise: 0.01,
},
},
performance: {
expectedAccuracy: '89-92% pixel accuracy',
inferenceTime: '150ms',
memoryUsage: '1.5GB',
trainingTime: '36-48 hours on GPU',
},
useCase: 'Land use classification, change detection, disaster response',
},
// Document Scanner
document_scanner: {
name: 'Document Scanner and OCR',
description: 'Scan and extract text from documents',
model: 'cnn',
config: {
inputShape: [768, 1024, 3],
architecture: 'crnn',
cnnBackbone: 'mobilenet_v3',
rnnHiddenSize: 256,
rnnLayers: 2,
vocabSize: 95, // Printable ASCII
ctcBeamWidth: 100,
dropoutRate: 0.3,
},
training: {
batchSize: 16,
learningRate: 1e-3,
epochs: 50,
optimizer: 'adam',
ctcLoss: true,
augmentation: {
perspective: true,
rotation: 5,
shear: 0.2,
blur: 0.5,
},
},
performance: {
expectedAccuracy: '98-99% character accuracy',
inferenceTime: '50ms',
memoryUsage: '400MB',
trainingTime: '24-36 hours on GPU',
},
useCase: 'Document digitization, receipt scanning, form processing',
},
// Video Action Recognition
video_action_recognition: {
name: 'Video Action Recognizer',
description: 'Recognize human actions in video sequences',
model: 'cnn',
config: {
inputShape: [16, 224, 224, 3], // 16 frames
architecture: 'i3d',
inflatedKernels: true,
temporalKernelSize: 3,
numClasses: 400,
includeOpticalFlow: false,
dropoutRate: 0.5,
},
training: {
batchSize: 8,
learningRate: 1e-3,
epochs: 80,
optimizer: 'sgd',
momentum: 0.9,
clipGradientNorm: 40,
augmentation: {
temporalJitter: 4,
spatialCrop: 'random',
colorJitter: 0.2,
},
},
performance: {
expectedAccuracy: '82-85% top-1',
inferenceTime: '100ms per clip',
memoryUsage: '800MB',
trainingTime: '3-5 days on GPU',
},
useCase: 'Sports analysis, surveillance, human-computer interaction',
},
// Image Enhancement
image_enhancement: {
name: 'AI Image Enhancer',
description: 'Enhance image quality and resolution',
model: 'autoencoder',
config: {
inputSize: 65536, // 256x256
encoderLayers: [32768, 16384, 8192, 4096],
bottleneckSize: 2048,
decoderLayers: [4096, 8192, 16384, 32768],
skipConnections: true,
residualLearning: true,
perceptualLoss: true,
activation: 'prelu',
},
training: {
batchSize: 16,
learningRate: 2e-4,
epochs: 200,
optimizer: 'adam',
lossWeights: {
reconstruction: 1.0,
perceptual: 0.1,
adversarial: 0.001,
},
scheduler: 'reduceLROnPlateau',
},
performance: {
expectedAccuracy: '32-35 PSNR',
inferenceTime: '80ms',
memoryUsage: '600MB',
trainingTime: '48-72 hours on GPU',
},
useCase: 'Photo restoration, super-resolution, denoising',
},
// Style Transfer
style_transfer: {
name: 'Neural Style Transfer',
description: 'Apply artistic styles to images',
model: 'cnn',
config: {
inputShape: [512, 512, 3],
architecture: 'style_transfer_net',
encoderBackbone: 'vgg19',
decoderDepth: 5,
instanceNormalization: true,
styleEmbeddingSize: 256,
numStyles: 10,
dropoutRate: 0.0,
},
training: {
batchSize: 8,
learningRate: 1e-3,
epochs: 40,
optimizer: 'adam',
contentWeight: 1.0,
styleWeight: 100000,
tvWeight: 1e-6,
useMultipleStyleLayers: true,
},
performance: {
expectedAccuracy: 'Subjective quality',
inferenceTime: '100ms',
memoryUsage: '500MB',
trainingTime: '12-24 hours on GPU',
},
useCase: 'Artistic applications, photo filters, content creation',
},
};
// Export utility function to get preset by name
export const getVisionPreset = (presetName) => {
if (!visionPresets[presetName]) {
throw new Error(`Vision preset '${presetName}' not found. Available presets: ${Object.keys(visionPresets).join(', ')}`);
}
return visionPresets[presetName];
};
// Export list of available presets
export const availableVisionPresets = Object.keys(visionPresets);