CV +教室场景

基于yolov5与Arcface算法实现人脸检测并部署于开发板RK3588上以及拓展 为协助高校学生查找教室空座分布情况和辅助教师考勤,设计基于视频监控的教室人数统计方法。由于视频监控教室场景下的学生都是处于坐立状态,躯干部分被桌椅遮挡,无法进行全身轮廓检测,并且学生都是低头学习,也无法选择人脸识别进行计数,而选择人头这一部位作为检测目标更加适合教室场景。首先采用YOLOv5s网络作为人头检测识别的模型,在自制人头数据集上对网络进行训练,利用训练好的YOLOv5s网络提取不同视频监控下人头的特征和位置信息,实现对学生人头的识别,然后针对视频和图片分别设计人头计数方法。 阅读详情

智慧教室里的 CV 检测覆盖了“人”——举手、低头、睡觉、站立、情绪、心率、奔跑跌倒;“课堂”——抬头率、交头接耳、板书轨迹、师生互动;“座位与设备”——空/实座、投影仪开关、耗材缺失;“环境安全”——光照、温湿度、烟火、异常滞留。

一、为什么要做「教室场景检测」?

  • 传统考勤:老师点名 5 min,学生代答 1 s

  • 视频监控:24 h 录像,人工回看 0.1%

  • AI 视觉:实时检测「谁在低头」「谁在举手」,3 帧内给出坐标

一句话:把“人眼”换成“算法眼”,让教学管理自动化、数据化。


二、任务拆解

我们把“教室场景检测”细分为 3 个递进任务:

  1. 场景级分类:这是教室吗?(二分类)

  2. 目标检测:学生、老师、讲台、投影、黑板等的位置(YOLOv8)

  3. 行为识别:举手、低头、睡觉、站立(SlowFast / ST-GCN)

本文聚焦任务 2.,即“检测教室里的人和关键物体”,给出从数据到部署的完整链路,任务 1. 和 3. 会在文末给出延伸思路。


三、数据集:自制 2 万张教室图片

表格

复制

名称规模标注格式下载
Classroom-20k20 416 张YOLO(txt)Google Drive
类别7 类:student, teacher, whiteboard, projector, desk, chair, door

标注示例(YOLO):

复制

0 0.512 0.234 0.086 0.152   # 学生
1 0.213 0.311 0.043 0.098   # 老师

如果不想自己标,可用公开组合:

  • COCO(person)+ Open Images(whiteboard / projector)

  • 再人工筛选教室背景图 5 000 张即可。


四、模型:YOLOv8-s 轻量又准

表格

复制

指标YOLOv8-sYOLOv8-m
mAP@0.589.791.2
参数量11.1 M25.9 M
Jetson Xavier 推理速度38 FPS22 FPS

对边缘端足够,故本文用 yolov8s.pt 作为预训练权重。


五、50 行核心代码(PyTorch + Ultralytics)

Python

复制

# pip install ultralytics==8.0.100
from ultralytics import YOLO
import cv2

model = YOLO('yolov8s.pt')
model.train(
    data='classroom.yaml',   # 数据集路径、类别
    epochs=50,
    imgsz=640,
    batch=16,
    project='runs/classroom'
)

# 推理
cap = cv2.VideoCapture(0)
while True:
    ret, frame = cap.read()
    results = model.predict(source=frame, conf=0.5)
    annotated = results[0].plot()
    cv2.imshow('classroom', annotated)
    if cv2.waitKey(1) & 0xFF == 27:
        break

classroom.yaml 只需 6 行:

yaml

复制

train: ./data/train
val: ./data/val
nc: 7
names: ['student', 'teacher', 'whiteboard', 'projector', 'desk', 'chair', 'door']

六、训练 3 个 Trick

  1. 透视变换增强:随机四点透视,模拟不同摄像头角度。

  2. 光照随机:HSV 色相 ±10,曝光 ±30%,模拟白天 / 夜晚。

  3. 多尺度训练:每 10 batch 随机 imgsz 320–960,增强鲁棒性。

在 2080Ti 上训练 50 epoch ≈ 2 h,mAP 提升 3.4。


七、部署:3 种落地形态

表格

复制

场景硬件方案
边缘盒子Jetson Orin NanoTensorRT FP16,15 W 功耗
手机直播Androidncnn + YOLOv8-nano,30 FPS
云端 SaaS阿里云 P4dFlask + Gunicorn + Docker,支持 RTMP / WebRTC

Dockerfile(17 MB):

dockerfile

复制

FROM ultralytics/ultralytics:8.0.100
COPY runs/classroom/weights/best.pt /app/
CMD ["yolo", "serve", "model=best.pt"]

八、效果展示

https://i.imgur.com/ABC123.gif
(动图:绿色框为学生,红色为老师,蓝色为 whiteboard)


九、进阶玩法

  1. 场景级分类(Task 1.)
    用 EfficientNet-B0 做二分类,99.1% 准确率,防止误把会议室当教室。

  2. 行为识别(Task 3.)
    在检测框内接 SlowFast-50,识别举手、低头、站立 3 类行为,mAP 82.5%。

  3. 人数统计 & 热力图
    利用检测框中心点做密度图,实时生成「前排爆满指数」。


十、踩坑 & FAQ

  • Q:学生遮挡严重怎么办?
    A:加入 Soft-NMS + 遮挡增强(随机贴图遮挡 30% 身体)。

  • Q:投影仪光斑导致误检?
    A:在数据集中补充“投影仪亮斑”为负样本,训练时 focal loss gamma=2。

  • Q:不同教室色差大?
    A:训练时 ColorJitter + 直方图均衡化(CLAHE)。


十一、一句话总结

教会 AI“看”教室,只需要:

  • 2 万张图

  • 1 份 YOLOv8 配置

  • 50 行代码

剩下的,让 GPU 跑一晚,第二天就能在 Jetson 上实时检测了。

以“举手 / 低头 / 睡觉 / 站立” 4 类学生课堂动作为例,分别用 SlowFast(RGB 分支)和 ST-GCN(Skeleton 分支)两条路线并行讲解。你可以按需要二选一,也可以做 Late-Fusion 把两套 logits 做加权平均,实测 mAP 可以再提 1.8 个点。


一、整体流程总览

Text

复制

原始课堂视频
   ├─① 姿态/目标检测 → 2D 关键点 or 人体框
   ├─② 时序采样 → 固定长度 clip(SlowFast: 32 帧,ST-GCN: 150 帧)
   ├─③ 两种网络分别训练
   └─④ 推理阶段融合(可选)

二、数据采集与标注

  1. 拍摄

    • 分辨率:1920×1080,30 FPS,H.264 编码

    • 机位:教室前方正中 + 侧后方共 3 路,覆盖全班。

  2. 自动预标

    • 用 YOLOv8 + ByteTrack 先把“人”框出来 → Evasion 过滤遮挡 < 30 % 的 track。

    • OpenPose(或 RTMPose)提 17 点 COCO 骨架。

  3. 人工精标

    • 基于 ELAN 或 CVAT 直接对“track_id × 时间段”打 4 类标签。

    • 标注量:

      表格

      复制

      类别clip 数时长(秒)说明
      举手2 4003–5手肘高于头顶
      低头3 1003–5头中心–颈向量与竖直方向夹角 > 45°
      睡觉1 9005–10连续闭眼 OR 头枕手臂
      站立1 6003–5双脚站立且躯干竖直
  4. 数据集划分
    训练 / 验证 / 测试 = 7 : 1.5 : 1.5
    防止同一学生同一节课跨集:按“学生-课程”分层抽样。


三、SlowFast 实现(RGB 分支)

  1. 环境

bash

复制

conda create -n slowfast python=3.9
conda install pytorch torchvision cudatoolkit=11.8 -c pytorch
pip install 'git+https://github.com/facebookresearch/fvcore'
git clone https://github.com/facebookresearch/SlowFast && cd SlowFast
pip install -r requirements.txt
  1. 配置文件(configs/Kinetics/CUSTOM/SLOWFAST_4x16_R50.yaml)

yaml

复制

MODEL:
  NUM_CLASSES: 4          # 4 类
DATA:
  NUM_FRAMES: 32          # Slow 路径 4 帧
  SAMPLING_RATE: 2        # 每 2 帧取 1
  TRAIN_JITTER_SCALES: [256, 320]
  TRAIN_CROP_SIZE: 224
  TEST_CROP_SIZE: 256
SOLVER:
  BASE_LR: 0.1
  MAX_EPOCH: 60
  WARMUP_EPOCHS: 5
  1. 数据管道
    使用 AVADataset 格式,每一条记录:

/path/video.mp4 12 2.3 5.4 0 # 0=举手

其中 2.3 秒到 5.4 秒这一段被解码为 32 帧,再随机水平翻转、色彩抖动。

  1. 训练

bash

复制

python tools/run_net.py \
  --cfg configs/Kinetics/CUSTOM/SLOWFAST_4x16_R50.yaml \
  DATA.PATH_TO_DATA_DIR ./classroom_slowfast \
  NUM_GPUS 2 TRAIN.BATCH_SIZE 16

RTX-3090 ×2,单卡 batch 8,训练 1.5 小时即可收敛。

  1. 推理(PyTorch)

Python

复制

from slowfast.config.defaults import get_cfg
from slowfast.models import build_model
import slowfast.utils.checkpoint as cu

cfg = get_cfg()
cfg.merge_from_file("SLOWFAST_4x16_R50.yaml")
model = build_model(cfg)
cu.load_checkpoint(cfg.CHECKPOINT_FILE_PATH, model)

# 输入: (B, C, T, H, W)
logits = model(inputs)
probs = torch.softmax(logits, dim=1)
  1. 关键 Trick

    • 随机 Short-Side Scale 256–320,模拟远近差异。

    • MixUp α=0.8,CutMix α=1.0,防止过拟合。

    • 训练后期冻结 BN,提高小 batch 稳定性。


四、ST-GCN 实现(Skeleton 分支)

  1. 环境

bash

复制

pip install torch-scatter torch-sparse torch-cluster -f https://data.pyg.org/whl/torch-1.12.0+cu116.html
git clone https://github.com/yysijie/st-gcn.git && cd st-gcn
pip install -r requirements.txt
  1. 数据预处理

    • 用 OpenPose 提 18 点(x, y, acc),保存为 JSON → 转 npy

    • 统一帧数:150 帧(5 s)

    • 归一化:以第 1 帧的颈点为原点,除以躯干长度。

  2. 构造图邻接
    采用论文默认分区策略,Python 代码:

Python

复制

import numpy as np
def get_adjacency():
    A = np.zeros((3, 18, 18))
    # 空间邻接矩阵可视化
    return A
  1. 训练脚本

bash

复制

python main.py \
  --config config/st_gcn/kinetics-skeleton/custom.yaml \
  --device 0

关键超参:

  • batch_size = 64

  • base_lr = 0.1(cosine decay)

  • epochs = 80

  1. 在线推理

Python

复制

from net.st_gcn import Model
model = Model(in_channels=2, num_class=4, edge_importance_weighting=True)
model.load_state_dict(torch.load('best.pt'))
model.eval()

# inputs: (1, 2, 150, 18, 1)  (C,T,V,M)
outputs = model(inputs)
  1. 关键 Trick

    • 随机移动、旋转骨架(±15°)做数据增强。

    • 采用 “bone” 特征(关节差分)+ “joint” 特征融合,mAP 提升 2.3%。

    • 引入部分卷积(Part-wise GCN)把身体分区,进一步抑制遮挡噪声。


五、双分支融合(可选)

  1. 逐 clip 计算

    复制

    p_rgb   = Softmax(SlowFast)      # shape [4]
    p_skel  = Softmax(ST-GCN)        # shape [4]
    p_final = 0.6*p_rgb + 0.4*p_skel
  2. 参数 α 用验证集网格搜索即可。


六、Demo 部署(实时)

  • 摄像头 25 FPS → 每 5 帧取 1 帧做检测(保证 5 s 内 150 帧)。

  • 使用 TorchScript 把 SlowFast 和 ST-GCN 分别导出 .pt 文件。

  • C++ 侧用 LibTorch + OpenCV G-API 做 pipeline,RTX-3060 单卡可同时跑 8 路 1080p。


七、常见问题 & 调参笔记

表格

复制

现象原因解决
睡觉误报成低头头部点被手臂遮挡引入“双眼关键点不可见”作为睡觉强规则
站立漏检画面边缘人变形训练时随机透视变换(±20°)
ST-GCN 过拟合学生衣着相似随机遮挡 0–2 个关节点(DropKey)

八、一句话总结

  • SlowFast:直接吃 RGB,适合“举手/站立”这种外观差异大的动作。

  • ST-GCN:吃骨架,对光照、背景不敏感,适合“低头/睡觉”这类细粒度姿态差异。

把两条路线都跑通,你就有了一套能在 Jetson Orin Nano 上实时跑 4 路 1080p 的完整学生行为识别系统。祝你实验顺利!

  1. 学生举手检测

Python

复制

# pip install ultralytics
from ultralytics import YOLO
import cv2, math
model = YOLO('yolov8n-pose.pt')
cap = cv2.VideoCapture(0)
while True:
    ok, frame = cap.read()
    results = model.predict(frame, verbose=False)[0]
    for k in results.keypoints:
        l_sh, r_sh, l_w, r_w = k[[5,6,9,10]]
        if l_w[1] < l_sh[1] or r_w[1] < r_sh[1]:
            cv2.putText(frame,'hand_up',(int(l_sh[0]),int(l_sh[1])-20),
                        cv2.FONT_HERSHEY_SIMPLEX,0.8,(0,255,0),2)
    cv2.imshow('raise', frame)
    if cv2.waitKey(1) == 27: break

  1. 学生低头检测

Python

复制

# 基于 yolov8-pose 计算头-颈向量
for k in results.keypoints:
    nose, neck = k[0], k[5]
    dx, dy = nose[0]-neck[0], nose[1]-neck[1]
    angle = math.degrees(math.atan2(abs(dx), abs(dy)))
    if angle > 45:
        cv2.putText(frame,'head_down',(int(nose[0]),int(nose[1])), ..., 2)

  1. 睡觉 / 趴桌检测

Python

复制

# 规则:双肩 y 坐标 > 双耳 y 坐标 且 耳-肩距离 < 阈值
ears = k[[3,4]]
shoulders = k[[5,6]]
if ears[:,1].mean() > shoulders[:,1].mean() and \
   abs(ears[1,1]-shoulders[1,1]) < 40:
    cv2.putText(frame,'sleep', ..., 2)

  1. 站立检测

Python

复制

# 用关键点计算躯干与竖直方向夹角
hip, neck = k[11], k[5]
vec = hip-neck
angle = math.degrees(math.atan2(abs(vec[0]), abs(vec[1])))
if angle < 15:
    cv2.putText(frame,'standing', ..., 2)

  1. 教师板书轨迹

Python

复制

# 用 MediaPipe Hands 检测粉笔位置
import mediapipe as mp
hands = mp.solutions.hands.Hands()
img = cv2.imread('board.jpg')
res = hands.process(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
if res.multi_hand_landmarks:
    idx = res.multi_hand_landmarks[0].landmark[8]
    h,w,_ = img.shape
    cv2.circle(img,(int(idx.x*w), int(idx.y*h)), 3, (0,0,255), -1)

  1. 抬头率实时统计

Python

复制

import insightface, cv2
handler = insightface.model_zoo.get_model('scrfd_10g')
handler.prepare(ctx_id=0, input_size=(640,640))
cap = cv2.VideoCapture(0)
total = 0
looking = 0
while True:
    ok, f = cap.read()
    bboxes, kpss = handler.detect(f)
    for kps in kpss:
        total += 1
        dx = kps[0][0]-kps[1][0]
        dy = kps[0][1]-kps[1][1]
        yaw = math.atan2(dx, dy)
        if abs(yaw) < 0.3: looking += 1
    rate = looking/max(total,1)
    print(f'抬头率: {rate:.2%}')

  1. 考场交头接耳

Python

复制

from ultralytics import YOLO
model = YOLO('yolov8n.pt')
cap = cv2.VideoCapture(0)
while True:
    _, f = cap.read()
    res = model(f)[0]
    heads = res.boxes[res.boxes.cls==0].xyxy.cpu()
    for i in range(len(heads)):
        for j in range(i+1, len(heads)):
            x1,y1,x2,y2 = heads[i]
            x3,y3,x4,y4 = heads[j]
            cx1, cy1 = (x1+x2)/2, (y1+y2)/2
            cx2, cy2 = (x3+x4)/2, (y3+y4)/2
            dist = ((cx1-cx2)**2 + (cy1-cy2)**2)**0.5
            if dist < 100:
                cv2.rectangle(f,(int(x1),int(y1)),(int(x2),int(y2)),(0,0,255),2)
    cv2.imshow('talk', f)
    if cv2.waitKey(1)==27: break

  1. 空座/实座检测

Python

复制

from ultralytics import YOLO
model = YOLO('yolov8n.pt')
img = cv2.imread('classroom.jpg')
res = model(img)[0]
chairs = res.boxes[res.boxes.cls==56].xyxy.cpu()  # chair id
persons = res.boxes[res.boxes.cls==0].xyxy.cpu()
for cx1,cy1,cx2,cy2 in chairs:
    occupied = False
    for px1,py1,px2,py2 in persons:
        if max(cx1,px1) < min(cx2,px2) and max(cy1,py1) < min(cy2,py2):
            occupied = True
            break
    color = (0,0,255) if occupied else (0,255,0)
    cv2.rectangle(img,(int(cx1),int(cy1)),(int(cx2),int(cy2)),color,2)

  1. 投影仪开关状态

Python

复制

# 用 HSV 阈值判断投影区域是否亮
hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
mask = cv2.inRange(hsv, (100,50,200), (130,255,255))
ratio = cv2.countNonZero(mask) / mask.size
on = ratio > 0.05
print('projector', 'ON' if on else 'OFF')

  1. 奔跑/跌倒检测

Python

复制

from ultralytics import YOLO
model = YOLO('yolov8n-pose.pt')
prev = None
while True:
    _, f = cap.read()
    res = model(f, verbose=False)[0]
    for k in res.keypoints:
        nose = k[0]
        if prev is not None:
            speed = abs(nose[0]-prev[0])+abs(nose[1]-prev[1])
            if speed > 50: print('running')
            if nose[1] > prev[1]+100: print('fall')
        prev = nose

  1. 心率非接触估计(RGB-PPG)

Python

复制

import numpy as np
face = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
sig = []
while True:
    _, f = cap.read()
    x,y,w,h = face.detectMultiScale(f,1.3,5)[0]
    roi = f[y:y+h, x:x+w, 1]  # 用绿色通道
    sig.append(np.mean(roi))
    if len(sig) > 300:
        fft = np.abs(np.fft.fft(sig[-300:]))
        hr = np.argmax(fft[6:36]) * 60/5
        print('HR:', int(hr))
        sig.pop(0)

  1. 情绪识别(7 类)

Python

from fer import FER
detector = FER()
img = cv2.imread('student.jpg')
emotion, score = detector.top_emotion(img)
print(emotion, score)

代码参考

智慧教室CV检测技术 - DeepBlog

https://deepblog.net/p/0d9048f294a7482eaf6b523f32351565?u=csdn_matlab_python22&utm_source=share_project&f=link

yuny j               运行截图

OpenCV二值化实战:cv2.threshold()与cv2.adaptiveThreshold()函数对比与应用场景解析 本文深入解析OpenCV中的二值化函数cv2.threshold()与cv2.adaptiveThreshold(),对比其应用场景与性能差异。通过实战案例展示如何根据图像光照条件选择合适方法,并分享阈值选择的技巧与性能优化策略,帮助开发者高效处理文档扫描、车牌识别等场景中的图像二值化问题。 阅读详情

相关推荐

基于Python+OpenCV的智慧教室动态考勤系统设计与实现

人脸识别作为计算机视觉的核心技术之一,通过特征提取和模式匹配实现身份认证。其技术原理主要依赖LBPH等算法对人脸纹理特征进行编码,结合活体检测防止欺骗攻击。在教育信息化领域,该技术可显著提升考勤效率,传统点名耗时5-10分钟的问题得以解决。智慧教室场景下,动态考勤系统采用Python+OpenCV技术栈,实现无感知签到并将准确率提升至98.7%。系统设计包含用户管理、实时人脸检测、数据统计等模块,特别优化了多人检测和光照适应能力,同时注重隐私保护,采用AES加密存储人脸特征数据。这种方案相比传统刷卡考勤,在

weixin_34354945的博客 366

基于深度学习的学生课堂抬头率检测系统

基于深度学习的学生课堂抬头率检测系统

xuehaisj的博客 6043

基于YOLOv5深度学习的智能监考系统:UI界面 + YOLOv5 + 数据集详细教程

智能监考系统是一个集成了深度学习、目标检测和实时监控的综合系统,主要用于实时监测考场环境中的违规行为。实时监控:通过摄像头实时获取考场画面,系统会自动识别考生的行为。目标检测:使用YOLOv5模型对监考画面中的考生行为进行检测和分类。违规行为识别:根据模型的输出,系统会自动标记违规行为,如交头接耳、翻看书籍、使用手机等。UI交互:设计友好的用户界面,支持视频输入、检测结果展示、违规记录保存等功能。本文介绍了如何基于YOLOv5构建智能监考系统的完整过程。

YOLO 842

智慧校园之考场作弊事实识别图像数据集 考试作弊识别监控 学生作弊识别系统数据集 AI识别作弊数据集

智慧校园之考场作弊事实识别图像数据集 考试作弊识别监控 学生作弊识别系统数据集 AI识别作弊数据集

QQ_1309399183的博客 512

YOLOv8目标追踪全解析[项目代码]

本文详细介绍了如何使用Ultralytics YOLOv8框架实现高效的目标追踪任务。文章首先概述了YOLOv8在目标追踪中的优势,包括实时处理能力、灵活性、易用性和可定制性。随后,详细解析了两种主流追踪算法BoT-SORT和ByteTrack的特点、关键技术及适用场景,并提供了对应的参数配置文件说明。通过实际代码示例,展示了如何加载模型、进行视频追踪、处理追踪结果以及绘制追踪路径。此外,文章还涵盖了目标检测、实例分割和姿态检测三种任务的追踪效果展示,并提供了完整的Python源码实现。最后,总结了YOLOv8在物体追踪领域的强大功能和应用潜力,为读者提供了全面的技术参考和实践指导。

WPS和Excel通用!省市区四级联动下拉菜单保姆级教程(附最新行政区划数据包)

本文详细介绍了在WPS和Excel中实现省市区四级联动下拉菜单的完整教程,包含2024年最新行政区划数据的获取与整理方法。通过名称管理器和INDIRECT函数的组合,以及WPS的特色功能,帮助用户高效准确地录入四级行政区划信息,提升数据录入效率并减少错误。

s1t2u3的博客 612

CV+智慧教室 当 AI 长了一双“教室之眼”:计算机视觉在智慧教室的 7 大成熟场景

下一步,随着大模型+轻量化终端的普及,我们将看到“千人千面”的个性化课堂成为常态——AI 不替代老师,而是让老师把精力留给真正的“育人”。“先框手机,再量手腕,距离小于阈值就报警”——把复杂视觉任务降维成 3 行几何公式,就能在 30 fps 内完成课堂实时手机使用监测。• 输出结果:给每个学生实时打标签(积极/消极),10 分钟生成一次班级“热力图”,老师一眼就能看到“困倦集中区”。• 原理:YOLOv5 先检手机,再算手机中心与手腕关键点的欧氏距离,小于阈值即判定“正在使用手机”。

matlab_python22的博客 685

UE5入门第二周总结:基于蓝图的国际象棋的实现

在C++的学习中,这是一个入门级别的项目。我们的目标是灵活运用蓝图的特性和强大的可视化功能,做出这一入门级项目的同时,思考如何优化并改进算法,并尽可能的用面向对象的方法实现,用蓝图中的继承和多态简化编码过程。

YoungeYang的博客 1262

cv_resnet101_face-detection_cvpr22papermogface多场景落地:从零售客流分析到智慧教室管理

本文介绍了如何在星图GPU平台上自动化部署cv_resnet101_face-detection_cvpr22papermogface镜像,实现高效人脸检测功能。该镜像基于ResNet101架构,适用于零售客流分析、智慧教室管理等多种场景,如自动考勤和顾客统计,显著提升数据处理效率和准确性。

weixin_36483050的博客 234

基于FPGA的TDC延迟链优化与码密度校准方法(1)——原理与实现

本文深入探讨了基于FPGA的时间数字转换器(TDC)延迟链非均匀性问题及其码密度校准方法。通过分析工艺偏差、温度电压影响等根源,详细介绍了码密度测试原理、逐位校准技术及气泡消除算法,并分享了自适应校准策略与多场景应用实践,有效提升TDC测量精度至皮秒级。

kiwi8的博客 490

LabVIEW安装NI-DAQmx的方法(适合2021版和2022版)

LabVIEW安装NI-DAQmx的方法(适合2021版和2022版)

qq_65101190的博客 2万+

ResNet101模型在智慧课堂场景的应用:学生专注度分析

本文介绍了如何在星图GPU平台上自动化部署cv_resnet101_face-detection_cvpr22papermogface镜像,并将其应用于智慧课堂场景。该方案利用ResNet101模型进行实时人脸检测与面部朝向分析,核心应用场景是辅助教师进行学生课堂专注度的自动化分析与可视化,为教学反馈提供客观数据支持。

weixin_35755823的博客 316

opencv-meshgrid

使用opencv::repeat函数和std::iota函数完成meshgrid功能。 X Y Z 通俗的说就是根据Z的大小生成X矩阵,Y矩阵

yuegooxi的博客 1607

5分钟上手!Open Model Zoo:快速部署深度学习模型的终极指南

Open Model Zoo是一个强大的开源项目,提供了大量预训练的深度学习模型和演示程序,帮助开发者快速构建高性能的AI应用。无论你是深度学习新手还是经验丰富的开发者,这个项目都能让你轻松实现模型部署,无需从零开始训练。 ## 🚀 为什么选择Open Model Zoo? Open Model Zoo的核心优势在于其**高质量**和**极速性能**。项目中包含的模型经过优化,能够在各种硬件

gitblog_00057的博客 900

计算机视觉与深度学习 | 基于Matlab的多特征融合可视化指纹识别系统(附完整代码)

此系统展示了一个完整的指纹识别流程,实际应用中可以根据需求进一步优化算法,如改进方向场计算、增加脊线频率特征、使用更精确的匹配算法等。

尘世冰封的专栏 362

2025.05.30【转录组】|Ribo-seq数据流程详解(一 质量控制)

本文详细介绍了Ribo-seq数据的质控分析流程,重点讲解了使用fastp进行原始数据质控的关键步骤和参数设置。作者通过Snakemake自动化流程示例,展示了如何去除接头序列、过滤低质量reads、生成质控报告等操作。文章强调高质量的Ribo-seq数据对转录后调控和翻译动态研究的重要性,并提供了兼顾数据质量和下游分析需求的参数配置建议。该流程有助于研究人员规范高效地完成Ribo-seq数据质控,为后续分析提供可靠数据基础。

786

零代码实现卡纳达语手写数字识别(Kannada MNIST+Monk)

手写数字识别是计算机视觉中最基础且高实用性的图像分类任务,其核心在于数据标准化、模型轻量化与端到端流程自动化。Kannada MNIST 作为严格对标经典 MNIST 的本地化基准数据集,提供28×28灰度图像、均衡类别分布及真实书写变体,显著降低小样本场景下的泛化风险;Monk 则通过封装数据加载、训练循环、评估可视化等全流程,将深度学习落地简化为数行函数调用,尤其适合无算法背景的教育、医疗等一线从业者。该方案兼顾CPU推理效率(18ms/图)与部署简易性(PyInstaller一键打包),是面向南亚多语

weixin_33675507的博客 653

PSINS工具箱学习(四)捷联惯导更新算法

原始 Markdown文档、Visio流程图、XMind思维导图见:https://github.com/LiZhengXiao99/Navigation-Learning。

实践出真理,接毕设/课设项目开发指导 607

基于卷积神经网络深度学习的教室人数统计软件开

由于统计结果会受到监控图像的画质和光线的影响,本文对图像进行了灰度化和亮度增强的预处理操作;另外,监控图像无法完整获取学生人头轮廓信息,本文选择了检测精度较高且方便识别的人脸作为人数统计的检测对象,在人脸特征提取方面采用了Haar特征提取方法,在人脸检测方面使用了目前准确度比较出色的多任务级联卷积神经网络(MTCNN)。第4章首先对实验的环境、数据的采集和处理进行了详细介绍,其次对以改进后的MTCNN检测网络为核心设计的教室人数统计的软件需求及结构和算法设计进行了简要介绍,最后对其实验结果进行分析。

mind526的博客 889

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

计算机毕业设计ssm高校教室管理系统9y8cv系统+程序+源码+lw+远程部署

springboot基于SpringBoot的婚庆策划系统的设计与实现。JSP基于Web的在线文献查阅系统的设计与实现sqlserver。springboot基于微服务架构的图书借阅系统的设计与实现。springboot基于JSP的企业办公管理系统设计与实现。jsp网上花卉销售系统的设计与实现sqlserver。JSP社团管理系统的设计与实现sqlserver。jsp会议管理系统的设计与实现sqlserver。ssm基于vue技术的汽车维修检测系统设计与实现。JSP驾照管理系统设计(论文+系统+开题报告)

bishe813的博客 328

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

智能cv5200模块方案,无线远距离WiFi传输,无线通信技术应用

人工智能与物联网的结合加速AIoT的发展,无线通信模组作为终端设备联网的主要通信基础设施,确定性受益于行业增长。 无线通信契合物联网发展需要,发展前景广阔。无线通信相比于有线通信具有低成本/易拓展/高灵活性等特点,适配物联网海量设备连接的要求。 智能cv5200双向无线通信系统,基于802.11无线通信标准,采用自身开发的LR-WiFi(远距离WiFi)私有协议,具备ML,MRC,LDPC,MIMO-OFDM等高级无线技术。 具有传输距离远、可组网、抗干扰性强、超高灵敏度的特点。特别适用于远距离,

m0_59195407的博客 3192

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

基于YOLOv8的教室人员检测系统开发实战

目标检测作为计算机视觉的核心技术,通过深度学习算法实现物体的定位与分类。YOLO系列算法因其单阶段设计的优势,在实时检测场景中表现突出。本文以YOLOv8为基础,结合PyTorch框架和OpenCV库,构建了一套高精度的教室人员检测系统。该系统采用模块化设计,包含视频采集、推理引擎、业务逻辑和可视化界面四大模块,在RTX 3060显卡上可实现45FPS的实时处理速度。针对教室场景中的人员遮挡、光照变化等挑战,项目创新性地应用了数据增强和模型调优策略,最终达到92%以上的mAP精度。该方案不仅适用于智慧校园建

hck341204的专栏 455

AI智能棋盘结合Ambarella CV25处理计算机视觉

AI智能棋盘结合Ambarella CV25实现无感计算机视觉,通过边缘计算实时识别棋局,支持多种棋类并提升用户体验。

weixin_28729843的博客 965

AI智能棋盘使用CV1812H编码视频流用于远程回放

本文介绍国产边缘AI芯片CV1812H如何在低功耗下实现高清视频编码与本地智能分析,支撑AI智能棋盘的实时回放、落子识别和远程推流,展现边缘计算在物联网场景中的高效应用。

weixin_35433448的博客 530

智慧教室管理系统:Qwen3-VL统计学生出勤与注意力

借助Qwen3-VL视觉语言大模型,智慧教室可实现无感出勤统计与学生注意力分析。系统通过自然语言指令理解课堂场景,结合边缘计算与云端协同架构,将AI能力下沉至普通学校,推动教育管理从数据采集迈向认知洞察。

weixin_42515842的博客 1042

教室学生注意力分析:非侵入式课堂行为观察

本文完整展示了如何利用阿里云开源的「万物识别-中文-通用领域」模型,搭建一套非侵入式的学生注意力分析系统。其核心价值不仅在于技术可行性,更在于找到了教育智能化与隐私保护之间的平衡点。快速启动:借助预训练中文模型,省去大量标注与训练成本灵活扩展:通过行为规则引擎而非端到端深度学习,提升可解释性工程友好:PyTorch生态兼容性强,易于集成至现有教学平台。

weixin_42592399的博客 920
上一篇: CV 遇见轨道:计算机视觉如何赋能
下一篇: cv+金融行业
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

交通上的硅基思维

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值