This commit is contained in:
leon 2025-04-07 15:11:21 +08:00
parent b4e1f6791b
commit 7d980ddadd
7 changed files with 298 additions and 73 deletions

View File

@ -17,10 +17,10 @@ PASSWORD = "ebaina"
# CLOUD_COUNTS = [600000,800000,1000000,1500000,2000000]
CLOUD_COUNTS = [1500000]
DEFAULT_COUNT = 1500000
EXPS = [20*1000]
EXPS = [10*1000]
# EXPS = [100 * 1000]
DEFAULT_EXP = int(3 * 1000)
PARENT_DIR_NAME = "普通测试_位置1平角度_天气_阴天中午"
DEFAULT_EXP = int(8 * 1000)
PARENT_DIR_NAME = "宁德核电站0327-9-长条形状2"
# PARENT_DIR_NAME = "test_1"
SAVE_DIR_NAME = ""
TEST_CLOUD = False
@ -126,9 +126,28 @@ def cap(exp=DEFAULT_EXP, cloud_count=DEFAULT_COUNT):
# ssh调用远程 borad_image_framework_tmp.py 进行拍摄图片雷达点云数据采集角点ROI数据生成
start_time = time.time()
command = "export LD_LIBRARY_PATH=/root/app/ss928_codec/mpp/out/lib:/root/app/detect-gui/vendors/image-framework/linux_arm64:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/npu:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/svp_npu:$LD_LIBRARY_PATH \n" + \
"cd /root/app/detect-gui/ \n" + \
f"/root/miniconda3/bin/python borad_image_framework_tmp.py --exp={exp} --count={cloud_count}\n"
# command = (
# "export LD_LIBRARY_PATH=/root/app/ss928_codec/mpp/out/lib:"
# "/root/app/detect-gui/vendors/image-framework/linux_arm64:"
# "/root/app/detect-gui/vendors/image-framework/linux_arm64/lib:"
# "/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/npu:"
# "/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/svp_npu:"
# "/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH \n"
# "cd /root/app/detect-gui/ \n"
# f"/root/miniconda3/bin/python borad_image_framework_tmp.py --exp={exp} --count={cloud_count}\n"
# )
command = (
"bash -l -c '"
"export LD_LIBRARY_PATH=/root/app/ss928_codec/mpp/out/lib:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/npu:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/svp_npu:"
"/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH; "
"cd /root/app/detect-gui/ && "
f"/root/miniconda3/bin/python borad_image_framework_tmp.py --exp={exp} --count={cloud_count}'"
)
logger.debug(f"ssh_execute_command 命令:{command}")
ssh_execute_command(
host=HOST,
@ -183,9 +202,21 @@ def cap_wide():
logger.debug("删除旧数据完成")
start_time = time.time()
command = "export LD_LIBRARY_PATH=/root/app/ss928_codec/mpp/out/lib:/root/app/detect-gui/vendors/image-framework/linux_arm64:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/npu:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/svp_npu:$LD_LIBRARY_PATH \n" + \
"cd /root/app/detect-gui/ \n" + \
f"/root/miniconda3/bin/python cap_wide_camera.py \n"
# command = "export LD_LIBRARY_PATH=/root/app/ss928_codec/mpp/out/lib:/root/app/detect-gui/vendors/image-framework/linux_arm64:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/npu:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/svp_npu:$LD_LIBRARY_PATH \n" + \
# "cd /root/app/detect-gui/ \n" + \
# f"/root/miniconda3/bin/python cap_wide_camera.py \n"
command = (
"bash -l -c '"
"export LD_LIBRARY_PATH=/root/app/ss928_codec/mpp/out/lib:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/npu:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/svp_npu:"
"/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH; "
"cd /root/app/detect-gui/ && "
f"/root/miniconda3/bin/python cap_wide_camera.py'"
)
logger.debug(f"ssh_execute_command 命令:{command}")
ssh_execute_command(
host=HOST,

258
capture_only_image.py Normal file
View File

@ -0,0 +1,258 @@
# -- coding: utf-8 --
import sys
import time
import os
import paramiko
from scp import SCPClient
import threading
from os import abort
from pathlib import Path
from clog import logger, set_logger_file_handler
HOST = "192.168.100.254"
PORT = 22
USERNAME = "root"
PASSWORD = "ebaina"
# CLOUD_COUNTS = [600000,800000,1000000,1500000,2000000]
CLOUD_COUNTS = [1500000]
DEFAULT_COUNT = 1500000
EXPS = []
# EXPS = [100 * 1000]
DEFAULT_EXP = int(11 * 1000)
PARENT_DIR_NAME = "宁德核电站0327-24-只拍照"
# PARENT_DIR_NAME = "test_1"
SAVE_DIR_NAME = ""
TEST_CLOUD = False
TEST_EXP = True
def ssh_execute_command(host, port, username, password, command):
ret = False
# 创建SSH客户端
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(host, port, username, password)
# 执行命令
stdin, stdout, stderr = client.exec_command(command)
# 实时读取标准输出
for line in iter(stdout.readline, ""):
print(line, end="") # 实时打印
sys.stdout.flush() # 刷新缓冲区,确保立即输出到终端
# 实时读取标准错误(如果有)
for line in iter(stderr.readline, ""):
print(f"ERROR: {line}", end="")
sys.stdout.flush()
# 关闭连接
client.close()
return True
def scp_get_file(host, port, username, password, remote_path, local_path):
ret = False
# 创建SSH客户端
client = paramiko.Transport((host, port))
client.connect(username=username, password=password)
# 创建SCP客户端
scp_client = SCPClient(client)
# 拉取文件
try:
scp_client.get(remote_path, local_path)
except Exception as e:
print(e)
return False
# 关闭连接
scp_client.close()
client.close()
return True
def scp_get_multi_file(host, port, username, password, remote_path, local_path):
ret = False
# 创建SSH客户端
client = paramiko.Transport((host, port))
client.connect(username=username, password=password)
# 创建SCP客户端
scp_client = SCPClient(client)
# 拉取文件
try:
for rp in remote_path:
scp_client.get(rp, local_path)
except Exception as e:
logger.error(f"拉取文件失败:{e}")
return False
# 关闭连接
scp_client.close()
client.close()
return True
def cap(exp=DEFAULT_EXP, cloud_count=DEFAULT_COUNT):
global SAVE_DIR_NAME
logger.debug(f"===================开处理============================")
# 先删除旧数据
logger.debug("删除旧数据")
ssh_execute_command(
host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD,
command="cd /root/app/detect-gui/ \n " +
"rm output.jpg \n"
)
logger.debug("删除旧数据完成")
logger.debug(f"曝光时间设置为:{exp}")
SAVE_DIR_NAME = f"exp_{exp}_cn_{cloud_count}"
logger.debug(f"保存路径为:{SAVE_DIR_NAME}")
# 如果文件夹不存在则创建
if not os.path.exists(Path(__file__).parent / "result" / PARENT_DIR_NAME / SAVE_DIR_NAME):
os.makedirs(Path(__file__).parent / "result" / PARENT_DIR_NAME / SAVE_DIR_NAME)
# ssh调用远程 borad_image_framework_tmp.py 进行拍摄图片雷达点云数据采集角点ROI数据生成
start_time = time.time()
command = (
"bash -l -c '"
"export LD_LIBRARY_PATH=/root/app/ss928_codec/mpp/out/lib:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/npu:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/svp_npu:"
"/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH; "
"cd /root/app/detect-gui/ && "
f"/root/miniconda3/bin/python cap.py --exp={exp}'"
)
logger.debug(f"ssh_execute_command 命令:{command}")
ssh_execute_command(
host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD,
command=command,
)
end_time = time.time() # 记录结束时间
execution_time = end_time - start_time # 计算执行时间
logger.debug(f"borad_image_framework_tmp.py 程序执行时间:{execution_time}")
time.sleep(1) # 等待操作系统保存数据完毕
logger.debug("开始保存文件到本地")
start_time2 = time.time()
local_path = Path(__file__).parent / "result" / PARENT_DIR_NAME / SAVE_DIR_NAME
logger.debug(f"本地文件保存路径为:{local_path}")
scp_get_multi_file(
host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD,
remote_path=[
"/root/app/detect-gui/output.jpg"
],
local_path=local_path
)
end_time2 = time.time() # 记录结束时间
execution_time2 = end_time2 - start_time2
logger.debug("文件到本地结束")
logger.debug(f"scp_get_file获取文件到本地 程序执行时间:{execution_time2}")
logger.debug(f"===================开处理结束============================")
def cap_wide():
logger.debug(f"===================广角开始处理============================")
# 先删除旧数据
logger.debug("删除旧数据")
ssh_execute_command(
host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD,
command="cd /root/app/detect-gui/ \n " +
"rm wide_image_processed.png \n" +
"rm wide_image.png \n" +
"rm wide_image_roi.json \n"
)
logger.debug("删除旧数据完成")
start_time = time.time()
# command = "export LD_LIBRARY_PATH=/root/app/ss928_codec/mpp/out/lib:/root/app/detect-gui/vendors/image-framework/linux_arm64:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/npu:/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/svp_npu:$LD_LIBRARY_PATH \n" + \
# "cd /root/app/detect-gui/ \n" + \
# f"/root/miniconda3/bin/python cap_wide_camera.py \n"
command = (
"bash -l -c '"
"export LD_LIBRARY_PATH=/root/app/ss928_codec/mpp/out/lib:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/npu:"
"/root/app/detect-gui/vendors/image-framework/linux_arm64/lib/svp_npu:"
"/lib/aarch64-linux-gnu:$LD_LIBRARY_PATH; "
"cd /root/app/detect-gui/ && "
f"/root/miniconda3/bin/python cap_wide_camera.py'"
)
logger.debug(f"ssh_execute_command 命令:{command}")
ssh_execute_command(
host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD,
command=command,
)
end_time = time.time() # 记录结束时间
execution_time = end_time - start_time # 计算执行时间
logger.debug(f"cap_wide_camera.py 程序执行时间:{execution_time}")
time.sleep(1) # 等待操作系统保存数据完毕
logger.debug("开始保存文件到本地")
start_time2 = time.time()
local_path = Path(__file__).parent / "result" / PARENT_DIR_NAME
logger.debug(f"本地文件保存路径为:{local_path}")
scp_get_multi_file(
host=HOST,
port=PORT,
username=USERNAME,
password=PASSWORD,
remote_path=[
"/root/app/detect-gui/wide_image_processed.png",
"/root/app/detect-gui/wide_image.png",
"/root/app/detect-gui/wide_image_roi.json",
],
local_path=local_path
)
end_time2 = time.time() # 记录结束时间
execution_time2 = end_time2 - start_time2
logger.debug("文件到本地结束")
logger.debug(f"scp_get_file获取文件到本地 程序执行时间:{execution_time2}")
logger.debug(f"===================广角开处理结束============================")
if __name__ == '__main__':
# 如果路径不存在则创建
if not os.path.exists(Path(__file__).parent / "result" / PARENT_DIR_NAME):
os.makedirs(Path(__file__).parent / "result" / PARENT_DIR_NAME)
# 设置日志保存路径
set_logger_file_handler(Path(__file__).parent / "result" / PARENT_DIR_NAME)
logger.debug("开始采集")
start_time = time.time() # 记录开始时间
cap()
end_time = time.time() # 记录结束时间
elapsed_time = end_time - start_time # 计算总时间
logger.success(f"采集完毕=========== 耗时: {elapsed_time:.2f}")
cap_wide()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 MiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

View File

@ -1,64 +0,0 @@
6911
3175
7935
3175
7935
4142
6911
4142
5578
3808
6623
3808
6623
4761
5578
4761
2677
5089
5214
5089
5214
6179
2677
6179
2613
2198
4142
2198
4142
3607
2613
3607
73
1746
1314
1746
1314
2799
73
2799
52
3066
1092
3066
1092
3997
52
3997
4815
1805
5951
1805
5951
2849
4815
2849
6774
1829
7896
1829
7896
2869
6774
2869