Пример #1
0
import numpy as np
import seaborn as sn
import matplotlib.pyplot as plt
from PenguTrack.DataFileExtended import DataFileExtended

file_path = "/home/user/Desktop/Birdflight.cdb"
db = DataFileExtended(file_path)

PT_Track_Type = db.getMarkerType(name="PT_Track_Marker")
PT_Detection_Type = db.getMarkerType(name="PT_Detection_Marker")
PT_Prediction_Type = db.getMarkerType(name="PT_Prediction_Marker")
GT_Type = db.getMarkerType(name="GT")

Tracks = db.getTracks(type=PT_Track_Type)

mean_phi = []
phies = []
std_phi = []
mean_len = []
lens = []

for track in Tracks:
    if track.markers.count() < 3:
        continue
    x = np.asarray([[m.x, m.y] for m in track.markers])
    del_x = x[1:] - x[:-1]
    del_x_norm = np.linalg.norm(del_x, axis=1)
    try:
        # phi = np.tensordot(del_x[1:],del_x[:-1].T, axes=1)/del_x_norm[1:]/del_x_norm[:-1]
        phi = np.diag(np.tensordot(del_x[1:], del_x[:-1].T,
                                   axes=1)) / del_x_norm[1:] / del_x_norm[:-1]
Пример #2
0
print("--------------------------")
print(VB.__dict__)
print(AD.__dict__)
print([f.__dict__ for f in AD.Filters])
print(MultiKal.__dict__)
print(MultiKal.Model.__dict__)
print("--------------------------")
print("--------------------------")

# Set Mask Type
if db.getMaskType(name="PT_Mask_Type"):
    PT_Mask_Type = db.getMaskType(name="PT_Mask_Type")
else:
    PT_Mask_Type = db.setMaskType(name="PT_Mask_Type", color="#FF6633")
# Define ClickPoints Marker
if db.getMarkerType(name="PT_Detection_Marker"):
    PT_Detection_Type = db.getMarkerType(name="PT_Detection_Marker")
else:
    PT_Detection_Type = db.setMarkerType(name="PT_Detection_Marker", color="#FFFF00", style='{"scale":0.8}')
if db.getMarkerType(name="PT_Track_Marker"):
    PT_Track_Type = db.getMarkerType(name="PT_Track_Marker")
else:
    PT_Track_Type = db.setMarkerType(name="PT_Track_Marker", color="#00FF00", mode=db.TYPE_Track)
if db.getMarkerType(name="PT_Prediction_Marker"):
    PT_Prediction_Type = db.getMarkerType(name= "PT_Prediction_Marker")
else:
    PT_Prediction_Type = db.setMarkerType(name="PT_Prediction_Marker", color="#0000FF")
if db.getMarkerType(name="PT_Stitch_Marker"):
    PT_Stitch_Type = db.getMarkerType(name="PT_Stitch_Marker")
else:
    PT_Stitch_Type = db.setMarkerType(name="PT_Stitch_Marker", color="#FF8800", mode=db.TYPE_Track)
Пример #3
0
# Initialize segmentation with init_image and start updating the first 10 frames.
init_buffer = []
for i in range(10):
    while True:
        img, meta = getImage()
        if img is not None:
            print("Got img from cam")
            init_buffer.append(img)
            print(init_buffer[-1].shape)
            print(init_buffer[-1].dtype)
            break

init = np.array(np.median(init_buffer, axis=0))

# Load horizon-markers
horizont_type = db_start.getMarkerType(name="Horizon")
try:
    horizon_markers = np.array(
        [[m.x, m.y] for m in db_start.getMarkers(type=horizont_type)]).T
except ValueError:
    raise ValueError("No markers with name 'Horizon'!")

# Load penguin-markers
penguin_type = db_start.getMarkerType(name="Penguin_Size")
try:
    penguin_markers = np.array([[m.x1, m.y1, m.x2, m.y2]
                                for m in db_start.getLines(type="Penguin_Size")
                                ]).T
except ValueError:
    raise ValueError("No markers with name 'Horizon'!")
Пример #4
0
if __name__ == '__main__':
    import my_plot
    import numpy as np
    import clickpoints
    import matplotlib.pyplot as plt
    from PenguTrack.DataFileExtended import DataFileExtended

    # Load Data from Databases
    db = DataFileExtended(
        "/home/birdflight/Desktop/PT_Test_full_n3_r7_A20_filtered.cdb")
    db2 = DataFileExtended("/home/birdflight/Desktop/252_GT_Detections.cdb")
    LogType = db.getMarkerType(name="PT_Detection_Marker")
    ImgType = db.getMarkerType(name="PT_Track_Marker")
    # Positions_Log = np.asarray([[m.x, m.y, m.image.sort_index] for m in db.getMarkers(type=LogType) if not m.text.count("inf")])
    Positions_Img = np.asarray([[m.x, m.y, m.image.sort_index]
                                for m in db.getMarkers(type=ImgType)
                                if m.track.markers.count() > 3])

    # Do Correction for Position Data
    from CameraTransform import CameraTransform
    CT = CameraTransform(14, [17, 9], [4608, 2592],
                         observer_height=31.,
                         angel_to_horizon=(np.pi / 2. - 0.24) * 180 / np.pi)
    orth_x, orth_y, orth_z = CT.transCamToWorld(Positions_Img.T[:2], Z=0.525)

    # Calculate Histogramms
    cx = cy = 2
    times = np.asarray(sorted([i.timestamp for i in db.getImages()]))
    scale = 1. / (cx * cy) / ((times[-1] - times[0]).seconds / 3600.)
    hist, binx, biny = np.histogram2d(orth_x,
                                      orth_y,
Пример #5
0
#     # ax.imshow(np.vstack((mask*2**8, db.getImage(frame=i).data)))
#     ax.imshow(np.vstack((mask[:,16000:18000]*2**8, db.getImage(frame=i).data[:,16000:18000])))
#     plt.show()

# Initialize Detector
AD = AreaDetector(object_area, object_number, upper_limit=10, lower_limit=1)
print('Initialized')

# SetMaskType
if db.getMaskType(name="PT_Mask_Type"):
    PT_Mask_Type = db.getMaskType(name="PT_Mask_Type")
else:
    PT_Mask_Type = db.setMaskType(name="PT_Mask_Type", color="#FF6633")

# Define ClickPoints Marker
if db.getMarkerType(name="PT_Detection_Marker"):
    marker_type = db.getMarkerType(name="PT_Detection_Marker")
else:
    marker_type = db.setMarkerType(name="PT_Detection_Marker", color="#FFFF00", style='{"scale":0.8}')
if db.getMarkerType(name="PT_Track_Marker"):
    marker_type2 = db.getMarkerType(name="PT_Track_Marker")
else:
    marker_type2 = db.setMarkerType(name="PT_Track_Marker", color="#00FF00", mode=db.TYPE_Track)
if db.getMarkerType(name="PT_Prediction_Marker"):
    marker_type3 = db.getMarkerType(name= "PT_Prediction_Marker")
else:
    marker_type3 = db.setMarkerType(name="PT_Prediction_Marker", color="#0000FF")
if db.getMarkerType(name="PT_Stitch_Marker"):
    marker_type4 = db.getMarkerType(name="PT_Stitch_Marker")
else:
    marker_type4 = db.setMarkerType(name="PT_Stitch_Marker", color="#FF8800", mode=db.TYPE_Track)
Пример #6
0
                       np.diag(Q),
                       np.diag(R),
                       meas_dist=Meas_Dist,
                       state_dist=State_Dist)

# Init_Background from Image_Median
N = db.getImages().count()
init = np.asarray(np.median([
    np.asarray(rgb2gray(db.getImage(frame=j).data), dtype=np.int)
    for j in np.random.randint(0, N, 10)
],
                            axis=0),
                  dtype=np.int)

# Load horizon-markers
horizont_type = db.getMarkerType(name="Horizon")
try:
    horizon_markers = np.asarray([[m.x, m.y]
                                  for m in db.getMarkers(type=horizont_type)
                                  ]).T
except ValueError:
    raise ValueError("No markers with name 'Horizon'!")

# Load penguin-markers
penguin_type = db.getMarkerType(name="Penguin_Size")
try:
    penguin_markers = np.asarray([[m.x1, m.y1, m.x2, m.y2]
                                  for m in db.getLines(type="Penguin_Size")]).T
except ValueError:
    raise ValueError("No markers with name 'Horizon'!")