in hand-pose-detection/src/tfjs/detector_utils.ts [21:69]
export function validateModelConfig(modelConfig: MediaPipeHandsTfjsModelConfig):
MediaPipeHandsTfjsModelConfig {
if (modelConfig == null) {
return {...DEFAULT_MPHANDS_MODEL_CONFIG};
}
const config: MediaPipeHandsTfjsModelConfig = {...modelConfig};
config.runtime = 'tfjs';
if (config.maxHands == null) {
config.maxHands = DEFAULT_MPHANDS_MODEL_CONFIG.maxHands;
}
if (config.modelType == null) {
config.modelType = DEFAULT_MPHANDS_MODEL_CONFIG.modelType;
}
if (config.modelType !== 'lite' && config.modelType !== 'full') {
throw new Error(
`Model type must be one of lite or full, but got ${config.modelType}`);
}
if (config.detectorModelUrl == null) {
switch (config.modelType) {
case 'lite':
config.detectorModelUrl = DEFAULT_MPHANDS_DETECTOR_MODEL_URL_LITE;
break;
case 'full':
default:
config.detectorModelUrl = DEFAULT_MPHANDS_DETECTOR_MODEL_URL_FULL;
break;
}
}
if (config.landmarkModelUrl == null) {
switch (config.modelType) {
case 'lite':
config.landmarkModelUrl = DEFAULT_MPHANDS_LANDMARK_MODEL_URL_LITE;
break;
case 'full':
default:
config.landmarkModelUrl = DEFAULT_MPHANDS_LANDMARK_MODEL_URL_FULL;
break;
}
}
return config;
}