AD RDer 是一個即時、動態的智慧廣告推薦系統。本系統透過攝影機鏡頭捕捉並分析螢幕前的觀眾,利用多種機器學習模型即時判斷觀眾的特徵(如年齡、性別、情緒等),並根據這些特徵動態推薦最適合的廣告內容。
我們的目標是最大化廣告效益,為觀眾提供更具吸引力和個人化的廣告體驗,同時讓廣告主能更精準地觸及目標客群。
本系統的核心運作流程如下:
-
人臉偵測與特徵分析:
- 系統透過攝影機持續偵測螢幕前的觀眾。
- 當偵測到觀眾時,會將每個人獨立出來進行分析。
- 運用多個輕量化模型,分別判斷每個人的年齡層、性別、情緒狀態(例如:開心、難過)以及是否注視螢幕等特徵。
-
廣告偏好度計算:
- 系統內建一個廣告偏好度資料庫 (
ad_preferences.json),記錄了不同特徵對於各類廣告的喜好程度分數。 - 針對單一觀眾,系統會根據其所有被偵測到的特徵,疊加計算出他對每一類廣告的總偏好度分數。
- 系統內建一個廣告偏好度資料庫 (
-
權重調整:
- 管理者可以根據不同的廣告活動或場景,在
weights.json檔案中自行調整各項特徵的權重。例如,在特定活動中,可以將「情緒」的權重調高,使系統更側重於根據觀眾情緒來推薦廣告。
- 管理者可以根據不同的廣告活動或場景,在
-
最終廣告推薦:
- 單人情況:系統會找出總偏好度分數最高的廣告類別,並立即在螢幕上播放該類別的廣告。
- 多人情況:系統會將在場所有觀眾的偏好度分數進行匯總疊加,計算出一個整體的偏好度分數表,並播放總分最高的廣告,以滿足最多數觀眾的喜好。
我們的推薦機制是基於深入的市場調查與數據分析所建立。透過分析不同族群對廣告內容的偏好,我們建構了 ad_preferences.json 中的評分系統,以下是我們的部分調查結果:
研究發現,超過七成的民眾對於個人化的廣告推薦抱持正面態度,認為這能提供更符合需求的資訊,並增加他們的觀看意願。
不同年齡層與性別的觀眾,對於廣告內容有著顯著的偏好差異。例如,年輕男性對遊戲類廣告的興趣較高,而成熟女性則更關注服飾與旅遊相關內容。我們的系統會根據這些差異,進行精準推薦。
觀眾的情緒狀態會直接影響他們對廣告內容的接受度。在心情愉快時,觀眾更容易接受美食、旅遊等享樂型廣告;而在情緒低落時,輕鬆有趣的內容則更能吸引他們的注意。
觀眾對於廣告螢幕的注視時間,是判斷其興趣度的重要指標。當系統偵測到觀眾正在注視螢幕時,會判定其具有較高的潛在興趣,並給予更高的推薦分數。
- 即時反應:能夠即時分析並立即播放最合適的廣告。
- 多人偵測:支援多位觀眾同時在場,並能整合所有人的偏好,做出最佳決策。
- 動態權重:可靈活調整不同特徵的影響力,適應各種商業需求。
- 高度客製化:廣告偏好度和特徵權重皆可透過設定檔 (
config/) 輕鬆修改,無需更改程式碼。
為了讓我們的廣告推薦系統更加完善,我們需要您寶貴的意見!請點擊下方連結,花費幾分鐘時間填寫問卷,您的回饋是我們進步的最大動力。
請確保您的環境已安裝以下套件:
numpy
opencv-python
Pillow
mediapipe==0.10.21
tflite-runtime
psutil
您可以透過以下指令進行安裝:
pip install -r requirements.txt本專案的核心邏輯由兩個設定檔驅動,位於 config/ 資料夾下:
此檔案定義了不同特徵與廣告類別之間的關聯分數。
age_gender:根據性別與年齡層,設定對各類廣告的基礎分數。emotion_content:根據偵測到的情緒(如happy,sad),推薦相對應的內容。interest:根據觀眾是否正在注視螢幕 (is_looking) 來增減分數。
此檔案用於設定各項特徵的權重,您可以調整數值來改變特徵的重要性。
age_gender: 年齡與性別特徵的權重。emotion_content: 情緒內容特徵的權重。interest: 興趣(是否注視)特徵的權重。
- 完成
requirements.txt的套件安裝。 - 根據您的需求,調整
config/資料夾中的ad_preferences.json和weights.json。 - 執行主程式
main.py啟動系統。 - 系統將會啟動攝影機,並開始進行即時的廣告推薦。