MSI Net
模型概述
MSI-Net是一種基於卷積神經網絡架構的視覺顯著性預測模型,包含ASPP模塊以捕獲多尺度特徵,並結合全局場景信息實現準確預測。
模型特點
多尺度特徵提取
通過ASPP模塊中的不同膨脹率卷積層並行捕獲多尺度特徵
全局場景信息整合
將生成的表示與全局場景信息相結合,提高預測準確性
輕量級設計
約2500萬參數,適合計算資源有限的應用場景
模型能力
視覺顯著性預測
人類注視點預測
圖像分析
使用案例
人機交互
界面設計評估
預測用戶可能關注的界面區域,優化設計佈局
提高用戶界面設計的有效性
廣告效果分析
廣告注意力預測
分析廣告圖像中最可能吸引注意力的區域
優化廣告內容佈局
🚀 MSI-Net
🤖 MSI-Net 是一個視覺顯著性模型,它利用基於眼動數據訓練的上下文編解碼器網絡,預測人類在自然圖像上的注視點。該模型採用卷積神經網絡架構,結合多尺度特徵捕獲和全局場景信息,實現精準預測,且參數規模適合計算資源有限的應用。
🤗 可以在 HuggingFace Spaces 上找到該模型的演示。
🚀 快速開始
安裝依賴
要安裝所需的依賴項,可以使用 pip
或 conda
:
pip install -r requirements.txt
conda env create -f requirements.yml
使用示例
基礎用法
# 導入依賴
import matplotlib.pyplot as plt
import numpy as np
import tensorflow as tf
from huggingface_hub import snapshot_download
# 下載倉庫文件
hf_dir = snapshot_download(repo_id="alexanderkroner/MSI-Net")
# 加載顯著性模型
model = tf.keras.models.load_model(hf_dir)
# 加載用於預處理輸入和後處理輸出的函數
def get_target_shape(original_shape):
original_aspect_ratio = original_shape[0] / original_shape[1]
square_mode = abs(original_aspect_ratio - 1.0)
landscape_mode = abs(original_aspect_ratio - 240 / 320)
portrait_mode = abs(original_aspect_ratio - 320 / 240)
best_mode = min(square_mode, landscape_mode, portrait_mode)
if best_mode == square_mode:
target_shape = (320, 320)
elif best_mode == landscape_mode:
target_shape = (240, 320)
else:
target_shape = (320, 240)
return target_shape
def preprocess_input(input_image, target_shape):
input_tensor = tf.expand_dims(input_image, axis=0)
input_tensor = tf.image.resize(
input_tensor, target_shape, preserve_aspect_ratio=True
)
vertical_padding = target_shape[0] - input_tensor.shape[1]
horizontal_padding = target_shape[1] - input_tensor.shape[2]
vertical_padding_1 = vertical_padding // 2
vertical_padding_2 = vertical_padding - vertical_padding_1
horizontal_padding_1 = horizontal_padding // 2
horizontal_padding_2 = horizontal_padding - horizontal_padding_1
input_tensor = tf.pad(
input_tensor,
[
[0, 0],
[vertical_padding_1, vertical_padding_2],
[horizontal_padding_1, horizontal_padding_2],
[0, 0],
],
)
return (
input_tensor,
[vertical_padding_1, vertical_padding_2],
[horizontal_padding_1, horizontal_padding_2],
)
def postprocess_output(
output_tensor, vertical_padding, horizontal_padding, original_shape
):
output_tensor = output_tensor[
:,
vertical_padding[0] : output_tensor.shape[1] - vertical_padding[1],
horizontal_padding[0] : output_tensor.shape[2] - horizontal_padding[1],
:,
]
output_tensor = tf.image.resize(output_tensor, original_shape)
output_array = output_tensor.numpy().squeeze()
output_array = plt.cm.inferno(output_array)[..., :3]
return output_array
# 加載並預處理示例圖像
input_image = tf.keras.utils.load_img(hf_dir + "/example.jpg")
input_image = np.array(input_image, dtype=np.float32)
original_shape = input_image.shape[:2]
target_shape = get_target_shape(original_shape)
input_tensor, vertical_padding, horizontal_padding = preprocess_input(
input_image, target_shape
)
# 將輸入張量輸入到模型中
output_tensor = model(input_tensor)["output"]
# 後處理並可視化輸出
saliency_map = postprocess_output(
output_tensor, vertical_padding, horizontal_padding, original_shape
)
alpha = 0.65
blended_image = alpha * saliency_map + (1 - alpha) * input_image / 255
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.imshow(input_image / 255)
plt.title("輸入圖像")
plt.axis("off")
plt.subplot(1, 2, 2)
plt.imshow(blended_image)
plt.title("顯著性圖")
plt.axis("off")
plt.tight_layout()
plt.show()
✨ 主要特性
- 多尺度特徵捕獲:採用帶有不同膨脹率的多個卷積層的 ASPP 模塊,並行捕獲多尺度特徵。
- 結合全局信息:將多尺度特徵表示與全局場景信息相結合,實現更準確的視覺顯著性預測。
- 參數規模適中:大約包含 2500 萬個參數,適合計算資源有限的應用。
📚 詳細文檔
數據集
在對注視數據進行模型訓練之前,編碼器的權重是從在 ImageNet 分類任務上預訓練的 VGG16 骨幹網絡初始化的。然後,該模型在 SALICON 數據集上進行訓練,該數據集包含鼠標移動記錄,作為注視測量的代理。最後,可以在人類眼動跟蹤數據上對權重進行微調。因此,MSI-Net 也在以下其中一個數據集上進行了訓練,不過這裡我們僅提供 SALICON 基礎模型:
數據集 | 圖像數量 | 每張圖像的觀察者數量 | 觀看時長 | 記錄類型 |
---|---|---|---|---|
SALICON | 10000 | 16 | 5s | 鼠標跟蹤 |
MIT1003 | 1003 | 15 | 3s | 眼動跟蹤 |
CAT2000 | 4000 | 24 | 5s | 眼動跟蹤 |
DUT-OMRON | 5168 | 5 | 2s | 眼動跟蹤 |
PASCAL-S | 850 | 8 | 2s | 眼動跟蹤 |
OSIE | 700 | 15 | 3s | 眼動跟蹤 |
FIWI | 149 | 11 | 5s | 眼動跟蹤 |
本模型的評估結果可在原始的 MIT 顯著性基準 和更新後的 MIT/Tübingen 顯著性基準 上查看。後者的結果來自預測顯著性圖的概率表示,並進行了特定指標的後處理,以便進行公平的模型比較。
侷限性
- 泛化性問題:MSI-Net 是在自由觀看範式下收集的人類注視數據上訓練的。因此,預測的顯著性圖可能無法推廣到在實驗中接受任務指令的觀察者。此外,訓練數據主要由自然圖像組成。因此,對於特定類型的圖像(如分形、圖案)或對抗性示例的注視預測可能不太準確。
- 潛在偏差:基於顯著性的裁剪算法,曾在 2018 年至 2021 年間應用於社交媒體平臺 Twitter 上上傳的圖像,已顯示出 種族和性別方面的偏差。因此,謹慎使用顯著性模型並認識到其應用中可能涉及的潛在風險非常重要。
引用
如果您發現此代碼或模型有用,請引用以下論文:
@article{kroner2020contextual,
title={Contextual encoder-decoder network for visual saliency prediction},
author={Kroner, Alexander and Senden, Mario and Driessens, Kurt and Goebel, Rainer},
url={http://www.sciencedirect.com/science/article/pii/S0893608020301660},
doi={https://doi.org/10.1016/j.neunet.2020.05.004},
journal={Neural Networks},
publisher={Elsevier},
year={2020},
volume={129},
pages={261--270},
issn={0893-6080}
}
📄 許可證
本項目採用 MIT 許可證。
Clipseg Rd64 Refined
Apache-2.0
CLIPSeg是一種基於文本與圖像提示的圖像分割模型,支持零樣本和單樣本圖像分割任務。
圖像分割
Transformers

C
CIDAS
10.0M
122
RMBG 1.4
其他
BRIA RMBG v1.4 是一款先進的背景移除模型,專為高效分離各類圖像的前景與背景而設計,適用於非商業用途。
圖像分割
Transformers

R
briaai
874.12k
1,771
RMBG 2.0
其他
BRIA AI開發的最新背景移除模型,能有效分離各類圖像的前景與背景,適合大規模商業內容創作場景。
圖像分割
Transformers

R
briaai
703.33k
741
Segformer B2 Clothes
MIT
基於ATR數據集微調的SegFormer模型,用於服裝和人體分割
圖像分割
Transformers

S
mattmdjaga
666.39k
410
Sam Vit Base
Apache-2.0
SAM是一個能夠通過輸入提示(如點或框)生成高質量對象掩碼的視覺模型,支持零樣本分割任務
圖像分割
Transformers 其他

S
facebook
635.09k
137
Birefnet
MIT
BiRefNet是一個用於高分辨率二分圖像分割的深度學習模型,通過雙邊參考網絡實現精確的圖像分割。
圖像分割
Transformers

B
ZhengPeng7
626.54k
365
Segformer B1 Finetuned Ade 512 512
其他
SegFormer是一種基於Transformer的語義分割模型,在ADE20K數據集上進行了微調,適用於圖像分割任務。
圖像分割
Transformers

S
nvidia
560.79k
6
Sam Vit Large
Apache-2.0
SAM是一個能夠通過輸入提示點或邊界框生成高質量物體掩膜的視覺模型,具備零樣本遷移能力。
圖像分割
Transformers 其他

S
facebook
455.43k
28
Face Parsing
基於nvidia/mit-b5微調的語義分割模型,用於面部解析任務
圖像分割
Transformers 英語

F
jonathandinu
398.59k
157
Sam Vit Huge
Apache-2.0
SAM是一個能夠根據輸入提示生成高質量對象掩碼的視覺模型,支持零樣本遷移到新任務
圖像分割
Transformers 其他

S
facebook
324.78k
163
精選推薦AI模型
Llama 3 Typhoon V1.5x 8b Instruct
專為泰語設計的80億參數指令模型,性能媲美GPT-3.5-turbo,優化了應用場景、檢索增強生成、受限生成和推理任務
大型語言模型
Transformers 支持多種語言

L
scb10x
3,269
16
Cadet Tiny
Openrail
Cadet-Tiny是一個基於SODA數據集訓練的超小型對話模型,專為邊緣設備推理設計,體積僅為Cosmo-3B模型的2%左右。
對話系統
Transformers 英語

C
ToddGoldfarb
2,691
6
Roberta Base Chinese Extractive Qa
基於RoBERTa架構的中文抽取式問答模型,適用於從給定文本中提取答案的任務。
問答系統 中文
R
uer
2,694
98