aaappp7878 commited on
Commit
2daec1f
·
verified ·
1 Parent(s): c200fda

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -7
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
- # 根据标签确定AI概率
112
  if human_label_idx is not None:
113
- # 如果有human标签,AI概率是1减去human概率
114
- ai_probability = 1 - 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,17 +145,36 @@ def detect_ai_image(image):
145
  # 分析图像特征
146
  image_features = analyze_image_features(image)
147
 
148
- # 确定置信度级别
149
- if final_ai_probability > 0.7:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
150
  confidence_level = "高概率AI生成"
151
- elif final_ai_probability < 0.3:
152
  confidence_level = "高概率人类创作"
153
  else:
154
  confidence_level = "无法确定"
155
 
156
  # 构建最终结果
157
  final_result = {
158
- "ai_probability": final_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