/install make-and-model-recognition
TrafficEye Largest Road User Reader
Use this skill when the user wants the largest detected vehicle from an image, along with its make and model classification and every detected license plate belonging to that same road user.
What This Skill Does
- Accepts a local image path.
- Uploads the image to the TrafficEye recognition API.
- Sends a recognition request that asks for detection, OCR, and MMR with box preference by default.
- Parses the API response, including responses wrapped as
{ "status": ..., "data": ... }. - Picks the largest detected road user by
box.positionarea. - Returns a wrapper object containing
roadUser,box,plates,area, andsource, preserving the full selected road-user payload.
Expected Input
- A local image file path.
- If the user supplied an attachment instead of a path, first resolve it to a local file path and then run the helper.
Default Runtime Assumptions
- The API endpoint defaults to
https://trafficeye.ai/recognition. - The default request payload is
{"tasks":["DETECTION","OCR","MMR"],"requestedDetectionTypes":["BOX","PLATE"],"mmrPreference":"BOX"}. - The default API-key transport matches the TrafficEye public API example: header mode with header name
apikey. - Auth and request fields remain configurable in case your deployment differs.
Environment Variables
TRAFFICEYE_API_KEY: required unless passed explicitly to the helper.TRAFFICEYE_API_URL: optional, defaults tohttps://trafficeye.ai/recognition.TRAFFICEYE_API_KEY_MODE: one ofheader,bearer,form,query. Default:header.TRAFFICEYE_API_KEY_NAME: key name forheader,form, orquerymode. Default:apikey.TRAFFICEYE_FILE_FIELD: multipart field for the image. Default:file.TRAFFICEYE_REQUEST_FIELD: multipart field for the JSON request. Default:request.TRAFFICEYE_REQUEST_JSON: JSON string to include as the request field. By default this is{"tasks":["DETECTION","OCR","MMR"],"requestedDetectionTypes":["BOX","PLATE"],"mmrPreference":"BOX"}.TRAFFICEYE_TIMEOUT_S: optional timeout in seconds. Default:30.
Only TRAFFICEYE_API_KEY is required for the default live API flow. The other variables are optional overrides.
How To Run
Setup your API key:
export TRAFFICEYE_API_KEY='YOUR_REAL_KEY'
Use the road-user helper:
python3 recognize_road_user.py /absolute/path/to/image.jpg
For structured output:
python3 recognize_road_user.py /absolute/path/to/image.jpg --format json
If the deployment expects Bearer auth:
TRAFFICEYE_API_KEY_MODE=bearer python3 recognize_road_user.py /absolute/path/to/image.jpg
If the deployment needs an explicit request payload:
TRAFFICEYE_REQUEST_JSON='{"tasks":["DETECTION","OCR","MMR"],"requestedDetectionTypes":["BOX","PLATE"],"mmrPreference":"BOX"}' python3 recognize_road_user.py /absolute/path/to/image.jpg --format json
Equivalent to the documented public API example:
curl -X POST \
-H "Content-Type: multipart/form-data" \
-H "apikey: YOUR_API_KEY_HERE" \
-F "[email protected]" \
-F 'request={"tasks":["DETECTION","OCR","MMR"],"requestedDetectionTypes":["BOX","PLATE"],"mmrPreference":"BOX"}' \
https://trafficeye.ai/recognition
Agent Workflow
- Verify that the image path exists.
- Run
python3 recognize_road_user.py \x3Cimage-path> --format json. - Present the full selected road-user payload to the user, especially
box,mmr, and the completeplatesarray. - If the selected road user has no plates, explain that the largest vehicle was found but no plates were attached to that road user.
- If authentication fails, ask the user which auth mode their deployment expects and retry with the matching environment variables.
Offline Validation
You can validate the selection logic without calling the API:
python3 recognize_road_user.py --response-json-file examples/sample_response.json --format json
Output Shape
The helper prints JSON with this top-level structure:
{
"roadUser": {"box": {}, "plates": [], "mmr": {}},
"box": {},
"plates": [],
"area": 0,
"source": {
"combinationIndex": 0,
"roadUserIndex": 0,
"path": "combinations[0].roadUsers[0]"
}
}
roadUseris the original selected road-user payload from TrafficEye.boxrepeatsroadUser.boxfor convenience.platesrepeatsroadUser.platesfor convenience and may be empty.areais the computed rectangle area used for winner selection.sourceidentifies where the selected road user came from in the API response.
Notes
- The helper intentionally chooses the largest boxed vehicle by geometric area, not by detection confidence.
- The response parser first checks
data.combinations[].roadUsers[], thencombinations[].roadUsers[], thenroadUsers[], and finally nested road-user payloads discovered recursively. - The default request and auth header mirror the public example at
https://www.trafficeye.ai/api. - The selected result now includes the original road-user payload from the API so
mmr,box, allplates, and their scores are preserved.
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install make-and-model-recognition - 安装完成后,直接呼叫该 Skill 的名称或使用
/make-and-model-recognition触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Make and Model Recognition 是什么?
Detect the largest vehicle from an image using TrafficEye car-box detection, run make and model recognition for that vehicle, and return all license plates a... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 157 次。
如何安装 Make and Model Recognition?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install make-and-model-recognition」即可一键安装,无需额外配置。
Make and Model Recognition 是免费的吗?
是的,Make and Model Recognition 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。
Make and Model Recognition 支持哪些平台?
Make and Model Recognition 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(linux, macos, windows)。
谁开发了 Make and Model Recognition?
由 eyedea-ai(@eyedea-ai)开发并维护,当前版本 v1.0.1。