我想實現一個視頻檢索系統,我需要首先從視頻中提取關鍵幀,理想情況下我想有一個庫來自動檢測這些關鍵幀,每個鏡頭的一個關鍵幀。如果我可以配置要提取哪個關鍵幀(鏡頭中連續幀的第一個,中間或最後一個),則可獲得獎勵。 這是否有開源的實現?開源鏡頭檢測實現?
回答
FFmpeg的LIB(包含在OpenCV的),可以尋求一個關鍵幀與函數av_seek_frame()
什麼你叫鏡頭分割之後。雖然這是一個非常活躍的研究領域,但我認爲你不可能找到任何完整的庫來爲你解決問題,因爲它是開箱即用的。您最好的選擇可能是閱讀主題,選擇最適合您需求的方法並自行編碼。
一種方法是計算相鄰幀的顏色直方圖之間的卡方距離。當此距離超過用戶指定的閾值時,您處於鏡頭邊界。該方法在this paper解釋:
A.長阪和Y.田中,「自動視頻索引和全視頻 搜索對象露面」,雜誌信息處理 檔案15卷,第2期(1992年)Page 316
我已經玩過了,取得了一些成功。值得注意的失敗是單次拍攝(由相機閃光等引起)中的突然光線變化以及鏡頭變化的混合。
一旦你知道了鏡頭邊界,從每個鏡頭中選擇一個關鍵幀將是微不足道的,正如其他人指出的。
如果您輸入了一個未壓縮的視頻,您可以從www.ffmpeg.org下載ffmpeg並使用此可執行文件將您的視頻流解壓縮到其幀中。
隨後,爲了檢測您的鏡頭邊界,您必須從視頻關鍵幀中提取一些功能。在MediaMixer Deliverable, D1.1.2中提出了用於鏡頭邊界檢測的有效技術。此外,在MediaMixer網絡研討會上,您可以找到演示文稿「Fragmenting your Media Assets meaningfully – media analysis for fragment detection and extraction」,其中介紹了此鏡頭邊界檢測實現,同時您還可以訪問MediaMixer演示程序[http://www.mediamixer.eu/automatic-fragmentation-and-annotation-for - 改進的訪問演講視頻/],其中視頻鏡頭分割和概念檢測的結果可視化。
- 1. 如何實現點頭檢測谷歌眼鏡
- 2. 慢鏡頭檢測android
- 3. 使用OpenCV進行鏡頭檢測
- 4. 開源實現
- 5. Windows Phone 8鏡頭增強現實
- 6. XPS開源實現?
- 7. 開源gravatar實現?
- 8. RaptorQ開源實現
- 9. 開源 - ARIES實現
- 10. 開源XMPP實現?
- 11. 開源抄襲檢測API?
- 12. 開源java XSLT 2.0實現?
- 13. 跳棋的開源實現
- 14. .NET Remoting的開源實現
- 15. 檢測源從攝像頭的Android
- 16. 碰撞檢測實現
- 17. 實現碰撞檢測
- 18. RGB值檢測和實現
- 19. 增強現實檢測網絡攝像頭的手心
- 20. 執行最先進的視頻鏡頭邊界檢測
- 21. 人臉檢測不工作的前置鏡頭
- 22. 檢測開放拳頭和緊握拳
- 23. 檢測頭髮打開CV iPhone
- 24. Xamarin.Android檢測攝像頭斷開連接
- 25. 鏡頭庫:有沒有這種鏡頭?
- 26. Java List API實現的開源測試套件?
- 27. 從頭開始設計/實現MVC
- 28. ListView頭實現
- 29. PLCrashReporter頭實現?
- 30. 類頭+實現
如果你有一個鏡頭的第一幀,那麼你知道前一幀的最後一幀。如果你有第一幀和最後一幀的鏡頭,那麼你可以找到一箇中間幀。你似乎沒有考慮過渡,這將是你最大的挑戰。 – koan
@koan我不知道鏡頭的第一幀/最後一幀,我實際上是在試圖在視頻中找到鏡頭。一旦知道鏡頭的邊界,我知道如何使用opencv或其他庫從視頻流中提取幀。 – fantasticsid
你想要做的並不是微不足道的。我懷疑你會發現這樣做的庫函數,如果你這樣做,它可能不會得到適合你的應用程序的結果。 – koan