跳转到主内容
SERVICEAPI 服务 · 正常UPDATED2026-10-19OPENAPI · DOCS

API v1 · RESTful

把牛脸识别接进你的系统

阅读文档 → 开通账号 → 首调 register → 联调 recognize。输入牛只正脸照片(手机或固定机位拍摄),输出唯一牛 ID、相似度与阈值判定、活体检测结论。

输出物:唯一牛 ID、相似度与阈值判定、活体检测结论

curl · 04 步

30 秒跑通

  1. 01

    自助注册控制台

    在开放平台控制台(user.niujinjin.com)用手机号 + 密码自助注册,无需等待商务开通。

  2. 02

    创建 API Key

    在控制台创建 API Key(明文只显示一次),以 X-API-Key 或 Authorization: Bearer nj_... 携带;一枚 Key 一个余额,牛脸与估重 API 通用。

  3. 03

    首调 register

    POST https://api.face.niujinjin.com/api/v1/recognition/register,写入牛只档案并拿到唯一牛 ID。

  4. 04

    联调 recognize

    用测试集跑一遍识别与活体,核对相似度分布后再切生产账号。

curl · 30 秒注册 + 识别
# 注册牛只身份(multipart,写入牛只档案)
curl -X POST https://api.face.niujinjin.com/api/v1/recognition/register \
  -H "X-API-Key: nj_api_points_<32hex>" \
  -F "file=@cow_facing.jpg" \
  -F "cowId=CN-2026-0001" \
  -F "farmId=farm_wh_001"

# 识别 / 认证(JSON,photoUrl)
curl -X POST https://api.face.niujinjin.com/api/v1/recognition/recognize \
  -H "X-API-Key: nj_api_points_<32hex>" \
  -H "Content-Type: application/json" \
  -d '{ "photoUrl": "https://api.face.niujinjin.com/uploads/xxx/cow_facing.jpg" }'

# => { "code": 0, "isMatch": true, "cowId": "CN-2026-0001", "similarity": 0.83 }

返回体为 JSON · 相似度按阈值判定 · 阈值可按业务调整

01/API KEY

鉴权与接入

Base URL · https://api.face.niujinjin.com

方式
API Key(X-API-Key 头,或 Authorization: Bearer nj_...);如需 JWT 内部账号请联系商务
获取
在开放平台控制台(user.niujinjin.com)用手机号自助注册并创建 API Key,无需等待开通
文档
/docs 与 /openapi.json 匿名可读
编码
UTF-8 · JSON(注册接口为 multipart)
02/REST · JSON

端点参考

请求与响应示例均可复制,字段口径以 /openapi.json 为准

POST/api/v1/recognition/register

注册牛只身份:写入牛只档案并生成唯一牛 ID

REQUEST

request
curl -X POST https://api.face.niujinjin.com/api/v1/recognition/register \
  -H "X-API-Key: nj_api_points_<32hex>" \
  -F "file=@cow_facing.jpg" \
  -F "cowId=CN-2026-0001" \
  -F "farmId=farm_wh_001"

RESPONSE

response
{
  "code": 0,
  "cowId": "CN-2026-0001",
  "message": "registered"
}
POST/api/v1/recognition/recognize

识别 / 认证:返回匹配的牛只 ID 与相似度(含活体)

REQUEST

request
curl -X POST https://api.face.niujinjin.com/api/v1/recognition/recognize \
  -H "X-API-Key: nj_api_points_<32hex>" \
  -H "Content-Type: application/json" \
  -d '{ "photoUrl": "https://api.face.niujinjin.com/uploads/xxx/cow_facing.jpg" }'

RESPONSE

response
{
  "code": 0,
  "isMatch": true,
  "cowId": "CN-2026-0001",
  "similarity": 0.83,
  "liveness": "pass"
}
GET/api/v1/cow/:id

查询牛只档案:唯一 ID 关联的注册记录。注意:该端点不在 API Key 计费白名单内(用 API Key 调它会返回 403 / 3004),需专用账号,请联系商务开通

REQUEST

request
curl https://api.face.niujinjin.com/api/v1/cow/CN-2026-0001 \
  -H "Authorization: Bearer <INTERNAL_JWT_TOKEN>"

RESPONSE

response
{
  "code": 0,
  "cowId": "CN-2026-0001",
  "farmId": "farm_wh_001",
  "registeredAt": "2026-09-12T08:21:00+08:00"
}
03/HTTP 状态 + 业务码

错误码

按 code 分支处理,2003 需按业务策略转人工

Code含义处理建议
0成功按响应体业务字段处理
1001鉴权失败 / 令牌过期重新获取访问令牌
1002参数缺失或格式错误核对请求体字段与类型
2001未检测到牛脸区域更换正面、光线充足的照片重试
2002活体检测未通过确认为活体拍摄而非照片翻拍
2003相似度低于阈值,未命中按业务策略转人工复核或补充注册
5000服务内部错误重试一次后仍未恢复请联系支持
04/REST / JSON

接入方式

其余语言可直接使用 RESTful API

示例代码

P · Python 调用示例

仓库内提供仅依赖标准库的示例客户端(docs/api/sdk/python/nj_client.py)与 curl 示例,可直接抄用。刻意不发包,避免引入额外依赖与版本漂移。

REST / JSON

R · 其余语言直接用 REST

接口为标准 RESTful + JSON,任何语言都可直接调用;请以下载的 OpenAPI 契约为准生成客户端。

EVALUATION · 评测与方法

不报数字,讲清楚怎么测的

评测方法与已知局限公开可查。标定使用真实农场采集的影像与同期实测称重记录,按统一流程完成验证与迭代。

01 · DATASET

数据集与切分

数据来自真实牧场采集的牛只影像,覆盖多品种、多角度与不同光照条件;评估数据按牛只维度独立切分,避免同一头牛同时出现在两侧。

02 · METRICS

指标定义

相似度
注册档案与待识别个体的距离度量,取值越高越接近同一头牛;判定发生在阈值之上。
误接受 / 误拒绝
误接受=把 A 牛判成 B 牛;误拒绝=同一头牛未判中。两者随阈值反向变化,需按业务风险取舍。
活体判定
活体检测结论(pass / fail),用于拦截照片翻拍与面具类攻击。
变更评测
每次模型或阈值变更后在同一份测试集上重跑,输出误接受 / 误拒绝曲线再决定是否上生产。

03 · THRESHOLD

阈值权衡

识别结果按相似度阈值判定:阈值调高减少误接受、调低减少误拒绝,可按业务风险偏好调整。

  • 识别结果按相似度阈值判定:阈值调高减少误接受、调低减少误拒绝。
  • 金融押品、保险理赔等强审计场景建议取较高阈值并保留人工复核。
  • 交易核验、出入库盘点等场景可在压降误拒绝的前提下放宽阈值。
  • 阈值调整需在测试集上重新核对误接受 / 误拒绝曲线后再上生产。

04 · LIMITATIONS

已知局限

  • 同品种、同色系个体之间的区分难度高于跨品种个体;阈值需在误接受与误拒绝之间按业务取舍。
  • 极端光照、严重遮挡、镜头污损与运动模糊会显著影响输出质量。
  • 输出为模型估算结果,不作为法定计量依据;涉及结算与理赔的场景建议与人工复核结合。
  • 识别能力随版本迭代,跨版本比较需在同一测试集上重新评测。
05/接入常见问题

开发者 FAQ

接入过程中的常见问题

FAQ

如何获得接入凭据?

在开放平台控制台(user.niujinjin.com)用手机号自助注册并创建 API Key 即可调用计费端点(X-API-Key,或 Authorization: Bearer nj_...),无需等待开通;如需 JWT 内部账号请联系商务。

文档站可以直接打开吗?

可以。统一文档(www.niujinjin.com/api)与字段级接口页(api.face.niujinjin.com/docs)及 /openapi.json 都无需凭据即可查看;调用计费端点需要控制台自助创建的 API Key(X-API-Key)。

支持哪些语言 SDK?

目前不提供已发布的 SDK 包,仅提供 Python 示例客户端与 curl 示例;接口为标准 RESTful + JSON,任何语言可直接调用,也可用我们提供的 OpenAPI 契约生成客户端。

识别与注册是同步还是异步?

register 与 recognize 均为同步 HTTP 接口,当前不提供 Webhook 异步事件推送;高吞吐场景请自行并发调用,或联系我们评估批量方案。响应时间受图片大小与并发量影响,建议在测试集上实测。

阈值该怎么设?

识别结果按相似度阈值判定:阈值调高减少误接受、调低减少误拒绝。金融押品与保险理赔建议取较高阈值并保留人工复核,出入库盘点可在压降误拒绝的前提下放宽。

接入遇到问题?

在线文档可直接查看;如需联调账号,请在报价单里说明集成场景,我们协助你完成接入。评测方法与已知局限公开可查,标定使用真实农场采集的影像与同期实测称重记录,按统一流程完成验证与迭代。