Python max(), zip(),sort(),filter()

(1)max():最大值

描述
max() 方法返回给定参数的最大值,参数可以为序列。

语法
以下是 max() 方法的语法:

max( x, y, z, … )
参数
x – 数值表达式。
y – 数值表达式。
z – 数值表达式。
返回值
返回给定参数的最大值

实例:

a=[ {'name':'张三','age':18},
    {'name':'张三2','age':38},
    {'name':'张三3','age':28}
   ]
def MaxAge(a):
    return a['age']
d=max(a,key=MaxAge)
print(d)

(2)zip()压缩

# a=[1,2,]
# b='abcd'
# c=zip(a,b)
# for x in c:
#     print(x)

(3)sort()排序

# b=[1,-2,-3,5,9,-10]
# c=max(b,key=abs)#key以绝对值标准判断
# print(c)
# # b.sort(key=abs)#key以什么标准排序
# b.sort(key=abs,reverse=True)#现已绝对值排序在倒序
# print(b)

(4)filter()过滤作用

# def dex(a):
#     return a%2==1
# print(dex(12))
# h=[1,2,3,4,5]
# b=filter(dex,h)
# print(b)
# for x in b:
#     print(x)
### Sort 和 DeepSort 算法简介 #### Sort (Simple Online and Realtime Tracking) Sort 是一种简单高效的在线实时多目标跟踪算法[^1]。此方法通过卡尔曼滤波器(Kalman Filter)预测物体位置,并结合匈牙利匹配算法(Hungarian algorithm)关联检测框与轨迹。 核心思想在于: - 使用卡尔曼滤波估计对象状态并预测下一帧的位置。 - 利用IOU(Intersection over Union)度量当前检测结果同已有轨迹间的相似程度。 - 当 IOU 值超过设定阈值时,则认为两者属于同一目标;反之则视为新出现的目标实例。 ```python from sort import Sort tracker = Sort() # 创建SORT追踪器实例 detections = [[x1,y1,x2,y2,score], ... ] # 输入边界框列表 tracks = tracker.update(detections) # 更新追踪信息 ``` #### DeepSort (Deep Learning based SORT) 作为对传统Sort的一种改进版本,DeepSort引入了外观特征描述子来增强跨时间步长的对象重识别能力。具体而言,在原有基础上增加了基于深度神经网络提取表观特征的功能模块,从而提高了对于遮挡情况以及复杂场景下的鲁棒性和准确性。 主要改动体现在两个方面: - **特征表示**: 应用预训练好的ResNet50卷积层获取候选区域内的局部细节信息; - **距离度量**: 将马氏距离(Mahalanobis distance)融入到原有的IoU计算过程中,综合考虑空间位置和视觉属性差异来进行更精准地配对决策。 ```python import numpy as np from deep_sort import nn_matching from deep_sort.detection import Detection from deep_sort.tracker import Tracker metric = nn_matching.NearestNeighborDistanceMetric("cosine", max_cosine_distance=0.2) tracker = Tracker(metric) for frame_idx, detections in enumerate(all_detections): features = encoder(image, detections[:, :4]) # 提取每帧中各bbox对应的deep feature向量 dets = [Detection(bbox[:4], bbox[-1], feat) for bbox,feat in zip(detections,features)] # 构建Detection类实例集合 tracker.predict() tracker.update(dets) output_bboxes = [] for track in tracker.tracks: if not track.is_confirmed() or track.time_since_update > 1: continue bbox = track.to_tlwh().tolist() id_ = track.track_id output_bboxes.append([frame_idx,id_,*bbox]) output_bboxes = np.asarray(output_bboxes) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值