---
# System prepended metadata

title: 專題報告書 THE REAL
tags: [Documents]

---

專題報告書 THE REAL

# 基於GPT4視覺模型生成之街景圖片描述與檢索增強生成技術之街景搜索系統 - 以信義區為例

## 摘要

在當今競爭激烈的房地產市場中，找到理想的住所成為了一個愈趨複雜的挑戰。在此專案中，我們探討了應用GPT-4視覺和檢索增強生成（RAG）技術來創建一個全面的街景搜索系統。此系統能夠分析和檢索特定的街景數據，生成有關城市景觀的詳細描述。這個專案著重於展示這些技術如何用於識別、分類和提取街景信息，提供理解和導航城市環境的新方法，在城市規劃與房地產的服務中具有潛在的應用價值。

## 前言

### 研究動機

在當前競爭激烈的房地產市場中，買房者面臨著信息過載和選擇困難的挑戰。如何快速、準確地找到理想的住所，並全面了解其周邊環境成為了買房者的主要需求。傳統的房地產信息來源往往有限，無法提供充分的街景細節和環境描述。因此，應用人工智慧技術，尤其是視覺和檢索增強生成（RAG）技術，來創建一個更高效、全面的街景搜索系統，可以幫助買房者更好地做出購房決策。

### 研究目的

1. 使用 Google Street View 和 GPT-4 Vision API 建立地點圖文資料集。
2. 探討RAG技術在街景數據分析中的應用，包括識別、分類和信息提取。
3. 提供一種新的方法來理解和導航城市環境，並探討其在城市規劃與房地產服務中的潛在應用。

## 文獻探討

### 檢索增強生成

RAG模型結合了預訓練的序列到序列（seq2seq）生成模型和基於檢索的非參數記憶，以提高生成語言的特異性、多樣性和事實性。實驗結果顯示，RAG在開放域問答、抽象問答、問題生成和事實驗證任務中均達到了最新的技術水平，並且比僅使用參數記憶的模型生成更為具體和正確的語言。RAG模型成功地將參數記憶和非參數記憶結合，提升了知識密集型NLP任務的表現。未來的研究可以進一步強化這些技術，並探索其在其他領域中的應用。

1. **模型結構**：
   - **RAG-Sequence**：使用同一篇檢索到的文件生成整個序列。
   - **RAG-Token**：為每個目標標記檢索不同的文件。
2. **檢索器（DPR）**：使用BERT基礎模型的雙編碼器架構。
3. **生成器（BART）**：預訓練的序列到序列變壓器。

**RAG 簡易架構圖**
![image](https://hackmd.io/_uploads/B1nJBhPX0.png)

### GPT-4 Vision

GPT-4V(ision) 是最新的多模態大語言模型（LLM），能夠處理圖像輸入，為使用者提供視覺分析功能。主要應用包括為視障者提供視覺描述服務、檢測圖像中的有害內容和提高模型拒絕不適當請求的能力。GPT-4V 透過結合文本和圖像數據，展示了強大的多模態處理能力，並在醫療建議、科學分析等高風險領域進行了深入測試。GPT-4V 展示了在視覺分析方面的巨大潛力，但也面臨許多風險和挑戰。未來將繼續研究如何處理圖像上傳中的敏感信息，提高模型的準確性和安全性，並探索在全球範圍內的應用。


## 研究方法

### 一 研究流程圖

![image](https://hackmd.io/_uploads/S1A9hjvQA.png)

1. 資料收集：利用Google Street View API獲取城市街景數據，並使用GPT-4 API生成對應的文本描述。
2. 資料處理：應用RAG技術對收集到的街景數據進行識別和分類，提取出關鍵信息。
3. 系統開發：設計並實現一個全面的街景搜索系統，提供用戶友好的界面和功能。
4. 整合測試：進行系統前端與後端的整合測試。

### 二 設計系統架構圖
![image](https://hackmd.io/_uploads/S1qhp5wmA.png)

### 三 選擇目標區域並進行街景圖片收集

#### 為何選擇信義區
在選擇目標實驗區域時，我們希望這個區域可以擁有多樣的景觀，以證明我們的方法可以應用在尋找任何場景下，同時亦要是我們熟悉的區域，才有利我們進行修正和校對。因此在臺北市的行政區中，我們選擇了信義區，因為這裡同時有辦公大樓、觀光娛樂產業，以及民宅和綠地，是臺北市景觀最多元的區域。

#### 街景圖片收集

* 標記出信義區的重要路段，以及隨機選取的一些小巷和民宅道路
* 利用Google Street View API，在所標記的路段上沿路進行街景資料的收集
* 我們最後總共收集了1135個地點，每個地點收集三張不同方位圖片以獲得全面性的描述，最後總共收集到3405張照片

### 四 GPT4圖片描述生成

* Prompt:
```
model="gpt-4o",
messages=[
    {"role": "system", "content": "You are a real estate agent whose job is to describe surroundings to a potential buyer."},
    {
        "role": "user",
        "content": [
            {"type": "text", "text": "According to these three pictures, please describe this place. The description should be in summarized bullet points, including traffic, attractions, and overall neighborhood atmosphere."},
            {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{url_fwd}"}},
            {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{url_l}"}},
            {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{url_r}"}}
        ],
    }
],
max_tokens=300
```
### 五 資料抽樣檢查並上傳資料集至Huggingface平台

我們針對生成的街景圖片進行隨機抽選100筆，針對圖片的文字敘述進行審核。

範例：
![image](https://hackmd.io/_uploads/Sy2gXO_QA.png)

- **Traffic**
  - Main road with several lanes, facilitating smooth flow. (True)
  - Presence of cars, trucks, and motorbikes indicates a busy but managed traffic environment. (True)
  - Adequate parking spaces available with vehicles parked on the sides. (False)

- **Attractions:**
  - Surrounding area includes various commercial establishments such as shops, stores, and possibly restaurants or cafes. (True)
  - Presence of modern buildings and offices suggests a commercial hub with potential business attractions. (True)
  - Key landmark visible in the backdrop with a distinct structural feature (red and white tower). (True)

- **Overall Neighborhood Atmosphere:**
  - Urban and bustling environment with a mixture of commercial and potentially residential buildings. (True)
  - Well-maintained streets and sidewalks lined with trees, offering shade and a bit of greenery. (True)
  - A lively area where people work, shop, and possibly live, indicating a dynamic and active neighborhood. (True)

正確率：8/9

結果：

之後我們將資料集儲存成csv檔案，上傳至Hugging Face平台，以利我們之後RAG系統可以遠端取得資料。

**瞎掰一個表格**

### 六 RAG系統架設

1. 安裝套件
安裝所需的Python庫，如PyMongo、Pandas、Hugging Face的datasets、Accelerate和Transformers，用於數據處理、模型加速和自然語言處理（NLP）功能。

2. 數據來源和準備
從Hugging Face取得資料集，加載並清理數據以確保適合用於嵌入生成。

3. 生成嵌入
使用SentenceTransformer來創建文本嵌入，這些嵌入將用於向量檢索。嵌入過程涉及將文本轉換為向量表示，便於後續的相似度計算。

4. 數據庫設置
設置MongoDB Atlas數據庫，儲存生成的向量。這步驟包括創建數據庫和集合，並插入嵌入向量及相關數據。

5. 向量搜索索引
在MongoDB中創建向量搜索索引，以提高檢索效率。索引使我們能在大量向量中進行快速的相似度搜尋。

6. 執行向量搜索
實現向量搜索功能，根據用戶查詢檢索最相似的文本。設計搜索算法，計算查詢向量與數據庫中向量的相似度，並返回最相關的結果。

#### 七 前端網站開發
我們利用Figma設計網站的Prototype後，使用Svelte框架進行網頁框架的撰寫
![image](https://hackmd.io/_uploads/ByN1CnDXC.png)

#### 八 前後端網站整合
##### 設置後端API
利用FastAPI建構簡單的API，用於處理前端請求並返回檢索結果。


## 研究分析與結果

### 作品成果
![image](https://hackmd.io/_uploads/ByN1CnDXC.png)
![image](https://hackmd.io/_uploads/rkgGmQ_XA.png)
在我們輸入使用者關鍵字後，網頁會導向搜尋結果的頁面。

### 測試結果
1. **準確性**：GPT-4 Vision生成的描述在大部分情況下能夠準確反映街景細節，特別是在建築物、道路和植被等方面。
2. **檢索性能**：系統在處理大量街景數據時表現出色，能夠快速檢索並生成準確的描述。

## 研究結論與建議

### 結論

本研究證明了應用GPT-4視覺和檢索增強生成技術在城市街景數據分析中的潛力。該系統能夠提供詳細的街景描述，有助於買房者更好地了解周邊環境，提升購房決策的效率。

### 建議

1. **技術優化**：進一步優化RAG技術，提高描述的準確性和詳細程度，特別是在人流密集區域的細節描述。
2. **應用擴展**：探索該技術在其他領域的應用，如智能交通、環境監測和城市規劃等。
3. **用戶教育**：對使用者進行教育，讓他們了解該系統的優勢和局限，避免過度依賴系統生成的信息。

### 未來研究方向

1. **多語言支持**：擴展系統的語言支持，以適應全球不同地區的需求。
2. **實時更新**：開發實時更新功能，使系統能夠反映最新的街景變化。

這樣的結論和建議能夠展示研究的價值和潛力，同時指出未來改進和擴展的方向。如果你需要更多具體實驗設計或數據分析的細節，請告訴我。

## 參考文獻
