Quickstart
Run the full system locally, push a recording through the API and read the scores. You need Docker, or Python 3.10+ with ffmpeg available to OpenCV.
1. Run it#
With Docker#
git clone https://github.com/kevin-owens-product/computer-vision.git
cd computer-vision
docker compose up --build demo
# first start renders and processes 7 synthetic sorties (15-40 min)
# then open http://localhost:8000
The demo service turns sign-in off (AARCV_AUTH=off) so every visitor is an administrator. For the API examples below, run the app with sign-in on.
From source#
python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
aarcv synth # render synthetic sorties: video + telemetry + truth
aarcv batch --jobs 3 # run the pipeline on all of them
aarcv demo # load the results into the web app's data directory
aarcv serve # http://localhost:8000, users admin / instructor / pilot, password demo
2. Upload a sortie#
export AARCV_URL=http://localhost:8000 AARCV_USER=instructor AARCV_PASS=demo
curl -su "$AARCV_USER:$AARCV_PASS" \
-F video=@data/synthetic/nominal/raw.mp4 \
-F telemetry=@data/synthetic/nominal/telemetry.csv \
-F pilot_id=PILOT-01 -F declared_receiver=fighter_a -F data_source=synthetic \
"$AARCV_URL/api/sorties"
# {"id":"S-1A2B3C4D"}
Only video is required. Uploads need the instructor role or higher. An upload that would produce a product above the host network's ceiling is refused with HTTP 409 and an explanation.
3. Wait for it#
SID=S-1A2B3C4D
until curl -su "$AARCV_USER:$AARCV_PASS" "$AARCV_URL/api/sorties/$SID" | jq -e '.sortie.status | test("complete|rejected|failed")' >/dev/null; do sleep 15; done
4. Read the result#
curl -su "$AARCV_USER:$AARCV_PASS" "$AARCV_URL/api/sorties/$SID" \
| jq '{grade: .assessment.summary.grade, overall: .assessment.summary.overall_score,
categories: (.assessment.categories | map_values(.score)),
events: [.assessment.events[] | {t, type, severity}]}'
The response also says which products you may open and why (access), and lists instructor reviews. The full shape is in the assessment schema.
5. Download a product#
curl -su "$AARCV_USER:$AARCV_PASS" -o debrief.mp4 "$AARCV_URL/sorties/$SID/files/debrief.mp4"
Product downloads pass the release rules. A 403 names the rule that failed; see who can open what.
Next#
- Record an instructor review:
POST /api/sorties/{sid}/review(reference) - Export a signed package and verify it
- Feed real recordings through ingest
Was this page helpful?