Merge remote-tracking branch 'origin/master'

This commit is contained in:
JiatongSun
2019-08-07 06:04:58 +08:00
29 changed files with 31895 additions and 41735 deletions

View File

@@ -124,6 +124,7 @@ private:
bool findLightBlobs(const cv::Mat &src, LightBlobs &light_blobs);
bool findArmorBox(const cv::Mat &src, ArmorBox &box);
bool matchArmorBoxes(const cv::Mat &src, const LightBlobs &light_blobs, ArmorBoxes &armor_boxes);
bool stateSearchingTarget(cv::Mat &src); // searching state主函数
bool stateTrackingTarget(cv::Mat &src); // tracking state主函数

View File

@@ -324,7 +324,7 @@ int Classifier::operator()(const cv::Mat &image) {
// cout << result << "==============" <<endl;
MatrixXd::Index minRow, minCol;
result.maxCoeff(&minRow, &minCol);
if(result(minRow, minCol) > 0.90){
if(result(minRow, minCol) > 0.50){
return minRow;
}else{
return 0;

View File

@@ -83,11 +83,11 @@ static double centerDistance(const cv::Rect2d &box) {
return dx * dx + dy * dy;
}
bool matchArmorBoxes(const cv::Mat &src, const LightBlobs &light_blobs, ArmorBoxes &armor_boxes, uint8_t color) {
bool ArmorFinder::matchArmorBoxes(const cv::Mat &src, const LightBlobs &light_blobs, ArmorBoxes &armor_boxes) {
armor_boxes.clear();
for (int i = 0; i < light_blobs.size() - 1; ++i) {
for (int j = i + 1; j < light_blobs.size(); ++j) {
if (!isCoupleLight(light_blobs.at(i), light_blobs.at(j), color)) {
if (!isCoupleLight(light_blobs.at(i), light_blobs.at(j), enemy_color)) {
continue;
}
cv::Rect2d rect_left = light_blobs.at(static_cast<unsigned long>(i)).rect.boundingRect();
@@ -101,13 +101,13 @@ bool matchArmorBoxes(const cv::Mat &src, const LightBlobs &light_blobs, ArmorBox
if (min_x < 0 || max_x > src.cols || min_y < 0 || max_y > src.rows) {
continue;
}
if ((max_y + min_y) / 2 < 120) continue;
if (state == SEARCHING_STATE && (max_y + min_y) / 2 < 120) continue;
if ((max_x - min_x) / (max_y - min_y) < 0.8) continue;
LightBlobs pair_blobs = {light_blobs.at(i), light_blobs.at(j)};
armor_boxes.emplace_back(
cv::Rect2d(min_x, min_y, max_x - min_x, max_y - min_y),
pair_blobs,
color
enemy_color
);
}
}
@@ -130,8 +130,7 @@ bool ArmorFinder::findArmorBox(const cv::Mat &src, ArmorBox &box) {
cv::waitKey(1);
}
CNT_TIME("boxes", {
if (!matchArmorBoxes(src, light_blobs, armor_boxes, enemy_color)) {
// cout << "Box fail!" << endl;
if (!matchArmorBoxes(src, light_blobs, armor_boxes)) {
return false;
}
});

View File

@@ -1,6 +1,7 @@
//
// Created by xinyang on 19-3-27.
//
#define LOG_LEVEL LOG_NONE
#include <log.h>
#include <options.h>
#include <armor_finder/armor_finder.h>
@@ -10,10 +11,12 @@ bool ArmorFinder::stateTrackingTarget(cv::Mat &src) {
auto pos = target_box.rect;
if(!tracker->update(src, pos)){
target_box = ArmorBox();
LOGW("Track fail!");
return false;
}
if((pos & cv::Rect2d(0, 0, 640, 480)) != pos){
target_box = ArmorBox();
LOGW("Track out range!");
return false;
}
@@ -25,8 +28,8 @@ bool ArmorFinder::stateTrackingTarget(cv::Mat &src) {
bigger_rect.width = pos.width * 2;
bigger_rect &= cv::Rect2d(0, 0, 640, 480);
if(show_armor_box)
showTrackSearchingPos("track", src, bigger_rect);
// if(show_armor_box)
// showTrackSearchingPos("track", src, bigger_rect);
cv::Mat roi = src(bigger_rect).clone();
@@ -42,27 +45,27 @@ bool ArmorFinder::stateTrackingTarget(cv::Mat &src) {
tracker = TrackerToUse::create();
tracker->init(src, target_box.rect);
}else{
// roi = src(pos).clone();
// if(classifier){
// cv::resize(roi, roi, cv::Size(48, 36));
// if(classifier(roi) == 0){
// target_box = ArmorBox();
// return false;
// }
// }else{
// cv::Mat roi_gray;
// cv::cvtColor(roi, roi_gray, CV_RGB2GRAY);
// cv::threshold(roi_gray, roi_gray, 180, 255, cv::THRESH_BINARY);
// contour_area = cv::countNonZero(roi_gray);
// if(abs(cv::countNonZero(roi_gray) - contour_area) > contour_area * 0.3){
// target_box = ArmorBox();
// return false;
// }
// }
// target_box.rect = pos;
// target_box.light_blobs.clear();
roi = src(pos).clone();
if(classifier){
cv::resize(roi, roi, cv::Size(48, 36));
if(classifier(roi) == 0){
target_box = ArmorBox();
LOGW("Track classify fail range!");
return false;
}
}else{
cv::Mat roi_gray;
cv::cvtColor(roi, roi_gray, CV_RGB2GRAY);
cv::threshold(roi_gray, roi_gray, 180, 255, cv::THRESH_BINARY);
contour_area = cv::countNonZero(roi_gray);
if(abs(cv::countNonZero(roi_gray) - contour_area) > contour_area * 0.3){
target_box = ArmorBox();
return false;
}
}
target_box.rect = pos;
target_box.light_blobs.clear();
target_box = ArmorBox();
}
return true;
}

View File

@@ -52,6 +52,7 @@ private:
bool is_chassis;//同时具有底盘和云台摄像头时,处于底盘摄像头击打过程
bool is_guessing;//当前处于发弹到新目标出现的过程则为true此时猜测下一个目标
bool is_predicting;//当前处于新目标出现到发弹的过程则为true此时正常击打
bool is_find_target;//判断当前是否找到了目标
bool energy_mode_init;//正在进行大小符判断
bool energy_rotation_init;//若仍在判断风车旋转方向则为true
bool manual_mark;//若操作手进行过手动标定则为true
@@ -91,6 +92,7 @@ private:
float sum_yaw, sum_pitch;//yaw和pitch的累计误差即PID中积分项
systime time_start_guess;
systime time_start_energy;
cv::RotatedRect centerR;//风车中心字母R的可能候选区
cv::RotatedRect flow_strip;//图像中所有流动条(理论上只有一个)
@@ -116,8 +118,6 @@ private:
std::queue<float> recent_target_armor_centers;//记录最近一段时间的装甲板中心,用于判断大符还是小符
void initEnergy();//能量机关初始化
void initEnergyPartParam();//能量机关参数初始化
void initRotation();//顺逆时针初始化

View File

@@ -17,6 +17,7 @@ using std::vector;
// ---------------------------------------------------------------------------------------------------------------------
struct EnergyPartParam {
int GRAY_THRESH;//二值化阈值
int SUB_GRAY_THRESH;//备用二值化阈值
int SPLIT_GRAY_THRESH;//通道分离二值化阈值
int FAN_GRAY_THRESH;//扇叶识别二值化阈值
int ARMOR_GRAY_THRESH;//装甲板识别二值化阈值

View File

@@ -53,9 +53,9 @@ void Energy::ArmorStruct(cv::Mat &src) {
// imshow("dilate_1", src);
erode(src,src, element_erode_1);
// imshow("erode_1", src);
erode(src,src, element_erode_2);
// erode(src,src, element_erode_2);
// imshow("erode_2", src);
erode(src,src, element_erode_3);
// erode(src,src, element_erode_3);
// imshow("erode_3", src);
// dilate(src, src, element_dilate_2);

View File

@@ -26,8 +26,16 @@ void Energy::clearAll() {
void Energy::initImage(cv::Mat &src) {
// imagePreprocess(src);
// if(show_process)imshow("img_preprocess", src);
systime cur_time;
getsystime(cur_time);
float interval = getTimeIntervalms(cur_time, time_start_energy);
if (src.type() == CV_8UC3)cvtColor(src, src, COLOR_BGR2GRAY);
if(interval > 3000 && !is_find_target){
threshold(src, src, energy_part_param_.SUB_GRAY_THRESH, 255, THRESH_BINARY);
}else{
threshold(src, src, energy_part_param_.GRAY_THRESH, 255, THRESH_BINARY);
}
if (show_process)imshow("bin", src);
if (show_energy)waitKey(1);
}

View File

@@ -17,6 +17,7 @@ void Energy::initEnergy() {
is_mark = false;
is_guessing = false;
is_predicting = true;
is_find_target = false;
energy_mode_init = true;
energy_rotation_init = true;
manual_mark = false;
@@ -71,7 +72,7 @@ void Energy::initEnergy() {
target_armors.clear();
flow_strips.clear();
all_target_armor_centers.clear();
while(!recent_target_armor_centers.empty())recent_target_armor_centers.pop();
while (!recent_target_armor_centers.empty())recent_target_armor_centers.pop();
}
@@ -82,7 +83,8 @@ void Energy::initEnergy() {
void Energy::initEnergyPartParam() {
// gimbal_energy_part_param_.GRAY_THRESH = 120;//home
// gimbal_energy_part_param_.GRAY_THRESH = 200;//official
gimbal_energy_part_param_.GRAY_THRESH =180;//game
gimbal_energy_part_param_.GRAY_THRESH = 180;//game
gimbal_energy_part_param_.SUB_GRAY_THRESH = 100;
gimbal_energy_part_param_.SPLIT_GRAY_THRESH = 180;
gimbal_energy_part_param_.FAN_GRAY_THRESH = 75;
gimbal_energy_part_param_.ARMOR_GRAY_THRESH = 80;
@@ -157,7 +159,6 @@ void Energy::initEnergyPartParam() {
gimbal_energy_part_param_.STRIP_ARMOR_DISTANCE_MAX = 52;
chassis_energy_part_param_.GRAY_THRESH = 120;//home
// chassis_energy_part_param_.GRAY_THRESH = 200;//official
// chassis_energy_part_param_.GRAY_THRESH = 225;

View File

@@ -53,6 +53,8 @@ void Energy::setBigEnergyInit() {
initEnergy();
initEnergyPartParam();
getsystime(time_start_energy);
is_big = true;
is_small = false;
is_gimbal = true;

View File

@@ -1,4 +1,4 @@
//
//
// Created by xixiliadorabarry on 1/24/19.
//
#include "energy/energy.h"

View File

@@ -54,7 +54,12 @@ void Energy::findTargetByIntersection() {
// 此函数在流动条区域内寻找装甲板
// ---------------------------------------------------------------------------------------------------------------------
bool Energy::findTargetInFlowStripFan() {
// Mat draw(480,640,CV_8UC3,Scalar(0,0,0));
for (auto &candidate_flow_strip_fan: flow_strip_fans) {
// Point2f vertices[4]; //定义矩形的4个顶点
// candidate_flow_strip_fan.points(vertices); //计算矩形的4个顶点
// for (int i = 0; i < 4; i++)
// line(draw, vertices[i], vertices[(i + 1) % 4], Scalar(0, 0, 255), 2);
int i = 0;
for (i = 0; i < armors.size(); ++i) {
std::vector<cv::Point2f> intersection;
@@ -67,9 +72,11 @@ bool Energy::findTargetInFlowStripFan() {
}
}
}
// imshow("draw",draw);
// waitKey();
// cout << "target armor cnt: " << target_armors.size() << endl;
if (target_armors.empty()) {
if (show_info)cout << "find target armor false" << endl;
if (show_info)cout << "t6find target armor false" << endl;
return false;
} else {
return true;

View File

@@ -79,12 +79,22 @@ void Energy::runBig(cv::Mat &gimbal_src) {
if (findArmors(gimbal_src) < 1)return;
if (show_energy)showArmors("armor", gimbal_src);
if (!findFlowStripFan(gimbal_src)) {
if (!findFlowStripWeak(gimbal_src))return;
if (!findFlowStripWeak(gimbal_src)){
is_find_target = false;
return;
}
} else {
if (show_energy)showFlowStripFan("strip fan", gimbal_src);
if (!findTargetInFlowStripFan()) return;
if (!findFlowStrip(gimbal_src))return;
if (!findTargetInFlowStripFan()) {
is_find_target = false;
return;
}
if (!findFlowStrip(gimbal_src)){
is_find_target = false;
return;
}
}
is_find_target = true;
if (!findCenterROI(gimbal_src))return;
if (show_energy)showFlowStrip("strip", gimbal_src);
if (!findCenterR(gimbal_src))return;
@@ -125,12 +135,22 @@ void Energy::runSmall(cv::Mat &gimbal_src) {
if (findArmors(gimbal_src) < 1)return;
if (show_energy)showArmors("armor", gimbal_src);
if (!findFlowStripFan(gimbal_src)) {
if (!findFlowStripWeak(gimbal_src))return;
if (!findFlowStripWeak(gimbal_src)){
is_find_target = false;
return;
}
} else {
if (show_energy)showFlowStripFan("strip fan", gimbal_src);
if (!findTargetInFlowStripFan()) return;
if (!findFlowStrip(gimbal_src))return;
if (!findTargetInFlowStripFan()) {
is_find_target = false;
return;
}
if (!findFlowStrip(gimbal_src)){
is_find_target = false;
return;
}
}
is_find_target = true;
if (show_energy)showTarget("target", gimbal_src);
fans_cnt = findFans(gimbal_src);
if (show_energy)showFans("fans", gimbal_src);

View File

@@ -24,20 +24,30 @@ void Energy::sendEnergy() {
} else if (ROBOT_ID == 7) {
float yaw_I_component = BIG_YAW_AIM_KI * sum_yaw;
float pitch_I_component = BIG_PITCH_AIM_KI * sum_pitch;
MINMAX(yaw_I_component, -3, 3);
MINMAX(pitch_I_component, -3, 3);
// MINMAX(yaw_I_component, -2, 2);
// MINMAX(pitch_I_component, -2, 2);
// MINMAX(yaw_I_component, -3, 3);
// MINMAX(pitch_I_component, -3, 3);
MINMAX(yaw_I_component, -2, 2);
MINMAX(pitch_I_component, -2, 2);
}
double tmp_yaw = yaw_rotation;
double tmp_pitch = pitch_rotation;
if (mcu_data.mark == 1) {
yaw_rotation = TRY_BIG_YAW_AIM_KP * yaw_rotation + TRY_BIG_YAW_AIM_KI * sum_yaw +
TRY_BIG_YAW_AIM_KD * (yaw_rotation - last_yaw);
pitch_rotation = TRY_BIG_PITCH_AIM_KP * pitch_rotation + TRY_BIG_PITCH_AIM_KI * sum_pitch +
TRY_BIG_PITCH_AIM_KD * (pitch_rotation - last_pitch);
} else {
yaw_rotation = BIG_YAW_AIM_KP * yaw_rotation + BIG_YAW_AIM_KI * sum_yaw +
BIG_YAW_AIM_KD * (yaw_rotation - last_yaw);
pitch_rotation = BIG_PITCH_AIM_KP * pitch_rotation + BIG_PITCH_AIM_KI * sum_pitch +
BIG_PITCH_AIM_KD * (pitch_rotation - last_pitch);
// cout << BIG_YAW_AIM_KP * yaw_rotation << '\t' << BIG_YAW_AIM_KI * sum_yaw << '\t'
}
// cout << "yaw: "<<BIG_YAW_AIM_KP * yaw_rotation << '\t' << BIG_YAW_AIM_KI * sum_yaw << '\t'
// << BIG_YAW_AIM_KD * (yaw_rotation - last_yaw) << endl;
// cout << "pitch: "<<BIG_PITCH_AIM_KP * pitch_rotation << '\t' << BIG_PITCH_AIM_KI * sum_pitch << '\t'
// << BIG_PITCH_AIM_KD * (pitch_rotation - last_pitch) << endl;
last_yaw = tmp_yaw;
last_pitch = tmp_pitch;
if (ROBOT_ID == 7) {
@@ -57,8 +67,14 @@ void Energy::sendEnergy() {
} else if (is_small) {
double tmp_yaw = yaw_rotation;
double tmp_pitch = pitch_rotation;
if (mcu_data.mark == 1) {
yaw_rotation = TRY_SMALL_YAW_AIM_KP * yaw_rotation + TRY_SMALL_YAW_AIM_KD * (yaw_rotation - last_yaw);
pitch_rotation =
TRY_SMALL_PITCH_AIM_KP * pitch_rotation + TRY_SMALL_PITCH_AIM_KD * (pitch_rotation - last_pitch);
} else {
yaw_rotation = SMALL_YAW_AIM_KP * yaw_rotation + SMALL_YAW_AIM_KD * (yaw_rotation - last_yaw);
pitch_rotation = SMALL_PITCH_AIM_KP * pitch_rotation + SMALL_PITCH_AIM_KD * (pitch_rotation - last_pitch);
}
if (ROBOT_ID == 7) {
MINMAX(yaw_rotation, -6, 6);
MINMAX(pitch_rotation, -6, 6);

View File

@@ -30,10 +30,10 @@ using namespace std;
McuData mcu_data = { // 单片机端回传结构体
0, // 当前云台yaw角
0, // 当前云台pitch角
ARMOR_STATE, // 当前状态,自瞄-大符-小符
SMALL_ENERGY_STATE, // 当前状态,自瞄-大符-小符
0, // 云台角度标记位
1, // 是否启用数字识别
ENEMY_BLUE, // 敌方颜色
ENEMY_RED, // 敌方颜色
0, // 能量机关x轴补偿量
0, // 能量机关y轴补偿量
};
@@ -42,7 +42,7 @@ WrapperHead *video_gimbal = nullptr; // 云台摄像头视频源
WrapperHead *video_chassis = nullptr; // 底盘摄像头视频源
Serial serial(115200); // 串口对象
uint8_t last_state = INIT_STATE; // 上次状态,用于初始化
uint8_t last_state = INIT_STATE; // 上次状态,用于初始化y
// 自瞄主程序对象
ArmorFinder armor_finder(mcu_data.enemy_color, serial, PROJECT_DIR"/tools/para/");
// 能量机关主程序对象
@@ -66,8 +66,8 @@ int main(int argc, char *argv[]) {
video_gimbal = new CameraWrapper(ARMOR_CAMERA_EXPOSURE, ARMOR_CAMERA_GAIN, 2/*, "armor"*/);
video_chassis = new CameraWrapper(ENERGY_CAMERA_EXPOSURE, ENERGY_CAMERA_GAIN, 2/*, "energy"*/);
} else {
video_gimbal = new VideoWrapper(PROJECT_DIR"/5.avi");
video_chassis = new VideoWrapper(PROJECT_DIR"/5.avi");
video_gimbal = new VideoWrapper("/home/sun/桌面/video_8.7/round1-8-5-7-small.avi");
video_chassis = new VideoWrapper("/home/sun/桌面/video_8.7/round1-8-5-7-small.avi");
}
if (video_gimbal->init()) {
LOGM("video_gimbal source initialization successfully.");
@@ -93,7 +93,7 @@ int main(int argc, char *argv[]) {
bool ok = true;
cout << "start running" << endl;
do {
auto curr_state = mcu_data.state;
char curr_state = mcu_data.state;
CNT_TIME("Total", {
if (curr_state == BIG_ENERGY_STATE) {//大能量机关模式
if (last_state != BIG_ENERGY_STATE) {//若上一帧不是大能量机关模式,即刚往完成切换,则需要初始化

View File

@@ -6,6 +6,7 @@
#define _LOG_H_
#include <stdio.h>
#include <systime.h>
/************** Define the control code *************/
#define START_CTR "\033[0"
@@ -130,28 +131,22 @@
/******************** the time counter API ************************/
#if !defined(DO_NOT_CNT_TIME) && LOG_LEVEL > LOG_NONE
#ifdef Windows
#include <Windows.h>
#define CNT_TIME(tag, codes, ...) do{ \
static SYSTEMTIME ts, te; \
GetLocalTime(&ts); \
class TimeCounter{ \
private: \
systime begin; \
public: \
TimeCounter(){ \
getsystime(begin); \
} \
~TimeCounter(){ \
systime end; \
getsystime(end); \
LOGM(tag": %.1lfms", ##__VA_ARGS__, getTimeIntervalms(end, begin)); \
} \
} time_cnt; \
codes; \
GetLocalTime(&te); \
LOGM(tag": %dms", (te.wSecond-ts.wSecond)*1000+(te.wMilliseconds-ts.wMilliseconds)); \
}while (0)
#elif defined(Linux)
#include <sys/time.h>
#define CNT_TIME(tag, codes, ...) do{ \
static timeval ts, te; \
gettimeofday(&ts, NULL); \
codes; \
gettimeofday(&te, NULL); \
LOGM(tag": %.1lfms", ##__VA_ARGS__, (te.tv_sec-ts.tv_sec)*1000.0+(te.tv_usec-ts.tv_usec)/1000.0); \
}while (0)
#else
#warning "Unsupport plantform for CNT_TIME"
#define CNT_TIME(tag, codes, ...) codes
#endif
#else
#define CNT_TIME(tag, codes, ...) codes
#endif

View File

@@ -52,8 +52,8 @@ def save_para(folder, paras, names, info):
STEPS = 100000
BATCH = 40
LEARNING_RATE_BASE = 0.0002
BATCH = 50
LEARNING_RATE_BASE = 0.0005
LEARNING_RATE_DECAY = 0.99
MOVING_AVERAGE_DECAY = 0.99
@@ -98,7 +98,7 @@ def train(dataset, show_bar=False):
_, loss_value, step = sess.run(
[train_op, loss, global_step],
feed_dict={x: images_samples, y_: labels_samples, keep_rate: 0.3}
feed_dict={x: images_samples, y_: labels_samples, keep_rate: 0.4}
)
if step % 500 == 0:

View File

@@ -41,7 +41,7 @@ CONV2_OUTPUT_CHANNELS = 8
CONV3_KERNAL_SIZE = 3
# 第三层卷积输出通道数
CONV3_OUTPUT_CHANNELS = 16
CONV3_OUTPUT_CHANNELS = 12
# 第一层全连接宽度
FC1_OUTPUT_NODES = 60
@@ -77,7 +77,6 @@ def forward(x, regularizer=None, keep_rate=tf.constant(1.0)):
conv2 = tf.nn.relu(tf.nn.bias_add(conv2d(pool1, conv2_w), conv2_b))
pool2 = avg_pool_2x2(conv2)
print("conv2: ", conv2.shape)
print("pool2: ", pool2.shape)
vars.extend([conv2_w, conv2_b])
vars_name.extend(["conv2_w", "conv2_b"])
nodes.extend([conv2, pool2])

View File

@@ -5,5 +5,5 @@ echo "echo sjturm | sudo -S cpufreq-set -g performance" >> $2/startup-run
echo "mkdir $1/Mark" >> $2/startup-run
echo "mkdir $1/gimbal_video" >> $2/startup-run
echo "mkdir $1/armor_box_photo" >> $2/startup-run
echo "gnome-terminal -- bash -c \"echo sjturm | sudo -S $1/tools/monitor.sh \\\"$2/run --run-with-camera --save-video --wait-uart --save-labelled-boxes\\\"\"" >> $2/startup-run
echo "gnome-terminal -- bash -c \"echo sjturm | sudo -S $1/tools/monitor.sh \\\"$2/run --run-with-camera --save-video --save-mark --wait-uart --save-labelled-boxes\\\"\"" >> $2/startup-run
chmod +x $2/startup-run

View File

@@ -1,5 +1,5 @@
4
0.021338634
-0.28292254
0.39307028
0.46493095
1.0091771
0.75360304
0.32836446
0.27722517

View File

@@ -2,303 +2,303 @@
4
5
5
-0.13702177
0.21050254
0.36467823
0.5402022
0.40832496
0.1387463
0.19035818
0.5167714
0.4201423
0.5083453
-0.051313818
0.3746486
0.63895
0.63608116
0.5083911
0.030827409
0.27007273
0.47528267
0.48452747
0.34628776
-0.012611773
0.14452507
0.24958582
0.24960107
0.09575767
0.4102461
0.16927694
0.25459746
0.14307313
0.22898436
0.27788675
0.18775325
0.17099449
0.29020998
0.12541296
0.24403335
0.20092988
0.2530348
0.33398342
0.21587689
0.27797526
0.18172115
0.29734236
0.3033162
0.16939764
0.34889936
0.48381668
0.48425403
0.3000259
0.25757793
0.11239407
0.386269
0.37761775
0.3539963
0.14623448
0.38261685
0.27638507
0.2794403
0.40329304
0.33892003
0.24993245
0.37628546
0.33176056
0.50890356
0.2852119
0.22748284
0.39088395
0.4474231
0.39215663
0.28798044
0.17954169
0.42095885
0.3309427
0.39483225
0.35767367
-0.34148782
0.02509864
0.25426164
0.15086658
-0.057787858
-0.2226174
0.24070105
0.27239412
0.37470704
0.1674131
0.09444013
0.27578765
0.35690555
0.28290647
0.12817492
0.03777765
0.09609396
0.3188331
0.23712997
0.13440847
-0.25731155
0.04675058
0.09360328
-0.02120951
-0.06166972
0.060209647
0.5212034
0.6552245
1.1144388
0.87935585
0.24459931
0.82035065
1.1500704
1.2405574
1.1069012
0.18140063
0.8443062
1.2205642
1.1933382
0.90612733
0.32195792
0.6922394
1.0292921
1.0286875
0.94453853
0.24980143
0.5049856
0.74141055
0.7709616
0.5752724
0.17445572
0.07466022
-0.015276491
-0.04395921
-0.008553515
0.029532298
0.06765997
0.03481855
0.04099438
-0.044199117
0.16554591
0.06800105
-0.03995652
-0.006857331
0.075305216
0.3299388
0.11230784
0.20430015
0.039782282
0.111880876
0.13587818
0.1557568
0.16976745
0.14694355
0.32170033
-0.18491521
-0.15177341
0.035023104
0.048158385
0.29693007
-0.006829154
-0.046136864
0.1754336
0.24777764
0.2627956
0.13168007
-0.019214094
0.24687423
0.2204638
0.19275916
0.18035437
0.06386187
0.37380666
0.5433795
0.376532
0.20183952
0.3305568
0.33506978
0.43323225
0.3904595
0.33164555
0.74478495
1.172562
1.0576042
0.67135817
0.69610703
1.0034271
1.1407355
1.1464756
0.8193199
0.8561313
1.1586075
1.4729795
1.2343186
0.91004986
0.5244973
1.1102248
1.1765453
0.95950526
0.68363196
0.4048567
0.711899
0.9118936
0.52612954
0.39844343
-0.24287723
-0.052871097
0.07779769
0.11068013
0.1380818
-0.22056513
0.09362486
0.24791956
0.4390582
0.39413136
0.05775401
0.21399756
0.37228948
0.46872202
0.2922827
-0.10300668
0.03232777
0.34301633
0.29448983
0.044470448
-0.19424956
0.073454
-0.07377538
-0.01566619
-0.2193558
-0.48625758
-0.38693368
-0.51900584
-0.33943936
-0.28173432
-0.4239597
-0.43534985
-0.3587125
-0.33114514
-0.41164148
-0.44184446
-0.37156865
-0.26118872
-0.27542785
-0.2835131
-0.27856454
-0.30060688
-0.30000862
-0.26170778
-0.050582133
-0.17061539
-0.06258438
-0.31230104
-0.05868557
-0.16282676
-0.19877611
-0.41529313
-0.2597882
-0.29055542
-0.24465893
-0.37368765
-0.2763039
-0.16017292
-0.15159445
-0.09162989
-0.08486519
-0.214406
0.036507495
-0.18162069
-0.12156283
0.13781281
0.14959772
0.13058542
-0.04205288
-0.025140587
-0.031447563
-0.023655139
0.16892198
0.24700916
-0.05444677
0.4252524
1.0224841
1.0721366
1.0220312
0.62805945
0.60496604
1.2682245
1.3119446
1.2881455
0.93665457
0.7735541
1.3761095
1.3804561
1.3370488
0.932327
0.8111979
0.8535967
1.2361982
0.90493304
0.70505273
0.48489514
0.7006285
0.74297637
0.76787454
0.35748747
-0.17910863
-0.4318622
-0.09879855
-0.2527657
-0.003185846
-0.24181125
-0.22703612
-0.15493874
-0.2673384
-0.1819421
-0.31178552
-0.28891796
-0.11877854
-0.042131122
0.026375793
-0.19158052
-0.29840896
-0.24933136
0.039657716
-0.055364735
-0.2232829
-0.16785903
-0.08067796
-0.14220497
-0.052384917
0.2925089
0.4120845
0.74341506
0.46763578
0.05146623
0.12698977
0.37261236
0.3935419
0.25898162
0.09589428
-0.07213641
-0.038921334
-0.12157692
-0.15212508
-0.2717337
-0.47516355
-0.46624485
-0.39659253
-0.44488105
-0.3394327
-0.7773469
-0.7779741
-0.6962402
-0.6390625
-0.4063025
-0.3319438
-0.172019
-0.1487266
-0.059425462
-0.5637472
-0.4794723
-0.17114113
-0.124104835
-0.1422774
-0.46598396
-0.24039365
-0.097418234
-0.16818337
-0.11984148
-0.33931422
-0.44539857
-0.24116643
-0.29605874
-0.33807465
-0.28152493
-0.56546307
-0.39060664
-0.35741603
-0.35687912
-0.46636894
0.14518812
0.4821144
0.5773368
0.47862282
-0.0036273596
0.30863026
0.7124475
0.6963923
0.5037382
0.06670285
0.2502652
0.6361536
0.6030103
0.39931953
0.010197
0.005658264
0.3676686
0.40003213
0.123263404
-0.21369831
-0.17989804
0.121360116
0.091518335
-0.056652848
-0.22265385
-0.18409944
-0.09295049
-0.2132571
-0.032158993
0.12517115
-0.13795944
-0.06709729
0.039619576
-0.0006297424
0.06414801
-0.13557242
-0.12444049
0.052859586
0.08972692
0.08433124
-0.25193617
-0.034116596
0.10257884
-0.0813059
0.14102417
-0.01561462
-0.12441367
-0.06327993
0.07099745
0.092985496
1.2042538
1.6012002
1.4479427
1.420359
0.9067958
0.90693825
0.99859256
1.1281759
0.92514807
0.6260572
0.3877627
0.80519366
0.78809965
0.40321863
0.32943872
-0.0053374222
0.18448626
0.107170284
0.10005993
-0.16069353
-0.7013289
-0.5937218
-0.39329964
-0.54779977
-0.26227468
0.18688947
0.5373189
0.4971937
0.36489144
0.20950799
0.29940185
0.70193636
0.6888256
0.5748779
0.3576433
0.4846778
0.4782251
0.595415
0.46374205
0.23162521
0.1836071
0.6178091
0.4126544
0.30283985
0.069174975
0.20002016
0.33548093
0.4232866
0.2476043
0.055189032
0.64387447
0.7521561
0.9530232
0.64297724
0.37787715
0.99285096
1.3132018
1.341937
0.8890728
0.18775573
1.1528043
1.5992627
1.3921872
1.0223932
0.26917282
1.0887872
1.2642268
1.1114879
0.99118245
0.18824795
0.72434646
0.9969674
0.75941694
0.2788769
0.06330827
0.3379218
0.38304228
0.15966837
0.06552013
0.22279483
0.47186407
0.3023434
0.15868987
0.36460325
0.41104573
0.54084533
0.4334561
0.066557705
0.26149863
0.3445064
0.29846537
0.29767045
0.23790114
0.2407646
0.18820773
0.6914044
0.3369548
0.06690724
0.33968616
0.17404509
0.30407158
0.62336475
0.74080175
0.771039
0.32719693
0.05196804
0.5231301
0.52714443
0.4547435
0.23422526
-0.11604373
0.08960786
0.19092675
0.025418878
-0.06518472
-0.4900632
-0.28887513
-0.38429824
-0.14329949
-0.45585087
-1.1915381
-0.9375932
-0.88366616
-0.69623137
-0.753396
0.38348418
0.48294187
0.81900734
0.5752385
0.44599837
0.46160296
0.50811654
0.84765434
0.83705807
0.49037558
0.45781556
0.66121346
0.74837935
0.826023
0.4797475
0.55850804
0.7921718
0.79744506
0.6750988
0.50738907
0.45437953
0.3676156
0.39970928
0.61358935
0.36798403
-0.3223326
0.3191823
0.7694816
0.64701074
0.27089536
-0.05426875
0.6930354
0.86902654
0.82074445
0.24869677
0.34902167
0.67622364
0.9523535
0.8549106
0.33760756
0.02921901
0.62082803
1.030941
0.8063479
0.5262463
0.06173069
0.54954135
0.57165706
0.5380805
0.2607899

View File

@@ -1,9 +1,9 @@
8
-0.552405
-0.26979932
0.94369894
-0.000667131
0.34170008
0.34912753
1.0474143
-0.39599916
0.026202574
-0.3116931
0.18919766
1.4346299
1.3632779
0.086737305
-0.49552673
0.756849

View File

@@ -2,291 +2,291 @@
8
3
3
-0.32726097
-0.0048638796
-0.32321292
0.13319272
0.012297149
-0.10513384
0.19061892
0.4101147
0.08123453
0.2558452
0.38487348
0.27844468
0.5007668
0.550769
0.114901684
0.4507436
0.3535035
0.3076304
0.1479239
0.09292402
-0.4041034
0.38143447
-0.069753066
-0.27865863
0.16946647
-0.045003142
-0.111094154
0.0009370859
-0.09843764
-0.0066839033
0.015192114
0.18330237
-0.091846526
-0.093767345
-0.036863815
-0.023914052
-0.10209015
-0.02862692
-0.11142951
-0.21141496
-0.2307057
-0.06516248
0.020834371
-0.031347763
-0.039252505
-0.27983642
-0.03970919
0.20645477
-0.12705953
0.33821788
0.13405067
0.2445887
0.44188142
-0.0038982031
-0.13979559
-0.20385139
0.117509395
-0.005715718
-0.080601916
0.09685326
-0.066362664
0.008437556
-0.10210685
0.7539002
0.6952307
0.28752255
0.80205274
0.4766971
0.17297089
0.2882549
0.098174155
0.0020970956
0.19470583
0.09950261
-0.09694061
0.29215577
0.12278695
-0.037522893
0.17075685
0.33552113
0.13674323
-0.07577733
0.31630826
0.34378958
-0.15304123
0.12785366
0.086952396
-0.31330797
-0.001654931
0.12654537
-0.86122245
-0.68093973
-0.22129026
-0.8326889
-0.7481235
-0.14792675
-0.8588496
-0.66041034
0.013661266
-0.06239793
-0.1387425
-0.059888713
0.03536964
0.062088303
0.011600256
0.08357481
0.025985636
-0.057800315
-0.8058461
-0.8655415
-0.8878307
-1.0268383
-0.8895686
-0.870193
-0.92634207
-0.7991516
-0.84145725
0.22383228
0.04903484
-0.65011233
0.34974617
-0.22466241
-0.44892547
0.043155216
-0.32732686
-0.85459894
-0.11874903
-0.47783476
-0.5260095
-0.29938856
-0.46704254
-0.4449409
-0.48969412
-0.42000425
-0.5598123
-0.5296795
-0.8521746
-0.67211694
-0.80781704
-0.94732684
-0.57418257
-0.77279216
-0.6926591
-0.45179915
-0.19991966
-0.0625157
-0.5307898
0.15330955
-0.0213713
-0.26861903
0.23867297
0.22922835
0.16720639
0.59522456
0.6892708
0.3867164
0.44517902
0.47505063
0.4654438
0.22130506
0.387733
0.19797981
0.33539343
0.24232638
-0.10490481
0.13891292
-0.076867625
0.12750566
0.05550657
-0.02150966
0.17238574
-0.092911184
-0.16721976
0.009027423
-0.19101651
-0.029071758
-0.069601566
-0.09827422
-0.08287598
-0.022561137
-0.22663862
-0.47552612
-0.17845595
-0.46161267
-0.43686563
-0.22974852
-0.36118308
-0.2722955
-0.14243911
0.1847469
0.34657878
0.42981294
0.18554401
0.33521423
0.27269012
0.45541444
0.41730106
0.16927144
0.22624063
0.30033535
0.116721414
0.12135912
0.284733
0.3730829
0.09463956
0.22056812
0.1317617
0.15912417
0.19767475
-0.22404052
-0.23200901
-0.36393234
-0.4101935
-0.24772424
-0.6499398
-0.6035362
-0.13825883
-0.21811308
-0.31700268
0.10087058
0.0777835
-0.14945805
0.26013204
0.35406354
0.11850203
0.024606973
0.12879103
-0.095771246
0.35835484
0.28432438
0.17027797
0.04460398
0.2106631
-0.09346488
0.24641933
0.034816552
-0.12438573
0.54997367
0.31058714
-0.21279928
0.17215224
0.010456621
0.013317943
-0.008930922
-0.030233396
0.008761597
0.03480156
0.037845217
-0.031645544
-0.08237756
0.0050705066
-0.06625244
0.3866179
0.29360098
0.35600394
0.2591941
0.18063474
0.38357696
0.23095702
0.17364517
0.15391372
-0.5093487
-0.22992536
0.27934852
-0.2374083
0.039487418
0.3051096
-0.056948155
0.24535167
0.19844466
-0.10930642
-0.05106426
0.0033689137
-0.09231472
0.27303606
0.1450588
0.102419965
0.22690499
0.26383835
0.6005564
0.97944826
0.6462157
0.5086828
0.93819946
0.600236
0.19520918
0.19155432
-0.1607842
-0.5876183
-0.19599253
-0.18389738
-0.18267761
-0.23633389
-0.04682166
-0.40504217
-0.44397476
-0.27349973
-0.40846175
-0.4691861
-0.3045311
-0.29840764
-0.27123016
-0.4369171
-0.35068136
-0.33959505
-0.31722164
1.1700047
0.96824783
0.76443076
1.3795062
1.2857901
1.0736752
1.4629307
1.4044695
0.9955982
0.05907464
0.2795705
0.39697975
0.2549381
0.60816526
0.4124389
0.36631292
0.5501452
0.33622307
0.7931202
0.7949542
0.73936164
0.5743847
0.71832895
0.81374323
0.6963634
0.8371282
0.56526226
0.9787859
0.83491445
0.44296062
0.94113594
0.69709206
0.4782157
0.8485452
0.55218476
0.4278612
-0.06284774
0.18234941
0.24526665
0.06594536
0.18546979
0.12066008
-0.0076901093
0.051020034
-0.055962052
-0.12366264
-0.14234143
0.17451781
-0.22803047
-0.20144975
0.12696944
-0.14333135
-0.1437315
0.21859623
-0.21199474
0.31007212
0.25671488
1.408449
1.5996349
0.88486844
0.98761475
1.0329992
0.048192427
0.13677816
0.78293663
0.5845249
1.1826371
1.3678374
0.68835425
0.9163878
0.9432015
0.1514942
-0.58621776
-0.9074466
-1.0663811
-0.5192979
-0.4392078
-0.49464688
-0.04917721
-0.0898093
-0.002063775
-0.6530971
-0.8650723
-0.15201817
-0.662856
-0.4991983
0.033105765
-0.06016163
0.1369374
0.54410416
0.74020576
0.8116994
0.6566733
0.12614372
0.26043043
0.6657985
-0.9273197
-0.29182023
0.33309653
-0.13350366
-0.025515141
-0.2618016
0.1378129
0.32712722
-0.00896652
0.18393469
0.22865728
0.15459397
-0.7891325
-0.56411403
-0.490716
-0.29529417
0.052956425
-0.18933602
0.17368089
0.7078992
0.19030796
0.117120035
-0.07937462
-0.08528555
0.6917905
0.3124146
-0.155659
0.8515986
0.391661
-0.35105205
0.36785692
0.78276825
0.5736331
0.45050114
0.632049
0.18528885
-0.28921905
-0.13410094
-0.2486394
0.22444211
0.58606184
0.1686837
0.5042612
0.5626466
0.069058456
-0.19829905
-0.22421858
-0.37489322
0.65224594
0.36528566
0.20434256
0.67804146
0.5590503
0.5316622
0.8001822
0.55346966
0.5594616
-1.0018997
-0.6948151
-0.3650827
-0.5490125
-0.2150339
-0.022374723
0.19507067
0.044642895
0.2996126
-0.22961429
0.01102189
0.3954487
-0.5650167
-0.38508832
0.023391092
-0.5365521
-0.4556712
0.13194127
0.6071606
0.64683765
0.5142018
0.40851134
0.6598552
0.5357405
0.18351004
0.47842136
0.20090215
-0.20569381
0.38125056
0.6450566
0.26821902
0.7373958
0.68612444
0.36050576
0.75789505
0.49642104
-0.011626831
-0.1979711
-0.4488892
0.38609207
0.2613292
-0.42952508
0.2891504
0.18908556
-0.37244886
0.2236111
0.66138303
0.19163151
0.11937501
0.3223467
-0.08333808
-0.5719641
-0.14329845
-0.38086072
0.2769
0.7174463
0.15335132
0.13236901
0.38319302
-0.007969958
-0.3730158
-0.36093494
-0.60057336
-0.15497702
-0.23942983
-0.5204783
-0.16401294
-0.059771504
-0.084638834
0.035930395
-0.0141087165
-0.117851615
-0.21827415
-0.28591266
0.06702814
0.030618614
-0.042717144
0.2789024
0.52211994
0.53033245
0.37224737
-0.0526181
-0.043408945
0.33493653
-0.5254046
-0.31084153
0.4049077
-0.12868829
-0.3993636
0.21662578
-0.10966159
0.15466465
0.05502151
-0.10105954
-0.00959886
-0.10704365
-0.257624
-0.0051406575
0.09486415
-0.43677238
0.10847841
-0.1219879
-0.045069937
0.37931734
0.06788831
-0.17192203
0.1710858
0.20997812
0.5169904
0.22955295
-0.25663316
0.74007404
0.31821302
-0.52590984
0.5026585
0.20840414
-0.43595257

View File

@@ -1,17 +1,13 @@
16
0.18449903
0.58430743
0.26267084
0.15215518
0.17875981
0.26728117
0.38014928
0.32304344
0.20345993
0.051697854
0.08828824
0.17220211
0.30045128
0.7321825
0.32318887
0.64071155
12
0.5867652
0.15327758
0.64787906
0.58204657
0.5221705
0.8151968
0.9605676
0.834003
0.5979789
0.37113577
0.5936071
0.3470704

File diff suppressed because it is too large Load Diff

View File

@@ -1,61 +1,61 @@
60
-0.039159678
0.029541148
0.46619368
0.39806518
0.17867364
-0.17273445
0.049488015
0.3954818
0.006907484
-0.65876406
0.20659731
0.33826667
0.102885984
-0.3502921
0.25347513
-0.26725784
0.07709998
-0.04353281
-0.18644187
0.3938342
-0.025656475
0.4239288
-0.19141191
-0.4522367
-0.11141183
-0.4640547
0.5636213
-0.089869745
0.21497346
0.20390627
-0.25163013
-0.46159822
0.08521984
0.04547417
0.22536296
0.26892447
0.24108179
0.3650224
-0.12725092
0.35256448
-0.21991397
-0.0061194855
-0.029125368
0.120918676
-0.18983841
-0.46133506
-0.12631308
0.26642975
0.12274385
0.060510684
-0.037945624
0.40486556
0.09022891
-0.100966334
0.114066094
0.29244682
0.16922234
-0.060573082
0.5995527
-0.091098264
0.06672339
-0.62850684
0.7643405
0.16144127
0.38490072
0.5127662
0.90500265
-0.06561441
0.14526463
0.7058402
-0.26682273
-0.2369063
0.4072475
0.594691
0.2766667
0.60496056
0.2000673
0.052073605
-0.02876539
0.39143658
-0.03805901
0.44951624
0.66400784
0.16063774
0.60259444
-0.33618698
-0.016615057
-0.10777226
0.43350288
0.18008152
0.1165595
0.82109
0.5088409
0.73914206
-0.23127939
0.27522832
0.6027811
0.40576613
0.37846214
0.39786285
-0.09924524
-0.455666
0.22258674
0.21012957
0.41304824
0.3195822
-0.1443478
0.14014497
0.025428297
0.09779115
0.23838183
-0.3749009
-0.029535912
-0.15013477
0.46715313
-0.15482181
0.18933043
0.66587496
-0.50574833
-0.20339602

File diff suppressed because it is too large Load Diff

View File

@@ -1,16 +1,16 @@
15
0.04959415
-0.15338269
-0.30548725
-0.21866404
-0.4217409
-0.032290496
0.31138745
0.1469873
0.07883086
-0.11234011
-0.15009451
0.19498166
-0.13619435
0.37006247
0.41003358
0.32660043
-0.0924944
-0.4694074
-0.2882384
-0.526463
-0.1974732
0.55986786
0.12076137
0.11251404
-0.35831028
-0.591029
0.23973973
-0.38151956
0.34890035
0.6926345

File diff suppressed because it is too large Load Diff