---
# System prepended metadata

title: 9/20-9/27 研究報告

---

---
title:  9/20-9/27 研究報告
tags: notes
disqus: hackmd
---

# 9/20-9/27 研究報告
 **openai-clip model 論文淺讀**
[Paper Src](https://arxiv.org/pdf/2103.00020.pdf)

 **以往的視覺系統模型的訓練方法缺點**
>模型通常基於預先定義的固定類別集合進行訓練，例如ImageNet有1000個類，CIFAR 10有10個類，CIFAR 100有100個類，coco有80個類，city scapes有19個類，而Kinetics資料集有400個類。這種固定的類別集合簡化了資料收集和模型訓練的過程，但也限制了模型的泛化能力，尤其是在識別新的物件類別時。對於新的類別，需要每次都收集新的資料並重新訓練模型，這是一個瓶頸，當scale大了，便很難增強模型。


**改善方法**
> Learning directly from raw
text about images is a promising alternative which
leverages a much broader source of supervision.
We demonstrate that the simple pre-training task
of predicting which caption goes with which image is an efficient and scalable way to learn SOTA
image representations from scratch on a dataset
of 400 million (image, text) pairs collected from
the internet


直接從自然語言去得到一些監督信號
因為他的監督信號涵蓋範圍相對廣，只要是你語言描述過的物體就有可能讓這個視覺模型 去識別這個物體, 而不僅僅是你提前定義好的那1,000個類別
並且已經證實了用一個非常簡單的一個預訓練任務就可以非常高效的、可擴展的去學習到一些 最好的,這個圖像的表徵。

也就是說給定你一張圖片,給你一些句子然後模型需要去判斷這屬於哪一個句子,也就是 哪一個題目跟這個圖片是配對的

alias，你的訓練樣本必須是一個圖片文字的配對
為了實現，作者去爬了一個4億的這個圖片文字配對的dataset
之後利用自監督的訓練方式去預訓練一個大模型

CLIP這篇paper提過是用本身是用多模態的對比學習去完成模型訓練，在這個預訓練完成後，自然語言就被用來去引導這個視覺模型去做物體的分類
也就是我們之前說過的這個prompt.並且分類也不只侷限於目前已經學到的這種視覺概念,他還能擴展到新的類別.
利用這個特點這個模型能夠直接在下游任務往上去做zero shot的推理

**實作:**
利用開源的[OpenAI clip repo](https://github.com/openai/CLIP) 
實作 顯示圖檔與各類別的預測機率
利用政府開放式平台的資料 - 各路口監視器實時影像獲取影像並判斷車輛類別/車流擁擠/車道暢通
(因此圖有紅燈也有綠燈所以不適合判定號誌)
![](https://hackmd.io/_uploads/B1OBmB1x6.png)


https://gist.github.com/ggosiang/c8c72d9da9f5ec83a3d49bd189acba32#file-openai-clip-puipui-ipynb

---
**CLIP prefix captioning論文淺讀**
[Paper Src](https://arxiv.org/pdf/2111.09734.pdf)

> Semantic Understanding: The model needs to understand the objects and elements in the image. For instance, it should recognize that an object in an image is a gift.
Diversity of Descriptions: There are numerous ways to describe a single image, and the training dataset typically dictates the preferable option for a given image.

*infer : 
they fine-tune a language model, extract the visual prefix of an input
image x using the CLIP encoder and the mapping network
F. We start generating the caption conditioned on the visual
prefix, and predict the next tokens one by one, guided by
the language model output. For each token, the language
model outputs probabilities for all vocabulary tokens, which
are used to determine the next one by employing a greedy
approach or beam search.*

與現有方法相比此模型被強調為更簡單、更快速、更輕量化。

論文討論了圖像標題生成任務所帶來的挑戰，例如語義理解，這包括從檢測主要對象到理解圖像中描繪部分之間的關係。

語義理解：模型需要理解圖像中的對象和元素。例如，它應該識別出圖像中的一個對象是禮物。

描述的多樣性：描述單一圖像有許多種方法，Dataset通常決定了給定圖像的首選選項。
作者提供了由他們的處理的 Clip 模型 生成的圖像和相應標題的範例，並展示了其生成有意義標題的能力。這些文字標題描繪了各種情景，例如政治家收到禮物、不同顏色領帶的拼貼畫、女性在日落時分海灘上練習瑜伽的剪影，以及秋天道路的俯視圖。

論文提到，目前已經有許多用於圖像標題生成的方法，這些方法通常利用一個encoder來捕捉視覺線索，並使用TextDecoder來生成最終標題。這些模型需要跨越視覺和文本表示之間的挑戰性差距，這使得它們非常消耗資源。


**實作:**
[利用別人處理好的Replicate Service](https://replicate.com/rmokady/clip_prefix_caption?prediction=zsg3xprbug6ust4qodfsnmynly) 
給一個狗的圖片，output一個針對此圖檔的敘述
![](https://hackmd.io/_uploads/HyMBSBJeT.png)
![](https://hackmd.io/_uploads/S111LSkl6.png)


[利用官方repo提供之colab](https://colab.research.google.com/drive/1tuoAC5F4sC7qid56Z0ap-stR3rwdk0ZV?usp=sharing)
上傳一個windows登入畫面供辨識

*inactivate beam-search*
![](https://hackmd.io/_uploads/HJk78ayxT.png)
*activate beam-search*
![](https://hackmd.io/_uploads/S1UTL6Jgp.png)


---

**proper noun**

[beam search ](https://www.width.ai/post/what-is-beam-search)
> 是一種啟發式圖搜尋演算法，在圖的解空間比較大的情況下，為了減少搜尋所佔用的空間和時間，在每一步深度擴展的時候，剪掉一些品質比較差的結點，保留下一些品質較高的結點。好處：減少了空間消耗，並提高了時間效率

[zero-shot](https://www.pinecone.io/learn/series/image-search/zero-shot-image-classification-clip/)


> 假設小明和爸爸，到了動物園，看到了馬，然後爸爸告訴他，這就是馬；之後，又看到了老虎，告訴他：「看，這種身上有條紋的動物就是老虎。」；最後，又帶他去看了熊貓，對他說：「你看這隻熊貓是黑白色的。」然後，爸爸給小暗安排了一個任務，讓他在動物園裡找一種他從沒見過的動物，叫斑馬，並告訴了小暗有關於斑馬的訊息：「斑馬有著馬的輪廓，身上有像老虎一樣的條紋，而且它像熊貓一樣是黑白色的。」最後，小暗根據爸爸的提示，在動物園裡找到了斑馬（意料之中的結局。。）。

上述例子中包含了一個人類的推理過程，就是利​​用過去的知識（馬，老虎，熊貓和斑馬的描述），在腦海中推理出新對象的具體形態，從而能對新對象進行辨認。 （如圖1）ZSL就是希望能夠模仿人類的這個推理過程，使得電腦具有辨識新事物的能力。