新闻详情

新闻详情

首页 / 资讯中心 / 详情

Python深度学习人脸识别实验室签到系统:训练、阈值与部署

发布时间:2026/9/28 12:19:05来源:尧图网络
Python深度学习人脸识别实验室签到系统:训练、阈值与部署
简介基于深度学习的实验室自动签到与监控系统是一套面向课程设计与毕业设计的完整项目源码包适合计算机相关专业的学生、教师及企业工程师借鉴使用能有效解决实验室签到登记繁琐、人员监控不及时等实际问题。整个资源包含379个文件以318个Python脚本为技术核心覆盖图像识别、模型训练、签到界面、监控告警等功能模块另有交互式笔记、模型权重、界面设计、配置文件、部署说明及虚拟环境配套文件压缩包整体仅3.8MB轻量却完整。项目已通过指导老师认可答辩评审分达95分代码经运行测试成功部署文档齐全使用者可快速完成环境搭建、复现实验场景并在此基础上二次开发。上线以来已有110人浏览学习适合作为人工智能、通信工程、自动化等专业的毕设课设参考也方便初学者进阶学习。1. 实验室考勤这件事为什么值得用深度学习重做一遍实验室的考勤常年处在「不做不行做了也没人看」的状态。研究生签到靠纸质本子代签就是一笔的事管理员每周要花半小时核对出入记录最后统计出来也只是几张没人细看的表。这套「基于 Python 深度学习的实验室自动签到与监控系统」要解决的就是这类场景摄像头实时盯住实验室门口和工位方向用深度学习人脸识别在几百毫秒内判断来人是谁自动写库、自动生成考勤顺带把无人时段的异常活动记录下来。真正动手做过的人会告诉你这套系统里最容易翻车的不是深度学习模型而是「签到时机」和「防重复」这两条业务规则。模型选型决定识别上限业务规则决定用户愿不愿意用。本文按「架构选型 → 数据准备 → 训练调参 → 部署避坑 → 验证进阶」的顺序拆解这个项目方向从零到落地的完整路径。新手能照着做熟手可以跳过环境搭建直接看阈值标定和部署那几节。2. 架构选型两级识别链路与签到判定逻辑2.1 为什么用「人脸检测 人脸识别」两级而不是一个端到端模型监控画面里的人脸位置不定、尺度不定、光线不定直接拿整帧图去训练分类器模型会把背景、衣服颜色一起编码进特征换件外套就识别失败。所以人脸识别必须分两步走先把人脸从画面里「抠」出来再判断「这个人是谁」。前者叫检测后者叫识别。有人会问那我直接训练一个 CNN 分类器把实验室每个人的名字做成类别不就是端到端了吗在静态照片上可以在动态签到场景里有三个致命问题。第一是开集问题实验室随时可能来新成员每来一个人就要重新训练一次全量模型第二是陌生人会被强制分到某个已有类别而签到这个场景恰恰需要「不认识就拒绝签到」第三是数据成本分类器每人至少几十张现场照片还要覆盖姿态变化。所以常见做法是「检测 特征提取」两级管线。检测模型我一般用两个方向方案优点缺点适用场景YOLOv8n-Face目标检测框架成熟部署生态好多一个 NMS 环节稍微费 CPU顺手还要做人体/运动目标检测的监控系统RetinaFace-MobileNet带关键点输出对齐一步到位库相对小众版本兼容要花时间人脸是唯一检测对象的签到系统识别环节同理用 MobileFaceNet 或 InceptionResnetV1 这类特征提取网络把对齐后的人脸编码成 128 或 512 维向量。推理时拿摄像头抓到的向量和库里预先建好的特征向量比余弦相似度相似度超过阈值才算匹配成功。这也是 FaceNet、ArcFace 系模型的标准用法——模型不直接输出「你是谁」而是输出「你长什么样」的数学描述。2.2 签到判定的时序参数决定系统是否好用的三个细节模型解决「是不是同一个人」业务逻辑解决「这一次要不要记考勤」。很多毕设项目把这两件事混在一起结果就是有人从摄像头前路过系统给记了一次签到有人坐在工位上被识别到了一天被写进库里八遍。要避免这种情况签到判定至少要有三个时序参数参数默认值作用签到时间窗口07:50 - 09:00窗口外不做签到写入只做监控抓拍连续确认帧数3 帧同一人连续 N 帧命中才认为「真的来了」每日去重维度person_id date同一天同一人只写一条签到记录完整流程是摄像头按固定间隔抓帧 → 人脸检测置信度超过 0.9 才进入下一步 → 特征提取 → 与库中所有向量比对 → 最高相似度超过阈值且对应的人当天未签到 → 写入考勤表。第三步到第五步之间用连续帧确认机制卡一下能过滤掉九成以上的路过误签。核心判定我在项目里写成下面这样def check_sign_in(identity, now, sign_db, config): # identity: 当前帧识别出的人名/学号 # sign_db: SQLite 连接对象 # 第一步时间窗口过滤窗口外直接视为监控事件 if not (config[start] now.time() config[end]): return not_in_window # 第二步当日去重签过就直接返回 cursor sign_db.execute( SELECT 1 FROM sign_log WHERE person_id? AND sign_date?, (identity, now.date()) ) if cursor.fetchone(): return already_signed return ok_to_sign这段代码的逻辑很直白时间不对不签今天签过不签。唯一要强调的是时间窗口别写死在代码里放到配置文件里因为实验室的签到规则大概率会调整——期中之后导师可能把窗口从 09:00 放宽到 09:30改配置总比改代码安全。3. 数据准备采集、清洗并扩充一个人脸库3.1 批量裁剪人脸把监控画面变成带标签的训练图片不管走「直接预训练提特征」还是「微调一遍模型」都需要先有一批按人名分目录的人脸图片。手动截图不现实更靠谱的做法是录一段每人 10 到 20 秒的视频让人物在镜头前自然转头、走动然后用检测模型把视频帧里的人脸批量裁剪出来。import cv2 from retinaface import RetinaFace video_path raw_videos/zhangsan.mp4 # 建议录制 10~20 秒日常动作 name zhangsan cap cv2.VideoCapture(video_path) count 0 frame_skip 5 # 每 5 帧取 1 帧避免取到几乎一样的连续帧 while True: ret, frame cap.read() if not ret: break if count % frame_skip ! 0: count 1 continue # threshold0.9低于这个置信度的模糊、遮挡帧直接丢弃 faces RetinaFace.extract_faces(frame, alignTrue, threshold0.9) for i, face in enumerate(faces): # extract_faces 返回的是 0~1 的浮点数组尺寸已被统一为 160x160 face_bgr (face * 255).astype(uint8) out_path ftrain_src/{name}/f{count}_{i}.jpg cv2.imwrite(out_path, face_bgr) count 1 cap.release()几个参数要说明。alignTrue会让检测出的人脸先做关键点对齐把眼睛拉到同一水平线这步对后续识别准确率的影响比很多人想象的大得多。threshold0.9是过滤门槛低于这个置信度的基本是侧脸、遮挡或剧烈运动模糊留进来只会污染特征库。frame_skip5控制采样密度普通视频 30fps每秒取 6 帧足够了密集帧的相似度太高对训练没有增量价值。每人建议保留 20 到 30 张有效人脸图。太少了特征不稳定太多了大部分是重复角度。录制时让人物在自然光下做三个动作正对镜头、左右转脸 30 度、低头看手机再抬头这基本覆盖了实验室门口摄像头能拍到的姿态范围。3.2 清洗与扩充数据质量比数量更能决定识别上限裁剪完的图片不能直接用。摄像头抓帧会产生两类垃圾运动模糊帧和重复帧。模糊帧会让特征提取网络学到「糊」而不是「脸」重复帧会把某个人脸的强势特征反复强化。我一般用一个几十行的脚本先过一遍import cv2 import numpy as np import os src_dir train_src/zhangsan def is_sharp(img, thresh80.0): # 拉普拉斯方差越小说明图像越模糊 gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) lap cv2.Laplacian(gray, cv2.CV_64F).var() return lap thresh def is_duplicate(img1, img2, thresh0.95): # 直方图相关性超过 0.95 视为重复帧 hist1 cv2.calcHist([img1], [0], None, [64], [0, 256]) hist2 cv2.calcHist([img2], [0], None, [64], [0, 256]) return cv2.compareHist(hist1, hist2, cv2.HISTCMP_CORREL) thresh files sorted(os.listdir(src_dir)) last_valid None for f in files: path os.path.join(src_dir, f) img cv2.imread(path) if img is None: continue if not is_sharp(img): os.remove(path) # 模糊的直接删 continue if last_valid is not None and is_duplicate(img, last_valid): os.remove(path) # 和上一张太像的删掉 continue last_valid imgthresh80这个值不是固定的它跟图片分辨率强相关。640x480 的图 80 够用1080P 的图拉普拉斯方差普遍更大要提到 100 以上。判断标准是清洗后人工抽查一遍如果还能看到明显糊掉的脸就继续往上调如果开始误删正常清晰图就往下放。清洗完可以做扩充但别做猛了。人脸识别微调场景下水平翻转和 ±5 度旋转是安全的亮度 ±10% 也可以加但随机裁剪、遮挡模拟这类强增强要慎用——数据量本来就小强增强会让模型学到「不完整的脸也能识别」在真实签到场景里这等于主动降低门槛。扩充的目的是让你的 20 张变成 60 张来撑住训练而不是把模型能力练得更强这个分寸要把握好。4. 训练与阈值调参把识别模型变成可用的签到服务4.1 先跑通加载预训练模型把照片编码成特征向量很多做这个项目的同学一上来就想自己训练一个识别模型这个顺序是反的。正确顺序是先拿预训练模型把整条链路跑通签到功能能看到效果了再回头想微调的事。预训练模型在人脸识别领域很成熟拿过来直接提取特征做比对准确率已经能支撑实验室签到这种闭集场景。import numpy as np from facenet_pytorch import MTCNN, InceptionResnetV1 from PIL import Image # pretrainedvggface2 表示加载在 VGGFace2 上预训练好的权重 model InceptionResnetV1(pretrainedvggface2, classifyFalse).eval() detector MTCNN(keep_allFalse) def encode_face(img_path): img Image.open(img_path) face detector(img) # 自动检测、对齐返回 160x160 张量 if face is None: return None emb model(face.unsqueeze(0)) # shape: [1, 512] return emb.detach().numpy().flatten() vec encode_face(train_src/zhangsan/f0_0.jpg) print(vec.shape) # (512,)classifyFalse是关键参数它让模型输出特征向量而不是分类概率。detector用的是 MTCNN这跟第 3 章用 RetinaFace 不是矛盾关系——采集阶段用什么检测都可以推理阶段选一个稳定的就行。特征向量是 512 维比 128 维的 MobileFaceNet 更重但实验室场景一台普通 PC 跑起来毫无压力。拿到特征向量后把每个人员的所有图片特征取均值做一次 L2 归一化存成feats.npy和labels.json这就是签到的特征库。之后每次抓帧识别只需要把当前人脸也编码成向量和库里每个向量算一次点积余弦相似度最高分超过阈值即判定为对应人员。4.2 微调训练脚本ArcFace 损失函数与关键参数预训练模型在 VGGFace2 这种大规模数据集上见过足够多的人脸但实验室场景可能有它的特殊性——比如摄像头角度偏低、门口气氛灯光偏黄。如果你的库里已经有每类 50 张以上的现场照片微调会比直接提特征明显更稳。微调的核心是把模型的分类头换成基于余弦距离的损失函数最常见的是 ArcFace。import torch import torch.nn as nn import torch.nn.functional as F class ArcFaceHead(nn.Module): def __init__(self, feat_dim512, num_class10, s32.0, m0.5): super().__init__() self.weight nn.Parameter(torch.randn(feat_dim, num_class)) self.s s self.m m def forward(self, feat, labels): # L2 归一化后计算余弦夹角 cos F.linear(F.normalize(feat), F.normalize(self.weight, dim0)) # 在正确类别的夹角上减 margin迫使模型把类内压得更紧 one_hot F.one_hot(labels, cos.shape[1]) cos_theta cos * one_hot - self.m * one_hot # 简化版本非官方完整实现 return self.s * cos_theta三个参数要知道怎么调。s32是特征缩放因子它把余弦值从 [-1, 1] 放大到 [-32, 32]影响训练的收敛速度一般不动。m0.5是角度 margin越大类内越紧凑但训练越难收敛数据少时从 0.3 起步更稳。feat_dim必须和 backbone 的输出维度对上InceptionResnetV1 是 512MobileFaceNet 是 128。训练时我的建议是加载预训练权重冻结 backbone 的前几层只微调最后两层和 ArcFace 头。学习率 1e-4batch size 32迭代 20 到 40 个 epoch。这套参数在每类 50 张、总共十来个类的小数据集上不会过拟合得太离谱。如果你的数据只有每类 20 张左右就别微调了回到 4.1 的预训练提特征路线更靠谱——小数据微调是玄学结果往往不如冻结权重。4.3 阈值标定把相似度分布画出来再决定 0.5 还是 0.6阈值是整个系统里最容易被拍脑袋决定的参数。有人看教程写了 0.5 就抄过来结果实验室里两个人长得像天天互相误签。正确做法是先统计类内相似度和类间相似度的分布再挑两类分布交叉的位置做阈值。import numpy as np feats np.load(feats.npy) # 特征库shape [N, 512] labels np.load(labels.npy) # 对应的标签shape [N] feats feats / np.linalg.norm(feats, axis1, keepdimsTrue) pos, neg [], [] for i in range(len(feats)): for j in range(i 1, len(feats)): sim float(feats[i] feats[j]) # 余弦相似度 if labels[i] labels[j]: pos.append(sim) # 同一人的相似度 else: neg.append(sim) # 不同人的相似度 pos np.array(pos) neg np.array(neg) # 找误拒率(类内低于阈值)和误识率(类间高于阈值)的平衡点 candidates np.linspace(0.0, 1.0, 101) best min( candidates, keylambda t: max(np.mean(pos t), np.mean(neg t)) ) print(建议阈值:, round(best, 2))这个脚本输出的是一个起点值。实际部署时我一般会在建议值基础上再收紧 0.03 到 0.05因为签到场景的错误代价不对称——误拒一个人他可以再靠近摄像头重新刷一次误识一个人考勤记录里就多了一条假数据事后很难洗清。所以宁可偶尔漏签不要经常错签。5. 部署避坑与常见问题排查照着部署文档做也躲不开的五个坑5.1 摄像头打开失败、RTSP 花屏现象cv2.VideoCapture(0)在开发机上正常换成网络摄像头的 RTSP 地址后画面要么一直 Waiting要么花屏、延迟十几秒。原因OpenCV 默认用 V4L2 或 DirectShow 后端拉流对 RTSP 的 H.264 缓冲处理很差。缓冲区堆满后延迟会像滚雪球一样越来越大最终画面落后真实时间几十秒。还有就是网线供电不稳时摄像头会自动掉帧重传OpenCV 不会主动清空旧帧。解决拉流时强制指定 FFMPEG 后端并把缓冲大小压到最低rtsp_url rtsp://user:pass192.168.1.64:554/stream1 cap cv2.VideoCapture(rtsp_url, cv2.CAP_FFMPEG) # 关键显式用 FFMPEG cap.set(cv2.CAP_PROP_BUFFERSIZE, 1) # 缓冲只留 1 帧 cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280) cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)抓帧循环里还要注意如果这一帧没检测到人脸不要sleep(1)再读下一帧而要用cap.grab()连续丢帧把缓冲里的旧帧清掉。否则人已经坐回工位了系统还在处理三秒前的门口画面。5.2 Python 版本不一致部署机 import 直接报错现象开发机 Windows Python 3.10 环境下一切正常打包到实验室的 Linux 服务器后import onnxruntime或import torch直接报错错误信息指向体系结构不匹配或模块不存在。原因conda 环境没锁定。部署机装的是 Python 3.8 或 3.11而很多 wheel 包的预编译版本只覆盖特定 Python 版本requirements.txt里没锁版本pip 现场解析依赖时可能装到另一个大版本导致 API 不兼容。解决部署机上用 miniconda 新建一个干净的独立环境Python 版本和开发机完全一致。依赖清单里锁到小版本号conda create -n sign_env python3.10 -y conda activate sign_env pip install torch2.1.0user -i https://pypi.tuna.tsinghua.edu.cn/simple --extra-index-url https://mirrors.aliyun.com/pytorch-wheels/cpu/ pip install -r requirements.txt一个血泪经验在 vscode 里选了正确的解释器只是让编辑器跑通在终端里手动conda activate再跑才算真的跑通。部署文档里「环境搭建」这一节最容易被跳过又最容易出问题的就是这一步。5.3 白天晚上同一套阈值识别率忽高忽低现象上午签到一切正常傍晚开始频繁拒识晚上开灯后又把 A 误识成 B。明明模型没变参数没动为什么前后表现差这么多原因环境光照变了。人脸特征提取网络对光照是敏感的暗光下的人脸特征会和库里的正常光照特征产生偏差相似度整体下降。同样道理傍晚的暖色灯光会让肤色偏红两个本来相似度 0.4 的无关人员可能被拉到 0.55。解决分两个层面处理。算法层加一道图像质量门槛质量太差的帧直接丢弃不进入识别环节gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) lap_var cv2.Laplacian(gray, cv2.CV_64F).var() if lap_var 60: # 亮度不足/过度噪点的帧 continue然后在配置里做分时段阈值白天用 0.55傍晚到晚上用 0.50。这需要你先用 4.3 的脚本分别统计白天和晚上的相似度分布两个分布各自选阈值而不是一个阈值走天下。硬件层面给摄像头开宽动态WDR或者花几十块钱加一盏补光灯效果比调阈值更直接。5.4 重复签到与路过误签现象同一个人同一天被写进库里好几条记录或者有人从门口走廊经过系统误认为是签到。更隐蔽的一种人坐在工位上不动每抓帧一次就触发一次「签到」。原因签到逻辑只判断了「是不是这个人」没有判断「这次该不该记」。单帧识别通过就写库必然造成重复判定条件里没有人脸大小或位置的约束路过的行人脸占画面比例很小也会被识别并记录。解决三层过滤。第一层在第 2 章已经说过person_id date去重同一天只保留第一条第二层是连续帧确认同一人连续 3 帧都被识别为同一个人才真正执行写入第三层是触发面积限制人脸框宽度占画面宽度的比例低于 0.15 就认为距离太远不参与签到判定。前面两个靠逻辑第三个靠检测框尺寸实现起来就是几行代码的事。5.5 计划任务 / 服务化运行时找不到模块现象手动在终端执行python main.py一切正常配置到 crontab 或 systemd 后日志里报ModuleNotFoundError或者提示找不到模型文件、摄像头打不开。原因crontab 和 systemd 的环境和你的登录终端不一样。PATH里没有 miniconda 的 bin 目录Python 解析器用的是系统自带的旧版本相对路径的解析基准也变了模型文件和配置文件的相对路径全部失效。解决所有路径写绝对路径并在计划任务里指定 conda 环境里的绝对解释器路径# 每日 08:00 启动签到服务 0 8 * * * /home/lab/miniconda3/envs/sign_env/bin/python /home/lab/sign_system/main.py /home/lab/sign_system/logs/$(date \%Y\%m\%d).log 21我一般还会在main.py开头写一段路径自检检查配置文件、模型权重、日志目录是否存在有一个不满足就直接退出并打印缺哪个文件。这样部署时不用人盯着看日志就知道是哪里没对。6. 部署验证与进阶从「能演示」到「每周无人工值守」6.1 部署自检脚本一条命令验证全链路能演示和能稳定运行是两回事。我习惯在部署文档里额外加一个自检脚本跑一遍相当于把「摄像头 → 检测 → 提取特征 → 比对 → 写库 → 查库」全链路验证一次#!/bin/bash # 自检脚本验证深度学习模型加载、摄像头、数据库三个关键环节 set -e conda activate sign_env # 1. 验证模型加载和特征提取 python -c from facenet_pytorch import InceptionResnetV1 model InceptionResnetV1(pretrainedvggface2, classifyFalse).eval() print([OK] model loaded) # 2. 验证摄像头可读 python -c import cv2 cap cv2.VideoCapture(0, cv2.CAP_FFMPEG) assert cap.isOpened(), camera open failed print([OK] camera opened) cap.release() # 3. 验证数据库写入和查询 python -c import sqlite3 conn sqlite3.connect(sign.db) conn.execute(CREATE TABLE IF NOT EXISTS sign_log(person_id TEXT, sign_date TEXT, sign_time TEXT)) conn.execute(INSERT INTO sign_log VALUES (\__test__\, \2025-01-01\, \08:00:00\)) conn.commit() print([OK] database write/read) 自检脚本输出三个[OK]才算部署成功。任何一步失败日志里会直接指出是模型、摄像头还是数据库的问题不用再逐行猜。6.2 进阶方向多摄像头接入与考勤查询系统跑稳之后下一步往往不是换更好的模型而是扩展接入方式。多摄像头接入时把摄像头编号作为字段写进签到记录里同样一个人从哪个门进的、在哪个工位出现过都能查到。摄像头数量超过三台之后单进程串行抓帧会开始丢帧常见做法是每个摄像头一个独立进程共享同一个特征库和数据库。考勤查询用 Flask 写一个极简 Web 页面读 SQLite 展示当日签到列表、导出月度考勤 Excel比任何桌面端界面都好维护。这个系统的数据量级很小一张签到表跑一年也就几万行SQLite 完全够用不需要上 MySQL。最后说一个我自己的习惯每次调整识别阈值或更换模型权重都要重跑一遍 4.3 的相似度分布脚本把新的建议阈值和上一版对比记录到改版日志里。如果新模型的类间相似度分布明显右移了说明它把「长得像的人」区分得更开了阈值可以适当收紧。这个习惯帮我避免过很多次「模型升级之后误签率悄悄变高」的尴尬。这套从数据准备到部署验证的流程是通用的搬到你自己的签到场景里希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

开源模型端侧落地实战:量化、推理加速与Agent上下文管理 2026/9/28 23:59:38

开源模型端侧落地实战:量化、推理加速与Agent上下文管理

1. 从"追平"到"端侧落地":开源模型这波到底变了什么如果你最近半年一直在关注模型圈的动态,应该能明显感觉到一个拐点:开源模型和闭源旗舰之间的差距,正在从"代差"变成"身位差"。以前大家…

阅读更多 →
Java采购管理系统实战:从数据库设计到事务一致性 2026/9/28 23:59:25

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

阅读更多 →
AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成 2026/9/28 23:59:25

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

阅读更多 →
LSTM时间序列预测实战:从数据窗口构造到模型调参避坑 2026/9/28 23:59:18

LSTM时间序列预测实战:从数据窗口构造到模型调参避坑

简介:这份资源面向高校学生与Python初学者,提供一套可直接运行的LSTM时间序列预测完整项目,适用于期末大作业、课程设计及入门级深度学习实践。项目以空气质量等真实数据为样本,覆盖数据预处理、模型搭建、训练与预测全流程&#…

阅读更多 →
LSTM时间序列预测实战:从期末大作业到可复现Python源码 2026/9/28 23:59:12

LSTM时间序列预测实战:从期末大作业到可复现Python源码

简介:这份资源面向高校学生与Python初学者,提供一套可直接运行的LSTM时间序列预测完整项目,适用于期末大作业、课程设计或入门深度学习实践。项目以空气质量等真实序列数据为样本,覆盖数据读取、预处理、模型搭建、训练与预测全流…

阅读更多 →
LLM红队实战:从攻击面枚举到防护策略的完整方法论 2026/9/28 23:59:12

LLM红队实战:从攻击面枚举到防护策略的完整方法论

1. 从“Lysios”这个名字说起:LLM红队到底在防什么第一次看到“Lysios – LLM red teaming org”这个标题,很多人会愣一下:Lysios是什么?是一个开源工具、一个组织代号,还是一套方法论?从命名习惯来看&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉