核心内容摘要
时光缝隙里的“差差差差不多”:平凡日常的不凡韵味
DamoFD-
5G部署教程适配vLLM架构扩展为多模态人脸理解基础模块
环境准备与快速部署DamoFD-
5G是一个轻量级的人脸检测与关键点定位模型特别适合需要快速部署的场景。
在开始之前我们先确认一下基础环境要求操作系统Linux (推荐Ubuntu
18.
GPUNVIDIA显卡(显存≥4GB)CUDA版本
1
3Python版本
7如果你使用的是CSDN星图镜像环境已经预配置好可以直接跳过安装步骤。
如果是自行部署可以使用以下命令快速搭建环境conda create -n damofd python
7 -y conda activate damofd pip install torch
1.
1
0cu113 torchvision
0.
1
0cu113 -f https://download.pytorch.org/whl/torch_stable.html pip install modelscope
1.
1 opencv-python
模型下载与初始化模型可以通过ModelScope轻松获取。
在终端中执行以下Python代码即可完成下载from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks face_detection pipeline(Tasks.face_detection, damo/cv_ddsar_face-detection_iclr23-damofd)或者直接从命令行下载git clone https://www.modelscope.cn/damo/cv_ddsar_face-detection_iclr23-damofd.git
基础使用教程
1 Python脚本推理方式创建一个名为DamoFD.py的文件内容如下import cv2 from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks # 初始化模型 face_detection pipeline(Tasks.face_detection, damo/cv_ddsar_face-detection_iclr23-damofd) # 设置图片路径 img_path test.jpg # 替换为你的图片路径 # 执行推理 result face_detection(img_path) # 可视化结果 img cv
imread(img_path) for face in result[boxes]: x1, y1, x2, y2 map(int, face[:4]) cv
rectangle(img, (x1, y
, (x2, y
, (0, 255,
,
# 绘制关键点 for landmark in face[5:15]: x, y map(int, landmark) cv
circle(img, (x, y), 2, (0, 0,
, -
cv
imwrite(result.jpg, img) print(结果已保存为result.jpg)运行脚本python DamoFD.py
2 Jupyter Notebook交互方式如果你更喜欢交互式开发可以使用Jupyter Notebook首先安装Jupyterpip install jupyterlab启动Notebookjupyter lab --ip
0.
0.
0 --port8888 --allow-root在Notebook中运行以下代码from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks import cv2 from IPython.display import Image, display # 初始化模型 face_detection pipeline(Tasks.face_detection, damo/cv_ddsar_face-detection_iclr23-damofd) # 设置图片路径 img_path test.jpg # 替换为你的图片路径 # 执行推理并显示结果 result face_detection(img_path) img cv
imread(img_path) for face in result[boxes]: x1, y1, x2, y2 map(int, face[:4]) cv
rectangle(img, (x1, y
, (x2, y
, (0, 255,
,
# 绘制关键点 for landmark in face[5:15]: x, y map(int, landmark) cv
circle(img, (x, y), 2, (0, 0,
, -
cv
imwrite(result.jpg, img) display(Image(filenameresult.jpg))
适配vLLM架构扩展DamoFD-
5G可以轻松集成到vLLM架构中作为多模态理解的基础模块。
以下是集成示例from vllm import LLM, SamplingParams from modelscope.pipelines import pipeline from modelscope.utils.constant import Tasks class MultiModalPipeline: def __init__(self): # 初始化语言模型 self.llm LLM(modelfacebook/opt-
3b) # 初始化人脸检测模型 self.face_detector pipeline(Tasks.face_detection, damo/cv_ddsar_face-detection_iclr23-damofd) def analyze_image(self, img_path): # 人脸检测 faces self.face_detector(img_path) # 生成描述 prompt f这张图片中有{len(faces[boxes])}张人脸。
sampling_params SamplingParams(temperature
8, top_p
0.
outputs self.llm.generate(prompt, sampling_params) return outputs[0].text, faces
5.
常见问题解决
1 模型加载失败如果遇到模型加载问题尝试清除缓存rm -rf ~/.cache/modelscope/hub
2 显存不足对于小显存设备可以降低输入分辨率face_detection pipeline(Tasks.face_detection, damo/cv_ddsar_face-detection_iclr23-damofd, model_revisionv
1.
0, devicecuda, input_size(320,
) # 降低分辨率
3 检测效果调优调整检测阈值可以提高召回率result face_detection(img_path, score_threshold
0.
# 默认
0.
56.