精华内容
下载资源
问答
  • 包含非线性吸收和散射材料的串联结构中的非线性光学传播
  • Human pose estimation via Convolutional Part Heatmap Regression ECCV 2016 reading time : 2019/09/10 ...文章使用了CNN 级联结构学习人体部件关系和空间上下文信息,在眼中遮挡的情况下也能保持鲁...

    Human pose estimation via Convolutional Part Heatmap Regression


    ECCV 2016

    reading time : 2019/09/10

    paper address :https://arxiv.org/pdf/1609.01743.pdf


    文章使用了CNN 级联结构学习人体部件关系和空间上下文信息,在眼中遮挡的情况下也能保持鲁棒性。

    结构:detection-followed-by-regression CNN cascade. 第一部分输出部件检测热力图,第二阶段在这些热力图上进行回归。

    优点:可以有效的处理遮挡(因为第一阶段的部件检测的部件热力图的置信度在遮挡的地方比较低,这样可以知道后续的回归依靠上下文信息预测部件的位置)

    图片的上部分是第一阶段(部件检测网络)试图输出每个身体结构使用的是per-pixel sigmoid loss,它输出N parts heatmap。
    第二阶段是回归子网络(输入上部分网络的heatmap和原图像I)回归部件热力图。

     

    方法:Part detection subnetwork。使用的是per-pixel softmax loss。

              Regression subnetwork。使用的是L2 loss

     

    展开全文
  •  Cyclic Coordinate Descent (CCD) 是一个启发式的迭代搜索算法,它通过每一次只改变一个关节的参数来逐步减少位置误差和姿态误差,每个迭代过程包括一个从关节链结构的末端到基点的遍历过程。由于CCD 方法将多关节...

    转发(防止原网址丢失)https://www.cnblogs.com/2207-iHome/p/5955535.html

    逆运动学问题一般采用解析法和基于Jacobian矩阵的迭代方法,前者虽然精度高而且能达到实时的效果,但是随着关节的增多,自由度随着增多,数学建模也变得很困难,甚至不可解。而后者很难达到实时的效果。

    算法思想
      Cyclic Coordinate Descent (CCD) 是一个启发式的迭代搜索算法,它通过每一次只改变一个关节的参数来逐步减少位置误差和姿态误差,每个迭代过程包括一个从关节链结构的末端到基点的遍历过程。由于CCD 方法将多关节的关节链问题简化为单关节问题,可以用解析法处理,因此每一步的迭代可以相当快。当求得每个关节的参数 (转角)θ后,将其代入正向运动学方程求得末端效器和每个关节的位置。从运动链的末端开始 , 逐步改变每个关节的旋转角度。先是改变最末端的关节,末端关节到末段执行器的向量为图中蓝色线段,末端关节到目标点的向量为图中红色线段。求出 2 个向量的夹角α,让末端关节下的子链绕旋转轴转α角度,则末端执行器达到一个新位置。若没有达到目标,则继续取当前关节的上一关节,改变其旋转角度,直到选到根节点。若末端还没有达到目标位置,则又从末端关节开始新一轮运动,直到位置误差足够小或者到达了给定的循环次数。
    在这里插入图片描述

    在这里插入图片描述
    Python代码

    # -*- coding: utf-8 -*-
    import vrep             # V-rep library
    import sys      
    import time
    import math  
    
    # This function will convert an angle to the equivalent rotation in the range [-pi,pi]
    def ConfineAngle(angle):
        angle = angle % (2.0 * math.pi)
        if( angle < -math.pi ):
            angle += (2.0 * math.pi)
        if( angle > math.pi ):
            angle -= (2.0 * math.pi)
        return angle
    
    
    def CalcIK():
        id = linkNum - 1
        while id >= 0:
            retcode, J_pos = vrep.simxGetObjectPosition(clientID,joint_handle[id],-1,vrep.simx_opmode_oneshot_wait)
            retcode, tip = vrep.simxGetObjectPosition(clientID,tip_handle, -1, vrep.simx_opmode_oneshot_wait)
            
            # Get the vector from the current bone to the end effector position.
            curToEndX = tip[0] - J_pos[0]
            curToEndY = tip[1] - J_pos[1]
            curToEndMag = math.sqrt( curToEndX*curToEndX + curToEndY*curToEndY )
              
            # Get the vector from the current bone to the target position.
            curToTargetX = target[0] - J_pos[0];
            curToTargetY = target[1] - J_pos[1];
            curToTargetMag = math.sqrt(curToTargetX*curToTargetX+curToTargetY*curToTargetY)
              
            # Get rotation 
            endTargetMag = curToEndMag*curToTargetMag
            if endTargetMag <= 0.0001:    # prevent division by small numbers
                cosRotAng = 1
                sinRotAng = 0
            else:
                cosRotAng = (curToEndX*curToTargetX + curToEndY*curToTargetY) / endTargetMag
                sinRotAng = (curToEndX*curToTargetY - curToEndY*curToTargetX) / endTargetMag
            
            # Clamp the cosine into range when computing the angle(might be out of rangedue to floating point error)
            rotAng = math.acos(max(-1, min(1,cosRotAng)))
            if  sinRotAng < 0.0:
                rotAng = -rotAng
                    
            q[id] = q[id] + rotAng
            
            # Rotate the current link
            if(id == 0):
                vrep.simxSetJointPosition(clientID,joint_handle[id], ConfineAngle(q[id])+math.pi/2, vrep.simx_opmode_oneshot)
            else:
                vrep.simxSetJointPosition(clientID,joint_handle[id], ConfineAngle(q[id]), vrep.simx_opmode_oneshot)
            
            # Check for termination
            retcode, tip = vrep.simxGetObjectPosition(clientID,tip_handle, -1, vrep.simx_opmode_oneshot_wait)
            endToTargetX = (target[0] - tip[0])
            endToTargetY = (target[1] - tip[1])
            error = math.sqrt(endToTargetX*endToTargetX + endToTargetY*endToTargetY)
            if( error <= stol ):
                # We found a valid solution.
                return 1, error
            id = id - 1
            
        return 0, error  # cannot get to the target in this iteration
        
        
            
    if __name__ == "__main__":
        # Starts a communication thread with the server
        clientID = vrep.simxStart('127.0.0.1', 20001, True, True, 5000, 5)
        
        # clientID: the client ID, or -1 if the connection to the server was not possible
        if clientID != -1:  #check if client connection successful
            print 'Connected to remote API server'
        else:
            print 'Connection not successful'
            sys.exit('Could not connect')    # Exit from Python
    
    
        # Retrieves an object handle based on its name.
        errorCode,tip_handle = vrep.simxGetObjectHandle(clientID,'tip',vrep.simx_opmode_oneshot_wait)
        errorCode,target_handle = vrep.simxGetObjectHandle(clientID,'target',vrep.simx_opmode_oneshot_wait)
        errorCode,consoleHandle = vrep.simxAuxiliaryConsoleOpen(clientID,'info',4,1+4,None,None,None,None,vrep.simx_opmode_oneshot_wait)
        joint_handle = [-1,-1,-1]    # store the joint handles
        for i in range(3):
            errorCode,joint_handle[i] = vrep.simxGetObjectHandle(clientID,'j'+str(i+1),vrep.simx_opmode_oneshot_wait)
    
        ilimit = 100    # maximum iteration
        stol = 1e-2     # tolerance
        q = [0,0,0]     # initial joint value
        linkNum = 3     # number of links
        
        retcode, target = vrep.simxGetObjectPosition(clientID,target_handle, -1, vrep.simx_opmode_oneshot_wait)
        retcode, tip = vrep.simxGetObjectPosition(clientID,tip_handle, -1, vrep.simx_opmode_oneshot_wait)
        
        count = 0    
        isOK = 0
        while ( not isOK ):    
            isOK,err = CalcIK()
            
            vrep.simxAuxiliaryConsolePrint(clientID,consoleHandle,None,vrep.simx_opmode_oneshot_wait) 
            count = count + 1
            vrep.simxAuxiliaryConsolePrint(clientID,consoleHandle,str(count)+' iterations err:'+str(err),vrep.simx_opmode_oneshot_wait)   
            
            if count > ilimit:
                vrep.simxAuxiliaryConsolePrint(clientID,consoleHandle,"Solution wouldn't converge\r\n",vrep.simx_opmode_oneshot_wait)
                break
            #time.sleep(0.1)
        
        # Ends the communication thread. This should be the very last remote API function called on the client side
        vrep.simxFinish(clientID)
    
    展开全文
  • 使用两级结构简单的处理了类别不平衡的问题。 使用了两步级联对目标边界框参数进行回归。 使用两阶段特征去描述目标。 (Emmmmmm,这怎么就是优点了。) 2 相关工作 pass 3 网络结构 转移连接...

    Single-Shot Refinement Neural Network for Object Detection

    摘要

    1. 单级方法高效,两级方法准确。取两者之长处,克服其缺点,提出单级方法——Refine-Net。精准度高于两级方法。
    2. 两个内联模块组成
      1. anchor校准模块——过滤掉无效的anchor,缩小分类器的搜索空间。
      2. 物体检测模块——粗略地调整anchor的位置和大小,为后续的回归提供更好的初始化。
    3. 物体检测模块以上一个模块改善后的anchor作为输入,进一步提高回归和预测的效果。
    4. 设计了,传输连接块(transfer connection block),把特征从第一个模块传递到第二个模块。
    5. 多任务loss,实现end2end

    1 引言

    1. 两级方法框少,单级方法框多(anchor 多)。

    2. 单级方法精确度不好是因为,类别不平衡。什么叫做类别不平衡?

    3. RON在卷积特征图中使用对象先验约束,大幅度减小了物体搜索空间。

    4. Focal loss for dense object detection中使用——重新构造标准交叉熵来集中训练hard examples的一个稀疏集,并且将分配给分类良好的事例的损失降低到最小——的方法来解决这问题。

    5. Single Shot Scale-invariant Face Detector中提出max-out标签机制来解决这个问题。

    6. 两级方法有三个优点

      1. 使用两级结构简单的处理了类别不平衡的问题。
      2. 使用了两步级联对目标边界框参数进行回归。
      3. 使用两阶段特征去描述目标。

      (Emmmmmm,这怎么就是优点了。)

    2 相关工作

    pass

    3 网络结构

    1. 转移连接块(Transfer Connection Block)。
      1. 连接两个ARM和ODM
      2. 整合大尺度上下文信息,通过把高级特征加入被传送的特征中。反卷积高级特征来扩大feature map的大小,使用元素级的求和。
      3. 相加之后,在经过一个卷积层以保证特征可的可识别度。
    2. 两部级联回归
      1. 单级检测方法使用基于不同尺度特征层的单步回归来预测对象的位置和大小,对小物体不准确。
      2. ARM先调整anchor的大小和位置,为ODM提供更好的anchor初始化位置。
    3. 过滤错误anchor,先把容易分类的错误anchor过滤掉。
    展开全文
  • 本研究为一辆12m串联式混合动力城市客车开发了一套基于天然气发动机的APU,并优化了APU结构,在发动机和发电机之间增加离合器来保证APU起动的可靠平顺,最后对该APU系统进行了台架和实车试验,验证其性能。
  • CATSTRUCT连接或合并具有不同字段名的结构 X = CATSTRUCT(S1,S2,S3,...)将结构S1,S2,S3 ...合并为一个新结构X。X包含各种 结构中存在的所有字段。例如: A.name = 'Me' ; B.income = 99999 ; X = catstruct...

    CATSTRUCT连接或合并具有不同字段名的结构
    X = CATSTRUCT(S1,S2,S3,...)将结构S1,S2,S3 ...合并为一个新结构X。X包含各种
    结构中存在的所有字段 。例如:

    A.name = 'Me' ;
    B.income = 99999 ;
    X = catstruct(A,B)
    % -> X.name = 'Me' ;
    % X.income = 99999 ;

    如果字段名在结构之间不是唯一的(即,一个以上的结构中存在一个字段名),则仅使用具有该字段的最后一个结构中的值。在这种情况下,字段按字母顺序排序。也会发出警告。

    一个例子:

    S1.name = 'Me' ;
    S2.age = 20 ; S3.age = 30 ; S4.age = 40 ;
    S5.honest = false ;
    Y = catstruct(S1,S2,S3,S4,S5) % use value from S4

    输入可以是结构数组。所有结构应具有相同的大小。例如:

    C(1).bb = 1 ; C(2).bb = 2 ;
    D(1).aa = 3 ; D(2).aa = 4 ;
    CD = catstruct(C,D) % CD is a 1x2 structure array with fields bb and aa

    最后一个输入可以是字符串“ sorted”。在这种情况下,
    CATSTRUCT(S1,S2,...,'sorted')将按字母顺序对字段名称进行排序。要对结构A的字段名进行排序,可以使用CATSTRUCT(A,'sorted'),但我建议使用ORDERFIELDS。

    当没有要串联的内容时,结果将是一个空结构(没有字段的0x0结构数组)。

    注意
    要串联相似的结构数组,可以使用简单的串联:

    A = dir('*.mat') ; B = dir('*.m') ; C = [A ; B] ;
     

    完整资料领取:https://ai.52learn.online/9653

    展开全文
  • 设计了一种逆变器输出串联拓扑结构的氦氖激光器高压电源,并对电压电流双环控制策略进行了讨论。仿真和实验结果表明,该氦氖激光器高压电源满足了激光管点亮和正常工作的要求,并且能够实现自动稳流,在激光管加速...
  • 不可能并联连接继电器以提供大电流,串联使用两个电容器或两个开关类管子(IGBT,三极管,MOSFET等)不用于串联结构可解决耐压不足的问题。 高频开关电源能串联吗?串联是否有风险?  这样做的原因是,如果您希望...
  • 混合动力系统根据结构可以分为串联式、并联式和混联式。串联式混合动力系统发动机与车辆完全机械解耦,其运行工况不受汽车行驶工况的影响,可始终控制在优化的工作区稳定运行,最适合负载频繁变化的城市公交车。  ...
  • 本研究为一辆12m串联式混合动力城市客车开发了一套基于天然气发动机的APU,并优化了APU结构,在发动机和发电机之间增加离合器来保证APU起动的可靠平顺,最后对该APU系统进行了台架和实车试验,验证其性能。
  • 计算机模拟与X射线小角散射实验数据相结合研究FBP21串联WW结构域的溶液构象,彭俊辉,张志勇,包含柔性无序区域的生物大分子的结构解析在结构生物学中一直是一个极具挑战性的问题。通常多结构域蛋白结构域间的柔性对...
  • Java数据结构(4)链表——单向链表的串联 关于单链表的基本实现与插入节点和删除节点等常用方法,以及单链表反转的栈实现 可查看以下两篇文章: Java数据结构(4) 链表——单向链表 LeetCode-206.反转一个单链表 单向...
  • 大体上,加速器有两种,直线、圆形。...结构有点象U形、弓形。这样有什么好处?可以根据需要,不断的串联。  有人说在转向的时候,会损失能量。这没什么奇怪的,现在的圆形加速器照样损失。 ...
  • 标准 文案 第一章 绪论 逻辑结构线性结构2 线性表3 栈和队列4 数组和广义表5 串和非线性6 树7 图 8 查找 9 排序 存储结构顺序存储链式存储索引存储散列存储 顺序存储和链式存储的优缺点 顺序存储优点存取方式是随机...
  • 针对四薄片串联结构,利用ABCD传输矩阵方法对谐振腔进行优化设计。采用四片Nd:YAG薄片串联,谐振腔采用双凹对称腔,实现了2.15 kW的激光输出,验证了激光二极管(LD)抽运薄片激光器的定标放大能力。
  • 分析了这种串联校正方法的控制性能和噪声传递特性,在技术复杂性增加不多的条件下,这种串联结构的整体控制效果比单一系统改善了很多.用实际61单元自适应光学系统上的实验数据进行了仿真,验证了这种方法的有效性.
  • 0 引言  集成电路的生产成本以测试开发、测试时间以及测试设备为主。模拟电路一般只占芯片面积的10%左右,测试成本却占总测试成本的...本文从系统结构出发,针对串联结构电路提出一种可测性设计方案,增加较少的I/O口
  • 针对串联结构的模拟电路提出一种可测性设计结构,该结构大大提高了电路内系统模块的可测试性,减少了需要额外引出的I/ O 数,同时不随内部模块数的增加而增加,并且可以与数字电路的边界扫描技术相兼容,通过在...
  • 【模型解读】从LeNet到VGG,看卷积+池化串联的网络结构 从本篇开始,我们将带领大家解读深度学习中的网络的发展 这是深度学习模型解读第一篇,本篇我们将介绍LeNet,AlexNet,VGGNet,它们都是卷积+池化串联的基本...
  • 针对串联结构的模拟电路提出一种可测性设计结构,该结构大大提高了电路内系统模块的可测试性,减少了需要额外引出的I/O数,同时不随内部模块数的增加而增加,并且可以与数字电路的边界扫描技术相兼容,通过在...
  • 0 引言  集成电路的生产成本以测试开发、测试时间以及测试设备为主。模拟电路一般只占芯片面积的10%左右,测试成本却占总测试成本的...本文从系统结构出发,针对串联结构电路提出一种可测性设计方案,增加较少的I/O口
  • 在UNIX的文件系统中,文件的物理存储结构是以索引方式来组织的。如果将存储结构改为串联方式,即在每个数据块的末尾加上一个指向下一个数据块的指针,则文件系统应做哪些修改?
  •  由于电池是串联结构,所以通常的做法是采用105个独立的直流电源,把它们首尾相联地串起来完成,方法有2个:①市电经过隔离式AC-DC得到12V直流,然后给多个隔离式DC-DC(12V转5V)供电,5V电压再经过可调稳压器
  • 针对串联结构的模拟电路提出一种可测性设计结构,该结构大大提高了电路内系统模块的可测试性,减少了需要额外引出的I/ O 数,同时不随内部模块数的增加而增加,并且可以与数字电路的边界扫描技术相兼容,通过在...
  • Day20:串联所有单词的子串 给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。 注意子串要与 words 中的单词完全匹配,中间不能有其他字符,不需要...
  • 我们从简至繁形象地讲解串联型稳压电路的基本结构与工作。稳压电路为什么需要一个采样电路呢?为什么需要一个基准电压呢?稳压能力是怎么样衡量的呢?转换效率又是怎么样计算的呢? 想学习的话,点击我吧! 转载...
  • 与车型品牌无关,对于混合动力,纯电动汽车而言,主要总成结构都是异曲同工,只要一定的时间学习,大家会发现,混合动力控制中的电力驱动部分,纯电驱动系统,远比发动机,变速器系统简单的多。和大家一起分享学习,...
  • 数据结构算法操作试题(C++/Python):数据结构算法操作试题(C++/Python)——目录 1. 题目 leetcode 链接:https://leetcode-cn.com/problems/substring-with-concatenation-of-all-words/ 2. 解答 python:244ms, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,011
精华内容 804
关键字:

串联结构