# 樹莓派_Web server 應用 ## 簡介 在大學專題製作的兩個學期中,參加了各種不同類型的創意實作競賽,透過組員間的腦力激盪,製作出一個又一個的作品,藉由這些作品,來提出我們對於競賽題目的解決辦法,以及呈現出實際完整的作品來驗證我們題目的可行性,並且在競賽過程中,重新複習了上大學幾年以來的專業知識,以及藉此學習了新的軟體以及開發版,而其中接觸最多的便是樹梅派,藉由這篇文章作為一個學習紀錄,並藉此重新複習專題所使用到的樹梅派相關知識。 ## 以圖像辨識及Web server實現車況透明之共享租車系統 ### 使用工具 * 硬體 1. 樹梅派3b 2. Raspberry Pi Camera Module 3. 摺疊箱 * 軟體 1. VNC Viewer 2. apache (Web server 架設) 3. Python 4. HTML、PHP ### 動作說明 * 租車前 ![](https://i.imgur.com/IzvHDtR.png) 當客戶觸發借車程序之後,這時發送租車請求給業者的伺服器,而伺服器藉由收到租車請求後,發送訊息給車子內部的伺服端,藉此控制車內4個鏡頭拍照,並將4張單獨的照片進行堆疊處理後儲存到車子內部的伺服端。 * 租車後 ![](https://i.imgur.com/SReW85x.png) 在客戶要歸還汽車時,如同前述,發送還車請求給業者伺服器,而伺服器藉由收到租車請求後,發送訊息給車子內部的伺服端,藉此控制車內鏡頭拍照,最重要的是,將租車前、後的比對照片,藉由車輛伺服端反寄給業者伺服器,透過影像辨識系統,比對租、還車車內狀況的差異,並將最終結果傳送到客戶的信箱內,並留存一份至企業客服端,可供客服端人工辨識之用。 ### 相關知識 * Web server ![](https://i.imgur.com/MZiRxWC.png) 從上圖作為舉例,平日我們連上網路後(Customers),透過Internet與網站提供者的伺服器做連線,並透過網站上互動式的按鈕,發送出request指令給伺服器,讓網站提供者渲染出相對應的網頁並且傳回(response)呈現在你的頁面上。 * Pthon * Open CV 影像辨識之程式語言,這部分引入imutils函數庫做為圖像骨架提取,並使用SSIM函式庫作為照片之比較,並於最終透過cv2在辨識有差異處周圍放置矩形。 * requests 透過requests模組建立HTTP請求,並向Web server請求想要取得的資料。 * HTML、PHP * HTML 中文全名為「超文字標示語言」,簡單來說,這個語言的用途在於網頁內容的呈現,讓瀏覽器能夠呈現出你所設計的網頁。 * PHP 常使用於網頁開發,並可內嵌至HTML內使用,主要用於編成[動態頁面](https://zh.wikipedia.org/wiki/%E5%8B%95%E6%85%8B%E7%B6%B2%E9%A0%81),在伺服器完成運算後,再將結果呈現在網頁前端,並顯示出HTML的頁面給使用者 * 而本作品,則是透過HTML設計按鈕物件,當按鈕觸發後,就會執行PHP的程式,藉此呼叫python程式碼,執行相對應的工作。 ### 心得: 此作品之發想為針對自助式租賃汽車服務,透過加入影像辨識,來達到更完善的服務系統,為了模擬市面上的租賃系統,因此我們使用linux環境架設web server,並將各硬體設定在同一網域,搭配python request 函式庫,以達到硬體間彼此溝通的效果,程式方面,選用有豐富第三方資料庫的python 進行程式方面的撰寫,藉此做到圖片堆疊、影像辨識等功能。