Compare commits

..

16 Commits

@ -0,0 +1,272 @@
#################
# GENERAL
#################
module_name=dronedetector
freqs=433,750,868,915,1200,1500,2400,3300,4500,5200,5800
signal_threshold=0.02
signal_threshold_433=0.0195
signal_threshold_700=0.01
signal_threshold_868=0.01
signal_threshold_5200=0.01
signal_threshold_5800=0.01
# Runtime flags
# 1/0, true/false, yes/no, on/off
debug_flag=0
debug_freq_flag=0
debug_module_flag=0
send_to_module_flag=1
save_data_flag=0
freq_endpoint=process_data
send_to_master_flag=1
send_to_jammer_flag=0
jammer_timeout=2
master_timeout=1
amount_connection_attempts=3
mad_k_on=5.0
mad_eps=0.05
# Per-frequency MAD sensitivity (scanner frequencies)
path_to_save_medians=/tmp/dronedetector/noises_medians/
path_to_save_alarms=/tmp/dronedetector/alarms/
elems_to_save=signal,abs_signal
file_types_to_save=npy,npy
smb_host=127.0.0.1
smb_port=139
smb_user=guest
smb_pass=guest
shared_folder=shared
the_pc_name=dronedetector-host
remote_pc_name=dronedetector-storage
smb_domain=WORKGROUP
#################
# 433
#################
hack_433=
c_freq_433=433
f_step_433=-20e6
f_bases_433=0.480e9
f_roofs_433=0.400e9
signal_length_433=1000000
buffer_columns_size_433=11
num_of_thinning_iter_433=32
multiply_factor_433=1.3
num_for_alarm_433=4
mad_k_on_433=0
dbfs_linear_offset_db_433=0
dbfs_linear_abs_median_scale_433=0
#################
# 750
#################
hack_750=
c_freq_750=750
f_step_750=-20e6
f_bases_750=0.755e9
f_roofs_750=0.695e9
signal_length_750=1000000
buffer_columns_size_750=11
num_of_thinning_iter_750=32
multiply_factor_750=1.3
num_for_alarm_750=4
mad_k_on_750=0
dbfs_linear_offset_db_750=0
dbfs_linear_abs_median_scale_750=0
#################
# 915
#################
hack_915=
c_freq_915=915
f_step_915=-20e6
f_bases_915=0.98e9
f_roofs_915=0.840e9
signal_length_915=1000000
buffer_columns_size_915=11
num_of_thinning_iter_915=32
multiply_factor_915=1.3
num_for_alarm_915=4
mad_k_on_915=0
dbfs_linear_offset_db_915=0
dbfs_linear_abs_median_scale_915=0
#################
# 1200
#################
hack_1200=
c_freq_1200=1200
f_step_1200=-20e6
f_bases_1200=1.1e9
f_roofs_1200=1.3e9
signal_length_1200=1000000
buffer_columns_size_1200=11
num_of_thinning_iter_1200=32
multiply_factor_1200=1.3
num_for_alarm_1200=4
mad_k_on_1200=0
dbfs_linear_offset_db_1200=0
dbfs_linear_abs_median_scale_1200=0
#################
# 1500
#################
hack_1500=
c_freq_1500=1500
f_step_1500=-20e6
f_bases_1500=1.605e9
f_roofs_1500=1.405e9
signal_length_1500=1000000
buffer_columns_size_1500=11
num_of_thinning_iter_1500=32
multiply_factor_1500=1.3
num_for_alarm_1500=4
mad_k_on_1500=0
dbfs_linear_offset_db_1500=0
dbfs_linear_abs_median_scale_1500=0
#################
# 2400
#################
hack_2400=
c_freq_2400=2400
f_step_2400=-20e6
f_bases_2400=2.3e9
f_roofs_2400=2.5e9
signal_length_2400=1000000
buffer_columns_size_2400=11
num_of_thinning_iter_2400=32
multiply_factor_2400=1.3
num_for_alarm_2400=4
mad_k_on_2400=0
dbfs_linear_offset_db_2400=0
dbfs_linear_abs_median_scale_2400=0
#################
# 3300
#################
hack_3300=
c_freq_3300=3300
f_step_3300=-20e6
f_bases_3300=3.5e9
f_roofs_3300=3.3e9
signal_length_3300=1000000
buffer_columns_size_3300=11
num_of_thinning_iter_3300=32
multiply_factor_3300=1.3
num_for_alarm_3300=3
mad_k_on_3300=0
dbfs_linear_offset_db_3300=0
dbfs_linear_abs_median_scale_3300=0
#################
# 4500
#################
hack_4500=
c_freq_4500=4500
f_step_4500=-20e6
f_bases_4500=4.7e9
f_roofs_4500=4.5e9
signal_length_4500=1000000
buffer_columns_size_4500=11
num_of_thinning_iter_4500=32
multiply_factor_4500=1.3
num_for_alarm_4500=2
mad_k_on_4500=0
dbfs_linear_offset_db_4500=0
dbfs_linear_abs_median_scale_4500=0
#################
# 5200
#################
hack_5200=
c_freq_5200=5200
f_step_5200=-20e6
f_bases_5200=5.3e9
f_roofs_5200=5.1e9
signal_length_5200=1000000
buffer_columns_size_5200=11
num_of_thinning_iter_5200=32
multiply_factor_5200=1.08
num_for_alarm_5200=3
mad_k_on_5200=0
dbfs_linear_offset_db_5200=0
dbfs_linear_abs_median_scale_4500=0
#################
# 5800
#################
hack_5800=
c_freq_5800=5800
f_step_5800=-20e6
f_bases_5800=5.8e9
f_roofs_5800=5.5e9
signal_length_5800=1000000
buffer_columns_size_5800=11
num_of_thinning_iter_5800=32
multiply_factor_5800=1.08
num_for_alarm_5800=3
mad_k_on_5800=0
dbfs_linear_offset_db_5200=0
dbfs_linear_abs_median_scale_5800=0
#################
# MODULE SERVER (server_to_master)
#################
lochost=0.0.0.0
locport=5010
master_server_ip=192.168.11.223
master_server_port=3000
module_mac=bc:fc:e7:ca:87:2b
module_ip=192.168.11.223
threshold_to_alarm=5
num_of_clear_packs=5
time_to_jam=30
time_to_fresh=5
active_interval_to_send=1
passive_interval_to_send=60
gpsport=/dev/null
latitude=1
longitude=1
jamhost=127.0.0.1
jamport=3000
#################
# ORANGE SDR (915/1200/2400 -> NN_server)
#################
POROG_2400=0.01
HACKID_2400=
POROG_1200=0.01
HACKID_1200=
POROG_915=0.01
HACKID_915=
SERVER_IP_1=127.0.0.1
SERVER_PORT_1=8080
SERVER_IP_2=127.0.0.1
SERVER_PORT_2=8080
#################
# NN_SERVER
#################
FREQS=915,1200,2400
PATH_TO_NN=/app/NN_server/NN/
SRC_RESULT=/app/NN_server/result/
SRC_EXAMPLE=${PATH_TO_NN}example/
NN_1='${PATH_TO_NN}resnet18_1.pth && ${PATH_TO_NN}config_resnet18.yaml && ${SRC_EXAMPLE} && ${SRC_RESULT} && Resnet18_1_2400 && build_func_resnet18 && pre_func_resnet18 && inference_func_resnet18 && post_func_resnet18 && [drone,noise,wifi] && 10 && 1 && /app/NN_server/datasets/full_dataset_pic/'
NN_21='${PATH_TO_NN}ensemble_1.2.pth && ${PATH_TO_NN}config_ensemble.yaml && ${SRC_EXAMPLE} && ${SRC_RESULT} && ensemble_1200 && build_func_ensemble && pre_func_ensemble && inference_func_ensemble && post_func_ensemble && [drone,noise] && 10 && 1 && /app/NN_server/datasets/full_dataset/'
NN_22='${PATH_TO_NN}ensemble_915.pth && ${PATH_TO_NN}config_ensemble.yaml && ${SRC_EXAMPLE} && ${SRC_RESULT} && ensemble_915 && build_func_ensemble && pre_func_ensemble && inference_func_ensemble && post_func_ensemble && [drone,noise] && 10 && 1 && /app/NN_server/datasets/full_dataset/'
GENERAL_SERVER_IP=dronedetector-server-to-master
GENERAL_SERVER_PORT=5010
SERVER_IP=0.0.0.0
SERVER_PORT=8080
NN_HOT_RELOAD=1

2
.gitignore vendored

@ -147,7 +147,7 @@ celerybeat.pid
.env.bak*
.venv
env/
venv/
.venv/
ENV/
env.bak/
venv.bak/

@ -1,247 +0,0 @@
<#
.Synopsis
Activate a Python virtual environment for the current PowerShell session.
.Description
Pushes the python executable for a virtual environment to the front of the
$Env:PATH environment variable and sets the prompt to signify that you are
in a Python virtual environment. Makes use of the command line switches as
well as the `pyvenv.cfg` file values present in the virtual environment.
.Parameter VenvDir
Path to the directory that contains the virtual environment to activate. The
default value for this is the parent of the directory that the Activate.ps1
script is located within.
.Parameter Prompt
The prompt prefix to display when this virtual environment is activated. By
default, this prompt is the name of the virtual environment folder (VenvDir)
surrounded by parentheses and followed by a single space (ie. '(.venv) ').
.Example
Activate.ps1
Activates the Python virtual environment that contains the Activate.ps1 script.
.Example
Activate.ps1 -Verbose
Activates the Python virtual environment that contains the Activate.ps1 script,
and shows extra information about the activation as it executes.
.Example
Activate.ps1 -VenvDir C:\Users\MyUser\Common\.venv
Activates the Python virtual environment located in the specified location.
.Example
Activate.ps1 -Prompt "MyPython"
Activates the Python virtual environment that contains the Activate.ps1 script,
and prefixes the current prompt with the specified string (surrounded in
parentheses) while the virtual environment is active.
.Notes
On Windows, it may be required to enable this Activate.ps1 script by setting the
execution policy for the user. You can do this by issuing the following PowerShell
command:
PS C:\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
For more information on Execution Policies:
https://go.microsoft.com/fwlink/?LinkID=135170
#>
Param(
[Parameter(Mandatory = $false)]
[String]
$VenvDir,
[Parameter(Mandatory = $false)]
[String]
$Prompt
)
<# Function declarations --------------------------------------------------- #>
<#
.Synopsis
Remove all shell session elements added by the Activate script, including the
addition of the virtual environment's Python executable from the beginning of
the PATH variable.
.Parameter NonDestructive
If present, do not remove this function from the global namespace for the
session.
#>
function global:deactivate ([switch]$NonDestructive) {
# Revert to original values
# The prior prompt:
if (Test-Path -Path Function:_OLD_VIRTUAL_PROMPT) {
Copy-Item -Path Function:_OLD_VIRTUAL_PROMPT -Destination Function:prompt
Remove-Item -Path Function:_OLD_VIRTUAL_PROMPT
}
# The prior PYTHONHOME:
if (Test-Path -Path Env:_OLD_VIRTUAL_PYTHONHOME) {
Copy-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME -Destination Env:PYTHONHOME
Remove-Item -Path Env:_OLD_VIRTUAL_PYTHONHOME
}
# The prior PATH:
if (Test-Path -Path Env:_OLD_VIRTUAL_PATH) {
Copy-Item -Path Env:_OLD_VIRTUAL_PATH -Destination Env:PATH
Remove-Item -Path Env:_OLD_VIRTUAL_PATH
}
# Just remove the VIRTUAL_ENV altogether:
if (Test-Path -Path Env:VIRTUAL_ENV) {
Remove-Item -Path env:VIRTUAL_ENV
}
# Just remove VIRTUAL_ENV_PROMPT altogether.
if (Test-Path -Path Env:VIRTUAL_ENV_PROMPT) {
Remove-Item -Path env:VIRTUAL_ENV_PROMPT
}
# Just remove the _PYTHON_VENV_PROMPT_PREFIX altogether:
if (Get-Variable -Name "_PYTHON_VENV_PROMPT_PREFIX" -ErrorAction SilentlyContinue) {
Remove-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Scope Global -Force
}
# Leave deactivate function in the global namespace if requested:
if (-not $NonDestructive) {
Remove-Item -Path function:deactivate
}
}
<#
.Description
Get-PyVenvConfig parses the values from the pyvenv.cfg file located in the
given folder, and returns them in a map.
For each line in the pyvenv.cfg file, if that line can be parsed into exactly
two strings separated by `=` (with any amount of whitespace surrounding the =)
then it is considered a `key = value` line. The left hand string is the key,
the right hand is the value.
If the value starts with a `'` or a `"` then the first and last character is
stripped from the value before being captured.
.Parameter ConfigDir
Path to the directory that contains the `pyvenv.cfg` file.
#>
function Get-PyVenvConfig(
[String]
$ConfigDir
) {
Write-Verbose "Given ConfigDir=$ConfigDir, obtain values in pyvenv.cfg"
# Ensure the file exists, and issue a warning if it doesn't (but still allow the function to continue).
$pyvenvConfigPath = Join-Path -Resolve -Path $ConfigDir -ChildPath 'pyvenv.cfg' -ErrorAction Continue
# An empty map will be returned if no config file is found.
$pyvenvConfig = @{ }
if ($pyvenvConfigPath) {
Write-Verbose "File exists, parse `key = value` lines"
$pyvenvConfigContent = Get-Content -Path $pyvenvConfigPath
$pyvenvConfigContent | ForEach-Object {
$keyval = $PSItem -split "\s*=\s*", 2
if ($keyval[0] -and $keyval[1]) {
$val = $keyval[1]
# Remove extraneous quotations around a string value.
if ("'""".Contains($val.Substring(0, 1))) {
$val = $val.Substring(1, $val.Length - 2)
}
$pyvenvConfig[$keyval[0]] = $val
Write-Verbose "Adding Key: '$($keyval[0])'='$val'"
}
}
}
return $pyvenvConfig
}
<# Begin Activate script --------------------------------------------------- #>
# Determine the containing directory of this script
$VenvExecPath = Split-Path -Parent $MyInvocation.MyCommand.Definition
$VenvExecDir = Get-Item -Path $VenvExecPath
Write-Verbose "Activation script is located in path: '$VenvExecPath'"
Write-Verbose "VenvExecDir Fullname: '$($VenvExecDir.FullName)"
Write-Verbose "VenvExecDir Name: '$($VenvExecDir.Name)"
# Set values required in priority: CmdLine, ConfigFile, Default
# First, get the location of the virtual environment, it might not be
# VenvExecDir if specified on the command line.
if ($VenvDir) {
Write-Verbose "VenvDir given as parameter, using '$VenvDir' to determine values"
}
else {
Write-Verbose "VenvDir not given as a parameter, using parent directory name as VenvDir."
$VenvDir = $VenvExecDir.Parent.FullName.TrimEnd("\\/")
Write-Verbose "VenvDir=$VenvDir"
}
# Next, read the `pyvenv.cfg` file to determine any required value such
# as `prompt`.
$pyvenvCfg = Get-PyVenvConfig -ConfigDir $VenvDir
# Next, set the prompt from the command line, or the config file, or
# just use the name of the virtual environment folder.
if ($Prompt) {
Write-Verbose "Prompt specified as argument, using '$Prompt'"
}
else {
Write-Verbose "Prompt not specified as argument to script, checking pyvenv.cfg value"
if ($pyvenvCfg -and $pyvenvCfg['prompt']) {
Write-Verbose " Setting based on value in pyvenv.cfg='$($pyvenvCfg['prompt'])'"
$Prompt = $pyvenvCfg['prompt'];
}
else {
Write-Verbose " Setting prompt based on parent's directory's name. (Is the directory name passed to venv module when creating the virtual environment)"
Write-Verbose " Got leaf-name of $VenvDir='$(Split-Path -Path $venvDir -Leaf)'"
$Prompt = Split-Path -Path $venvDir -Leaf
}
}
Write-Verbose "Prompt = '$Prompt'"
Write-Verbose "VenvDir='$VenvDir'"
# Deactivate any currently active virtual environment, but leave the
# deactivate function in place.
deactivate -nondestructive
# Now set the environment variable VIRTUAL_ENV, used by many tools to determine
# that there is an activated venv.
$env:VIRTUAL_ENV = $VenvDir
if (-not $Env:VIRTUAL_ENV_DISABLE_PROMPT) {
Write-Verbose "Setting prompt to '$Prompt'"
# Set the prompt to include the env name
# Make sure _OLD_VIRTUAL_PROMPT is global
function global:_OLD_VIRTUAL_PROMPT { "" }
Copy-Item -Path function:prompt -Destination function:_OLD_VIRTUAL_PROMPT
New-Variable -Name _PYTHON_VENV_PROMPT_PREFIX -Description "Python virtual environment prompt prefix" -Scope Global -Option ReadOnly -Visibility Public -Value $Prompt
function global:prompt {
Write-Host -NoNewline -ForegroundColor Green "($_PYTHON_VENV_PROMPT_PREFIX) "
_OLD_VIRTUAL_PROMPT
}
$env:VIRTUAL_ENV_PROMPT = $Prompt
}
# Clear PYTHONHOME
if (Test-Path -Path Env:PYTHONHOME) {
Copy-Item -Path Env:PYTHONHOME -Destination Env:_OLD_VIRTUAL_PYTHONHOME
Remove-Item -Path Env:PYTHONHOME
}
# Add the venv to the PATH
Copy-Item -Path Env:PATH -Destination Env:_OLD_VIRTUAL_PATH
$Env:PATH = "$VenvExecDir$([System.IO.Path]::PathSeparator)$Env:PATH"

@ -1,70 +0,0 @@
# This file must be used with "source bin/activate" *from bash*
# You cannot run it directly
deactivate () {
# reset old environment variables
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then
PATH="${_OLD_VIRTUAL_PATH:-}"
export PATH
unset _OLD_VIRTUAL_PATH
fi
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}"
export PYTHONHOME
unset _OLD_VIRTUAL_PYTHONHOME
fi
# Call hash to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
hash -r 2> /dev/null
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then
PS1="${_OLD_VIRTUAL_PS1:-}"
export PS1
unset _OLD_VIRTUAL_PS1
fi
unset VIRTUAL_ENV
unset VIRTUAL_ENV_PROMPT
if [ ! "${1:-}" = "nondestructive" ] ; then
# Self destruct!
unset -f deactivate
fi
}
# unset irrelevant variables
deactivate nondestructive
# on Windows, a path can contain colons and backslashes and has to be converted:
if [ "${OSTYPE:-}" = "cygwin" ] || [ "${OSTYPE:-}" = "msys" ] ; then
# transform D:\path\to\venv to /d/path/to/venv on MSYS
# and to /cygdrive/d/path/to/venv on Cygwin
export VIRTUAL_ENV=$(cygpath /home/sibscience-4/from_ssh/DroneDetector/.venv-sdr)
else
# use the path as-is
export VIRTUAL_ENV=/home/sibscience-4/from_ssh/DroneDetector/.venv-sdr
fi
_OLD_VIRTUAL_PATH="$PATH"
PATH="$VIRTUAL_ENV/"bin":$PATH"
export PATH
# unset PYTHONHOME if set
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
# could use `if (set -u; : $PYTHONHOME) ;` in bash
if [ -n "${PYTHONHOME:-}" ] ; then
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}"
unset PYTHONHOME
fi
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then
_OLD_VIRTUAL_PS1="${PS1:-}"
PS1='(.venv-sdr) '"${PS1:-}"
export PS1
VIRTUAL_ENV_PROMPT='(.venv-sdr) '
export VIRTUAL_ENV_PROMPT
fi
# Call hash to forget past commands. Without forgetting
# past commands the $PATH changes we made may not be respected
hash -r 2> /dev/null

@ -1,27 +0,0 @@
# This file must be used with "source bin/activate.csh" *from csh*.
# You cannot run it directly.
# Created by Davide Di Blasi <davidedb@gmail.com>.
# Ported to Python 3.3 venv by Andrew Svetlov <andrew.svetlov@gmail.com>
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; unsetenv VIRTUAL_ENV_PROMPT; test "\!:*" != "nondestructive" && unalias deactivate'
# Unset irrelevant variables.
deactivate nondestructive
setenv VIRTUAL_ENV /home/sibscience-4/from_ssh/DroneDetector/.venv-sdr
set _OLD_VIRTUAL_PATH="$PATH"
setenv PATH "$VIRTUAL_ENV/"bin":$PATH"
set _OLD_VIRTUAL_PROMPT="$prompt"
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then
set prompt = '(.venv-sdr) '"$prompt"
setenv VIRTUAL_ENV_PROMPT '(.venv-sdr) '
endif
alias pydoc python -m pydoc
rehash

@ -1,69 +0,0 @@
# This file must be used with "source <venv>/bin/activate.fish" *from fish*
# (https://fishshell.com/). You cannot run it directly.
function deactivate -d "Exit virtual environment and return to normal shell environment"
# reset old environment variables
if test -n "$_OLD_VIRTUAL_PATH"
set -gx PATH $_OLD_VIRTUAL_PATH
set -e _OLD_VIRTUAL_PATH
end
if test -n "$_OLD_VIRTUAL_PYTHONHOME"
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME
set -e _OLD_VIRTUAL_PYTHONHOME
end
if test -n "$_OLD_FISH_PROMPT_OVERRIDE"
set -e _OLD_FISH_PROMPT_OVERRIDE
# prevents error when using nested fish instances (Issue #93858)
if functions -q _old_fish_prompt
functions -e fish_prompt
functions -c _old_fish_prompt fish_prompt
functions -e _old_fish_prompt
end
end
set -e VIRTUAL_ENV
set -e VIRTUAL_ENV_PROMPT
if test "$argv[1]" != "nondestructive"
# Self-destruct!
functions -e deactivate
end
end
# Unset irrelevant variables.
deactivate nondestructive
set -gx VIRTUAL_ENV /home/sibscience-4/from_ssh/DroneDetector/.venv-sdr
set -gx _OLD_VIRTUAL_PATH $PATH
set -gx PATH "$VIRTUAL_ENV/"bin $PATH
# Unset PYTHONHOME if set.
if set -q PYTHONHOME
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME
set -e PYTHONHOME
end
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT"
# fish uses a function instead of an env var to generate the prompt.
# Save the current fish_prompt function as the function _old_fish_prompt.
functions -c fish_prompt _old_fish_prompt
# With the original prompt function renamed, we can override with our own.
function fish_prompt
# Save the return status of the last command.
set -l old_status $status
# Output the venv prompt; color taken from the blue of the Python logo.
printf "%s%s%s" (set_color 4B8BBE) '(.venv-sdr) ' (set_color normal)
# Restore the return status of the previous command.
echo "exit $old_status" | .
# Output the original/"old" prompt.
_old_fish_prompt
end
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV"
set -gx VIRTUAL_ENV_PROMPT '(.venv-sdr) '
end

@ -1,6 +0,0 @@
#!/home/sibscience-4/from_ssh/DroneDetector/.venv-sdr/bin/python3
import sys
from numpy.f2py.f2py2e import main
if __name__ == '__main__':
sys.argv[0] = sys.argv[0].removesuffix('.exe')
sys.exit(main())

@ -1,6 +0,0 @@
#!/home/sibscience-4/from_ssh/DroneDetector/.venv-sdr/bin/python3
import sys
from charset_normalizer.cli import cli_detect
if __name__ == '__main__':
sys.argv[0] = sys.argv[0].removesuffix('.exe')
sys.exit(cli_detect())

@ -1,8 +0,0 @@
#!/home/sibscience-4/from_ssh/DroneDetector/.venv-sdr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

@ -1,8 +0,0 @@
#!/home/sibscience-4/from_ssh/DroneDetector/.venv-sdr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

@ -1,8 +0,0 @@
#!/home/sibscience-4/from_ssh/DroneDetector/.venv-sdr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pip._internal.cli.main import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

@ -1 +0,0 @@
/usr/bin/python3

@ -1,5 +0,0 @@
home = /usr/bin
include-system-site-packages = true
version = 3.12.3
executable = /usr/bin/python3.12
command = /usr/bin/python3 -m venv --system-site-packages /home/sibscience-4/from_ssh/DroneDetector/.venv-sdr

@ -0,0 +1,66 @@
# CLAUDE.md
Behavioral guidelines to reduce common LLM coding mistakes. Merge with project-specific instructions as needed.
**Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.
## 1. Think Before Coding
**Don't assume. Don't hide confusion. Surface tradeoffs.**
Before implementing:
- State your assumptions explicitly. If uncertain, ask.
- If multiple interpretations exist, present them - don't pick silently.
- If a simpler approach exists, say so. Push back when warranted.
- If something is unclear, stop. Name what's confusing. Ask.
## 2. Simplicity First
**Minimum code that solves the problem. Nothing speculative.**
- No features beyond what was asked.
- No abstractions for single-use code.
- No "flexibility" or "configurability" that wasn't requested.
- No error handling for impossible scenarios.
- If you write 200 lines and it could be 50, rewrite it.
Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.
## 3. Surgical Changes
**Touch only what you must. Clean up only your own mess.**
When editing existing code:
- Don't "improve" adjacent code, comments, or formatting.
- Don't refactor things that aren't broken.
- Match existing style, even if you'd do it differently.
- If you notice unrelated dead code, mention it - don't delete it.
When your changes create orphans:
- Remove imports/variables/functions that YOUR changes made unused.
- Don't remove pre-existing dead code unless asked.
The test: Every changed line should trace directly to the user's request.
## 4. Goal-Driven Execution
**Define success criteria. Loop until verified.**
Transform tasks into verifiable goals:
- "Add validation" → "Write tests for invalid inputs, then make them pass"
- "Fix the bug" → "Write a test that reproduces it, then make it pass"
- "Refactor X" → "Ensure tests pass before and after"
For multi-step tasks, state a brief plan:
```
1. [Step] → verify: [check]
2. [Step] → verify: [check]
3. [Step] → verify: [check]
```
Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.
---
**These guidelines are working if:** fewer unnecessary changes in diffs, fewer rewrites due to overcomplication, and clarifying questions come before implementation rather than after mistakes.

@ -173,8 +173,7 @@ sudo systemctl stop dronedetector-sdr-5800.service
sudo systemctl stop dronedetector-sdr-1200.service
sudo systemctl stop dronedetector-sdr-2400.service
sudo systemctl stop dronedetector-sdr-1500.service
sudo systemctl stop dronedetector-sdr-868.service
sudo systemctl stop dronedetector-sdr-868-915.service
sudo systemctl stop dronedetector-sdr-915.service
```
@ -198,8 +197,6 @@ since="$(systemctl show -p ActiveEnterTimestamp --value dronedetector-sdr-5800.s
sudo journalctl -u dronedetector-sdr-5800.service --since "$since" --no-pager
```
### Просмотр логов от server-to-master
``` bash
docker compose -f deploy/docker/docker-compose.yml logs --timestamps dronedetector-server-to-master | tail -n 50
@ -210,4 +207,24 @@ docker compose -f deploy/docker/docker-compose.yml logs --timestamps dronedetect
sudo hackrf_spiflash -w hackrf_one_usb.bin
```
./.venv-sdr/bin/python scripts_nn/data_saver_headless.py --serial 000 --freq 4500000000 --save-dir /home/sibscience-4/Dataset/3300 --file-tag DJI_3_ --samp-rate 20000000 --split-size 400000 --delay 0.1 --rf-gain 12 --if-gain 30 --bb-gain 36
### Wide_read_energy
``` bash
./.venv-sdr/bin/python read_energy_wide.py \
--serial 0000000000000000a18c63dc2a83b813 \
--sample-rate 20000000 \
--base 6000 \
--roof 5700 \
--step 20
```
### Проверка тревоги
``` bash
curl -X POST 'http://127.0.0.1:5010/process_data' \
-H 'Content-Type: application/json' \
-d '{"freq":"1200","amplitude":9}'
```
### Read_energy
``` bash
.venv-sdr/bin/python read_energy.py
```

@ -1,31 +1,44 @@
#!/usr/bin/env bash
set -Eeuo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SCRIPT_OWNER="${CAPTURE_USER:-$(stat -c %U "$SCRIPT_DIR")}"
SCRIPT_OWNER_HOME="$(getent passwd "$SCRIPT_OWNER" | cut -d: -f6)"
cd "$SCRIPT_DIR"
source "$SCRIPT_DIR/.env"
############################
# НАСТРОЙКИ
############################
# ЗАМЕНИ на реальную точку монтирования nvme1n1
BASE_DIR="/mnt/nvme1/dataset"
BASE_DIR="${CAPTURE_BASE_DIR:-${SCRIPT_OWNER_HOME}/dataset/noise}"
# Путь к python из venv
PYTHON_BIN="${PYTHON_BIN:-$PWD/.venv-sdr/bin/python}"
PYTHON_BIN="${PYTHON_BIN:-$SCRIPT_DIR/.venv-sdr/bin/python}"
# Путь к headless скрипту
SCRIPT_PATH="${SCRIPT_PATH:-$PWD/scripts_nn/data_saver_headless.py}"
SCRIPT_PATH="${SCRIPT_PATH:-$SCRIPT_DIR/scripts_nn/data_saver_headless.py}"
RUN_ONCE="${RUN_ONCE:-0}"
CAPTURE_LOG_FILE="${CAPTURE_LOG_FILE:-$BASE_DIR/capture_hourly.log}"
SYSTEMCTL_BIN=(systemctl)
CURRENT_CAPTURE_PID=""
CURRENT_SERVICE_UNIT=""
# Проверка, что каталог реально на nvme1n1
EXPECTED_DEVICE_PREFIX="/dev/nvme1n1"
# Лимиты
PER_FREQ_LIMIT_BYTES=$((3 * 1024 * 1024 * 1024)) # 3 GiB на частоту за запуск
TOTAL_LIMIT_BYTES=$((128 * 1024 * 1024 * 1024)) # общий лимит 512 GiB
CYCLE_SECONDS=36 # один цикл в час
lim_all=10
PER_FREQ_LIMIT_BYTES=$((1 * 1024 * 1024 * 1024)) # GiB на частоту за запуск
TOTAL_LIMIT_BYTES=$((lim_all * 1024 * 1024 * 1024)) # общий лимит GiB
CYCLE_SECONDS=1 # один цикл в час
# Параметры SDR
SAMP_RATE="20e6"
SPLIT_SIZE="400000"
DELAY="0.1"
DELAY="0.01"
RF_GAIN="12"
IF_GAIN="30"
BB_GAIN="36"
@ -34,41 +47,51 @@ BB_GAIN="36"
# ЧАСТОТЫ И SERIAL ИЗ ENV
############################
ORDER=(433 750 915 1200 2400 3300 4500 5200 5800)
ORDER=(433)
declare -A SERIAL
declare -A FREQ_HZ
declare -A SERVICE_UNIT
SERIAL[433]="0000000000000000114864dc382a8e1b"
SERIAL[433]="$hack_433"
FREQ_HZ[433]="433000000"
SERIAL[750]="0000000000000000114864dc383d0d1b"
SERIAL[750]="$hack_750"
FREQ_HZ[750]="750000000"
SERIAL[868]="000000000000000026a468dc36066b63"
FREQ_HZ[868]="868000000"
SERIAL[915]="000000000000000026a468dc36066b63"
SERIAL[915]="$hack_915"
FREQ_HZ[915]="915000000"
SERIAL[1200]="0000000000000000518864dc32660d83"
SERIAL[1200]="$hack_1200"
FREQ_HZ[1200]="1200000000"
SERIAL[2400]="0000000000000000919068dc3437b31f"
SERIAL[2400]="$hack_2400"
FREQ_HZ[2400]="2400000000"
SERIAL[3300]="0000000000000000114864dc325069a3"
SERIAL[3300]="$hack_3300"
FREQ_HZ[3300]="3300000000"
SERIAL[4500]="0000000000000000518864dc33833183"
SERIAL[4500]="$hack_4500"
FREQ_HZ[4500]="4500000000"
SERIAL[5200]="0000000000000000874461dc241c7857"
SERIAL[5200]="$hack_5200"
FREQ_HZ[5200]="5200000000"
SERIAL[5800]="0000000000000000919068dc35781c1f"
SERIAL[5800]="$hack_5800"
FREQ_HZ[5800]="5800000000"
SERVICE_UNIT[433]="dronedetector-sdr-433.service"
SERVICE_UNIT[750]="dronedetector-sdr-750.service"
SERVICE_UNIT[915]="dronedetector-sdr-915.service"
SERVICE_UNIT[1200]="dronedetector-sdr-1200.service"
SERVICE_UNIT[2400]="dronedetector-sdr-2400.service"
SERVICE_UNIT[3300]="dronedetector-sdr-3300.service"
SERVICE_UNIT[4500]="dronedetector-sdr-4500.service"
SERVICE_UNIT[5200]="dronedetector-sdr-5200.service"
SERVICE_UNIT[5800]="dronedetector-sdr-5800.service"
############################
# ВСПОМОГАТЕЛЬНОЕ
############################
@ -77,6 +100,65 @@ log() {
printf '[%s] %s\n' "$(date '+%F %T')" "$*"
}
systemctl_run() {
"${SYSTEMCTL_BIN[@]}" "$@"
}
service_exists() {
local unit="$1"
systemctl_run show "$unit" >/dev/null 2>&1
}
stop_band_service() {
local band="$1"
local unit="${SERVICE_UNIT[$band]:-}"
if [[ -z "$unit" ]]; then
log "Для band=$band не найден service unit"
return 0
fi
if ! service_exists "$unit"; then
log "Service unit $unit не установлен, пропускаю stop/start"
return 0
fi
log "Останавливаю service $unit перед записью band=$band"
systemctl_run stop "$unit"
CURRENT_SERVICE_UNIT="$unit"
}
start_current_service() {
if [[ -z "$CURRENT_SERVICE_UNIT" ]]; then
return 0
fi
log "Запускаю service $CURRENT_SERVICE_UNIT после записи"
systemctl_run start "$CURRENT_SERVICE_UNIT"
CURRENT_SERVICE_UNIT=""
}
cleanup_capture() {
if [[ -n "$CURRENT_CAPTURE_PID" ]] && kill -0 "$CURRENT_CAPTURE_PID" 2>/dev/null; then
log "Останавливаю текущий PID=$CURRENT_CAPTURE_PID при завершении скрипта"
kill -TERM "$CURRENT_CAPTURE_PID" 2>/dev/null || true
wait "$CURRENT_CAPTURE_PID" 2>/dev/null || true
fi
CURRENT_CAPTURE_PID=""
if [[ -n "$CURRENT_SERVICE_UNIT" ]]; then
log "Восстанавливаю service $CURRENT_SERVICE_UNIT при завершении скрипта"
systemctl_run start "$CURRENT_SERVICE_UNIT" || true
CURRENT_SERVICE_UNIT=""
fi
}
on_signal() {
local sig="$1"
log "Получен сигнал $sig, завершаю работу"
exit 130
}
dir_size_bytes() {
local path="$1"
if [[ -e "$path" ]]; then
@ -101,16 +183,41 @@ ensure_requirements() {
exit 1
fi
if ! command -v systemctl >/dev/null 2>&1; then
echo "Не найден systemctl" >&2
exit 1
fi
if [[ "${EUID}" -ne 0 ]]; then
if command -v sudo >/dev/null 2>&1; then
SYSTEMCTL_BIN=(sudo systemctl)
else
echo "Для управления service нужен root или sudo" >&2
exit 1
fi
fi
mkdir -p "$BASE_DIR"
mkdir -p "$(dirname "$CAPTURE_LOG_FILE")"
local dev
dev="$(df -P "$BASE_DIR" | awk 'NR==2 {print $1}')"
if [[ -n "${CAPTURE_ORDER:-}" ]]; then
ORDER=()
local band
for band in ${CAPTURE_ORDER//,/ }; do
ORDER+=("$band")
done
fi
if [[ "$dev" != ${EXPECTED_DEVICE_PREFIX}* ]]; then
echo "BASE_DIR=$BASE_DIR сейчас находится на $dev, а ожидался ${EXPECTED_DEVICE_PREFIX}*" >&2
echo "Исправь BASE_DIR на точку монтирования nvme1n1" >&2
if [[ "${#ORDER[@]}" -eq 0 ]]; then
echo "ORDER пустой. Укажите частоты в ORDER или задайте CAPTURE_ORDER." >&2
exit 1
fi
log "Рабочая директория: $SCRIPT_DIR"
log "BASE_DIR: $BASE_DIR"
log "ORDER: ${ORDER[*]}"
log "RUN_ONCE: $RUN_ONCE"
}
run_one_freq() {
@ -118,14 +225,23 @@ run_one_freq() {
local serial="${SERIAL[$band]}"
local freq="${FREQ_HZ[$band]}"
if [[ -z "$serial" ]]; then
log "Для band=$band пустой serial, пропускаю"
return 0
fi
local ts out_dir log_file
ts="$(date '+%F_%H-%M-%S')"
out_dir="$BASE_DIR/$band/$ts"
log_file="$out_dir/run.log"
mkdir -p "$out_dir"
log "Старт band=$band serial=$serial freq=$freq dir=$out_dir"
if ! mkdir -p "$out_dir"; then
log "Не удалось создать каталог $out_dir"
return 1
fi
stop_band_service "$band"
"$PYTHON_BIN" "$SCRIPT_PATH" \
--serial "$serial" \
@ -141,6 +257,7 @@ run_one_freq() {
>"$log_file" 2>&1 &
local pid=$!
CURRENT_CAPTURE_PID="$pid"
log "PID=$pid"
while kill -0 "$pid" 2>/dev/null; do
@ -149,9 +266,11 @@ run_one_freq() {
cur_total_size="$(total_size_bytes)"
if (( cur_total_size >= TOTAL_LIMIT_BYTES )); then
log "Достигнут общий лимит 512 GiB. Останавливаю PID=$pid"
log "Достигнут общий лимит $lim_all GiB. Останавливаю PID=$pid"
kill -TERM "$pid" 2>/dev/null || true
wait "$pid" 2>/dev/null || true
CURRENT_CAPTURE_PID=""
start_current_service
return 2
fi
@ -178,6 +297,8 @@ run_one_freq() {
sleep 1
done
CURRENT_CAPTURE_PID=""
start_current_service
log "Завершен band=$band, размер=$(du -sh "$out_dir" | awk '{print $1}')"
return 0
}
@ -188,7 +309,7 @@ main_loop() {
total_before="$(total_size_bytes)"
if (( total_before >= TOTAL_LIMIT_BYTES )); then
log "Общий размер уже >= 512 GiB, выхожу"
log "Общий размер уже >= GiB, выхожу"
break
fi
@ -206,10 +327,18 @@ main_loop() {
if [[ $rc -eq 2 ]]; then
log "Остановка по общему лимиту"
return 0
else
log "Ошибка записи band=$band rc=$rc"
return "$rc"
fi
}
done
if [[ "$RUN_ONCE" == "1" ]]; then
log "RUN_ONCE=1, завершаю работу после одного цикла"
break
fi
elapsed=$(( $(date +%s) - cycle_start ))
sleep_left=$(( CYCLE_SECONDS - elapsed ))
@ -222,5 +351,9 @@ main_loop() {
done
}
trap cleanup_capture EXIT
trap 'on_signal INT' INT
trap 'on_signal TERM' TERM
ensure_requirements
main_loop
main_loop

@ -11,7 +11,18 @@ services:
- PYTHONPATH=/app
- JAMMER_STATE_FILE=/app/runtime/jammer_active.flag
working_dir: /app
command: ["python3", "-m", "src.server_to_master"]
command:
- uvicorn
- src.server_to_master:app
- --host
- 0.0.0.0
- --port
- "5010"
- --reload
- --reload-dir
- /app/src
- --reload-dir
- /app/common
restart: unless-stopped
ports:
- "5010:5010"
@ -67,7 +78,18 @@ services:
environment:
- PYTHONPATH=/app
working_dir: /app
command: ["python3", "-m", "telemetry.telemetry_server"]
command:
- uvicorn
- telemetry.telemetry_server:app
- --host
- 0.0.0.0
- --port
- "5020"
- --reload
- --reload-dir
- /app/telemetry
- --reload-dir
- /app/common
restart: unless-stopped
ports:
- "5020:5020"

@ -8,9 +8,9 @@ Requires=docker.service
Type=oneshot
WorkingDirectory=__PROJECT_ROOT__
RemainAfterExit=yes
ExecStart=/usr/bin/docker compose -f __PROJECT_ROOT__/deploy/docker/docker-compose.yml up -d --build
ExecStart=/usr/bin/docker compose -f __PROJECT_ROOT__/deploy/docker/docker-compose.yml up -d
ExecStop=/usr/bin/docker compose -f __PROJECT_ROOT__/deploy/docker/docker-compose.yml down
ExecReload=/usr/bin/docker compose -f __PROJECT_ROOT__/deploy/docker/docker-compose.yml up -d --build
ExecReload=/usr/bin/docker compose -f __PROJECT_ROOT__/deploy/docker/docker-compose.yml up -d
TimeoutStartSec=0
[Install]

@ -10,8 +10,7 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python orange_scripts/main_1200.py
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_1200.py
Restart=always
RestartSec=3

@ -10,7 +10,6 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_1500.py
Restart=always
RestartSec=3

@ -10,8 +10,7 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python orange_scripts/main_2400.py
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_2400.py
Restart=always
RestartSec=3

@ -10,7 +10,6 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_3300.py
Restart=always
RestartSec=3

@ -10,7 +10,6 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_433.py
Restart=always
RestartSec=3

@ -10,7 +10,6 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_4500.py
Restart=always
RestartSec=3

@ -10,7 +10,6 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_5200.py
Restart=always
RestartSec=3

@ -10,7 +10,6 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_5800.py
Restart=always
RestartSec=3

@ -10,7 +10,6 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_750.py
Restart=always
RestartSec=3

@ -1,19 +0,0 @@
[Unit]
Description=DroneDetector SDR Router 868/915 Shared HackRF
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=__RUN_USER__
Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_868_915_router.py
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target

@ -1,20 +0,0 @@
[Unit]
Description=DroneDetector SDR Scanner 868 MHz
After=network-online.target dronedetector-sdr-868-915.service
Wants=network-online.target
Requires=dronedetector-sdr-868-915.service
[Service]
Type=simple
User=__RUN_USER__
Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_868.py
Restart=always
RestartSec=3
[Install]
WantedBy=multi-user.target

@ -1,8 +1,7 @@
[Unit]
Description=DroneDetector SDR Scanner 915 MHz
After=network-online.target dronedetector-sdr-868-915.service
After=network-online.target
Wants=network-online.target
Requires=dronedetector-sdr-868-915.service
[Service]
Type=simple
@ -11,8 +10,7 @@ Group=__RUN_GROUP__
WorkingDirectory=__PROJECT_ROOT__
EnvironmentFile=__PROJECT_ROOT__/.env
Environment=PYTHONPATH=__PROJECT_ROOT__
ExecStartPre=/usr/local/bin/dronedetector-precheck-sdr.sh
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python orange_scripts/main_915.py
ExecStart=__PROJECT_ROOT__/.venv-sdr/bin/python src/main_915.py
Restart=always
RestartSec=3

@ -1,22 +0,0 @@
#!/usr/bin/env bash
set -euo pipefail
if ! command -v hackrf_info >/dev/null 2>&1; then
echo "[dronedetector-precheck] hackrf_info not found. Install hackrf-tools/hackrf package." >&2
exit 1
fi
if ! command -v gnuradio-config-info >/dev/null 2>&1; then
echo "[dronedetector-precheck] gnuradio-config-info not found. Install gnuradio." >&2
exit 1
fi
if ! python3 -c "import osmosdr" >/dev/null 2>&1; then
echo "[dronedetector-precheck] Python module osmosdr not importable." >&2
exit 1
fi
if ! hackrf_info 2>/dev/null | grep -q "Found HackRF"; then
echo "[dronedetector-precheck] HackRF device was not detected by hackrf_info." >&2
exit 1
fi

@ -7,11 +7,13 @@ SYSTEMD_TARGET_DIR="/etc/systemd/system"
RUN_USER="${SUDO_USER:-${USER}}"
RUN_GROUP="$(id -gn "${RUN_USER}")"
SOURCE_ARCHIVES=(
"torchsig.tar.gz:torchsig:pyproject.toml"
)
SDR_UNITS=(
dronedetector-sdr-433.service
dronedetector-sdr-750.service
dronedetector-sdr-868-915.service
dronedetector-sdr-868.service
dronedetector-sdr-1500.service
dronedetector-sdr-3300.service
dronedetector-sdr-4500.service
@ -22,6 +24,8 @@ SDR_UNITS=(
dronedetector-sdr-2400.service
)
CONFIGURED_SDR_UNITS=()
log() {
printf '[install_all] %s\n' "$*"
}
@ -31,6 +35,51 @@ die() {
exit 1
}
sdr_unit_env_key() {
local unit="$1"
local band="${unit#dronedetector-sdr-}"
band="${band%.service}"
printf 'hack_%s\n' "$band"
}
get_env_value() {
local key="$1"
awk -F= -v key="$key" '
$1 == key {
value = substr($0, index($0, "=") + 1)
sub(/^[[:space:]]+/, "", value)
sub(/[[:space:]]+$/, "", value)
gsub(/^"/, "", value)
gsub(/"$/, "", value)
gsub(/^'\''/, "", value)
gsub(/'\''$/, "", value)
print value
exit
}
' "${PROJECT_ROOT}/.env"
}
populate_configured_sdr_units() {
CONFIGURED_SDR_UNITS=()
local unit env_key env_value
for unit in "${SDR_UNITS[@]}"; do
env_key="$(sdr_unit_env_key "$unit")"
env_value="$(get_env_value "$env_key")"
if [[ -n "$env_value" ]]; then
CONFIGURED_SDR_UNITS+=("$unit")
else
log "Skipping ${unit}: ${env_key} is empty in .env"
fi
done
if [[ "${#CONFIGURED_SDR_UNITS[@]}" -eq 0 ]]; then
log "No SDR units are configured in .env"
else
log "Configured SDR units: ${CONFIGURED_SDR_UNITS[*]}"
fi
}
print_failure_logs() {
log "Collecting diagnostics..."
systemctl --no-pager --full status dronedetector-compose.service || true
@ -59,6 +108,35 @@ require_root() {
fi
}
extract_local_source_archives() {
local spec archive_rel target_rel sentinel_rel
local archive_path target_path sentinel_path
for spec in "${SOURCE_ARCHIVES[@]}"; do
IFS=':' read -r archive_rel target_rel sentinel_rel <<< "$spec"
archive_path="${PROJECT_ROOT}/${archive_rel}"
target_path="${PROJECT_ROOT}/${target_rel}"
sentinel_path="${target_path}/${sentinel_rel}"
if [[ -f "${sentinel_path}" ]]; then
log "Vendored source already available: ${target_rel}"
continue
fi
if [[ -e "${target_path}" ]]; then
die "Found ${target_path}, but ${sentinel_rel} is missing. Remove or repair this directory, then rerun the installer."
fi
[[ -f "${archive_path}" ]] || die "Missing vendored source ${target_path} and archive ${archive_path}"
command -v tar >/dev/null 2>&1 || die "tar is required to unpack ${archive_rel}"
log "Extracting ${archive_rel} -> ${target_rel}"
tar -xzf "${archive_path}" -C "${PROJECT_ROOT}"
[[ -f "${sentinel_path}" ]] || die "Archive ${archive_path} did not unpack expected file ${sentinel_path}"
chown -R "${RUN_USER}:${RUN_GROUP}" "${target_path}"
done
}
preflight() {
log "Preflight checks"
[[ -f "${PROJECT_ROOT}/.env" ]] || die "Missing ${PROJECT_ROOT}/.env"
@ -171,8 +249,6 @@ build_and_run_compose() {
install_systemd_units() {
log "Installing systemd units"
install -m 0755 "${PROJECT_ROOT}/deploy/systemd/precheck-sdr.sh" /usr/local/bin/dronedetector-precheck-sdr.sh
local src dst
for src in "${PROJECT_ROOT}"/deploy/systemd/*.service; do
dst="${SYSTEMD_TARGET_DIR}/$(basename "$src")"
@ -187,7 +263,7 @@ install_systemd_units() {
systemctl enable dronedetector-compose.service
systemctl restart dronedetector-compose.service
for unit in "${SDR_UNITS[@]}"; do
for unit in "${CONFIGURED_SDR_UNITS[@]}"; do
systemctl enable "$unit"
systemctl restart "$unit"
done
@ -212,7 +288,7 @@ verify_installation() {
log "Verifying services"
wait_for_systemd_active dronedetector-compose.service 30 || die "dronedetector-compose.service is not active"
for unit in "${SDR_UNITS[@]}"; do
for unit in "${CONFIGURED_SDR_UNITS[@]}"; do
wait_for_systemd_active "$unit" 45 || die "$unit is not active"
done
@ -222,7 +298,7 @@ verify_installation() {
running_services="$(docker compose -f "$COMPOSE_FILE" ps --status running --services || true)"
printf '%s\n' "$running_services" | grep -Fxq "dronedetector-server-to-master" || die "server_to_master is not running"
printf '%s\n' "$running_services" | grep -Fxq "dronedetector-nn-server" || die "NN_server is not running"
printf '%s\n' "$running_services" | grep -Fxq "dronedetector-telemetry-server" || die "telemetry_server is not running"
log "Verification completed"
}
@ -233,7 +309,9 @@ main() {
log "Project root: ${PROJECT_ROOT}"
log "Runtime user: ${RUN_USER}:${RUN_GROUP}"
extract_local_source_archives
preflight
populate_configured_sdr_units
install_host_non_python_deps
setup_sdr_python_env
install_docker_if_needed

@ -28,7 +28,7 @@ run_as_root() {
preflight() {
[[ -f "${PROJECT_ROOT}/deploy/requirements/nn_gpu_pinned.txt" ]] || die "Missing deploy/requirements/nn_gpu_pinned.txt"
[[ -f "${PROJECT_ROOT}/train_scripts/requirements-train.txt" ]] || die "Missing train_scripts/requirements-train.txt"
[[ -f "${PROJECT_ROOT}/requirements-train.txt" ]] || die "Missing train_scripts/requirements-train.txt"
[[ -f "${PROJECT_ROOT}/torchsig/pyproject.toml" ]] || die "Missing local torchsig package"
command -v "${PYTHON_BIN}" >/dev/null 2>&1 || die "${PYTHON_BIN} not found"
}

@ -1,115 +1,115 @@
from common.runtime import load_root_env, validate_env, as_float, as_int, as_str
import numpy as np
import requests
import os
import sys
import json
import time
from common.runtime import load_root_env, validate_env, as_float, as_int, as_str
import numpy as np
import requests
import os
import sys
import json
import time
load_root_env(__file__)
validate_env("orange_scripts/compose_send_data_2400.py", {
"POROG_2400": as_float,
"SERVER_IP_2": as_str,
"SERVER_PORT_2": as_int,
})
porog = float(os.getenv('POROG_2400'))
server_ip_1 = os.getenv('SERVER_IP_1')
server_port_1 = os.getenv('SERVER_PORT_1')
server_ip_2 = os.getenv('SERVER_IP_2')
server_port_2 = os.getenv('SERVER_PORT_2')
PARAMS = {'split_size': 400_000, 'point_amount': 100_000}
PARAMS['show_amount'] = 0.8 * PARAMS['point_amount']
token = 0
channel = 1
flag = 0
##############################
# HYPERPARAMETERS
##############################
f_base = 2.4e9
f_step = 20e6
f_roof = 2.5e9
##############################
# Variables
##############################
f = f_base
EOCF = 0
signal_arr = []
class NumpyArrayEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, np.integer):
return int(obj)
elif isinstance(obj, np.ndarray):
return obj.tolist()
else:
return super(NumpyArrayEncoder, self).default(obj)
def send_data(sig):
try:
global token
print('#' * 10)
print('\nОтправка пакета ' + str(token+1))
data_to_send = {
"freq": 2400,
"channel": int(channel),
"token": int(token+1),
"data_real": np.asarray(np.array(sig, dtype=np.complex64).real, dtype=np.float32),
"data_imag": np.asarray(np.array(sig, dtype=np.complex64).imag, dtype=np.float32)
}
mod_data_to_send = json.dumps(data_to_send, cls=NumpyArrayEncoder)
response = requests.post("http://{0}:{1}/receive_data".format(server_ip_2, server_port_2), json=mod_data_to_send)
if response.status_code == 200:
token += 1
print(response.text)
print('#' * 10)
else:
print("Ошибка при отправке данных: ", response.status_code)
print('#' * 10)
except Exception as exc:
print(str(exc))
def median(sig):
global flag
median = abs(float(np.median(sorted(np.asarray(np.abs(np.array(sig, dtype=np.complex64)), dtype=np.float32))[int(PARAMS['show_amount']):])))
flag = 0 if porog > median else 1
print(channel, median, flag)
def work(lvl):
global flag
global channel
global f_base
global f_step
global f_roof
global f
global EOCF
global signal_arr
y = np.array(lvl).ravel()
signal_arr = np.concatenate((signal_arr, y), axis=None)
if f >= f_roof:
f = f_base
signal_arr = []
channel = 1
return f, EOCF
else:
if flag == 0 and len(signal_arr) >= PARAMS['point_amount']:
median(signal_arr[:PARAMS['point_amount']])
signal_arr = []
if flag == 0:
f += f_step
channel += 1
if len(signal_arr) >= PARAMS['split_size']:
send_data(signal_arr[:PARAMS['split_size']])
flag = 0
signal_arr = []
channel += 1
f += f_step
return f, EOCF
porog = float(os.getenv('POROG_2400'))
server_ip_1 = os.getenv('SERVER_IP_1')
server_port_1 = os.getenv('SERVER_PORT_1')
server_ip_2 = os.getenv('SERVER_IP_2')
server_port_2 = os.getenv('SERVER_PORT_2')
PARAMS = {'split_size': 400_000, 'point_amount': 100_000}
PARAMS['show_amount'] = 0.8 * PARAMS['point_amount']
token = 0
channel = 1
flag = 0
##############################
# HYPERPARAMETERS
##############################
f_base = 2.4e9
f_step = 20e6
f_roof = 2.5e9
##############################
# Variables
##############################
f = f_base
EOCF = 0
signal_arr = []
class NumpyArrayEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, np.integer):
return int(obj)
elif isinstance(obj, np.ndarray):
return obj.tolist()
else:
return super(NumpyArrayEncoder, self).default(obj)
def send_data(sig):
try:
global token
print('#' * 10)
print('\nОтправка пакета ' + str(token+1))
data_to_send = {
"freq": 2400,
"channel": int(channel),
"token": int(token+1),
"data_real": np.asarray(np.array(sig, dtype=np.complex64).real, dtype=np.float32),
"data_imag": np.asarray(np.array(sig, dtype=np.complex64).imag, dtype=np.float32)
}
mod_data_to_send = json.dumps(data_to_send, cls=NumpyArrayEncoder)
response = requests.post("http://{0}:{1}/receive_data".format(server_ip_2, server_port_2), json=mod_data_to_send)
if response.status_code == 200:
token += 1
print(response.text)
print('#' * 10)
else:
print("Ошибка при отправке данных: ", response.status_code)
print('#' * 10)
except Exception as exc:
print(str(exc))
def median(sig):
global flag
median = abs(float(np.median(sorted(np.asarray(np.abs(np.array(sig, dtype=np.complex64)), dtype=np.float32))[int(PARAMS['show_amount']):])))
flag = 0 if porog > median else 1
print(channel, median, flag)
def work(lvl):
global flag
global channel
global f_base
global f_step
global f_roof
global f
global EOCF
global signal_arr
y = np.array(lvl).ravel()
signal_arr = np.concatenate((signal_arr, y), axis=None)
if f >= f_roof:
f = f_base
signal_arr = []
channel = 1
return f, EOCF
else:
if flag == 0 and len(signal_arr) >= PARAMS['point_amount']:
median(signal_arr[:PARAMS['point_amount']])
signal_arr = []
if flag == 0:
f += f_step
channel += 1
if len(signal_arr) >= PARAMS['split_size']:
send_data(signal_arr[:PARAMS['split_size']])
flag = 0
signal_arr = []
channel += 1
f += f_step
return f, EOCF

@ -0,0 +1,115 @@
from common.runtime import load_root_env, validate_env, as_float, as_int, as_str
import numpy as np
import requests
import os
import sys
import json
import time
load_root_env(__file__)
validate_env("orange_scripts/compose_send_data_5800.py", {
"POROG_5800": as_float,
"SERVER_IP_2": as_str,
"SERVER_PORT_2": as_int,
})
porog = float(os.getenv('POROG_5800'))
server_ip_1 = os.getenv('SERVER_IP_1')
server_port_1 = os.getenv('SERVER_PORT_1')
server_ip_2 = os.getenv('SERVER_IP_2')
server_port_2 = os.getenv('SERVER_PORT_2')
PARAMS = {'split_size': 400_000, 'point_amount': 100_000}
PARAMS['show_amount'] = 0.8 * PARAMS['point_amount']
token = 0
channel = 1
flag = 0
##############################
# HYPERPARAMETERS
##############################
f_base = 5.9e9
f_step = 20e6
f_roof = 5.7e9
##############################
# Variables
##############################
f = f_base
EOCF = 0
signal_arr = []
class NumpyArrayEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, np.integer):
return int(obj)
elif isinstance(obj, np.ndarray):
return obj.tolist()
else:
return super(NumpyArrayEncoder, self).default(obj)
def send_data(sig):
try:
global token
print('#' * 10)
print('\nОтправка пакета ' + str(token+1))
data_to_send = {
"freq": 5800,
"channel": int(channel),
"token": int(token+1),
"data_real": np.asarray(np.array(sig, dtype=np.complex64).real, dtype=np.float32),
"data_imag": np.asarray(np.array(sig, dtype=np.complex64).imag, dtype=np.float32)
}
mod_data_to_send = json.dumps(data_to_send, cls=NumpyArrayEncoder)
response = requests.post("http://{0}:{1}/receive_data".format(server_ip_2, server_port_2), json=mod_data_to_send)
if response.status_code == 200:
token += 1
print(response.text)
print('#' * 10)
else:
print("Ошибка при отправке данных: ", response.status_code)
print('#' * 10)
except Exception as exc:
print(str(exc))
def median(sig):
global flag
median = abs(float(np.median(sorted(np.asarray(np.abs(np.array(sig, dtype=np.complex64)), dtype=np.float32))[int(PARAMS['show_amount']):])))
flag = 0 if porog > median else 1
print(channel, median, flag)
def work(lvl):
global flag
global channel
global f_base
global f_step
global f_roof
global f
global EOCF
global signal_arr
y = np.array(lvl).ravel()
signal_arr = np.concatenate((signal_arr, y), axis=None)
if f >= f_roof:
f = f_base
signal_arr = []
channel = 1
return f, EOCF
else:
if flag == 0 and len(signal_arr) >= PARAMS['point_amount']:
median(signal_arr[:PARAMS['point_amount']])
signal_arr = []
if flag == 0:
f += f_step
channel += 1
if len(signal_arr) >= PARAMS['split_size']:
send_data(signal_arr[:PARAMS['split_size']])
flag = 0
signal_arr = []
channel += 1
f += f_step
return f, EOCF

@ -1,172 +1,172 @@
from gnuradio import blocks, gr
import sys
import signal
import compose_send_data_2400 as my_freq
import osmosdr
import time
import threading
import subprocess
import os
from common.runtime import load_root_env, resolve_hackrf_index
load_root_env(__file__)
def get_hack_id():
return resolve_hackrf_index('HACKID_2400', 'orange_scripts/main_2400.py')
serial_number = os.getenv('HACKID_2400')
pos = None
output = []
try:
command = 'lsusb -v -d 1d50:6089 | grep iSerial'
output.append(subprocess.check_output(command, shell=True, text=True))
except subprocess.CalledProcessError as e:
print(f"Команда завершилась с кодом возврата {e.returncode}")
print(e)
print(output)
output_lines = output[0].strip().split('\n')
print(output_lines)
serial_numbers = [line.split()[-1] for line in output_lines]
print(serial_numbers)
for i, number in enumerate(serial_numbers):
if number == serial_number:
id = i
break
if id is not None:
print('HackId is: {0}'.format(id))
return str(id)
else:
print('Такого хака нет!')
class get_center_freq(gr.top_block):
def __init__(self):
gr.top_block.__init__(self, "get_center_freq")
##################################################
# Variables
##################################################
self.prob_freq = prob_freq = 0
self.top_peaks_amount = top_peaks_amount = 20
self.samp_rate = samp_rate = 20e6
self.poll_rate = poll_rate = 10000
self.num_points = num_points = 8192
self.flag = flag = 1
self.decimation = decimation = 1
self.center_freq = center_freq = my_freq.work(prob_freq)[0]
##################################################
# Blocks
##################################################
self.probSigVec = blocks.probe_signal_vc(4096)
self.rtlsdr_source_0 = osmosdr.source(
args="numchan=" + str(1) + " " + 'hackrf=' + get_hack_id()
)
self.rtlsdr_source_0.set_time_unknown_pps(osmosdr.time_spec_t())
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(0, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)
self.rtlsdr_source_0.set_min_output_buffer(4096)
def _prob_freq_probe():
while True:
val = self.probSigVec.level()
try:
self.set_prob_freq(val)
except AttributeError:
pass
time.sleep(1.0 / (poll_rate))
_prob_freq_thread = threading.Thread(target=_prob_freq_probe)
_prob_freq_thread.daemon = True
_prob_freq_thread.start()
self.blocks_stream_to_vector_1 = blocks.stream_to_vector(gr.sizeof_gr_complex*1, 4096)
##################################################
# Connections
##################################################
self.connect((self.blocks_stream_to_vector_1, 0), (self.probSigVec, 0))
self.connect((self.rtlsdr_source_0, 0), (self.blocks_stream_to_vector_1, 0))
def get_prob_freq(self):
return self.prob_freq
def set_prob_freq(self, prob_freq):
self.prob_freq = prob_freq
self.set_center_freq(my_freq.work(self.prob_freq)[0])
def get_top_peaks_amount(self):
return self.top_peaks_amount
def set_top_peaks_amount(self, top_peaks_amount):
self.top_peaks_amount = top_peaks_amount
def get_samp_rate(self):
return self.samp_rate
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
def get_poll_rate(self):
return self.poll_rate
def set_poll_rate(self, poll_rate):
self.poll_rate = poll_rate
def get_num_points(self):
return self.num_points
def set_num_points(self, num_points):
self.num_points = num_points
def get_flag(self):
return self.flag
def set_flag(self, flag):
self.flag = flag
def get_decimation(self):
return self.decimation
def set_decimation(self, decimation):
self.decimation = decimation
def get_center_freq(self):
return self.center_freq
def set_center_freq(self, center_freq):
self.center_freq = center_freq
self.rtlsdr_source_0.set_center_freq(self.center_freq, 0)
def main(top_block_cls=get_center_freq, options=None):
time.sleep(3)
tb = top_block_cls()
def sig_handler(sig=None, frame=None):
tb.stop()
tb.wait()
sys.exit(0)
signal.signal(signal.SIGINT, sig_handler)
signal.signal(signal.SIGTERM, sig_handler)
tb.start()
try:
input('Press Enter to quit: ')
except EOFError:
pass
tb.wait()
if __name__ == '__main__':
main()
from gnuradio import blocks, gr
import sys
import signal
import compose_send_data_2400 as my_freq
import osmosdr
import time
import threading
import subprocess
import os
from common.runtime import load_root_env, resolve_hackrf_index
load_root_env(__file__)
def get_hack_id():
return resolve_hackrf_index('HACKID_2400', 'orange_scripts/main_2400.py')
serial_number = os.getenv('HACKID_2400')
pos = None
output = []
try:
command = 'lsusb -v -d 1d50:6089 | grep iSerial'
output.append(subprocess.check_output(command, shell=True, text=True))
except subprocess.CalledProcessError as e:
print(f"Команда завершилась с кодом возврата {e.returncode}")
print(e)
print(output)
output_lines = output[0].strip().split('\n')
print(output_lines)
serial_numbers = [line.split()[-1] for line in output_lines]
print(serial_numbers)
for i, number in enumerate(serial_numbers):
if number == serial_number:
id = i
break
if id is not None:
print('HackId is: {0}'.format(id))
return str(id)
else:
print('Такого хака нет!')
class get_center_freq(gr.top_block):
def __init__(self):
gr.top_block.__init__(self, "get_center_freq")
##################################################
# Variables
##################################################
self.prob_freq = prob_freq = 0
self.top_peaks_amount = top_peaks_amount = 20
self.samp_rate = samp_rate = 20e6
self.poll_rate = poll_rate = 10000
self.num_points = num_points = 8192
self.flag = flag = 1
self.decimation = decimation = 1
self.center_freq = center_freq = my_freq.work(prob_freq)[0]
##################################################
# Blocks
##################################################
self.probSigVec = blocks.probe_signal_vc(4096)
self.rtlsdr_source_0 = osmosdr.source(
args="numchan=" + str(1) + " " + 'hackrf=' + get_hack_id()
)
self.rtlsdr_source_0.set_time_unknown_pps(osmosdr.time_spec_t())
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(0, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)
self.rtlsdr_source_0.set_min_output_buffer(4096)
def _prob_freq_probe():
while True:
val = self.probSigVec.level()
try:
self.set_prob_freq(val)
except AttributeError:
pass
time.sleep(1.0 / (poll_rate))
_prob_freq_thread = threading.Thread(target=_prob_freq_probe)
_prob_freq_thread.daemon = True
_prob_freq_thread.start()
self.blocks_stream_to_vector_1 = blocks.stream_to_vector(gr.sizeof_gr_complex*1, 4096)
##################################################
# Connections
##################################################
self.connect((self.blocks_stream_to_vector_1, 0), (self.probSigVec, 0))
self.connect((self.rtlsdr_source_0, 0), (self.blocks_stream_to_vector_1, 0))
def get_prob_freq(self):
return self.prob_freq
def set_prob_freq(self, prob_freq):
self.prob_freq = prob_freq
self.set_center_freq(my_freq.work(self.prob_freq)[0])
def get_top_peaks_amount(self):
return self.top_peaks_amount
def set_top_peaks_amount(self, top_peaks_amount):
self.top_peaks_amount = top_peaks_amount
def get_samp_rate(self):
return self.samp_rate
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
def get_poll_rate(self):
return self.poll_rate
def set_poll_rate(self, poll_rate):
self.poll_rate = poll_rate
def get_num_points(self):
return self.num_points
def set_num_points(self, num_points):
self.num_points = num_points
def get_flag(self):
return self.flag
def set_flag(self, flag):
self.flag = flag
def get_decimation(self):
return self.decimation
def set_decimation(self, decimation):
self.decimation = decimation
def get_center_freq(self):
return self.center_freq
def set_center_freq(self, center_freq):
self.center_freq = center_freq
self.rtlsdr_source_0.set_center_freq(self.center_freq, 0)
def main(top_block_cls=get_center_freq, options=None):
time.sleep(3)
tb = top_block_cls()
def sig_handler(sig=None, frame=None):
tb.stop()
tb.wait()
sys.exit(0)
signal.signal(signal.SIGINT, sig_handler)
signal.signal(signal.SIGTERM, sig_handler)
tb.start()
try:
input('Press Enter to quit: ')
except EOFError:
pass
tb.wait()
if __name__ == '__main__':
main()

@ -0,0 +1,172 @@
from gnuradio import blocks, gr
import sys
import signal
import compose_send_data_5800 as my_freq
import osmosdr
import time
import threading
import subprocess
import os
from common.runtime import load_root_env, resolve_hackrf_index
load_root_env(__file__)
def get_hack_id():
return resolve_hackrf_index('HACKID_5800', 'orange_scripts/main_5800.py')
serial_number = os.getenv('HACKID_5800')
pos = None
output = []
try:
command = 'lsusb -v -d 1d50:6089 | grep iSerial'
output.append(subprocess.check_output(command, shell=True, text=True))
except subprocess.CalledProcessError as e:
print(f"Команда завершилась с кодом возврата {e.returncode}")
print(e)
print(output)
output_lines = output[0].strip().split('\n')
print(output_lines)
serial_numbers = [line.split()[-1] for line in output_lines]
print(serial_numbers)
for i, number in enumerate(serial_numbers):
if number == serial_number:
id = i
break
if id is not None:
print('HackId is: {0}'.format(id))
return str(id)
else:
print('Такого хака нет!')
class get_center_freq(gr.top_block):
def __init__(self):
gr.top_block.__init__(self, "get_center_freq")
##################################################
# Variables
##################################################
self.prob_freq = prob_freq = 0
self.top_peaks_amount = top_peaks_amount = 20
self.samp_rate = samp_rate = 20e6
self.poll_rate = poll_rate = 10000
self.num_points = num_points = 8192
self.flag = flag = 1
self.decimation = decimation = 1
self.center_freq = center_freq = my_freq.work(prob_freq)[0]
##################################################
# Blocks
##################################################
self.probSigVec = blocks.probe_signal_vc(4096)
self.rtlsdr_source_0 = osmosdr.source(
args="numchan=" + str(1) + " " + 'hackrf=' + get_hack_id()
)
self.rtlsdr_source_0.set_time_unknown_pps(osmosdr.time_spec_t())
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(0, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)
self.rtlsdr_source_0.set_min_output_buffer(4096)
def _prob_freq_probe():
while True:
val = self.probSigVec.level()
try:
self.set_prob_freq(val)
except AttributeError:
pass
time.sleep(1.0 / (poll_rate))
_prob_freq_thread = threading.Thread(target=_prob_freq_probe)
_prob_freq_thread.daemon = True
_prob_freq_thread.start()
self.blocks_stream_to_vector_1 = blocks.stream_to_vector(gr.sizeof_gr_complex*1, 4096)
##################################################
# Connections
##################################################
self.connect((self.blocks_stream_to_vector_1, 0), (self.probSigVec, 0))
self.connect((self.rtlsdr_source_0, 0), (self.blocks_stream_to_vector_1, 0))
def get_prob_freq(self):
return self.prob_freq
def set_prob_freq(self, prob_freq):
self.prob_freq = prob_freq
self.set_center_freq(my_freq.work(self.prob_freq)[0])
def get_top_peaks_amount(self):
return self.top_peaks_amount
def set_top_peaks_amount(self, top_peaks_amount):
self.top_peaks_amount = top_peaks_amount
def get_samp_rate(self):
return self.samp_rate
def set_samp_rate(self, samp_rate):
self.samp_rate = samp_rate
self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
def get_poll_rate(self):
return self.poll_rate
def set_poll_rate(self, poll_rate):
self.poll_rate = poll_rate
def get_num_points(self):
return self.num_points
def set_num_points(self, num_points):
self.num_points = num_points
def get_flag(self):
return self.flag
def set_flag(self, flag):
self.flag = flag
def get_decimation(self):
return self.decimation
def set_decimation(self, decimation):
self.decimation = decimation
def get_center_freq(self):
return self.center_freq
def set_center_freq(self, center_freq):
self.center_freq = center_freq
self.rtlsdr_source_0.set_center_freq(self.center_freq, 0)
def main(top_block_cls=get_center_freq, options=None):
time.sleep(3)
tb = top_block_cls()
def sig_handler(sig=None, frame=None):
tb.stop()
tb.wait()
sys.exit(0)
signal.signal(signal.SIGINT, sig_handler)
signal.signal(signal.SIGTERM, sig_handler)
tb.start()
try:
input('Press Enter to quit: ')
except EOFError:
pass
tb.wait()
if __name__ == '__main__':
main()

@ -69,7 +69,7 @@ class ProbeTop(gr.top_block):
try:
getattr(self.src, fn)(val, 0)
except Exception:
pass
raise Exception("не ставится усиление")
try:
self.src.set_bandwidth(0, 0)
except Exception:
@ -260,7 +260,7 @@ def build_parser() -> argparse.ArgumentParser:
p.add_argument("--interval", type=float, default=0.5, help="Per-device read interval (s)")
p.add_argument("--refresh", type=float, default=0.5, help="Console refresh interval (s)")
p.add_argument("--reopen-delay", type=float, default=1.0, help="Retry delay after BUSY/ERR (s)")
p.add_argument("--gain", type=float, default=16.0, help="General gain")
p.add_argument("--gain", type=float, default=0.0, help="General gain")
p.add_argument("--if-gain", type=float, default=16.0, help="IF gain")
p.add_argument("--bb-gain", type=float, default=16.0, help="BB gain")
return p

@ -1,3 +1,411 @@
"""
./.venv-sdr/bin/python read_energy_wide.py \
--serial 0000000000000000a18c63dc2a83b813 \
--sample-rate 20000000 \
--base 6000 \
--roof 5700 \
--step 20
"""
#!/usr/bin/env python3
import argparse
import math
import re
import signal
import subprocess
import sys
import time
from dataclasses import dataclass
from typing import Dict, List, Optional, Tuple
try:
import numpy as np
except Exception as exc:
print(f"numpy import failed: {exc}", file=sys.stderr)
sys.exit(1)
try:
from gnuradio import blocks, gr
import osmosdr
except Exception as exc:
print(f"gnuradio/osmosdr import failed: {exc}", file=sys.stderr)
print("Run with the SDR venv, e.g. .venv-sdr/bin/python read_energy_wide.py", file=sys.stderr)
sys.exit(1)
EPS = 1e-20
@dataclass
class ScanWindow:
seq: int
start_mhz: float
end_mhz: float
low_mhz: float
high_mhz: float
center_mhz: float
status: str = "INIT"
rms: Optional[float] = None
power_lin: Optional[float] = None
dbfs: Optional[float] = None
samples: int = 0
updated_at: float = 0.0
error: str = ""
pass_no: int = 0
class WideProbeTop(gr.top_block):
def __init__(
self,
index: int,
center_freq_hz: float,
sample_rate: float,
vec_len: int,
gain: float,
if_gain: float,
bb_gain: float,
):
super().__init__("hackrf_energy_wide_probe")
self.probe = blocks.probe_signal_vc(vec_len)
self.stream_to_vec = blocks.stream_to_vector(gr.sizeof_gr_complex * 1, vec_len)
self.src = osmosdr.source(args=f"numchan=1 hackrf={index}")
self.src.set_time_unknown_pps(osmosdr.time_spec_t())
self.src.set_sample_rate(sample_rate)
self.src.set_center_freq(center_freq_hz, 0)
try:
self.src.set_freq_corr(0, 0)
except Exception:
pass
try:
self.src.set_gain_mode(False, 0)
except Exception:
pass
for fn, val in (("set_gain", gain), ("set_if_gain", if_gain), ("set_bb_gain", bb_gain)):
try:
getattr(self.src, fn)(val, 0)
except Exception:
pass
try:
self.src.set_bandwidth(0, 0)
except Exception:
pass
try:
self.src.set_antenna("", 0)
except Exception:
pass
self.connect((self.src, 0), (self.stream_to_vec, 0))
self.connect((self.stream_to_vec, 0), (self.probe, 0))
def tune(self, freq_hz: float) -> None:
self.src.set_center_freq(freq_hz, 0)
def read_metrics(self) -> Tuple[float, float, float, int]:
arr = np.asarray(self.probe.level(), dtype=np.complex64)
if arr.size == 0:
raise RuntimeError("no samples")
power_lin = float(np.mean(arr.real * arr.real + arr.imag * arr.imag))
rms = math.sqrt(max(power_lin, 0.0))
dbfs = 10.0 * math.log10(max(power_lin, EPS))
return rms, power_lin, dbfs, int(arr.size)
def read_window(self, settle: float, avg_reads: int, pause_between_reads: float) -> Tuple[float, float, float, int]:
if settle > 0:
time.sleep(settle)
read_count = max(1, avg_reads)
powers: List[float] = []
sample_sizes: List[int] = []
last_error: Optional[Exception] = None
for idx in range(read_count):
deadline = time.time() + 1.0
while True:
try:
_, power_lin, _, samples = self.read_metrics()
powers.append(power_lin)
sample_sizes.append(samples)
break
except Exception as exc:
last_error = exc
if time.time() >= deadline:
raise RuntimeError(str(last_error) if last_error else "no samples")
time.sleep(0.02)
if idx + 1 < read_count and pause_between_reads > 0:
time.sleep(pause_between_reads)
power_lin = float(sum(powers) / len(powers))
rms = math.sqrt(max(power_lin, 0.0))
dbfs = 10.0 * math.log10(max(power_lin, EPS))
samples = int(sum(sample_sizes) / len(sample_sizes))
return rms, power_lin, dbfs, samples
def parse_hackrf_info() -> Dict[str, int]:
try:
proc = subprocess.run(["hackrf_info"], capture_output=True, text=True, timeout=15)
except FileNotFoundError:
raise RuntimeError("hackrf_info not found")
except subprocess.TimeoutExpired:
raise RuntimeError("hackrf_info timeout")
text = (proc.stdout or "") + "\n" + (proc.stderr or "")
out: Dict[str, int] = {}
cur_idx: Optional[int] = None
for line in text.splitlines():
m = re.search(r"^Index:\s*(\d+)", line)
if m:
cur_idx = int(m.group(1))
continue
m = re.search(r"^Serial number:\s*([0-9a-fA-F]+)", line)
if m and cur_idx is not None:
out[m.group(1).lower()] = cur_idx
if not out:
raise RuntimeError("no devices parsed from hackrf_info")
return out
def fmt(value: Optional[float], spec: str) -> str:
return "-" if value is None else format(value, spec)
def build_windows(base_mhz: float, roof_mhz: float, step_mhz: float) -> List[ScanWindow]:
if step_mhz <= 0:
raise ValueError("step must be > 0")
if base_mhz == roof_mhz:
raise ValueError("base and roof must be different")
direction = -1.0 if roof_mhz < base_mhz else 1.0
edge = base_mhz
seq = 1
windows: List[ScanWindow] = []
while True:
next_edge = edge + direction * step_mhz
if direction < 0 and next_edge < roof_mhz:
next_edge = roof_mhz
if direction > 0 and next_edge > roof_mhz:
next_edge = roof_mhz
low_mhz = min(edge, next_edge)
high_mhz = max(edge, next_edge)
center_mhz = (low_mhz + high_mhz) / 2.0
windows.append(
ScanWindow(
seq=seq,
start_mhz=edge,
end_mhz=next_edge,
low_mhz=low_mhz,
high_mhz=high_mhz,
center_mhz=center_mhz,
)
)
if next_edge == roof_mhz:
break
edge = next_edge
seq += 1
return windows
def render(
windows: List[ScanWindow],
serial: str,
index: int,
sample_rate: float,
base_mhz: float,
roof_mhz: float,
step_mhz: float,
started_at: float,
pass_no: int,
current_seq: int,
) -> None:
now = time.time()
capture_bw_mhz = sample_rate / 1e6
current_row = next((row for row in windows if row.seq == current_seq), None)
best_row = max(
(row for row in windows if row.status == "OK" and row.dbfs is not None),
key=lambda row: row.dbfs if row.dbfs is not None else float("-inf"),
default=None,
)
print("\x1b[2J\x1b[H", end="")
print("HackRF Wide Energy Monitor (relative power: RMS / linear / dBFS)")
print(
f"serial: {serial} | idx: {index} | sample-rate: {capture_bw_mhz:.3f} MHz | "
f"scan: {base_mhz:.3f}->{roof_mhz:.3f} MHz step {step_mhz:.3f} MHz | "
f"pass: {pass_no} | uptime: {int(now-started_at)}s | {time.strftime('%Y-%m-%d %H:%M:%S')}"
)
print()
header = (
f"{'cur':>3} {'seq':>3} {'window MHz':>23} {'center':>9} {'status':>8} "
f"{'dBFS':>9} {'rms':>10} {'power':>12} {'N':>5} {'age':>5} error"
)
print(header)
print("-" * len(header))
for row in windows:
age = "-" if row.updated_at <= 0 else f"{(now-row.updated_at):.1f}"
err = row.error
if len(err) > 50:
err = err[:47] + "..."
marker = ">>>" if row.seq == current_seq else ""
print(
f"{marker:>3} {row.seq:>3} "
f"{f'{row.high_mhz:.3f}-{row.low_mhz:.3f}':>23} {row.center_mhz:>9.3f} {row.status:>8} "
f"{fmt(row.dbfs, '.2f'):>9} {fmt(row.rms, '.6f'):>10} {fmt(row.power_lin, '.8f'):>12} "
f"{row.samples:>5} {age:>5} {err}"
)
print()
if best_row is not None:
best_age = "-" if best_row.updated_at <= 0 else f"{(now-best_row.updated_at):.1f}"
print(
f"{'':>3} {'MAX':>3} "
f"{f'{best_row.high_mhz:.3f}-{best_row.low_mhz:.3f}':>23} {best_row.center_mhz:>9.3f} {best_row.status:>8} "
f"{fmt(best_row.dbfs, '.2f'):>9} {fmt(best_row.rms, '.6f'):>10} {fmt(best_row.power_lin, '.8f'):>12} "
f"{best_row.samples:>5} {best_age:>5} pass={best_row.pass_no}"
)
elif current_row is not None:
current_age = "-" if current_row.updated_at <= 0 else f"{(now-current_row.updated_at):.1f}"
print(
f"{'':>3} {'MAX':>3} "
f"{f'{current_row.high_mhz:.3f}-{current_row.low_mhz:.3f}':>23} {current_row.center_mhz:>9.3f} {'INIT':>8} "
f"{fmt(None, '.2f'):>9} {fmt(None, '.6f'):>10} {fmt(None, '.8f'):>12} "
f"{0:>5} {current_age:>5} no successful windows yet"
)
print("Ctrl+C to stop. Window width equals step; sample-rate must be >= step to cover each window.")
sys.stdout.flush()
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(description="Retune one HackRF across a wide frequency range and measure energy")
parser.add_argument("--serial", required=True, help="HackRF serial number from hackrf_info")
parser.add_argument("--sample-rate", type=float, required=True, help="Sample rate in Hz")
parser.add_argument("--base", type=float, required=True, help="Scan start edge in MHz")
parser.add_argument("--roof", type=float, required=True, help="Scan end edge in MHz")
parser.add_argument("--step", type=float, required=True, help="Window width / retune step in MHz")
parser.add_argument("--vec-len", type=int, default=4096, help="Probe vector length")
parser.add_argument("--settle", type=float, default=0.12, help="Wait time after retune before reading (s)")
parser.add_argument("--avg-reads", type=int, default=3, help="How many probe reads to average per window")
parser.add_argument("--pause-between-reads", type=float, default=0.02, help="Pause between averaged reads (s)")
parser.add_argument("--passes", type=int, default=0, help="Number of sweep passes, 0 means infinite")
parser.add_argument("--gain", type=float, default=16.0, help="General gain")
parser.add_argument("--if-gain", type=float, default=16.0, help="IF gain")
parser.add_argument("--bb-gain", type=float, default=16.0, help="BB gain")
return parser
def main() -> int:
args = build_parser().parse_args()
serial = args.serial.lower()
try:
windows = build_windows(args.base, args.roof, args.step)
except ValueError as exc:
print(f"invalid scan range: {exc}", file=sys.stderr)
return 2
step_hz = args.step * 1e6
if args.sample_rate < step_hz:
print(
f"sample-rate {args.sample_rate:.0f} Hz is smaller than step window {step_hz:.0f} Hz; "
"this would leave gaps in the scan",
file=sys.stderr,
)
return 2
try:
serial_to_index = parse_hackrf_info()
except Exception as exc:
print(f"hackrf discovery failed: {exc}", file=sys.stderr)
return 3
index = serial_to_index.get(serial)
if index is None:
print(f"serial {serial} not found in hackrf_info", file=sys.stderr)
print("available serials:", file=sys.stderr)
for item_serial, item_index in sorted(serial_to_index.items(), key=lambda item: item[1]):
print(f" idx={item_index} serial={item_serial}", file=sys.stderr)
return 4
stop_requested = False
def on_signal(signum, frame):
nonlocal stop_requested
stop_requested = True
signal.signal(signal.SIGINT, on_signal)
signal.signal(signal.SIGTERM, on_signal)
probe: Optional[WideProbeTop] = None
started_at = time.time()
pass_no = 0
current_seq = windows[0].seq
try:
probe = WideProbeTop(
index=index,
center_freq_hz=windows[0].center_mhz * 1e6,
sample_rate=args.sample_rate,
vec_len=args.vec_len,
gain=args.gain,
if_gain=args.if_gain,
bb_gain=args.bb_gain,
)
probe.start()
time.sleep(max(args.settle, 0.12))
while not stop_requested:
pass_no += 1
for row in windows:
if stop_requested:
break
current_seq = row.seq
try:
probe.tune(row.center_mhz * 1e6)
rms, power_lin, dbfs, samples = probe.read_window(
settle=args.settle,
avg_reads=args.avg_reads,
pause_between_reads=args.pause_between_reads,
)
row.status = "OK"
row.rms = rms
row.power_lin = power_lin
row.dbfs = dbfs
row.samples = samples
row.error = ""
row.updated_at = time.time()
row.pass_no = pass_no
except Exception as exc:
row.status = "ERR"
row.error = str(exc)
row.updated_at = time.time()
render(
windows=windows,
serial=serial,
index=index,
sample_rate=args.sample_rate,
base_mhz=args.base,
roof_mhz=args.roof,
step_mhz=args.step,
started_at=started_at,
pass_no=pass_no,
current_seq=current_seq,
)
if args.passes > 0 and pass_no >= args.passes:
break
except Exception as exc:
print(f"scanner failed: {exc}", file=sys.stderr)
return 5
finally:
if probe is not None:
try:
probe.stop()
probe.wait()
except Exception:
pass
return 0
if __name__ == "__main__":
raise SystemExit(main())
#!/usr/bin/env python3
import argparse
import math

@ -7,8 +7,6 @@ COMPOSE_FILE="${PROJECT_ROOT}/deploy/docker/docker-compose.yml"
SDR_UNITS=(
dronedetector-sdr-433.service
dronedetector-sdr-750.service
#dronedetector-sdr-868-915.service
#dronedetector-sdr-868.service
dronedetector-sdr-1500.service
dronedetector-sdr-3300.service
dronedetector-sdr-4500.service
@ -19,10 +17,51 @@ SDR_UNITS=(
dronedetector-sdr-2400.service
)
CONFIGURED_SDR_UNITS=()
log() {
printf '[restart_all] %s\n' "$*"
}
sdr_unit_env_key() {
local unit="$1"
local band="${unit#dronedetector-sdr-}"
band="${band%.service}"
printf 'hack_%s\n' "$band"
}
get_env_value() {
local key="$1"
awk -F= -v key="$key" '
$1 == key {
value = substr($0, index($0, "=") + 1)
sub(/^[[:space:]]+/, "", value)
sub(/[[:space:]]+$/, "", value)
gsub(/^"/, "", value)
gsub(/"$/, "", value)
gsub(/^'\''/, "", value)
gsub(/'\''$/, "", value)
print value
exit
}
' "${PROJECT_ROOT}/.env"
}
populate_configured_sdr_units() {
CONFIGURED_SDR_UNITS=()
local unit env_key env_value
for unit in "${SDR_UNITS[@]}"; do
env_key="$(sdr_unit_env_key "$unit")"
env_value="$(get_env_value "$env_key")"
if [[ -n "$env_value" ]]; then
CONFIGURED_SDR_UNITS+=("$unit")
else
log "Skipping ${unit}: ${env_key} is empty in .env"
fi
done
}
if [[ -x /usr/bin/sudo ]]; then
SUDO=(sudo)
else
@ -41,7 +80,7 @@ restart_docker_services() {
restart_sdr_services() {
log "Restarting SDR systemd units"
for unit in "${SDR_UNITS[@]}"; do
for unit in "${CONFIGURED_SDR_UNITS[@]}"; do
${SUDO[@]} systemctl restart "$unit"
done
}
@ -51,7 +90,7 @@ print_status() {
docker compose -f "$COMPOSE_FILE" ps || true
log "SDR status"
for unit in "${SDR_UNITS[@]}"; do
for unit in "${CONFIGURED_SDR_UNITS[@]}"; do
if ${SUDO[@]} systemctl is-active --quiet "$unit"; then
printf '%s: active\n' "$unit"
else
@ -61,6 +100,7 @@ print_status() {
}
main() {
populate_configured_sdr_units
restart_docker_services
restart_sdr_services
print_status

@ -40,8 +40,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
self.rtlsdr_source_0.set_center_freq(self.center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -40,8 +40,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
self.rtlsdr_source_0.set_center_freq(self.center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -40,8 +40,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
self.rtlsdr_source_0.set_center_freq(self.center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -94,8 +94,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(100, 0)
self.rtlsdr_source_0.set_if_gain(100, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -94,8 +94,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -94,8 +94,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(100, 0)
self.rtlsdr_source_0.set_if_gain(100, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -93,8 +93,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(100, 0)
self.rtlsdr_source_0.set_if_gain(100, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -94,8 +94,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(100, 0)
self.rtlsdr_source_0.set_if_gain(100, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -94,8 +94,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(samp_rate)
self.rtlsdr_source_0.set_center_freq(center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -1,99 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from gnuradio import blocks
from gnuradio import gr
from gnuradio import zeromq
import signal
import sys
import threading
import time
import embedded_868 as my_freq
from common.runtime import load_root_env
from common.shared_stream_addrs import SHARED_868_ADDR, SHARED_VECTOR_LEN
load_root_env(__file__)
class get_center_freq(gr.top_block):
def __init__(self):
gr.top_block.__init__(self, 'get_center_freq')
self.prob_freq = 0
self.poll_rate = 10000
self.vector_len = SHARED_VECTOR_LEN
self.center_freq = 0
self.shared_addr = SHARED_868_ADDR
self._stop_polling = threading.Event()
self._prob_freq_thread = None
self.probSigVec = blocks.probe_signal_vc(self.vector_len)
self.shared_source_0 = zeromq.pull_source(
gr.sizeof_gr_complex,
self.vector_len,
self.shared_addr,
100,
False,
-1,
False,
)
self.connect((self.shared_source_0, 0), (self.probSigVec, 0))
def start_polling(self):
if self._prob_freq_thread is not None:
return
def _prob_freq_probe():
while not self._stop_polling.is_set():
self.set_prob_freq(self.probSigVec.level())
time.sleep(1.0 / self.poll_rate)
self._prob_freq_thread = threading.Thread(target=_prob_freq_probe, daemon=True)
self._prob_freq_thread.start()
def get_prob_freq(self):
return self.prob_freq
def set_prob_freq(self, prob_freq):
self.prob_freq = prob_freq
self.center_freq = my_freq.work(self.prob_freq)
def get_center_freq(self):
return self.center_freq
def set_center_freq(self, center_freq):
self.center_freq = center_freq
def close(self):
self._stop_polling.set()
self.stop()
self.wait()
def main(top_block_cls=get_center_freq, options=None):
tb = top_block_cls()
def sig_handler(sig=None, frame=None):
tb.close()
sys.exit(0)
signal.signal(signal.SIGINT, sig_handler)
signal.signal(signal.SIGTERM, sig_handler)
tb.start()
tb.start_polling()
try:
print('shared_pull_addr:', SHARED_868_ADDR)
print('debug_flag:', my_freq.debug_flag)
print('save_data_flag:', my_freq.save_data_flag)
print('send_to_module_flag:', my_freq.send_to_module_flag)
except EOFError:
pass
tb.wait()
if __name__ == '__main__':
main()

@ -1,122 +0,0 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from gnuradio import blocks
from gnuradio import gr
import signal
import sys
import threading
import time
import osmosdr
from common.runtime import load_root_env, resolve_hackrf_index
from common.shared_stream_addrs import SHARED_VECTOR_LEN
from shared_router_868_915 import SharedRouter868915
load_root_env(__file__)
def get_hack_id():
return resolve_hackrf_index('hack_868', 'src/main_868_915_router.py')
class get_center_freq(gr.top_block):
def __init__(self):
gr.top_block.__init__(self, 'get_center_freq')
self.prob_freq = 0
self.poll_rate = 10000
self.vector_len = SHARED_VECTOR_LEN
self.router = SharedRouter868915()
self.active_lane = self.router.get_active_name()
self.center_freq = self.router.get_start_freq()
self._stop_polling = threading.Event()
self._prob_freq_thread = None
self.probSigVec = blocks.probe_signal_vc(self.vector_len)
self.rtlsdr_source_0 = osmosdr.source(
args='numchan=' + str(1) + ' ' + 'hackrf=' + get_hack_id()
)
self.rtlsdr_source_0.set_time_unknown_pps(osmosdr.time_spec_t())
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_min_output_buffer(self.vector_len)
self.apply_active_frontend()
self.rtlsdr_source_0.set_center_freq(self.center_freq, 0)
self.blocks_stream_to_vector_1 = blocks.stream_to_vector(gr.sizeof_gr_complex * 1, self.vector_len)
self.connect((self.rtlsdr_source_0, 0), (self.blocks_stream_to_vector_1, 0))
self.connect((self.blocks_stream_to_vector_1, 0), (self.probSigVec, 0))
def start_polling(self):
if self._prob_freq_thread is not None:
return
def _prob_freq_probe():
while not self._stop_polling.is_set():
self.set_prob_freq(self.probSigVec.level())
time.sleep(1.0 / self.poll_rate)
self._prob_freq_thread = threading.Thread(target=_prob_freq_probe, daemon=True)
self._prob_freq_thread.start()
def apply_active_frontend(self):
frontend = self.router.get_active_frontend()
self.rtlsdr_source_0.set_sample_rate(frontend['sample_rate'])
self.rtlsdr_source_0.set_gain(frontend['gain'], 0)
self.rtlsdr_source_0.set_if_gain(frontend['if_gain'], 0)
self.rtlsdr_source_0.set_bb_gain(frontend['bb_gain'], 0)
self.rtlsdr_source_0.set_bandwidth(frontend['bandwidth'], 0)
def get_prob_freq(self):
return self.prob_freq
def set_prob_freq(self, prob_freq):
self.prob_freq = prob_freq
next_center, lane_switched = self.router.route_vector(self.prob_freq)
if lane_switched:
self.active_lane = self.router.get_active_name()
self.apply_active_frontend()
if next_center != self.center_freq:
self.set_center_freq(next_center)
def get_center_freq(self):
return self.center_freq
def set_center_freq(self, center_freq):
self.center_freq = center_freq
self.rtlsdr_source_0.set_center_freq(self.center_freq, 0)
def close(self):
self._stop_polling.set()
try:
self.router.close()
finally:
self.stop()
self.wait()
def main(top_block_cls=get_center_freq, options=None):
tb = top_block_cls()
def sig_handler(sig=None, frame=None):
tb.close()
sys.exit(0)
signal.signal(signal.SIGINT, sig_handler)
signal.signal(signal.SIGTERM, sig_handler)
tb.start()
tb.start_polling()
try:
print('shared_router_active_lane:', tb.router.get_active_name())
print('shared_router_start_freq:', tb.get_center_freq())
except EOFError:
pass
tb.wait()
if __name__ == '__main__':
main()

@ -40,8 +40,8 @@ class get_center_freq(gr.top_block):
self.rtlsdr_source_0.set_sample_rate(self.samp_rate)
self.rtlsdr_source_0.set_center_freq(self.center_freq, 0)
self.rtlsdr_source_0.set_freq_corr(0, 0)
self.rtlsdr_source_0.set_gain(24, 0)
self.rtlsdr_source_0.set_if_gain(24, 0)
self.rtlsdr_source_0.set_gain(16, 0)
self.rtlsdr_source_0.set_if_gain(16, 0)
self.rtlsdr_source_0.set_bb_gain(100, 0)
self.rtlsdr_source_0.set_antenna('', 0)
self.rtlsdr_source_0.set_bandwidth(0, 0)

@ -1,173 +0,0 @@
import os
import numpy as np
import zmq
from common.runtime import load_root_env
from common.shared_stream_addrs import SHARED_868_ADDR, SHARED_915_ADDR
from core.multichannelswitcher import MultiChannel
from core.sig_n_medi_collect import Signal
load_root_env(__file__)
class Scheduler868:
def __init__(self):
self.signal_length = int(os.getenv('signal_length_868'))
self.multi_channel = MultiChannel(
[*map(float, os.getenv('f_step_868').split())],
[*map(float, os.getenv('f_bases_868').split())],
[*map(float, os.getenv('f_roofs_868').split())],
)
self.base_freq = float(self.multi_channel.init_f())
self.signal = Signal()
def get_current_freq(self):
return float(self.multi_channel.get_cur_channel())
def process(self, lvl):
current_before = self.get_current_freq()
metric = self.signal.fill_signal(lvl, self.signal_length)
if metric == 0:
return current_before, False
next_freq = float(self.multi_channel.change_channel())
self.signal.clear()
lane_complete = next_freq == self.base_freq and current_before != self.base_freq
return next_freq, lane_complete
class Scheduler915:
def __init__(self):
self.porog = float(os.getenv('POROG_915'))
self.point_amount = 100_000
self.split_size = 400_000
self.show_amount = int(0.8 * self.point_amount)
self.f_base = 0.91e9
self.f_step = 20e6
self.f_roof = 0.98e9
self.f = self.f_base
self.channel = 1
self.flag = 0
self.signal_arr = np.array([], dtype=np.complex64)
def get_current_freq(self):
return float(self.f)
def _median(self, sig):
samples = np.asarray(np.abs(np.array(sig, dtype=np.complex64)), dtype=np.float32)
sorted_samples = sorted(samples)
median = abs(float(np.median(sorted_samples[self.show_amount:])))
self.flag = 0 if self.porog > median else 1
def _advance(self):
next_freq = self.f + self.f_step
if next_freq >= self.f_roof:
self.f = self.f_base
self.channel = 1
return float(self.f), True
self.f = next_freq
self.channel += 1
return float(self.f), False
def process(self, lvl):
y = np.asarray(lvl, dtype=np.complex64).ravel()
self.signal_arr = np.concatenate((self.signal_arr, y), axis=None)
if self.flag == 0 and len(self.signal_arr) >= self.point_amount:
self._median(self.signal_arr[:self.point_amount])
self.signal_arr = np.array([], dtype=np.complex64)
if self.flag == 0:
return self._advance()
if len(self.signal_arr) >= self.split_size:
self.flag = 0
self.signal_arr = np.array([], dtype=np.complex64)
return self._advance()
return float(self.f), False
class SharedRouter868915:
def __init__(self):
self.frontends = {
'868': {
'sample_rate': 20e6,
'gain': 24,
'if_gain': 24,
'bb_gain': 100,
'bandwidth': 0,
},
'915': {
'sample_rate': 20e6,
'gain': 16,
'if_gain': 16,
'bb_gain': 0,
'bandwidth': 0,
},
}
self.schedulers = {
'868': Scheduler868(),
'915': Scheduler915(),
}
self.context = zmq.Context.instance()
self.sockets = {
'868': self._make_socket(SHARED_868_ADDR),
'915': self._make_socket(SHARED_915_ADDR),
}
self.active_name = '868'
self.switch_counter = 0
def _make_socket(self, addr):
sock = self.context.socket(zmq.PUSH)
sock.setsockopt(zmq.SNDHWM, 64)
sock.setsockopt(zmq.LINGER, 0)
sock.setsockopt(zmq.IMMEDIATE, 1)
sock.bind(addr)
return sock
def close(self):
for sock in self.sockets.values():
try:
sock.close(0)
except Exception:
pass
def get_active_name(self):
return self.active_name
def get_active_freq(self):
return self.schedulers[self.active_name].get_current_freq()
def get_active_frontend(self):
return dict(self.frontends[self.active_name])
def get_start_freq(self):
return self.get_active_freq()
def route_vector(self, lvl):
vector = np.asarray(lvl, dtype=np.complex64).ravel()
active_name = self.active_name
try:
self.sockets[active_name].send(vector.tobytes(), zmq.NOBLOCK)
except zmq.Again:
pass
next_freq, lane_complete = self.schedulers[active_name].process(vector)
lane_switched = False
if lane_complete:
previous = self.active_name
self.active_name = '915' if self.active_name == '868' else '868'
next_freq = self.get_active_freq()
self.switch_counter += 1
lane_switched = True
print(
f'[shared-router-868-915] switch#{self.switch_counter}: '
f'{previous} -> {self.active_name}, tune={next_freq}'
)
return float(next_freq), lane_switched

Binary file not shown.

@ -1,284 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda:0\n"
]
},
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x272800ef510>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import io\n",
"import cv2\n",
"import copy\n",
"import os\n",
"from tqdm import tqdm\n",
"import torch.nn as nn\n",
"import torch\n",
"import torchvision\n",
"from torch.utils.data import Dataset\n",
"from torch import default_generator, randperm\n",
"from PIL import Image\n",
"#from torch._utils import _accumulate\n",
"import csv\n",
"from torch.utils.data.dataset import Subset\n",
"from scipy import ndimage\n",
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
"print(device)\n",
"batch_size = 16\n",
"momentum=0.9\n",
"lr = 1e-3\n",
"import random\n",
"sub_sample = 0.5\n",
"import matplotlib\n",
"import gc\n",
"import torchsig.utils as u\n",
"import torchsig.transforms.transforms as T\n",
"matplotlib.use('Agg')\n",
"import matplotlib as mpl\n",
"mpl.rcParams['agg.path.chunksize'] = 256*256\n",
"plt.ioff()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "4848b066-2e09-4c1c-b8fa-8e3fa84d907a",
"metadata": {},
"outputs": [],
"source": [
"s = T.Spectrogram(nperseg=1024)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
"source": [
"def sig2pic_with_spec(path_to_data, filename, specT=None,figsize=(16,16), dpi=16, resize = None):\n",
" try:\n",
" if specT is None:\n",
" specT = T.Spectrogram(nperseg=1024)\n",
" with open(path_to_data + filename, 'rb') as file:\n",
" tmp = np.frombuffer(file.read(), dtype=np.complex64)\n",
" signal = tmp\n",
" spectr = np.array(specT(signal)['data']['samples'][:,:figsize[0] * dpi])\n",
" mag = np.abs(signal)\n",
" real = signal.real\n",
"\n",
" fig2 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
"\n",
" plt.plot(real, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf2 = io.BytesIO()\n",
" fig2.savefig(buf2, format=\"png\", dpi=dpi)\n",
" buf2.seek(0)\n",
" img_arr2 = np.frombuffer(buf2.getvalue(), dtype=np.uint8)\n",
" buf2.close()\n",
" img2 = cv2.imdecode(img_arr2, 1)\n",
" img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig2)\n",
"\n",
" fig3 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
"\n",
" plt.plot(mag, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf3 = io.BytesIO()\n",
" fig3.savefig(buf3, format=\"png\", dpi=dpi)\n",
" buf3.seek(0)\n",
" img_arr3 = np.frombuffer(buf3.getvalue(), dtype=np.uint8)\n",
" buf3.close()\n",
" img3 = cv2.imdecode(img_arr3, 1)\n",
" img3 = cv2.cvtColor(img3, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig3)\n",
"\n",
" if resize != None:\n",
" resized_real = cv2.resize(img2, resize)\n",
" resized_mag = cv2.resize(img3, resize)\n",
" resized_spectr = cv2.resize(spectr, resize)\n",
" img = np.asarray([resized_real, resized_mag, resized_spectr], dtype=np.float32)\n",
" return img\n",
" img = np.asarray([img2, img3, spectr], dtype=np.float32)\n",
" return img\n",
" except Exception as e:\n",
" print(str(e))\n",
" return None"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"path_to_binaries = '//192.168.11.63/data/DATASETS/Energomash/1200'\n",
"path_to_pictures = '//192.168.11.63/data/DATASETS/Energomash/1200_jpg'"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/963 [00:00<?, ?it/s]C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\scipy\\signal\\_spectral_py.py:1936: RuntimeWarning: overflow encountered in multiply\n",
" result = np.conjugate(result) * result\n",
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\scipy\\signal\\_spectral_py.py:1938: RuntimeWarning: invalid value encountered in multiply\n",
" result *= scale\n",
"100%|████████████████████████████████████████████████████████████████████████████████| 963/963 [17:40<00:00, 1.10s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: drone finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 963/963 [51:41<00:00, 3.22s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: noise finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath = path_to_pictures +'/' + subdir + '/' + file + '.npy'\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '_real' + '.png' \n",
" savepath_imag_png = path_to_pictures +'/' + subdir + '/' + file + '_imag' + '.png' \n",
" savepath_spec_png = path_to_pictures +'/' + subdir + '/' + file + '_spec' + '.png'\n",
" if not os.path.exists(savepath):\n",
" img = sig2pic_with_spec(path_to_data=filepath, filename=file, specT=s, resize = size)\n",
" gc.collect()\n",
" try:\n",
" \n",
" plt.imshow(img[0])\n",
" plt.savefig(savepath_real_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.imshow(img[1])\n",
" plt.savefig(savepath_imag_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
"\n",
" plt.imshow(img[2])\n",
" plt.savefig(savepath_spec_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" np.save(savepath, img)\n",
" \n",
" except Exception:\n",
" continue\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6f4bf849",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,270 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda:0\n"
]
},
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x25775eabcd0>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import io\n",
"import cv2\n",
"import copy\n",
"import os\n",
"from tqdm import tqdm\n",
"import torch.nn as nn\n",
"import torch\n",
"import torchvision\n",
"from torch.utils.data import Dataset\n",
"from torch import default_generator, randperm\n",
"from PIL import Image\n",
"#from torch._utils import _accumulate\n",
"import csv\n",
"from torch.utils.data.dataset import Subset\n",
"from scipy import ndimage\n",
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
"print(device)\n",
"batch_size = 16\n",
"momentum=0.9\n",
"lr = 1e-3\n",
"import random\n",
"sub_sample = 0.5\n",
"import matplotlib\n",
"import gc\n",
"import torchsig.utils as u\n",
"import torchsig.transforms.transforms as T\n",
"matplotlib.use('Agg')\n",
"import matplotlib as mpl\n",
"mpl.rcParams['agg.path.chunksize'] = 256*256\n",
"plt.ioff()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "4848b066-2e09-4c1c-b8fa-8e3fa84d907a",
"metadata": {},
"outputs": [],
"source": [
"s = T.Spectrogram(nperseg=256)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
"source": [
"def sig2pic_with_spec(path_to_data, filename, specT=None,figsize=(16,16), dpi=16, resize = None):\n",
" try:\n",
" if specT is None:\n",
" specT = T.Spectrogram(nperseg=256)\n",
" with open(path_to_data + filename, 'rb') as file:\n",
" tmp = np.frombuffer(file.read(), dtype=np.complex64)\n",
" signal = tmp\n",
" spectr = np.array(specT(signal)['data']['samples'][:,:figsize[0] * dpi])\n",
" mag = np.abs(signal)\n",
" real = signal.real\n",
"\n",
" fig2 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
"\n",
" plt.plot(real, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf2 = io.BytesIO()\n",
" fig2.savefig(buf2, format=\"png\", dpi=dpi)\n",
" buf2.seek(0)\n",
" img_arr2 = np.frombuffer(buf2.getvalue(), dtype=np.uint8)\n",
" buf2.close()\n",
" img2 = cv2.imdecode(img_arr2, 1)\n",
" img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig2)\n",
"\n",
" fig3 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
"\n",
" plt.plot(mag, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf3 = io.BytesIO()\n",
" fig3.savefig(buf3, format=\"png\", dpi=dpi)\n",
" buf3.seek(0)\n",
" img_arr3 = np.frombuffer(buf3.getvalue(), dtype=np.uint8)\n",
" buf3.close()\n",
" img3 = cv2.imdecode(img_arr3, 1)\n",
" img3 = cv2.cvtColor(img3, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig3)\n",
"\n",
" if resize != None:\n",
" resized_real = cv2.resize(img2, resize)\n",
" resized_mag = cv2.resize(img3, resize)\n",
" resized_spectr = cv2.resize(spectr, resize)\n",
" img = np.asarray([resized_real, resized_mag, resized_spectr], dtype=np.float32)\n",
" return img\n",
" img = np.asarray([img2, img3, spectr], dtype=np.float32)\n",
" return img\n",
" except Exception as e:\n",
" print(str(e))\n",
" return None"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"path_to_binaries = '//192.168.11.63/data/DATASETS/Energomash/2400'\n",
"path_to_pictures = '//192.168.11.63/data/DATASETS/Energomash/2400_jpg'"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/965 [00:00<?, ?it/s]C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\scipy\\signal\\_spectral_py.py:1936: RuntimeWarning: overflow encountered in multiply\n",
" result = np.conjugate(result) * result\n",
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\scipy\\signal\\_spectral_py.py:1938: RuntimeWarning: invalid value encountered in multiply\n",
" result *= scale\n",
"100%|████████████████████████████████████████████████████████████████████████████████| 965/965 [28:11<00:00, 1.75s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: noise finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath = path_to_pictures +'/' + subdir + '/' + file + '.npy'\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '_real' + '.png' \n",
" savepath_imag_png = path_to_pictures +'/' + subdir + '/' + file + '_imag' + '.png' \n",
" savepath_spec_png = path_to_pictures +'/' + subdir + '/' + file + '_spec' + '.png'\n",
" if not os.path.exists(savepath):\n",
" img = sig2pic_with_spec(path_to_data=filepath, filename=file, specT=s, resize = size)\n",
" gc.collect()\n",
" try:\n",
" \n",
" plt.imshow(img[0])\n",
" plt.savefig(savepath_real_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.imshow(img[1])\n",
" plt.savefig(savepath_imag_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
"\n",
" plt.imshow(img[2])\n",
" plt.savefig(savepath_spec_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" np.save(savepath, img)\n",
" \n",
" except Exception:\n",
" continue\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "106b1add",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,270 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda:0\n"
]
},
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x25775eabcd0>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import io\n",
"import cv2\n",
"import copy\n",
"import os\n",
"from tqdm import tqdm\n",
"import torch.nn as nn\n",
"import torch\n",
"import torchvision\n",
"from torch.utils.data import Dataset\n",
"from torch import default_generator, randperm\n",
"from PIL import Image\n",
"#from torch._utils import _accumulate\n",
"import csv\n",
"from torch.utils.data.dataset import Subset\n",
"from scipy import ndimage\n",
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
"print(device)\n",
"batch_size = 16\n",
"momentum=0.9\n",
"lr = 1e-3\n",
"import random\n",
"sub_sample = 0.5\n",
"import matplotlib\n",
"import gc\n",
"import torchsig.utils as u\n",
"import torchsig.transforms.transforms as T\n",
"matplotlib.use('Agg')\n",
"import matplotlib as mpl\n",
"mpl.rcParams['agg.path.chunksize'] = 256*256\n",
"plt.ioff()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "4848b066-2e09-4c1c-b8fa-8e3fa84d907a",
"metadata": {},
"outputs": [],
"source": [
"s = T.Spectrogram(nperseg=256)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
"source": [
"def sig2pic_with_spec(path_to_data, filename, specT=None,figsize=(16,16), dpi=16, resize = None):\n",
" try:\n",
" if specT is None:\n",
" specT = T.Spectrogram(nperseg=256)\n",
" with open(path_to_data + filename, 'rb') as file:\n",
" tmp = np.frombuffer(file.read(), dtype=np.complex64)\n",
" signal = tmp\n",
" spectr = np.array(specT(signal)['data']['samples'][:,:figsize[0] * dpi])\n",
" mag = np.abs(signal)\n",
" real = signal.real\n",
"\n",
" fig2 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
"\n",
" plt.plot(real, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf2 = io.BytesIO()\n",
" fig2.savefig(buf2, format=\"png\", dpi=dpi)\n",
" buf2.seek(0)\n",
" img_arr2 = np.frombuffer(buf2.getvalue(), dtype=np.uint8)\n",
" buf2.close()\n",
" img2 = cv2.imdecode(img_arr2, 1)\n",
" img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig2)\n",
"\n",
" fig3 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
"\n",
" plt.plot(mag, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf3 = io.BytesIO()\n",
" fig3.savefig(buf3, format=\"png\", dpi=dpi)\n",
" buf3.seek(0)\n",
" img_arr3 = np.frombuffer(buf3.getvalue(), dtype=np.uint8)\n",
" buf3.close()\n",
" img3 = cv2.imdecode(img_arr3, 1)\n",
" img3 = cv2.cvtColor(img3, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig3)\n",
"\n",
" if resize != None:\n",
" resized_real = cv2.resize(img2, resize)\n",
" resized_mag = cv2.resize(img3, resize)\n",
" resized_spectr = cv2.resize(spectr, resize)\n",
" img = np.asarray([resized_real, resized_mag, resized_spectr], dtype=np.float32)\n",
" return img\n",
" img = np.asarray([img2, img3, spectr], dtype=np.float32)\n",
" return img\n",
" except Exception as e:\n",
" print(str(e))\n",
" return None"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"path_to_binaries = '//192.168.11.63/data/DATASETS/Energomash/2400'\n",
"path_to_pictures = '//192.168.11.63/data/DATASETS/Energomash/2400_jpg'"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/965 [00:00<?, ?it/s]C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\scipy\\signal\\_spectral_py.py:1936: RuntimeWarning: overflow encountered in multiply\n",
" result = np.conjugate(result) * result\n",
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\scipy\\signal\\_spectral_py.py:1938: RuntimeWarning: invalid value encountered in multiply\n",
" result *= scale\n",
"100%|████████████████████████████████████████████████████████████████████████████████| 965/965 [28:11<00:00, 1.75s/it]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: noise finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath = path_to_pictures +'/' + subdir + '/' + file + '.npy'\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '_real' + '.png' \n",
" savepath_imag_png = path_to_pictures +'/' + subdir + '/' + file + '_imag' + '.png' \n",
" savepath_spec_png = path_to_pictures +'/' + subdir + '/' + file + '_spec' + '.png'\n",
" if not os.path.exists(savepath):\n",
" img = sig2pic_with_spec(path_to_data=filepath, filename=file, specT=s, resize = size)\n",
" gc.collect()\n",
" try:\n",
" \n",
" plt.imshow(img[0])\n",
" plt.savefig(savepath_real_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.imshow(img[1])\n",
" plt.savefig(savepath_imag_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
"\n",
" plt.imshow(img[2])\n",
" plt.savefig(savepath_spec_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" np.save(savepath, img)\n",
" \n",
" except Exception:\n",
" continue\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "106b1add",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,428 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda:0\n"
]
},
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x73285e4f6300>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import io\n",
"import cv2\n",
"import copy\n",
"import os\n",
"from tqdm import tqdm\n",
"import torch.nn as nn\n",
"import torch\n",
"import torchvision\n",
"from torch.utils.data import Dataset\n",
"from torch import default_generator, randperm\n",
"from PIL import Image\n",
"#from torch._utils import _accumulate\n",
"import csv\n",
"from torch.utils.data.dataset import Subset\n",
"from scipy import ndimage\n",
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
"print(device)\n",
"batch_size = 16\n",
"momentum=0.9\n",
"lr = 1e-3\n",
"import random\n",
"sub_sample = 0.5\n",
"import matplotlib\n",
"import gc\n",
"import torchsig.utils as u\n",
"import torchsig.transforms.transforms as T\n",
"matplotlib.use('Agg')\n",
"import matplotlib as mpl\n",
"mpl.rcParams['agg.path.chunksize'] = 256*256\n",
"plt.ioff()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "4848b066-2e09-4c1c-b8fa-8e3fa84d907a",
"metadata": {},
"outputs": [],
"source": [
"s = T.Spectrogram(nperseg=256)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
"source": [
"def sig2pic_with_spec(path_to_data, filename, specT=None, figsize=(16,16), dpi=16, resize = None):\n",
" def standartize_signal(signal):\n",
" mean = np.mean(signal)\n",
" std = np.std(signal)\n",
" standardized_signal = (signal - mean) / std\n",
" return standardized_signal\n",
" \n",
" try:\n",
" if specT is None:\n",
" specT = T.Spectrogram(nperseg=256)\n",
" with open(path_to_data + filename, 'rb') as file:\n",
" tmp = np.frombuffer(file.read(), dtype=np.complex64)\n",
" signal = tmp\n",
" print(len(signal))\n",
" spectr = np.array(specT(signal)['data']['samples'][:,:figsize[0] * dpi])\n",
" mag = np.abs(signal)\n",
" mag = standartize_signal(mag)\n",
" real = signal.real\n",
" real = standartize_signal(real)\n",
"\n",
" fig2 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
"\n",
" plt.plot(real, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf2 = io.BytesIO()\n",
" fig2.savefig(buf2, format=\"png\", dpi=dpi)\n",
" buf2.seek(0)\n",
" img_arr2 = np.frombuffer(buf2.getvalue(), dtype=np.uint8)\n",
" buf2.close()\n",
" img2 = cv2.imdecode(img_arr2, 1)\n",
" img2 = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig2)\n",
"\n",
" fig3 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
"\n",
" plt.plot(mag, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf3 = io.BytesIO()\n",
" fig3.savefig(buf3, format=\"png\", dpi=dpi)\n",
" buf3.seek(0)\n",
" img_arr3 = np.frombuffer(buf3.getvalue(), dtype=np.uint8)\n",
" buf3.close()\n",
" img3 = cv2.imdecode(img_arr3, 1)\n",
" img3 = cv2.cvtColor(img3, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig3)\n",
"\n",
" if resize != None:\n",
" resized_real = cv2.resize(img2, resize)\n",
" resized_mag = cv2.resize(img3, resize)\n",
" resized_spectr = cv2.resize(spectr, resize)\n",
" img = np.asarray([resized_real, resized_mag, resized_spectr], dtype=np.float32)\n",
" return img\n",
" img = np.asarray([img2, img3, spectr], dtype=np.float32)\n",
" return img\n",
" except Exception as e:\n",
" print(str(e))\n",
" return None\n",
"\n",
"def plot_signal_and_magnitude(path_to_data, filename, filename_signal):\n",
" def remove_outliers(signal, threshold):\n",
" filtered_signal = np.where(np.abs(signal) <= threshold, signal, np.nan)\n",
" return np.nan_to_num(filtered_signal)\n",
" \n",
" def standartize_signal(signal):\n",
" mean = np.mean(signal)\n",
" std = np.std(signal)\n",
" standardized_signal = (signal - mean) / std\n",
" return standardized_signal\n",
" \n",
" with open(path_to_data + filename, 'rb') as file:\n",
" signal = np.frombuffer(file.read(), dtype=np.complex64)\n",
" print(max(np.real(signal)))\n",
" print(signal[:100])\n",
" plt.figure(figsize=(12, 6))\n",
" plt.subplot(2, 1, 1)\n",
" plt.plot(remove_outliers(standartize_signal(np.real(signal)),1)[10000:], label='Real Part')\n",
" plt.plot(remove_outliers(standartize_signal(np.imag(signal)),1)[10000:], label='Imaginary Part')\n",
" plt.title('QAM Signal')\n",
" plt.legend()\n",
" plt.subplot(2, 1, 2)\n",
" plt.plot(np.abs(signal), label='Magnitude')\n",
" plt.title('Magnitude of QAM Signal')\n",
" plt.legend()\n",
" plt.tight_layout()\n",
" plt.savefig(filename_signal)\n",
" plt.close()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"path_to_binaries = '/home/sibscience/Datasets/915_9K'\n",
"path_to_pictures = '/home/sibscience/Datasets/915_9K_jpg'"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "6a5f4c51",
"metadata": {},
"outputs": [
{
"ename": "FileNotFoundError",
"evalue": "[Errno 2] No such file or directory: '/home/sibscience/Datasets/915_9K_jpg'",
"output_type": "error",
"traceback": [
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
"\u001b[31mFileNotFoundError\u001b[39m Traceback (most recent call last)",
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[7]\u001b[39m\u001b[32m, line 3\u001b[39m\n\u001b[32m 1\u001b[39m size = (\u001b[32m256\u001b[39m,\u001b[32m256\u001b[39m)\n\u001b[32m 2\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m os.path.exists(path_to_pictures):\n\u001b[32m----> \u001b[39m\u001b[32m3\u001b[39m \u001b[43mos\u001b[49m\u001b[43m.\u001b[49m\u001b[43mmkdir\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath_to_pictures\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 4\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m subdir \u001b[38;5;129;01min\u001b[39;00m os.listdir(path_to_binaries):\n\u001b[32m 5\u001b[39m filepath = path_to_binaries + \u001b[33m'\u001b[39m\u001b[33m/\u001b[39m\u001b[33m'\u001b[39m + subdir + \u001b[33m'\u001b[39m\u001b[33m/\u001b[39m\u001b[33m'\u001b[39m\n",
"\u001b[31mFileNotFoundError\u001b[39m: [Errno 2] No such file or directory: '/home/sibscience/Datasets/915_9K_jpg'"
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath = path_to_pictures +'/' + subdir + '/' + file + '.npy'\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '.png' \n",
" if not os.path.exists(savepath):\n",
" img = plot_signal_and_magnitude(path_to_data=filepath, filename=file, filename_signal= savepath_real_png)\n",
" gc.collect()\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"\r\n",
" 0%| | 0/565 [00:00<?, ?it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"800016\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\r\n",
" 28%|█████████████████████▉ | 157/565 [00:01<00:02, 145.94it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n",
"800016\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\r\n",
" 30%|████████████████████████▎ | 172/565 [00:15<00:46, 8.38it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"800016\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 31%|████████████████████████▍ | 173/565 [00:16<00:37, 10.59it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"800016\n"
]
},
{
"ename": "KeyboardInterrupt",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[10], line 15\u001b[0m\n\u001b[0;32m 13\u001b[0m savepath_spec_png \u001b[38;5;241m=\u001b[39m path_to_pictures \u001b[38;5;241m+\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m subdir \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m/\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m file \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m_spec\u001b[39m\u001b[38;5;124m'\u001b[39m \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124m.png\u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m 14\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m os\u001b[38;5;241m.\u001b[39mpath\u001b[38;5;241m.\u001b[39mexists(savepath):\n\u001b[1;32m---> 15\u001b[0m img \u001b[38;5;241m=\u001b[39m \u001b[43msig2pic_with_spec\u001b[49m\u001b[43m(\u001b[49m\u001b[43mpath_to_data\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfilepath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfilename\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfile\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mspecT\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43ms\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mresize\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43msize\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 16\u001b[0m gc\u001b[38;5;241m.\u001b[39mcollect()\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n",
"Cell \u001b[1;32mIn[7], line 29\u001b[0m, in \u001b[0;36msig2pic_with_spec\u001b[1;34m(path_to_data, filename, specT, figsize, dpi, resize)\u001b[0m\n\u001b[0;32m 27\u001b[0m plt\u001b[38;5;241m.\u001b[39mmargins(\u001b[38;5;241m0\u001b[39m,\u001b[38;5;241m0\u001b[39m)\n\u001b[0;32m 28\u001b[0m buf2 \u001b[38;5;241m=\u001b[39m io\u001b[38;5;241m.\u001b[39mBytesIO()\n\u001b[1;32m---> 29\u001b[0m \u001b[43mfig2\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msavefig\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbuf2\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mformat\u001b[39;49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mpng\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdpi\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdpi\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 30\u001b[0m buf2\u001b[38;5;241m.\u001b[39mseek(\u001b[38;5;241m0\u001b[39m)\n\u001b[0;32m 31\u001b[0m img_arr2 \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mfrombuffer(buf2\u001b[38;5;241m.\u001b[39mgetvalue(), dtype\u001b[38;5;241m=\u001b[39mnp\u001b[38;5;241m.\u001b[39muint8)\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\figure.py:3390\u001b[0m, in \u001b[0;36mFigure.savefig\u001b[1;34m(self, fname, transparent, **kwargs)\u001b[0m\n\u001b[0;32m 3388\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m ax \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39maxes:\n\u001b[0;32m 3389\u001b[0m _recursively_make_axes_transparent(stack, ax)\n\u001b[1;32m-> 3390\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcanvas\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprint_figure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\backend_bases.py:2193\u001b[0m, in \u001b[0;36mFigureCanvasBase.print_figure\u001b[1;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, pad_inches, bbox_extra_artists, backend, **kwargs)\u001b[0m\n\u001b[0;32m 2189\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 2190\u001b[0m \u001b[38;5;66;03m# _get_renderer may change the figure dpi (as vector formats\u001b[39;00m\n\u001b[0;32m 2191\u001b[0m \u001b[38;5;66;03m# force the figure dpi to 72), so we need to set it again here.\u001b[39;00m\n\u001b[0;32m 2192\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m cbook\u001b[38;5;241m.\u001b[39m_setattr_cm(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfigure, dpi\u001b[38;5;241m=\u001b[39mdpi):\n\u001b[1;32m-> 2193\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mprint_method\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 2194\u001b[0m \u001b[43m \u001b[49m\u001b[43mfilename\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2195\u001b[0m \u001b[43m \u001b[49m\u001b[43mfacecolor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfacecolor\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2196\u001b[0m \u001b[43m \u001b[49m\u001b[43medgecolor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43medgecolor\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2197\u001b[0m \u001b[43m \u001b[49m\u001b[43morientation\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43morientation\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2198\u001b[0m \u001b[43m \u001b[49m\u001b[43mbbox_inches_restore\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_bbox_inches_restore\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2199\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 2200\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 2201\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bbox_inches \u001b[38;5;129;01mand\u001b[39;00m restore_bbox:\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\backend_bases.py:2043\u001b[0m, in \u001b[0;36mFigureCanvasBase._switch_canvas_and_return_print_method.<locals>.<lambda>\u001b[1;34m(*args, **kwargs)\u001b[0m\n\u001b[0;32m 2039\u001b[0m optional_kws \u001b[38;5;241m=\u001b[39m { \u001b[38;5;66;03m# Passed by print_figure for other renderers.\u001b[39;00m\n\u001b[0;32m 2040\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdpi\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mfacecolor\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124medgecolor\u001b[39m\u001b[38;5;124m\"\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124morientation\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 2041\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbbox_inches_restore\u001b[39m\u001b[38;5;124m\"\u001b[39m}\n\u001b[0;32m 2042\u001b[0m skip \u001b[38;5;241m=\u001b[39m optional_kws \u001b[38;5;241m-\u001b[39m {\u001b[38;5;241m*\u001b[39minspect\u001b[38;5;241m.\u001b[39msignature(meth)\u001b[38;5;241m.\u001b[39mparameters}\n\u001b[1;32m-> 2043\u001b[0m print_method \u001b[38;5;241m=\u001b[39m functools\u001b[38;5;241m.\u001b[39mwraps(meth)(\u001b[38;5;28;01mlambda\u001b[39;00m \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs: \u001b[43mmeth\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 2044\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m{\u001b[49m\u001b[43mk\u001b[49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mfor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mv\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mitems\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mk\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01min\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mskip\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[0;32m 2045\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m: \u001b[38;5;66;03m# Let third-parties do as they see fit.\u001b[39;00m\n\u001b[0;32m 2046\u001b[0m print_method \u001b[38;5;241m=\u001b[39m meth\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\backends\\backend_agg.py:497\u001b[0m, in \u001b[0;36mFigureCanvasAgg.print_png\u001b[1;34m(self, filename_or_obj, metadata, pil_kwargs)\u001b[0m\n\u001b[0;32m 450\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mprint_png\u001b[39m(\u001b[38;5;28mself\u001b[39m, filename_or_obj, \u001b[38;5;241m*\u001b[39m, metadata\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, pil_kwargs\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m 451\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 452\u001b[0m \u001b[38;5;124;03m Write the figure to a PNG file.\u001b[39;00m\n\u001b[0;32m 453\u001b[0m \n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 495\u001b[0m \u001b[38;5;124;03m *metadata*, including the default 'Software' key.\u001b[39;00m\n\u001b[0;32m 496\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 497\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_print_pil\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfilename_or_obj\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mpng\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpil_kwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmetadata\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\backends\\backend_agg.py:445\u001b[0m, in \u001b[0;36mFigureCanvasAgg._print_pil\u001b[1;34m(self, filename_or_obj, fmt, pil_kwargs, metadata)\u001b[0m\n\u001b[0;32m 440\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_print_pil\u001b[39m(\u001b[38;5;28mself\u001b[39m, filename_or_obj, fmt, pil_kwargs, metadata\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m 441\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[0;32m 442\u001b[0m \u001b[38;5;124;03m Draw the canvas, then save it using `.image.imsave` (to which\u001b[39;00m\n\u001b[0;32m 443\u001b[0m \u001b[38;5;124;03m *pil_kwargs* and *metadata* are forwarded).\u001b[39;00m\n\u001b[0;32m 444\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 445\u001b[0m \u001b[43mFigureCanvasAgg\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 446\u001b[0m mpl\u001b[38;5;241m.\u001b[39mimage\u001b[38;5;241m.\u001b[39mimsave(\n\u001b[0;32m 447\u001b[0m filename_or_obj, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbuffer_rgba(), \u001b[38;5;28mformat\u001b[39m\u001b[38;5;241m=\u001b[39mfmt, origin\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mupper\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[0;32m 448\u001b[0m dpi\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfigure\u001b[38;5;241m.\u001b[39mdpi, metadata\u001b[38;5;241m=\u001b[39mmetadata, pil_kwargs\u001b[38;5;241m=\u001b[39mpil_kwargs)\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\backends\\backend_agg.py:388\u001b[0m, in \u001b[0;36mFigureCanvasAgg.draw\u001b[1;34m(self)\u001b[0m\n\u001b[0;32m 385\u001b[0m \u001b[38;5;66;03m# Acquire a lock on the shared font cache.\u001b[39;00m\n\u001b[0;32m 386\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtoolbar\u001b[38;5;241m.\u001b[39m_wait_cursor_for_draw_cm() \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtoolbar\n\u001b[0;32m 387\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m nullcontext()):\n\u001b[1;32m--> 388\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfigure\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 389\u001b[0m \u001b[38;5;66;03m# A GUI class may be need to update a window using this draw, so\u001b[39;00m\n\u001b[0;32m 390\u001b[0m \u001b[38;5;66;03m# don't forget to call the superclass.\u001b[39;00m\n\u001b[0;32m 391\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mdraw()\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\artist.py:95\u001b[0m, in \u001b[0;36m_finalize_rasterization.<locals>.draw_wrapper\u001b[1;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[0;32m 93\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(draw)\n\u001b[0;32m 94\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mdraw_wrapper\u001b[39m(artist, renderer, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m---> 95\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 96\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m renderer\u001b[38;5;241m.\u001b[39m_rasterizing:\n\u001b[0;32m 97\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstop_rasterizing()\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\artist.py:72\u001b[0m, in \u001b[0;36mallow_rasterization.<locals>.draw_wrapper\u001b[1;34m(artist, renderer)\u001b[0m\n\u001b[0;32m 69\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 70\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[1;32m---> 72\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 73\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 74\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\figure.py:3154\u001b[0m, in \u001b[0;36mFigure.draw\u001b[1;34m(self, renderer)\u001b[0m\n\u001b[0;32m 3151\u001b[0m \u001b[38;5;66;03m# ValueError can occur when resizing a window.\u001b[39;00m\n\u001b[0;32m 3153\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpatch\u001b[38;5;241m.\u001b[39mdraw(renderer)\n\u001b[1;32m-> 3154\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 3155\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3157\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m sfig \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39msubfigs:\n\u001b[0;32m 3158\u001b[0m sfig\u001b[38;5;241m.\u001b[39mdraw(renderer)\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\image.py:132\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[1;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[0;32m 130\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[0;32m 131\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[1;32m--> 132\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 133\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 134\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[0;32m 135\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\artist.py:72\u001b[0m, in \u001b[0;36mallow_rasterization.<locals>.draw_wrapper\u001b[1;34m(artist, renderer)\u001b[0m\n\u001b[0;32m 69\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 70\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[1;32m---> 72\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 73\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 74\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\axes\\_base.py:3070\u001b[0m, in \u001b[0;36m_AxesBase.draw\u001b[1;34m(self, renderer)\u001b[0m\n\u001b[0;32m 3067\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artists_rasterized:\n\u001b[0;32m 3068\u001b[0m _draw_rasterized(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mfigure, artists_rasterized, renderer)\n\u001b[1;32m-> 3070\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 3071\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfigure\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3073\u001b[0m renderer\u001b[38;5;241m.\u001b[39mclose_group(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maxes\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 3074\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstale \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\image.py:132\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[1;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[0;32m 130\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[0;32m 131\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[1;32m--> 132\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 133\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 134\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[0;32m 135\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\artist.py:72\u001b[0m, in \u001b[0;36mallow_rasterization.<locals>.draw_wrapper\u001b[1;34m(artist, renderer)\u001b[0m\n\u001b[0;32m 69\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 70\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[1;32m---> 72\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 73\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[0;32m 74\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\lines.py:801\u001b[0m, in \u001b[0;36mLine2D.draw\u001b[1;34m(self, renderer)\u001b[0m\n\u001b[0;32m 798\u001b[0m gc\u001b[38;5;241m.\u001b[39mset_foreground(lc_rgba, isRGBA\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[0;32m 800\u001b[0m gc\u001b[38;5;241m.\u001b[39mset_dashes(\u001b[38;5;241m*\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_dash_pattern)\n\u001b[1;32m--> 801\u001b[0m \u001b[43mrenderer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw_path\u001b[49m\u001b[43m(\u001b[49m\u001b[43mgc\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtpath\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maffine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfrozen\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 802\u001b[0m gc\u001b[38;5;241m.\u001b[39mrestore()\n\u001b[0;32m 804\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_marker \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_markersize \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\matplotlib\\backends\\backend_agg.py:117\u001b[0m, in \u001b[0;36mRendererAgg.draw_path\u001b[1;34m(self, gc, path, transform, rgbFace)\u001b[0m\n\u001b[0;32m 115\u001b[0m p\u001b[38;5;241m.\u001b[39msimplify_threshold \u001b[38;5;241m=\u001b[39m path\u001b[38;5;241m.\u001b[39msimplify_threshold\n\u001b[0;32m 116\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m--> 117\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_renderer\u001b[38;5;241m.\u001b[39mdraw_path(gc, p, transform, rgbFace)\n\u001b[0;32m 118\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mOverflowError\u001b[39;00m:\n\u001b[0;32m 119\u001b[0m msg \u001b[38;5;241m=\u001b[39m (\n\u001b[0;32m 120\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mExceeded cell block limit in Agg.\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 121\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mPlease reduce the value of \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 127\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mpath\u001b[38;5;241m.\u001b[39msimplify_threshold\u001b[38;5;132;01m:\u001b[39;00m\u001b[38;5;124m.2f\u001b[39m\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m on the input).\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[0;32m 128\u001b[0m )\n",
"\u001b[1;31mKeyboardInterrupt\u001b[0m: "
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath = path_to_pictures +'/' + subdir + '/' + file + '.npy'\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '_real' + '.png' \n",
" savepath_imag_png = path_to_pictures +'/' + subdir + '/' + file + '_imag' + '.png' \n",
" savepath_spec_png = path_to_pictures +'/' + subdir + '/' + file + '_spec' + '.png'\n",
" if not os.path.exists(savepath):\n",
" img = sig2pic_with_spec(path_to_data=filepath, filename=file, specT=s, resize = size)\n",
" gc.collect()\n",
" try:\n",
" \n",
" plt.imshow(img[0])\n",
" plt.savefig(savepath_real_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.imshow(img[1])\n",
" plt.savefig(savepath_imag_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
"\n",
" plt.imshow(img[2])\n",
" plt.savefig(savepath_spec_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" np.save(savepath, img)\n",
" \n",
" except Exception:\n",
" continue\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "58ff5fbd",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "9f9ad366",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv-train",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -2,7 +2,7 @@
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 3,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
@ -16,10 +16,10 @@
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x7d183e4bd220>"
"<contextlib.ExitStack at 0x76adb5fa4260>"
]
},
"execution_count": 2,
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@ -64,7 +64,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 4,
"id": "4848b066-2e09-4c1c-b8fa-8e3fa84d907a",
"metadata": {},
"outputs": [],
@ -74,7 +74,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 5,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
@ -147,20 +147,20 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": null,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"selected_freq=750\n",
"selected_freq=915\n",
"\n",
"path_to_binaries = f'/mnt/nvme1/dataset/{selected_freq}'\n",
"path_to_pictures = f'/mnt/nvme1/dataset_img/noise/{selected_freq}_jpg'"
"path_to_binaries = f'/home/sibsci/dataset/drone/{selected_freq}'\n",
"path_to_pictures = f'/home/sibsci/dataset_img/drone/{selected_freq}_jpg'"
]
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 7,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
@ -170,7 +170,7 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 8,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
@ -178,287 +178,14 @@
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_16-59-25: 0%| | 0/40 [00:00<?, ?it/s]"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_16-59-25: 100%|██████████| 40/40 [00:47<00:00, 1.18s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_16-59-25 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-26_02-59-25: 100%|██████████| 40/40 [00:47<00:00, 1.18s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-26_02-59-25 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_14-59-25: 100%|██████████| 40/40 [00:35<00:00, 1.11it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_14-59-25 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-26_04-59-26: 100%|██████████| 40/40 [00:49<00:00, 1.23s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-26_04-59-26 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_17-59-26: 100%|██████████| 40/40 [00:44<00:00, 1.12s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_17-59-26 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_20-59-26: 100%|██████████| 40/40 [00:47<00:00, 1.20s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_20-59-26 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_22-59-25: 100%|██████████| 40/40 [00:45<00:00, 1.13s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_22-59-25 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_14-56-12: 100%|██████████| 25/25 [00:22<00:00, 1.12it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_14-56-12 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-26_00-59-27: 100%|██████████| 40/40 [00:46<00:00, 1.16s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-26_00-59-27 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_19-59-25: 100%|██████████| 40/40 [00:44<00:00, 1.11s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_19-59-25 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-26_05-59-25: 100%|██████████| 40/40 [00:48<00:00, 1.20s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-26_05-59-25 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-26_08-59-25: 100%|██████████| 40/40 [00:47<00:00, 1.18s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-26_08-59-25 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-26_07-59-25: 100%|██████████| 40/40 [00:46<00:00, 1.16s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-26_07-59-25 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-26_06-59-26: 100%|██████████| 40/40 [00:48<00:00, 1.20s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-26_06-59-26 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-26_01-59-26: 100%|██████████| 40/40 [00:47<00:00, 1.20s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-26_01-59-26 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_15-59-26: 100%|██████████| 40/40 [00:45<00:00, 1.14s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_15-59-26 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_23-59-26: 100%|██████████| 40/40 [00:48<00:00, 1.20s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_23-59-26 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_21-59-26: 100%|██████████| 40/40 [00:46<00:00, 1.17s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_21-59-26 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-25_18-59-25: 100%|██████████| 40/40 [00:47<00:00, 1.19s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-25_18-59-25 finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"2026-03-26_03-59-26: 100%|██████████| 40/40 [00:47<00:00, 1.19s/it]"
"2026-04-06_11-37-43: 100%|██████████| 42/42 [00:11<00:00, 3.55it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: 2026-03-26_03-59-26 finished!\n"
"Dir: 2026-04-06_11-37-43 finished!\n"
]
},
{
@ -473,7 +200,7 @@
"size = (256,256)\n",
"\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
" os.makedirs(path_to_pictures,exist_ok=True)\n",
"\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
@ -542,7 +269,7 @@
],
"metadata": {
"kernelspec": {
"display_name": ".venv-train (3.12.3)",
"display_name": ".venv-train",
"language": "python",
"name": "python3"
},

@ -1,222 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda:0\n"
]
},
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x249d580ff50>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import io\n",
"import cv2\n",
"import copy\n",
"import os\n",
"from tqdm import tqdm\n",
"import torch.nn as nn\n",
"import torch\n",
"import torchvision\n",
"from torch.utils.data import Dataset\n",
"from torch import default_generator, randperm\n",
"from PIL import Image\n",
"#from torch._utils import _accumulate\n",
"import csv\n",
"from torch.utils.data.dataset import Subset\n",
"from scipy import ndimage\n",
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
"print(device)\n",
"batch_size = 16\n",
"momentum=0.9\n",
"lr = 1e-3\n",
"import random\n",
"sub_sample = 0.5\n",
"import matplotlib\n",
"import gc\n",
"matplotlib.use('Agg')\n",
"import matplotlib as mpl\n",
"mpl.rcParams['agg.path.chunksize'] = 256*256\n",
"plt.ioff()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
"source": [
"def sig2pic_with_spec(path_to_data, filename, figsize=(16,16), dpi=16, resize = None):\n",
" try:\n",
" array = np.load(path_to_data+filename)\n",
"\n",
" if resize != None:\n",
" resized_real = cv2.resize(array[0], resize)\n",
" resized_mag = cv2.resize(array[1], resize)\n",
" resized_spectr = cv2.resize(array[2], resize)\n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" except Exception as e:\n",
" print(str(e))\n",
" return None"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"path_to_binaries = 'C:/Users/snytk/Lerning_NN_for_work/datasets/2.4_learning'\n",
"path_to_pictures = 'C:/Users/snytk/Lerning_NN_for_work/datasets_jpg/2.4_jpg_learning'"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████| 8751/8751 [1:01:54<00:00, 2.36it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: drone finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████████████████████████████████████████████████████████████████████| 11202/11202 [1:19:30<00:00, 2.35it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: noise finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '_real' + '.jpg' \n",
" savepath_imag_png = path_to_pictures +'/' + subdir + '/' + file + '_imag' + '.jpg' \n",
" savepath_spec_png = path_to_pictures +'/' + subdir + '/' + file + '_spec' + '.jpg'\n",
" if not os.path.exists(savepath_real_png):\n",
" img = sig2pic_with_spec(path_to_data=filepath, filename=file, resize = size)\n",
" gc.collect()\n",
" \n",
" try:\n",
" plt.imshow(img[0])\n",
" plt.savefig(savepath_real_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.imshow(img[1])\n",
" plt.savefig(savepath_imag_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
"\n",
" plt.imshow(img[2])\n",
" plt.savefig(savepath_spec_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" except Exception:\n",
" continue\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cfbd309d",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,360 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda:0\n"
]
},
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x20af0408250>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import io\n",
"import cv2\n",
"import copy\n",
"import os\n",
"from tqdm import tqdm\n",
"import torch.nn as nn\n",
"import torch\n",
"import torchvision\n",
"from torch.utils.data import Dataset\n",
"from torch import default_generator, randperm\n",
"from PIL import Image\n",
"#from torch._utils import _accumulate\n",
"import csv\n",
"from torch.utils.data.dataset import Subset\n",
"from scipy import ndimage\n",
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
"print(device)\n",
"batch_size = 16\n",
"momentum=0.9\n",
"lr = 1e-3\n",
"import random\n",
"sub_sample = 0.5\n",
"import matplotlib\n",
"import gc\n",
"matplotlib.use('Agg')\n",
"import matplotlib as mpl\n",
"mpl.rcParams['agg.path.chunksize'] = 256*256\n",
"plt.ioff()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
"source": [
"def sig2pic_with_spec(path_to_data, filename, figsize=(16,16), dpi=16, resize = None):\n",
" try:\n",
" array = np.load(path_to_data+filename)\n",
"\n",
" if resize != None:\n",
" resized_real = cv2.resize(array[0], resize)\n",
" resized_mag = cv2.resize(array[1], resize)\n",
" resized_spectr = cv2.resize(array[2], resize)\n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" except Exception as e:\n",
" print(str(e))\n",
" return None\n",
" \n",
" \n",
" \n",
"\n",
"def pre_func_ensemble(data=None, src ='', ind_inference=0):\n",
" try:\n",
" import matplotlib.pyplot as plt\n",
" matplotlib.use('Agg')\n",
" plt.ioff()\n",
"\n",
" figsize = (16, 16)\n",
" dpi = 16\n",
"\n",
" signal = np.vectorize(complex)(data[0], data[1])\n",
" #np.save(src + '_inference_2400_' + str(ind_inference) + '.npy', signal)\n",
" spec = transform.Spectrogram(nperseg=256)\n",
" spectr = np.array(spec(signal)[:,:figsize[0] * dpi])\n",
" fig1 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
" sigr = signal.real\n",
" sigi = signal.imag\n",
" \n",
" plt.plot(sigr, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf1 = io.BytesIO()\n",
" fig1.savefig(buf1, format=\"png\", dpi=dpi)\n",
" buf1.seek(0)\n",
" img_arr1 = np.frombuffer(buf1.getvalue(), dtype=np.uint8)\n",
" buf1.close()\n",
" img1 = cv2.imdecode(img_arr1, 1)\n",
" img1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig1)\n",
"\n",
" fig2 = plt.figure(figsize = figsize)\n",
" plt.axes(ylim=(-1, 1))\n",
" sigr = signal.real\n",
" sigi = signal.imag\n",
" \n",
" plt.plot(sigi, color='black')\n",
" plt.gca().set_axis_off()\n",
" plt.subplots_adjust(top = 1, bottom = 0, right = 1, left = 0, hspace = 0, wspace = 0)\n",
" plt.margins(0,0)\n",
" buf = io.BytesIO()\n",
" fig2.savefig(buf, format=\"png\", dpi=dpi)\n",
" buf.seek(0)\n",
" img_arr = np.frombuffer(buf.getvalue(), dtype=np.uint8)\n",
" buf.close()\n",
" img = cv2.imdecode(img_arr, 1)\n",
" img2 = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" plt.close(fig2)\n",
"\n",
" img = np.array([img1, img2, spectr])\n",
" \n",
" cv2.destroyAllWindows()\n",
" del signal\n",
" del spec\n",
" del spectr\n",
" del img1\n",
" del img2\n",
" del sigr\n",
" del sigi\n",
" del buf\n",
" del buf1\n",
" del img_arr\n",
" del img_arr1\n",
" cv2.destroyAllWindows()\n",
" gc.collect()\n",
"\n",
" print('Подготовка данных завершена')\n",
" print()\n",
" return img\n",
"\n",
" except Exception as e:\n",
" print(str(e))\n",
" return None\n",
"\n",
"\n",
"def build_func_ensemble(file_model='', file_config='', num_classes=None):\n",
" try:\n",
" import matplotlib.pyplot as plt\n",
" matplotlib.use('Agg')\n",
" plt.ioff()\n",
" torch.cuda.empty_cache()\n",
" model1 = models.resnet18(pretrained=False)\n",
" model2 = models.resnet50(pretrained=False)\n",
" model3 = models.resnet101(pretrained=False)\n",
"\n",
" num_classes = 2\n",
"\n",
" model1.fc = nn.Linear(model1.fc.in_features, num_classes)\n",
" model2.fc = nn.Linear(model2.fc.in_features, num_classes)\n",
" model3.fc = nn.Linear(model3.fc.in_features, num_classes)\n",
"\n",
" class Ensemble(nn.Module):\n",
" def __init__(self, model1, model2, model3):\n",
" super(Ensemble, self).__init__()\n",
" self.model1 = model1\n",
" self.model2 = model2\n",
" self.model3 = model3\n",
" self.fc = nn.Linear(3 * num_classes, num_classes)\n",
"\n",
" def forward(self, x):\n",
" x1 = self.model1(x)\n",
" x2 = self.model2(x)\n",
" x3 = self.model3(x)\n",
" x = torch.cat((x1, x2, x3), dim=1)\n",
" x = self.fc(x)\n",
" return x\n",
"\n",
" model = Ensemble(model1, model2, model3)\n",
"\n",
" device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
" if device != 'cpu':\n",
" model = model.to(device)\n",
" model.load_state_dict(torch.load(file_model, map_location=device))\n",
" model.eval()\n",
"\n",
" cv2.destroyAllWindows()\n",
" del model1\n",
" del model2\n",
" del model3\n",
" gc.collect()\n",
"\n",
" print('Инициализация модели завершена')\n",
" print()\n",
" return model\n",
"\n",
" except Exception as exc:\n",
" print(str(exc))\n",
" return None\n"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"path_to_binaries = 'C:/Users/snytk/Lerning_NN_for_work/datasets/1.2_learning'\n",
"path_to_pictures = 'C:/Users/snytk/Lerning_NN_for_work/datasets_jpg/1.2_jpg_learning'"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 963/963 [06:36<00:00, 2.43it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: drone finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████████████████████████████████████████████████████████████████████████| 1724/1724 [11:41<00:00, 2.46it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: noise finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '_real' + '.jpg' \n",
" savepath_imag_png = path_to_pictures +'/' + subdir + '/' + file + '_imag' + '.jpg' \n",
" savepath_spec_png = path_to_pictures +'/' + subdir + '/' + file + '_spec' + '.jpg'\n",
" if not os.path.exists(savepath_real_png):\n",
" img = sig2pic_with_spec(path_to_data=filepath, filename=file, resize = size)\n",
" gc.collect()\n",
" \n",
" try:\n",
" plt.imshow(img[0])\n",
" plt.savefig(savepath_real_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.imshow(img[1])\n",
" plt.savefig(savepath_imag_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
"\n",
" plt.imshow(img[2])\n",
" plt.savefig(savepath_spec_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" except Exception:\n",
" continue\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "871d7ab6",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,194 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda:0\n"
]
},
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x249d580ff50>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import io\n",
"import cv2\n",
"import copy\n",
"import os\n",
"from tqdm import tqdm\n",
"import torch.nn as nn\n",
"import torch\n",
"import torchvision\n",
"from torch.utils.data import Dataset\n",
"from torch import default_generator, randperm\n",
"from PIL import Image\n",
"#from torch._utils import _accumulate\n",
"import csv\n",
"from torch.utils.data.dataset import Subset\n",
"from scipy import ndimage\n",
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
"print(device)\n",
"batch_size = 16\n",
"momentum=0.9\n",
"lr = 1e-3\n",
"import random\n",
"sub_sample = 0.5\n",
"import matplotlib\n",
"import gc\n",
"matplotlib.use('Agg')\n",
"import matplotlib as mpl\n",
"mpl.rcParams['agg.path.chunksize'] = 256*256\n",
"plt.ioff()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
"source": [
"def sig2pic_with_spec(path_to_data, filename, figsize=(16,16), dpi=16, resize = None):\n",
" try:\n",
" array = np.load(path_to_data+filename)\n",
"\n",
" if resize != None:\n",
" resized_real = cv2.resize(array[0], resize)\n",
" resized_mag = cv2.resize(array[1], resize)\n",
" resized_spectr = cv2.resize(array[2], resize)\n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" except Exception as e:\n",
" print(str(e))\n",
" return None"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"path_to_binaries = 'C:/Users/snytk/Lerning_NN_for_work/datasets/2.4_learning'\n",
"path_to_pictures = 'C:/Users/snytk/Lerning_NN_for_work/datasets_jpg/2.4_jpg_learning'"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 2%|█▍ | 158/8751 [01:06<1:01:14, 2.34it/s]"
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '_real' + '.jpg' \n",
" savepath_imag_png = path_to_pictures +'/' + subdir + '/' + file + '_imag' + '.jpg' \n",
" savepath_spec_png = path_to_pictures +'/' + subdir + '/' + file + '_spec' + '.jpg'\n",
" if not os.path.exists(savepath_real_png):\n",
" img = sig2pic_with_spec(path_to_data=filepath, filename=file, resize = size)\n",
" gc.collect()\n",
" \n",
" try:\n",
" plt.imshow(img[0])\n",
" plt.savefig(savepath_real_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.imshow(img[1])\n",
" plt.savefig(savepath_imag_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
"\n",
" plt.imshow(img[2])\n",
" plt.savefig(savepath_spec_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" except Exception:\n",
" continue\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "871d7ab6",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,194 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda:0\n"
]
},
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x249d580ff50>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import io\n",
"import cv2\n",
"import copy\n",
"import os\n",
"from tqdm import tqdm\n",
"import torch.nn as nn\n",
"import torch\n",
"import torchvision\n",
"from torch.utils.data import Dataset\n",
"from torch import default_generator, randperm\n",
"from PIL import Image\n",
"#from torch._utils import _accumulate\n",
"import csv\n",
"from torch.utils.data.dataset import Subset\n",
"from scipy import ndimage\n",
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
"print(device)\n",
"batch_size = 16\n",
"momentum=0.9\n",
"lr = 1e-3\n",
"import random\n",
"sub_sample = 0.5\n",
"import matplotlib\n",
"import gc\n",
"matplotlib.use('Agg')\n",
"import matplotlib as mpl\n",
"mpl.rcParams['agg.path.chunksize'] = 256*256\n",
"plt.ioff()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
"source": [
"def sig2pic_with_spec(path_to_data, filename, figsize=(16,16), dpi=16, resize = None):\n",
" try:\n",
" array = np.load(path_to_data+filename)\n",
"\n",
" if resize != None:\n",
" resized_real = cv2.resize(array[0], resize)\n",
" resized_mag = cv2.resize(array[1], resize)\n",
" resized_spectr = cv2.resize(array[2], resize)\n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" except Exception as e:\n",
" print(str(e))\n",
" return None"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"path_to_binaries = 'C:/Users/snytk/Lerning_NN_for_work/datasets/2.4_learning'\n",
"path_to_pictures = 'C:/Users/snytk/Lerning_NN_for_work/datasets_jpg/2.4_jpg_learning'"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
" 2%|█▍ | 158/8751 [01:06<1:01:14, 2.34it/s]"
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '_real' + '.jpg' \n",
" savepath_imag_png = path_to_pictures +'/' + subdir + '/' + file + '_imag' + '.jpg' \n",
" savepath_spec_png = path_to_pictures +'/' + subdir + '/' + file + '_spec' + '.jpg'\n",
" if not os.path.exists(savepath_real_png):\n",
" img = sig2pic_with_spec(path_to_data=filepath, filename=file, resize = size)\n",
" gc.collect()\n",
" \n",
" try:\n",
" plt.imshow(img[0])\n",
" plt.savefig(savepath_real_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.imshow(img[1])\n",
" plt.savefig(savepath_imag_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
"\n",
" plt.imshow(img[2])\n",
" plt.savefig(savepath_spec_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" except Exception:\n",
" continue\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "871d7ab6",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,236 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4fdb98fc-65bb-467e-be0c-168fee9b0fca",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda:0\n",
"['Solarize_Light2', '_classic_test_patch', '_mpl-gallery', '_mpl-gallery-nogrid', 'bmh', 'classic', 'dark_background', 'fast', 'fivethirtyeight', 'ggplot', 'grayscale', 'seaborn-v0_8', 'seaborn-v0_8-bright', 'seaborn-v0_8-colorblind', 'seaborn-v0_8-dark', 'seaborn-v0_8-dark-palette', 'seaborn-v0_8-darkgrid', 'seaborn-v0_8-deep', 'seaborn-v0_8-muted', 'seaborn-v0_8-notebook', 'seaborn-v0_8-paper', 'seaborn-v0_8-pastel', 'seaborn-v0_8-poster', 'seaborn-v0_8-talk', 'seaborn-v0_8-ticks', 'seaborn-v0_8-white', 'seaborn-v0_8-whitegrid', 'tableau-colorblind10']\n"
]
},
{
"data": {
"text/plain": [
"<contextlib.ExitStack at 0x27e4cbae550>"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import time\n",
"import io\n",
"import cv2\n",
"import copy\n",
"import os\n",
"from tqdm import tqdm\n",
"import torch.nn as nn\n",
"import torch\n",
"import torchvision\n",
"from torch.utils.data import Dataset\n",
"from torch import default_generator, randperm\n",
"from PIL import Image\n",
"#from torch._utils import _accumulate\n",
"import csv\n",
"from torch.utils.data.dataset import Subset\n",
"from scipy import ndimage\n",
"device = torch.device(\"cuda:0\" if torch.cuda.is_available() else \"cpu\")\n",
"print(device)\n",
"batch_size = 16\n",
"momentum=0.9\n",
"lr = 1e-3\n",
"import random\n",
"sub_sample = 0.5\n",
"import matplotlib\n",
"import gc\n",
"matplotlib.use('Agg')\n",
"import matplotlib as mpl\n",
"mpl.rcParams['agg.path.chunksize'] = 256*256\n",
"#plt.style.use('mplstyle')\n",
"plt.style.use('ggplot')\n",
"plt.grid(None)\n",
"plt.rcParams[\"axes.grid\"] = False\n",
"print(plt.style.available)\n",
"plt.ioff()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "9267fbe1",
"metadata": {},
"outputs": [],
"source": [
"def sig2pic_with_spec(path_to_data, filename, figsize=(16,16), dpi=16, resize = None):\n",
" try:\n",
" array = np.load(path_to_data+filename)\n",
"\n",
" if resize != None:\n",
" resized_real = cv2.resize(array[0], resize)\n",
" resized_mag = cv2.resize(array[1], resize)\n",
" resized_spectr = cv2.resize(array[2], resize)\n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" img = np.asarray(array, dtype=np.float32)\n",
" return img\n",
" \n",
" except Exception as e:\n",
" print(str(e))\n",
" return None"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "448da74a-e0ae-44d8-9877-8dd1f257a24f",
"metadata": {},
"outputs": [],
"source": [
"path_to_binaries = 'C:/Users/snytk/Lerning_NN_for_work/datasets/915_learning'\n",
"path_to_pictures = 'C:/Users/snytk/Lerning_NN_for_work/datasets_jpg/915_jpg_learning'"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "ac4945a8-29c4-4da4-945f-08658953e3e5",
"metadata": {},
"outputs": [],
"source": [
"from tqdm import tqdm"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6f226f86-5d72-4573-8af6-750128b70263",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 856/856 [10:50<00:00, 1.32it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: drone finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 627/627 [08:40<00:00, 1.20it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Dir: noise finished!\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
}
],
"source": [
"size = (256,256)\n",
"if not os.path.exists(path_to_pictures):\n",
" os.mkdir(path_to_pictures)\n",
"for subdir in os.listdir(path_to_binaries):\n",
" filepath = path_to_binaries + '/' + subdir + '/'\n",
" if not os.path.exists(path_to_pictures +'/' + subdir):\n",
" os.mkdir(path_to_pictures + '/' + subdir)\n",
" files = os.listdir(filepath)\n",
" for file in tqdm(files):\n",
" savepath_real_png = path_to_pictures +'/' + subdir + '/' + file + '_real' + '.jpg' \n",
" savepath_imag_png = path_to_pictures +'/' + subdir + '/' + file + '_imag' + '.jpg' \n",
" savepath_spec_png = path_to_pictures +'/' + subdir + '/' + file + '_spec' + '.jpg'\n",
" if not os.path.exists(savepath_real_png):\n",
" img = sig2pic_with_spec(path_to_data=filepath, filename=file, resize = size)\n",
" gc.collect()\n",
" \n",
" try:\n",
" plt.imshow(img[0])\n",
" plt.savefig(savepath_real_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.imshow(img[1])\n",
" plt.savefig(savepath_imag_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
"\n",
" plt.imshow(img[2])\n",
" plt.savefig(savepath_spec_png)\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" except Exception:\n",
" continue\n",
" print('Dir: ', subdir , ' finished!')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "871d7ab6",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "e080bb07",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,7 +0,0 @@
Для ящика на выставки:
aleksandr@192.168.3.85 19751975
aleksandr@192.168.3.86 19751975
Для ящика на Липецк:
aleksandr@192.168.3.85 19751975
aleksandr@192.168.3.86 19751975

@ -1,55 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "a89c0273",
"metadata": {},
"outputs": [],
"source": [
"import torch\n",
"import torchvision\n",
"\n",
"def convert_pth_to_pt(pth_path, pt_path, model_class):\n",
" state_dict = torch.load(pth_path)\n",
" model = model_class()\n",
" model.load_state_dict(state_dict)\n",
" torch.save(model, pt_path)\n",
" print(f'Model saved to {pt_path}')\n",
"\n",
"class ModelClass(torch.nn.Module):\n",
" def __init__(self):\n",
" super(ModelClass, self).__init__()\n",
"\n",
" def forward(self, x):\n",
" pass\n",
"\n",
"pth_path = 'model.pth'\n",
"pt_path = 'model.pt'\n",
"\n",
"convert_pth_to_pt(pth_path, pt_path, ModelClass)\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.8"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

File diff suppressed because one or more lines are too long

@ -1,463 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "5a13ad6b-56c9-4381-b376-1765f6dd7553",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# Импортирование библиотек"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "7311cb4a-5bf3-4268-b431-43eea10e9ed6",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda\n"
]
},
{
"ename": "error",
"evalue": "OpenCV(4.10.0) D:\\a\\opencv-python\\opencv-python\\opencv\\modules\\highgui\\src\\window.cpp:1295: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvDestroyAllWindows'\n",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31merror\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[1], line 37\u001b[0m\n\u001b[0;32m 35\u001b[0m \u001b[38;5;28mprint\u001b[39m(device)\n\u001b[0;32m 36\u001b[0m torch\u001b[38;5;241m.\u001b[39mcuda\u001b[38;5;241m.\u001b[39mempty_cache()\n\u001b[1;32m---> 37\u001b[0m \u001b[43mcv2\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdestroyAllWindows\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 38\u001b[0m gc\u001b[38;5;241m.\u001b[39mcollect()\n",
"\u001b[1;31merror\u001b[0m: OpenCV(4.10.0) D:\\a\\opencv-python\\opencv-python\\opencv\\modules\\highgui\\src\\window.cpp:1295: error: (-2:Unspecified error) The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script in function 'cvDestroyAllWindows'\n"
]
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"from torch.utils.data import Dataset, DataLoader\n",
"from torch import default_generator, randperm\n",
"from torch.utils.data.dataset import Subset\n",
"import torchvision.transforms as transforms\n",
"from torchvision.io import read_image\n",
"from importlib import import_module\n",
"import matplotlib.pyplot as plt\n",
"from torchvision import models\n",
"import torch, torchvision\n",
"from pathlib import Path\n",
"from PIL import Image\n",
"import torch.nn as nn\n",
"from tqdm import tqdm\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib\n",
"import os, shutil\n",
"import mlconfig\n",
"import random\n",
"import shutil\n",
"import timeit\n",
"import copy\n",
"import time\n",
"import cv2\n",
"import csv\n",
"import sys\n",
"import io\n",
"import gc\n",
"\n",
"plt.rcParams[\"savefig.bbox\"] = 'tight'\n",
"torch.manual_seed(1)\n",
"#matplotlib.use('Agg')\n",
"device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
"print(device)\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"gc.collect()"
]
},
{
"cell_type": "markdown",
"id": "384de097-82c6-41f5-bda9-b2f54bc99593",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# Подготовка и обучение детектирование"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "46e4dc99-6994-4fee-a32e-f3983bd991bd",
"metadata": {},
"outputs": [],
"source": [
"def prepare_and_learning_detection(num_classes, num_samples, path_dataset, model_name, config_name, model):\n",
" num_samples_per_class = num_samples // num_classes\n",
"\n",
" #----------Создаём папку для сохранения результатов обучения--------------\n",
" \n",
" ind = 1\n",
" while True:\n",
" if os.path.exists(\"models/\" + model_name + str(ind)):\n",
" ind += 1\n",
" else:\n",
" os.mkdir(\"models/\" + model_name + str(ind))\n",
" path_res = \"models/\" + model_name + str(ind) + '/'\n",
" break\n",
" \n",
" #----------Создаём файл dataset.csv для обучения--------------\n",
" \n",
" pd_columns = ['file_name']\n",
" df = pd.DataFrame(columns=pd_columns)\n",
" \n",
" subdirs = os.listdir(path_dataset)\n",
" for subdir in subdirs:\n",
" files = os.listdir(path_dataset + subdir + '/')\n",
" num_samples_per_class = min(num_samples_per_class, len(files))\n",
" for subdir in subdirs:\n",
" files = os.listdir(path_dataset + subdir + '/')\n",
" random.shuffle(files)\n",
" files_to_process = files[:num_samples_per_class]\n",
" for file in files_to_process:\n",
" row = pd.DataFrame({pd_columns[0]: [str(path_dataset + subdir + '/' + file)]})\n",
" df = pd.concat([df, row], ignore_index=True)\n",
" \n",
" df.to_csv(path_res + 'dataset.csv', index=False)\n",
" \n",
" #----------Импортируем параметры для обучения--------------\n",
" \n",
" def load_function(attr):\n",
" module_, func = attr.rsplit('.', maxsplit=1)\n",
" return getattr(import_module(module_), func)\n",
" \n",
" config = mlconfig.load('config_' + config_name + '.yaml')\n",
" \n",
" #----------Создаём класс датасета--------------\n",
" \n",
" class MyDataset(Dataset):\n",
" def __init__(self, path_dataset, csv_file):\n",
" data=[]\n",
" with open(path_dataset + csv_file, newline='') as csvfile:\n",
" reader = csv.reader(csvfile, delimiter=' ', quotechar='|')\n",
" for row in list(reader)[1:]:\n",
" row = str(row)\n",
" data.append(row[2: len(row)-2])\n",
" self.sig_filenames = data\n",
" self.path_dataset = path_dataset\n",
" \n",
" def __len__(self):\n",
" return len(self.sig_filenames)\n",
" \n",
" def __getitem__(self, idx):\n",
" data_file = np.asarray(np.load(self.sig_filenames[idx], 'r+'), dtype=np.float32)\n",
" if 'drone' in list(self.sig_filenames[idx].split('/')):\n",
" label = torch.tensor(0)\n",
" if 'noise' in list(self.sig_filenames[idx].split('/')):\n",
" label = torch.tensor(1)\n",
" return data_file, label\n",
" \n",
" #----------Создаём датасет--------------\n",
" \n",
" dataset = MyDataset(path_dataset=path_res, csv_file='dataset.csv')\n",
" train_set, valid_set = torch.utils.data.random_split(dataset, [0.7, 0.3], generator=torch.Generator().manual_seed(42))\n",
" batch_size = config.batch_size\n",
" train_dataloader = torch.utils.data.DataLoader(train_set, batch_size=batch_size, shuffle=True, drop_last=True)\n",
" valid_dataloader = torch.utils.data.DataLoader(valid_set, batch_size=batch_size, shuffle=True, drop_last=True)\n",
" \n",
" dataloaders = {}\n",
" dataloaders['train'] = train_dataloader\n",
" dataloaders['val'] = valid_dataloader\n",
" dataset_sizes = {}\n",
" dataset_sizes['train'] = len(train_set)\n",
" dataset_sizes['val'] = len(valid_set)\n",
"\n",
" #----------Обучаем модель--------------\n",
"\n",
" val_loss = []\n",
" val_acc = []\n",
" train_loss = []\n",
" train_acc = []\n",
" epochs = config.epoch\n",
" \n",
" best_acc = 0.0\n",
" best_model = copy.deepcopy(model.state_dict())\n",
" limit = config.limit\n",
" epoch_limit = epochs\n",
" \n",
" start = timeit.default_timer()\n",
" for epoch in range(1, epochs+1):\n",
" print(f\"Epoch : {epoch}\\n\")\n",
" dataloader = None\n",
" \n",
" for phase in ['train', 'val']:\n",
" running_loss = 0.0\n",
" running_corrects = 0\n",
" \n",
" for (img, label) in tqdm(dataloaders[phase]):\n",
" img, label = img.to(device), label.to(device)\n",
" optimizer.zero_grad()\n",
" \n",
" with torch.set_grad_enabled(phase == 'train'):\n",
" output = model(img)\n",
" _, pred = torch.max(output.data, 1)\n",
" loss = criterion(output, label)\n",
" if phase=='train' :\n",
" loss.backward()\n",
" optimizer.step()\n",
" \n",
" running_loss += loss.item() * img.size(0)\n",
" running_corrects += torch.sum(pred == label.data)\n",
" \n",
" epoch_loss = running_loss / dataset_sizes[phase]\n",
" epoch_acc = running_corrects.double() / dataset_sizes[phase]\n",
" \n",
" print('{} Loss: {:.4f} Acc: {:.4f}'.format(phase, epoch_loss, epoch_acc))\n",
" \n",
" if phase=='train' :\n",
" train_loss.append(epoch_loss)\n",
" train_acc.append(epoch_acc)\n",
" else :\n",
" val_loss.append(epoch_loss)\n",
" val_acc.append(epoch_acc)\n",
" if val_acc[-1] > best_acc :\n",
" ind_limit = 0\n",
" best_acc = val_acc[-1]\n",
" best_model = copy.deepcopy(model.state_dict())\n",
" torch.save(best_model, path_res + model_name + '.pth')\n",
" else:\n",
" ind_limit += 1\n",
" \n",
" if ind_limit >= limit:\n",
" break\n",
" \n",
" if ind_limit >= limit:\n",
" epoch_limit = epoch\n",
" break\n",
" \n",
" print()\n",
" \n",
" end = timeit.default_timer()\n",
" print(f\"Total time elapsed = {end - start} seconds\")\n",
" epoch_limit += 1\n",
" \n",
" #----------Вывод графиков и сохранение результатов обучения--------------\n",
" \n",
" train_acc = np.asarray(list(map(lambda x: x.item(), train_acc)))\n",
" val_acc = np.asarray(list(map(lambda x: x.item(), val_acc)))\n",
" \n",
" np.save(path_res+'train_acc.npy', train_acc)\n",
" np.save(path_res+'val_acc.npy', val_acc)\n",
" np.save(path_res+'train_loss.npy', train_loss)\n",
" np.save(path_res+'val_loss.npy', val_loss)\n",
" \n",
" plt.figure()\n",
" plt.plot(range(1,epoch_limit), train_loss, color='blue')\n",
" plt.plot(range(1,epoch_limit), val_loss, color='red')\n",
" plt.xlabel('Epoch')\n",
" plt.ylabel('Loss')\n",
" plt.title('Loss Curve')\n",
" plt.legend(['Train Loss', 'Validation Loss'])\n",
" plt.show()\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.figure()\n",
" plt.plot(range(1,epoch_limit), train_acc, color='blue')\n",
" plt.plot(range(1,epoch_limit), val_acc, color='red')\n",
" plt.xlabel('Epoch')\n",
" plt.ylabel('Accuracy')\n",
" plt.title('Accuracy Curve')\n",
" plt.legend(['Train Accuracy', 'Validation Accuracy'])\n",
" plt.show()\n",
" \n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" torch.cuda.empty_cache()\n",
" cv2.destroyAllWindows()\n",
" del model\n",
" gc.collect()\n",
"\n",
" return path_res, model_name"
]
},
{
"cell_type": "markdown",
"id": "93c136ee",
"metadata": {},
"source": [
"### Ensemble"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "52e8d4c5",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n",
" warnings.warn(\n",
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=None`.\n",
" warnings.warn(msg)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch : 1\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 437/437 [23:49<00:00, 3.27s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"train Loss: 0.0884 Acc: 0.9634\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 187/187 [09:15<00:00, 2.97s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"val Loss: 0.0342 Acc: 0.9873\n",
"\n",
"Epoch : 2\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 84%|██████████████████████████████████████████████████████████████████▊ | 365/437 [19:28<04:18, 3.59s/it]"
]
}
],
"source": [
"#----------Инициализируем модель и параметры обучения--------------\n",
"\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"gc.collect()\n",
"\n",
"num_classes = 3\n",
"config_name = \"ensemble\"\n",
" \n",
"def load_function(attr):\n",
" module_, func = attr.rsplit('.', maxsplit=1)\n",
" return getattr(import_module(module_), func)\n",
" \n",
"config = mlconfig.load('config_' + config_name + '.yaml')\n",
"\n",
"model1 = models.resnet18(pretrained=False)\n",
"model2 = models.resnet50(pretrained=False)\n",
"model3 = models.resnet101(pretrained=False)\n",
"\n",
"num_classes = 2\n",
"\n",
"model1.fc = nn.Linear(model1.fc.in_features, num_classes)\n",
"model2.fc = nn.Linear(model2.fc.in_features, num_classes)\n",
"model3.fc = nn.Linear(model3.fc.in_features, num_classes)\n",
"\n",
"class Ensemble(nn.Module):\n",
" def __init__(self, model1, model2, model3):\n",
" super(Ensemble, self).__init__()\n",
" self.model1 = model1\n",
" self.model2 = model2\n",
" self.model3 = model3\n",
" self.fc = nn.Linear(3 * num_classes, num_classes)\n",
"\n",
" def forward(self, x):\n",
" x1 = self.model1(x)\n",
" x2 = self.model2(x)\n",
" x3 = self.model3(x)\n",
" x = torch.cat((x1, x2, x3), dim=1)\n",
" x = self.fc(x)\n",
" return x\n",
"\n",
"model = Ensemble(model1, model2, model3)\n",
"\n",
"optimizer = load_function(config.optimizer.name)(model.parameters(), lr=config.optimizer.lr)\n",
"criterion = load_function(config.loss_function.name)()\n",
"scheduler = load_function(config.scheduler.name)(optimizer, step_size=config.scheduler.step_size, gamma=config.scheduler.gamma)\n",
"\n",
"if device != 'cpu':\n",
" model = model.to(device)\n",
"\n",
"#----------Создания датасета и обучение модели--------------\n",
"\n",
"path_res, model_name = prepare_and_learning_detection(num_classes = num_classes, num_samples = 10000, path_dataset = \"//192.168.1.64/data/DATASETS/2.4/2.4_learning/\", \n",
" model_name = config_name+\"_2.4_\", config_name = config_name, model=model)\n",
"\n",
"\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"del model\n",
"gc.collect()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "57d18676",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Отсутствует",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,465 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "5a13ad6b-56c9-4381-b376-1765f6dd7553",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# Импортирование библиотек"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "7311cb4a-5bf3-4268-b431-43eea10e9ed6",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda\n"
]
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"from torch.utils.data import Dataset, DataLoader\n",
"from torch import default_generator, randperm\n",
"from torch.utils.data.dataset import Subset\n",
"import torchvision.transforms as transforms\n",
"from torchvision.io import read_image\n",
"from importlib import import_module\n",
"import matplotlib.pyplot as plt\n",
"from torchvision import models\n",
"import torch, torchvision\n",
"from pathlib import Path\n",
"from PIL import Image\n",
"import torch.nn as nn\n",
"from tqdm import tqdm\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib\n",
"import os, shutil\n",
"import mlconfig\n",
"import random\n",
"import shutil\n",
"import timeit\n",
"import copy\n",
"import time\n",
"import cv2\n",
"import csv\n",
"import sys\n",
"import io\n",
"import gc\n",
"\n",
"plt.rcParams[\"savefig.bbox\"] = 'tight'\n",
"torch.manual_seed(1)\n",
"#matplotlib.use('Agg')\n",
"device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
"print(device)\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"gc.collect()"
]
},
{
"cell_type": "markdown",
"id": "384de097-82c6-41f5-bda9-b2f54bc99593",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# Подготовка и обучение детектирование"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "46e4dc99-6994-4fee-a32e-f3983bd991bd",
"metadata": {},
"outputs": [],
"source": [
"def prepare_and_learning_detection(num_classes, num_samples, path_dataset, model_name, config_name, model):\n",
" num_samples_per_class = num_samples // num_classes\n",
"\n",
" #----------Создаём папку для сохранения результатов обучения--------------\n",
" \n",
" ind = 1\n",
" while True:\n",
" if os.path.exists(\"models/\" + model_name + str(ind)):\n",
" ind += 1\n",
" else:\n",
" os.mkdir(\"models/\" + model_name + str(ind))\n",
" path_res = \"models/\" + model_name + str(ind) + '/'\n",
" break\n",
" \n",
" #----------Создаём файл dataset.csv для обучения--------------\n",
" \n",
" pd_columns = ['file_name']\n",
" df = pd.DataFrame(columns=pd_columns)\n",
" \n",
" subdirs = os.listdir(path_dataset)\n",
" for subdir in subdirs:\n",
" files = os.listdir(path_dataset + subdir + '/')\n",
" num_samples_per_class = min(num_samples_per_class, len(files))\n",
" for subdir in subdirs:\n",
" files = os.listdir(path_dataset + subdir + '/')\n",
" random.shuffle(files)\n",
" files_to_process = files[:num_samples_per_class]\n",
" for file in files_to_process:\n",
" row = pd.DataFrame({pd_columns[0]: [str(path_dataset + subdir + '/' + file)]})\n",
" df = pd.concat([df, row], ignore_index=True)\n",
" \n",
" df.to_csv(path_res + 'dataset.csv', index=False)\n",
" \n",
" #----------Импортируем параметры для обучения--------------\n",
" \n",
" def load_function(attr):\n",
" module_, func = attr.rsplit('.', maxsplit=1)\n",
" return getattr(import_module(module_), func)\n",
" \n",
" config = mlconfig.load('config_' + config_name + '.yaml')\n",
" \n",
" #----------Создаём класс датасета--------------\n",
" \n",
" class MyDataset(Dataset):\n",
" def __init__(self, path_dataset, csv_file):\n",
" data=[]\n",
" with open(path_dataset + csv_file, newline='') as csvfile:\n",
" reader = csv.reader(csvfile, delimiter=' ', quotechar='|')\n",
" for row in list(reader)[1:]:\n",
" row = str(row)\n",
" data.append(row[2: len(row)-2])\n",
" self.sig_filenames = data\n",
" self.path_dataset = path_dataset\n",
" \n",
" def __len__(self):\n",
" return len(self.sig_filenames)\n",
" \n",
" def __getitem__(self, idx):\n",
" image_real = np.asarray(cv2.split(cv2.imread(self.sig_filenames[idx][:-8]+'real.jpg')), dtype=np.float32)\n",
" if 'drone' in list(self.sig_filenames[idx].split('/')):\n",
" label = torch.tensor(0)\n",
" if 'noise' in list(self.sig_filenames[idx].split('/')):\n",
" label = torch.tensor(1)\n",
" return image_real, label\n",
" \n",
" #----------Создаём датасет--------------\n",
" \n",
" dataset = MyDataset(path_dataset=path_res, csv_file='dataset.csv')\n",
" train_set, valid_set = torch.utils.data.random_split(dataset, [0.7, 0.3], generator=torch.Generator().manual_seed(42))\n",
" batch_size = config.batch_size\n",
" train_dataloader = torch.utils.data.DataLoader(train_set, batch_size=batch_size, shuffle=True, drop_last=True)\n",
" valid_dataloader = torch.utils.data.DataLoader(valid_set, batch_size=batch_size, shuffle=True, drop_last=True)\n",
" \n",
" dataloaders = {}\n",
" dataloaders['train'] = train_dataloader\n",
" dataloaders['val'] = valid_dataloader\n",
" dataset_sizes = {}\n",
" dataset_sizes['train'] = len(train_set)\n",
" dataset_sizes['val'] = len(valid_set)\n",
"\n",
" #----------Обучаем модель--------------\n",
"\n",
" val_loss = []\n",
" val_acc = []\n",
" train_loss = []\n",
" train_acc = []\n",
" epochs = config.epoch\n",
" \n",
" best_acc = 0.0\n",
" best_model = copy.deepcopy(model.state_dict())\n",
" limit = config.limit\n",
" epoch_limit = epochs\n",
" \n",
" start = timeit.default_timer()\n",
" for epoch in range(1, epochs+1):\n",
" print(f\"Epoch : {epoch}\\n\")\n",
" dataloader = None\n",
" \n",
" for phase in ['train', 'val']:\n",
" running_loss = 0.0\n",
" running_corrects = 0\n",
" \n",
" for (img, label) in tqdm(dataloaders[phase]):\n",
" img, label = img.to(device), label.to(device)\n",
" optimizer.zero_grad()\n",
" \n",
" with torch.set_grad_enabled(phase == 'train'):\n",
" output = model(img)\n",
" _, pred = torch.max(output.data, 1)\n",
" loss = criterion(output, label)\n",
" if phase=='train' :\n",
" loss.backward()\n",
" optimizer.step()\n",
" \n",
" running_loss += loss.item() * img.size(0)\n",
" running_corrects += torch.sum(pred == label.data)\n",
" \n",
" epoch_loss = running_loss / dataset_sizes[phase]\n",
" epoch_acc = running_corrects.double() / dataset_sizes[phase]\n",
" \n",
" print('{} Loss: {:.4f} Acc: {:.4f}'.format(phase, epoch_loss, epoch_acc))\n",
" \n",
" if phase=='train' :\n",
" train_loss.append(epoch_loss)\n",
" train_acc.append(epoch_acc)\n",
" else :\n",
" val_loss.append(epoch_loss)\n",
" val_acc.append(epoch_acc)\n",
" if val_acc[-1] > best_acc :\n",
" ind_limit = 0\n",
" best_acc = val_acc[-1]\n",
" best_model = copy.deepcopy(model.state_dict())\n",
" torch.save(best_model, path_res + model_name + '.pth')\n",
" else:\n",
" ind_limit += 1\n",
" \n",
" if ind_limit >= limit:\n",
" break\n",
" \n",
" if ind_limit >= limit:\n",
" epoch_limit = epoch\n",
" break\n",
" \n",
" print()\n",
" \n",
" end = timeit.default_timer()\n",
" print(f\"Total time elapsed = {end - start} seconds\")\n",
" epoch_limit += 1\n",
" \n",
" #----------Вывод графиков и сохранение результатов обучения--------------\n",
" \n",
" train_acc = np.asarray(list(map(lambda x: x.item(), train_acc)))\n",
" val_acc = np.asarray(list(map(lambda x: x.item(), val_acc)))\n",
" \n",
" np.save(path_res+'train_acc.npy', train_acc)\n",
" np.save(path_res+'val_acc.npy', val_acc)\n",
" np.save(path_res+'train_loss.npy', train_loss)\n",
" np.save(path_res+'val_loss.npy', val_loss)\n",
" \n",
" plt.figure()\n",
" plt.plot(range(1,epoch_limit), train_loss, color='blue')\n",
" plt.plot(range(1,epoch_limit), val_loss, color='red')\n",
" plt.xlabel('Epoch')\n",
" plt.ylabel('Loss')\n",
" plt.title('Loss Curve')\n",
" plt.legend(['Train Loss', 'Validation Loss'])\n",
" plt.show()\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.figure()\n",
" plt.plot(range(1,epoch_limit), train_acc, color='blue')\n",
" plt.plot(range(1,epoch_limit), val_acc, color='red')\n",
" plt.xlabel('Epoch')\n",
" plt.ylabel('Accuracy')\n",
" plt.title('Accuracy Curve')\n",
" plt.legend(['Train Accuracy', 'Validation Accuracy'])\n",
" plt.show()\n",
" \n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" torch.cuda.empty_cache()\n",
" cv2.destroyAllWindows()\n",
" del model\n",
" gc.collect()\n",
"\n",
" return path_res, model_name"
]
},
{
"cell_type": "markdown",
"id": "93c136ee",
"metadata": {},
"source": [
"### Ensemble"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "52e8d4c5",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n",
" warnings.warn(\n",
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet18_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet18_Weights.DEFAULT` to get the most up-to-date weights.\n",
" warnings.warn(msg)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch : 1\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/337 [00:00<?, ?it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor([], device='cuda:0', size=(4, 0))\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"ename": "RuntimeError",
"evalue": "Expected 3D (unbatched) or 4D (batched) input to conv2d, but got input of size: [4, 0]",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[10], line 42\u001b[0m\n\u001b[0;32m 38\u001b[0m model \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mto(device)\n\u001b[0;32m 40\u001b[0m \u001b[38;5;66;03m#----------Создания датасета и обучение модели--------------\u001b[39;00m\n\u001b[1;32m---> 42\u001b[0m path_res, model_name \u001b[38;5;241m=\u001b[39m \u001b[43mprepare_and_learning_detection\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnum_classes\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mnum_classes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_samples\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m20000\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpath_dataset\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m//192.168.11.63/data/DATASETS/Energomash/2400_learning/\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[0;32m 43\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel_name\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mconfig_name\u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m_2.4_jpg_\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig_name\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mconfig_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 46\u001b[0m torch\u001b[38;5;241m.\u001b[39mcuda\u001b[38;5;241m.\u001b[39mempty_cache()\n\u001b[0;32m 47\u001b[0m cv2\u001b[38;5;241m.\u001b[39mdestroyAllWindows()\n",
"Cell \u001b[1;32mIn[2], line 108\u001b[0m, in \u001b[0;36mprepare_and_learning_detection\u001b[1;34m(num_classes, num_samples, path_dataset, model_name, config_name, model)\u001b[0m\n\u001b[0;32m 105\u001b[0m optimizer\u001b[38;5;241m.\u001b[39mzero_grad()\n\u001b[0;32m 107\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mset_grad_enabled(phase \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtrain\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[1;32m--> 108\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mimg\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 109\u001b[0m _, pred \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mmax(output\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m1\u001b[39m)\n\u001b[0;32m 110\u001b[0m loss \u001b[38;5;241m=\u001b[39m criterion(output, label)\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1553\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1551\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[0;32m 1552\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 1553\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1562\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1557\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[0;32m 1558\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[0;32m 1559\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[0;32m 1560\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[0;32m 1561\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[1;32m-> 1562\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1564\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 1565\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
"Cell \u001b[1;32mIn[10], line 28\u001b[0m, in \u001b[0;36mModel.forward\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x):\n\u001b[0;32m 27\u001b[0m \u001b[38;5;28mprint\u001b[39m(x)\n\u001b[1;32m---> 28\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 29\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m x\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1553\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1551\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[0;32m 1552\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 1553\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1562\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1557\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[0;32m 1558\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[0;32m 1559\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[0;32m 1560\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[0;32m 1561\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[1;32m-> 1562\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1564\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 1565\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\resnet.py:285\u001b[0m, in \u001b[0;36mResNet.forward\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 284\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[1;32m--> 285\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_forward_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\resnet.py:268\u001b[0m, in \u001b[0;36mResNet._forward_impl\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 266\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_forward_impl\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[0;32m 267\u001b[0m \u001b[38;5;66;03m# See note [TorchScript super()]\u001b[39;00m\n\u001b[1;32m--> 268\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconv1\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 269\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbn1(x)\n\u001b[0;32m 270\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrelu(x)\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1553\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1551\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[0;32m 1552\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 1553\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1562\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1557\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[0;32m 1558\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[0;32m 1559\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[0;32m 1560\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[0;32m 1561\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[1;32m-> 1562\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1564\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 1565\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\conv.py:458\u001b[0m, in \u001b[0;36mConv2d.forward\u001b[1;34m(self, input)\u001b[0m\n\u001b[0;32m 457\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[1;32m--> 458\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_conv_forward\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbias\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\conv.py:454\u001b[0m, in \u001b[0;36mConv2d._conv_forward\u001b[1;34m(self, input, weight, bias)\u001b[0m\n\u001b[0;32m 450\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpadding_mode \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mzeros\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[0;32m 451\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m F\u001b[38;5;241m.\u001b[39mconv2d(F\u001b[38;5;241m.\u001b[39mpad(\u001b[38;5;28minput\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_reversed_padding_repeated_twice, mode\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpadding_mode),\n\u001b[0;32m 452\u001b[0m weight, bias, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstride,\n\u001b[0;32m 453\u001b[0m _pair(\u001b[38;5;241m0\u001b[39m), \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdilation, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgroups)\n\u001b[1;32m--> 454\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconv2d\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbias\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstride\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 455\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpadding\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdilation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\u001b[43m)\u001b[49m\n",
"\u001b[1;31mRuntimeError\u001b[0m: Expected 3D (unbatched) or 4D (batched) input to conv2d, but got input of size: [4, 0]"
]
}
],
"source": [
"#----------Инициализируем модель и параметры обучения--------------\n",
"\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"gc.collect()\n",
"\n",
"config_name = \"ensemble\"\n",
" \n",
"def load_function(attr):\n",
" module_, func = attr.rsplit('.', maxsplit=1)\n",
" return getattr(import_module(module_), func)\n",
" \n",
"config = mlconfig.load('config_' + config_name + '.yaml')\n",
"\n",
"model = models.resnet18(pretrained=True)\n",
"\n",
"num_classes = 2\n",
"\n",
"model.fc = nn.Linear(model.fc.in_features, num_classes)\n",
"\n",
"class Model(nn.Module):\n",
" def __init__(self, model):\n",
" super(Model, self).__init__()\n",
" self.model = model\n",
"\n",
" def forward(self, x):\n",
" print(x)\n",
" x = self.model(x)\n",
" return x\n",
"\n",
"model = Model(model)\n",
"\n",
"optimizer = load_function(config.optimizer.name)(model.parameters(), lr=config.optimizer.lr)\n",
"criterion = load_function(config.loss_function.name)()\n",
"scheduler = load_function(config.scheduler.name)(optimizer, step_size=config.scheduler.step_size, gamma=config.scheduler.gamma)\n",
"\n",
"if device != 'cpu':\n",
" model = model.to(device)\n",
"\n",
"#----------Создания датасета и обучение модели--------------\n",
"\n",
"path_res, model_name = prepare_and_learning_detection(num_classes = num_classes, num_samples = 20000, path_dataset = \"//192.168.11.63/data/DATASETS/Energomash/2400_learning/\", \n",
" model_name = config_name+\"_2.4_jpg_\", config_name = config_name, model=model)\n",
"\n",
"\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"del model\n",
"gc.collect()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "57d18676",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "c10afb29",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Отсутствует",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

File diff suppressed because one or more lines are too long

@ -1,465 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "5a13ad6b-56c9-4381-b376-1765f6dd7553",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# Импортирование библиотек"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "7311cb4a-5bf3-4268-b431-43eea10e9ed6",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda\n"
]
},
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"from torch.utils.data import Dataset, DataLoader\n",
"from torch import default_generator, randperm\n",
"from torch.utils.data.dataset import Subset\n",
"import torchvision.transforms as transforms\n",
"from torchvision.io import read_image\n",
"from importlib import import_module\n",
"import matplotlib.pyplot as plt\n",
"from torchvision import models\n",
"import torch, torchvision\n",
"from pathlib import Path\n",
"from PIL import Image\n",
"import torch.nn as nn\n",
"from tqdm import tqdm\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib\n",
"import os, shutil\n",
"import mlconfig\n",
"import random\n",
"import shutil\n",
"import timeit\n",
"import copy\n",
"import time\n",
"import cv2\n",
"import csv\n",
"import sys\n",
"import io\n",
"import gc\n",
"\n",
"plt.rcParams[\"savefig.bbox\"] = 'tight'\n",
"torch.manual_seed(1)\n",
"#matplotlib.use('Agg')\n",
"device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
"print(device)\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"gc.collect()"
]
},
{
"cell_type": "markdown",
"id": "384de097-82c6-41f5-bda9-b2f54bc99593",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# Подготовка и обучение детектирование"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "46e4dc99-6994-4fee-a32e-f3983bd991bd",
"metadata": {},
"outputs": [],
"source": [
"def prepare_and_learning_detection(num_classes, num_samples, path_dataset, model_name, config_name, model):\n",
" num_samples_per_class = num_samples // num_classes\n",
"\n",
" #----------Создаём папку для сохранения результатов обучения--------------\n",
" \n",
" ind = 1\n",
" while True:\n",
" if os.path.exists(\"models/\" + model_name + str(ind)):\n",
" ind += 1\n",
" else:\n",
" os.mkdir(\"models/\" + model_name + str(ind))\n",
" path_res = \"models/\" + model_name + str(ind) + '/'\n",
" break\n",
" \n",
" #----------Создаём файл dataset.csv для обучения--------------\n",
" \n",
" pd_columns = ['file_name']\n",
" df = pd.DataFrame(columns=pd_columns)\n",
" \n",
" subdirs = os.listdir(path_dataset)\n",
" for subdir in subdirs:\n",
" files = os.listdir(path_dataset + subdir + '/')\n",
" num_samples_per_class = min(num_samples_per_class, len(files))\n",
" for subdir in subdirs:\n",
" files = os.listdir(path_dataset + subdir + '/')\n",
" random.shuffle(files)\n",
" files_to_process = files[:num_samples_per_class]\n",
" for file in files_to_process:\n",
" row = pd.DataFrame({pd_columns[0]: [str(path_dataset + subdir + '/' + file)]})\n",
" df = pd.concat([df, row], ignore_index=True)\n",
" \n",
" df.to_csv(path_res + 'dataset.csv', index=False)\n",
" \n",
" #----------Импортируем параметры для обучения--------------\n",
" \n",
" def load_function(attr):\n",
" module_, func = attr.rsplit('.', maxsplit=1)\n",
" return getattr(import_module(module_), func)\n",
" \n",
" config = mlconfig.load('config_' + config_name + '.yaml')\n",
" \n",
" #----------Создаём класс датасета--------------\n",
" \n",
" class MyDataset(Dataset):\n",
" def __init__(self, path_dataset, csv_file):\n",
" data=[]\n",
" with open(path_dataset + csv_file, newline='') as csvfile:\n",
" reader = csv.reader(csvfile, delimiter=' ', quotechar='|')\n",
" for row in list(reader)[1:]:\n",
" row = str(row)\n",
" data.append(row[2: len(row)-2])\n",
" self.sig_filenames = data\n",
" self.path_dataset = path_dataset\n",
" \n",
" def __len__(self):\n",
" return len(self.sig_filenames)\n",
" \n",
" def __getitem__(self, idx):\n",
" image_real = np.asarray(cv2.split(cv2.imread(self.sig_filenames[idx][:-8]+'real.jpg')), dtype=np.float32)\n",
" if 'drone' in list(self.sig_filenames[idx].split('/')):\n",
" label = torch.tensor(0)\n",
" if 'noise' in list(self.sig_filenames[idx].split('/')):\n",
" label = torch.tensor(1)\n",
" return image_real, label\n",
" \n",
" #----------Создаём датасет--------------\n",
" \n",
" dataset = MyDataset(path_dataset=path_res, csv_file='dataset.csv')\n",
" train_set, valid_set = torch.utils.data.random_split(dataset, [0.7, 0.3], generator=torch.Generator().manual_seed(42))\n",
" batch_size = config.batch_size\n",
" train_dataloader = torch.utils.data.DataLoader(train_set, batch_size=batch_size, shuffle=True, drop_last=True)\n",
" valid_dataloader = torch.utils.data.DataLoader(valid_set, batch_size=batch_size, shuffle=True, drop_last=True)\n",
" \n",
" dataloaders = {}\n",
" dataloaders['train'] = train_dataloader\n",
" dataloaders['val'] = valid_dataloader\n",
" dataset_sizes = {}\n",
" dataset_sizes['train'] = len(train_set)\n",
" dataset_sizes['val'] = len(valid_set)\n",
"\n",
" #----------Обучаем модель--------------\n",
"\n",
" val_loss = []\n",
" val_acc = []\n",
" train_loss = []\n",
" train_acc = []\n",
" epochs = config.epoch\n",
" \n",
" best_acc = 0.0\n",
" best_model = copy.deepcopy(model.state_dict())\n",
" limit = config.limit\n",
" epoch_limit = epochs\n",
" \n",
" start = timeit.default_timer()\n",
" for epoch in range(1, epochs+1):\n",
" print(f\"Epoch : {epoch}\\n\")\n",
" dataloader = None\n",
" \n",
" for phase in ['train', 'val']:\n",
" running_loss = 0.0\n",
" running_corrects = 0\n",
" \n",
" for (img, label) in tqdm(dataloaders[phase]):\n",
" img, label = img.to(device), label.to(device)\n",
" optimizer.zero_grad()\n",
" \n",
" with torch.set_grad_enabled(phase == 'train'):\n",
" output = model(img)\n",
" _, pred = torch.max(output.data, 1)\n",
" loss = criterion(output, label)\n",
" if phase=='train' :\n",
" loss.backward()\n",
" optimizer.step()\n",
" \n",
" running_loss += loss.item() * img.size(0)\n",
" running_corrects += torch.sum(pred == label.data)\n",
" \n",
" epoch_loss = running_loss / dataset_sizes[phase]\n",
" epoch_acc = running_corrects.double() / dataset_sizes[phase]\n",
" \n",
" print('{} Loss: {:.4f} Acc: {:.4f}'.format(phase, epoch_loss, epoch_acc))\n",
" \n",
" if phase=='train' :\n",
" train_loss.append(epoch_loss)\n",
" train_acc.append(epoch_acc)\n",
" else :\n",
" val_loss.append(epoch_loss)\n",
" val_acc.append(epoch_acc)\n",
" if val_acc[-1] > best_acc :\n",
" ind_limit = 0\n",
" best_acc = val_acc[-1]\n",
" best_model = copy.deepcopy(model.state_dict())\n",
" torch.save(best_model, path_res + model_name + '.pth')\n",
" else:\n",
" ind_limit += 1\n",
" \n",
" if ind_limit >= limit:\n",
" break\n",
" \n",
" if ind_limit >= limit:\n",
" epoch_limit = epoch\n",
" break\n",
" \n",
" print()\n",
" \n",
" end = timeit.default_timer()\n",
" print(f\"Total time elapsed = {end - start} seconds\")\n",
" epoch_limit += 1\n",
" \n",
" #----------Вывод графиков и сохранение результатов обучения--------------\n",
" \n",
" train_acc = np.asarray(list(map(lambda x: x.item(), train_acc)))\n",
" val_acc = np.asarray(list(map(lambda x: x.item(), val_acc)))\n",
" \n",
" np.save(path_res+'train_acc.npy', train_acc)\n",
" np.save(path_res+'val_acc.npy', val_acc)\n",
" np.save(path_res+'train_loss.npy', train_loss)\n",
" np.save(path_res+'val_loss.npy', val_loss)\n",
" \n",
" plt.figure()\n",
" plt.plot(range(1,epoch_limit), train_loss, color='blue')\n",
" plt.plot(range(1,epoch_limit), val_loss, color='red')\n",
" plt.xlabel('Epoch')\n",
" plt.ylabel('Loss')\n",
" plt.title('Loss Curve')\n",
" plt.legend(['Train Loss', 'Validation Loss'])\n",
" plt.show()\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.figure()\n",
" plt.plot(range(1,epoch_limit), train_acc, color='blue')\n",
" plt.plot(range(1,epoch_limit), val_acc, color='red')\n",
" plt.xlabel('Epoch')\n",
" plt.ylabel('Accuracy')\n",
" plt.title('Accuracy Curve')\n",
" plt.legend(['Train Accuracy', 'Validation Accuracy'])\n",
" plt.show()\n",
" \n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" torch.cuda.empty_cache()\n",
" cv2.destroyAllWindows()\n",
" del model\n",
" gc.collect()\n",
"\n",
" return path_res, model_name"
]
},
{
"cell_type": "markdown",
"id": "93c136ee",
"metadata": {},
"source": [
"### Ensemble"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "52e8d4c5",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n",
" warnings.warn(\n",
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=ResNet18_Weights.IMAGENET1K_V1`. You can also use `weights=ResNet18_Weights.DEFAULT` to get the most up-to-date weights.\n",
" warnings.warn(msg)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch : 1\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 0%| | 0/337 [00:00<?, ?it/s]"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"tensor([], device='cuda:0', size=(4, 0))\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"\n"
]
},
{
"ename": "RuntimeError",
"evalue": "Expected 3D (unbatched) or 4D (batched) input to conv2d, but got input of size: [4, 0]",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[10], line 42\u001b[0m\n\u001b[0;32m 38\u001b[0m model \u001b[38;5;241m=\u001b[39m model\u001b[38;5;241m.\u001b[39mto(device)\n\u001b[0;32m 40\u001b[0m \u001b[38;5;66;03m#----------Создания датасета и обучение модели--------------\u001b[39;00m\n\u001b[1;32m---> 42\u001b[0m path_res, model_name \u001b[38;5;241m=\u001b[39m \u001b[43mprepare_and_learning_detection\u001b[49m\u001b[43m(\u001b[49m\u001b[43mnum_classes\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mnum_classes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_samples\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m20000\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpath_dataset\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m//192.168.11.63/data/DATASETS/Energomash/2400_learning/\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\n\u001b[0;32m 43\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodel_name\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mconfig_name\u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43m_2.4_jpg_\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconfig_name\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m \u001b[49m\u001b[43mconfig_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmodel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 46\u001b[0m torch\u001b[38;5;241m.\u001b[39mcuda\u001b[38;5;241m.\u001b[39mempty_cache()\n\u001b[0;32m 47\u001b[0m cv2\u001b[38;5;241m.\u001b[39mdestroyAllWindows()\n",
"Cell \u001b[1;32mIn[2], line 108\u001b[0m, in \u001b[0;36mprepare_and_learning_detection\u001b[1;34m(num_classes, num_samples, path_dataset, model_name, config_name, model)\u001b[0m\n\u001b[0;32m 105\u001b[0m optimizer\u001b[38;5;241m.\u001b[39mzero_grad()\n\u001b[0;32m 107\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mset_grad_enabled(phase \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mtrain\u001b[39m\u001b[38;5;124m'\u001b[39m):\n\u001b[1;32m--> 108\u001b[0m output \u001b[38;5;241m=\u001b[39m \u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mimg\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 109\u001b[0m _, pred \u001b[38;5;241m=\u001b[39m torch\u001b[38;5;241m.\u001b[39mmax(output\u001b[38;5;241m.\u001b[39mdata, \u001b[38;5;241m1\u001b[39m)\n\u001b[0;32m 110\u001b[0m loss \u001b[38;5;241m=\u001b[39m criterion(output, label)\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1553\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1551\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[0;32m 1552\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 1553\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1562\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1557\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[0;32m 1558\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[0;32m 1559\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[0;32m 1560\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[0;32m 1561\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[1;32m-> 1562\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1564\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 1565\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
"Cell \u001b[1;32mIn[10], line 28\u001b[0m, in \u001b[0;36mModel.forward\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 26\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x):\n\u001b[0;32m 27\u001b[0m \u001b[38;5;28mprint\u001b[39m(x)\n\u001b[1;32m---> 28\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmodel\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 29\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m x\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1553\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1551\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[0;32m 1552\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 1553\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1562\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1557\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[0;32m 1558\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[0;32m 1559\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[0;32m 1560\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[0;32m 1561\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[1;32m-> 1562\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1564\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 1565\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\resnet.py:285\u001b[0m, in \u001b[0;36mResNet.forward\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 284\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[1;32m--> 285\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_forward_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\resnet.py:268\u001b[0m, in \u001b[0;36mResNet._forward_impl\u001b[1;34m(self, x)\u001b[0m\n\u001b[0;32m 266\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_forward_impl\u001b[39m(\u001b[38;5;28mself\u001b[39m, x: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[0;32m 267\u001b[0m \u001b[38;5;66;03m# See note [TorchScript super()]\u001b[39;00m\n\u001b[1;32m--> 268\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconv1\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 269\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mbn1(x)\n\u001b[0;32m 270\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mrelu(x)\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1553\u001b[0m, in \u001b[0;36mModule._wrapped_call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1551\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_compiled_call_impl(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs) \u001b[38;5;66;03m# type: ignore[misc]\u001b[39;00m\n\u001b[0;32m 1552\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m-> 1553\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_call_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\module.py:1562\u001b[0m, in \u001b[0;36mModule._call_impl\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1557\u001b[0m \u001b[38;5;66;03m# If we don't have any hooks, we want to skip the rest of the logic in\u001b[39;00m\n\u001b[0;32m 1558\u001b[0m \u001b[38;5;66;03m# this function, and just call forward.\u001b[39;00m\n\u001b[0;32m 1559\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_forward_pre_hooks\n\u001b[0;32m 1560\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_backward_pre_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_backward_hooks\n\u001b[0;32m 1561\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m _global_forward_hooks \u001b[38;5;129;01mor\u001b[39;00m _global_forward_pre_hooks):\n\u001b[1;32m-> 1562\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mforward_call\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1564\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m 1565\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\conv.py:458\u001b[0m, in \u001b[0;36mConv2d.forward\u001b[1;34m(self, input)\u001b[0m\n\u001b[0;32m 457\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mforward\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28minput\u001b[39m: Tensor) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m Tensor:\n\u001b[1;32m--> 458\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_conv_forward\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbias\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\miniconda3\\envs\\python311\\Lib\\site-packages\\torch\\nn\\modules\\conv.py:454\u001b[0m, in \u001b[0;36mConv2d._conv_forward\u001b[1;34m(self, input, weight, bias)\u001b[0m\n\u001b[0;32m 450\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpadding_mode \u001b[38;5;241m!=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mzeros\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[0;32m 451\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m F\u001b[38;5;241m.\u001b[39mconv2d(F\u001b[38;5;241m.\u001b[39mpad(\u001b[38;5;28minput\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_reversed_padding_repeated_twice, mode\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpadding_mode),\n\u001b[0;32m 452\u001b[0m weight, bias, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstride,\n\u001b[0;32m 453\u001b[0m _pair(\u001b[38;5;241m0\u001b[39m), \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdilation, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgroups)\n\u001b[1;32m--> 454\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mF\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconv2d\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43minput\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mweight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbias\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstride\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 455\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpadding\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdilation\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mgroups\u001b[49m\u001b[43m)\u001b[49m\n",
"\u001b[1;31mRuntimeError\u001b[0m: Expected 3D (unbatched) or 4D (batched) input to conv2d, but got input of size: [4, 0]"
]
}
],
"source": [
"#----------Инициализируем модель и параметры обучения--------------\n",
"\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"gc.collect()\n",
"\n",
"config_name = \"ensemble\"\n",
" \n",
"def load_function(attr):\n",
" module_, func = attr.rsplit('.', maxsplit=1)\n",
" return getattr(import_module(module_), func)\n",
" \n",
"config = mlconfig.load('config_' + config_name + '.yaml')\n",
"\n",
"model = models.resnet18(pretrained=True)\n",
"\n",
"num_classes = 2\n",
"\n",
"model.fc = nn.Linear(model.fc.in_features, num_classes)\n",
"\n",
"class Model(nn.Module):\n",
" def __init__(self, model):\n",
" super(Model, self).__init__()\n",
" self.model = model\n",
"\n",
" def forward(self, x):\n",
" print(x)\n",
" x = self.model(x)\n",
" return x\n",
"\n",
"model = Model(model)\n",
"\n",
"optimizer = load_function(config.optimizer.name)(model.parameters(), lr=config.optimizer.lr)\n",
"criterion = load_function(config.loss_function.name)()\n",
"scheduler = load_function(config.scheduler.name)(optimizer, step_size=config.scheduler.step_size, gamma=config.scheduler.gamma)\n",
"\n",
"if device != 'cpu':\n",
" model = model.to(device)\n",
"\n",
"#----------Создания датасета и обучение модели--------------\n",
"\n",
"path_res, model_name = prepare_and_learning_detection(num_classes = num_classes, num_samples = 20000, path_dataset = \"//192.168.11.63/data/DATASETS/Energomash/2400_learning/\", \n",
" model_name = config_name+\"_2.4_jpg_\", config_name = config_name, model=model)\n",
"\n",
"\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"del model\n",
"gc.collect()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "57d18676",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "c10afb29",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Отсутствует",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -1,503 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"id": "5a13ad6b-56c9-4381-b376-1765f6dd7553",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# Импортирование библиотек"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "7311cb4a-5bf3-4268-b431-43eea10e9ed6",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"cuda\n"
]
},
{
"data": {
"text/plain": [
"12"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import train_test_split\n",
"from torch.utils.data import Dataset, DataLoader\n",
"from torch import default_generator, randperm\n",
"from torch.utils.data.dataset import Subset\n",
"import torchvision.transforms as transforms\n",
"from torchvision.io import read_image\n",
"from importlib import import_module\n",
"import matplotlib.pyplot as plt\n",
"from torchvision import models\n",
"import torch, torchvision\n",
"from pathlib import Path\n",
"from PIL import Image\n",
"import torch.nn as nn\n",
"from tqdm import tqdm\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib\n",
"import os, shutil\n",
"import mlconfig\n",
"import random\n",
"import shutil\n",
"import timeit\n",
"import copy\n",
"import time\n",
"import cv2\n",
"import csv\n",
"import sys\n",
"import io\n",
"import gc\n",
"\n",
"plt.rcParams[\"savefig.bbox\"] = 'tight'\n",
"torch.manual_seed(1)\n",
"#matplotlib.use('Agg')\n",
"device = 'cuda' if torch.cuda.is_available() else 'cpu'\n",
"print(device)\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"gc.collect()"
]
},
{
"cell_type": "markdown",
"id": "384de097-82c6-41f5-bda9-b2f54bc99593",
"metadata": {
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"# Подготовка и обучение детектирование"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "46e4dc99-6994-4fee-a32e-f3983bd991bd",
"metadata": {},
"outputs": [],
"source": [
"def prepare_and_learning_detection(num_classes, num_samples, path_dataset, model_name, config_name, model):\n",
" num_samples_per_class = num_samples // num_classes\n",
"\n",
" #----------Создаём папку для сохранения результатов обучения--------------\n",
" \n",
" ind = 1\n",
" while True:\n",
" if os.path.exists(\"models/\" + model_name + str(ind)):\n",
" ind += 1\n",
" else:\n",
" os.mkdir(\"models/\" + model_name + str(ind))\n",
" path_res = \"models/\" + model_name + str(ind) + '/'\n",
" break\n",
" \n",
" #----------Создаём файл dataset.csv для обучения--------------\n",
" \n",
" pd_columns = ['file_name']\n",
" df = pd.DataFrame(columns=pd_columns)\n",
" \n",
" subdirs = os.listdir(path_dataset)\n",
" for subdir in subdirs:\n",
" files = os.listdir(path_dataset + subdir + '/')\n",
" num_samples_per_class = min(num_samples_per_class, len(files))\n",
" for subdir in subdirs:\n",
" files = os.listdir(path_dataset + subdir + '/')\n",
" random.shuffle(files)\n",
" files_to_process = files[:num_samples_per_class]\n",
" for file in files_to_process:\n",
" row = pd.DataFrame({pd_columns[0]: [str(path_dataset + subdir + '/' + file)]})\n",
" df = pd.concat([df, row], ignore_index=True)\n",
" \n",
" df.to_csv(path_res + 'dataset.csv', index=False)\n",
" \n",
" #----------Импортируем параметры для обучения--------------\n",
" \n",
" def load_function(attr):\n",
" module_, func = attr.rsplit('.', maxsplit=1)\n",
" return getattr(import_module(module_), func)\n",
" \n",
" config = mlconfig.load('config_' + config_name + '.yaml')\n",
" \n",
" #----------Создаём класс датасета--------------\n",
" \n",
" class MyDataset(Dataset):\n",
" def __init__(self, path_dataset, csv_file):\n",
" data=[]\n",
" with open(path_dataset + csv_file, newline='') as csvfile:\n",
" reader = csv.reader(csvfile, delimiter=' ', quotechar='|')\n",
" for row in list(reader)[1:]:\n",
" row = str(row)\n",
" data.append(row[2: len(row)-2])\n",
" self.sig_filenames = data\n",
" self.path_dataset = path_dataset\n",
" \n",
" def __len__(self):\n",
" return len(self.sig_filenames)\n",
" \n",
" def __getitem__(self, idx):\n",
" image_real = np.asarray(cv2.split(cv2.imread(self.sig_filenames[idx][:-8]+'real.jpg')), dtype=np.float32)\n",
" image_imag = np.asarray(cv2.split(cv2.imread(self.sig_filenames[idx][:-8]+'imag.jpg')), dtype=np.float32)\n",
" image_spec = np.asarray(cv2.split(cv2.imread(self.sig_filenames[idx][:-8]+'spec.jpg')), dtype=np.float32)\n",
" if 'drone' in list(self.sig_filenames[idx].split('/')):\n",
" label = torch.tensor(0)\n",
" if 'noise' in list(self.sig_filenames[idx].split('/')):\n",
" label = torch.tensor(1)\n",
" return image_real, image_imag, image_spec, label\n",
" \n",
" #----------Создаём датасет--------------\n",
" \n",
" dataset = MyDataset(path_dataset=path_res, csv_file='dataset.csv')\n",
" train_set, valid_set = torch.utils.data.random_split(dataset, [0.7, 0.3], generator=torch.Generator().manual_seed(42))\n",
" batch_size = config.batch_size\n",
" train_dataloader = torch.utils.data.DataLoader(train_set, batch_size=batch_size, shuffle=True, drop_last=True)\n",
" valid_dataloader = torch.utils.data.DataLoader(valid_set, batch_size=batch_size, shuffle=True, drop_last=True)\n",
" \n",
" dataloaders = {}\n",
" dataloaders['train'] = train_dataloader\n",
" dataloaders['val'] = valid_dataloader\n",
" dataset_sizes = {}\n",
" dataset_sizes['train'] = len(train_set)\n",
" dataset_sizes['val'] = len(valid_set)\n",
"\n",
" #----------Обучаем модель--------------\n",
"\n",
" val_loss = []\n",
" val_acc = []\n",
" train_loss = []\n",
" train_acc = []\n",
" epochs = config.epoch\n",
" \n",
" best_acc = 0.0\n",
" best_model = copy.deepcopy(model.state_dict())\n",
" limit = config.limit\n",
" epoch_limit = epochs\n",
" \n",
" start = timeit.default_timer()\n",
" for epoch in range(1, epochs+1):\n",
" print(f\"Epoch : {epoch}\\n\")\n",
" dataloader = None\n",
" \n",
" for phase in ['train', 'val']:\n",
" running_loss = 0.0\n",
" running_corrects = 0\n",
" \n",
" for (img1, img2, img3, label) in tqdm(dataloaders[phase]):\n",
" img1, img2, img3, label = img1.to(device), img2.to(device), img3.to(device), label.to(device)\n",
" optimizer.zero_grad()\n",
" \n",
" with torch.set_grad_enabled(phase == 'train'):\n",
" output = model([img1, img2, img3])\n",
" _, pred = torch.max(output.data, 1)\n",
" loss = criterion(output, label)\n",
" if phase=='train' :\n",
" loss.backward()\n",
" optimizer.step()\n",
" \n",
" running_loss += loss.item() * 3 * img1.size(0)\n",
" running_corrects += torch.sum(pred == label.data)\n",
" \n",
" epoch_loss = running_loss / dataset_sizes[phase]\n",
" epoch_acc = running_corrects.double() / dataset_sizes[phase]\n",
" \n",
" print('{} Loss: {:.4f} Acc: {:.4f}'.format(phase, epoch_loss, epoch_acc))\n",
" \n",
" if phase=='train' :\n",
" train_loss.append(epoch_loss)\n",
" train_acc.append(epoch_acc)\n",
" else :\n",
" val_loss.append(epoch_loss)\n",
" val_acc.append(epoch_acc)\n",
" if val_acc[-1] > best_acc :\n",
" ind_limit = 0\n",
" best_acc = val_acc[-1]\n",
" best_model = copy.deepcopy(model.state_dict())\n",
" torch.save(best_model, path_res + model_name + '.pth')\n",
" else:\n",
" ind_limit += 1\n",
" \n",
" if ind_limit >= limit:\n",
" break\n",
" \n",
" if ind_limit >= limit:\n",
" epoch_limit = epoch\n",
" break\n",
" \n",
" print()\n",
" \n",
" end = timeit.default_timer()\n",
" print(f\"Total time elapsed = {end - start} seconds\")\n",
" epoch_limit += 1\n",
" \n",
" #----------Вывод графиков и сохранение результатов обучения--------------\n",
" \n",
" train_acc = np.asarray(list(map(lambda x: x.item(), train_acc)))\n",
" val_acc = np.asarray(list(map(lambda x: x.item(), val_acc)))\n",
" \n",
" np.save(path_res+'train_acc.npy', train_acc)\n",
" np.save(path_res+'val_acc.npy', val_acc)\n",
" np.save(path_res+'train_loss.npy', train_loss)\n",
" np.save(path_res+'val_loss.npy', val_loss)\n",
" \n",
" plt.figure()\n",
" plt.plot(range(1,epoch_limit), train_loss, color='blue')\n",
" plt.plot(range(1,epoch_limit), val_loss, color='red')\n",
" plt.xlabel('Epoch')\n",
" plt.ylabel('Loss')\n",
" plt.title('Loss Curve')\n",
" plt.legend(['Train Loss', 'Validation Loss'])\n",
" plt.show()\n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" \n",
" plt.figure()\n",
" plt.plot(range(1,epoch_limit), train_acc, color='blue')\n",
" plt.plot(range(1,epoch_limit), val_acc, color='red')\n",
" plt.xlabel('Epoch')\n",
" plt.ylabel('Accuracy')\n",
" plt.title('Accuracy Curve')\n",
" plt.legend(['Train Accuracy', 'Validation Accuracy'])\n",
" plt.show()\n",
" \n",
" plt.clf()\n",
" plt.cla()\n",
" plt.close()\n",
" torch.cuda.empty_cache()\n",
" cv2.destroyAllWindows()\n",
" del model\n",
" gc.collect()\n",
"\n",
" return path_res, model_name"
]
},
{
"cell_type": "markdown",
"id": "93c136ee",
"metadata": {},
"source": [
"### Ensemble"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "52e8d4c5",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.\n",
" warnings.warn(\n",
"C:\\Users\\snytk\\miniconda3\\envs\\python311\\Lib\\site-packages\\torchvision\\models\\_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=None`.\n",
" warnings.warn(msg)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Epoch : 1\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████████████████████████████████████████████████████████████████████████| 658/658 [1:00:26<00:00, 5.51s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"train Loss: 0.6663 Acc: 0.9241\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 282/282 [02:45<00:00, 1.71it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"val Loss: 0.4023 Acc: 0.9557\n",
"\n",
"Epoch : 2\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 658/658 [43:11<00:00, 3.94s/it]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"train Loss: 0.4096 Acc: 0.9514\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|████████████████████████████████████████████████████████████████████████████████| 282/282 [00:47<00:00, 5.98it/s]\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"val Loss: 0.3390 Acc: 0.9574\n",
"\n",
"Epoch : 3\n",
"\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
" 8%|██████▍ | 52/658 [04:26<51:43, 5.12s/it]"
]
}
],
"source": [
"#----------Инициализируем модель и параметры обучения--------------\n",
"\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"gc.collect()\n",
"\n",
"num_classes = 3\n",
"config_name = \"ensemble\"\n",
" \n",
"def load_function(attr):\n",
" module_, func = attr.rsplit('.', maxsplit=1)\n",
" return getattr(import_module(module_), func)\n",
" \n",
"config = mlconfig.load('config_' + config_name + '.yaml')\n",
"\n",
"model1 = models.resnet18(pretrained=False)\n",
"model2 = models.resnet50(pretrained=False)\n",
"model3 = models.resnet101(pretrained=False)\n",
"\n",
"num_classes = 2\n",
"\n",
"model1.fc = nn.Linear(model1.fc.in_features, num_classes)\n",
"model2.fc = nn.Linear(model2.fc.in_features, num_classes)\n",
"model3.fc = nn.Linear(model3.fc.in_features, num_classes)\n",
"\n",
"class Ensemble(nn.Module):\n",
" def __init__(self, model1, model2, model3):\n",
" super(Ensemble, self).__init__()\n",
" self.model1 = model1\n",
" self.model2 = model2\n",
" self.model3 = model3\n",
" self.fc = nn.Linear(3 * num_classes, num_classes)\n",
"\n",
" def forward(self, x):\n",
" x1 = self.model1(x[0])\n",
" x2 = self.model2(x[1])\n",
" x3 = self.model3(x[2])\n",
" x = torch.cat((x1, x2, x3), dim=1)\n",
" x = self.fc(x)\n",
" return x\n",
"\n",
"model = Ensemble(model1, model2, model3)\n",
"\n",
"optimizer = load_function(config.optimizer.name)(model.parameters(), lr=config.optimizer.lr)\n",
"criterion = load_function(config.loss_function.name)()\n",
"scheduler = load_function(config.scheduler.name)(optimizer, step_size=config.scheduler.step_size, gamma=config.scheduler.gamma)\n",
"\n",
"if device != 'cpu':\n",
" model = model.to(device)\n",
"\n",
"#----------Создания датасета и обучение модели--------------\n",
"\n",
"path_res, model_name = prepare_and_learning_detection(num_classes = num_classes, num_samples = 5000, path_dataset = \"C:/Users/snytk/Lerning_NN_for_work/datasets_jpg/915_jpg_learning/\", \n",
" model_name = config_name+\"_915_jpg_\", config_name = config_name, model=model)\n",
"\n",
"\n",
"torch.cuda.empty_cache()\n",
"cv2.destroyAllWindows()\n",
"del model\n",
"gc.collect()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "57d18676",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "eab69324",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"celltoolbar": "Отсутствует",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,370 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 13,
"id": "c1b1a484",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"['id', 'module_id', 'createdAt', 'registeredAt', 'data', 'createdBy', 'type']\n",
"['291725', '1', '2025-02-14 13:58:03', '2025-02-14 13:58:01', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291722', '1', '2025-02-14 13:57:32', '2025-02-14 13:57:30', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291721', '1', '2025-02-14 13:57:29', '2025-02-14 13:57:27', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291718', '1', '2025-02-14 13:56:58', '2025-02-14 13:56:55', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291715', '1', '2025-02-14 13:56:26', '2025-02-14 13:56:24', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291711', '1', '2025-02-14 13:55:53', '2025-02-14 13:55:51', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291710', '1', '2025-02-14 13:55:50', '2025-02-14 13:55:48', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291706', '1', '2025-02-14 13:55:17', '2025-02-14 13:55:15', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291700', '1', '2025-02-14 13:54:15', '2025-02-14 13:54:13', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291697', '1', '2025-02-14 13:53:44', '2025-02-14 13:53:42', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291696', '1', '2025-02-14 13:53:41', '2025-02-14 13:53:39', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291693', '1', '2025-02-14 13:53:10', '2025-02-14 13:53:07', '[{\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291692', '1', '2025-02-14 13:53:07', '2025-02-14 13:53:05', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291688', '1', '2025-02-14 13:52:34', '2025-02-14 13:52:32', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291685', '1', '2025-02-14 13:52:03', '2025-02-14 13:52:01', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291684', '1', '2025-02-14 13:52:01', '2025-02-14 13:51:59', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291681', '1', '2025-02-14 13:51:30', '2025-02-14 13:51:28', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291677', '1', '2025-02-14 13:50:57', '2025-02-14 13:50:55', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291676', '1', '2025-02-14 13:50:53', '2025-02-14 13:50:51', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291673', '1', '2025-02-14 13:50:21', '2025-02-14 13:50:19', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291672', '1', '2025-02-14 13:50:18', '2025-02-14 13:50:16', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291669', '1', '2025-02-14 13:49:47', '2025-02-14 13:49:45', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291668', '1', '2025-02-14 13:49:36', '2025-02-14 13:49:34', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291665', '1', '2025-02-14 13:49:05', '2025-02-14 13:49:03', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291664', '1', '2025-02-14 13:49:03', '2025-02-14 13:49:01', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291661', '1', '2025-02-14 13:48:32', '2025-02-14 13:48:30', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291657', '1', '2025-02-14 13:47:59', '2025-02-14 13:47:57', '[{\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291656', '1', '2025-02-14 13:47:56', '2025-02-14 13:47:54', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291653', '1', '2025-02-14 13:47:24', '2025-02-14 13:47:22', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291621', '1', '2025-02-14 13:15:52', '2025-02-14 13:15:50', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291615', '1', '2025-02-14 13:14:50', '2025-02-14 13:14:48', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291614', '1', '2025-02-14 13:14:45', '2025-02-14 13:14:43', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291611', '1', '2025-02-14 13:14:14', '2025-02-14 13:14:12', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291607', '1', '2025-02-14 13:13:38', '2025-02-14 13:13:36', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291551', '1', '2025-02-14 12:17:59', '2025-02-14 12:17:57', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291548', '1', '2025-02-14 12:17:28', '2025-02-14 12:17:26', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291547', '1', '2025-02-14 12:17:26', '2025-02-14 12:17:24', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291544', '1', '2025-02-14 12:16:55', '2025-02-14 12:16:53', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291543', '1', '2025-02-14 12:16:51', '2025-02-14 12:16:49', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291540', '1', '2025-02-14 12:16:20', '2025-02-14 12:16:18', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291335', '1', '2025-02-14 08:51:24', '2025-02-14 08:51:22', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291332', '1', '2025-02-14 08:50:53', '2025-02-14 08:50:51', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291331', '1', '2025-02-14 08:50:48', '2025-02-14 08:50:46', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291328', '1', '2025-02-14 08:50:17', '2025-02-14 08:50:14', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291327', '1', '2025-02-14 08:50:11', '2025-02-14 08:50:09', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291324', '1', '2025-02-14 08:49:40', '2025-02-14 08:49:38', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291323', '1', '2025-02-14 08:49:36', '2025-02-14 08:49:34', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291320', '1', '2025-02-14 08:49:05', '2025-02-14 08:49:03', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291317', '1', '2025-02-14 08:48:34', '2025-02-14 08:48:32', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291316', '1', '2025-02-14 08:48:32', '2025-02-14 08:48:30', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291313', '1', '2025-02-14 08:48:01', '2025-02-14 08:47:59', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291312', '1', '2025-02-14 08:47:46', '2025-02-14 08:47:44', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291309', '1', '2025-02-14 08:47:15', '2025-02-14 08:47:13', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291308', '1', '2025-02-14 08:47:13', '2025-02-14 08:47:11', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291305', '1', '2025-02-14 08:46:41', '2025-02-14 08:46:39', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291304', '1', '2025-02-14 08:46:25', '2025-02-14 08:46:23', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291301', '1', '2025-02-14 08:45:54', '2025-02-14 08:45:52', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291300', '1', '2025-02-14 08:45:52', '2025-02-14 08:45:50', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291297', '1', '2025-02-14 08:45:21', '2025-02-14 08:45:19', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291296', '1', '2025-02-14 08:45:17', '2025-02-14 08:45:15', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291293', '1', '2025-02-14 08:44:46', '2025-02-14 08:44:44', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291292', '1', '2025-02-14 08:44:33', '2025-02-14 08:44:31', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291289', '1', '2025-02-14 08:44:02', '2025-02-14 08:44:00', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291288', '1', '2025-02-14 08:43:53', '2025-02-14 08:43:50', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291285', '1', '2025-02-14 08:43:21', '2025-02-14 08:43:19', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291284', '1', '2025-02-14 08:43:19', '2025-02-14 08:43:17', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291281', '1', '2025-02-14 08:42:48', '2025-02-14 08:42:46', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291280', '1', '2025-02-14 08:42:32', '2025-02-14 08:42:30', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291277', '1', '2025-02-14 08:42:01', '2025-02-14 08:41:59', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291276', '1', '2025-02-14 08:41:57', '2025-02-14 08:41:55', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291269', '1', '2025-02-14 08:40:52', '2025-02-14 08:40:50', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['291265', '1', '2025-02-14 08:40:19', '2025-02-14 08:40:17', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290775', '1', '2025-02-14 00:29:43', '2025-02-14 00:29:41', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290772', '1', '2025-02-14 00:29:12', '2025-02-14 00:29:10', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290768', '1', '2025-02-14 00:28:38', '2025-02-14 00:28:36', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290767', '1', '2025-02-14 00:28:27', '2025-02-14 00:28:25', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290764', '1', '2025-02-14 00:27:56', '2025-02-14 00:27:54', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290763', '1', '2025-02-14 00:27:46', '2025-02-14 00:27:44', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290760', '1', '2025-02-14 00:27:15', '2025-02-14 00:27:13', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290756', '1', '2025-02-14 00:26:42', '2025-02-14 00:26:40', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290752', '1', '2025-02-14 00:25:59', '2025-02-14 00:25:57', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290748', '1', '2025-02-14 00:25:26', '2025-02-14 00:25:24', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290744', '1', '2025-02-14 00:24:51', '2025-02-14 00:24:49', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290743', '1', '2025-02-14 00:24:41', '2025-02-14 00:24:39', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290740', '1', '2025-02-14 00:24:10', '2025-02-14 00:24:08', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290739', '1', '2025-02-14 00:24:00', '2025-02-14 00:23:58', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290736', '1', '2025-02-14 00:23:29', '2025-02-14 00:23:27', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290735', '1', '2025-02-14 00:23:24', '2025-02-14 00:23:22', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290732', '1', '2025-02-14 00:22:53', '2025-02-14 00:22:51', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290728', '1', '2025-02-14 00:22:20', '2025-02-14 00:22:18', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290727', '1', '2025-02-14 00:22:17', '2025-02-14 00:22:15', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290724', '1', '2025-02-14 00:21:46', '2025-02-14 00:21:44', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290721', '1', '2025-02-14 00:21:15', '2025-02-14 00:21:13', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290720', '1', '2025-02-14 00:21:10', '2025-02-14 00:21:08', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290717', '1', '2025-02-14 00:20:39', '2025-02-14 00:20:37', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290716', '1', '2025-02-14 00:20:34', '2025-02-14 00:20:32', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290713', '1', '2025-02-14 00:20:02', '2025-02-14 00:20:00', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290712', '1', '2025-02-14 00:20:00', '2025-02-14 00:19:58', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290709', '1', '2025-02-14 00:19:29', '2025-02-14 00:19:27', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290705', '1', '2025-02-14 00:18:56', '2025-02-14 00:18:54', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290704', '1', '2025-02-14 00:18:48', '2025-02-14 00:18:46', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290701', '1', '2025-02-14 00:18:17', '2025-02-14 00:18:15', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290700', '1', '2025-02-14 00:18:12', '2025-02-14 00:18:10', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290697', '1', '2025-02-14 00:17:41', '2025-02-14 00:17:39', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290693', '1', '2025-02-14 00:17:08', '2025-02-14 00:17:06', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290692', '1', '2025-02-14 00:17:06', '2025-02-14 00:17:03', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290689', '1', '2025-02-14 00:16:34', '2025-02-14 00:16:32', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290685', '1', '2025-02-14 00:16:01', '2025-02-14 00:15:59', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290682', '1', '2025-02-14 00:15:30', '2025-02-14 00:15:28', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290676', '1', '2025-02-14 00:09:52', '2025-02-14 00:09:50', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290673', '1', '2025-02-14 00:09:21', '2025-02-14 00:09:19', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290672', '1', '2025-02-14 00:09:19', '2025-02-14 00:09:17', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290669', '1', '2025-02-14 00:08:48', '2025-02-14 00:08:46', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290661', '1', '2025-02-14 00:00:53', '2025-02-14 00:00:51', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290658', '1', '2025-02-14 00:00:22', '2025-02-14 00:00:19', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290654', '1', '2025-02-13 23:59:45', '2025-02-13 23:59:43', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290650', '1', '2025-02-13 23:59:12', '2025-02-13 23:59:10', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290649', '1', '2025-02-13 23:59:08', '2025-02-13 23:59:06', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290646', '1', '2025-02-13 23:58:37', '2025-02-13 23:58:35', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290645', '1', '2025-02-13 23:58:28', '2025-02-13 23:58:26', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290642', '1', '2025-02-13 23:57:57', '2025-02-13 23:57:55', '[{\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290641', '1', '2025-02-13 23:57:55', '2025-02-13 23:57:53', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290638', '1', '2025-02-13 23:57:24', '2025-02-13 23:57:22', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290637', '1', '2025-02-13 23:57:22', '2025-02-13 23:57:20', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290634', '1', '2025-02-13 23:56:51', '2025-02-13 23:56:49', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290633', '1', '2025-02-13 23:56:47', '2025-02-13 23:56:45', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290630', '1', '2025-02-13 23:56:15', '2025-02-13 23:56:13', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290629', '1', '2025-02-13 23:56:10', '2025-02-13 23:56:08', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290626', '1', '2025-02-13 23:55:39', '2025-02-13 23:55:37', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290625', '1', '2025-02-13 23:55:30', '2025-02-13 23:55:28', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290622', '1', '2025-02-13 23:54:59', '2025-02-13 23:54:57', '[{\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290621', '1', '2025-02-13 23:54:57', '2025-02-13 23:54:55', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290618', '1', '2025-02-13 23:54:26', '2025-02-13 23:54:24', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290617', '1', '2025-02-13 23:54:23', '2025-02-13 23:54:21', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290614', '1', '2025-02-13 23:53:52', '2025-02-13 23:53:50', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290613', '1', '2025-02-13 23:53:41', '2025-02-13 23:53:39', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290610', '1', '2025-02-13 23:53:09', '2025-02-13 23:53:07', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290441', '1', '2025-02-13 21:04:20', '2025-02-13 21:04:18', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290438', '1', '2025-02-13 21:03:49', '2025-02-13 21:03:47', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290431', '1', '2025-02-13 21:02:44', '2025-02-13 21:02:42', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290427', '1', '2025-02-13 21:02:04', '2025-02-13 21:02:02', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290423', '1', '2025-02-13 21:01:31', '2025-02-13 21:01:29', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290419', '1', '2025-02-13 21:00:56', '2025-02-13 21:00:54', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290418', '1', '2025-02-13 21:00:46', '2025-02-13 21:00:44', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290415', '1', '2025-02-13 21:00:15', '2025-02-13 21:00:13', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290414', '1', '2025-02-13 21:00:06', '2025-02-13 21:00:04', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290411', '1', '2025-02-13 20:59:35', '2025-02-13 20:59:33', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290407', '1', '2025-02-13 20:59:02', '2025-02-13 20:59:00', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290406', '1', '2025-02-13 20:58:54', '2025-02-13 20:58:51', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290403', '1', '2025-02-13 20:58:22', '2025-02-13 20:58:20', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290399', '1', '2025-02-13 20:57:48', '2025-02-13 20:57:46', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290398', '1', '2025-02-13 20:57:41', '2025-02-13 20:57:39', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290395', '1', '2025-02-13 20:57:10', '2025-02-13 20:57:08', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290394', '1', '2025-02-13 20:57:06', '2025-02-13 20:57:04', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290390', '1', '2025-02-13 20:56:32', '2025-02-13 20:56:30', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290387', '1', '2025-02-13 20:56:01', '2025-02-13 20:55:59', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290386', '1', '2025-02-13 20:55:59', '2025-02-13 20:55:57', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290383', '1', '2025-02-13 20:55:28', '2025-02-13 20:55:26', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290382', '1', '2025-02-13 20:55:26', '2025-02-13 20:55:24', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290379', '1', '2025-02-13 20:54:55', '2025-02-13 20:54:53', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290378', '1', '2025-02-13 20:54:44', '2025-02-13 20:54:42', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290375', '1', '2025-02-13 20:54:13', '2025-02-13 20:54:11', '[{\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290374', '1', '2025-02-13 20:54:11', '2025-02-13 20:54:09', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290371', '1', '2025-02-13 20:53:40', '2025-02-13 20:53:38', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290370', '1', '2025-02-13 20:53:37', '2025-02-13 20:53:34', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290363', '1', '2025-02-13 20:52:32', '2025-02-13 20:52:30', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290299', '1', '2025-02-13 19:48:43', '2025-02-13 19:48:41', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290296', '1', '2025-02-13 19:48:12', '2025-02-13 19:48:10', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290295', '1', '2025-02-13 19:48:07', '2025-02-13 19:48:05', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290292', '1', '2025-02-13 19:47:36', '2025-02-13 19:47:34', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290291', '1', '2025-02-13 19:47:34', '2025-02-13 19:47:32', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290288', '1', '2025-02-13 19:47:03', '2025-02-13 19:47:01', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290287', '1', '2025-02-13 19:46:59', '2025-02-13 19:46:56', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290280', '1', '2025-02-13 19:45:54', '2025-02-13 19:45:52', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290229', '1', '2025-02-13 18:55:16', '2025-02-13 18:55:14', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290226', '1', '2025-02-13 18:54:45', '2025-02-13 18:54:43', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290225', '1', '2025-02-13 18:54:43', '2025-02-13 18:54:41', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290222', '1', '2025-02-13 18:54:12', '2025-02-13 18:54:10', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290221', '1', '2025-02-13 18:53:52', '2025-02-13 18:53:50', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290218', '1', '2025-02-13 18:53:21', '2025-02-13 18:53:19', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290089', '1', '2025-02-13 16:44:59', '2025-02-13 16:44:57', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290086', '1', '2025-02-13 16:44:28', '2025-02-13 16:44:26', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290085', '1', '2025-02-13 16:44:19', '2025-02-13 16:44:17', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290082', '1', '2025-02-13 16:43:48', '2025-02-13 16:43:45', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290078', '1', '2025-02-13 16:43:14', '2025-02-13 16:43:12', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290074', '1', '2025-02-13 16:42:40', '2025-02-13 16:42:38', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290073', '1', '2025-02-13 16:42:29', '2025-02-13 16:42:27', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290070', '1', '2025-02-13 16:41:58', '2025-02-13 16:41:56', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290069', '1', '2025-02-13 16:41:55', '2025-02-13 16:41:53', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290066', '1', '2025-02-13 16:41:24', '2025-02-13 16:41:22', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290063', '1', '2025-02-13 16:40:53', '2025-02-13 16:40:51', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290062', '1', '2025-02-13 16:40:49', '2025-02-13 16:40:47', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290058', '1', '2025-02-13 16:40:16', '2025-02-13 16:40:13', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290055', '1', '2025-02-13 16:39:44', '2025-02-13 16:39:42', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290054', '1', '2025-02-13 16:39:41', '2025-02-13 16:39:39', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290048', '1', '2025-02-13 16:38:39', '2025-02-13 16:38:37', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290047', '1', '2025-02-13 16:38:37', '2025-02-13 16:38:35', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290044', '1', '2025-02-13 16:38:06', '2025-02-13 16:38:04', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290043', '1', '2025-02-13 16:37:58', '2025-02-13 16:37:56', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290040', '1', '2025-02-13 16:37:27', '2025-02-13 16:37:25', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290039', '1', '2025-02-13 16:37:25', '2025-02-13 16:37:23', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290036', '1', '2025-02-13 16:36:54', '2025-02-13 16:36:52', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290028', '1', '2025-02-13 16:35:46', '2025-02-13 16:35:44', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290027', '1', '2025-02-13 16:35:36', '2025-02-13 16:35:34', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290024', '1', '2025-02-13 16:35:05', '2025-02-13 16:35:03', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290023', '1', '2025-02-13 16:35:00', '2025-02-13 16:34:58', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290020', '1', '2025-02-13 16:34:29', '2025-02-13 16:34:27', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290019', '1', '2025-02-13 16:34:26', '2025-02-13 16:34:24', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['290016', '1', '2025-02-13 16:33:55', '2025-02-13 16:33:53', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289835', '1', '2025-02-13 13:32:33', '2025-02-13 13:32:31', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289832', '1', '2025-02-13 13:32:02', '2025-02-13 13:31:59', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289831', '1', '2025-02-13 13:31:25', '2025-02-13 13:31:23', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289828', '1', '2025-02-13 13:30:54', '2025-02-13 13:30:52', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289827', '1', '2025-02-13 13:30:52', '2025-02-13 13:30:50', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289824', '1', '2025-02-13 13:30:21', '2025-02-13 13:30:19', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289823', '1', '2025-02-13 13:30:16', '2025-02-13 13:30:14', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289820', '1', '2025-02-13 13:29:45', '2025-02-13 13:29:43', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289819', '1', '2025-02-13 13:29:41', '2025-02-13 13:29:39', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289816', '1', '2025-02-13 13:29:10', '2025-02-13 13:29:08', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289815', '1', '2025-02-13 13:29:03', '2025-02-13 13:29:01', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289812', '1', '2025-02-13 13:28:32', '2025-02-13 13:28:30', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289811', '1', '2025-02-13 13:28:30', '2025-02-13 13:28:27', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289808', '1', '2025-02-13 13:27:58', '2025-02-13 13:27:56', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289807', '1', '2025-02-13 13:27:38', '2025-02-13 13:27:36', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289804', '1', '2025-02-13 13:27:07', '2025-02-13 13:27:05', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289749', '1', '2025-02-13 12:34:53', '2025-02-13 12:34:51', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289745', '1', '2025-02-13 12:34:20', '2025-02-13 12:34:18', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289741', '1', '2025-02-13 12:33:44', '2025-02-13 12:33:42', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289737', '1', '2025-02-13 12:33:11', '2025-02-13 12:33:09', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289736', '1', '2025-02-13 12:33:06', '2025-02-13 12:33:04', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289733', '1', '2025-02-13 12:32:35', '2025-02-13 12:32:33', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289729', '1', '2025-02-13 12:32:02', '2025-02-13 12:32:00', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289728', '1', '2025-02-13 12:31:57', '2025-02-13 12:31:54', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289725', '1', '2025-02-13 12:31:25', '2025-02-13 12:31:23', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289721', '1', '2025-02-13 12:30:52', '2025-02-13 12:30:50', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289720', '1', '2025-02-13 12:30:47', '2025-02-13 12:30:45', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289717', '1', '2025-02-13 12:30:16', '2025-02-13 12:30:14', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289713', '1', '2025-02-13 12:29:43', '2025-02-13 12:29:41', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289712', '1', '2025-02-13 12:29:38', '2025-02-13 12:29:36', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289709', '1', '2025-02-13 12:29:07', '2025-02-13 12:29:05', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289705', '1', '2025-02-13 12:28:34', '2025-02-13 12:28:31', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289704', '1', '2025-02-13 12:28:28', '2025-02-13 12:28:26', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289701', '1', '2025-02-13 12:27:57', '2025-02-13 12:27:55', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289697', '1', '2025-02-13 12:27:24', '2025-02-13 12:27:22', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289693', '1', '2025-02-13 12:26:50', '2025-02-13 12:26:48', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289692', '1', '2025-02-13 12:26:46', '2025-02-13 12:26:44', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289689', '1', '2025-02-13 12:26:15', '2025-02-13 12:26:13', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289685', '1', '2025-02-13 12:25:41', '2025-02-13 12:25:39', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289684', '1', '2025-02-13 12:25:37', '2025-02-13 12:25:34', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 8, \"light_len\": 8, \"triggered\": true}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289681', '1', '2025-02-13 12:25:05', '2025-02-13 12:25:03', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289680', '1', '2025-02-13 12:25:00', '2025-02-13 12:24:58', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289677', '1', '2025-02-13 12:24:29', '2025-02-13 12:24:27', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289673', '1', '2025-02-13 12:23:56', '2025-02-13 12:23:54', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289669', '1', '2025-02-13 12:23:22', '2025-02-13 12:23:20', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289665', '1', '2025-02-13 12:22:48', '2025-02-13 12:22:46', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289664', '1', '2025-02-13 12:22:42', '2025-02-13 12:22:40', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289661', '1', '2025-02-13 12:22:11', '2025-02-13 12:22:08', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289657', '1', '2025-02-13 12:21:37', '2025-02-13 12:21:35', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289656', '1', '2025-02-13 12:21:34', '2025-02-13 12:21:32', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289653', '1', '2025-02-13 12:21:03', '2025-02-13 12:21:01', '[{\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289652', '1', '2025-02-13 12:21:00', '2025-02-13 12:20:58', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289649', '1', '2025-02-13 12:20:29', '2025-02-13 12:20:27', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289648', '1', '2025-02-13 12:20:23', '2025-02-13 12:20:21', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289645', '1', '2025-02-13 12:19:52', '2025-02-13 12:19:50', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289644', '1', '2025-02-13 12:19:50', '2025-02-13 12:19:48', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289641', '1', '2025-02-13 12:19:19', '2025-02-13 12:19:17', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289640', '1', '2025-02-13 12:19:16', '2025-02-13 12:19:13', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289637', '1', '2025-02-13 12:18:44', '2025-02-13 12:18:42', '[{\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289636', '1', '2025-02-13 12:18:41', '2025-02-13 12:18:39', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289633', '1', '2025-02-13 12:18:10', '2025-02-13 12:18:08', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289632', '1', '2025-02-13 12:18:04', '2025-02-13 12:18:02', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289629', '1', '2025-02-13 12:17:33', '2025-02-13 12:17:31', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289628', '1', '2025-02-13 12:17:31', '2025-02-13 12:17:29', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289625', '1', '2025-02-13 12:17:00', '2025-02-13 12:16:58', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289624', '1', '2025-02-13 12:16:58', '2025-02-13 12:16:56', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289621', '1', '2025-02-13 12:16:27', '2025-02-13 12:16:25', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289620', '1', '2025-02-13 12:16:24', '2025-02-13 12:16:22', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289617', '1', '2025-02-13 12:15:53', '2025-02-13 12:15:50', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289616', '1', '2025-02-13 12:15:45', '2025-02-13 12:15:43', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289613', '1', '2025-02-13 12:15:14', '2025-02-13 12:15:12', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289612', '1', '2025-02-13 12:15:11', '2025-02-13 12:15:09', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289609', '1', '2025-02-13 12:14:40', '2025-02-13 12:14:38', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289606', '1', '2025-02-13 12:14:09', '2025-02-13 12:14:07', '[{\"freq\": 433, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289605', '1', '2025-02-13 12:14:05', '2025-02-13 12:14:03', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['289602', '1', '2025-02-13 12:13:34', '2025-02-13 12:13:32', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 868, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"['287824', '1', '2025-02-12 04:41:04', '2025-02-12 04:41:02', '[{\"freq\": 433, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 700, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 868, \"amplitude\": 9, \"triggered\": true}, {\"freq\": 915, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 1200, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 2400, \"amplitude\": 0, \"light_len\": 0, \"triggered\": false}, {\"freq\": 5200, \"amplitude\": 0, \"triggered\": false}, {\"freq\": 5800, \"amplitude\": 0, \"triggered\": false}]', 'NULL', 'freq']\n",
"Данные успешно обработаны и сохранены в History_change_1.csv\n"
]
}
],
"source": [
"import csv\n",
"\n",
"# Путь к входному CSV-файлу\n",
"input_file = 'History_1.csv'\n",
"\n",
"# Путь к выходному CSV-файлу (с правильно разделёнными данными)\n",
"output_file = 'History_change_1.csv'\n",
"\n",
"# Открываем исходный файл для чтения и новый файл для записи\n",
"with open(input_file, mode='r', encoding='utf-8') as infile:\n",
" with open(output_file, mode='w', encoding='utf-8-sig', newline='') as outfile:\n",
"\n",
" # Создаем объект reader для чтения CSV с учетом кавычек\n",
" reader = csv.reader(infile, delimiter=',', quotechar='\"')\n",
"\n",
" # Создаем объект writer для записи в новый CSV-файл\n",
" writer = csv.writer(outfile, delimiter=';', quotechar=\"'\", quoting=csv.QUOTE_MINIMAL)\n",
"\n",
" # Проходимся по каждой строке в исходном файле\n",
" for row in reader:\n",
" # Записываем строку в выходной файл\n",
" print(row)\n",
" writer.writerow(row)\n",
"\n",
"print(f\"Данные успешно обработаны и сохранены в {output_file}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "caf7679f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"id": "97cfbd11",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,5 +1,5 @@
# Training params
epoch : 10
epoch : 5
batch_size : 4
num_workers: 8
limit : 5
@ -16,5 +16,5 @@ loss_function :
# Scheduler
scheduler :
name : torch.optim.lr_scheduler.StepLR
gamma : 0.01
step_size : 10
gamma : 0.15
step_size : 3

@ -1,964 +0,0 @@
file_name
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1261.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_333.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_53.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_933.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_81.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_193.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_419.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1440.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_501.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_475.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_981.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_837.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_880.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_150.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1802.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_363.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_360.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_161.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_199.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_43.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1275.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_54.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_833.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_459.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1814.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_338.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_451.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_414.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_968.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_328.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1243.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_64.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_8.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1826.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_444.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_842.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_779.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_847.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1250.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_903.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_455.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_406.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_778.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1341.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_751.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_44.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_511.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_743.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_888.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_497.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1805.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1821.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_194.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_875.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1279.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_25.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_366.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_885.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_912.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_473.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_828.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_740.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_492.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1455.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_97.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1357.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_135.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1292.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1778.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_483.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_493.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_21.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_498.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_973.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_373.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_907.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1380.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1329.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_958.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_860.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_179.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1818.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_49.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_780.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_314.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_951.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1427.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_756.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_400.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_307.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_99.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_89.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1255.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1378.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_389.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_770.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_446.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_437.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_937.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_369.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_883.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_499.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_515.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1372.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_128.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_476.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_915.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1286.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_959.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_61.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_832.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_836.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1823.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1807.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1409.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1245.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_929.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_336.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_433.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1320.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1825.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_935.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1801.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_500.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1309.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_480.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_442.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1267.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_965.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_412.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1405.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1343.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_416.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1411.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_417.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_384.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_116.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_491.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1434.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_733.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1448.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_471.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1780.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1340.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_144.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_126.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_140.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_859.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1333.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_784.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1824.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_5.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_4.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_36.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_908.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_477.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_801.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_466.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_109.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_824.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_825.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_16.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_771.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1373.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1314.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_900.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_404.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_808.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_441.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_435.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_881.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1235.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1306.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_797.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_851.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1307.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_130.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_330.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_826.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_159.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1244.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_149.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_66.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_760.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1812.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1797.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1226.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_308.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1330.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_465.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_753.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_931.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_821.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_205.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_69.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_90.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1442.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1392.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1410.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1456.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_35.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_168.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1257.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_479.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_869.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1384.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_458.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_754.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_984.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_979.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_735.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_325.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1272.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_985.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_834.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1280.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_85.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_884.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1241.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_42.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1274.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1349.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_827.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1396.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_502.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1789.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_899.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1297.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_142.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1352.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1772.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1435.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_844.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_153.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_70.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1777.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1326.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_909.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_157.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1438.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_349.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_204.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_403.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_347.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_861.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1385.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_20.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1822.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_310.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_505.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_858.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_344.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1322.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_445.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_134.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1381.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_852.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_391.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_341.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_960.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_901.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_758.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_831.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_507.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1429.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_486.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1783.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_878.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_132.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_450.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_164.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_320.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_434.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_197.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1369.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_350.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_854.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_12.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_358.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1779.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_313.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_790.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1315.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1360.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_795.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_469.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_764.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1334.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_916.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_38.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_440.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_383.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_180.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1398.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_169.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1449.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_773.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_430.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_806.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_815.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_729.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1236.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_864.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_346.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_944.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_72.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1366.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1246.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_156.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_22.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_182.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_68.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_882.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_106.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_186.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_810.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_436.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_27.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_478.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_848.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1231.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1337.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1324.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_845.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_387.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_438.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_129.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_814.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1239.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_332.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1294.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1444.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_902.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1224.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_18.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_28.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_474.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_971.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1412.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_23.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1262.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_335.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1785.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_898.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1356.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_362.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1443.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_396.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_381.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_13.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_58.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_408.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_51.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_811.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_393.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_65.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1281.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_407.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_490.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1273.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1424.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1269.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1259.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_983.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1790.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1339.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_9.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_113.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_425.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_146.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1225.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1445.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_356.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_399.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1287.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1342.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1382.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_829.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_772.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_865.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_187.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_46.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1348.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1303.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_203.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_911.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_122.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_482.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1419.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_942.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1408.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_820.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_105.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1828.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1436.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_120.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_736.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_429.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1403.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1452.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_467.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1251.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_422.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_319.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_495.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_956.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1776.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_83.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_966.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_781.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_428.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_452.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_37.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_755.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_757.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_30.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_155.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_786.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1389.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_78.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_111.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_809.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_131.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_361.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_782.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1371.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_962.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_928.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1407.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_930.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_463.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1361.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_424.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_394.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1390.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1377.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_472.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_411.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1454.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1238.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1282.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_886.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_812.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1256.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_862.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_787.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1794.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1325.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1432.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1363.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_67.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_76.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1800.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_410.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1816.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_817.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_785.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1304.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_2.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1283.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_59.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_950.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1817.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1295.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_379.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_374.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_192.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_342.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_974.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_73.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_800.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1317.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1383.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1331.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_167.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_891.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_3.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_160.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_201.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1347.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1323.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_513.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_481.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_162.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_896.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_439.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_367.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_506.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_166.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1827.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_206.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1387.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1299.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_910.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_395.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_124.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1451.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_352.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_29.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_857.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_94.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_747.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_202.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_62.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_165.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_955.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_40.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1417.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_10.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_200.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_863.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_151.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_462.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_39.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_976.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_895.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1811.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_55.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_110.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1351.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1300.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1426.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_485.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_34.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1254.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_893.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_191.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_849.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_431.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1242.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_121.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_101.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1420.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_60.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_207.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_119.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_783.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_92.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_748.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_823.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_334.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1370.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_957.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1284.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1365.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1368.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_329.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_514.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_98.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_830.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1804.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_954.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1264.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1414.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_376.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_775.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_388.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_163.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_324.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1327.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1318.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_917.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1290.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_972.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1437.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_26.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_876.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_759.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_918.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_835.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_850.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_32.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_802.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1277.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_74.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_734.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_742.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_977.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_923.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_108.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_327.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_807.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_114.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1319.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_91.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_198.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_813.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_368.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_461.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_796.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_426.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_326.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1421.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1311.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_749.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_19.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1379.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1397.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_453.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_96.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_33.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1271.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_402.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_311.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1345.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_970.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_93.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1815.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_88.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_371.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_767.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_975.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_372.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_938.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_853.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_894.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_79.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_752.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1404.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1353.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_732.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_184.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_323.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_961.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1258.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_792.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_777.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_765.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1316.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_107.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_147.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_804.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_304.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_978.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_762.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_840.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1228.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1232.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1302.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_148.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1792.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_351.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_154.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1313.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_949.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1268.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1781.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_185.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_731.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_741.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1293.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1233.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_138.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_737.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1346.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_488.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1394.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_7.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_927.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_871.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_943.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_941.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_868.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_45.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_468.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_774.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_48.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_919.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1820.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1431.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_504.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1796.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1810.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_353.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_738.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_322.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_82.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1237.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_136.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_87.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_380.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_897.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1400.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_17.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_95.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_143.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_791.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1799.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_924.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_343.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_867.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_872.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_370.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1375.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1247.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1344.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_123.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1406.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_139.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_24.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_874.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1782.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_822.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_102.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1386.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_302.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_0.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_71.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_856.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1321.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_421.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1775.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1430.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_460.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1332.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_873.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1355.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_409.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_397.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_905.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_727.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_117.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_805.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1788.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_398.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1359.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1301.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1252.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1362.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_57.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_420.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_382.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_793.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_127.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1803.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_103.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_879.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_945.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1308.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_798.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_789.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_359.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1358.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1374.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_63.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1376.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_510.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_969.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_494.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_11.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_50.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_375.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1266.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_77.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1447.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1441.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1336.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_443.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_390.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1270.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_803.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_385.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_321.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1439.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_354.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_470.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1401.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_337.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_746.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1248.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_305.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_115.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_75.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_904.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_769.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1457.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_183.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1263.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_331.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_345.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_952.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1249.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_6.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_889.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_31.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1305.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_315.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_750.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_301.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1422.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_137.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1298.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1253.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1230.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_866.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_982.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_364.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_763.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_418.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_348.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_449.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1354.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1388.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1819.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1415.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1291.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_340.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1791.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_925.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_14.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_15.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_41.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_766.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_892.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_788.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_312.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_355.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1829.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1278.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1260.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_946.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1350.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_84.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_306.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_100.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_118.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_52.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_196.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_303.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_181.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1786.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_739.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_309.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1798.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_508.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_152.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_489.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_887.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_794.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_86.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1806.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_843.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_457.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_819.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_768.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1402.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_934.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_838.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_339.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_378.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1335.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_914.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1453.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1425.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1240.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_940.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_846.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_456.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_920.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1423.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_906.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_744.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1793.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_145.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_936.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1310.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1229.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1446.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_487.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_405.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1338.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1393.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1413.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_503.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_730.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_454.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_377.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_728.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_818.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_415.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1328.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_980.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1265.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_447.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_496.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_855.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_745.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_316.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_401.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_816.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_932.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_509.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1296.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1433.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1774.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1809.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_158.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_464.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_761.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1288.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_922.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_413.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_392.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1289.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_141.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_133.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1450.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_967.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_877.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1773.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_125.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_365.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_318.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1367.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_841.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_776.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_178.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1813.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_512.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_953.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1787.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_47.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_926.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1808.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_317.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_484.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_357.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_947.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_839.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1285.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1234.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_799.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1784.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_432.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_56.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1395.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_104.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_870.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_963.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_427.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_423.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1428.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_386.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_913.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1364.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_939.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1416.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1418.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_948.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_112.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_195.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1391.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1795.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_921.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_80.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1312.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1276.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1227.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1399.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_448.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_964.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_890.npy.npy
1 file_name
2 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1261.npy.npy
3 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_333.npy.npy
4 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_53.npy.npy
5 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_933.npy.npy
6 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_81.npy.npy
7 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_193.npy.npy
8 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_419.npy.npy
9 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1440.npy.npy
10 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_501.npy.npy
11 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_475.npy.npy
12 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_981.npy.npy
13 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_837.npy.npy
14 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_880.npy.npy
15 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_150.npy.npy
16 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1802.npy.npy
17 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_363.npy.npy
18 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_360.npy.npy
19 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_161.npy.npy
20 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_199.npy.npy
21 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_43.npy.npy
22 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1275.npy.npy
23 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_54.npy.npy
24 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_833.npy.npy
25 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_459.npy.npy
26 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1814.npy.npy
27 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_338.npy.npy
28 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_451.npy.npy
29 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_414.npy.npy
30 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_968.npy.npy
31 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_328.npy.npy
32 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1243.npy.npy
33 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_64.npy.npy
34 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_8.npy.npy
35 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1826.npy.npy
36 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_444.npy.npy
37 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_842.npy.npy
38 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_779.npy.npy
39 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_847.npy.npy
40 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1250.npy.npy
41 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_903.npy.npy
42 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_455.npy.npy
43 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_406.npy.npy
44 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_778.npy.npy
45 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1341.npy.npy
46 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_751.npy.npy
47 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_44.npy.npy
48 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_511.npy.npy
49 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_743.npy.npy
50 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_888.npy.npy
51 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_497.npy.npy
52 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1805.npy.npy
53 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1821.npy.npy
54 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_194.npy.npy
55 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_875.npy.npy
56 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1279.npy.npy
57 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_25.npy.npy
58 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_366.npy.npy
59 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_885.npy.npy
60 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_912.npy.npy
61 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_473.npy.npy
62 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_828.npy.npy
63 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_740.npy.npy
64 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_492.npy.npy
65 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1455.npy.npy
66 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_97.npy.npy
67 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1357.npy.npy
68 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_135.npy.npy
69 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1292.npy.npy
70 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1778.npy.npy
71 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_483.npy.npy
72 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_493.npy.npy
73 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_21.npy.npy
74 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_498.npy.npy
75 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_973.npy.npy
76 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_373.npy.npy
77 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_907.npy.npy
78 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1380.npy.npy
79 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1329.npy.npy
80 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_958.npy.npy
81 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_860.npy.npy
82 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_179.npy.npy
83 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1818.npy.npy
84 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_49.npy.npy
85 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_780.npy.npy
86 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_314.npy.npy
87 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_951.npy.npy
88 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1427.npy.npy
89 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_756.npy.npy
90 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_400.npy.npy
91 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_307.npy.npy
92 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_99.npy.npy
93 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_89.npy.npy
94 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1255.npy.npy
95 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1378.npy.npy
96 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_389.npy.npy
97 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_770.npy.npy
98 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_446.npy.npy
99 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_437.npy.npy
100 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_937.npy.npy
101 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_369.npy.npy
102 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_883.npy.npy
103 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_499.npy.npy
104 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_515.npy.npy
105 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1372.npy.npy
106 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_128.npy.npy
107 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_476.npy.npy
108 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_915.npy.npy
109 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1286.npy.npy
110 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_959.npy.npy
111 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_61.npy.npy
112 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_832.npy.npy
113 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_836.npy.npy
114 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1823.npy.npy
115 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1807.npy.npy
116 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1409.npy.npy
117 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1245.npy.npy
118 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_929.npy.npy
119 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_336.npy.npy
120 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_433.npy.npy
121 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1320.npy.npy
122 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1825.npy.npy
123 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_935.npy.npy
124 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1801.npy.npy
125 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_500.npy.npy
126 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1309.npy.npy
127 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_480.npy.npy
128 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_442.npy.npy
129 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1267.npy.npy
130 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_965.npy.npy
131 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_412.npy.npy
132 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1405.npy.npy
133 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1343.npy.npy
134 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_416.npy.npy
135 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1411.npy.npy
136 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_417.npy.npy
137 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_384.npy.npy
138 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_116.npy.npy
139 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_491.npy.npy
140 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1434.npy.npy
141 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_733.npy.npy
142 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1448.npy.npy
143 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_471.npy.npy
144 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1780.npy.npy
145 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1340.npy.npy
146 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_144.npy.npy
147 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_126.npy.npy
148 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_140.npy.npy
149 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_859.npy.npy
150 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1333.npy.npy
151 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_784.npy.npy
152 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1824.npy.npy
153 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_5.npy.npy
154 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_4.npy.npy
155 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_36.npy.npy
156 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_908.npy.npy
157 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_477.npy.npy
158 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_801.npy.npy
159 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_466.npy.npy
160 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_109.npy.npy
161 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_824.npy.npy
162 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_825.npy.npy
163 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_16.npy.npy
164 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_771.npy.npy
165 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1373.npy.npy
166 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1314.npy.npy
167 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_900.npy.npy
168 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_404.npy.npy
169 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_808.npy.npy
170 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_441.npy.npy
171 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_435.npy.npy
172 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_881.npy.npy
173 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1235.npy.npy
174 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1306.npy.npy
175 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_797.npy.npy
176 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_851.npy.npy
177 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1307.npy.npy
178 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_130.npy.npy
179 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_330.npy.npy
180 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_826.npy.npy
181 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_159.npy.npy
182 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1244.npy.npy
183 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_149.npy.npy
184 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_66.npy.npy
185 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_760.npy.npy
186 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1812.npy.npy
187 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1797.npy.npy
188 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1226.npy.npy
189 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_308.npy.npy
190 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1330.npy.npy
191 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_465.npy.npy
192 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_753.npy.npy
193 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_931.npy.npy
194 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_821.npy.npy
195 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_205.npy.npy
196 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_69.npy.npy
197 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_90.npy.npy
198 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1442.npy.npy
199 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1392.npy.npy
200 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1410.npy.npy
201 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1456.npy.npy
202 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_35.npy.npy
203 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_168.npy.npy
204 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1257.npy.npy
205 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_479.npy.npy
206 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_869.npy.npy
207 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1384.npy.npy
208 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_458.npy.npy
209 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_754.npy.npy
210 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_984.npy.npy
211 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_979.npy.npy
212 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_735.npy.npy
213 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_325.npy.npy
214 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1272.npy.npy
215 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_985.npy.npy
216 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_834.npy.npy
217 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1280.npy.npy
218 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_85.npy.npy
219 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_884.npy.npy
220 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1241.npy.npy
221 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_42.npy.npy
222 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1274.npy.npy
223 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1349.npy.npy
224 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_827.npy.npy
225 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1396.npy.npy
226 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_502.npy.npy
227 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1789.npy.npy
228 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_899.npy.npy
229 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1297.npy.npy
230 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_142.npy.npy
231 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1352.npy.npy
232 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1772.npy.npy
233 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1435.npy.npy
234 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_844.npy.npy
235 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_153.npy.npy
236 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_70.npy.npy
237 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1777.npy.npy
238 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1326.npy.npy
239 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_909.npy.npy
240 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_157.npy.npy
241 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1438.npy.npy
242 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_349.npy.npy
243 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_204.npy.npy
244 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_403.npy.npy
245 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_347.npy.npy
246 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_861.npy.npy
247 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1385.npy.npy
248 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_20.npy.npy
249 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1822.npy.npy
250 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_310.npy.npy
251 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_505.npy.npy
252 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_858.npy.npy
253 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_344.npy.npy
254 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1322.npy.npy
255 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_445.npy.npy
256 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_134.npy.npy
257 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1381.npy.npy
258 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_852.npy.npy
259 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_391.npy.npy
260 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_341.npy.npy
261 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_960.npy.npy
262 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_901.npy.npy
263 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_758.npy.npy
264 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_831.npy.npy
265 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_507.npy.npy
266 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1429.npy.npy
267 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_486.npy.npy
268 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1783.npy.npy
269 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_878.npy.npy
270 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_132.npy.npy
271 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_450.npy.npy
272 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_164.npy.npy
273 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_320.npy.npy
274 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_434.npy.npy
275 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_197.npy.npy
276 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1369.npy.npy
277 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_350.npy.npy
278 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_854.npy.npy
279 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_12.npy.npy
280 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_358.npy.npy
281 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1779.npy.npy
282 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_313.npy.npy
283 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_790.npy.npy
284 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1315.npy.npy
285 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1360.npy.npy
286 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_795.npy.npy
287 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_469.npy.npy
288 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_764.npy.npy
289 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1334.npy.npy
290 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_916.npy.npy
291 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_38.npy.npy
292 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_440.npy.npy
293 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_383.npy.npy
294 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_180.npy.npy
295 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1398.npy.npy
296 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_169.npy.npy
297 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1449.npy.npy
298 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_773.npy.npy
299 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_430.npy.npy
300 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_806.npy.npy
301 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_815.npy.npy
302 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_729.npy.npy
303 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1236.npy.npy
304 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_864.npy.npy
305 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_346.npy.npy
306 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_944.npy.npy
307 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_72.npy.npy
308 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1366.npy.npy
309 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1246.npy.npy
310 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_156.npy.npy
311 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_22.npy.npy
312 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_182.npy.npy
313 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_68.npy.npy
314 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_882.npy.npy
315 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_106.npy.npy
316 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_186.npy.npy
317 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_810.npy.npy
318 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_436.npy.npy
319 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_27.npy.npy
320 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_478.npy.npy
321 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_848.npy.npy
322 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1231.npy.npy
323 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1337.npy.npy
324 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1324.npy.npy
325 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_845.npy.npy
326 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_387.npy.npy
327 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_438.npy.npy
328 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_129.npy.npy
329 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_814.npy.npy
330 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1239.npy.npy
331 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_332.npy.npy
332 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1294.npy.npy
333 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1444.npy.npy
334 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_902.npy.npy
335 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1224.npy.npy
336 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_18.npy.npy
337 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_28.npy.npy
338 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_474.npy.npy
339 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_971.npy.npy
340 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1412.npy.npy
341 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_23.npy.npy
342 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1262.npy.npy
343 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_335.npy.npy
344 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1785.npy.npy
345 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_898.npy.npy
346 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1356.npy.npy
347 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_362.npy.npy
348 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1443.npy.npy
349 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_396.npy.npy
350 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_381.npy.npy
351 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_13.npy.npy
352 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_58.npy.npy
353 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_408.npy.npy
354 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_51.npy.npy
355 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_811.npy.npy
356 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_393.npy.npy
357 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_65.npy.npy
358 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1281.npy.npy
359 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_407.npy.npy
360 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_490.npy.npy
361 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1273.npy.npy
362 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1424.npy.npy
363 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1269.npy.npy
364 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1259.npy.npy
365 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_983.npy.npy
366 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1790.npy.npy
367 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1339.npy.npy
368 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_9.npy.npy
369 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_113.npy.npy
370 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_425.npy.npy
371 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_146.npy.npy
372 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1225.npy.npy
373 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1445.npy.npy
374 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_356.npy.npy
375 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_399.npy.npy
376 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1287.npy.npy
377 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1342.npy.npy
378 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1382.npy.npy
379 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_829.npy.npy
380 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_772.npy.npy
381 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_865.npy.npy
382 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_187.npy.npy
383 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_46.npy.npy
384 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1348.npy.npy
385 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1303.npy.npy
386 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_203.npy.npy
387 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_911.npy.npy
388 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_122.npy.npy
389 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_482.npy.npy
390 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1419.npy.npy
391 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_942.npy.npy
392 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1408.npy.npy
393 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_820.npy.npy
394 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_105.npy.npy
395 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1828.npy.npy
396 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1436.npy.npy
397 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_120.npy.npy
398 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_736.npy.npy
399 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_429.npy.npy
400 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1403.npy.npy
401 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1452.npy.npy
402 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_467.npy.npy
403 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1251.npy.npy
404 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_422.npy.npy
405 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_319.npy.npy
406 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_495.npy.npy
407 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_956.npy.npy
408 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1776.npy.npy
409 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_83.npy.npy
410 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_966.npy.npy
411 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_781.npy.npy
412 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_428.npy.npy
413 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_452.npy.npy
414 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_37.npy.npy
415 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_755.npy.npy
416 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_757.npy.npy
417 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_30.npy.npy
418 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_155.npy.npy
419 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_786.npy.npy
420 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1389.npy.npy
421 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_78.npy.npy
422 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_111.npy.npy
423 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_809.npy.npy
424 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_131.npy.npy
425 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_361.npy.npy
426 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_782.npy.npy
427 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1371.npy.npy
428 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_962.npy.npy
429 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_928.npy.npy
430 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1407.npy.npy
431 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_930.npy.npy
432 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_463.npy.npy
433 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1361.npy.npy
434 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_424.npy.npy
435 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_394.npy.npy
436 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1390.npy.npy
437 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1377.npy.npy
438 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_472.npy.npy
439 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_411.npy.npy
440 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1454.npy.npy
441 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1238.npy.npy
442 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1282.npy.npy
443 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_886.npy.npy
444 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_812.npy.npy
445 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1256.npy.npy
446 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_862.npy.npy
447 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_787.npy.npy
448 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1794.npy.npy
449 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1325.npy.npy
450 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1432.npy.npy
451 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1363.npy.npy
452 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_67.npy.npy
453 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_76.npy.npy
454 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1800.npy.npy
455 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_410.npy.npy
456 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1816.npy.npy
457 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_817.npy.npy
458 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_785.npy.npy
459 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1304.npy.npy
460 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_2.npy.npy
461 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1283.npy.npy
462 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_59.npy.npy
463 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_950.npy.npy
464 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1817.npy.npy
465 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1295.npy.npy
466 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_379.npy.npy
467 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_374.npy.npy
468 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_192.npy.npy
469 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_342.npy.npy
470 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_974.npy.npy
471 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_73.npy.npy
472 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_800.npy.npy
473 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1317.npy.npy
474 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1383.npy.npy
475 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1331.npy.npy
476 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_167.npy.npy
477 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_891.npy.npy
478 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_3.npy.npy
479 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_160.npy.npy
480 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_201.npy.npy
481 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1347.npy.npy
482 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1323.npy.npy
483 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_513.npy.npy
484 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_481.npy.npy
485 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_162.npy.npy
486 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_896.npy.npy
487 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_439.npy.npy
488 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_367.npy.npy
489 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_506.npy.npy
490 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_166.npy.npy
491 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1827.npy.npy
492 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_206.npy.npy
493 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1387.npy.npy
494 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1299.npy.npy
495 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_910.npy.npy
496 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_395.npy.npy
497 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_124.npy.npy
498 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1451.npy.npy
499 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_352.npy.npy
500 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_29.npy.npy
501 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_857.npy.npy
502 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_94.npy.npy
503 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_747.npy.npy
504 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_202.npy.npy
505 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_62.npy.npy
506 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_165.npy.npy
507 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_955.npy.npy
508 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_40.npy.npy
509 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1417.npy.npy
510 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_10.npy.npy
511 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_200.npy.npy
512 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_863.npy.npy
513 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_151.npy.npy
514 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_462.npy.npy
515 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_39.npy.npy
516 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_976.npy.npy
517 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_895.npy.npy
518 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1811.npy.npy
519 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_55.npy.npy
520 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_110.npy.npy
521 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1351.npy.npy
522 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1300.npy.npy
523 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1426.npy.npy
524 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_485.npy.npy
525 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_34.npy.npy
526 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1254.npy.npy
527 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_893.npy.npy
528 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_191.npy.npy
529 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_849.npy.npy
530 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_431.npy.npy
531 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1242.npy.npy
532 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_121.npy.npy
533 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_101.npy.npy
534 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1420.npy.npy
535 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_60.npy.npy
536 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_207.npy.npy
537 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_119.npy.npy
538 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_783.npy.npy
539 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_92.npy.npy
540 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_748.npy.npy
541 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_823.npy.npy
542 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_334.npy.npy
543 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1370.npy.npy
544 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_957.npy.npy
545 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1284.npy.npy
546 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1365.npy.npy
547 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1368.npy.npy
548 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_329.npy.npy
549 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_514.npy.npy
550 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_98.npy.npy
551 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_830.npy.npy
552 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1804.npy.npy
553 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_954.npy.npy
554 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1264.npy.npy
555 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1414.npy.npy
556 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_376.npy.npy
557 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_775.npy.npy
558 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_388.npy.npy
559 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_163.npy.npy
560 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_324.npy.npy
561 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1327.npy.npy
562 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1318.npy.npy
563 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_917.npy.npy
564 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1290.npy.npy
565 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_972.npy.npy
566 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1437.npy.npy
567 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_26.npy.npy
568 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_876.npy.npy
569 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_759.npy.npy
570 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_918.npy.npy
571 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_835.npy.npy
572 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_850.npy.npy
573 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_32.npy.npy
574 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_802.npy.npy
575 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1277.npy.npy
576 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_74.npy.npy
577 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_734.npy.npy
578 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_742.npy.npy
579 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_977.npy.npy
580 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_923.npy.npy
581 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_108.npy.npy
582 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_327.npy.npy
583 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_807.npy.npy
584 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_114.npy.npy
585 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1319.npy.npy
586 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_91.npy.npy
587 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_198.npy.npy
588 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_813.npy.npy
589 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_368.npy.npy
590 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_461.npy.npy
591 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_796.npy.npy
592 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_426.npy.npy
593 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_326.npy.npy
594 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1421.npy.npy
595 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1311.npy.npy
596 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_749.npy.npy
597 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_19.npy.npy
598 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1379.npy.npy
599 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1397.npy.npy
600 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_453.npy.npy
601 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_96.npy.npy
602 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_33.npy.npy
603 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1271.npy.npy
604 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_402.npy.npy
605 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_311.npy.npy
606 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1345.npy.npy
607 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_970.npy.npy
608 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_93.npy.npy
609 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1815.npy.npy
610 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_88.npy.npy
611 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_371.npy.npy
612 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_767.npy.npy
613 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_975.npy.npy
614 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_372.npy.npy
615 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_938.npy.npy
616 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_853.npy.npy
617 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_894.npy.npy
618 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_79.npy.npy
619 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_752.npy.npy
620 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1404.npy.npy
621 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1353.npy.npy
622 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_732.npy.npy
623 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_184.npy.npy
624 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_323.npy.npy
625 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_961.npy.npy
626 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1258.npy.npy
627 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_792.npy.npy
628 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_777.npy.npy
629 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_765.npy.npy
630 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1316.npy.npy
631 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_107.npy.npy
632 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_147.npy.npy
633 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_804.npy.npy
634 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_304.npy.npy
635 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_978.npy.npy
636 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_762.npy.npy
637 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_840.npy.npy
638 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1228.npy.npy
639 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1232.npy.npy
640 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1302.npy.npy
641 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_148.npy.npy
642 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1792.npy.npy
643 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_351.npy.npy
644 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_154.npy.npy
645 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1313.npy.npy
646 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_949.npy.npy
647 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1268.npy.npy
648 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1781.npy.npy
649 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_185.npy.npy
650 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_731.npy.npy
651 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_741.npy.npy
652 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1293.npy.npy
653 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1233.npy.npy
654 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_138.npy.npy
655 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_737.npy.npy
656 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1346.npy.npy
657 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_488.npy.npy
658 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1394.npy.npy
659 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_7.npy.npy
660 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_927.npy.npy
661 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_871.npy.npy
662 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_943.npy.npy
663 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_941.npy.npy
664 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_868.npy.npy
665 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_45.npy.npy
666 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_468.npy.npy
667 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_774.npy.npy
668 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_48.npy.npy
669 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_919.npy.npy
670 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1820.npy.npy
671 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1431.npy.npy
672 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_504.npy.npy
673 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1796.npy.npy
674 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1810.npy.npy
675 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_353.npy.npy
676 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_738.npy.npy
677 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_322.npy.npy
678 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_82.npy.npy
679 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1237.npy.npy
680 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_136.npy.npy
681 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_87.npy.npy
682 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_380.npy.npy
683 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_897.npy.npy
684 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1400.npy.npy
685 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_17.npy.npy
686 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_95.npy.npy
687 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_143.npy.npy
688 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_791.npy.npy
689 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1799.npy.npy
690 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_924.npy.npy
691 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_343.npy.npy
692 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_867.npy.npy
693 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_872.npy.npy
694 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_370.npy.npy
695 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1375.npy.npy
696 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1247.npy.npy
697 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1344.npy.npy
698 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_123.npy.npy
699 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1406.npy.npy
700 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_139.npy.npy
701 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_24.npy.npy
702 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_874.npy.npy
703 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1782.npy.npy
704 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_822.npy.npy
705 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_102.npy.npy
706 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1386.npy.npy
707 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_302.npy.npy
708 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_0.npy.npy
709 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_71.npy.npy
710 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_856.npy.npy
711 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1321.npy.npy
712 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_421.npy.npy
713 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1775.npy.npy
714 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1430.npy.npy
715 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_460.npy.npy
716 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1332.npy.npy
717 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_873.npy.npy
718 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1355.npy.npy
719 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_409.npy.npy
720 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_397.npy.npy
721 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_905.npy.npy
722 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_727.npy.npy
723 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_117.npy.npy
724 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_805.npy.npy
725 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1788.npy.npy
726 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_398.npy.npy
727 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1359.npy.npy
728 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1301.npy.npy
729 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1252.npy.npy
730 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1362.npy.npy
731 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_57.npy.npy
732 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_420.npy.npy
733 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_382.npy.npy
734 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_793.npy.npy
735 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_127.npy.npy
736 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1803.npy.npy
737 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_103.npy.npy
738 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_879.npy.npy
739 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_945.npy.npy
740 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1308.npy.npy
741 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_798.npy.npy
742 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_789.npy.npy
743 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_359.npy.npy
744 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1358.npy.npy
745 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1374.npy.npy
746 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_63.npy.npy
747 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1376.npy.npy
748 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_510.npy.npy
749 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_969.npy.npy
750 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_494.npy.npy
751 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_11.npy.npy
752 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_50.npy.npy
753 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_375.npy.npy
754 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1266.npy.npy
755 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_77.npy.npy
756 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1447.npy.npy
757 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1441.npy.npy
758 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1336.npy.npy
759 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_443.npy.npy
760 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_390.npy.npy
761 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1270.npy.npy
762 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_803.npy.npy
763 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_385.npy.npy
764 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_321.npy.npy
765 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1439.npy.npy
766 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_354.npy.npy
767 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_470.npy.npy
768 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1401.npy.npy
769 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_337.npy.npy
770 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_746.npy.npy
771 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1248.npy.npy
772 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_305.npy.npy
773 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_115.npy.npy
774 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_75.npy.npy
775 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_904.npy.npy
776 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_769.npy.npy
777 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1457.npy.npy
778 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_183.npy.npy
779 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1263.npy.npy
780 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_331.npy.npy
781 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_345.npy.npy
782 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_952.npy.npy
783 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1249.npy.npy
784 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_6.npy.npy
785 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_889.npy.npy
786 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_31.npy.npy
787 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1305.npy.npy
788 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_315.npy.npy
789 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_750.npy.npy
790 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_301.npy.npy
791 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1422.npy.npy
792 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_137.npy.npy
793 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1298.npy.npy
794 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1253.npy.npy
795 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1230.npy.npy
796 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_866.npy.npy
797 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_982.npy.npy
798 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_364.npy.npy
799 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_763.npy.npy
800 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_418.npy.npy
801 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1.npy.npy
802 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_348.npy.npy
803 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_449.npy.npy
804 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1354.npy.npy
805 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1388.npy.npy
806 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1819.npy.npy
807 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1415.npy.npy
808 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1291.npy.npy
809 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_340.npy.npy
810 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1791.npy.npy
811 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_925.npy.npy
812 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_14.npy.npy
813 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_15.npy.npy
814 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_41.npy.npy
815 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_766.npy.npy
816 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_892.npy.npy
817 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_788.npy.npy
818 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_312.npy.npy
819 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_355.npy.npy
820 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1829.npy.npy
821 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1278.npy.npy
822 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1260.npy.npy
823 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_946.npy.npy
824 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1350.npy.npy
825 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_84.npy.npy
826 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_306.npy.npy
827 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_100.npy.npy
828 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_118.npy.npy
829 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_52.npy.npy
830 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_196.npy.npy
831 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_303.npy.npy
832 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_181.npy.npy
833 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1786.npy.npy
834 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_739.npy.npy
835 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_309.npy.npy
836 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1798.npy.npy
837 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_508.npy.npy
838 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_152.npy.npy
839 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_489.npy.npy
840 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_887.npy.npy
841 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_794.npy.npy
842 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_86.npy.npy
843 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1806.npy.npy
844 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_843.npy.npy
845 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_457.npy.npy
846 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_819.npy.npy
847 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_768.npy.npy
848 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1402.npy.npy
849 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_934.npy.npy
850 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_838.npy.npy
851 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_339.npy.npy
852 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_378.npy.npy
853 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1335.npy.npy
854 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_914.npy.npy
855 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1453.npy.npy
856 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1425.npy.npy
857 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1240.npy.npy
858 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_940.npy.npy
859 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_846.npy.npy
860 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_456.npy.npy
861 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_920.npy.npy
862 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1423.npy.npy
863 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_906.npy.npy
864 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_744.npy.npy
865 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1793.npy.npy
866 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_145.npy.npy
867 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_936.npy.npy
868 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1310.npy.npy
869 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1229.npy.npy
870 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1446.npy.npy
871 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_487.npy.npy
872 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_405.npy.npy
873 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1338.npy.npy
874 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1393.npy.npy
875 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1413.npy.npy
876 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_503.npy.npy
877 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_730.npy.npy
878 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_454.npy.npy
879 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_377.npy.npy
880 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_728.npy.npy
881 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_818.npy.npy
882 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_415.npy.npy
883 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1328.npy.npy
884 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_980.npy.npy
885 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1265.npy.npy
886 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_447.npy.npy
887 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_496.npy.npy
888 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_855.npy.npy
889 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_745.npy.npy
890 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_316.npy.npy
891 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_401.npy.npy
892 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_816.npy.npy
893 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_932.npy.npy
894 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_509.npy.npy
895 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1296.npy.npy
896 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1433.npy.npy
897 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1774.npy.npy
898 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1809.npy.npy
899 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_158.npy.npy
900 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_464.npy.npy
901 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_761.npy.npy
902 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1288.npy.npy
903 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_922.npy.npy
904 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_413.npy.npy
905 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_392.npy.npy
906 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1289.npy.npy
907 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_141.npy.npy
908 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_133.npy.npy
909 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1450.npy.npy
910 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_967.npy.npy
911 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_877.npy.npy
912 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1773.npy.npy
913 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_125.npy.npy
914 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_365.npy.npy
915 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_318.npy.npy
916 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1367.npy.npy
917 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_841.npy.npy
918 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_776.npy.npy
919 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_178.npy.npy
920 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1813.npy.npy
921 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_512.npy.npy
922 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_953.npy.npy
923 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1787.npy.npy
924 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_47.npy.npy
925 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_926.npy.npy
926 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1808.npy.npy
927 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_317.npy.npy
928 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_484.npy.npy
929 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_357.npy.npy
930 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_947.npy.npy
931 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_839.npy.npy
932 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1285.npy.npy
933 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1234.npy.npy
934 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_799.npy.npy
935 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1784.npy.npy
936 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_432.npy.npy
937 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_56.npy.npy
938 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1395.npy.npy
939 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_104.npy.npy
940 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_870.npy.npy
941 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_963.npy.npy
942 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_427.npy.npy
943 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_423.npy.npy
944 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1428.npy.npy
945 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_386.npy.npy
946 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_913.npy.npy
947 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1364.npy.npy
948 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_939.npy.npy
949 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1416.npy.npy
950 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1418.npy.npy
951 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_948.npy.npy
952 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_112.npy.npy
953 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_195.npy.npy
954 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1391.npy.npy
955 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1795.npy.npy
956 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_921.npy.npy
957 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_80.npy.npy
958 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1312.npy.npy
959 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1276.npy.npy
960 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1227.npy.npy
961 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1399.npy.npy
962 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_448.npy.npy
963 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_964.npy.npy
964 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_890.npy.npy

@ -1,964 +0,0 @@
file_name
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1258.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_890.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1780.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_362.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_166.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_754.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_780.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1401.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1811.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_854.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_178.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1804.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_818.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_441.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_372.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_333.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1304.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1799.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_428.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_506.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_163.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_497.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1411.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_425.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_459.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1358.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_482.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_968.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1337.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_496.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_842.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1353.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_808.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_90.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_961.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_128.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_32.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_474.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_918.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_738.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_964.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_135.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_744.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_883.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_162.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_316.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1395.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1280.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_764.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_866.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_835.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_479.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_783.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_151.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_838.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_779.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_909.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1237.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_943.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_156.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_311.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_8.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_806.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_402.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_481.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_962.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_50.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_819.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_421.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1447.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_200.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1362.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1446.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_805.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_832.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_14.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_13.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1373.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_371.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_515.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1444.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_797.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_326.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_929.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_180.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_917.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_955.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_827.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1805.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_184.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1386.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_21.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1440.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_420.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_795.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_345.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_504.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_114.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_375.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_383.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_954.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_355.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_849.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_817.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1292.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_386.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_191.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_467.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1414.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1404.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_824.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1775.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_946.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_739.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_36.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1308.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_382.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_462.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_123.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_390.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_387.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1807.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1406.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_353.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_446.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_912.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1423.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_951.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_429.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_887.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_937.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1824.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_830.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_348.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_424.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1431.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_380.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1393.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_131.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1230.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_411.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1227.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_320.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_899.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1416.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_67.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_182.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_907.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_765.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_406.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_939.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1425.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_352.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_126.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_15.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1343.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_407.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1409.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_748.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_72.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_106.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_816.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_511.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_392.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1823.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_360.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_404.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1389.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_92.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1275.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1364.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1336.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_882.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1298.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_31.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1817.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_510.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_144.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_314.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1347.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_330.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1344.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_760.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1787.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1399.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_306.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_388.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1369.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_44.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_729.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_340.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1809.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_98.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_80.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1352.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_847.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_139.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_401.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_47.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_860.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1436.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_821.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1428.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_397.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_449.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_329.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_845.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_99.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_39.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1786.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_303.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1357.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1360.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1264.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_447.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_746.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1410.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1330.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1814.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_75.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_958.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_349.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1417.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_494.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_53.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_960.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1225.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_86.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1795.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_919.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_37.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_452.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_498.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_859.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_341.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_57.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_444.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_136.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_507.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_508.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_374.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_395.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_898.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_980.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_485.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_42.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_851.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1327.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1350.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_470.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1276.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_204.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_321.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_758.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_920.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_83.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_34.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_186.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_776.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1248.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_751.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_207.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_130.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_502.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_38.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_361.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_736.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1260.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_886.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_196.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_367.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_158.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_319.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1412.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_179.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_843.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_796.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1351.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_74.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_430.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_893.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_500.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_159.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1813.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_801.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_873.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1374.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_152.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_51.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1449.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_343.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_62.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1290.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_30.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1398.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1456.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_941.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_9.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_458.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_59.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_837.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_435.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_307.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_120.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_793.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_60.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1257.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_185.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_457.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_503.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1403.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_804.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1437.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1310.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_85.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_305.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_150.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_137.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_863.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_985.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_2.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_836.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1300.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_164.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_813.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_768.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_865.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_913.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_318.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1778.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1287.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_914.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_923.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1822.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_756.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_488.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_512.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1796.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1321.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1777.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_111.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1311.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1421.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_761.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1808.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_16.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_869.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1328.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1326.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_398.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_461.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_23.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_875.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_168.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_433.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1251.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_921.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_165.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1812.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_928.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_335.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_133.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1235.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_342.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1245.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_456.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_489.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_115.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_463.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_143.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_149.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1323.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_206.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1791.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1241.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_978.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_325.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_877.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_472.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_774.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_902.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_938.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_377.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1246.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_358.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1265.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1453.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_740.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_499.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1319.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1450.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_925.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_426.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1256.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_922.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1429.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1296.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_789.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_142.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_187.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_45.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_413.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_916.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_49.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_391.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_0.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_181.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_91.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_344.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1339.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_61.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1826.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_731.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1402.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1806.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_769.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1281.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_192.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_28.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_116.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1259.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_312.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_417.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_811.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_369.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_767.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_448.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_932.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1232.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_743.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1371.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_895.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_434.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_878.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1419.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_427.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1819.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1262.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_466.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1366.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_905.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1438.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_778.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_455.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_880.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1427.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_927.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1242.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_495.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1443.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_953.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1375.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1789.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_112.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_834.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1279.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_96.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_803.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1293.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1228.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1354.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1334.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_867.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_831.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_442.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_464.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1377.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_966.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1372.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_889.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_897.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_40.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_900.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_101.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_825.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_436.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_22.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_408.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1829.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_965.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_117.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_65.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_840.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_812.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1324.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1783.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_122.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1305.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1793.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_393.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_844.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_105.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_205.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_41.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_826.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_766.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_940.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1828.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_981.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1779.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1396.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_141.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_302.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1384.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_87.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_203.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_876.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_104.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_734.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_870.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_460.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_25.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1413.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_107.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_926.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_815.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_450.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1773.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_437.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1782.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_931.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1294.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_351.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_947.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_888.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_728.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_422.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_118.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_157.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_147.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_901.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_95.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_792.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1355.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_416.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_19.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_791.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1238.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_892.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_17.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_759.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_983.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_93.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_509.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_109.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1239.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_800.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1309.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1359.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_755.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_957.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_322.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_952.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_84.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_129.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_119.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1333.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1307.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_323.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1397.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1253.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_451.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_752.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1381.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1435.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_100.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1442.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_194.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1340.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1301.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_338.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_195.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1229.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_378.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1394.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_486.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_833.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1408.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_385.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_346.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_747.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1289.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1451.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1233.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_336.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1356.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_948.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_20.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1269.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_959.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1317.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1341.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_807.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_58.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_52.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_432.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_839.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1422.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_782.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1801.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1810.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_313.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_33.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1297.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_443.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_331.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1378.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_125.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1342.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_27.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1430.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1790.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_862.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1338.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1254.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_477.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1426.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_492.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_872.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_820.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_110.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1236.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_868.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1348.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_772.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_108.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1303.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_737.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_405.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_423.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_794.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_394.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1313.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_970.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_77.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1452.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_790.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_483.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_82.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_490.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_121.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1800.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1792.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1325.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1306.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_359.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1277.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_484.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_468.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_410.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_160.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1231.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_473.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_493.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_809.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_858.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_373.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_788.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_969.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_911.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_802.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_975.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_846.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1434.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_94.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1244.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_950.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_505.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1240.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1424.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_69.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_379.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_749.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_885.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_71.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_10.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_350.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_376.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_810.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_967.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_347.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_785.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_370.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1314.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_140.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_852.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_848.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_487.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_54.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_24.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1266.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_148.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_763.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1252.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_798.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_29.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_97.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1335.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1415.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_88.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_841.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1827.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_183.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_514.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_963.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1433.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_727.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1295.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_202.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1255.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_735.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_786.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_480.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1250.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_366.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_414.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_103.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1349.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1261.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1391.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_364.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_363.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_56.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1286.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1267.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_879.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1785.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_864.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1821.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_12.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1263.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_5.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1322.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_770.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_412.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_368.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1400.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_757.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1802.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_935.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_155.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1302.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_43.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1316.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_742.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_339.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_146.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_18.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_198.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1270.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_134.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_73.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1818.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_857.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_979.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1383.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_933.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1272.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1284.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_903.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_357.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_945.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_465.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_356.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_400.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1291.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_419.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1772.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1388.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1318.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1346.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1370.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_773.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_891.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_332.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_127.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1788.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_750.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1382.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_384.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1420.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_753.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1249.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_102.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_7.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1278.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1361.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1455.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1784.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_781.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_822.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_469.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_762.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_874.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_324.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1243.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_984.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1224.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_775.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_396.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1407.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_942.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_310.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1331.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_513.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_501.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_894.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_930.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_491.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1797.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_169.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_476.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_977.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_46.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1815.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_777.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_944.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1441.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_973.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1798.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_881.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_850.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_915.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_853.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_787.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1376.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1320.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_6.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_956.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_55.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_328.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_855.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_784.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1445.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1803.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_949.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1329.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_884.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_403.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_138.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1345.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_68.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_389.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_445.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_934.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1282.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_301.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_936.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1439.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1283.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1781.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_478.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_828.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_733.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_365.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1271.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1299.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_418.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1363.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1457.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_3.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_317.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_315.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_475.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1454.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_76.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_193.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1268.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_337.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_976.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_908.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_48.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_124.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1332.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_26.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_896.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_910.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1387.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_439.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1367.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1226.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_145.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_167.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1448.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_354.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1390.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_70.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1273.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1288.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1405.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_201.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_982.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_829.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_906.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_64.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_304.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1825.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_161.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_741.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_924.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_113.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1432.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_399.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_4.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_454.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_814.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_972.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_861.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1774.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1368.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1315.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_199.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1794.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1274.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_89.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_381.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_153.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1380.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_81.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1385.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_440.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1816.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1418.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_904.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_823.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1379.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_799.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_732.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1285.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_308.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_154.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_11.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_438.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_309.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_415.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1365.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1247.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_856.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_453.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_971.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1820.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_431.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_471.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_197.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1776.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_409.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_327.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_66.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1234.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_771.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_35.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_132.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_974.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_871.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_334.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_78.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1312.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_745.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_79.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1392.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_730.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_63.npy.npy
1 file_name
2 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1258.npy.npy
3 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_890.npy.npy
4 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1780.npy.npy
5 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_362.npy.npy
6 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_166.npy.npy
7 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_754.npy.npy
8 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_780.npy.npy
9 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1401.npy.npy
10 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1811.npy.npy
11 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_854.npy.npy
12 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_178.npy.npy
13 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1804.npy.npy
14 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_818.npy.npy
15 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_441.npy.npy
16 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_372.npy.npy
17 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_333.npy.npy
18 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1304.npy.npy
19 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1799.npy.npy
20 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_428.npy.npy
21 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_506.npy.npy
22 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_163.npy.npy
23 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_497.npy.npy
24 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1411.npy.npy
25 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_425.npy.npy
26 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_459.npy.npy
27 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1358.npy.npy
28 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_482.npy.npy
29 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_968.npy.npy
30 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1337.npy.npy
31 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_496.npy.npy
32 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_842.npy.npy
33 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1353.npy.npy
34 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_808.npy.npy
35 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_90.npy.npy
36 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_961.npy.npy
37 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_128.npy.npy
38 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_32.npy.npy
39 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_474.npy.npy
40 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_918.npy.npy
41 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_738.npy.npy
42 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_964.npy.npy
43 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_135.npy.npy
44 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_744.npy.npy
45 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_883.npy.npy
46 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_162.npy.npy
47 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_316.npy.npy
48 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1395.npy.npy
49 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1280.npy.npy
50 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_764.npy.npy
51 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_866.npy.npy
52 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_835.npy.npy
53 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_479.npy.npy
54 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_783.npy.npy
55 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_151.npy.npy
56 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_838.npy.npy
57 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_779.npy.npy
58 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_909.npy.npy
59 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1237.npy.npy
60 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_943.npy.npy
61 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_156.npy.npy
62 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_311.npy.npy
63 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_8.npy.npy
64 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_806.npy.npy
65 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_402.npy.npy
66 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_481.npy.npy
67 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_962.npy.npy
68 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_50.npy.npy
69 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_819.npy.npy
70 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_421.npy.npy
71 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1447.npy.npy
72 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_200.npy.npy
73 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1362.npy.npy
74 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1446.npy.npy
75 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_805.npy.npy
76 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_832.npy.npy
77 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_14.npy.npy
78 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_13.npy.npy
79 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1373.npy.npy
80 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_371.npy.npy
81 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_515.npy.npy
82 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1444.npy.npy
83 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_797.npy.npy
84 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_326.npy.npy
85 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_929.npy.npy
86 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_180.npy.npy
87 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_917.npy.npy
88 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_955.npy.npy
89 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_827.npy.npy
90 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1805.npy.npy
91 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_184.npy.npy
92 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1386.npy.npy
93 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_21.npy.npy
94 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1440.npy.npy
95 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_420.npy.npy
96 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_795.npy.npy
97 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_345.npy.npy
98 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_504.npy.npy
99 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_114.npy.npy
100 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_375.npy.npy
101 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_383.npy.npy
102 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_954.npy.npy
103 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_355.npy.npy
104 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1.npy.npy
105 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_849.npy.npy
106 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_817.npy.npy
107 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1292.npy.npy
108 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_386.npy.npy
109 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_191.npy.npy
110 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_467.npy.npy
111 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1414.npy.npy
112 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1404.npy.npy
113 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_824.npy.npy
114 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1775.npy.npy
115 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_946.npy.npy
116 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_739.npy.npy
117 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_36.npy.npy
118 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1308.npy.npy
119 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_382.npy.npy
120 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_462.npy.npy
121 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_123.npy.npy
122 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_390.npy.npy
123 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_387.npy.npy
124 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1807.npy.npy
125 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1406.npy.npy
126 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_353.npy.npy
127 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_446.npy.npy
128 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_912.npy.npy
129 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1423.npy.npy
130 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_951.npy.npy
131 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_429.npy.npy
132 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_887.npy.npy
133 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_937.npy.npy
134 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1824.npy.npy
135 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_830.npy.npy
136 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_348.npy.npy
137 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_424.npy.npy
138 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1431.npy.npy
139 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_380.npy.npy
140 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1393.npy.npy
141 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_131.npy.npy
142 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1230.npy.npy
143 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_411.npy.npy
144 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1227.npy.npy
145 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_320.npy.npy
146 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_899.npy.npy
147 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1416.npy.npy
148 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_67.npy.npy
149 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_182.npy.npy
150 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_907.npy.npy
151 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_765.npy.npy
152 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_406.npy.npy
153 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_939.npy.npy
154 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1425.npy.npy
155 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_352.npy.npy
156 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_126.npy.npy
157 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_15.npy.npy
158 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1343.npy.npy
159 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_407.npy.npy
160 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1409.npy.npy
161 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_748.npy.npy
162 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_72.npy.npy
163 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_106.npy.npy
164 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_816.npy.npy
165 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_511.npy.npy
166 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_392.npy.npy
167 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1823.npy.npy
168 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_360.npy.npy
169 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_404.npy.npy
170 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1389.npy.npy
171 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_92.npy.npy
172 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1275.npy.npy
173 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1364.npy.npy
174 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1336.npy.npy
175 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_882.npy.npy
176 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1298.npy.npy
177 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_31.npy.npy
178 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1817.npy.npy
179 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_510.npy.npy
180 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_144.npy.npy
181 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_314.npy.npy
182 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1347.npy.npy
183 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_330.npy.npy
184 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1344.npy.npy
185 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_760.npy.npy
186 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1787.npy.npy
187 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1399.npy.npy
188 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_306.npy.npy
189 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_388.npy.npy
190 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1369.npy.npy
191 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_44.npy.npy
192 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_729.npy.npy
193 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_340.npy.npy
194 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1809.npy.npy
195 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_98.npy.npy
196 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_80.npy.npy
197 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1352.npy.npy
198 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_847.npy.npy
199 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_139.npy.npy
200 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_401.npy.npy
201 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_47.npy.npy
202 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_860.npy.npy
203 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1436.npy.npy
204 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_821.npy.npy
205 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1428.npy.npy
206 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_397.npy.npy
207 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_449.npy.npy
208 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_329.npy.npy
209 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_845.npy.npy
210 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_99.npy.npy
211 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_39.npy.npy
212 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1786.npy.npy
213 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_303.npy.npy
214 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1357.npy.npy
215 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1360.npy.npy
216 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1264.npy.npy
217 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_447.npy.npy
218 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_746.npy.npy
219 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1410.npy.npy
220 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1330.npy.npy
221 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1814.npy.npy
222 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_75.npy.npy
223 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_958.npy.npy
224 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_349.npy.npy
225 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1417.npy.npy
226 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_494.npy.npy
227 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_53.npy.npy
228 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_960.npy.npy
229 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1225.npy.npy
230 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_86.npy.npy
231 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1795.npy.npy
232 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_919.npy.npy
233 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_37.npy.npy
234 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_452.npy.npy
235 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_498.npy.npy
236 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_859.npy.npy
237 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_341.npy.npy
238 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_57.npy.npy
239 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_444.npy.npy
240 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_136.npy.npy
241 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_507.npy.npy
242 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_508.npy.npy
243 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_374.npy.npy
244 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_395.npy.npy
245 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_898.npy.npy
246 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_980.npy.npy
247 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_485.npy.npy
248 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_42.npy.npy
249 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_851.npy.npy
250 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1327.npy.npy
251 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1350.npy.npy
252 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_470.npy.npy
253 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1276.npy.npy
254 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_204.npy.npy
255 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_321.npy.npy
256 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_758.npy.npy
257 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_920.npy.npy
258 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_83.npy.npy
259 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_34.npy.npy
260 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_186.npy.npy
261 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_776.npy.npy
262 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1248.npy.npy
263 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_751.npy.npy
264 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_207.npy.npy
265 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_130.npy.npy
266 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_502.npy.npy
267 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_38.npy.npy
268 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_361.npy.npy
269 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_736.npy.npy
270 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1260.npy.npy
271 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_886.npy.npy
272 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_196.npy.npy
273 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_367.npy.npy
274 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_158.npy.npy
275 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_319.npy.npy
276 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1412.npy.npy
277 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_179.npy.npy
278 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_843.npy.npy
279 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_796.npy.npy
280 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1351.npy.npy
281 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_74.npy.npy
282 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_430.npy.npy
283 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_893.npy.npy
284 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_500.npy.npy
285 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_159.npy.npy
286 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1813.npy.npy
287 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_801.npy.npy
288 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_873.npy.npy
289 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1374.npy.npy
290 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_152.npy.npy
291 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_51.npy.npy
292 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1449.npy.npy
293 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_343.npy.npy
294 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_62.npy.npy
295 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1290.npy.npy
296 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_30.npy.npy
297 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1398.npy.npy
298 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1456.npy.npy
299 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_941.npy.npy
300 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_9.npy.npy
301 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_458.npy.npy
302 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_59.npy.npy
303 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_837.npy.npy
304 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_435.npy.npy
305 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_307.npy.npy
306 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_120.npy.npy
307 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_793.npy.npy
308 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_60.npy.npy
309 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1257.npy.npy
310 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_185.npy.npy
311 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_457.npy.npy
312 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_503.npy.npy
313 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1403.npy.npy
314 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_804.npy.npy
315 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1437.npy.npy
316 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1310.npy.npy
317 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_85.npy.npy
318 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_305.npy.npy
319 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_150.npy.npy
320 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_137.npy.npy
321 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_863.npy.npy
322 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_985.npy.npy
323 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_2.npy.npy
324 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_836.npy.npy
325 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1300.npy.npy
326 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_164.npy.npy
327 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_813.npy.npy
328 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_768.npy.npy
329 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_865.npy.npy
330 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_913.npy.npy
331 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_318.npy.npy
332 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1778.npy.npy
333 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1287.npy.npy
334 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_914.npy.npy
335 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_923.npy.npy
336 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1822.npy.npy
337 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_756.npy.npy
338 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_488.npy.npy
339 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_512.npy.npy
340 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1796.npy.npy
341 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1321.npy.npy
342 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1777.npy.npy
343 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_111.npy.npy
344 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1311.npy.npy
345 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1421.npy.npy
346 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_761.npy.npy
347 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1808.npy.npy
348 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_16.npy.npy
349 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_869.npy.npy
350 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1328.npy.npy
351 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1326.npy.npy
352 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_398.npy.npy
353 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_461.npy.npy
354 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_23.npy.npy
355 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_875.npy.npy
356 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_168.npy.npy
357 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_433.npy.npy
358 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1251.npy.npy
359 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_921.npy.npy
360 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_165.npy.npy
361 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1812.npy.npy
362 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_928.npy.npy
363 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_335.npy.npy
364 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_133.npy.npy
365 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1235.npy.npy
366 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_342.npy.npy
367 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1245.npy.npy
368 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_456.npy.npy
369 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_489.npy.npy
370 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_115.npy.npy
371 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_463.npy.npy
372 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_143.npy.npy
373 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_149.npy.npy
374 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1323.npy.npy
375 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_206.npy.npy
376 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1791.npy.npy
377 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1241.npy.npy
378 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_978.npy.npy
379 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_325.npy.npy
380 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_877.npy.npy
381 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_472.npy.npy
382 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_774.npy.npy
383 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_902.npy.npy
384 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_938.npy.npy
385 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_377.npy.npy
386 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1246.npy.npy
387 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_358.npy.npy
388 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1265.npy.npy
389 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1453.npy.npy
390 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_740.npy.npy
391 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_499.npy.npy
392 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1319.npy.npy
393 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1450.npy.npy
394 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_925.npy.npy
395 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_426.npy.npy
396 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1256.npy.npy
397 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_922.npy.npy
398 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1429.npy.npy
399 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1296.npy.npy
400 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_789.npy.npy
401 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_142.npy.npy
402 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_187.npy.npy
403 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_45.npy.npy
404 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_413.npy.npy
405 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_916.npy.npy
406 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_49.npy.npy
407 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_391.npy.npy
408 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_0.npy.npy
409 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_181.npy.npy
410 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_91.npy.npy
411 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_344.npy.npy
412 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1339.npy.npy
413 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_61.npy.npy
414 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1826.npy.npy
415 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_731.npy.npy
416 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1402.npy.npy
417 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1806.npy.npy
418 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_769.npy.npy
419 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1281.npy.npy
420 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_192.npy.npy
421 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_28.npy.npy
422 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_116.npy.npy
423 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1259.npy.npy
424 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_312.npy.npy
425 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_417.npy.npy
426 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_811.npy.npy
427 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_369.npy.npy
428 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_767.npy.npy
429 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_448.npy.npy
430 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_932.npy.npy
431 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1232.npy.npy
432 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_743.npy.npy
433 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1371.npy.npy
434 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_895.npy.npy
435 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_434.npy.npy
436 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_878.npy.npy
437 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1419.npy.npy
438 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_427.npy.npy
439 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1819.npy.npy
440 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1262.npy.npy
441 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_466.npy.npy
442 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1366.npy.npy
443 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_905.npy.npy
444 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1438.npy.npy
445 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_778.npy.npy
446 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_455.npy.npy
447 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_880.npy.npy
448 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1427.npy.npy
449 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_927.npy.npy
450 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1242.npy.npy
451 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_495.npy.npy
452 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1443.npy.npy
453 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_953.npy.npy
454 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1375.npy.npy
455 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1789.npy.npy
456 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_112.npy.npy
457 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_834.npy.npy
458 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1279.npy.npy
459 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_96.npy.npy
460 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_803.npy.npy
461 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1293.npy.npy
462 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1228.npy.npy
463 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1354.npy.npy
464 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1334.npy.npy
465 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_867.npy.npy
466 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_831.npy.npy
467 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_442.npy.npy
468 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_464.npy.npy
469 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1377.npy.npy
470 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_966.npy.npy
471 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1372.npy.npy
472 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_889.npy.npy
473 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_897.npy.npy
474 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_40.npy.npy
475 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_900.npy.npy
476 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_101.npy.npy
477 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_825.npy.npy
478 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_436.npy.npy
479 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_22.npy.npy
480 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_408.npy.npy
481 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1829.npy.npy
482 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_965.npy.npy
483 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_117.npy.npy
484 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_65.npy.npy
485 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_840.npy.npy
486 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_812.npy.npy
487 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1324.npy.npy
488 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1783.npy.npy
489 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_122.npy.npy
490 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1305.npy.npy
491 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1793.npy.npy
492 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_393.npy.npy
493 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_844.npy.npy
494 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_105.npy.npy
495 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_205.npy.npy
496 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_41.npy.npy
497 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_826.npy.npy
498 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_766.npy.npy
499 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_940.npy.npy
500 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1828.npy.npy
501 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_981.npy.npy
502 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1779.npy.npy
503 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1396.npy.npy
504 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_141.npy.npy
505 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_302.npy.npy
506 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1384.npy.npy
507 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_87.npy.npy
508 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_203.npy.npy
509 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_876.npy.npy
510 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_104.npy.npy
511 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_734.npy.npy
512 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_870.npy.npy
513 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_460.npy.npy
514 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_25.npy.npy
515 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1413.npy.npy
516 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_107.npy.npy
517 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_926.npy.npy
518 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_815.npy.npy
519 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_450.npy.npy
520 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1773.npy.npy
521 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_437.npy.npy
522 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1782.npy.npy
523 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_931.npy.npy
524 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1294.npy.npy
525 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_351.npy.npy
526 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_947.npy.npy
527 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_888.npy.npy
528 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_728.npy.npy
529 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_422.npy.npy
530 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_118.npy.npy
531 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_157.npy.npy
532 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_147.npy.npy
533 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_901.npy.npy
534 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_95.npy.npy
535 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_792.npy.npy
536 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1355.npy.npy
537 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_416.npy.npy
538 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_19.npy.npy
539 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_791.npy.npy
540 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1238.npy.npy
541 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_892.npy.npy
542 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_17.npy.npy
543 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_759.npy.npy
544 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_983.npy.npy
545 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_93.npy.npy
546 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_509.npy.npy
547 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_109.npy.npy
548 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1239.npy.npy
549 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_800.npy.npy
550 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1309.npy.npy
551 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1359.npy.npy
552 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_755.npy.npy
553 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_957.npy.npy
554 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_322.npy.npy
555 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_952.npy.npy
556 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_84.npy.npy
557 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_129.npy.npy
558 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_119.npy.npy
559 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1333.npy.npy
560 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1307.npy.npy
561 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_323.npy.npy
562 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1397.npy.npy
563 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1253.npy.npy
564 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_451.npy.npy
565 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_752.npy.npy
566 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1381.npy.npy
567 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1435.npy.npy
568 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_100.npy.npy
569 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1442.npy.npy
570 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_194.npy.npy
571 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1340.npy.npy
572 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1301.npy.npy
573 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_338.npy.npy
574 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_195.npy.npy
575 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1229.npy.npy
576 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_378.npy.npy
577 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1394.npy.npy
578 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_486.npy.npy
579 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_833.npy.npy
580 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1408.npy.npy
581 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_385.npy.npy
582 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_346.npy.npy
583 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_747.npy.npy
584 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1289.npy.npy
585 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1451.npy.npy
586 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1233.npy.npy
587 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_336.npy.npy
588 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1356.npy.npy
589 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_948.npy.npy
590 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_20.npy.npy
591 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1269.npy.npy
592 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_959.npy.npy
593 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1317.npy.npy
594 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1341.npy.npy
595 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_807.npy.npy
596 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_58.npy.npy
597 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_52.npy.npy
598 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_432.npy.npy
599 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_839.npy.npy
600 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1422.npy.npy
601 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_782.npy.npy
602 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1801.npy.npy
603 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1810.npy.npy
604 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_313.npy.npy
605 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_33.npy.npy
606 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1297.npy.npy
607 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_443.npy.npy
608 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_331.npy.npy
609 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1378.npy.npy
610 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_125.npy.npy
611 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1342.npy.npy
612 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_27.npy.npy
613 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1430.npy.npy
614 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1790.npy.npy
615 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_862.npy.npy
616 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1338.npy.npy
617 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1254.npy.npy
618 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_477.npy.npy
619 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1426.npy.npy
620 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_492.npy.npy
621 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_872.npy.npy
622 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_820.npy.npy
623 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_110.npy.npy
624 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1236.npy.npy
625 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_868.npy.npy
626 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1348.npy.npy
627 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_772.npy.npy
628 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_108.npy.npy
629 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1303.npy.npy
630 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_737.npy.npy
631 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_405.npy.npy
632 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_423.npy.npy
633 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_794.npy.npy
634 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_394.npy.npy
635 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1313.npy.npy
636 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_970.npy.npy
637 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_77.npy.npy
638 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1452.npy.npy
639 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_790.npy.npy
640 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_483.npy.npy
641 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_82.npy.npy
642 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_490.npy.npy
643 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_121.npy.npy
644 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1800.npy.npy
645 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1792.npy.npy
646 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1325.npy.npy
647 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1306.npy.npy
648 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_359.npy.npy
649 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1277.npy.npy
650 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_484.npy.npy
651 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_468.npy.npy
652 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_410.npy.npy
653 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_160.npy.npy
654 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1231.npy.npy
655 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_473.npy.npy
656 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_493.npy.npy
657 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_809.npy.npy
658 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_858.npy.npy
659 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_373.npy.npy
660 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_788.npy.npy
661 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_969.npy.npy
662 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_911.npy.npy
663 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_802.npy.npy
664 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_975.npy.npy
665 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_846.npy.npy
666 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1434.npy.npy
667 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_94.npy.npy
668 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1244.npy.npy
669 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_950.npy.npy
670 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_505.npy.npy
671 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1240.npy.npy
672 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1424.npy.npy
673 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_69.npy.npy
674 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_379.npy.npy
675 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_749.npy.npy
676 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_885.npy.npy
677 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_71.npy.npy
678 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_10.npy.npy
679 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_350.npy.npy
680 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_376.npy.npy
681 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_810.npy.npy
682 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_967.npy.npy
683 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_347.npy.npy
684 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_785.npy.npy
685 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_370.npy.npy
686 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1314.npy.npy
687 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_140.npy.npy
688 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_852.npy.npy
689 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_848.npy.npy
690 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_487.npy.npy
691 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_54.npy.npy
692 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_24.npy.npy
693 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1266.npy.npy
694 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_148.npy.npy
695 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_763.npy.npy
696 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1252.npy.npy
697 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_798.npy.npy
698 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_29.npy.npy
699 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_97.npy.npy
700 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1335.npy.npy
701 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1415.npy.npy
702 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_88.npy.npy
703 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_841.npy.npy
704 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1827.npy.npy
705 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_183.npy.npy
706 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_514.npy.npy
707 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_963.npy.npy
708 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1433.npy.npy
709 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_727.npy.npy
710 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1295.npy.npy
711 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_202.npy.npy
712 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1255.npy.npy
713 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_735.npy.npy
714 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_786.npy.npy
715 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_480.npy.npy
716 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1250.npy.npy
717 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_366.npy.npy
718 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_414.npy.npy
719 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_103.npy.npy
720 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1349.npy.npy
721 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1261.npy.npy
722 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1391.npy.npy
723 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_364.npy.npy
724 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_363.npy.npy
725 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_56.npy.npy
726 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1286.npy.npy
727 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1267.npy.npy
728 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_879.npy.npy
729 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1785.npy.npy
730 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_864.npy.npy
731 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1821.npy.npy
732 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_12.npy.npy
733 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1263.npy.npy
734 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_5.npy.npy
735 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1322.npy.npy
736 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_770.npy.npy
737 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_412.npy.npy
738 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_368.npy.npy
739 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1400.npy.npy
740 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_757.npy.npy
741 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1802.npy.npy
742 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_935.npy.npy
743 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_155.npy.npy
744 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1302.npy.npy
745 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_43.npy.npy
746 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1316.npy.npy
747 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_742.npy.npy
748 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_339.npy.npy
749 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_146.npy.npy
750 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_18.npy.npy
751 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_198.npy.npy
752 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1270.npy.npy
753 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_134.npy.npy
754 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_73.npy.npy
755 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1818.npy.npy
756 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_857.npy.npy
757 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_979.npy.npy
758 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1383.npy.npy
759 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_933.npy.npy
760 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1272.npy.npy
761 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1284.npy.npy
762 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_903.npy.npy
763 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_357.npy.npy
764 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_945.npy.npy
765 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_465.npy.npy
766 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_356.npy.npy
767 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_400.npy.npy
768 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1291.npy.npy
769 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_419.npy.npy
770 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1772.npy.npy
771 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1388.npy.npy
772 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1318.npy.npy
773 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1346.npy.npy
774 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1370.npy.npy
775 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_773.npy.npy
776 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_891.npy.npy
777 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_332.npy.npy
778 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_127.npy.npy
779 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1788.npy.npy
780 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_750.npy.npy
781 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1382.npy.npy
782 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_384.npy.npy
783 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1420.npy.npy
784 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_753.npy.npy
785 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1249.npy.npy
786 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_102.npy.npy
787 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_7.npy.npy
788 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1278.npy.npy
789 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1361.npy.npy
790 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1455.npy.npy
791 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1784.npy.npy
792 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_781.npy.npy
793 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_822.npy.npy
794 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_469.npy.npy
795 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_762.npy.npy
796 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_874.npy.npy
797 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_324.npy.npy
798 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1243.npy.npy
799 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_984.npy.npy
800 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1224.npy.npy
801 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_775.npy.npy
802 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_396.npy.npy
803 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1407.npy.npy
804 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_942.npy.npy
805 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_310.npy.npy
806 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1331.npy.npy
807 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_513.npy.npy
808 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_501.npy.npy
809 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_894.npy.npy
810 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_930.npy.npy
811 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_491.npy.npy
812 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1797.npy.npy
813 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_169.npy.npy
814 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_476.npy.npy
815 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_977.npy.npy
816 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_46.npy.npy
817 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1815.npy.npy
818 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_777.npy.npy
819 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_944.npy.npy
820 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1441.npy.npy
821 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_973.npy.npy
822 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1798.npy.npy
823 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_881.npy.npy
824 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_850.npy.npy
825 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_915.npy.npy
826 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_853.npy.npy
827 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_787.npy.npy
828 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1376.npy.npy
829 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1320.npy.npy
830 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_6.npy.npy
831 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_956.npy.npy
832 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_55.npy.npy
833 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_328.npy.npy
834 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_855.npy.npy
835 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_784.npy.npy
836 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1445.npy.npy
837 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1803.npy.npy
838 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_949.npy.npy
839 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1329.npy.npy
840 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_884.npy.npy
841 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_403.npy.npy
842 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_138.npy.npy
843 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1345.npy.npy
844 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_68.npy.npy
845 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_389.npy.npy
846 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_445.npy.npy
847 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_934.npy.npy
848 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1282.npy.npy
849 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_301.npy.npy
850 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_936.npy.npy
851 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1439.npy.npy
852 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1283.npy.npy
853 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1781.npy.npy
854 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_478.npy.npy
855 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_828.npy.npy
856 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_733.npy.npy
857 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_365.npy.npy
858 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1271.npy.npy
859 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1299.npy.npy
860 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_418.npy.npy
861 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1363.npy.npy
862 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1457.npy.npy
863 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_3.npy.npy
864 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_317.npy.npy
865 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_315.npy.npy
866 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_475.npy.npy
867 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1454.npy.npy
868 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_76.npy.npy
869 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_193.npy.npy
870 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1268.npy.npy
871 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_337.npy.npy
872 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_976.npy.npy
873 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_908.npy.npy
874 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_48.npy.npy
875 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_124.npy.npy
876 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1332.npy.npy
877 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_26.npy.npy
878 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_896.npy.npy
879 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_910.npy.npy
880 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1387.npy.npy
881 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_439.npy.npy
882 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1367.npy.npy
883 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1226.npy.npy
884 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_145.npy.npy
885 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_167.npy.npy
886 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1448.npy.npy
887 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_354.npy.npy
888 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1390.npy.npy
889 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_70.npy.npy
890 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1273.npy.npy
891 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1288.npy.npy
892 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1405.npy.npy
893 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_201.npy.npy
894 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_982.npy.npy
895 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_829.npy.npy
896 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_906.npy.npy
897 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_64.npy.npy
898 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_304.npy.npy
899 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1825.npy.npy
900 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_161.npy.npy
901 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_741.npy.npy
902 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_924.npy.npy
903 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_113.npy.npy
904 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1432.npy.npy
905 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_399.npy.npy
906 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_4.npy.npy
907 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_454.npy.npy
908 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_814.npy.npy
909 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_972.npy.npy
910 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_861.npy.npy
911 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1774.npy.npy
912 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1368.npy.npy
913 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1315.npy.npy
914 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_199.npy.npy
915 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1794.npy.npy
916 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1274.npy.npy
917 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_89.npy.npy
918 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_381.npy.npy
919 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_153.npy.npy
920 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1380.npy.npy
921 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_81.npy.npy
922 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1385.npy.npy
923 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_440.npy.npy
924 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1816.npy.npy
925 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1418.npy.npy
926 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_904.npy.npy
927 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_823.npy.npy
928 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1379.npy.npy
929 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_799.npy.npy
930 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_732.npy.npy
931 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1285.npy.npy
932 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_308.npy.npy
933 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_154.npy.npy
934 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_11.npy.npy
935 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_438.npy.npy
936 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_309.npy.npy
937 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_415.npy.npy
938 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1365.npy.npy
939 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1247.npy.npy
940 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_856.npy.npy
941 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_453.npy.npy
942 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_971.npy.npy
943 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1820.npy.npy
944 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_431.npy.npy
945 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_471.npy.npy
946 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_197.npy.npy
947 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1776.npy.npy
948 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_409.npy.npy
949 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_327.npy.npy
950 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_66.npy.npy
951 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1234.npy.npy
952 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_771.npy.npy
953 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_35.npy.npy
954 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_132.npy.npy
955 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_974.npy.npy
956 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_871.npy.npy
957 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_334.npy.npy
958 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_78.npy.npy
959 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1312.npy.npy
960 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_745.npy.npy
961 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_79.npy.npy
962 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1392.npy.npy
963 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_730.npy.npy
964 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_63.npy.npy

@ -1,964 +0,0 @@
file_name
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_443.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_183.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_403.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_163.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_349.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_922.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_830.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_893.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_386.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1774.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1224.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_780.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_482.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_38.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1301.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_503.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_848.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_881.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_195.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1431.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_793.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1808.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_819.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_484.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1392.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1324.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_2.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_890.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_974.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_395.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_91.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_43.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_151.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1288.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_917.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_382.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_814.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1383.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1275.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_125.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1351.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1449.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_847.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_131.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_414.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_868.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1293.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_448.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_312.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_795.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1294.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_486.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_182.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1243.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1791.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1323.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_978.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1785.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_970.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_192.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_872.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_100.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1304.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1415.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1309.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1245.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1322.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1816.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1442.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1367.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1260.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1452.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_411.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_843.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1377.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1412.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_962.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_185.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_308.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_383.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_729.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_773.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_870.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_52.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_417.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1432.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1292.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_54.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1819.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1378.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1315.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_318.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_108.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1249.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_439.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_864.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_80.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1800.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_451.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1405.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_373.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_378.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1346.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1335.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_849.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1799.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_730.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_0.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_740.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_950.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_968.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_836.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_809.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1368.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1451.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1433.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_311.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_502.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_113.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1790.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1350.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_14.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_24.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_951.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1289.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_415.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_902.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_426.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1341.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1826.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_757.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1406.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_133.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_11.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_831.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_167.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1359.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_70.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_76.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_48.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_943.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_110.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_820.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_8.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_731.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_846.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_481.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1328.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_980.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1361.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_60.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_138.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1330.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_910.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_148.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_733.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1334.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_10.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1435.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1313.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_472.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_877.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_908.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_901.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1266.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_315.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_84.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_776.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1332.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1354.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_940.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_401.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1329.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1804.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_63.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_181.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_891.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_37.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_932.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_322.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1455.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_61.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1797.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1331.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1262.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_926.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_959.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_127.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_40.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_385.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_826.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_31.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1296.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_973.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_480.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_865.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_966.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_958.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_343.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_827.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_744.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_434.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_77.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_119.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_894.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_909.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_436.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_369.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_497.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_126.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_29.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_418.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1318.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_420.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_874.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_205.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_811.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_858.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_20.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1272.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_323.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_45.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_327.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_357.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_845.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_916.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_953.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1298.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1299.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_783.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1306.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_307.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_69.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1823.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_356.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_348.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_155.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_412.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_316.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_821.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_756.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1775.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_326.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_147.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_930.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1815.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1443.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1440.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_918.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_90.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_186.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1801.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_850.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_180.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_961.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_98.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_317.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_828.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1430.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1286.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_504.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1233.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_812.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_483.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1307.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_179.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_474.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_46.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_4.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1278.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1393.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_361.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_882.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_166.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_99.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_198.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_306.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1402.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_899.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_907.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_863.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1254.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_861.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_202.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_490.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_377.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_409.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1300.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_897.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1250.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_912.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1454.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1409.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_808.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_7.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1240.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_204.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1407.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_71.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_768.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_765.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_952.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1287.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_905.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_25.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_461.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1283.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_117.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_946.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1226.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_68.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_491.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_458.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_353.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_338.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1339.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_772.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_860.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_83.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1348.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_732.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_360.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_141.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_364.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1347.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_487.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_366.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_388.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1234.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_466.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_320.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_109.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1338.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_118.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1434.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_787.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_337.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_515.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1295.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_379.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1410.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_421.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_358.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_62.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1271.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1242.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_825.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_324.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_920.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1413.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_450.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1411.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_302.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1794.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_914.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_906.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1382.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1357.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_470.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_50.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1356.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_876.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_835.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1389.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_840.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1265.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_784.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_87.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_816.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_494.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1362.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_479.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_896.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_507.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1388.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_67.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_498.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_866.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1380.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1305.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_747.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_977.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_106.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_132.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_346.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1387.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_146.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_428.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_755.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_342.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_32.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_365.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_471.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1239.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_339.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1230.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_423.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_786.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1811.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_880.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_929.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_65.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1227.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_921.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_938.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1337.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_154.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1438.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_791.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1238.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_945.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1371.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_161.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_329.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1384.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_473.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_788.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_95.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_129.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_469.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_394.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_855.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_944.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1798.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1813.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_200.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1369.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_404.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_936.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1400.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_981.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_303.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_44.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_82.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_781.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_782.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_355.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_738.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_55.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1822.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_513.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_112.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_124.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_856.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_749.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1342.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_465.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1394.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1439.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_207.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_785.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_325.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1437.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1404.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_751.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1302.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_64.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_734.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_904.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_511.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_889.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_424.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1776.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_122.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1386.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1817.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_468.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1333.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1399.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_442.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_802.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_832.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_397.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1788.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_430.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_145.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_767.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1320.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1277.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1803.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_960.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_984.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_937.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_96.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1810.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_115.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_508.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_867.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_341.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_375.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1436.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_105.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_197.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_778.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_965.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1379.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1235.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_892.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_413.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_362.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_396.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_815.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_301.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_963.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1316.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1786.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_898.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_78.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_399.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_829.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_144.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1343.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1818.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_86.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_883.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1425.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1241.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_967.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1358.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_759.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_805.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_330.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_432.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_89.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1448.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_387.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_851.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1228.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_381.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_380.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_114.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_56.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_16.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_485.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1787.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_26.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1418.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1268.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1267.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_931.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1420.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_763.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_478.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_752.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_168.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_107.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_505.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_956.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1336.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_496.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_332.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1276.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_199.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1772.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_463.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_139.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_390.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_728.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_495.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_367.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_822.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1773.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1261.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_878.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1229.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_790.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_433.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1258.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_441.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_939.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_328.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_493.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1403.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_467.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1809.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_879.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1423.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_903.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_979.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_873.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1802.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_392.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1363.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_823.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_152.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_975.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1447.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1280.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_331.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1821.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1327.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_304.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_352.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_19.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_319.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1303.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1284.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_875.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1398.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_410.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1456.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_169.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1370.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_22.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1257.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_350.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_347.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_871.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1419.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_794.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_72.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1353.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_81.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_427.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1256.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_102.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1395.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1312.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_862.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1344.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_806.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_93.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_143.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_810.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_735.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_23.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_919.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1795.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_345.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1248.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1269.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_184.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1780.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_39.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1251.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_47.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_770.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1824.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_727.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_391.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_985.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1784.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_475.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1807.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_976.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_85.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_813.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_21.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_398.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_746.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_120.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_771.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1263.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_736.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_111.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_887.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_158.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_18.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_393.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_512.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1317.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1390.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_969.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_745.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1308.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_17.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_49.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_196.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_59.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_447.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_964.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1397.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_134.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1427.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_789.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_454.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1225.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1340.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_305.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_431.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_748.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_954.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_800.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1781.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_79.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1777.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1273.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_807.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_462.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_101.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_775.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_933.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_499.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1792.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_123.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1385.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1806.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_971.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_492.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_41.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_799.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_74.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_66.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_948.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1376.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1457.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_798.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_947.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_949.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_309.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1424.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_28.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_750.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1396.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_340.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_9.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1453.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1365.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_359.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_488.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_455.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_335.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1325.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_869.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_453.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_927.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1319.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_444.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_983.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_333.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_178.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_165.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_310.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_164.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_501.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_446.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_376.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1231.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_818.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_895.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1391.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_506.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1416.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_162.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1375.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_384.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_27.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_838.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1779.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_452.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_737.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_853.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_884.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_854.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1783.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_739.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_193.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_187.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1279.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_476.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1812.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_935.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1326.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_34.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_30.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1429.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_754.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_792.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1252.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_885.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_94.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_58.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_456.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_500.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_859.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_489.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1311.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_766.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_344.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_140.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_834.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1796.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_206.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_801.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_201.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_363.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_15.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_191.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_389.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_408.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1366.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1414.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_422.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1782.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_762.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_955.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_130.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_435.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_924.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_440.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_934.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1445.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_160.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_6.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_128.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_97.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1450.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1349.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1247.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_760.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_841.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_203.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_459.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1820.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_370.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_445.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_769.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_817.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1829.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1274.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_402.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1444.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1352.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_844.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_925.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_742.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_804.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_354.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_753.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_464.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1236.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1441.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_368.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_336.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1793.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1253.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_774.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_406.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_351.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1814.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_797.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_35.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1381.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_371.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_407.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1373.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1259.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1401.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1255.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_824.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_194.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_941.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_923.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1408.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_915.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1428.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1310.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_833.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_157.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_457.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_13.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_57.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_886.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1446.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_116.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_972.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_321.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_156.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1372.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_314.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_839.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_416.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_12.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_928.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_313.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_372.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_438.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_104.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_419.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_425.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_137.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1426.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_477.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1291.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_449.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1321.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_88.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_842.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_857.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_53.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1270.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_374.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_837.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_405.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_779.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_913.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_852.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_777.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_460.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_51.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1778.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1360.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_957.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_153.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_42.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_136.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1825.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_803.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_510.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_150.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1789.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_982.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1290.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_73.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_911.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1417.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_741.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_437.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_900.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_888.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_36.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_400.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_92.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1232.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1285.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1422.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_942.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1281.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_159.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1364.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1421.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1282.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_761.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1244.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_758.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_75.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1827.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_103.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_764.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_5.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_3.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1246.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_334.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_429.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_796.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1264.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_509.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1237.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1297.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_142.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1374.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1355.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1314.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_33.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1828.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_135.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_514.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_121.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_149.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1345.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1805.npy.npy
/mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_743.npy.npy
1 file_name
2 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_443.npy.npy
3 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_183.npy.npy
4 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_403.npy.npy
5 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_163.npy.npy
6 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_349.npy.npy
7 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_922.npy.npy
8 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_830.npy.npy
9 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_893.npy.npy
10 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_386.npy.npy
11 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1774.npy.npy
12 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1224.npy.npy
13 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_780.npy.npy
14 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_482.npy.npy
15 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_38.npy.npy
16 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1301.npy.npy
17 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_503.npy.npy
18 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_848.npy.npy
19 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_881.npy.npy
20 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_195.npy.npy
21 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1431.npy.npy
22 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_793.npy.npy
23 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1808.npy.npy
24 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_819.npy.npy
25 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_484.npy.npy
26 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1392.npy.npy
27 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1324.npy.npy
28 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_2.npy.npy
29 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_890.npy.npy
30 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_974.npy.npy
31 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_395.npy.npy
32 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_91.npy.npy
33 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_43.npy.npy
34 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_151.npy.npy
35 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1288.npy.npy
36 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_917.npy.npy
37 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_382.npy.npy
38 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_814.npy.npy
39 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1383.npy.npy
40 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1275.npy.npy
41 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_125.npy.npy
42 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1351.npy.npy
43 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1449.npy.npy
44 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_847.npy.npy
45 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_131.npy.npy
46 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_414.npy.npy
47 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_868.npy.npy
48 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1293.npy.npy
49 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_448.npy.npy
50 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_312.npy.npy
51 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_795.npy.npy
52 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1294.npy.npy
53 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_486.npy.npy
54 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_182.npy.npy
55 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1243.npy.npy
56 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1791.npy.npy
57 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1323.npy.npy
58 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_978.npy.npy
59 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1785.npy.npy
60 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_970.npy.npy
61 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_192.npy.npy
62 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_872.npy.npy
63 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_100.npy.npy
64 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1304.npy.npy
65 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1415.npy.npy
66 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1309.npy.npy
67 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1245.npy.npy
68 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1322.npy.npy
69 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1816.npy.npy
70 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1442.npy.npy
71 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1367.npy.npy
72 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1260.npy.npy
73 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1452.npy.npy
74 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_411.npy.npy
75 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_843.npy.npy
76 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1377.npy.npy
77 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1412.npy.npy
78 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_962.npy.npy
79 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_185.npy.npy
80 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_308.npy.npy
81 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_383.npy.npy
82 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_729.npy.npy
83 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_773.npy.npy
84 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_870.npy.npy
85 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_52.npy.npy
86 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_417.npy.npy
87 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1432.npy.npy
88 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1292.npy.npy
89 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_54.npy.npy
90 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1819.npy.npy
91 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1378.npy.npy
92 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1315.npy.npy
93 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_318.npy.npy
94 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_108.npy.npy
95 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1249.npy.npy
96 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_439.npy.npy
97 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_864.npy.npy
98 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_80.npy.npy
99 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1800.npy.npy
100 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_451.npy.npy
101 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1405.npy.npy
102 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_373.npy.npy
103 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_378.npy.npy
104 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1346.npy.npy
105 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1335.npy.npy
106 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_849.npy.npy
107 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1799.npy.npy
108 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_730.npy.npy
109 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_0.npy.npy
110 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_740.npy.npy
111 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_950.npy.npy
112 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_968.npy.npy
113 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_836.npy.npy
114 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_809.npy.npy
115 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1368.npy.npy
116 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1451.npy.npy
117 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1433.npy.npy
118 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_311.npy.npy
119 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_502.npy.npy
120 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_113.npy.npy
121 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1790.npy.npy
122 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1350.npy.npy
123 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_14.npy.npy
124 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_24.npy.npy
125 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_951.npy.npy
126 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1289.npy.npy
127 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_415.npy.npy
128 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_902.npy.npy
129 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_426.npy.npy
130 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1341.npy.npy
131 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1826.npy.npy
132 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_757.npy.npy
133 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1406.npy.npy
134 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_133.npy.npy
135 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_11.npy.npy
136 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_831.npy.npy
137 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_167.npy.npy
138 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1359.npy.npy
139 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_70.npy.npy
140 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_76.npy.npy
141 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_48.npy.npy
142 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_943.npy.npy
143 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_110.npy.npy
144 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_820.npy.npy
145 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_8.npy.npy
146 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_731.npy.npy
147 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_846.npy.npy
148 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_481.npy.npy
149 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1328.npy.npy
150 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_980.npy.npy
151 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1361.npy.npy
152 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_60.npy.npy
153 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_138.npy.npy
154 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1330.npy.npy
155 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_910.npy.npy
156 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_148.npy.npy
157 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_733.npy.npy
158 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1334.npy.npy
159 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_10.npy.npy
160 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1435.npy.npy
161 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1313.npy.npy
162 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_472.npy.npy
163 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_877.npy.npy
164 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_908.npy.npy
165 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_901.npy.npy
166 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1266.npy.npy
167 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_315.npy.npy
168 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_84.npy.npy
169 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_776.npy.npy
170 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1332.npy.npy
171 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1354.npy.npy
172 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_940.npy.npy
173 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_401.npy.npy
174 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1329.npy.npy
175 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1804.npy.npy
176 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_63.npy.npy
177 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_181.npy.npy
178 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_891.npy.npy
179 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_37.npy.npy
180 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_932.npy.npy
181 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_322.npy.npy
182 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1455.npy.npy
183 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_61.npy.npy
184 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1797.npy.npy
185 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1331.npy.npy
186 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1262.npy.npy
187 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_926.npy.npy
188 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_959.npy.npy
189 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_127.npy.npy
190 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_40.npy.npy
191 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_385.npy.npy
192 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_826.npy.npy
193 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_31.npy.npy
194 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1296.npy.npy
195 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_973.npy.npy
196 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_480.npy.npy
197 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_865.npy.npy
198 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_966.npy.npy
199 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_958.npy.npy
200 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_343.npy.npy
201 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_827.npy.npy
202 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_744.npy.npy
203 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_434.npy.npy
204 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_77.npy.npy
205 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_119.npy.npy
206 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_894.npy.npy
207 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_909.npy.npy
208 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_436.npy.npy
209 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_369.npy.npy
210 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_497.npy.npy
211 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_126.npy.npy
212 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_29.npy.npy
213 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_418.npy.npy
214 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1318.npy.npy
215 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_420.npy.npy
216 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_874.npy.npy
217 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_205.npy.npy
218 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_811.npy.npy
219 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_858.npy.npy
220 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_20.npy.npy
221 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1272.npy.npy
222 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_323.npy.npy
223 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_45.npy.npy
224 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_327.npy.npy
225 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_357.npy.npy
226 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_845.npy.npy
227 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_916.npy.npy
228 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_953.npy.npy
229 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1298.npy.npy
230 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1299.npy.npy
231 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_783.npy.npy
232 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1306.npy.npy
233 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_307.npy.npy
234 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_69.npy.npy
235 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1823.npy.npy
236 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_356.npy.npy
237 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_348.npy.npy
238 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_155.npy.npy
239 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_412.npy.npy
240 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_316.npy.npy
241 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_821.npy.npy
242 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_756.npy.npy
243 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1775.npy.npy
244 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_326.npy.npy
245 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_147.npy.npy
246 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_930.npy.npy
247 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1815.npy.npy
248 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1443.npy.npy
249 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1440.npy.npy
250 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_918.npy.npy
251 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_90.npy.npy
252 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_186.npy.npy
253 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1801.npy.npy
254 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_850.npy.npy
255 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_180.npy.npy
256 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_961.npy.npy
257 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_98.npy.npy
258 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_317.npy.npy
259 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_828.npy.npy
260 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1430.npy.npy
261 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1286.npy.npy
262 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_504.npy.npy
263 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1233.npy.npy
264 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_812.npy.npy
265 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_483.npy.npy
266 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1307.npy.npy
267 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_179.npy.npy
268 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_474.npy.npy
269 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_46.npy.npy
270 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_4.npy.npy
271 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1278.npy.npy
272 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1393.npy.npy
273 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_361.npy.npy
274 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_882.npy.npy
275 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_166.npy.npy
276 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_99.npy.npy
277 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_198.npy.npy
278 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_306.npy.npy
279 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1402.npy.npy
280 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_899.npy.npy
281 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_907.npy.npy
282 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_863.npy.npy
283 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1254.npy.npy
284 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_861.npy.npy
285 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_202.npy.npy
286 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_490.npy.npy
287 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_377.npy.npy
288 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_409.npy.npy
289 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1300.npy.npy
290 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_897.npy.npy
291 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1250.npy.npy
292 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_912.npy.npy
293 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1454.npy.npy
294 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1409.npy.npy
295 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_808.npy.npy
296 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_7.npy.npy
297 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1240.npy.npy
298 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_204.npy.npy
299 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1407.npy.npy
300 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_71.npy.npy
301 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_768.npy.npy
302 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_765.npy.npy
303 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_952.npy.npy
304 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1287.npy.npy
305 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_905.npy.npy
306 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_25.npy.npy
307 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_461.npy.npy
308 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1283.npy.npy
309 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_117.npy.npy
310 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_946.npy.npy
311 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1226.npy.npy
312 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_68.npy.npy
313 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_491.npy.npy
314 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_458.npy.npy
315 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_353.npy.npy
316 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_338.npy.npy
317 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1339.npy.npy
318 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_772.npy.npy
319 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_860.npy.npy
320 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_83.npy.npy
321 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1348.npy.npy
322 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_732.npy.npy
323 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_360.npy.npy
324 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_141.npy.npy
325 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_364.npy.npy
326 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1347.npy.npy
327 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_487.npy.npy
328 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_366.npy.npy
329 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_388.npy.npy
330 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1234.npy.npy
331 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_466.npy.npy
332 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_320.npy.npy
333 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_109.npy.npy
334 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1338.npy.npy
335 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_118.npy.npy
336 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1434.npy.npy
337 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_787.npy.npy
338 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_337.npy.npy
339 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_515.npy.npy
340 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1295.npy.npy
341 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_379.npy.npy
342 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1410.npy.npy
343 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_421.npy.npy
344 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_358.npy.npy
345 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_62.npy.npy
346 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1271.npy.npy
347 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1242.npy.npy
348 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_825.npy.npy
349 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_324.npy.npy
350 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_920.npy.npy
351 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1413.npy.npy
352 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_450.npy.npy
353 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1411.npy.npy
354 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_302.npy.npy
355 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1794.npy.npy
356 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_914.npy.npy
357 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_906.npy.npy
358 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1382.npy.npy
359 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1357.npy.npy
360 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_470.npy.npy
361 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_50.npy.npy
362 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1356.npy.npy
363 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_876.npy.npy
364 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_835.npy.npy
365 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1389.npy.npy
366 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_840.npy.npy
367 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1265.npy.npy
368 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_784.npy.npy
369 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_87.npy.npy
370 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_816.npy.npy
371 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_494.npy.npy
372 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1362.npy.npy
373 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_479.npy.npy
374 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_896.npy.npy
375 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_507.npy.npy
376 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1388.npy.npy
377 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_67.npy.npy
378 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_498.npy.npy
379 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_866.npy.npy
380 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1380.npy.npy
381 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1305.npy.npy
382 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_747.npy.npy
383 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_977.npy.npy
384 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_106.npy.npy
385 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_132.npy.npy
386 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_346.npy.npy
387 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1387.npy.npy
388 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_146.npy.npy
389 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_428.npy.npy
390 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_755.npy.npy
391 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_342.npy.npy
392 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_32.npy.npy
393 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_365.npy.npy
394 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_471.npy.npy
395 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1239.npy.npy
396 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_339.npy.npy
397 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1230.npy.npy
398 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_423.npy.npy
399 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_786.npy.npy
400 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1811.npy.npy
401 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_880.npy.npy
402 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_929.npy.npy
403 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_65.npy.npy
404 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1227.npy.npy
405 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_921.npy.npy
406 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_938.npy.npy
407 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1337.npy.npy
408 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_154.npy.npy
409 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1438.npy.npy
410 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_791.npy.npy
411 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1238.npy.npy
412 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_945.npy.npy
413 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1371.npy.npy
414 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_161.npy.npy
415 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_329.npy.npy
416 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1384.npy.npy
417 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_473.npy.npy
418 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_788.npy.npy
419 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_95.npy.npy
420 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_129.npy.npy
421 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_469.npy.npy
422 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_394.npy.npy
423 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_855.npy.npy
424 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_944.npy.npy
425 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1798.npy.npy
426 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1813.npy.npy
427 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_200.npy.npy
428 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1369.npy.npy
429 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_404.npy.npy
430 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_936.npy.npy
431 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1400.npy.npy
432 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_981.npy.npy
433 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_303.npy.npy
434 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_44.npy.npy
435 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_82.npy.npy
436 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_781.npy.npy
437 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_782.npy.npy
438 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_355.npy.npy
439 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_738.npy.npy
440 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_55.npy.npy
441 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1822.npy.npy
442 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_513.npy.npy
443 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_112.npy.npy
444 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_124.npy.npy
445 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_856.npy.npy
446 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_749.npy.npy
447 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1342.npy.npy
448 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_465.npy.npy
449 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1394.npy.npy
450 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1439.npy.npy
451 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_207.npy.npy
452 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_785.npy.npy
453 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_325.npy.npy
454 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1437.npy.npy
455 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1404.npy.npy
456 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_751.npy.npy
457 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1302.npy.npy
458 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_64.npy.npy
459 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_734.npy.npy
460 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_904.npy.npy
461 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_511.npy.npy
462 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_889.npy.npy
463 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_424.npy.npy
464 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1776.npy.npy
465 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_122.npy.npy
466 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1386.npy.npy
467 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1817.npy.npy
468 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_468.npy.npy
469 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1333.npy.npy
470 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1399.npy.npy
471 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_442.npy.npy
472 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_802.npy.npy
473 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_832.npy.npy
474 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_397.npy.npy
475 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1788.npy.npy
476 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_430.npy.npy
477 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_145.npy.npy
478 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_767.npy.npy
479 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1320.npy.npy
480 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1277.npy.npy
481 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1803.npy.npy
482 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_960.npy.npy
483 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_984.npy.npy
484 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_937.npy.npy
485 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_96.npy.npy
486 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1810.npy.npy
487 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_115.npy.npy
488 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_508.npy.npy
489 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_867.npy.npy
490 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_341.npy.npy
491 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_375.npy.npy
492 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1436.npy.npy
493 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_105.npy.npy
494 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_197.npy.npy
495 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_778.npy.npy
496 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_965.npy.npy
497 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1379.npy.npy
498 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1235.npy.npy
499 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_892.npy.npy
500 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_413.npy.npy
501 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_362.npy.npy
502 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_396.npy.npy
503 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_815.npy.npy
504 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_301.npy.npy
505 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_963.npy.npy
506 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1316.npy.npy
507 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1786.npy.npy
508 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_898.npy.npy
509 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1.npy.npy
510 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_78.npy.npy
511 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_399.npy.npy
512 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_829.npy.npy
513 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_144.npy.npy
514 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1343.npy.npy
515 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1818.npy.npy
516 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_86.npy.npy
517 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_883.npy.npy
518 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1425.npy.npy
519 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1241.npy.npy
520 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_967.npy.npy
521 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1358.npy.npy
522 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_759.npy.npy
523 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_805.npy.npy
524 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_330.npy.npy
525 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_432.npy.npy
526 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_89.npy.npy
527 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1448.npy.npy
528 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_387.npy.npy
529 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_851.npy.npy
530 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1228.npy.npy
531 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_381.npy.npy
532 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_380.npy.npy
533 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_114.npy.npy
534 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_56.npy.npy
535 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_16.npy.npy
536 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_485.npy.npy
537 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1787.npy.npy
538 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_26.npy.npy
539 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1418.npy.npy
540 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1268.npy.npy
541 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1267.npy.npy
542 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_931.npy.npy
543 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1420.npy.npy
544 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_763.npy.npy
545 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_478.npy.npy
546 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_752.npy.npy
547 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_168.npy.npy
548 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_107.npy.npy
549 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_505.npy.npy
550 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_956.npy.npy
551 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1336.npy.npy
552 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_496.npy.npy
553 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_332.npy.npy
554 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1276.npy.npy
555 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_199.npy.npy
556 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1772.npy.npy
557 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_463.npy.npy
558 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_139.npy.npy
559 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_390.npy.npy
560 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_728.npy.npy
561 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_495.npy.npy
562 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_367.npy.npy
563 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_822.npy.npy
564 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1773.npy.npy
565 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1261.npy.npy
566 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_878.npy.npy
567 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1229.npy.npy
568 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_790.npy.npy
569 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_433.npy.npy
570 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1258.npy.npy
571 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_441.npy.npy
572 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_939.npy.npy
573 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_328.npy.npy
574 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_493.npy.npy
575 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1403.npy.npy
576 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_467.npy.npy
577 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1809.npy.npy
578 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_879.npy.npy
579 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1423.npy.npy
580 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_903.npy.npy
581 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_979.npy.npy
582 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_873.npy.npy
583 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1802.npy.npy
584 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_392.npy.npy
585 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1363.npy.npy
586 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_823.npy.npy
587 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_152.npy.npy
588 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_975.npy.npy
589 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1447.npy.npy
590 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1280.npy.npy
591 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_331.npy.npy
592 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1821.npy.npy
593 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1327.npy.npy
594 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_304.npy.npy
595 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_352.npy.npy
596 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_19.npy.npy
597 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_319.npy.npy
598 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1303.npy.npy
599 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1284.npy.npy
600 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_875.npy.npy
601 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1398.npy.npy
602 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_410.npy.npy
603 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1456.npy.npy
604 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_169.npy.npy
605 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1370.npy.npy
606 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_22.npy.npy
607 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1257.npy.npy
608 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_350.npy.npy
609 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_347.npy.npy
610 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_871.npy.npy
611 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1419.npy.npy
612 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_794.npy.npy
613 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_72.npy.npy
614 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1353.npy.npy
615 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_81.npy.npy
616 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_427.npy.npy
617 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1256.npy.npy
618 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_102.npy.npy
619 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1395.npy.npy
620 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1312.npy.npy
621 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_862.npy.npy
622 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1344.npy.npy
623 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_806.npy.npy
624 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_93.npy.npy
625 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_143.npy.npy
626 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_810.npy.npy
627 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_735.npy.npy
628 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_23.npy.npy
629 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_919.npy.npy
630 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1795.npy.npy
631 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_345.npy.npy
632 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1248.npy.npy
633 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1269.npy.npy
634 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_184.npy.npy
635 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1780.npy.npy
636 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_39.npy.npy
637 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1251.npy.npy
638 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_47.npy.npy
639 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_770.npy.npy
640 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1824.npy.npy
641 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_727.npy.npy
642 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_391.npy.npy
643 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_985.npy.npy
644 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1784.npy.npy
645 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_475.npy.npy
646 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1807.npy.npy
647 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_976.npy.npy
648 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_85.npy.npy
649 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_813.npy.npy
650 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_21.npy.npy
651 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_398.npy.npy
652 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_746.npy.npy
653 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_120.npy.npy
654 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_771.npy.npy
655 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1263.npy.npy
656 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_736.npy.npy
657 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_111.npy.npy
658 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_887.npy.npy
659 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_158.npy.npy
660 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_18.npy.npy
661 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_393.npy.npy
662 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_512.npy.npy
663 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1317.npy.npy
664 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1390.npy.npy
665 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_969.npy.npy
666 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_745.npy.npy
667 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1308.npy.npy
668 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_17.npy.npy
669 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_49.npy.npy
670 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_196.npy.npy
671 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_59.npy.npy
672 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_447.npy.npy
673 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_964.npy.npy
674 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1397.npy.npy
675 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_134.npy.npy
676 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1427.npy.npy
677 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_789.npy.npy
678 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_454.npy.npy
679 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1225.npy.npy
680 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1340.npy.npy
681 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_305.npy.npy
682 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_431.npy.npy
683 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_748.npy.npy
684 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_954.npy.npy
685 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_800.npy.npy
686 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1781.npy.npy
687 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_79.npy.npy
688 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1777.npy.npy
689 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1273.npy.npy
690 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_807.npy.npy
691 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_462.npy.npy
692 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_101.npy.npy
693 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_775.npy.npy
694 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_933.npy.npy
695 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_499.npy.npy
696 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1792.npy.npy
697 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_123.npy.npy
698 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1385.npy.npy
699 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1806.npy.npy
700 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_971.npy.npy
701 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_492.npy.npy
702 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_41.npy.npy
703 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_799.npy.npy
704 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_74.npy.npy
705 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_66.npy.npy
706 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_948.npy.npy
707 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1376.npy.npy
708 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1457.npy.npy
709 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_798.npy.npy
710 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_947.npy.npy
711 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_949.npy.npy
712 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_309.npy.npy
713 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1424.npy.npy
714 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_28.npy.npy
715 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_750.npy.npy
716 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1396.npy.npy
717 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_340.npy.npy
718 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_9.npy.npy
719 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1453.npy.npy
720 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1365.npy.npy
721 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_359.npy.npy
722 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_488.npy.npy
723 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_455.npy.npy
724 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_335.npy.npy
725 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1325.npy.npy
726 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_869.npy.npy
727 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_453.npy.npy
728 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_927.npy.npy
729 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1319.npy.npy
730 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_444.npy.npy
731 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_983.npy.npy
732 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_333.npy.npy
733 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_178.npy.npy
734 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_165.npy.npy
735 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_310.npy.npy
736 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_164.npy.npy
737 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_501.npy.npy
738 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_446.npy.npy
739 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_376.npy.npy
740 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1231.npy.npy
741 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_818.npy.npy
742 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_895.npy.npy
743 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1391.npy.npy
744 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_506.npy.npy
745 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1416.npy.npy
746 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_162.npy.npy
747 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1375.npy.npy
748 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_384.npy.npy
749 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_27.npy.npy
750 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_838.npy.npy
751 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1779.npy.npy
752 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_452.npy.npy
753 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_737.npy.npy
754 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_853.npy.npy
755 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_884.npy.npy
756 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_854.npy.npy
757 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1783.npy.npy
758 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_739.npy.npy
759 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_193.npy.npy
760 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_187.npy.npy
761 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1279.npy.npy
762 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_476.npy.npy
763 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1812.npy.npy
764 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_935.npy.npy
765 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1326.npy.npy
766 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_34.npy.npy
767 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_30.npy.npy
768 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1429.npy.npy
769 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_754.npy.npy
770 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_792.npy.npy
771 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1252.npy.npy
772 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_885.npy.npy
773 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_94.npy.npy
774 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_58.npy.npy
775 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_456.npy.npy
776 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_500.npy.npy
777 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_859.npy.npy
778 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_489.npy.npy
779 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1311.npy.npy
780 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_766.npy.npy
781 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_344.npy.npy
782 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_140.npy.npy
783 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_834.npy.npy
784 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1796.npy.npy
785 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_206.npy.npy
786 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_801.npy.npy
787 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_201.npy.npy
788 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_363.npy.npy
789 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_15.npy.npy
790 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_191.npy.npy
791 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_389.npy.npy
792 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_408.npy.npy
793 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1366.npy.npy
794 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1414.npy.npy
795 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_422.npy.npy
796 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1782.npy.npy
797 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_762.npy.npy
798 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_955.npy.npy
799 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_130.npy.npy
800 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_435.npy.npy
801 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_924.npy.npy
802 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_440.npy.npy
803 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_934.npy.npy
804 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1445.npy.npy
805 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_160.npy.npy
806 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_6.npy.npy
807 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_128.npy.npy
808 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_97.npy.npy
809 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1450.npy.npy
810 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1349.npy.npy
811 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1247.npy.npy
812 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_760.npy.npy
813 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_841.npy.npy
814 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_203.npy.npy
815 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_459.npy.npy
816 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1820.npy.npy
817 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_370.npy.npy
818 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_445.npy.npy
819 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_769.npy.npy
820 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_817.npy.npy
821 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1829.npy.npy
822 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1274.npy.npy
823 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_402.npy.npy
824 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1444.npy.npy
825 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1352.npy.npy
826 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_844.npy.npy
827 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_925.npy.npy
828 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_742.npy.npy
829 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_804.npy.npy
830 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_354.npy.npy
831 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_753.npy.npy
832 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_464.npy.npy
833 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1236.npy.npy
834 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1441.npy.npy
835 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_368.npy.npy
836 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_336.npy.npy
837 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1793.npy.npy
838 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1253.npy.npy
839 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_774.npy.npy
840 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_406.npy.npy
841 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_351.npy.npy
842 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1814.npy.npy
843 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_797.npy.npy
844 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_35.npy.npy
845 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1381.npy.npy
846 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_371.npy.npy
847 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_407.npy.npy
848 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1373.npy.npy
849 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1259.npy.npy
850 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1401.npy.npy
851 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1255.npy.npy
852 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_824.npy.npy
853 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_194.npy.npy
854 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_941.npy.npy
855 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_923.npy.npy
856 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1408.npy.npy
857 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_915.npy.npy
858 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1428.npy.npy
859 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1310.npy.npy
860 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_833.npy.npy
861 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_157.npy.npy
862 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_457.npy.npy
863 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_13.npy.npy
864 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_57.npy.npy
865 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_886.npy.npy
866 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1446.npy.npy
867 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_116.npy.npy
868 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_972.npy.npy
869 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_321.npy.npy
870 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_156.npy.npy
871 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1372.npy.npy
872 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_314.npy.npy
873 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_839.npy.npy
874 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_416.npy.npy
875 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_12.npy.npy
876 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_928.npy.npy
877 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_313.npy.npy
878 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_372.npy.npy
879 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_438.npy.npy
880 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_104.npy.npy
881 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_419.npy.npy
882 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_425.npy.npy
883 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_137.npy.npy
884 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1426.npy.npy
885 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_477.npy.npy
886 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1291.npy.npy
887 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_449.npy.npy
888 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1321.npy.npy
889 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_88.npy.npy
890 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_842.npy.npy
891 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_857.npy.npy
892 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_53.npy.npy
893 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1270.npy.npy
894 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_374.npy.npy
895 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_837.npy.npy
896 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_405.npy.npy
897 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_779.npy.npy
898 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_913.npy.npy
899 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_852.npy.npy
900 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_777.npy.npy
901 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_460.npy.npy
902 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_51.npy.npy
903 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1778.npy.npy
904 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1360.npy.npy
905 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_957.npy.npy
906 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_153.npy.npy
907 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_42.npy.npy
908 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_136.npy.npy
909 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1825.npy.npy
910 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_803.npy.npy
911 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_510.npy.npy
912 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_150.npy.npy
913 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1789.npy.npy
914 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_982.npy.npy
915 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1290.npy.npy
916 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_73.npy.npy
917 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_911.npy.npy
918 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1417.npy.npy
919 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_741.npy.npy
920 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_437.npy.npy
921 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_900.npy.npy
922 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_888.npy.npy
923 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_36.npy.npy
924 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_400.npy.npy
925 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_92.npy.npy
926 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1232.npy.npy
927 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1285.npy.npy
928 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1422.npy.npy
929 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_942.npy.npy
930 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1281.npy.npy
931 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_159.npy.npy
932 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1364.npy.npy
933 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1421.npy.npy
934 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1282.npy.npy
935 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_761.npy.npy
936 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1244.npy.npy
937 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_758.npy.npy
938 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_75.npy.npy
939 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1827.npy.npy
940 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_103.npy.npy
941 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_764.npy.npy
942 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_5.npy.npy
943 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_3.npy.npy
944 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1246.npy.npy
945 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_334.npy.npy
946 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_429.npy.npy
947 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_796.npy.npy
948 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1264.npy.npy
949 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_509.npy.npy
950 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1237.npy.npy
951 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1297.npy.npy
952 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_142.npy.npy
953 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1374.npy.npy
954 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1355.npy.npy
955 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1314.npy.npy
956 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_33.npy.npy
957 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1828.npy.npy
958 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_135.npy.npy
959 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_514.npy.npy
960 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_121.npy.npy
961 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_149.npy.npy
962 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1345.npy.npy
963 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_1805.npy.npy
964 /mnt/nvme1/dataset_img/drone/1200/HackA5_1.2_743.npy.npy

@ -1,58 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"id": "537ea5d0-1d6c-423e-9417-171b70a76c66",
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import pandas as pd\n",
"\n",
"path = '//192.168.11.63/data/DATASETS/Energomash/915_learning'\n",
"pd_columns = ['file_name']\n",
"df = pd.DataFrame(columns=pd_columns)\n",
"\n",
"p = 0\n",
"for i in os.walk(path):\n",
" p+=1\n",
" if p != 1:\n",
" for j in i[2]:\n",
" row = pd.DataFrame({pd_columns[0]: [str(str(i[0]) + '\\\\' + str(j)).replace('\\\\', '/')]})\n",
" df = pd.concat([df, row], ignore_index=True)\n",
"\n",
"df.to_csv(path + '\\dataset.csv', index=False)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "8f6e1ff8",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

Binary file not shown.

@ -1,91 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "689613d2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"80.58750000000002\n",
"(array([8.97705408, 4.95 , 0. ]), array([-8.97705408, 4.95 , 0. ]))\n"
]
}
],
"source": [
"import numpy \n",
"from math import sqrt as square\n",
"from numpy import sqrt, dot, cross \n",
"from numpy.linalg import norm \n",
"\n",
"#rssi = [rssi, max_rssi, min_rssi, gamma]\n",
"\n",
"def dist(rssi):\n",
" rssi = list(map(float, rssi))\n",
" return square(abs(rssi[0]-rssi[1]))*rssi[3]/square(abs(rssi[0]-rssi[2]))\n",
"\n",
"def sol(x1,x2,x3,rssi1,rssi2,rssi3):\n",
" r1 = dist(rssi1)\n",
" r2 = dist(rssi2)\n",
" r3 = dist(rssi3)\n",
" x1=numpy.array(x1)\n",
" x2=numpy.array(x2)\n",
" x3=numpy.array(x3)\n",
" temp1 = x2-x1 \n",
" e_x = temp1/norm(temp1) \n",
" temp2 = x3-x1 \n",
" i = dot(e_x,temp2) \n",
" temp3 = temp2 - i*e_x \n",
" e_y = temp3/norm(temp3) \n",
" e_z = cross(e_x,e_y) \n",
" d = norm(x2-x1) \n",
" j = dot(e_y,temp2) \n",
" x = (r1*r1 - r2*r2 + d*d) / (2*d) \n",
" y = (r1*r1 - r3*r3 -2*i*x + i*i + j*j) / (2*j) \n",
" temp4 = r1*r1 - x*x - y*y \n",
" print(temp4)\n",
" if temp4<0: \n",
" return \"Нет пересечения!\"\n",
" z = sqrt(temp4) \n",
" p_12_a = x1 + x*e_x + y*e_y + z*e_z \n",
" p_12_b = x1 + x*e_x + y*e_y - z*e_z \n",
" return p_12_a,p_12_b\n",
"\n",
"\n",
"print(sol([0,0,1],[0,0,-1],[0,10,0],[50,100,0,10.3],[50,100,0,10.3],[50,100,0,10.3]))"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0a68f35a",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}

@ -1,57 +0,0 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "f18afe4b",
"metadata": {},
"outputs": [],
"source": [
"import numpy \n",
"from math import sqrt as square\n",
"from numpy import sqrt, dot, cross \n",
"from numpy.linalg import norm \n",
"\n",
"#rssi = [rssi, max_rssi, min_rssi, gamma]\n",
"\n",
"def dist(rssi):\n",
" rssi = list(map(float, rssi))\n",
" return square(abs(rssi[0]-rssi[1]))*rssi[3]/square(abs(rssi[0]-rssi[2]))\n",
"\n",
"def sol(x1,x2,x3,rssi1,rssi2,rssi3):\n",
" r1 = dist(rssi1)\n",
" r2 = dist(rssi2)\n",
" r3 = dist(rssi3)\n",
" x1=numpy.array(x1)\n",
" x2=numpy.array(x2)\n",
" x3=numpy.array(x3)\n",
" \n",
" return sector.\n",
"\n",
"\n",
"print(sol([0,0,1],[0,0,-1],[0,10,0],[50,100,0,10.3],[50,100,0,10.3],[50,100,0,10.3]))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.6"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Loading…
Cancel
Save