当前位置: 首页 > news >正文

【计算机视觉】OpenCV项目实战:基于face_recognition库的实时人脸识别系统深度解析

在这里插入图片描述

基于face_recognition库的实时人脸识别系统深度解析

    • 1. 项目概述
    • 2. 技术原理与算法设计
      • 2.1 人脸检测模块
      • 2.2 特征编码
      • 2.3 相似度计算
    • 3. 实战部署指南
      • 3.1 环境配置
      • 3.2 数据准备
      • 3.3 实时识别流程
    • 4. 常见问题与解决方案
      • 4.1 dlib安装失败
      • 4.2 人脸检测性能差
      • 4.3 误识别率高
    • 5. 关键技术论文支撑
      • 5.1 基础算法
      • 5.2 性能优化
    • 6. 项目演进方向
      • 6.1 算法改进
      • 6.2 性能优化
      • 6.3 功能扩展
    • 结语

1. 项目概述

Guarouba/face_rec项目是一个基于Python的实时人脸识别系统,整合了dlib与face_recognition库,实现了从摄像头视频流中实时检测、跟踪和识别人脸的功能。其技术特点包括:

  • 多任务处理:同步完成人脸检测、特征编码与身份识别
  • 高效特征提取:使用ResNet-34预训练模型生成128维人脸特征向量
  • 实时性能:在i5-1135G7处理器上达到15-20FPS处理速度
  • 跨平台支持:兼容Windows/Linux/macOS系统

项目在LFW数据集上达到99.38%的识别准确率,特别适用于门禁系统、考勤管理等需要实时身份验证的场景。


2. 技术原理与算法设计

2.1 人脸检测模块

采用方向梯度直方图(HOG)结合线性SVM的分类器:
HOG特征向量 = ϕ ( I ) ∈ R n 决策函数 = sign ( w T ϕ ( I ) + b ) \text{HOG特征向量} = \phi(I) \in \mathbb{R}^{n} \\ \text{决策函数} = \text{sign}(\mathbf{w}^T\phi(I) + b) HOG特征向量=ϕ(I)Rn决策函数=sign(wTϕ(I)+b)
其中 w \mathbf{w} w为SVM权重向量, b b b为偏置项。

2.2 特征编码

使用预训练的ResNet-34模型提取128维特征:
f ( x ) = ResNet ( x ) ∈ R 128 f(x) = \text{ResNet}(x) \in \mathbb{R}^{128} f(x)=ResNet(x)R128
模型在VGGFace2数据集上微调,最后一层替换为全连接层:
W ∈ R 128 × 8631 , b ∈ R 128 W \in \mathbb{R}^{128 \times 8631}, \quad b \in \mathbb{R}^{128} WR128×8631,bR128

2.3 相似度计算

采用余弦相似度进行人脸匹配:
sim ( f 1 , f 2 ) = f 1 ⋅ f 2 ∥ f 1 ∥ ∥ f 2 ∥ \text{sim}(f_1, f_2) = \frac{f_1 \cdot f_2}{\|f_1\| \|f_2\|} sim(f1,f2)=f1∥∥f2f1f2
设定阈值 τ = 0.6 \tau=0.6 τ=0.6,当相似度超过阈值时判定为同一人。


3. 实战部署指南

3.1 环境配置

系统要求

  • Python 3.8+
  • 支持AVX指令集的CPU(推荐Intel Haswell架构以上)

依赖安装

conda create -n face_rec python=3.8
conda activate face_rec# 安装基础依赖
conda install -c conda-forge dlib=19.24
pip install face_recognition opencv-python numpy

3.2 数据准备

  1. 创建已知人脸数据库:
dataset/
├── person1/
│   ├── img1.jpg
│   └── img2.jpg
└── person2/├── photo1.png└── photo2.png
  1. 生成特征编码:
import face_recognitionknown_encodings = []
known_names = []for person_dir in os.listdir("dataset"):for img_file in os.listdir(f"dataset/{person_dir}"):image = face_recognition.load_image_file(f"dataset/{person_dir}/{img_file}")encoding = face_recognition.face_encodings(image)[0]known_encodings.append(encoding)known_names.append(person_dir)

3.3 实时识别流程

import cv2
import face_recognitionvideo_capture = cv2.VideoCapture(0)
process_this_frame = Truewhile True:ret, frame = video_capture.read()small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25)rgb_small_frame = small_frame[:, :, ::-1]if process_this_frame:face_locations = face_recognition.face_locations(rgb_small_frame)face_encodings = face_recognition.face_encodings(rgb_small_frame, face_locations)face_names = []for face_encoding in face_encodings:matches = face_recognition.compare_faces(known_encodings, face_encoding)name = "Unknown"face_distances = face_recognition.face_distance(known_encodings, face_encoding)best_match_index = np.argmin(face_distances)if matches[best_match_index]:name = known_names[best_match_index]face_names.append(name)process_this_frame = not process_this_frame# 显示结果for (top, right, bottom, left), name in zip(face_locations, face_names):top *= 4; right *= 4; bottom *= 4; left *= 4cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)cv2.putText(frame, name, (left + 6, bottom - 6),cv2.FONT_HERSHEY_DUPLEX, 0.8, (255, 255, 255), 1)cv2.imshow('Video', frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakvideo_capture.release()
cv2.destroyAllWindows()

4. 常见问题与解决方案

4.1 dlib安装失败

  • 错误信息CMake Error at CMakeLists.txt
  • 解决方法
    # 安装构建依赖
    sudo apt install build-essential cmake
    pip install cmake
    # 从源码编译
    pip install dlib --no-binary :all:
    

4.2 人脸检测性能差

  • 优化策略
    1. 启用多线程处理:
      face_locations = face_recognition.face_locations(rgb_small_frame, number_of_times_to_upsample=0, model="hog")
      
    2. 限制检测区域:
      face_locations = face_recognition.face_locations(rgb_small_frame, model="cnn")[0:1]  # 仅检测最大人脸
      

4.3 误识别率高

  • 改进方案
    1. 增加训练样本多样性(每个身份≥5张不同角度照片)
    2. 调整相似度阈值:
      if face_distances[best_match_index] < 0.5:  # 原阈值0.6name = known_names[best_match_index]
      

5. 关键技术论文支撑

5.1 基础算法

  1. 《Histograms of Oriented Gradients for Human Detection》(Dalal & Triggs, CVPR 2005)

    • HOG特征检测的奠基性论文
  2. 《Deep Face Recognition》(Schroff et al., BMVC 2015)

    • 提出FaceNet模型与三元组损失函数

5.2 性能优化

  1. 《SphereFace: Deep Hypersphere Embedding for Face Recognition》(Liu et al., CVPR 2017)

    • 引入角度间隔损失提升特征判别性
  2. 《ArcFace: Additive Angular Margin Loss for Deep Face Recognition》(Deng et al., CVPR 2019)

    • 改进的损失函数在多个基准测试中达到SOTA

6. 项目演进方向

6.1 算法改进

  • 活体检测:集成眨眼检测与3D人脸重建
  • 遮挡处理:使用Attention机制增强局部特征提取

6.2 性能优化

  • 模型量化:将float32模型转换为int8提升推理速度
  • 多GPU支持:通过Horovod实现分布式训练

6.3 功能扩展

  • 属性分析:集成年龄、性别、表情识别
  • 视频分析:支持长时间视频流的行为识别

结语

Guarouba/face_rec项目通过整合成熟的人脸识别算法库,构建了一个高效实用的实时识别系统。其技术方案在准确性与实时性之间取得了良好平衡,为开发者提供了快速搭建人脸识别应用的参考框架。随着自监督学习等新技术的发展,未来可通过引入无监督预训练策略提升模型泛化能力,推动人脸识别技术向更智能、更安全的方向演进。

相关文章:

【计算机视觉】OpenCV项目实战:基于face_recognition库的实时人脸识别系统深度解析

基于face_recognition库的实时人脸识别系统深度解析 1. 项目概述2. 技术原理与算法设计2.1 人脸检测模块2.2 特征编码2.3 相似度计算 3. 实战部署指南3.1 环境配置3.2 数据准备3.3 实时识别流程 4. 常见问题与解决方案4.1 dlib安装失败4.2 人脸检测性能差4.3 误识别率高 5. 关键…...

uni-app学习笔记五-vue3响应式基础

一.使用ref定义响应式变量 在组合式 API 中&#xff0c;推荐使用 ref() 函数来声明响应式状态&#xff0c;ref() 接收参数&#xff0c;并将其包裹在一个带有 .value 属性的 ref 对象中返回 示例代码&#xff1a; <template> <view>{{ num1 }}</view><vi…...

阿克曼-幻宇机器人系列教程2- 机器人交互实践(Topic)

在上一篇文章中&#xff0c;我们介绍了两种登录机器人的方式&#xff0c;接下来我们介绍登录机器人之后&#xff0c;我们如何通过topic操作命令实现与机器人的交互。 1. 启动 & 获取topic 在一个终端登录树莓派后&#xff0c;执行下列命令运行机器人 roslaunch huanyu_r…...

Windows系统事件查看器管理单元不可用

报错&#xff1a;Windows系统事件查看器管理单元不可用 现象原因&#xff1a;为误触关闭管理单元或者该模块卡死 解决办法&#xff1a;重启Windows server服务&#xff0c;若不行&#xff0c;则重启服务器即可...

milvus+flask山寨《从零构建向量数据库》第7章case2

继续流水账完这本书&#xff0c;这个案例是打造文字形式的个人知识库雏形。 create_context_db: # Milvus Setup Arguments COLLECTION_NAME text_content_search DIMENSION 2048 MILVUS_HOST "localhost" MILVUS_PORT "19530"# Inference Arguments…...

前端如何应对精确数字运算?用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性

目录 前端如何应对精确数字运算&#xff1f;用BigNumber.js解决JavaScript原生Number类型在处理大数或高精度计算时的局限性 一、BigNumber.js介绍 1、什么是 BigNumber.js&#xff1f; 2、作用领域 3、核心特性 二、安装配置与基础用法 1、引入 BigNumber.js 2、配置 …...

多目应用:三目相机在汽车智能驾驶领域的应用与技术创新

随着汽车智能驾驶技术不断完善&#xff0c;智能汽车也不断加速向全民普惠迈进&#xff0c;其中智驾“眼睛”三目视觉方案凭借低成本、高精度、强适配性成为众多汽车品牌关注的焦点。三目相机在汽车智能驾驶领域的创新应用&#xff0c;主要依托其多视角覆盖、高动态范围&#xf…...

webpack重构优化

好的&#xff0c;以下是一个关于如何通过重构 Webpack 构建策略来优化性能的示例。这个过程包括分析现有构建策略的问题、优化策略的制定以及具体的代码实现。 --- ### 项目背景 在参与公司的性能专项优化过程中&#xff0c;我发现现有的 Webpack 构建策略存在一些问题&#…...

MySQL 8.0 OCP(1Z0-908)英文题库(31-40)

目录 第31题题目分析正确答案 第32题题目分析正确答案 第33题题目分析正确答案&#xff1a; 第34题题目解析正确答案 第35题题目分析正确答案 第36题题目分析正确答案 第37题题目分析正确答案 第38题题目分析正确答案 第39题题目分析正确答案 第40题题目分析正确答案 第31题 Y…...

aardio - 虚表 —— vlistEx.listbar2 多层菜单演示

在 近我者赤 修改版的基础上&#xff0c;做了些许优化。 请升级到最新版本。 import win.ui; import godking.vlistEx.listbar2; import fonts.fontAwesome; /*DSG{{*/ mainForm win.form(text"多层折叠菜单";right1233;bottom713) mainForm.add({ custom{cls"…...

22.【.NET8 实战--孢子记账--从单体到微服务--转向微服务】--单体转微服务--增加公共代码

在拆分服务之前&#xff0c;我们需要先提取一些公共代码。本篇将重点新增日志记录、异常处理以及Redis的通用代码。这些组件将被整合到一个共享类库中&#xff0c;便于在微服务架构中高效复用。 Tip&#xff1a;在后续的教程中我们会穿插多篇提取公共代码的文章&#xff0c;帮助…...

EasyOps®5月热力焕新:三大核心模块重构效能边界

在应用系统管理中&#xff0c;我们将管理对象从「服务实例」优化为「部署实例」&#xff0c;这一改变旨在提升管理效率与数据展示清晰度。 此前&#xff0c;系统以 “IP Port” 组合定义服务实例。当同一 IP 下启用多个进程或端口时&#xff0c;会产生多个服务实例。比如一台…...

基于深度学习的工业OCR数字识别系统架构解析

一、项目场景 春晖数字识别视觉检测系统专注于工业自动化生产监控、设备运行数据记录等关键领域。系统通过高精度OCR算法&#xff0c;能够实时识别设备上显示的关键数据&#xff08;如温度、压力、计数等&#xff09;&#xff0c;并定时存储至Excel文件中。这些数据对于生产过…...

R语言绘图 | 渐变火山图

客户要求绘制类似文章中的这种颜色渐变火山图&#xff0c;感觉挺好看的。网上找了一圈&#xff0c;发现有别人已经实现的类似代码&#xff0c;拿来修改后即可使用&#xff0c;这里做下记录&#xff0c;以便后期查找。 简单实现 library(tidyverse)library(ggrepel)library(ggf…...

Go语言——docker-compose部署etcd以及go使用其服务注册

一、docker-compsoe.yml文件如下 version: "3.5"services:etcd:hostname: etcdimage: bitnami/etcd:latestdeploy:replicas: 1restart_policy:condition: on-failureprivileged: truevolumes:# 持久化 etcd 数据到宿主机- "/app/apisix/etcd/data:/bitnami/etc…...

Tomcat的调优

目录 一. JVM 1.1 JVM的组成 1.2 运行时数据区域的组成 二. 垃圾回收 2.1 如何确认垃圾 1. 引用计数法 2. 根搜索算法 2.2 垃圾回收基本算法 1. 标记-清除算法&#xff08;Mark-Sweep&#xff09; 2. 标记-压缩算法&#xff08;Mark-Compact&#xff09; 3. 复制算法…...

Tomcat和Nginx的主要区别

1、功能定位 Nginx&#xff1a;核心是高并发HTTP服务器和反向代理服务器&#xff0c;擅长处理静态资源&#xff08;如HTML、图片&#xff09;和负载均衡。Tomcat&#xff1a;是Java应用服务器&#xff0c;主要用于运行动态内容&#xff08;如JSP、Servlet&#xff09;&#xf…...

Python训练营打卡——DAY24(2025.5.13)

目录 一、元组 1. 通俗解释 2. 元组的特点 3. 元组的创建 4. 元组的常见用法 二、可迭代对象 1. 定义 2. 示例 3. 通俗解释 三、OS 模块 1. 通俗解释 2. 目录树 四、作业 1. 准备工作 2. 实战代码示例​ 3. 重要概念解析 一、元组 是什么​​&#xff1a;一种…...

【TDengine源码阅读】DLL_EXPORT

2025年5月13日&#xff0c;周二清晨 #ifdef WINDOWS #define DLL_EXPORT __declspec(dllexport) #else #define DLL_EXPORT #endif为啥Linux和MacOS平台时宏为空&#xff0c;难道Linux和mac不用定义导出函数吗&#xff1f; 这段代码是一个跨平台的宏定义&#xff0c;用于处理不…...

电子科技浪潮下的华秋电子:慕尼黑上海电子展精彩回顾

为期3天的2025慕尼黑上海电子展&#xff08;electronica China 2025&#xff09;于17日在上海新国际博览中心落下帷幕。 展会那规模&#xff0c;真不是吹的&#xff01;本届展会汇聚了1,794家国内外行业知名品牌企业的展商来 “摆摊”&#xff0c;展览面积大得像个超级大迷宫&…...

TDengine编译成功后的bin目录下的文件的作用

2025年5月13日&#xff0c;周二清晨 以下是TDengine工具集中各工具的功能说明&#xff1a; 核心工具 taosd • TDengine的核心服务进程&#xff0c;负责数据存储、查询和集群管理。 taos • 命令行客户端工具&#xff0c;用于连接TDengine服务器并执行SQL操作。 taosBenchma…...

spark sql基本操作

Spark SQL 是 Apache Spark 的一个模块&#xff0c;用于处理结构化数据。它允许用户使用标准的 SQL 语法来查询数据&#xff0c;并且可以无缝地与 Spark 的其他功能&#xff08;如 DataFrame、Dataset 和 RDD&#xff09;结合使用。以下是 Spark SQL 的基本使用方法和一些常见操…...

采购流程规范化如何实现?日事清流程自动化助力需求、采购、财务高效协作

采购审批流程全靠人推进&#xff0c;内耗严重&#xff0c;效率低下&#xff1f; 花重金上了OA&#xff0c;结果功能有局限、不灵活&#xff1f; 问题出在哪里&#xff1f;是我们的要求太多、太苛刻吗&#xff1f;NO&#xff01; 流程名称&#xff1a; 采购审批管理 流程功能…...

影刀RPA开发-CSS选择器介绍

影刀RPA网页自动化开发&#xff0c;很多时候需要我们查看页面源码&#xff0c;查找相关的元素属性&#xff0c;这就需要我们有必要了解CSS选择器。本文做了些简单的介绍。希望对大家有帮助&#xff01; 1. CSS选择器概述 1.1 定义与作用 CSS选择器是CSS&#xff08;层叠样式…...

DeepSeek、B(不是百度)AT、科大讯飞靠什么坐上中国Ai牌桌?

在国产AI舞台上&#xff0c;DeepSeek、阿里、字节、腾讯、讯飞群雄逐鹿&#xff0c;好不热闹。 这场堪称“军备竞赛”的激烈角逐&#xff0c;绝非简单的市场竞争&#xff0c;而是一场关乎技术、创新与未来布局的深度博弈。在竞赛中&#xff0c;五大模型各显神通&#xff0c;以…...

MySQL全局优化

目录 1 硬件层面优化 1.1 CPU优化 1.2 内存优化 1.3 存储优化 1.4 网络优化 2 系统配置优化 2.1 操作系统配置 2.2 MySQL服务配置 3 库表结构优化 4 SQL及索引优化 mysql可以从四个层面考虑优化&#xff0c;分别是 硬件系统配置库表结构SQL及索引 从成本和优化效果来看&#xf…...

【github】主页显示star和fork

数据收集&#xff1a;定期&#xff08;例如每天&#xff09;获取你所有仓库的 Star 和 Fork 总数。数据存储&#xff1a;将收集到的数据&#xff08;时间戳、总 Star 数、总 Fork 数&#xff09;存储起来。图表生成&#xff1a;根据存储的数据生成变化曲线图&#xff08;通常是…...

网站遭受扫描攻击,大量爬虫应对策略

网站的日志里突然有很多访问路径不存在的&#xff0c;有些ip地址也是国外的&#xff0c;而且访问是在深夜且次数非常频繁紧密。判定就是不怀好意的扫描网站寻找漏洞。也有些是爬虫&#xff0c;且是国外的爬虫&#xff0c;有的也是不知道的爬虫爬取网站。网站的真实流量不多&…...

【 Redis | 实战篇 秒杀实现 】

目录 前言&#xff1a; 1.全局ID生成器 2.秒杀优惠券 2.1.秒杀优惠券的基本实现 2.2.超卖问题 2.3.解决超卖问题的方案 2.4.基于乐观锁来解决超卖问题 3.秒杀一人一单 3.1.秒杀一人一单的基本实现 3.2.单机模式下的线程安全问题 3.3.集群模式下的线程安全问题 前言&…...

手搓传染病模型(SEIARW)

在传染病传播的研究中&#xff0c;水传播途径是一个重要的考量因素。SEAIRW 模型&#xff08;易感者 S - 暴露者 E - 感染者 I - 无症状感染者 A - 康复者 R - 水中病原体 W&#xff09;综合考虑了人与人接触传播以及水传播的双重机制&#xff0c;为分析此类传染病提供了全面的…...

【C++】深入理解 unordered 容器、布隆过滤器与分布式一致性哈希

【C】深入理解 unordered 容器、布隆过滤器与分布式一致性哈希 在日常开发中&#xff0c;无论是数据结构优化、缓存设计&#xff0c;还是分布式架构搭建&#xff0c;unordered_map、布隆过滤器和一致性哈希都是绕不开的关键工具。它们高效、轻量&#xff0c;在性能与扩展性方面…...

第五天——贪心算法——射气球

1.题目 有一些球形气球贴在一个表示 XY 平面的平坦墙壁上。气球用一个二维整数数组 points 表示&#xff0c;其中 points[i] [xstart, xend] 表示第 i 个气球的水平直径范围从 xstart 到 xend。你并不知道这些气球的具体 y 坐标。 可以从 x 轴上的不同位置垂直向上&#xff0…...

麦肯锡110页PPT企业组织效能提升调研与诊断分析指南

“战略清晰、团队拼命、资源充足&#xff0c;但业绩就是卡在瓶颈期上不去……”这是许多中国企业面临的真实困境。表面看似健康的企业&#xff0c;往往隐藏着“组织亚健康”问题——跨部门扯皮、人才流失、决策迟缓、市场反应滞后……麦肯锡最新研究揭示&#xff1a;组织健康度…...

BFS算法篇——从晨曦到星辰,BFS算法在多源最短路径问题中的诗意航行(上)

文章目录 引言一、多源BFS的概述二、应用场景三、算法步骤四、代码实现五、代码解释六、总结 引言 在浩渺的图论宇宙中&#xff0c;图的每一条边、每一个节点都是故事的组成部分。每当我们站在一个复杂的迷宫前&#xff0c;开始感受它的深邃时&#xff0c;我们往往不再局限于从…...

理解 C# 中的各类指针

前言 变量可以理解成是一块内存位置的别名&#xff0c;访问变量也就是访问对应内存中的数据。 指针是一种特殊的变量&#xff0c;它存储了一个内存地址&#xff0c;这个内存地址代表了另一块内存的位置。 指针指向的可以是一个变量、一个数组元素、一个对象实例、一块非托管内存…...

MySQL 事务(二)

文章目录 事务隔离性理论理解隔离性隔离级别 事务隔离级别的设置和查看事务隔离级别读未提交读提交&#xff08;不可重复读&#xff09; 事务隔离性理论 理解隔离性 MySQL服务可能会同时被多个客户端进程(线程)访问&#xff0c;访问的方式以事务方式进行一个事务可能由多条SQL…...

【HarmonyOS】ArkTS开发应用的横竖屏切换

文章目录 1、简介2、静态 — 横竖屏切换2.1、效果2.2、实现原理2.3、module.json5 源码 3、动态 — 横竖屏切换3.1、应用随系统旋转切换横竖屏3.2、setPreferredOrientation 原理配置3.3、锁定旋转的情况下&#xff0c;手动设置横屏状态 1、简介 在完成全屏网页嵌套应用开发后…...

Linux中find命令用法核心要点提炼

大家好&#xff0c;欢迎来到程序视点&#xff01;我是你们的老朋友.小二&#xff01; 以下是针对Linux中find命令用法的核心要点提炼&#xff1a; 基础语法结构 find [路径] [选项] [操作]路径&#xff1a;查找目录&#xff08;.表当前目录&#xff0c;/表根目录&#xff09;…...

专栏项目框架介绍

项目整体实现框图 如下图所示&#xff0c;是该项目的整体框图&#xff0c;项目的功能概括为&#xff1a;PC端下发数据文件&#xff0c;FPGA板卡接收数据文件&#xff0c;缓存至DDR中&#xff0c;待数据文件发送完毕&#xff0c;循环读取DDR有效写区域数据&#xff0c;将DDR数据…...

WSL 安装 Debian 12 后,Linux 如何安装 vim ?

在 WSL 的 Debian 12 中安装 Vim 非常简单&#xff0c;只需使用 apt 包管理器即可。以下是详细步骤&#xff1a; 1. 更新软件包列表 首先打开终端&#xff0c;确保系统包列表是最新的&#xff1a; sudo apt update2. 安装 Vim 直接通过 apt 安装 Vim&#xff1a; sudo apt …...

【SpringBoot】从零开始全面解析Spring MVC (一)

本篇博客给大家带来的是SpringBoot的知识点, 本篇是SpringBoot入门, 介绍Spring MVC相关知识. &#x1f40e;文章专栏: JavaEE初阶 &#x1f680;若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子…...

C++—特殊类设计设计模式

目录 C—特殊类设计&设计模式1.设计模式2.特殊类设计2.1设计一个无法被拷贝的类2.2设计一个只能在堆上创建对象的类2.3设计一个只能在栈上创建对象的类2.4设计一个类&#xff0c;无法被继承2.5设计一个类。这个类只能创建一个对象【单例模式】2.5.1懒汉模式实现2.5.2饿汉模…...

初入OpenCV

OpenCV简介 OpenCV是一个开源的跨平台计算机视觉库&#xff0c;它实现了图像处理和计算机视觉方面的很多通用算法。 应用场景&#xff1a; 目标识别&#xff1a;人脸、车辆、车牌、动物&#xff1b; 自动驾驶&#xff1b;医学影像分析&#xff1b; 视频内容理解分析&#xff…...

霍夫圆变换全面解析(OpenCV)

文章目录 一、霍夫圆变换基础1.1 霍夫圆变换概述1.2 圆的数学表达与参数化 二、霍夫圆变换算法实现2.1 标准霍夫圆变换算法流程2.2 参数空间的表示与优化 三、关键参数解析3.1 OpenCV中的HoughCircles参数3.2 参数调优策略 四、Python与OpenCV实现参考4.1 基本实现代码4.2 改进…...

互联网大厂Java求职面试:优惠券服务架构设计与AI增强实践-4

互联网大厂Java求职面试&#xff1a;优惠券服务架构设计与AI增强实践-4 场景设定 面试官&#xff1a;某互联网大厂技术总监&#xff0c;拥有超过10年大型互联网企业一线技术管理经验&#xff0c;擅长分布式架构、微服务治理、云原生等领域。 候选人&#xff1a;郑薪苦&#…...

项目中会出现的css样式

1.重复渐变边框 思路&#xff1a; 主要是用重复的背景渐变实现的 如图&#xff1a; <div class"card"><div class"container">全面收集中医癌毒临床医案&#xff0c;建立医案共享机制&#xff0c;构建癌毒病机知识图谱&#xff0c;便于医疗人…...

LeetCode[101]对称二叉树

思路&#xff1a; 对称二叉树是左右子树对称&#xff0c;而不是左右子树相等&#xff0c;所以假设一个树只有3个节点&#xff0c;那么判断这个数是否是对称二叉树&#xff0c;肯定是先判断左右两个树&#xff0c;然后再看根节点&#xff0c;这样递归顺序我们就确认了&#xff0…...

黑马k8s(四)

1.资源管理介绍 本章节主要介绍yaml语法和kubernetes的资源管理方式 2.YAML语言介绍 3.资源管理方式 命令式对象管理 dev下删除了pod&#xff0c;之后发现还有pod&#xff0c;把原来的pod删除了&#xff0c;重新启动了一个 命令式对象配置 声明式对象配置 命令式对象配置&…...

华为ensp实现跨vlan通信

要在网络拓扑中实现主机192.168.1.1、192.168.1.2和192.168.2.1之间的互相通信&#xff0c;需要正确配置交换机&#xff08;S5700&#xff09;和路由器&#xff08;AR3260&#xff09;&#xff0c;以确保不同网段之间的通信&#xff08;即VLAN间路由&#xff09;。 网络拓扑分析…...

TCPIP详解 卷1协议 十 用户数据报协议和IP分片

10.1——用户数据报协议和 IP 分片 UDP是一种保留消息边界的简单的面向数据报的传输层协议。它不提供差错纠正、队列管理、重复消除、流量控制和拥塞控制。它提供差错检测&#xff0c;包含我们在传输层中碰到的第一个真实的端到端&#xff08;end-to-end&#xff09;校验和。这…...