feat: 色情图片识别(NudeNet);明暗档位改为5档(20%~100%)
This commit is contained in:
@@ -7,12 +7,12 @@ import "fmt"
|
||||
const neutralMargin = 0.15
|
||||
|
||||
// BrightnessName 根据暗色/亮色像素占比,给图片定"明暗等级",返回类似:
|
||||
// - "dark_70" → 暗色像素占 65%~75% 的暗图
|
||||
// - "bright_40" → 亮色像素占 35%~45% 的亮图
|
||||
// - "dark_80" → 暗色像素占 70%~90% 的暗图
|
||||
// - "bright_40" → 亮色像素占 30%~50% 的亮图
|
||||
// - "mid" → 明暗差不多,不好说谁多,归中性
|
||||
//
|
||||
// 判断规则(大白话):谁占得多、而且多出明显一截(超过 neutralMargin),
|
||||
// 就按谁命名,数字是占比取整到 10% 一档。
|
||||
// 就按谁命名,数字是占比取整到 20% 一档。
|
||||
func BrightnessName(darkScore, lightScore float64) string {
|
||||
switch {
|
||||
case lightScore > darkScore+neutralMargin:
|
||||
@@ -24,13 +24,13 @@ func BrightnessName(darkScore, lightScore float64) string {
|
||||
}
|
||||
}
|
||||
|
||||
// brightnessTier 把占比(0~1)取整到"最接近的 10%"作为档位数字,范围 10~100。
|
||||
// 例:0.30~0.39 → "30";0.96 以上 → "100"。
|
||||
// brightnessTier 把占比(0~1)取整到"最接近的 20%"作为档位数字,范围 20~100。
|
||||
// 例:0.30~0.50 → "40";0.96 以上 → "100"。
|
||||
// 这样文件夹名里的数字不会出现"明明很少却挂个大数字"的情况。
|
||||
func brightnessTier(score float64) int {
|
||||
tier := int(score*100+5) / 10 * 10
|
||||
if tier < 10 {
|
||||
return 10
|
||||
tier := int(score*100+10) / 20 * 20
|
||||
if tier < 20 {
|
||||
return 20
|
||||
}
|
||||
if tier > 100 {
|
||||
return 100
|
||||
|
||||
@@ -58,10 +58,22 @@ func (o Orientation) String() string {
|
||||
// - 「图片_GIF」:GIF 动图单独放(不做明暗分类)
|
||||
// - 「图片_横屏_1080P/bright_20」:普通图片 = 方向 + 清晰度,明暗作为其子目录
|
||||
func ImageDir(ext string, width, height int, darkScore, lightScore float64) string {
|
||||
return imageDir("图片", ext, width, height, darkScore, lightScore)
|
||||
}
|
||||
|
||||
// ImageDirSensitive 返回一张被判为色情的图片该进的文件夹路径,比如:
|
||||
// - 「图片_敏感_GIF」:GIF 单独放(不做明暗分类)
|
||||
// - 「图片_敏感_横屏_1080P/bright_20」:普通分类前加「_敏感」前缀,明暗仍是子目录
|
||||
func ImageDirSensitive(ext string, width, height int, darkScore, lightScore float64) string {
|
||||
return imageDir("图片_敏感", ext, width, height, darkScore, lightScore)
|
||||
}
|
||||
|
||||
// imageDir 拼出"类型 + 方向 + 清晰度 + 明暗子目录"这段路径。
|
||||
func imageDir(kind, ext string, width, height int, darkScore, lightScore float64) string {
|
||||
if strings.EqualFold(ext, ".gif") {
|
||||
return "图片_GIF"
|
||||
return kind + "_GIF"
|
||||
}
|
||||
dir := resolutionDir("图片", ext, width, height)
|
||||
dir := resolutionDir(kind, ext, width, height)
|
||||
return dir + "/" + BrightnessName(darkScore, lightScore)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user