DG-Net快速理解

简介: reid相关DG-Net算法快速理解。

Joint Discriminative and Generative Learning for Person Re-identification


论文地址:https://arxiv.org/abs/1904.07223
源码:https://github.com/NVlabs/DG-Net (正在跑)
视频链接:https://www.bilibili.com/video/av51439240/ (还没来得及看)


论文快速理解

限制行人重识别效果的一大问题是 不同摄像头下同一人的特征差异较大,即intra-class variation的影响。同时常用的行人重识别数据集中数据量的大小限制了模型效果。所以作者希望在扩增训练数据的同时增强数据的invariance。

一般用GAN来辅助行人重识别任务,都是直接用GAN完成数据扩增的部分,生成大量fake数据,在这些数据上进行训练。作者认为在这种情况下,GAN的部分也是一个单独的模型,和reid模型仍然是分开的。

论文中提出了名为DG-NET的模型。利用了GAN来进行数据扩增从而辅助REID模型的分类效果。并且GAN和REID模型是联合在一起形成了一个统一的框架来进行的。

image.png

Generative module

首先介绍generative module生成模块,在这一部分,作者使用了两个encoder对原始输入图像进行编码,分别将原始输入图像投射到appearance space和structure space。其中appearance包括衣服颜色、纹理风格等相关的特征,而structure包括身体大小、姿态、位置、背景等因素。作者希望实现的情况是使用不同的appearance和structure的组合,来生成大量的1.质量足够好分不出真假;2. 包含足够多的diversity的新数据。

由于structure code中可能保留更多的spatial resolution,G生成器可能会忽略掉appearance的作用而过分看重structure,一个处理方法是,把structure encoder的输入转成灰度图

在生成模块的生成过程中,要考虑到以下的情况。

  1. self-identity generation

    1. appearance和structure都来自于同一张图片的情况,希望通过decoder生成的新的图像和原图实现像素层次上的一致,pixel-wise loss
      $$ L^{img_1}_{recon}=E[||x_i-G(a_i,s_i)||_1] $$

    2. appearance来自和structure同一人的情况,希望通过decoder生成的信徒下和原图实现像素层次上的一致,即给定一人的structure,使用该人的appearance都需要还原到structure对应的原图。
      $$ L^{img_2}_{recon}=E[||x_i-G(a_t,s_i)||_1] $$

    3. to force the appearance codes of different images to stay apart,use identification loss。这个部分个人理解就是确保原始图像分类正确。
      $$ L^s_{id}=E[-log(p(y_i|x_i))] $$

  2. cross-identity generation

    这种情况即appearance和structure来自不同人的情况。在该部分计算损失时就不考虑像素层次上一致了。考虑的时能够在生成图像上编码出原有的两个空间code。
    $$ L^{code_1}_{recon}=E[||a_i-E_a(G(ai,sj)||_1]\\ L^{code_1}_{recon}=E[||s_j-E_s(G(ai,sj)||_1] $$
    第一行是使用appearance encoder对生成图像进行编码出的新的appearance code需要和用于生成图像的appearance code一致。第二行是structure code。

    同时我们希望生成的图像和它的appearance code具有一样的类别。
    $$ L^c_{id}=E[-log(p(y_i|x^i_j))] $$
    生成和分解的部分都有了,就需要再考虑一下对抗损失。尽可能把原始图像判断为真图像,生成图像判断为假图像。
    $$ L_{adv}=E[logD(x_i)+log(1-D(G(a_i,s_j))] $$

    Discriminative Module

    判别模块组合在生成模块里面,一起共享appearance encoder,用于最后的行人重识别。作者为了充分利用生成图像,提出了两个损失。

    1. Primary feature learning

      这一部分比较神奇,作者使用在原始数据集上训练的REID模型作为老师,让自己的架构里要训练的模型向老师模型的结果进行学习,这属于模型蒸馏的一个技巧。
      $$ L_{prim}=E[-\sum^K_{k=1}q(k|x^i_j)log(\frac{p(k|x^i_j)}{q(k|x^i_j)})] $$
      使用KL散度作为两个模型的学到的概率分布的损失。

    2. Fine-grained feature mining
      $$ L_{fine}=E[-log(P(y_j|x^i_j))] $$
      这里把同一个structure code和不同的appearance code组合起来的生成图像都认为是和structure code一个类别。这一部分和前面的正好相反,个人感觉应是模拟同一人的不同衣服的变化。

最终对appearance encoder,structure encoder,decoder和discriminator进行联合训练。得到的损失函数是
$$ L_{total}(E_a,E_s,G,D)=\lambda_{img}L^{img}_{recon}+L^{code}_{recon}+L^s_{id}+\lambda_{id}L^c_{id}+L_{adv}+\lambda_{prim}L_{prim}+\lambda_{fine}L_{fine} $$
也就是把之前提到的所有损失都计算进来了。

相关文章
|
消息中间件 大数据 关系型数据库
大数据框架NiFi
NiFi 是一个易于使用,功能强大,可靠的处理和分发数据框架。主要用于数据的同步传输,支持灵活的数据格式转换,同时可以设置定时调度任务,他是一个数据同步框架,类似于 kettle。
864 0
|
存储 SQL 关系型数据库
MySQL - 深入理解锁机制和实战场景
MySQL - 深入理解锁机制和实战场景
415 0
|
定位技术 API 开发工具
iOS测试技巧:GPX文件修改经纬度(com.apple.dt.simulatelocation)
iOS测试技巧:GPX文件修改经纬度(com.apple.dt.simulatelocation)
2154 0
iOS测试技巧:GPX文件修改经纬度(com.apple.dt.simulatelocation)
|
1月前
|
数据采集 人工智能 缓存
2025年,告别手动数据爬取,Coze AI Agent助你全程无忧!
本文介绍如何利用Coze AI Agent构建智能数据采集方案,实现从网站抓取到数据清洗、存储的全流程自动化。通过可视化工作流设计,该方案可将人工日均处理量从不足百条提升至无限制自动采集,大幅提升数据工作效率。
|
自然语言处理 算法 大数据
Python大数据:jieba分词,词频统计
实验目的 学习如何读取一个文件 学习如何使用DataFrame 学习jieba中文分词组件及停用词处理原理 了解Jupyter Notebook 概念 中文分词 在自然语言处理过程中,为了能更好地处理句子,往往需要把句子拆开分成一个一个的词语,这样能更好的分析句子的特性,这个过程叫就叫做分词。
9736 0
|
6月前
|
前端开发 API 开发者
一键抠图有多强?19Kstar 的 Rembg 开源神器,5 大实用场景颠覆想象!
Rembg是一款基于Python的开源抠图工具,利用深度学习模型(U-Net/U-2-Net)实现高质量背景移除。它支持命令行、Python API、服务端API及插件等多种形式,适用于电商商品图、社交头像优化、设计项目图像等场景。凭借高精准度、即插即用特性和全面生态,Rembg在GitHub上已获19.1K星,成为开发者社区中的热门工具。其本地部署特性确保数据隐私,适合专业与商业环境使用。项目地址:https://github.com/danielgatis/rembg。
1884 24
|
6月前
|
编解码 搜索推荐
mp4视频压缩小软件,怎么让mp4视频压缩,小丸视频压缩,小丸b站压制视频,b站视频压制小丸绿色免费版
小丸工具箱是一款傻瓜型视频压制工具,支持H264+AAC视频编码,内核采用x264、neroaac、mp4box等开源软件。它集成了强大的编码压缩技术(如x264和x265)、多格式兼容(MP4、MKV、AVI等)、音频处理(AAC编码)以及批量处理功能,同时提供丰富的参数自定义选项。用户可通过简单步骤完成视频导入、参数设置、压缩处理及输出查看,适合不同水平的视频处理需求。
529 11
|
前端开发 数据挖掘 测试技术
R中单细胞RNA-seq分析教程 (6)
R中单细胞RNA-seq分析教程 (6)
664 12
R中单细胞RNA-seq分析教程 (6)
|
11月前
|
安全 Linux 测试技术
OS 升级迭代与向前向后兼容问题
本次分享的主题是OS 升级迭代与向前向后兼容问题,由中科方德内核研发工程师李力琼分享。主要分为四个部分: 1. OS更新的兼容性问题 2. 内核API向后兼容 3. 内核API向前兼容 4. 内核API的修改
361 2
|
开发工具 Android开发 图形学
【2015~2024】大牛直播SDK演化史
大牛直播SDK始创于2015年,旨在提供低延迟的RTMP推拉流解决方案,特别适用于毫秒级延迟的应用场景。初始版本针对Android平台实现RTMP直播推送,随后扩展至Windows、iOS和Linux平台,支持RTMP与RTSP播放器,延迟稳定在一秒以内。SDK涵盖实时推流、播放、GB28181设备接入、录像、多路流媒体转发、轻量级RTSP服务等多种功能,并支持H.265编码格式。该SDK适用于在线教育、智慧安防等多个行业场景,并已发展成为GitHub上获得超过10000星标的强大跨平台流媒体内核直播SDK。
719 1

热门文章

最新文章