Overview
Services
This server
Models in use
Recent actions
Test a photo
Paste a photo link, or drop, choose or paste (Ctrl+V) an image. The running API analyses it exactly as it would for SQL, and the result is written to SQL Server the way the worker writes it.
JSON result
Training
How new labels get into the model the API uses: label, check the data, train, compare, put into service. Each step below shows where you are.
1Your labelled photos
2What the next training learns from
3Start a training
Training settings
More rounds learn more but take longer. Your own photos are used several times in each round, so a few hundred of them are not drowned by the thousands of public photos. Used by the next training.
4Follow the training
Score per round
Score (mAP50-95, checking photos)Score at 50% overlap (mAP50)Training loss (right scale)Training output
Loading...
5Compare and put into service
Models
Which model the API uses, the earlier versions kept, and the training runs. Every change is checked, and can be undone.
In use now
Trained models
Runs trained on this server. Put one into service with a new version name: the model in use is backed up first, the API restarts and is checked, and if it does not answer with the new model the previous one goes back automatically.
Upload a model
A model file made by this program's training on another server (for example: trained on ubuntuaiserv001, used here). It is checked before it can be used. Up to 2 GB.
Earlier versions
Each time a model is replaced, the one it replaced is kept here with its version name, so it can be put back exactly as it was. Mark a version Keep to protect it from the automatic clean-up.
Detection settings
How the API turns the model's output into the boxes stored in SQL. Saving restarts the API (about a minute).
Changes
Datasets
Everything the training learns from: add datasets, choose which ones are used, and how their labels count.
Add a dataset, then use it
- Add it: paste its Roboflow link, or upload a labelled zip (below).
- Check its labels ("Labels" in the list): every label should count as one of your categories, or be left out.
- "Update everything" downloads it and builds the combined training set; its report at the bottom shows the boxes per category.
- Training, step 3: "Start update". Then compare and put the new model into service (step 5).
Add a dataset from Roboflow
Paste the link of a public dataset on Roboflow Universe (or one in your own workspace), for example https://universe.roboflow.com/zac-ogogt/utility-poles-kcumt/dataset/5. It needs the Roboflow key (below). Never upload Davey photos to a public Roboflow workspace.
Upload a labelled zip
An export with data.yaml from CVAT ("Ultralytics YOLO Detection 1.0", with images) or Roboflow ("YOLOv8" / "YOLO11"). It is added as its own dataset. Photos without labels go to Label photos instead.
Combined training set
Roboflow key
Results in SQL
The newest rows in poleai.ImageAnalysis.
Stored JSON
Users
Who can sign in to this page, and which role each person has. What each role may do: Roles.
Add a person
A temporary password is made for the new person. They must choose their own the first time they sign in. You can give only roles that have no more permissions than your own. The roles and their permissions are on the Roles page.
People
Activity
Sign-ins, account changes and actions, newest first.
Roles and permissions
What each role may do. Every account has one role; a change applies at once to everyone with that role.
Roles
Administrator always has every permission, also those of sections added later. Operator and Viewer can be changed, or reset to their defaults.
Loading...
Compare roles
My account
What my role allows
Change my password
Label photos
Upload your own photos and draw a box around each piece of equipment. The next training uses them.
Photos are stored on this server only, upright and without their GPS and camera details. The same photo is never stored twice.
Category
For new labels, and for the selected one.
Labels on this photo
Keys
V B P S tools, 1-9 category, Del remove label, ] [ forward / backward (with Shift: to front / to back), Ctrl+C / V copy and paste labels, R repeat previous photo, Ctrl+Z undo, Enter close polygon or save and next, Esc cancel, ← → photos, + - zoom. Polygon corners: drag to move, double-click an edge to add one, Shift+click a corner to remove it.
Suggest labels with
The photo is sent from this server to Google for each request; the key goes with it and is forgotten. Reloading the page forgets the key.
Categories
Many photos at once
Results wait as dashed suggestions on each photo until someone checks and saves it.
Photos
Categories
The kinds of equipment the AI looks for, and the other names they have in datasets and folders.
Teach the AI a new kind of equipment
- Add the category below (for example: riser).
- On Label photos, upload photos that show it and draw a box around each one. Aim for 150 boxes or more, from different poles and angles.
- On Training, click "Train final model". The new model learns the new category.
- On Models, put the new model into service. From then on every result can include it.
Settings
Page title and logo, the SQL Server connection of the worker, and which photo links are accepted.
Title and logo
SQL Server
Where the worker reads photo links and writes results. The worker, this page and the installer all use these settings. The password is stored encrypted (only root can decrypt it, at service start) and is never shown.
The photo query the worker runs (worker/worker.yaml)
Photo links
Which photo links the API downloads - from the worker, the nightly job, other programs and the Test page. Uploaded and pasted photos are not affected. Saving restarts the API (about a minute).
Check a link
Checks with the saved settings (save first after a change). Nothing is downloaded.
Logs
The last 100 lines of each service.
Loading...