taibif / camera-trap Goto Github PK
View Code? Open in Web Editor NEWA web application for managing and analysing camera trap images/video clips.
A web application for managing and analysing camera trap images/video clips.
為了:
巡山員、工作站承辦人及林務局承辦人均需有一 SOP checklist 來協助確認上傳前資料資料流程的完整性。
透過系統 API 所提供格式及 endpoint 上傳。
包含:
播放清單用在相機位置資料的檢視頁面,當使用者檢視相機位置,頁面影片表單顯示同時,也啟動播放清單,開始逐筆播放影片。
Uploader
https://github.com/TaiBIF/camera-trap/tree/master/lambda-youtube-uploader
YouTube API Example
https://github.com/TaiBIF/camera-trap/tree/master/youtube-iframe-api
Note.
若在發布的過程中有任何問題的話再麻煩讓我知道,感謝
目前前端設計要在上傳資料與現有資料重複時,詢問使用者是否確定上傳。
hold
屬性。hold
屬性為 true
時,不會匯入資料。(測試階段時在程式中用 force_import
強制匯入。)UploadSession
中加入錯誤訊息,指名上傳資料中特定 row 的特定欄位資料有誤。內容沒問題的資料仍會匯入。UploadSession
著手) trigger postJsonToMongo 並設定 force_import
,完成資料匯入流程。理想上,一個設計良好的系統,應該不需要額外設計教育訓練課程,是以專案團隊將儘可能地將系統操作的提示建置好,期使使用者或使用單位的新進人員,能夠自行探索瞭解系統操作。然而,為了說明本案的開發成果,並溝通團隊在設計、開發本系統的思維、價值及方法,本團隊將舉辦兩小時之教育訓練,就特有生物研究保育中心、林務局及其他重要的潛在使用者進行系統介紹及操作說明,期使系統能平順地導入平常的工作當中。
教育訓練將包含一小時的操作示範,及一小時使用者上機實作,以確保目標使用者能上手新系統。
依據期末報告審查意見修正並完成網站建構、介面設計與教育訓練等全案之工作項目。
計畫(project)、樣區(site, sub_site)、相機位置(location)、錄影上傳後的網址(url)、開始時間(錄影起始時間)(date_time_original, date_time_original_timestamp)、片長(length_of_video)、播放清單ID (youtube_playlist_id)
由影片上傳程序寫回資料庫的 write URL.
目前將影片上傳到 Youtube 的設計會被每日上傳限制與 spam detection 卡死,需要想辦法解決此問題。看是與 Google 談合作?或要找其他可談的串流服務?或降低畫質或轉GIF照存AWS?
Tutorial_get_refresh_token.pdf
Lambda 寫 cloudwatch 的 log - CloudWatchLogsFullAccess
Lambda 環境變數 (紅字部分從附件PDF取得)
由於系統將有多個單位的各個角色參與使用,而各單位、計畫的相片資料在使用、分析及資訊公開作為上可能會因為不同的授權及行政規定需要系統協助滿足管理需求,故法律諮詢項目的工作在於確認資料管理及使用的規範是否能保護與相片資料、分析結果相關單位及人員的權益,同時確保規定的細節不至於限制自動相機調查成果在保育政策的制定,或是民間資料加值應用的創意。本團隊未來將就法律諮詢項目的工作結論以清楚的文字準確地在專案系統中列出說明。
驗收時至少要有資料進去。
以已建好的帳號與 YouTube API 介接,上傳影片。
取得下列資訊:
{
"query": {
"uploaded_file_name": "IMG_0082.JPG",
"date_time_original_timestamp": 1486728000,
"fullCameraLocationMd5": "7621f2d15b1fb16ff04424baa6b08831"
}
}
以檔案帶的 tags 「計畫」、「樣區」、「子樣區」、「相機位置」資訊,將同一相機位置的檔案組成播放清單,提供相機位置資料瀏覽頁面持續播放使用。
若 tag 資料是空值則設為字串的 NULL。
檔案會帶「計畫」、「樣區」、「相機位置」等tags。
將以下資訊以存成兩份 json(.mma.json 與 .mmm.json) 至特定 S3 位置,內容包括
project、site、sub_site、location、錄影上傳後的網址(url)、開始時間(date_time_original)、片長(length_of_video)、播放清單ID (youtube_playlist_id) 等資訊。
{
"endpoint": "/multimedia-annotations/bulk-update",
"post": [
{
"_id": md5($some_youtube_url),
"project": "測試計畫1",
"full_location_md5": md5("測試計畫1/site1/NULL/location1"),
"$set": {
"modified_by": "OrcID_0000-0003-1335-0184",
"type": "MovingImage",
"date_time_original": "2017:02:09 17:28:27 // 格式以metadata 中擷取出來的為準",
"length_of_video": (暫時以 metadata 中擷取出來的為準),
"youtube_playlist_id": $some_playlilst_id
},
"$setOnInsert": {
"url": $some_youtube_url,
"url_md5": md5($some_youtube_url),
"date_time_original_timestamp": 1486661307 (由date_time_original 轉換而來),
"date_time_corrected_timestamp": 1486661307 (這邊此值等於 date_time_original_timestamp)
"project": "測試計畫1",
"site": "site1",
"sub_site": "NULL",
"location": "location1",
"full_location_md5": md5("測試計畫1/site1/NULL/location1"),
"uploaded_file_name": "J01-10260071_2015-10-26-18-33.MP4",
"timezone": "+8",
"tokens": [
{
"data": [
{
"key": "species",
"label": "物種",
"value": ""
}
]
}
]
},
"$addToSet": {
"related_upload_sessions": $upload_session_id
},
"$upsert": true
}
]
}
{
"endpoint": "/multimedia-metadata/bulk-update",
"post": [
{
"_id": md5($some_youtube_url),
"project": "測試計畫1",
"full_location_md5": md5("測試計畫1/site1/NULL/location1"),
"$set": {
"modified_by": "OrcID_0000-0003-1335-0184",
"type": "MovingImage",
"date_time_original": "2017:02:09 17:28:27 // 格式以metadata 中擷取出來的為準",
"length_of_video": (暫時以 metadata 中擷取出來的為準),
"youtube_playlist_id": $some_playlilst_id
"device_metadata": {與相機相關但非 EXIF 的 Metadata 整組直接以 json 先塞在這},
"exif": {EXIF 整組先以 json 塞在這},
"make": 相機製造商(如果有此項資訊的話),
"model": 相機型號(如果有此項資訊的話),
"modify_date": device_metadata 中的檔案編修時間
},
"$setOnInsert": {
"url": $some_youtube_url,
"url_md5": md5($some_youtube_url),
"date_time_original_timestamp": 1486661307 (由date_time_original 轉換而來),
"date_time_corrected_timestamp": 1486661307 (這邊此值等於 date_time_original_timestamp)
"project": "測試計畫1",
"site": "site1",
"sub_site": "NULL",
"location": "location1",
"full_location_md5": md5("測試計畫1/site1/NULL/location1"),
"uploaded_file_name": "J01-10260071_2015-10-26-18-33.MP4",
"timezone": "+8",
},
"$upsert": true
}
]
}
委員意見:確認「地點的選擇、設置、記憶卡的取回頻率、資料量多少」等資訊是否各個訪談中都有記錄到。
"Function statement not at top level of a program or function is prohibited."
機器學習的研究在自然史研究領域的應用近年來十分熱門,許多軟硬體修正、演進使測試、應用的成本愈來愈低,技術門檻亦是。成功的應用對於專業人力日漸凋零的領域現況將會有很高的成本效益,也是我們希望未來的影像管理系統能夠幫忙分擔人力的功能。然而,雖然從現有文獻發表及或iNaturalist等組織可以看到目前機器自動影像辨識的進展,距離這類開發成果能否真正用在本地的正式系統中,仍有許多待釐清的細節。針對資料流程(如圖1)中第三項物種鑑定單元,本團隊計畫以專案中管理影像資料,利用諸如Google Vision API ,嘗試在物種鑑定步驟引進機器學習與自動辦識,並以人力鑑定結果提高機器學習的準確率。
由於自動影像辨識技術發展快速,為免過早投入過多開發成本,此部分工作主要以桌面調查研究方式進行,輔以機器學習公開API之測試。本團隊將在結案時提出照片自動化鑑定開發評估報告,設定對資料自動辨識的期望,及評估實務上建立正式服務所需的資源、技術、經費規模及預期效益,供管理單位未來進一步發展系統考慮。未來主管單位決定實作後,亦應測量其對於資料管理作業成本的影響,以決定是否大規模投資建設。
未來系統將曝露在網際網路上,為了避免遭受攻擊,或使用者資料外洩,專案團隊在系統建構時使用Amazon Web Services的 Trusted Advisor 協助安全的系統規劃,而在開發的系統上,將以高標準進行網站應用程式的資安漏洞掃瞄,並修補發現的問題。提供資安掃瞄的廠商很多,使用的工具也有不同。本團隊除了**研究院資訊服務處針對院內系統的免費檢測 之外,亦將針對重點功能頁面使用中華電信提供的付費服務 ,進行細部的掃瞄及檢測。
設計能提供「計畫、樣區、相機位置、錄影上傳後的網址、開始時間、片長、播放清單 ID」等資料上傳的 JSON 格式,供工程團隊實作。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.