openpose使用_openpose源码阅读总结

本文深入探讨OpenPose项目中采用的C++模板和多线程框架,揭示其如何实现代码复用和高效的数据处理。核心数据结构Datum与Queue协同Worker进行数据操作,SubThread和Thread管理不同的任务执行,ThreadManager负责调度。这套框架不仅在姿态估计等领域发挥作用,其多线程设计也极具学习价值。
摘要由CSDN通过智能技术生成

模板编程的好处;

一套处理流程,适用于多种数据类型,实现代码复用.

openpose这个项目所包含的不仅仅是姿态估计/人脸/手势关键点的定位算法;它所实现的一套多线程框架代码(用于组织各种任务的协同运行)同样也非常值得学习,由于这套框架使用了C++的模板机制\抽象接口技术,使得这套代码,可以为我所用.

抛开里面的算法实现,简要记录下openpose中多线程框架原理:

Datum---核心数据结构

Queue---worker从Queue队列中取数据,一个Queue可能是某个worker的输入源,一个worker也可以生成数据插入某个输出队列中;

Worker---工作类,处理的数据类型Datum

SubThread---子线程中运行的任务,一个subThread维护着一个Worker的列表,SubThread有四种类型:无输入无输出\仅有输入\仅有输出\有输入有输出.

Thread---线程类一个Thread维护这一个SubThread的列表,这个列表中的所有subThread在这个Thread建的子线程中运行;

ThreadManager----线程管理类,一个ThreadManager管理了队列列表和线程列表;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值