前面基于vllm框架部署了qwen3.5-9b大模型服务,本期介绍基于Fastapi的目标检测、身份识别、行为识别服务部署。

一、模型

这三个服务分别基于奶牛yolox模型、reid模型、c3d模型,具体原理可以分别查询目标检测、重识别(人脸识别/度量学习)、行为识别领域的相关资料。

二、基于Fastapi的模型封装

2.1.目标检测服务构建

目标检测服务实现的功能为:将用户上传的图像送入模型,返回检测结果数据(类别、坐标、置信度),创建了3个接口:

  • “/api/detection/health”接口使用“GET” HTTP请求,用于检查服务状态
  • '/api/detection/images/upload'接口使用“POST” HTTP请求,用于处理前端传来的用户图像文件(由于安全限制,浏览器无法直接写服务器磁盘)
  • '/api/detection/images/detect'接口使用“POST” HTTP请求,将调用yolox模型对上传的图像进行检测,返回类别、坐标、置信度

相关伪代码如下:

from pathlib import Path
from typing import Dict, Any
from contextlib import asynccontextmanager
from fastapi import FastAPI, UploadFile, File
from fastapi.middleware.cors import CORSMiddleware
import uvicorn

#检测功能实现
class DetectorService:
def __init__(self, config_path: Path, checkpoint_path: Path, device: str) -> None:

#创建检测实例
app = FastAPI(title='YOLOX Detection API', version='1.0.0', lifespan=lifespan)

#中间件
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

#健康查询接口
@app.get('/api/detection/health')

#图像上传接口
@app.post('/api/detection/images/upload')

#检测功能接口
@app.post('/api/detection/images/detect')

#服务启动
uvicorn.run(app, host=args.host, port=args.port, reload=True)

2.2.身份识别服务构建

身份识别服务实现的功能为:将用户上传的图像送入模型,返回检测结果数据(身份、置信度),也是创建了3个接口:

  • “/api/identifeication/health”接口使用“GET” HTTP请求,用于检查服务状态
  • '/api/identifeication/images/upload'接口使用“POST” HTTP请求,用于处理前端传来的用户图像文件
  • '/api/identifeication/images/detect'接口使用“POST” HTTP请求,将调用reid模型对上传的图像进行特征提取并于query向量数据库进行对比,返回身份结果、置信度

和目标检测不同,身份识别使用的reid模型进行识别需要对比输入图像和图库数据相似度,以此来判别输入奶牛身份,因此模型的识别需要准备gallery向量库。

具体做法为使用训练好的reid模型对图库图像进行特征提取,保存为npz文件,服务启动时先加载gallery向量库。

当有用户上传请求发送时,先使用模型对上传图像进行特征提取,再与gallery特征进行相似度计算,选择相似度最高匹配身份作为待识别奶牛的身份。

2.3.行为识别服务构建

行为识别服务实现的功能为:将用户上传的视频送入模型,返回检测结果数据(行为类别、置信度),也是创建了3个接口:

  • “/api/action/health”接口使用“GET” HTTP请求,用于检查服务状态
  • '/api/action/video/upload'接口使用“POST” HTTP请求,用于处理前端传来的用户视频文件
  • '/api/action/video/detect'接口使用“POST” HTTP请求,将调用行为识别模型对上传的视频进行特征提取,通过softmax函数身份结果。
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐