inigami Get started

images
tools
intelligence
one server

Images have
more to say.

Detect, measure and transform images with one self-hosted media server. Every mark on this photo is its real answer.

Try the processor

YOLOv4 · COCO, 80 classes · OpenCV DNN
ORB / SIFT keypoints · ImageMagick · FFmpeg

A man in a grey shirt walks a golden retriever across a paved square, parked cars and trees behind.
gagarina-square.jpg 2400 × 1600 Canon EOS REBEL SL1 85 mm · f/6.3 · 1/1000 s · ISO 200
  1. car 0.998
  2. dog 0.997
  3. person 0.974
  4. car 0.886
  5. car 0.818
  6. car 0.756
  7. car 0.600
  8. car 0.594
  1. car 0.975
  2. dog 0.919
  3. person 0.831
  4. car 0.769
  5. car 0.715
  6. car 0.669
  7. car 0.654
  8. car 0.551

400 ORB keypoints

vision

Find what's in a picture, and where.

A cyclist in a dark red top and hat rides away down a Quebec City street lined with parked cars.
quebec-cyclist.jpg · 2400 × 1600 · Nikon Z 7II · 400 mm · f/5.6 · 1/25 s · ISO 250

YOLOv4 finds the rider, the bicycle, a handbag and the cars along the street, with how sure it is of each. Keypoints are where an image is most itself: ORB picks fast corners, SIFT picks blobs across scales. They're what lets two photos of the same place be matched.

  1. person0.996
  2. car0.991
  3. car0.970
  4. car0.962
  5. handbag0.951
  6. bicycle0.913
request · path shortened
{
  "type": "image_object_detection",
  "data": {
    "inputFile": "/photos/quebec-cyclist.jpg",
    "model": "full"
  }
}

lab

Change it, and see exactly what was asked.

The arched facade of the Carré theatre in Amsterdam; a woman walks a brown dog along the brick pavement. originalimage_filter · edge

Filters, resizes, crops and rotations run on ImageMagick inside the same server. Drag across the photo: that is the processor's edge filter, byte for byte.

request · path shortened
{
  "type": "image_filter",
  "data": {
    "image_path": "/photos/amsterdam-carre.jpg",
    "parameters": {
      "filter": "edge",
      "radius": 1,
      "sigma": 0.5
    }
  }
}
response · output path omitted
{
  "background_color": "",
  "filter_type": "edge",
  "format": "JPEG",
  "intensity": 1,
  "new_dimensions": [
    1800,
    1350
  ],
  "operation": "filter",
  "original_dimensions": [
    1800,
    1350
  ]
}
The same photo rotated eight degrees, its corners transparent.
image_rotate · angle −8 · 1800 × 1350 → 1972 × 1590