运动人体姿态提取基于GA优化的从二维关节点坐标中估计三维人体姿势的MATLAB仿真
Posted fpga&matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运动人体姿态提取基于GA优化的从二维关节点坐标中估计三维人体姿势的MATLAB仿真相关的知识,希望对你有一定的参考价值。
1.软件版本
MATLAB2019a
2.部分核心代码
clc;
clear;
close all;
warning off;
addpath 'func\\'
addpath 'func\\GA_toolbox\\'
%初始spread
mu = 1;
%根据遗传算法进行参数的拟合
MAXGEN = 20;
NIND = 50;
Chrom = crtbp(NIND,1*10);
%14个变量的区间
Areas = [0.5;
1.5];
FieldD = [rep([10],[1,1]);Areas;rep([0;0;0;0],[1,1])];
LR = zeros(NIND,1);
MU2 = zeros(MAXGEN,1);
gen = 0;
for a=1:1:NIND
a
LR(a) = mu;
%计算对应的目标值
errs = func_obj(LR(a));
E = errs;
J(a,1) = E;
end
Objv = (J+eps);
gen = 0;
while gen < MAXGEN;
gen
P1 = 0.9;
P2 = 1-P1;
FitnV=ranking(Objv);
Selch=select('sus',Chrom,FitnV);
Selch=recombin('xovsp', Selch,P1);
Selch=mut( Selch,P2);
phen1=bs2rv(Selch,FieldD);
for a=1:1:NIND
if gen == 1
LR(a) = mu;
else
LR(a) = phen1(a,1);
end
%计算对应的目标值
errs = func_obj(LR(a));
E = errs;
JJ(a,1) = E;
end
Objvsel=(JJ+eps);
[Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);
gen=gen+1;
%保存参数收敛过程和误差收敛过程以及函数值拟合结论
MU2(gen) = mean(LR);
Error(gen) = mean(JJ);
deltaf = Error(gen);
end
MU_best = MU2(end);
MU_best
save best_mu.mat MU_best
% figure;
% plot(MU2(3:end),'b-o');
% xlabel('Iteration Number');
% ylabel('mu');
% grid on;
3.仿真结论
5.参考文献
A09-51
6.完整源码获得方式
方式1:微信或者QQ联系博主
方式2:订阅MATLAB/FPGA教程,免费获得教程案例以及任意2份完整源码
以上是关于运动人体姿态提取基于GA优化的从二维关节点坐标中估计三维人体姿势的MATLAB仿真的主要内容,如果未能解决你的问题,请参考以下文章