Skip to content

doge316/PhotoCleaner

Repository files navigation

PhotoCleaner

这是一个基于 YOLOv8 分割模型的路人消除辅助项目。它会先识别图片中的人物,再根据人物框的位置、面积和置信度,自动判断谁更像主体人物,谁更像路人,并生成对应的主体掩码和路人掩码,然后使用 LaMa 修复模型进行消除和修复。

新增前端

项目新增了一个本地 Web 前端,支持:

  • 单张图片上传处理
  • 批量图片或目录扫描处理
  • 原图 / 结果图对比预览
  • 处理历史查看
  • 本地结果保存与日志记录

前端入口:

streamlit run app.py

如果只想运行原始命令行脚本:

python yolo-analyzer.py

安装依赖:

pip install -r requirements.txt

目录结构

  • photo_cleaner_core.py:可复用的识别 / 消除核心逻辑
  • app.py:Streamlit 前端
  • yolo-analyzer.py:命令行入口
  • yolov8s-seg.pt:YOLOv8 模型(有权重)
  • 消除路人/训练集/:输入图片目录
  • 消除路人/结果集/:处理后的结果目录
  • runs/segment/:Ultralytics 默认输出目录,运行yolo后生成
  • mask:保存生成的掩码图,需要自己新建mask文件夹

环境依赖

项目主要依赖以下库:

  • ultralytics
  • numpy
  • opencv-python
  • pillow

运行方式

当前脚本会直接读取 消除路人/训练集/test1.png,并调用 yolov8s-seg.pt 做人物分割分析。

python yolo-analyzer.py

运行后,脚本会:

  • 只检测 person 类别
  • 计算每个人物的主体分数
  • 选择最像主体的人物作为主目标
  • 将其他人物视为路人
  • 输出主体掩码和路人掩码
  • 默认用 LaMa 把路人区域修复掉
  • 在控制台打印每个人的框、置信度、分数和面积

核心规则

脚本里用来判断主体人物的规则比较直接:

  • 框面积越大,分数越高
  • 框越接近图片中心,分数越高
  • 模型置信度越高,分数越高
  • 分数达到最高分的 75% 以上,可能会一起被视为主体
  • 面积小于整张图 3% 的人物,通常会被过滤掉

如果没有任何候选人物通过筛选,脚本至少会保留分数最高的人物。

输出结果

脚本会得到两个关键结果:

  • 主体掩码:主体人物区域的合并结果
  • 路人掩码:需要消除的路人区域的合并结果
  • 消除结果图:把路人区域直接修复后的最终图片,默认保存到 消除路人/结果集/test1_removed.png

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages