训练时间最短的人脸检测算法[关闭]

2024-01-30

想问是否有任何适合视频的人脸检测方案需要最少的训练时间,理想情况下是几天而不是像 Viola-Jones 那样的几周。我读过有关 LBP 的内容,但它也需要大量的训练样本,但不确定需要多长时间。在训练集数量相似的情况下,训练 LBP 是否会消耗与 Viola-Jones 方法一样多的时间?我将在 Linux 操作系统上运行的微处理器(例如树莓派)上实现此功能。希望在 C 上实现它以提高速度,因为我希望它能够检测 10fps - 20fps 视频流中的图像。


OpenCV 附带了一个名为列车级联训练 LBP、Haar 和 HOG。特别是对于人脸检测,他们甚至以 24x24 像素人脸所需的格式提供 3000 个图像数据集列车级联.

根据我的经验,这三种类型中列车级联支持,LBP 的训练时间最少,对于 Haar 来说只需要几小时而不是几天。

对其训练过程的快速概述是,对于给定的阶段数(合适的选择是 20),它尝试找到拒绝尽可能多的非面部而不拒绝面部的特征。拒绝非面孔和保留面孔之间的平衡由最低命中率(OpenCV 选择了 99.5%)并且误报率(OpenCV 选择了 50%)。用于构建 OpenCV 自己的 LBP 级联的特定元算法是 Gentle AdaBoost (GAB)。

OpenCV 中实现的 LBP 变体描述如下:

廖胜才、朱祥鑫、雷震、张伦、李斯坦。学习用于人脸识别的多尺度块局部二进制模式。国际生物识别会议 (ICB),2007 年,第 828-837 页。

在 OpenCV 中使用默认参数实际相当于:

OpenCV LBP 级联运行时概述

检测器检查图像中的 24x24 窗口,寻找面部。从级联分类器的第 1 阶段到第 20 阶段,如果它可以显示当前 24x24 窗口可能不是人脸,它会拒绝它并在窗口上移动一个或两个像素到下一个位置;否则进入下一阶段。

在每个阶段,检查 3-10 个左右的 LBP 特征。每个 LBP 特征在窗口内都有一个偏移量和一个大小,并且它覆盖的区域完全包含在当前窗口内。在给定位置评估 LBP 特征可能会导致通过或失败。根据 LBP 特征是成功还是失败,将该特征特有的正权重或负权重添加到累加器中。

一旦阶段的所有 LBP 特征都被评估,累加器的值就会与阶段阈值进行比较。如果累加器低于阈值,则阶段失败;如果累加器高于阈值,则阶段通过。同样,如果某个阶段失败,则退出级联并且窗口移动到下一个位置。

LBP特征评估比较简单。在该特征在窗口内的偏移处,九个矩形以 3x3 配置布局。对于特定的 LBP 特征,这九个矩形的大小都是相同的,范围从 1x1 到 8x8。

计算九个矩形中所有像素的总和,即它们的积分。然后,将中心矩形的积分与其八个相邻矩形的积分进行比较。这八次比较的结果是八位(1或0),它们被组装在8位LBP中。

此 8 位位向量用作 2^8 == 256 位 LUT 的索引,由训练过程计算并特定于每个 LBP 特征,用于确定 LBP 特征是否通过。

这就是全部内容了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

训练时间最短的人脸检测算法[关闭] 的相关文章

  • 在 O(log n) 中查找排序矩阵(行 n 列)中的数字 [重复]

    这个问题在这里已经有答案了 假设我有一个矩阵 MxN 其行和列已排序 每行中的所有元素均按升序排列 每列中的所有元素均按升序排列 所有元素均为整数 无法做出其他假设 Example 1 5 8 20 2 9 19 21 12 15 25 3
  • 从二维排序数组中查找第 k 个最大元素

    我有一个二维数组 行和列已排序 如何从二维数组中找到第 k 大元素 如果你有一个n n矩阵 那么可以在平均时间内完成此操作O n log n log n 您所做的是将矩阵分解为一系列排序数组 然后立即对所有数组进行二分搜索 例如假设n 4并
  • DPLL算法定义

    我在理解 DPLL 算法时遇到一些问题 我想知道是否有人可以向我解释它 因为我认为我的理解是不正确的 我理解的方式是 我采用一些文字集 如果每个子句都为真 则模型为真 但如果某些子句为假 则模型为假 我通过查找单元子句递归地检查模型 如果有
  • iOS心率检测算法

    我正在尝试在我正在开发的应用程序中实现心跳记录功能 首选方法是使用 iPhone 的摄像头 在灯亮的情况下 让用户将手指放在镜头上 然后检测视频源中与用户心脏相对应的波动 我通过以下堆栈溢出问题找到了一个非常好的起点here https s
  • 生成字符串及其子字符串列表的排列的算法

    我已经忘记这个算法有一段时间了 假设我得到了字符串 cccaatt 我试图生成重复字母的每个子串的所有可能变体 EG cccaatt 作为输入将返回 猫 卡特 猫 卡特 ccat 卡特 卡特彼勒 卡特彼勒 cccat cccat cccaa
  • 一种递归算法,用于在数组中查找总和为给定整数的两个整数

    我需要一个算法来确定数组是否包含两个总和为给定整数的元素 数组已排序 该算法应该是递归的并且运行时间为 O n 递归步骤应该基于总和 这意味着该方法传递总和并根据最终结果返回 true 或 false 如果找到两个元素 返回 true 否则
  • 算法 - 如何有效删除列表中的重复元素?

    有一个list L 它包含以下元素任意类型each 如何有效删除此类列表中的所有重复元素 必须保留订单 只需要一个算法 因此不允许导入任何外部库 相关问题 在Python中 从列表中删除重复项以使所有元素都是唯一的最快算法是什么在维持秩序的
  • 数组中的重复元素[重复]

    这个问题在这里已经有答案了 这有点与this https stackoverflow com questions 2605766 how to find a duplicate element in an array of shuffled
  • 图像算法上的物体计数

    我又接到学校任务了 这次 我的老师给我的任务是创建算法来计算图片上有多少只鸭子 该图与此类似 我想我应该使用模式识别来搜索上面有多少只鸭子 但我不知道每只鸭子适合哪种图案 我认为你可以通过分割鸭嘴并计算鸭嘴的数量来解决这个问题连接的组件 h
  • 用于计算三角函数、对数或类似函数的算法。仅限加减法

    我正在修复 Ascota 170 古董机械可编程计算机 它已经开始工作了 现在我正在寻找一种算法来展示其功能 例如计算三角或对数表 或类似的东西 不幸的是 从数学运算来看 计算机只能进行整数的加减法 从 1E12到1E12的55个寄存器 甚
  • 如何设计一种算法来计算倒数式数学数字难题

    我一直想这样做 但每次我开始思考这个问题时 它的指数性质都会让我大吃一惊 我希望能够理解的问题解决器和代码是针对倒计时数学问题的 给定一组数字 X1 到 X5 计算如何使用数学运算将它们组合起来生成 Y 您可以应用乘法 除法 加法和减法 那
  • 运行时间为 O(n) 且就地排序的排序算法

    有没有运行时间为O n 并且还分类到位 在某些情况下 最好的情况是 O n 但这可能是因为项目集合已经排序 你正在看 O nlogn 一些较好的平均值 话虽如此 排序算法的 Wiki 还是相当不错的 有一个表格比较了流行的算法 说明了它们的
  • 在 3d 网格中转发(绘制)线

    我需要类似 Bresenham 算法的东西 但是 对于 3d 网格空间来说不完全是这样 我需要 3d 单元网格 边缘尺寸 1 0 从 S 点开始 前进到 K 点 接触 该线接触的所有单元格 即使只有边缘 点被触摸我需要触摸所有 8 个单元
  • 自动跟踪算法

    我正在尝试写一个simple跟踪例程来跟踪电影中的某些点 本质上我有一系列 100 帧长的电影 在黑暗背景上显示一些亮点 我每帧有大约 100 150 个点 它们在电影的过程中移动 我想跟踪它们 所以我正在寻找一些有效的 但可能不会过度实施
  • 在任意时间范围内找到最佳日/月/年间隔的算法?

    如果您有时间表 请说 March 19 2009 July 15 2011 是否有一种算法可以将该时间范围分解为 March 19 2009 March 31 2009 complete days April 1 2009 December
  • “包含字符串”的快速索引

    在我的应用程序中 我有多达数百万个短字符串 大部分短于 32 个字符 我想实现一个带有附加列表的搜索框 该列表仅包含包含在搜索框中输入的整个字符串的元素 如何预先建立索引来快速找到此类字符串 所有排序的 STL 容器都会检查整个字符串 对于
  • 什么是“朴素”算法,什么是“封闭式”解决方案?

    我有一些关于描述算法时使用的术语语义的问题 首先 朴素 算法是什么意思 这与给定问题的其他解决方案有何不同 解决方案还可以采取哪些其他形式 其次 我听到很多人提到 封闭式 解决方案 我也不知道这意味着什么 但在尝试解决递归关系时经常会出现
  • 重写修改后的 goto 语义的算法

    我有一大堆使用旧的自行设计的脚本语言编写的遗留代码 我们将它们编译 翻译成 javascript 该语言有条件跳转 跳转到标签 与普通 goto 语句的区别在于 不可能向后跳转 该语言中没有嵌套的 if 语句或循环 由于 javascrip
  • 这个函数(for循环)空间复杂度是O(1)还是O(n)?

    public void check 10 for string i list Integer a hashtable get i if a gt 10 hashtable remove i 这是 O 1 还是 O n 我猜测 O n 但不是
  • 求先递增后递减列表的最大值和最小值

    我尝试用谷歌搜索这个问题 但没有取得太大成功 我确信这个问题或类似问题有一个技术名称 但我似乎找不到答案 给定一个列表L整数 即严格递增 然后严格递减 找到该列表的最大值和最小值 例如 L可能 1 2 3 4 5 4 3 2 or 2 4

随机推荐

  • 在任何页面上设计注册表单

    我试图允许用户在我的主页 登陆页面上注册该网站 我已将设备注册表复制到我的登陆页面视图中 div br div div br div div div
  • Ruby,exec、system 和 %x() 或反引号之间的区别

    以下 Ruby 方法有什么区别 exec system and x or 反引号 我知道它们用于通过 Ruby 以编程方式执行终端命令 但我想知道为什么有三种不同的方法来执行此操作 system The system http www ru
  • dropzone.js 在没有 dropzone 的页面上给出错误“无效的 dropzone 元素”

    我正在使用 dropzone js 它在我需要 dropzone 的页面上运行得很好 在任何其他页面上 虽然它给了我一个 Invalid dropzone element 错误消息并导致我的其他 javascript 出现问题 我有一个自定
  • 区分 False 和 0

    假设我有一个包含不同值的列表 如下所示 1 2 3 b None False True 7 0 我想迭代它并检查每个元素是否不在某些禁止值列表中 例如 这个列表是 0 0 0 当我检查是否为 False 时 0 0 0 I get True
  • 为什么必须使用函数指针?

    什么情况下需要函数指针 标准答案似乎是回调 但为什么我们不能只传递一个函数呢 我正在阅读的关于 C 的书演示了将函数作为参数传递 并承认实际上编译器会将其转换为函数指针并传递它 因为函数不是实际对象 它显示了使用函数指针的等效代码 这稍微复
  • Ruby on Rails:默认情况下阻止选择列

    I have entries表与一个content可能包含大量文本的字段 在大多数情况下 我不需要访问该字段 因此每次从数据库加载大量未使用的数据 从 id 1 的条目中选择 似乎是对资源的巨大浪费 我如何指定default scope 除
  • 从 bash 输出中排除一个字符串

    我现在正在做一个项目 在这个项目中 由于某些原因 我需要从与模式匹配的输出 或文件 中排除第一个字符串 困难在于我只需要排除一个字符串 即流中的第一个字符串 例如 如果我有 1 abc 2 qwerty 3 open 4 abc 5 tal
  • 我怎样才能得到下面图片的黑白图像?

    我想将图片准确地转换为黑白图像 其中种子将由白色表示 背景为黑色 我想把它放在 python opencv 代码中 请帮帮我 I got good result for the above picture using the given c
  • Swift:UIDocumentInteractionController 不起作用?

    UIDocumentInteractionController 不适用于具有多个页面的大型 pdf 文件 在我的代码中 var docController UIDocumentInteractionController DispatchQu
  • 如何让文本区域占据 div 中的剩余高度?

    我有一组代码如下 要点是在 div 中放置一组图像 然后用文本区域填充 div 的其余部分 如果我设置 height 100 它将使其高度相同 这不是 div height images height 并使文本区域更长 w3c 上说的是in
  • 如何在不写入主目录的情况下运行 podman 和 buildah?

    我的主目录中几乎没有剩余磁盘空间 但是 我的目录中有很多磁盘空间 scratch tmp实验 该目录现在是空的 我想尝试一下命令podman and buildah 只是为了实验和学习 实验结束后我想删除该目录 scratch tmp实验
  • 如何在电报机器人中获得身份验证?

    Telegram 机器人现已准备就绪 如果我们使用网络浏览器和网站进行类比 那么电报客户端应用程序就像浏览器客户端 Telegram 聊天室就像网站 假设我们有一些信息 我们只想限制某些用户 在网站上 我们将进行身份验证 我们如何在 Tel
  • Unity3D 构建后加载资源

    我有很多组图像 PNG 它们放置在Resources项目的 Assets 文件夹中 使用编辑器时 我可以毫无问题地从不同的子文件夹加载图像 只需简单地使用Resources Load 命令并提供我尝试加载的特定图像的路径 例如 firstL
  • java中数组的所有可能的组合和子集

    给定一个可变维度的数组 例如 数组 1 2 4 5 我需要一种方法来概括数组的所有可能组合和子集 给定一个包含 n 个元素的数组 我需要拥有所有子集 1 个元素的所有子集 2 个元素的所有子集 n 个元素的所有子集 以及每个子集的所有可能排
  • (C#) 如何修改现有 XML 文件中的属性值而不加载或重写整个文件?

    我正在 XmlWriter 和 Linq2Xml 的帮助下制作一些巨大的 XML 文件 几个 GB 该文件的类型为 table table
  • 使下拉菜单在点击时向下推送内容

    每当用户选择带有下拉菜单的链接时 我都会尝试下推我的内容 但是 当单击时 下拉菜单会覆盖内容而不是将其向下推 我尝试过使用position relatives position absolute等来达到某种期望的结果 但没有这样的运气 我见
  • 双工命名管道在某个写入时挂起

    我有一个 C 管道服务器应用程序和一个 C 管道客户端应用程序通过 Windows 命名管道进行通信 双工 消息模式 在单独的读取线程中等待 阻塞 一切正常 通过管道发送和接收数据 直到我尝试从客户端写入管道以响应表单 textchange
  • 实际上复制/提取苹果的“iPhone X 的连续角”?

    历史性的问题 请注意 现在就这么简单 https stackoverflow com a 59993994 294884 https stackoverflow com a 59993994 294884 iPhoneX 不寻常的底角是 A
  • 如何解码 matplotlib 颜色图中的颜色映射?

    我知道如何将数字映射到这篇文章中的颜色 将值映射到 matplotlib 中的颜色 https stackoverflow com questions 28752727 map values to colors in matplotlib
  • 训练时间最短的人脸检测算法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 想问是否有任何适合视频的人脸检测方案需要最少的训练时间 理想情况下是几天而不是像 Viola Jones 那样的几周 我读过有关 LB