Changelog

Changelog

[1.4.0] - 2025-09-22

Added

  • 新增批量处理脚本batch_rmbg.py
  • 添加ONNX量化支持(onnx/model_quantized.onnx)
  • 增加基准测试工具benchmark_rmbg.py

Changed

  • 优化预处理流程,推理速度提升15%
  • 更新transformers依赖至4.39.1版本
  • Dockerfile重构,镜像体积减少20%

Fixed

  • 修复透明背景边缘模糊问题
  • 解决大尺寸图像内存溢出bug

Removed

  • 移除过时的TensorFlow兼容性代码

> **最佳实践**:每个变更条目应包含"做了什么"和"影响范围",避免模糊表述如"优化性能"

### 2.2 自动化CHANGELOG生成流程

![mermaid](https://web-api.gitcode.com/mermaid/svg/eNpLy8kvT85ILCpRCHHhUgACx-hn_ROe7FryZPfi5wsaYxV0de1qXjZufbpv1fNdy56um_V0Tz9EQY2CU3R6ZolCcn5uLpDSzVVQT0tNLLFSeLZ999OuBc86d75s73-6pOX5hLanXfNfNO9VjwVb4AQyUsE5-sXyZU_7Jzp7Ptva-GzDlue79kOkncHSLtEv9k94sbCnODU3Ma8kM1m3KDUnNbE4FaLGBazGFWjE4mfzJkAc8LSv7Wn_Joi8K1jeLfr5lPnPOiY4ezj6ubv6-Ls_m7vw-ex1ECVuYCXu0c9mb3k2bcPzzo5nc9Y87d8OkXQHS3pEP-2Y_XT3LvfMEo_SJIUgqAsAi0-IwQ)

**关键技术点**:
- **约定式提交**(Conventional Commits)格式:

<类型>[可选作用域]: <描述>

[可选正文]

[可选脚注]

- 类型包括:feat(新功能)、fix(修复)、docs(文档)、style(格式)、refactor(重构)、perf(性能)、test(测试)、build(构建)

### 2.3 RMBG项目版本控制现状分析

通过对项目文件的系统分析,发现当前版本管理存在以下问题:

1. **版本号散落**:
 - config.json中存在"_name_or_path": "briaai/RMBG-1.4"
 - README.md提到"New RMBG version available! Check out RMBG-2.0"
 - 但未在代码中定义`__version__`变量(搜索*.py文件未发现版本定义)

2. **缺乏变更记录**:
 - 项目根目录未找到CHANGELOG.md文件
 - 提交历史未采用约定式提交规范
 - 无法追溯1.4.0版本的具体变更内容

3. **版本验证缺失**:
 - requirements.txt仅指定transformers>=4.39.1,未锁定依赖版本
 - 缺少版本兼容性测试用例

## 三、落地实践:从零构建RMBG版本控制系统

### 3.1 版本号管理实现

**第一步:在MyConfig.py中添加版本定义**

```python
from transformers import PretrainedConfig
from typing import List

class RMBGConfig(PretrainedConfig):
  model_type = "SegformerForSemanticSegmentation"
  VERSION = "1.4.0"  # 主版本.次版本.修订号
  
  def __init__(
      self,
      in_ch=3,
      out_ch=1,
      **kwargs):
    self.in_ch = in_ch
    self.out_ch = out_ch
    super().__init__(** kwargs)
    
  @property
  def version_tuple(self):
      return tuple(map(int, self.VERSION.split('.')))

第二步:创建版本管理工具version.py

import re
from pathlib import Path

VERSION_PATTERN = re.compile(r'VERSION\s*=\s*"(\d+\.\d+\.\d+)"')
FILES_TO_UPDATE = [
    "MyConfig.py",
    "config.json",
    "README.md"
]

def get_current_version():
    with open("MyConfig.py", "r") as f:
        match = VERSION_PATTERN.search(f.read())
        return match.group(1) if match else "0.0.0"

def update_version_files(new_version):
    for path in FILES_TO_UPDATE:
        content = Path(path).read_text()
        if path == "config.json":
            updated = re.sub(
                r'"_name_or_path":\s*"briaai/RMBG-\d+\.\d+"',
                f'"_name_or_path": "briaai/RMBG-{new_version}"',
                content
            )
        elif path == "MyConfig.py":
            updated = VERSION_PATTERN.sub(f'VERSION = "{new_version}"', content)
        elif path == "README.md":
            updated = re.sub(
                r'RMBG-\d+\.\d+', 
                f'RMBG-{new_version}', 
                content
            )
        Path(path).write_text(updated)

3.2 CHANGELOG自动化配置

安装python-semantic-release

pip install python-semantic-release
semantic-release init

配置setup.cfg

[semantic_release]
version_toml = pyproject.toml
upload_to_pypi = false
upload_to_release = true
branch = main
build_command = python -m build
commit_author = "Version Bot <bot@example.com>"

创建CHANGELOG.md模板

# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [1.4.0] - 2025-09-22
### Added
- 初始版本提交
- 支持ONNX格式导出(model.onnx, model_fp16.onnx, model_quantized.onnx)
- 批量处理脚本batch_rmbg.py

### Changed
- 基于IS-Net架构优化,提升复杂背景分割精度

### Fixed
- 修复边缘模糊问题

3.3 版本控制与CI/CD集成

GitHub Actions工作流配置 (.github/workflows/version.yml)

name: Version Management

on:
  push:
    branches: [ main ]

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
          
      - name: Set up Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.10"
          
      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          pip install -r requirements.txt
          pip install python-semantic-release
          
      - name: Run semantic release
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: semantic-release version --major --no-vcs-release

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值