MMNet
Multimodal species identification from specimen image and DNA barcode (rate limited per IP).
MMNet uses a trained deep learning model to predict insect species from specimen photographs and/or DNA barcode sequences. Supported species include Spodoptera frugiperda, Helicoverpa armigera, Ostrinia furnacalis, and others (30 classes total).
No authentication required. Rate limited to 3 concurrent requests per IP.
POST /api/v1/mmnet/identify
Identify insect species using multimodal inference (specimen image + DNA barcode).
Accepts multipart/form-data:
| Field | Type | Required | Description |
|---|---|---|---|
image | file | Yes | Specimen photo (JPEG/PNG/WebP, max 10 MB). |
barcode | string | No | DNA barcode sequence (IUPAC nucleotide symbols). |
mode | string | No | multimodal_fusion (default when barcode provided) or sequence_only. |
top_k | int | No | Number of top predictions to return (1–10, default 5). |
curl -X POST https://api.ilepbase.com/api/v1/mmnet/identify \
-F "image=@specimen.jpg" \
-F "barcode=ACGTACGTACGTACGTACGTACGTACGTACGTACGT" \
-F "mode=multimodal_fusion" \
-F "top_k=5"Response (200)
{
"success": true,
"data": {
"request_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"model_version": "mmnet-gpm-epoch60",
"mode": "multimodal_fusion",
"latency_ms": 284.2,
"prediction": {
"class_index": 6,
"label": "Spodoptera frugiperda",
"score": 0.93
},
"top_k": [
{ "class_index": 6, "label": "Spodoptera frugiperda", "score": 0.93 },
{ "class_index": 5, "label": "Spodoptera exigua", "score": 0.04 }
],
"sequence_contribution": 0.61,
"image_contribution": 0.39
},
"timestamp": "2026-05-21T12:00:00.000Z"
}Error: 429 Too Many Requests
{
"success": false,
"error": {
"code": "CONCURRENT_LIMIT_REACHED",
"message": "Maximum concurrent identification requests per IP reached."
},
"timestamp": "2026-05-21T12:00:00.000Z"
}GET /api/v1/mmnet/health
Check the health and readiness of the MMNet species identification service. Returns model version, class count, device info, and readiness status.
curl https://api.ilepbase.com/api/v1/mmnet/healthResponse (200)
{
"success": true,
"data": {
"status": "ready",
"model_version": "mmnet-gpm-epoch60",
"class_count": 30,
"device": "cpu"
},
"timestamp": "2026-05-21T12:00:00.000Z"
}