2016年2月27日 星期六

[Openalpr] 如何產生測試用的車牌影像

以下介紹幾種方式,可以取得測試用的車牌影像


1. 透過谷歌大神。
例如:Markus Weber 拍攝了126張車牌, 這些車牌JPEG可從此處取得。

2. 加入 openalpr project
Openalpr 提供了一個 ftp 站 "upload.openalpr.com",提供所有人上傳各種車牌資料,但不提供下載的權限,只有成為 openalpr 開發者,才可能取得這些資料。

3. 付費購買 alpr_video
此程式 alps_video 可提供擷取車牌影像的功能,只要加入 --save_frames 的選項即可,詳細用法可參考此網頁 http://doc.openalpr.com/video_processing.html

4. 登入 openalpr live demo ,選擇車牌號碼,即可取得車牌影像。相關資料如下。

Username
demo@openalpr.com
Password
openalpr
Login page
https://cloud.openalpr.com/

5. 使用 IPCAM 內的影像
若是能夠在某個車道入口架設攝影機,則可以利用 alprd (alpr daemon) 的預設功能,定期地透過網路存取攝影機上的 JPEG 檔案,使用此方法,就有機會收集大量的車牌影像。以下就以此方法舉例說明 
a. 需先了解 alprd 基本應用,請參考 OpenALPR-Daemon-(alprd) 
b. 針對 alprd.conf 進行修改, 舉例如下
[daemon]
stream = http://i.imgur.com/pjukRD0.jpg
site_id = albert-test
store_plates = 1
store_plates_location = /tmp/plateimages/
c. 執行 $alprd -f, 需要先確認是否此時 /tmp/plateimages 已經存放了對應車牌。 
d. 更改 alprd.conf, 變更 stream 指向正確的 stream server, 例如: http://192.168.0.1:8080/stream 
e. 再次執行 $alprd -f 
f. 過一陣子檢查 /tmp/plateimages, 便可以發現已經有了許多車牌影像圖了。

6. 使用影片內容
那麼若是我們先到車道旁拍攝了10分鐘的影片,是否有比較方便的方法可以從影片中,取出車牌圖片呢?此時只需要自行架設 streaming server 來幫我們把影片轉換成一張一張的 JPEG,接著一樣透過alpr daemon即可。最簡單的方式便是使用 VLC將H.264影片轉換成一個 MJPEG的 Streaming Server,以下記錄此方法: 
a. 開啟VLC,選擇 [串流] -> [開啟媒體] -> [檔案] -> 加入檔案
 
b. 新目的地選擇 HTTP,按下[加入],
 

c. 預設 port 為 8080,按下[下一個]
  
d. 此時頁面為串流輸出, 建立新的設定檔,
e. 設定檔名稱輸入 "MJPEG only", 視訊編解碼器選擇 M-JPEG, 按下建立
f. 改變設定檔為 MJPEG only,按下[下一個],
 
g.按下[串流]
 
h. 開啟另一個VLC,
[媒體] -> [開啟網路串流],輸入網址 http://127.0.0.1:8080/,選擇播放,此時影片開始撥放
[工具] -> [媒體資訊] -> [Codec],此處可以看到 Codec 已經轉換為 MJPEG 了。

i. 一旦確定此 Streaming Server 設定正確,便可以參考上述的 alprd 設定方式。使用 alprd 產生車牌資訊。 

註1:alpr 可用來辨識影片中的車牌資料,但其輸出只有一個json格式的報表,並沒有車牌圖片。用法如後:$ alpr -n 1 -j /source/video.mp4
註2:若自行編譯 openalpr,預設便會編譯 alprd。

參考資料:
  1. http://www.vision.caltech.edu/Image_Datasets/
  2. http://stackoverflow.com/questions/21148316/use-vlc-to-stream-rtsp-feed-as-http-live-stream
  3. https://jamfnation.jamfsoftware.com/discussion.html?id=6745
  4. http://www.openalpr.com/demo-cloud.html