Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -108,10 +108,10 @@ def detect_ai_image(image):
|
|
108 |
if "human" in label_lower or "real" in label_lower:
|
109 |
human_label_idx = idx
|
110 |
|
111 |
-
#
|
112 |
if human_label_idx is not None:
|
113 |
-
#
|
114 |
-
ai_probability =
|
115 |
elif ai_label_idx is not None:
|
116 |
# 如果有AI标签
|
117 |
ai_probability = float(probabilities[0][ai_label_idx].item())
|
@@ -145,17 +145,36 @@ def detect_ai_image(image):
|
|
145 |
# 分析图像特征
|
146 |
image_features = analyze_image_features(image)
|
147 |
|
148 |
-
#
|
149 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
150 |
confidence_level = "高概率AI生成"
|
151 |
-
elif
|
152 |
confidence_level = "高概率人类创作"
|
153 |
else:
|
154 |
confidence_level = "无法确定"
|
155 |
|
156 |
# 构建最终结果
|
157 |
final_result = {
|
158 |
-
"ai_probability":
|
|
|
159 |
"confidence_level": confidence_level,
|
160 |
"individual_model_results": results,
|
161 |
"features": image_features
|
|
|
108 |
if "human" in label_lower or "real" in label_lower:
|
109 |
human_label_idx = idx
|
110 |
|
111 |
+
# 修改后的标签解释逻辑
|
112 |
if human_label_idx is not None:
|
113 |
+
# 反转解释,将human标签视为AI生成的指标
|
114 |
+
ai_probability = float(probabilities[0][human_label_idx].item())
|
115 |
elif ai_label_idx is not None:
|
116 |
# 如果有AI标签
|
117 |
ai_probability = float(probabilities[0][ai_label_idx].item())
|
|
|
145 |
# 分析图像特征
|
146 |
image_features = analyze_image_features(image)
|
147 |
|
148 |
+
# 应用特征权重调整AI概率
|
149 |
+
adjusted_probability = final_ai_probability
|
150 |
+
|
151 |
+
# 低边缘密度通常表示AI生成
|
152 |
+
if image_features["edge_density"] < 0.01:
|
153 |
+
adjusted_probability += 0.2
|
154 |
+
|
155 |
+
# 高纹理均匀性通常表示AI生成
|
156 |
+
if image_features["texture_homogeneity"] > 0.5:
|
157 |
+
adjusted_probability += 0.1
|
158 |
+
|
159 |
+
# 低噪声水平通常表示AI生成
|
160 |
+
if image_features["noise_level"] < 0.5:
|
161 |
+
adjusted_probability += 0.1
|
162 |
+
|
163 |
+
# 确保概率在0-1范围内
|
164 |
+
adjusted_probability = min(1.0, max(0.0, adjusted_probability))
|
165 |
+
|
166 |
+
# 调整后的阈值判断
|
167 |
+
if adjusted_probability > 0.5: # 降低AI判定阈值
|
168 |
confidence_level = "高概率AI生成"
|
169 |
+
elif adjusted_probability < 0.2: # 提高人类判定要求
|
170 |
confidence_level = "高概率人类创作"
|
171 |
else:
|
172 |
confidence_level = "无法确定"
|
173 |
|
174 |
# 构建最终结果
|
175 |
final_result = {
|
176 |
+
"ai_probability": adjusted_probability,
|
177 |
+
"original_ai_probability": final_ai_probability,
|
178 |
"confidence_level": confidence_level,
|
179 |
"individual_model_results": results,
|
180 |
"features": image_features
|