LSS:local self-similarity descriptor

本文探讨了局部自相似性描述子在图像和视频中的应用,该技术能够检测不同背景、不同服装下执行相同复杂动作的人。通过在像素点周围取patch和region,计算相关面并转化为abinnedlog-polarrepresentation来产生描述子,从而实现图像匹配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《Matching Local Self-Similarities across Images and Videos》,2007,CVPR

         局部自相似描述子:

         通常以前的描述子都假设相似的图像间会有相同的视觉特征,比如像素点的颜色、梯度、边缘等。通过提取这些特征,可以比对两张图像的相似度,诸如SIFT。

       但是如上图所示,它们之间没有相同的底层特征。但是它们各自局部自相似部分的几何布局一样。就是说在相似的相对位置上,具有相似的描述子值。所以LSS可以做到检测出不同人不同背景不同着装做出的同一个复杂动作。


      如上面两张图,取出对应的三个点,它们的自相似描述子非常类似(右边的圈圈)。


      如何产生自相似描述子?

      首先针对一个像素点q,以它为中心取一个patch(通常5*5),再以它为中心取一个region(比如以40个像素点为半径的区域)。

      然后再对取出的区域,用如下公式 (1)计算相关面correlation surface:

    
      再把这个相关面转化为a binned log-polar representation,即q为中心,转化为log极坐标,再分成80个bin,20个角度区间,4个半径区间。在每个bin里面取最大值,就可以形成自相关描述子矢量dq。因为是基于统计的,所以可以对抗一定的局部变形。

      要比较两张图片,就各自密集得计算出各个点的自相似描述子,再把描述子的相对位置附上,组合在一起就有了一张图像的表示方法。要找到两张图像的匹配区域,就是找到两张图像中一堆描述子的集合,它们有相近的值,相似的位置。

     over~~

在这个脚本基础上优化 @echo off setlocal enabledelayedexpansion :: ---------------------------- :: 基础配置(可修改区域) :: ---------------------------- set "UV=F:\Software\keil5\core\UV4\UV4.exe" set "project_root=%~dp0Multi_project" :: 工程根目录 :: ---------------------------- :: 命令行参数处理 :: ---------------------------- if not "%~1"=="" ( set "TARGET_PROJECT=%~1" call :validate_project call :compile exit /b %errorlevel% ) :: ---------------------------- :: 自动检测所有子工程 :: ---------------------------- echo Scanning projects in: %project_root% set "project_count=0" for /d %%a in ("%project_root%\*") do ( set /a "project_count+=1" set "project_name=%%~nxa" set "project_list=!project_list! !project_name!" ) echo Found %project_count% project(s) :: ---------------------------- :: 主编译流程 :: ---------------------------- for %%a in (%project_list%) do ( set "TARGET_PROJECT=%%a" call :compile if errorlevel 1 ( echo [ERROR] Build failed for: %%a exit /b 1 ) ) exit /b 0 :: ---------------------------- :: 子程序:工程验证 :: ---------------------------- :validate_project if not exist "%project_root%\%TARGET_PROJECT%" ( echo [ERROR] Project not exist: %TARGET_PROJECT% exit /b 2 ) if not exist "%project_root%\%TARGET_PROJECT%\%TARGET_PROJECT%_MCU.uvmpw" ( echo [ERROR] Project file missing: %TARGET_PROJECT%_MCU.uvmpw exit /b 3 ) exit /b 0 :: ---------------------------- :: 子程序:编译流程 :: ---------------------------- :compile echo. echo [INFO] Building project: %TARGET_PROJECT% :: 路径配置(自动生成带时间戳的日志文件) set "build_log=%~dp0logs\%TARGET_PROJECT%_%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%.log" set "uvproj_path=%project_root%\%TARGET_PROJECT%\%TARGET_PROJECT%_MCU.uvmpw" :: 清理并创建日志目录 if not exist "%~dp0logs\" md "%~dp0logs" break > "%build_log%" :: 执行编译命令 echo Project file: %uvproj_path% "%UV%" -j0 -r "%uvproj_path%" -o "%build_log%" :: ---------------------------- :: 错误检查 :: ---------------------------- if not exist "%build_log%" ( echo [ERROR] Log file missing: %build_log% exit /b 4 ) type "%build_log%" | findstr /i /r "\<Error\>" "\<error(s)\>" "\<错误\>" if %errorlevel% equ 0 ( echo [ERROR] Compilation failed: %TARGET_PROJECT% exit /b 1 ) echo [SUCCESS] Build completed: %TARGET_PROJECT% exit /b 0
最新发布
03-11
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值