元智大學 資訊管理學系
第二十九屆專業實習競賽報告
研究動機
我們去圖館念書時,常常會繞了一大圈卻找不到座位,造成圖書館的座位區常發生無法掌握座位的使用狀況。隨著圖書館使用人數的增加,座位的即時監控與管理變得越來越重要。本研究旨在利用先進的影像辨識技術,使用攝影機偵測座位,利用即時影像,清楚顯示可使用的座位情形。
研究目的
本研究旨在開發一套自動化圖書館座位管理系統,利用YOLO模型進行座位及人員的偵測,並採用 TensorFlow 框架負責推理(inference)。系統透過 OpenCV 獲取即時影像數據進行預處理與分析,以實現即時座位監控。其主要目的是準確判斷座位的使用狀態,並向使用者提供即時的座位資訊,從而協助圖書館提升管理效率。
研究進行步驟
-
準備工作
-
環境設置
-
建立虛擬環境,並安裝所需的軟體和套件,包括Tensor-Flow、OpenCV、YOLOv4模型和python等相關的資料。
-
-
-
設置初始框架
-
設定綠框(座位)
-
管理員設定座位區域的綠框。這些綠框代表座位的預設位置,將在後續的偵測中用來計算重疊。
-
使用web camera捕捉即時畫面,並手動選擇每個座位的綠色框位置,然後將這些框的座標保存到一個配置文件中。
-
-
-
即時影像偵測
-
使用web camera捕捉即時畫面
-
啟動主程式,並捕捉即時影像畫面。
-
-
應用YOLOv4進行人員偵測
-
使用YOLOv4模型進行即時人員偵測,提取出每個偵測到的人員的邊界框(bounding box)並顯示在畫面上。
-
-
-
計算重疊率(Overlap Calculation)
-
讀取綠框座標
-
主程式讀取之前設置的綠框座標,用於後續的重疊計算。
-
-
計算偵測框與綠框的重疊
-
編寫Python代碼來計算每個偵測到人的邊界框與每個綠色框之間的重疊率
-
-
-
註冊 LINE Developer
-
申請 LINE Developer 帳戶
-
註冊一個 LINE Developer 帳戶,並建立一個新頻道。
-
-
設定環境變數
-
-
LINE Bot 連接測試
-
建立 LINE Bot API:
-
使用從 LINE Developer 取得的 line_channel_access_token 和 line_channel_secret在程式中設置與 LINE 伺服器的連接。
-
-
測試與 LINE 伺服器的連接:
-
通過發送一個簡單的文字訊息來測試連接,確保 LINE Bot 已經成功連接到 LINE 伺服器。
-
-
處理可能的錯誤:
-
如果測試訊息未能成功發送或用戶未接收到訊息,需檢查環境變數、憑證設置以及網絡連接,確保整體順暢。
-
-
-
最終測試
-
綜合測試:
-
在整個系統中進行端到端的綜合測試,確保所有部分(包括影像辨識、訊息傳送等)都能正常運行而且沒有錯誤。
-
-
研究進行步驟
研究結果
本研究應用影像辨識技術和深度學習模型(YOLOv4),開發了一套即時偵測座位的影像處理系統。此系統能夠偵測室內的座位使用情況,並在即時影像中顯示可用座位。研究結果表明,利用交集與偵測框面積的比值(IoDA)計算重疊率,來判斷座位的佔用情況。
如果重疊率低於設定的比例,則座位顏色為綠色,反之,重疊率高於設定的比例,則座位顏色將會從綠色轉變為紅色,這樣可判斷有無使用者正在使用的座位狀態,最後將其整合到LINE Bot,使得偵測結果可以即時傳送給相關用戶。
左圖: 設定四個空位置,位置上皆無人,呈現綠色。
右圖: 其中一個位置偵測到人,綠色框轉為紅色
左圖: 其中兩個位置偵測到人,綠色框轉為紅色。
中間: 其中三個位置偵測到人,綠色框轉為紅色。
右圖: line的訊息畫面呈現