-
-
![]()
-
-
+
+
+
+ 生成中 {{ negGenTask.done }}/{{ negGenTask.total }} 张(空检已剔除 {{ negGenTask.rejected }} 张)约 40 秒/张…
+
+
+
+
+
toggleNeg(img.id)"
+ />
+
+
+
{{ img.filename }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 内置场景池按序循环生成(细长轮廓 / 圆拱形 / 高处停息悬挂 / 室内户外空镜 / 混淆动物,与正样本同相机风格);
+ 每张生成后自动过 RF-DETR 空检,有检出的自动剔除不入库。约 40 秒/张,进度见负样本 tab 进度条。
+
+
+ 取消
+ 开始生成
+
+
+
数据集:{{ startRow?.name }}
@@ -750,22 +872,65 @@ onBeforeUnmount(() => {
gap: 10px;
min-height: 120px;
}
-.neg-cell {
- aspect-ratio: 4 / 3;
- border: 2px solid transparent;
- border-radius: 6px;
+/* 负样本卡片:与 DatasetDetail 图片网格同款 */
+.card-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
+ gap: 14px;
+}
+.img-card {
+ background: #fff;
+ border: 1px solid #ebeef5;
+ border-radius: 8px;
+ padding: 10px;
+}
+.card-img {
+ position: relative;
overflow: hidden;
- cursor: pointer;
- background: #f5f7fa;
+ border-radius: 6px;
+ background: #000;
+ cursor: zoom-in;
+ border: 1px solid #dcdfe6;
}
-.neg-cell img {
- width: 100%;
- height: 100%;
- object-fit: cover;
+.card-img img {
display: block;
+ width: 100%;
+ height: auto;
+ object-fit: contain;
}
-.neg-cell.is-sel {
- border-color: var(--el-color-primary);
+.card-select {
+ position: absolute;
+ top: 6px;
+ left: 6px;
+ z-index: 2;
+ padding: 2px 3px;
+ background: rgba(255, 255, 255, 0.9);
+ border-radius: 4px;
+}
+.card-name {
+ margin-top: 6px;
+ font-size: 13px;
+ color: #303133;
+ font-weight: 600;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+.pager {
+ display: flex;
+ justify-content: center;
+ margin-top: 14px;
+}
+.neg-progress {
+ display: flex;
+ align-items: center;
+ gap: 12px;
+ margin-bottom: 12px;
+}
+.neg-progress-tip {
+ font-size: 12px;
+ color: #909399;
+ white-space: nowrap;
}
.toolbar {
display: flex;