Detach ATT from UR

This commit is contained in:
kradchen
2023-06-15 15:43:18 +08:00
parent 8e3db6877c
commit 6ab314d426
2 changed files with 33 additions and 29 deletions

View File

@@ -1,6 +1,7 @@
cmake_minimum_required(VERSION 3.16) cmake_minimum_required(VERSION 3.16)
project(UR) project(UR)
set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD 14)
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
@@ -19,13 +20,11 @@ target_include_directories(UR PUBLIC ${URDepends_INCLUDES_DIRS})
target_link_libraries(UR PUBLIC ${Aurora_Libraries}) target_link_libraries(UR PUBLIC ${Aurora_Libraries})
target_link_libraries(UR PUBLIC matio) target_link_libraries(UR PUBLIC matio)
target_link_libraries(UR PUBLIC ${Parser_Libraries}) target_link_libraries(UR PUBLIC ${Parser_Libraries})
target_link_libraries(UR PUBLIC URDepends::TransDetection) target_link_libraries(UR PUBLIC URDepends::TransDetection)
target_link_libraries(UR PUBLIC URDepends::eikonal) target_link_libraries(UR PUBLIC URDepends::eikonal)
target_link_libraries(UR PUBLIC URDepends::TVALGPU) target_link_libraries(UR PUBLIC URDepends::TVALGPU)
target_link_libraries(UR PUBLIC URDepends::SaftTofi) target_link_libraries(UR PUBLIC URDepends::SaftTofi)
target_link_libraries(UR PUBLIC URDepends::SaftATT) # target_link_libraries(UR PUBLIC URDepends::SaftATT)
find_package(GTest REQUIRED) find_package(GTest REQUIRED)
INCLUDE_DIRECTORIES(${GTEST_INCLUDE_DIRS}) INCLUDE_DIRECTORIES(${GTEST_INCLUDE_DIRS})
@@ -46,5 +45,6 @@ target_link_libraries(UR_Test PUBLIC URDepends::TransDetection)
target_link_libraries(UR_Test PUBLIC URDepends::eikonal) target_link_libraries(UR_Test PUBLIC URDepends::eikonal)
target_link_libraries(UR_Test PUBLIC URDepends::TVALGPU) target_link_libraries(UR_Test PUBLIC URDepends::TVALGPU)
target_link_libraries(UR_Test PUBLIC URDepends::SaftTofi) target_link_libraries(UR_Test PUBLIC URDepends::SaftTofi)
target_link_libraries(UR_Test PUBLIC URDepends::SaftATT) # target_link_libraries(UR_Test PUBLIC URDepends::SaftATT)
gtest_discover_tests(UR_Test) gtest_discover_tests(UR_Test)

View File

@@ -5,7 +5,7 @@
#include "Function3D.h" #include "Function3D.h"
#include "Matrix.h" #include "Matrix.h"
#include "SAFTStructs.h" #include "SAFTStructs.h"
#include "SAFT_ATT.h" // #include "SAFT_ATT.h"
#include "SAFT_TOFI.h" #include "SAFT_TOFI.h"
#include "common/dataBlockCreation/removeDataFromArrays.h" #include "common/dataBlockCreation/removeDataFromArrays.h"
#include "config/config.h" #include "config/config.h"
@@ -95,8 +95,8 @@ namespace Recon {
Matrix_t receiverGeom{nullptr, Matrix_t receiverGeom{nullptr,
(size_t)receiverPosGeom.getDims(), (size_t)receiverPosGeom.getDims(),
{(size_t)receiverPosGeom.getDimSize(1), {(size_t)receiverPosGeom.getDimSize(0),
(size_t)receiverPosGeom.getDimSize(0), (size_t)receiverPosGeom.getDimSize(1),
(size_t)receiverPosGeom.getDimSize(2)}, (size_t)receiverPosGeom.getDimSize(2)},
receiverPosGeom.getDataSize()}; receiverPosGeom.getDataSize()};
float *fdata = new float[receiverPosGeom.getDataSize()]{0}; float *fdata = new float[receiverPosGeom.getDataSize()]{0};
@@ -107,7 +107,7 @@ namespace Recon {
Matrix_t senderGeom{nullptr, Matrix_t senderGeom{nullptr,
(size_t)senderPosGeom.getDims(), (size_t)senderPosGeom.getDims(),
{(size_t)senderPosGeom.getDimSize(1), {(size_t)senderPosGeom.getDimSize(0),
(size_t)senderPosGeom.getDimSize(1), (size_t)senderPosGeom.getDimSize(1),
(size_t)senderPosGeom.getDimSize(2)}, (size_t)senderPosGeom.getDimSize(2)},
senderPosGeom.getDataSize()}; senderPosGeom.getDataSize()};
@@ -122,7 +122,7 @@ namespace Recon {
int saftVariant_v[6]{(int)reflectParams::saftVariant[0],(int)reflectParams::saftVariant[1],(int)reflectParams::saftVariant[2], int saftVariant_v[6]{(int)reflectParams::saftVariant[0],(int)reflectParams::saftVariant[1],(int)reflectParams::saftVariant[2],
(int)reflectParams::saftVariant[3],(int)reflectParams::saftVariant[4],(int)reflectParams::saftVariant[5]}; (int)reflectParams::saftVariant[3],(int)reflectParams::saftVariant[4],(int)reflectParams::saftVariant[5]};
Matrix_t saftVariant{saftVariant_v,2,{1,6,1},3}; Matrix_t saftVariant{saftVariant_v,2,{1,6,1},6};
params.push_back(saftVariant); params.push_back(saftVariant);
Matrix_t SpeedMap3D{nullptr, Matrix_t SpeedMap3D{nullptr,
@@ -216,20 +216,22 @@ namespace Recon {
Matrix_t otherP{other,2,{1,2,1},2}; Matrix_t otherP{other,2,{1,2,1},2};
params.push_back(otherP); params.push_back(otherP);
if (reflectParams::useAscanIndex == 0) { if (reflectParams::useAscanIndex == 0) {
auto result = SAFT_ATT(params); // auto result = SAFT_ATT(params);
delete [] ASdata; // delete [] ASdata;
delete [] (float*)imageStartpoint.Data; // delete [] (float*)imageStartpoint.Data;
delete [] temp1; // delete [] temp1;
delete [] temp2; // delete [] temp2;
delete [] fdata; // delete [] fdata;
delete [] fdata1; // delete [] fdata1;
delete [] fdata2; // delete [] fdata2;
delete [] fdata3; // delete [] fdata3;
delete [] fdata4; // delete [] fdata4;
delete [] fdata5; // delete [] fdata5;
delete [] gdata; // delete [] gdata;
return Aurora::Matrix::fromRawData((double *)result.Data, result.Dims[0], // return Aurora::Matrix::fromRawData((double *)result.Data, result.Dims[0],
result.Dims[1], result.Dims[2]); // result.Dims[1], result.Dims[2]);
return Aurora::Matrix();
} else { } else {
auto result = SAFT_TOFI(params); auto result = SAFT_TOFI(params);
delete [] ASdata; delete [] ASdata;
@@ -263,10 +265,10 @@ namespace Recon {
auto senderPos_s = Aurora::transpose(removeDataFromArrays(senderPos, mpIdxs)); auto senderPos_s = Aurora::transpose(removeDataFromArrays(senderPos, mpIdxs));
auto receiverPos_s = Aurora::transpose(removeDataFromArrays(receiverPos, mpIdxs)); auto receiverPos_s = Aurora::transpose(removeDataFromArrays(receiverPos, mpIdxs));
Aurora::Matrix idsSender ; Aurora::Matrix idsSender ;
auto senderPosGeom = Aurora::uniqueByRows(receiverPos_s, idsSender); auto senderPosGeom = Aurora::transpose(Aurora::uniqueByRows(senderPos_s, idsSender));
idsSender = Aurora::transpose(idsSender); idsSender = Aurora::transpose(idsSender);
Aurora::Matrix idsReceiver ; Aurora::Matrix idsReceiver ;
auto receiverPosGeom = Aurora::uniqueByRows(receiverPos_s, idsReceiver); auto receiverPosGeom = Aurora::transpose(Aurora::uniqueByRows(receiverPos_s, idsReceiver));
idsReceiver = Aurora::transpose(idsReceiver); idsReceiver = Aurora::transpose(idsReceiver);
auto numUsedData = countMp; auto numUsedData = countMp;
@@ -280,14 +282,16 @@ namespace Recon {
size_t length = blockIdxs[i + 1] - blockIdxs[i]; size_t length = blockIdxs[i + 1] - blockIdxs[i];
size_t begin = blockIdxs[i]; size_t begin = blockIdxs[i];
size_t end = blockIdxs[i + 1]; size_t end = blockIdxs[i + 1];
auto _AScans = Aurora::zeros(AScans.getDimSize(0), length);
auto receiverIndex = Aurora::zeros(1, length); auto receiverIndex = Aurora::zeros(1, length);
auto senderIndex = Aurora::zeros(1, length); auto senderIndex = Aurora::zeros(1, length);
auto mpIdxs_d = Aurora::zeros(1,mpIdxs.getDataSize());
for (size_t j = begin, k = 0; j < end; j++, k++) { for (size_t j = begin, k = 0; j < end; j++, k++) {
_AScans(Aurora::$, k) = AScans(Aurora::$, mpIdxs[j]); mpIdxs_d[j] =mpIdxs[j];
receiverIndex[k] = idsReceiver[j]; receiverIndex[k] = idsReceiver[j]+1;
senderIndex[k] = idsSender[j]; senderIndex[k] = idsSender[j]+1;
} }
auto _AScans = removeDataFromArrays(AScans, mpIdxs_d);
Env = callSAFT(_AScans, receiverIndex, senderIndex, receiverPosGeom, Env = callSAFT(_AScans, receiverIndex, senderIndex, receiverPosGeom,
senderPosGeom, SAFT_mode, TimeInterval, transRecos, Env); senderPosGeom, SAFT_mode, TimeInterval, transRecos, Env);
} }