2024-07-11
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
길이 1000pix, 너비 10pix 등과 같이 상대적으로 큰 종횡비를 가진 긴 대상의 경우 훈련 중에 기본 데이터 강화 그림의 일부 그림에서 레이블이 누락되는 문제가 있습니다. 향상된 사진에서는 라벨이 낮은 재현율 문제로 이어질 것입니다.
학습 코드에서 Augmentations.py 파일의 box_candidates 함수는 Random_perspective에서 원근 변환 후 이미지 레이블을 필터링하고 너무 작은 상자(자르기 전 면적이 Area_thr보다 작음)를 제거하고 길이와 길이를 유지하는 데 사용됩니다. 상자의 너비는 wh_thr 픽셀보다 커야 하며 종횡비 범위는 (1/ar_thr, ar_thr)입니다.
- def box_candidates(box1, box2, wh_thr=2, ar_thr=20, area_thr=0.1, eps=1e-16):
- """box_candidates() is used to filter the labels and reject poor label candidates:
- 用在random_perspective中 对透视变换后的图片label进行筛选
- 去除被裁剪过小的框(面积小于裁剪前的area_thr) 还有长和宽必须大于wh_thr个像素,且长宽比范围在(1/ar_thr, ar_thr)之间的限制
- Compute candidate boxes: box1 before augment, box2 after augment, wh_thr (pixels), aspect_ratio_thr, area_ratio
- :params box1: [4, n]
- :params box2: [4, n]
- :params wh_thr: 筛选条件 宽高阈值
- :params ar_thr: 筛选条件 宽高比、高宽比最大值阈值
- :params area_thr: 筛选条件 面积阈值
- :params eps: 1e-16 接近0的数 防止分母为0
- :return i: 筛选结果 [n] 全是True或False 使用比如: box1[i]即可得到i中所有等于True的矩形框 False的矩形框全部删除
- """
- w1, h1 = box1[2] - box1[0], box1[3] - box1[1] # 求出所有box1矩形框的宽和高 [n] [n]
- w2, h2 = box2[2] - box2[0], box2[3] - box2[1] # 求出所有box2矩形框的宽和高 [n] [n]
- ar = np.maximum(w2 / (h2 eps), h2 / (w2 eps)) # 求出所有box2矩形框的宽高比和高宽比的较大者 [n, 1]
- # 筛选条件: 增强后w、h要大于2 增强后图像与增强前图像面积比值大于area_thr 宽高比大于ar_thr
- return (
-