更新CNN参数,使用CNN判断tracking是否跟丢。

This commit is contained in:
xinyang
2019-04-30 20:20:35 +08:00
parent e3098fe3fa
commit ee83a373d3
16 changed files with 12416 additions and 9793 deletions

View File

@@ -8,20 +8,12 @@
#include <armor_finder/armor_finder.h> #include <armor_finder/armor_finder.h>
ArmorFinder::ArmorFinder(EnemyColor color, Uart &u, string paras_folder) : ArmorFinder::ArmorFinder(EnemyColor color, Uart &u, string paras_folder) :
uart(u), uart(u),
enemy_color(color), enemy_color(color),
state(STANDBY_STATE), state(STANDBY_STATE),
classifier(std::move(paras_folder)), classifier(std::move(paras_folder)),
contour_area(0) contour_area(0)
{ {
// auto para = TrackerToUse::Params();
// para.desc_npca = 1;
// para.desc_pca = 0;
// tracker = TrackerToUse::create(para);
// if(!tracker){
// LOGW("Tracker Not init");
// }
} }
void ArmorFinder::run(cv::Mat &src) { void ArmorFinder::run(cv::Mat &src) {
@@ -39,22 +31,12 @@ void ArmorFinder::run(cv::Mat &src) {
case SEARCHING_STATE: case SEARCHING_STATE:
if(stateSearchingTarget(src_use)){ if(stateSearchingTarget(src_use)){
if((armor_box & cv::Rect2d(0, 0, 640, 480)) == armor_box) { if((armor_box & cv::Rect2d(0, 0, 640, 480)) == armor_box) {
// cv::Mat roi = src_gray.clone()(armor_box); if(!classifier){
// cv::threshold(roi, roi, 200, 255, cv::THRESH_BINARY); cv::Mat roi = src_use.clone()(armor_box), roi_gray;
// contour_area = cv::countNonZero(roi); cv::cvtColor(roi, roi_gray, CV_RGB2GRAY);
// auto para = TrackerToUse::Params(); cv::threshold(roi_gray, roi_gray, 180, 255, cv::THRESH_BINARY);
// para.desc_npca = 1; contour_area = cv::countNonZero(roi_gray);
// para.desc_pca = 0; }
// tracker = TrackerToUse::create(para);
// tracker->init(src_gray, armor_box);
// tracker->update(src_gray, armor_box);
cv::Mat roi = src_use.clone()(armor_box), roi_gray;
cv::cvtColor(roi, roi_gray, CV_RGB2GRAY);
// cv::imshow("boxroi", roi);
// cv::waitKey(0);
cv::threshold(roi_gray, roi_gray, 180, 255, cv::THRESH_BINARY);
contour_area = cv::countNonZero(roi_gray);
LOGW("%d", contour_area);
tracker = TrackerToUse::create(); tracker = TrackerToUse::create();
tracker->init(src_use, armor_box); tracker->init(src_use, armor_box);
state = TRACKING_STATE; state = TRACKING_STATE;

View File

@@ -155,7 +155,7 @@ bool ArmorFinder::stateSearchingTarget(cv::Mat &src) {
imageColorSplit(src, split, enemy_color); imageColorSplit(src, split, enemy_color);
cv::threshold(split, src_bin, 130, 255, CV_THRESH_BINARY); cv::threshold(split, src_bin, 130, 255, CV_THRESH_BINARY);
imagePreProcess(src_bin); imagePreProcess(src_bin);
cv::imshow("bin", src_bin); // cv::imshow("bin", src_bin);
// cv::resize(split, split, cv::Size(640, 480)); // cv::resize(split, split, cv::Size(640, 480));
// pipelineLightBlobPreprocess(pmsrc); // pipelineLightBlobPreprocess(pmsrc);
// if(!findLightBlobs(pmsrc, pm_light_blobs)){ // if(!findLightBlobs(pmsrc, pm_light_blobs)){

View File

@@ -12,12 +12,20 @@ bool ArmorFinder::stateTrackingTarget(cv::Mat &src) {
return false; return false;
} }
cv::Mat roi = src.clone()(armor_box), roi_gray; cv::Mat roi = src.clone()(armor_box);
cv::cvtColor(roi, roi_gray, CV_RGB2GRAY); if(classifier){
cv::threshold(roi_gray, roi_gray, 180, 255, cv::THRESH_BINARY); cv::resize(roi, roi, cv::Size(48, 36));
contour_area = cv::countNonZero(roi_gray); if(classifier(roi) == 0){
if(abs(cv::countNonZero(roi_gray) - contour_area) > contour_area * 0.3){ return false;
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){
return false;
}
} }
return sendBoxPosition(); return sendBoxPosition();
} }

View File

@@ -15,7 +15,7 @@
#include <options/options.h> #include <options/options.h>
#include <thread> #include <thread>
#define DO_NOT_CNT_TIME //#define DO_NOT_CNT_TIME
#include <log.h> #include <log.h>
#define PATH PROJECT_DIR #define PATH PROJECT_DIR
@@ -52,13 +52,13 @@ int main(int argc, char *argv[]){
WrapperHead *video_armor; WrapperHead *video_armor;
WrapperHead *video_energy; WrapperHead *video_energy;
if(from_camera) { if(from_camera) {
// video_armor = new CameraWrapper(); video_armor = new CameraWrapper(0);
video_energy = new CameraWrapper(); // video_energy = new CameraWrapper(1);
}else { }else {
video_armor = new VideoWrapper("/home/xinyang/Desktop/Video.mp4"); video_armor = new VideoWrapper("/home/xinyang/Desktop/Video.mp4");
video_energy = new VideoWrapper("/home/xinyang/Desktop/Video.mp4"); video_energy = new VideoWrapper("/home/xinyang/Desktop/Video.mp4");
} }
if (video_energy->init()) { if (video_armor->init()) {
cout << "Video source initialization successfully." << endl; cout << "Video source initialization successfully." << endl;
} }
@@ -70,28 +70,32 @@ int main(int argc, char *argv[]){
energy.setAllyColor(ally_color); energy.setAllyColor(ally_color);
energy.setRotation(energy_part_rotation); energy.setRotation(energy_part_rotation);
while (video_energy->read(energy_src) && video_energy->read(armor_src)) bool ok=true;
{
if(show_origin) { while (ok){
imshow("enery src", energy_src); CNT_TIME(WORD_LIGHT_CYAN, "Total", {
imshow("armor src", armor_src); ok = video_armor->read(energy_src) && video_armor->read(armor_src);
} if (show_origin) {
if(state == ENERGY_STATE){ imshow("enery src", energy_src);
if(from_camera==0){ imshow("armor src", armor_src);
energy.extract(energy_src);
} }
energy.run(energy_src); if (state == ENERGY_STATE) {
}else{ if (from_camera == 0) {
CNT_TIME(WORD_LIGHT_BLUE, "Armor Time", { energy.extract(energy_src);
armorFinder.run(armor_src); }
}); energy.run(energy_src);
} } else {
if (waitKey(1) == 'q') { CNT_TIME(WORD_LIGHT_BLUE, "Armor Time", {
flag = false; armorFinder.run(armor_src);
break; });
} }
if (waitKey(1) == 'q') {
flag = false;
break;
}
});
} }
delete video_energy; delete video_armor;
cout << "Program fails. Restarting" << endl; cout << "Program fails. Restarting" << endl;
} }

View File

@@ -36,11 +36,7 @@ private:
public: public:
CameraWrapper(); CameraWrapper(int camera_mode=1, const std::string &n="NULL");
CameraWrapper(const std::string &n);
CameraWrapper(int camera_mode);
CameraWrapper(const std::string &n,int camera_mode);
~CameraWrapper() final; ~CameraWrapper() final;
bool init() final; bool init() final;

View File

@@ -9,39 +9,13 @@ using std::cout;
using std::endl; using std::endl;
using namespace cv; using namespace cv;
CameraWrapper::CameraWrapper(): CameraWrapper::CameraWrapper(int camera_mode, const std::string &n):
name("NULL"),
mode(1),
camera_cnts(2),
camera_status(-1),
iplImage(nullptr),
channel(3){
}
CameraWrapper::CameraWrapper(const std::string &n):
name(n),
mode(1),
camera_cnts(2),
camera_status(-1),
iplImage(nullptr),
channel(3){
}
CameraWrapper::CameraWrapper(int camera_mode):
name("NULL"),
mode(camera_mode),
camera_cnts(2),
camera_status(-1),
iplImage(nullptr),
channel(3){
}
CameraWrapper::CameraWrapper(const std::string &n,int camera_mode):
name(n), name(n),
mode(camera_mode), mode(camera_mode),
camera_cnts(2), camera_cnts(2),
camera_status(-1), camera_status(-1),
iplImage(nullptr), iplImage(nullptr),
rgb_buffer(nullptr),
channel(3){ channel(3){
} }
@@ -51,9 +25,9 @@ bool CameraWrapper::init() {
//枚举设备,并建立设备列表 //枚举设备,并建立设备列表
int camera_enumerate_device_status = CameraEnumerateDevice(camera_enum_list, &camera_cnts); int camera_enumerate_device_status = CameraEnumerateDevice(camera_enum_list, &camera_cnts);
//cout<<"camera enumerate device status: "<<camera_enumerate_device_status<<endl; if(camera_enumerate_device_status != CAMERA_STATUS_SUCCESS){
//cout<<"camera number: "<<camera_cnts<<endl; LOGE("CameraEnumerateDevice fail with %d!", camera_enumerate_device_status);
}
//没有连接设备 //没有连接设备
if (camera_cnts == 0) { if (camera_cnts == 0) {
LOGE("No camera device detected!"); LOGE("No camera device detected!");
@@ -67,16 +41,17 @@ bool CameraWrapper::init() {
camera_status = CameraInit(&camera_enum_list[i], -1, -1, &h_camera); camera_status = CameraInit(&camera_enum_list[i], -1, -1, &h_camera);
if (camera_status != CAMERA_STATUS_SUCCESS) { if (camera_status != CAMERA_STATUS_SUCCESS) {
LOGE("Camera 0 initialization failed with code %d. See camera_status.h to find the code meaning.", camera_status); LOGE("Camera 0 initialization failed with code %d. See camera_status.h to find the code meaning.", camera_status);
return false; goto stop;
} }
CameraGetFriendlyName(h_camera, camera_name); CameraGetFriendlyName(h_camera, camera_name);
if(name=="NULL" || strcmp(name.data(), camera_name)==0){ if(name=="NULL" || strcmp(name.data(), camera_name)==0){
break; break;
} }
stop:
CameraUnInit(h_camera); CameraUnInit(h_camera);
} }
if(i >= camera_cnts){ if(i >= camera_cnts){
LOGE("No device name %s!", name.data()); LOGE("No device name %s or device open error!!", name.data());
return false; return false;
} }
@@ -90,11 +65,11 @@ bool CameraWrapper::init() {
tCapability.sResolutionRange.iWidthMax * 3); tCapability.sResolutionRange.iWidthMax * 3);
if(mode == 0){ if(mode == 0){
// 不使用自动曝光 // 不使用自动曝光
CameraSetAeState(h_camera, false); CameraSetAeState(h_camera, true);
// 曝光时间10ms // 曝光时间10ms
CameraSetExposureTime(h_camera, 10000); // CameraSetExposureTime(h_camera, 10000);
// 模拟增益4 // 模拟增益4
CameraSetAnalogGain(h_camera, 63); CameraSetAnalogGain(h_camera, 64);
// 使用预设LUT表 // 使用预设LUT表
CameraSetLutMode(h_camera, LUTMODE_PRESET); CameraSetLutMode(h_camera, LUTMODE_PRESET);
// 抗频闪 // 抗频闪
@@ -188,6 +163,7 @@ CameraWrapper::~CameraWrapper()
{ {
CameraUnInit(h_camera); CameraUnInit(h_camera);
//注意先反初始化后再free //注意先反初始化后再free
free(rgb_buffer); if(rgb_buffer != nullptr)
free(rgb_buffer);
} }

View File

@@ -1,10 +1,12 @@
#!/usr/bin/python3 #!/usr/bin/python3
print("Preparing...")
import tensorflow as tf import tensorflow as tf
from tqdm import tqdm from tqdm import tqdm
import generate import generate
import forward import forward
import cv2 import cv2
import numpy as np import numpy as np
print("Finish!")
def save_kernal(fp, val): def save_kernal(fp, val):
print(val.shape[2], file=fp) print(val.shape[2], file=fp)
@@ -91,7 +93,7 @@ def train(dataset, show_bar=False):
init_op = tf.global_variables_initializer() init_op = tf.global_variables_initializer()
sess.run(init_op) sess.run(init_op)
bar = tqdm(range(STEPS), ascii=True, dynamic_ncols=True) bar = tqdm(range(STEPS), dynamic_ncols=True)
for i in bar: for i in bar:
images_samples, labels_samples = dataset.sample_train_sets(BATCH) images_samples, labels_samples = dataset.sample_train_sets(BATCH)
@@ -111,41 +113,41 @@ def train(dataset, show_bar=False):
# bar.cursor.restore() # bar.cursor.restore()
# bar.draw(value=i+1) # bar.draw(value=i+1)
video = cv2.VideoCapture("/home/xinyang/Desktop/Video.mp4") # video = cv2.VideoCapture("/home/xinyang/Desktop/Video.mp4")
_ = True # _ = True
while _: # while _:
_, frame = video.read() # _, frame = video.read()
cv2.imshow("Video", frame) # cv2.imshow("Video", frame)
k = cv2.waitKey(10) # k = cv2.waitKey(10)
if k == ord(" "): # if k == ord(" "):
bbox = cv2.selectROI("frame", frame, False) # bbox = cv2.selectROI("frame", frame, False)
print(bbox) # print(bbox)
roi = frame[bbox[1]:bbox[1]+bbox[3], bbox[0]:bbox[0]+bbox[2]] # roi = frame[bbox[1]:bbox[1]+bbox[3], bbox[0]:bbox[0]+bbox[2]]
roi = cv2.resize(roi, (48, 36)) # roi = cv2.resize(roi, (48, 36))
cv2.imshow("roi", roi) # cv2.imshow("roi", roi)
cv2.waitKey(0) # cv2.waitKey(0)
roi = roi.astype(np.float32) # roi = roi.astype(np.float32)
roi /= 255.0 # roi /= 255.0
roi = roi.reshape([1, 36, 48, 3]) # roi = roi.reshape([1, 36, 48, 3])
res = sess.run(y, feed_dict={x: roi}) # res = sess.run(y, feed_dict={x: roi})
res = res.reshape([forward.OUTPUT_NODES]) # res = res.reshape([forward.OUTPUT_NODES])
print(np.argmax(res)) # print(np.argmax(res))
elif k==ord("q"): # elif k==ord("q"):
break # break
keep = True # keep = True
while keep: # while keep:
n = input() # n = input()
im = cv2.imread(n) # im = cv2.imread(n)
im = cv2.resize(im, (48, 36)) # im = cv2.resize(im, (48, 36))
cv2.imshow("im", im) # cv2.imshow("im", im)
if cv2.waitKey(0) == ord("q"): # if cv2.waitKey(0) == ord("q"):
keep = False # keep = False
im = im.astype(np.float32) # im = im.astype(np.float32)
im /= 255.0 # im /= 255.0
im = im.reshape([1, 36, 48, 3]) # im = im.reshape([1, 36, 48, 3])
res = sess.run(y, feed_dict={x: im}) # res = sess.run(y, feed_dict={x: im})
res = res.reshape([forward.OUTPUT_NODES]) # res = res.reshape([forward.OUTPUT_NODES])
print(np.argmax(res)) # print(np.argmax(res))
vars_val = sess.run(vars) vars_val = sess.run(vars)
save_para("/home/xinyang/Desktop/AutoAim/tools/para", vars_val) save_para("/home/xinyang/Desktop/AutoAim/tools/para", vars_val)
@@ -154,5 +156,7 @@ def train(dataset, show_bar=False):
if __name__ == "__main__": if __name__ == "__main__":
print("Loading data sets...")
dataset = generate.DataSet("/home/xinyang/Desktop/DataSets/box") dataset = generate.DataSet("/home/xinyang/Desktop/DataSets/box")
print("Finish!")
train(dataset, show_bar=True) train(dataset, show_bar=True)

View File

@@ -3,6 +3,9 @@ import os
import cv2 import cv2
import random import random
from forward import OUTPUT_NODES from forward import OUTPUT_NODES
import sys
import os
from tqdm import tqdm
# 原图像行数 # 原图像行数
SRC_ROWS = 36 SRC_ROWS = 36
@@ -22,10 +25,14 @@ class DataSet:
self.generate_data_sets(folder) self.generate_data_sets(folder)
def file2nparray(self, name): def file2nparray(self, name):
image = cv2.imread(name) try:
image = cv2.resize(image, (SRC_COLS, SRC_ROWS)) image = cv2.imread(name)
image = image.astype(np.float32) image = cv2.resize(image, (SRC_COLS, SRC_ROWS))
return image / 255.0 image = image.astype(np.float32)
return image / 255.0
except:
print(name)
sys.exit(-1)
def id2label(self, id): def id2label(self, id):
a = np.zeros([OUTPUT_NODES]) a = np.zeros([OUTPUT_NODES])
@@ -37,7 +44,7 @@ class DataSet:
for i in range(OUTPUT_NODES): for i in range(OUTPUT_NODES):
dir = "%s/%d" % (folder, i) dir = "%s/%d" % (folder, i)
files = os.listdir(dir) files = os.listdir(dir)
for file in files: for file in tqdm(files, postfix={"loading id": i}, dynamic_ncols=True):
if file[-3:] == "jpg": if file[-3:] == "jpg":
if random.random() > 0.2: if random.random() > 0.2:
self.train_samples.append(self.file2nparray("%s/%s" % (dir, file))) self.train_samples.append(self.file2nparray("%s/%s" % (dir, file)))

View File

@@ -1,5 +1,7 @@
4 6
-0.0581224 0.6241298
1.6767645 1.1128483
3.2315264 0.92715627
-0.062396575 2.6803706
-2.4037633
1.6914424

View File

@@ -1,304 +1,454 @@
3 3
4 6
5 5
5 5
-0.09578384 -1.8745673
-0.031667184 -1.4418055
-0.03574733 -0.68810487
-0.07420163 -0.42730802
-0.07083298 -0.019043377
-0.10318954 -2.2401865
-0.11602546 -1.5337001
-0.11085167 -0.5666739
-0.103610046 0.1119876
-0.14557937 0.24716255
-0.12054949 -2.2945662
-0.06578051 -1.4734446
-0.08435572 -0.298631
-0.19572483 0.19550888
-0.09539226 0.45057848
0.017180158 -2.4559898
-0.17646453 -1.097164
0.012836289 -0.035884537
0.042035762 0.23402216
-0.07413422 0.3693794
0.022820458 -1.7285618
-0.17639516 -0.8927671
-0.013574861 0.026205042
-0.21071187 0.19274746
-0.16708027 0.029146997
-1.6791077 -1.3690577
-0.8732547 -1.2756748
-0.62556607 -0.32751036
-0.1343183 0.3233031
0.6870372 0.55376107
-1.7945777 -1.4835969
-0.6462273 -1.3036382
-0.025292864 -0.75256515
0.6085611 -0.13608748
1.3821552 0.2254278
-1.9115293 -1.6409502
-0.48282698 -1.4188147
0.34351134 -1.1627024
0.9869285 -0.62049645
1.7713234 -0.20085949
-2.2809803 -2.2059698
-0.99386275 -1.7030506
0.20275873 -1.5584862
0.9147746 -1.2325822
1.6360829 -0.6749467
-2.3458858 -2.8320985
-1.346736 -2.3289032
-0.28391594 -1.811129
0.21863805 -1.6702974
0.7296322 -1.0760157
-0.5302408 -1.3135052
-0.6949225 -0.90016854
-0.6122597 -0.47004116
-0.0903403 -0.17118637
0.14856876 -0.2732028
-0.8822072 -1.3109291
-0.7706789 -0.36519817
-0.49262017 -0.10975292
0.6243497 -0.06533194
0.66593724 -0.559026
-1.5360619 -0.8616304
-1.3898377 -0.06857806
-0.92962474 0.19276045
0.36608103 -0.14059812
0.588196 -0.7283358
-2.7650883 -0.57705516
-2.3923235 0.20748538
-1.717527 0.26281402
-0.2559399 -0.112977654
0.36749873 -0.6980696
-3.3480062 -0.44812128
-3.2545216 0.40235195
-2.2618701 0.26663
-0.9648994 -0.10336824
-0.34887952 -0.5741328
0.03783735 -0.70127535
-0.07453201 -1.1506568
-0.07471388 -1.3301972
-0.0631298 -1.4370873
-0.20015839 -0.9951577
-0.106851965 -0.3111034
0.052634396 -0.5350495
-0.16060589 -0.78488415
-0.11185629 -1.3619742
0.0110560795 -1.2252145
-0.13090858 0.10870424
0.057774767 -0.044690743
-0.09082217 -0.33280057
-0.040152475 -1.180621
-0.15688111 -1.5130968
0.09390928 0.32003295
-0.17913546 0.6245109
-0.19692281 0.3391734
-0.101161905 -0.45662346
-0.07144116 -1.2023503
-0.0845031 0.66186905
-0.1521108 0.6943321
-0.2379836 0.753682
-0.08451268 -0.05385303
0.022526033 -0.69504744
0.06433074 -0.86241025
0.060779992 0.05611875
0.003859223 0.7984623
0.12578689 1.4339544
-0.1593921 2.0078037
-0.24375896 -0.6121641
-0.00515739 0.3216552
-0.13875745 0.7244501
-0.029245121 1.4381241
0.06698596 1.9696213
0.07524989 -0.29659018
-0.15280414 0.13415621
0.06684234 0.61756736
-0.103343554 1.0113128
-0.14438255 1.3834459
-0.17690061 0.12413465
-0.04459241 0.3135587
0.054825865 0.32853445
-0.014794532 0.7981063
-0.050230242 0.83142936
-0.058984764 -0.004516094
-0.021197675 0.32636595
-0.025196737 0.55108666
-0.15630491 0.6248727
0.003225123 0.60938156
-0.36556605 -0.38326544
-1.2341456 -1.2629062
-2.9586911 -0.385575
-3.5086863 0.11398253
-2.3485963 0.40000448
-0.06364161 -1.0602297
0.08460486 -1.1948771
-0.9314071 -0.6945023
-1.3847001 -0.4127804
-1.1141336 0.029964926
0.10117749 -1.4086407
0.958686 -1.3599807
1.0455878 -1.3076004
0.39773872 -1.1330422
0.3941553 -0.38810351
-0.13261098 -2.1059783
1.1875151 -1.8239182
1.6632131 -1.7029382
1.2994844 -1.4902409
1.0891243 -0.91088384
-0.3974442 -3.230572
0.61443865 -2.4590926
1.1907067 -1.9471443
0.56556594 -1.860621
0.056516435 -1.3370123
0.7216979 -0.5690341
-0.2513204 -0.33530146
-1.0609512 0.31661218
-0.65142876 0.8375982
-0.3841462 1.1338086
1.1243666 -1.3648574
0.37169138 -0.8348736
0.05349107 0.36666754
0.43205452 1.1275568
0.38838115 1.1844105
0.5996361 -1.8321881
0.27063477 -0.78104144
0.35953367 0.59508055
1.1003273 1.2501543
0.89633864 1.2034286
-0.14990029 -1.6087818
-0.23917536 -0.6121007
0.20347272 0.693586
0.9859053 1.2163337
0.8070278 1.1292332
-1.1158231 -0.6255259
-1.2704921 0.0911698
-0.5194231 0.78314143
0.38970068 0.9095932
0.27531162 0.5689121
-0.04744488 -3.2688649
0.04958006 -1.2751737
0.029241784 0.7530108
-0.17356962 1.5721122
0.15741749 2.11933
-0.027589947 -2.9633296
-0.046529837 -1.3632398
0.09429215 0.11986004
-0.10487119 1.1412225
0.2239581 1.8641368
-0.09068083 -1.9467463
-0.15361531 -0.9146176
-0.08585204 -0.10545669
-0.19476481 0.49356145
-0.008113571 1.3669914
0.008972818 -1.7783622
-0.050722368 -0.99905616
-0.103883706 -0.28957212
-0.07963348 0.13239379
-0.17514831 0.9921155
-0.049415663 -2.1976538
-0.105892226 -1.0333587
-0.21836694 -0.3801185
-0.0683261 0.021550074
0.0046941736 0.5849712
-0.022722095 -0.7216267
-0.13142674 -0.36925313
0.07646082 -0.5770921
-0.22724834 -0.89754397
-0.07296677 -0.9315221
-0.054749727 -0.17996566
0.058353268 0.5721206
-0.13880593 0.46629494
-0.12549855 -0.11679081
-0.12572938 -0.8407021
-0.20591244 0.14923953
0.059484642 1.1722741
-0.01315556 1.0859729
-0.08691695 -0.08064234
-0.07954668 -1.1707838
0.0030846465 0.527985
-0.03758442 1.556374
0.066934876 1.3262485
-0.0723222 0.052869447
-0.1715897 -1.0933924
-0.07767163 0.8913072
0.02313463 1.8925939
0.012683729 1.1744183
-0.023513827 -0.16056827
-0.050958294 -0.96226853
1.5758742 -2.0482447
0.375591 -2.1394062
-1.2107712 -2.3160622
-1.377003 -1.5373954
0.5518444 -1.0280651
1.3429366 -1.0137186
1.1742465 -1.1347228
0.35057175 -1.2650911
0.5781379 -1.3904438
2.017599 -1.4724954
1.0736315 -0.6152145
1.5438163 -0.38191465
1.6409465 -0.6525277
2.041821 -1.2026839
3.0132155 -1.574993
0.42195547 -0.14897716
1.2108716 0.40652698
1.7557126 0.22212738
2.017932 -0.7051095
2.6231556 -1.6179065
0.28157476 0.12883945
0.48435292 0.92052716
0.5338368 0.71651196
0.39179263 -0.1521632
0.7661554 -1.3601139
1.2726322 -1.3278087
0.6802139 0.091166034
-0.22389893 0.70035547
0.17873494 0.85970676
0.8113182 1.4728521
1.7217028 -0.4685758
1.3721299 0.67533374
0.6566473 1.2041222
1.4209526 0.91583323
1.6237736 1.3638756
1.3790479 -0.21221842
1.364336 0.46413553
1.1639154 0.6931065
1.9276928 0.5078553
2.0359023 1.0690873
0.7364314 -0.2822384
0.543913 -0.18992352
0.35591584 -0.30851105
1.3296018 -0.48985106
1.8647866 -0.112165235
-0.21920367 -0.6343776
-0.6294026 -0.97740346
-0.41509265 -1.2637299
0.5325153 -1.1870348
1.127416 -0.65784734
-0.058949303 -2.275478
-0.056772828 -1.5841419
0.013150156 0.59182155
-0.15235037 1.7027438
0.005107321 2.2658849
-0.033915114 -2.0428355
-0.10236264 -0.9335362
-0.09931318 0.25750664
-0.036812086 1.0987146
-0.014787931 1.5473177
-0.15426748 -0.8157582
0.07268221 -0.23004234
-0.040600903 0.3001771
-0.1155202 0.6583938
-0.20319405 1.0895797
0.014058451 -0.093778014
-0.092759304 0.08269198
0.03819322 0.17656319
0.008248843 0.3352879
-0.11586618 1.0185977
-0.03559413 -0.6558476
-0.06132878 0.4106111
-0.13264841 0.3651244
-0.0018113849 0.3434926
-0.04314435 0.78885883
0.9312759
0.45665312
0.87845147
1.4286675
1.9387178
0.0055226237
-0.11264928
0.69314396
1.5066721
1.5526584
-0.15990084
0.10977341
0.7288155
1.5179793
1.5454628
0.42554915
0.6133954
1.1112447
1.4276886
1.3272578
1.5569048
1.5756388
1.9869299
1.8189707
1.3973557
-4.249913
-1.9120424
-0.0061387075
0.80639493
1.4316615
-3.410931
-1.7743304
-0.18588163
0.5619047
1.2757853
-2.25766
-1.1736825
-0.47299188
0.38950402
1.098909
-2.850165
-1.7250451
-0.7260333
-0.055943523
0.9642611
-4.005538
-2.295592
-1.041572
-0.24684854
0.6455168
1.1459881
1.4573389
1.4954526
1.2473075
1.0846232
1.2540116
1.9666128
1.9739157
1.2105061
0.7538055
1.2492738
2.14189
1.7544507
0.96942043
0.31504372
1.7381212
2.490894
1.6445026
0.26533163
-0.3193328
2.0120225
2.0718558
0.8759794
0.04767526
-0.41645908
1.2511733
0.5724159
0.37694663
1.2807285
1.8684267
1.8152616
1.280423
1.101077
1.197118
1.5331124
1.7447906
1.6138377
1.4156343
1.0536009
0.8561865
1.9363236
2.2086453
1.6627563
1.021228
0.60839254
2.1018016
2.1533952
1.9573407
1.29546
0.57359654
-0.29376534
0.9012422
1.1789744
0.710556
0.8737443
0.095544085
1.045074
0.9252817
0.471885
0.6031909
-0.2500516
0.14211257
-0.27518043
-1.0673013
-0.845284
-0.7930444
-1.1906688
-2.2155006
-2.8370302
-2.2175434
-0.9103819
-2.3526044
-3.3939815
-3.9634273
-2.9982874
-3.0668538
-1.9301875
0.46062958
1.1481701
1.6189759
-2.693133
-1.3168526
0.39946663
0.777253
1.2958935
-1.7610679
-0.87182975
0.015992796
0.35228586
0.825145
-2.3087604
-1.4618046
-0.49614725
-0.12511182
0.5606166
-3.9921951
-2.422155
-0.9274944
-0.43651518
0.110710315

View File

@@ -1,9 +1,11 @@
8 10
5.516784 2.4876857
2.0699189 -0.2729608
-0.61214656 -2.472103
-0.16715932 1.4380744
2.2753813 0.13707557
-2.2020164 -0.38399124
-1.6010956 -0.10049698
-0.05227856 -0.44721037
-0.24111606
-0.05031827

View File

@@ -1,292 +1,544 @@
4 6
8 10
3 3
3 3
0.051267494 1.5020652
0.08740252 0.18993415
-0.04318235 0.09683844
0.23215638 0.42478532
0.07368432 0.5652113
-0.04552193 -0.09654023
0.041998427 0.46004438
0.08711221 -0.32927218
-0.041929845 -1.3090333
-0.046427984 -0.03629563
0.009005953 -0.47720632
-0.05770452 -0.049615752
0.18362525 -0.13462313
-0.0788274 -0.1414031
0.03341242 -0.20201886
-0.21836182 0.08700898
-0.13784453 -0.2532898
0.050950665 -0.41091815
-0.014536557 -2.6467288
0.07716351 -0.91942525
0.044886123 -0.07791335
0.12538178 -1.1988721
-0.10069216 -2.5805545
-0.12861629 -0.96260583
0.013532194 0.47473067
-0.07317228 -3.1096683
-0.040359307 -1.7033176
-0.046822693 -0.5463688
0.060171373 -0.16640678
0.055437922 -0.23889092
0.0134263635 0.92512184
0.07283406 0.56869555
0.025041468 -1.0851349
-0.016972492 0.98314923
0.02169196 0.013738053
-0.031675763 -1.0819626
0.100385234 -0.10545615
0.11236747 -0.8232357
0.10836956 -1.2379274
0.21802318 0.3877544
0.0747307 -0.053305604
0.08301124 -0.69254845
0.0448389 0.5536063
0.12877432 0.8405918
-0.06087535 -0.27907613
0.1687797 -0.03274563
-0.088805266 0.10089845
-0.13379683 -0.4718397
-0.0898376 -0.2080956
0.048958637 -0.19937462
-0.21519385 -0.22588687
0.14897732 -0.10825909
-0.044658806 -0.25839245
-0.101051755 -0.13016544
-0.045736518 -0.21170974
0.10287357 -0.105000235
-0.056909755 -0.055992927
0.10353296 -0.24181439
-0.022133194 -0.14309813
0.13772875 0.055603288
-0.04613519 -0.20947735
0.005756895 -0.13805705
0.17663398 -0.011289219
-0.021457879 -3.1311834
-0.10277534 -0.7373151
-0.099807404 2.1412795
-0.0778931 -2.7957354
0.17189649 -0.53299326
-0.22824891 1.4910551
0.084058516 -0.67892796
-0.11117399 0.061242625
0.038143445 1.0142266
-0.20899212 -0.30210808
-0.5285542 -0.22511297
-1.0796639 -0.34764558
-2.3912408 -0.44355592
-0.37703633 -0.23233292
-1.4150006 -0.3309362
-3.0156446 -0.19372638
0.4740027 -0.44694182
-2.1366687 -0.26614943
-2.2007985 -0.1855974
1.108945 -0.113576986
1.7955835 -0.09121944
-4.148895 -0.13158984
-0.577794 0.012073785
-0.26043248 -0.06931659
-4.586327 -0.13569477
-4.197154 -0.044836458
-3.3694456 -0.21612994
0.32115564 0.3297727
-1.440249 -1.3531494
-0.36726347 0.1984134
0.47654197 1.9814707
0.09525121 0.9562245
0.57378256 0.39023614
0.0036768299 2.355978
-0.35029295 1.9520823
0.11192906 0.09500724
-0.35922894 -0.14697555
-0.60191447 -0.2695747
-0.39762023 -0.19498226
-0.33217648 -0.19924545
-0.4337928 -0.23994629
-0.27607733 -0.2738438
-0.09793535 0.03253718
-0.36866233 -0.4405975
-0.48635373 -0.120104544
-1.9175686 -4.3073807
-1.210584 0.2020275
-1.6214114 -0.5503787
-0.5461305 -4.320714
0.5490362 -0.7776511
-1.3484775 1.1284349
-0.2834921 -2.5597017
1.3675334 -0.79974496
0.757842 2.3943193
0.84751916 -2.4705906
0.27873135 -0.67554355
0.26700723 -0.7746615
-0.764839 -0.21265095
-0.83512014 -1.4163647
0.30147877 0.50921655
-0.56629026 0.8470739
-0.44887114 -0.40889522
0.27871108 1.4251903
-2.7429855 -0.79344493
-2.512731 -1.0633
0.3504092 -0.43276837
-3.6954267 -0.35594717
-0.1418722 -0.925617
1.7891816 -0.16571444
-3.1121213 0.48405877
1.0532684 -0.060691416
2.0058165 -0.36661333
-0.30122682 -0.081582114
-0.3218819 0.05866104
-0.1648906 -0.27885157
-0.28785583 0.020201556
0.09674295 0.08026292
-0.06026881 -0.2612855
-0.07578109 -0.16771607
-0.20458035 -0.07217326
-0.11147766 -0.22424023
-4.039476 -0.05045426
-2.80327 -0.11125194
-1.9935153 0.12680489
-4.1857486 -0.3215598
0.23816085 -0.19570999
1.1711088 -0.06906672
-2.4925604 -0.3656599
0.71400565 -0.21287394
1.3746847 0.08601797
0.20136598 0.88221467
0.6556218 1.8111526
1.5943274 2.5901568
0.027128737 0.49841857
0.41365173 0.7406666
0.91880536 1.9325773
0.11987975 -0.56068546
-0.047519945 -0.5544755
-0.52354527 1.1572238
0.5883807 -0.3588475
-3.821607 -0.16109748
0.17828886 -0.11979289
2.6604226 -0.208714
-1.2733116 -0.22023945
-1.6809294 -0.048370343
2.2900784 -0.24384555
-0.6332834 -0.41836953
-5.2513227 -0.16143581
-0.028975617 -0.08112425
-0.33027104 0.12876861
-0.19988647 -0.18439032
0.27249366 -0.16903366
-0.34524456 -0.15317251
-0.2717119 -0.14610882
0.4488084 -0.02121364
-0.14093891 -0.03730557
-0.48693132 -0.06588184
-0.041199118 -1.573095
0.3894701 -2.1102138
-0.022441592 -2.791767
0.53337127 -1.2839516
0.5082436 0.18364334
-2.487321 -1.0566423
1.1748387 -2.936175
2.3859298 1.3333176
0.036991425 -2.569022
-0.572146 -0.19243743
-0.14207809 -0.5396632
0.601568 -0.39073667
-1.3254344 -0.08940771
-0.090004995 -0.41599658
1.6047448 -0.21406165
-2.050282 -0.11914874
-0.97115266 0.0053107874
0.79375124 -0.34026533
-3.4314182 -0.19902867
-3.9460304 -1.5525646
-2.1782753 -1.4867154
-4.2467422 0.7785492
-1.9753098 -0.07427133
-0.28476644 -1.8370575
-2.1700468 1.3299376
0.9046078 1.0611509
1.3311136 -1.457465
-0.13593093 -0.34795722
-0.2901739 0.1933098
-0.23078732 0.38095564
-0.2631077 -0.49252924
-0.25809082 0.86735547
-0.22716229 0.3377935
-0.3245028 -0.5835429
-0.27951944 0.46118125
-0.26522982 0.09202047
-0.122855544 -0.64125884
0.14360173 -1.0138168
-0.0020882497 -1.4562032
-0.22567935 -0.34383684
0.15965405 -0.2197565
0.14643255 -0.55936724
-0.091409504 -0.72665596
-0.10670001 -0.055117708
-0.063844055 -0.032901403
-0.15885274 -0.2976792
0.13371503 -0.32156548
0.13528569 -0.30981004
0.0403269 -0.23365386
-0.025449283 -0.56748354
-0.06587051 -0.39124587
-0.03532455 0.0584696
0.16815285 -0.52749497
0.053240277 -0.40699643
0.07915908 -0.1940885
0.0031072139 -0.037750658
0.024823235 -0.14615804
0.021222822 -0.11365478
0.19854826 -0.07085398
-0.021969447 -0.09038009
-0.13120878 -0.16512215
0.10969347 -0.07511696
0.021277864 -0.40074205
-0.040606946 -5.1477885
-0.052192003 -2.3127253
0.10587286 0.6868194
-0.064767405 -4.8400707
-0.11840663 -0.8838848
-0.044504825 0.84697765
-0.12437915 -2.9693027
0.009781179 0.90324074
-0.15101269 1.5448984
-0.034297224 -0.06254911
-0.07611409 -0.23538658
-0.021906167 -0.098100856
-0.04747054 -0.22640543
0.13998869 -0.3093498
0.01995749 -0.3921947
0.18191099 -0.4127525
-0.09486827 -0.19800858
0.06792183 -0.30706027
-0.010659825 -0.023742901
0.051511988 -0.012547765
0.012857739 -0.022648895
0.058319062 0.033385832
0.032396764 -0.16520245
-0.06392041 -0.08068707
0.18817374 -0.15606274
-0.0879063 -0.01918419
-0.109478295 -0.20760387
0.007970225 0.4380362
0.14852862 0.7704153
0.03380116 -3.7217038
0.097109534 0.3071281
0.1007569 0.5547072
0.16612794 -2.9204123
-0.04608862 -0.7863632
0.22997089 -0.3218954
0.18518727 -4.08438
-0.011088604 -0.1704269
0.100048095 -0.48522842
-0.044571437 -0.34706044
0.0018689976 -0.06454638
-0.07822756 -0.14191426
-0.01742493 -0.5201403
-0.10039457 -0.10787962
-0.0035157131 0.1142594
-0.14854985 -0.3869569
0.09657354
-1.4832062
-3.2396731
0.3072946
-0.38548103
-3.8164542
-0.50314766
-0.033530306
-3.1886842
0.66873956
1.6643683
0.99080354
-1.2877836
0.71671844
0.4645308
-2.2703633
-0.9974806
-0.42078534
-0.30584887
-0.93159604
-1.2055197
-0.3104198
-0.23621848
-0.77678233
-0.7545622
-0.39329994
-0.19829883
-0.18581958
-0.10274275
-0.21223308
-0.22801906
-0.10956713
-0.15408704
-0.22964376
-0.21038757
0.003134985
-0.087081514
-0.20077498
-0.13176169
0.10705288
-0.16764928
-0.047713023
-0.25014165
-0.39079958
-0.3011907
-3.5580482
-1.8545792
0.1256421
-3.7077072
-1.3029686
-0.005157275
-3.2010386
0.38178772
0.9837942
-0.068351015
-0.36667752
-0.20250086
-0.40076578
-0.42409518
-0.25450817
-0.37642953
-0.17545642
-0.37250796
-0.11730237
-0.03561523
-0.03951029
-0.18142352
0.0054535097
-0.1708318
0.15000097
-0.055385202
-0.19415462
-0.40723643
-0.079323746
0.60454637
-0.84041554
0.23971762
1.2219191
-1.6282345
-0.6933169
0.40344524
0.08663297
-0.38227516
-0.5032992
-0.41386464
-0.44355136
-0.35756576
-0.40863183
-0.40098286
-0.36941025
-0.9236331
0.32647514
0.35148832
-1.0944152
0.6073528
0.9087426
-1.6470383
0.4317713
1.2342584
0.43612233
-0.62993884
0.2974378
-0.6633325
-0.67800444
1.0921708
-2.6063566
-2.0205736
0.17532487
-0.7795648
-0.5008028
-0.7370313
-0.35221562
-0.33727354
-0.17583118
-0.05256289
-0.16688262
-0.19191936
-0.46429542
-0.5084472
-0.457363
-0.20768711
-0.41373605
-0.48311797
-0.24757653
-0.31921867
-0.39365336
-0.321992
-0.28978324
-0.20284106
-0.1297369
-0.34363598
-0.2521751
-0.34354624
-0.25759906
-0.3418701
-3.4949255
-4.531625
-1.5090456
-4.0302067
-4.504042
-0.590934
-7.9731874
-6.7120776
-2.1059375
-0.12758178
-0.058909506
-0.18952405
-0.004923893
-0.06919461
-0.030514337
-0.0762774
-0.023049993
-0.12789033
-0.026053552
-0.027134173
-0.16900522
-0.02314374
-0.13830115
-0.018906182
-0.06166276
-0.115819514
0.029891966
0.78294903
-0.24488732
-0.39234003
2.2506793
1.2096143
-0.10086763
3.1884897
2.3008416
0.40546918
-0.2163068
-0.3414486
-0.098043695
-0.016555157
-0.1231604
0.1327601
0.10635556
-0.21275902
-0.07835169
-3.02146
1.3674593
0.614203
-3.471883
0.30260587
1.7752177
-1.9685831
0.28805226
2.9171088
-2.77233
-0.7610864
-2.173954
-0.9739102
-0.8951448
-0.7348445
-0.13843127
-2.7553678
-4.037929
-0.40669936
-0.55984896
-0.56030476
-0.38789842
-0.40184727
-0.11818772
0.5288938
-0.14943306
-0.30072457
0.09072567
-0.20110369
-0.10526498
-0.05925854
-0.1908625
0.01648614
-0.07096718
-0.036369618
-0.15528911
-0.11626164
0.047128793
-0.035411496
0.03015979
-0.10536637
-0.09063028
0.069158494
-0.055972695
-0.02230821
1.619881
2.5068073
2.1708288
1.8902549
2.1950085
2.1109314
1.0464481
1.3082289
1.6681985
-0.45436555
-0.39643508
-0.13680391
-0.22465855
-0.33752236
-0.37145287
-0.5340985
-0.23784201
-0.42311898
-0.12219668
0.012118651
-0.06717292
-0.056408852
-0.14742865
0.10230494
0.06558793
0.027565224
0.071604334

View File

@@ -1,17 +1,17 @@
16 16
-0.2135679 6.674671
-0.08816577 -0.4621555
-0.0037492816 -0.35395312
-0.4363158 -6.140842
-0.028147107 -0.6383096
-0.09004165 -0.0026992396
-0.32086962 -0.105528705
2.221975 -0.12171911
-0.42167944 -0.039757866
1.0318005 -4.064281
6.579568 -0.36199543
-0.069376715 -0.06976157
-0.07870612 -0.042993866
-0.322641 0.0015301058
-0.04111663 -0.06826296
-0.05043483 -0.0050806464

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,5 @@
4 4
3.8138905 6.171619
-1.002857 -1.5262855
-1.7452242 -4.09489
-2.5477939 -2.3815227

View File

@@ -1,66 +1,66 @@
16 16
4 4
3.871624e-34 0.70240104
-1.2036702e-33 -0.058500186
-2.1615064e-34 -0.23156737
-3.6246566e-34 -0.33127818
-1.1161407e-33 -3.6112761e-34
1.0769045e-33 -3.3890292e-34
-1.1525515e-33 9.363116e-34
1.2228697e-33 4.0197816e-34
-4.7819877e-34 -0.2575022
-5.073012e-34 0.69736814
-3.4085635e-34 -0.2684227
4.514646e-34 -0.08991088
-0.07361241 -0.3760809
0.029769422 -0.065089576
0.15595052 0.45981047
-0.047270004 0.008204719
4.8536694e-34 -4.8556375e-34
-2.913638e-34 4.816393e-34
8.200637e-34 3.872484e-34
4.5301656e-34 5.096778e-34
-4.1523415e-34 1.7445673e-19
-4.6282817e-34 1.2270845e-33
-4.1586047e-34 -2.260416e-25
3.6983686e-34 1.0369542e-20
-1.0433457e-33 4.00948e-34
-5.9214334e-35 -5.999333e-34
-3.2633744e-34 3.7143163e-34
7.372663e-34 -4.228372e-34
-0.053974472 -1.0954501e-34
-0.76898575 -2.7085206e-34
0.52768195 8.016929e-34
0.3349069 9.2079354e-35
-5.7629593e-34 -3.945864e-34
-1.0147297e-34 1.98814e-34
-3.9557336e-34 2.3972646e-34
5.251607e-34 3.942207e-34
-0.066610925 -0.14058167
0.49240458 -0.07198931
-0.7511581 -0.38025984
0.32815745 0.5981627
1.0546435 4.3956684e-34
-0.349675 3.1032594e-34
-0.3106966 3.4351758e-34
-0.45551726 5.5414507e-34
3.775233e-34 -1.248324e-34
1.7101297e-34 8.8546844e-35
6.213898e-34 6.8084945e-34
5.349508e-34 -1.1866068e-34
2.2879365e-34 -3.865728e-34
6.0455325e-34 1.8786859e-34
-5.0668913e-34 3.3450276e-34
-2.788997e-34 -2.8077459e-34
-9.928994e-06 0.0013890187
-1.7922299e-17 0.026067872
2.9468383e-12 0.0082543865
1.0082731e-13 -0.02225164
-9.573373e-34 2.0089658e-34
-3.8683585e-05 -6.1273506e-34
-1.2625544e-36 -6.228039e-34
7.911704e-34 -5.0242814e-34
4.869786e-34 -4.3343494e-34
1.1352314e-33 3.0939117e-34
7.763943e-34 1.2827092e-34
4.428563e-34 -4.305108e-34