欧几里得几何(1)Alpha

这是一个基于尺规作图的欧几里得几何游戏应用,包含多个版本如Alpha至Theta等。通过不同的教程帮助玩家理解并掌握欧几里得几何的基本原理及解题技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

欧几里得几何

apk下载:https://blog.csdn.net/nameofcsdn/article/details/119086279

这是一个尺规作图的游戏。

目录:

欧几里得几何(1)Alpha

欧几里得几何(2)Beta 

欧几里得几何(3)Gamma 

欧几里得几何(4)Delta 

欧几里得几何(5)Epsilon

欧几里得几何(6)Zeta

欧几里得几何求解——建模实践

欧几里得几何(7)Eta

欧几里得几何(8)Theta

教程:

   

   

   

   

(1)

   

   

(2)

   

(教程)

(3)

   

(4)

   

(5)

   

   

(6)

   

(7)

   

   

### YOLOv8中的CIoU损失函数实现与解释 在目标检测领域,YOLO系列算法不断演进,在不同版本中引入了多种改进措施以提高性能。相较于早期版本采用的传统L1或L2回归损失函数,YOLOv3及其后续版本逐渐转向基于交并比(IoU)的损失计算方式[^1]。 #### CIoU损失函数的概念 CIoU (Complete Intersection over Union),即完整的交并比,是一种综合考虑几何中心距离、尺度差异以及形状相似性的度量方法。相比于原始的IoU仅衡量两个边界框重叠区域的比例,CIoU通过加入额外项来更全面地评估预测框与真实框之间的匹配程度: \[ \text{CIoU} = IoU - \frac{\rho^2(b, b^{gt})}{c^2} - \alpha v \] 其中, - \(b\) 和 \(b^{gt}\) 分别表示预测框和地面实况框; - \(\rho\)欧几里得距离; - \(c\) 表示覆盖两框最短矩形对角线长度; - \(\alpha\) 权衡因子取决于最后一项的重要性; - \(v=(\frac{\pi}{4}(arctan(w/h)- arctan(w_{gt}/h_{gt}))^2)\), 度量宽高比例间的偏差。 这种设计使得即使当IoU接近最大值时仍能继续优化位置精度,尤其对于非水平方向的目标具有更好的适应能力。 #### Python代码实现 以下是Python环境下CIoU损失函数的一个简化版实现: ```python import torch def ciou_loss(preds, targets, eps=1e-7): """ 计算CIoU损失 参数: preds: 预测边框坐标 Tensor 形状为[N, 4], xywh格式. targets: 真实边框坐标 Tensor 同上. 返回: 平均CIoU损失值 """ # 转换xywh到x0y0x1y1形式以便于计算iou和其他成分 px1, py1, pw, ph = preds[:, 0]-preds[:, 2]/2, preds[:, 1]-preds[:, 3]/2, preds[:, 2], preds[:, 3] tx1, ty1, tw, th = targets[:, 0]-targets[:, 2]/2, targets[:, 1]-targets[:, 2]/2, targets[:, 2], targets[:, 3] p_xmax, p_ymax = px1 + pw/2, py1 + ph/2 t_xmax, t_ymax = tx1 + tw/2, ty1 + th/2 inter_left_top = torch.max(torch.stack([px1,tx1]),dim=0)[0] inter_right_bottom = torch.min(torch.stack([p_xmax,t_xmax]),dim=0)[0] inter_section = torch.clamp(inter_right_bottom-inter_left_top,min=0.) intersection_area = inter_section[:,0]*inter_section[:,1] union_area = pw*ph+tw*th-(intersection_area) ious = intersection_area / (union_area + eps) enclose_left_top = torch.min(torch.stack([px1,tx1]),dim=0)[0] enclose_right_bottom = torch.max(torch.stack([p_xmax,t_xmax]),dim=0)[0] c = ((enclose_right_bottom-enclose_left_top)**2).sum(dim=-1)+eps d = (((px1-tx1)**2+(py1-ty1)**2)).sum(dim=-1)+eps u = (d/c).clamp(min=eps,max=None) atan_pred = torch.atan(pw/ph) atan_target = torch.atan(tw/th) v = (4/(torch.pi**2)) * (atan_pred-atan_target)**2 alpha = v/(1-ious+v+eps) losses_ciou = 1 - ious + u + alpha*v return losses_ciou.mean() ``` 此段代码实现了CIoU损失函数的核心逻辑,并适用于PyTorch框架下的训练过程。需要注意的是实际应用中可能还需要针对具体情况进行调整优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值