Skip to content

Instantly share code, notes, and snippets.

@ntk148v
Last active May 20, 2016 16:41
Show Gist options
  • Save ntk148v/72e84ce00e5aa6e4c399b6bd9a06abdb to your computer and use it in GitHub Desktop.
Save ntk148v/72e84ce00e5aa6e4c399b6bd9a06abdb to your computer and use it in GitHub Desktop.

Note về bài tập lớn Hệ Cơ sở dữ liệu đa phương tiện.

Yêu cầu.

Phân đoạn video đơn giản (phát hiện các shot) sử dụng đặc trưng toàn cục Sử dụng OpenCV để thực hiện cài đặt 1 ứng dụng phân đoạn video đơn giản.

Yêu cầu cơ bản: Input : 1 Video Output : các đoạn video và các keyframe tương ứng

  • Mô tả cách xây dựng hệ thống xây dựng, chỉ ra cách tính các đặc trưng và cách tính khoảng cách (hay độ tương tự) giữa các ảnh, cách lưu dữ liệu (vd : cấu trúc file txt)
  • Chỉ rõ các thông số khi tính đặc trưng và các tham số khác có sử dụng như đã chỉ rõ ở phần mô tả trên
  • Đưa các kết quả minh họa các trường hợp kết quả đạt tốt và không tốt. Nhận xét và giải thích theo cách hiểu của mình.
  • Hiệu năng hệ thống biểu diễn bằng đường cong P(R) (nếu được yêu cầu), so sánh kết quả thu được với các tham số khác nhau. Phân tích đánh giá kết quả.
  • Báo cáo trong khoảng 5 trang. Số trang có thể nhiều hơn nhưng không quá 10 trang

Phương pháp:

  • Tìm khoảng cách của 2 frame kế tiếp sử dụng histogram màu
  • Sử dụng ngưỡng để xác định vị trí có sự khác biệt lớn để xác định biên của các shot. Sinh viên có thể tự do đề xuất các giải pháp để sử dụng ngưỡng cho phù hợp (1 ngưỡng hay 2 ngưỡng ? Giá trị ngưỡng xác định thế nào ? ... ).
  • Keyframe cho mỗi shot có thể chọn là frame ở giữa của mỗi shot. Tuy nhiên, sinh viên có thể đề xuất giải pháp của mình để xác định keyframe trong trường hợp này

Yêu cầu: Cần demo và thực hiện các thử nghiệm để đánh giá được ưu/nhược điểm của phương pháp. Trong báo cáo cần chỉ rõ phương pháp đã triển khai là gì, đặc biệt nhấn mạnh những điểm nhóm đề xuất. Làm rõ ưu nhược điểm của phương pháp và đưa ra các ví dụ minh họa. Lưu ý, cần đánh giá ảnh hưởng của các tham số trên kết quả cuối cùng của hệ thống.

Các phần chính của chương trình & Keywords.

Video Source --> Shot Detection --> Keyframe extraction --> Video retrieval.

  • Đầu tiên dùng VideoCapture đọc được video đầu vào.
  • Sau đó ghi vào các frame (chia video thành các frame).
  • Đọc và tính histogram cho từng frame.(Gray/RGB/HSV)
  • So sánh histogram liên tiếp.
  • Từ đó, sử dụng ngưỡng xác định được biên của các shot Threshold = Mean Deviation + a * Standard Deviation. trong a = constant, thường là 7.
  • Lấy ra frame ở giữa.

Giải pháp.

  1. Lựa chọn thư viện : Opencv.
  2. Lựa chọn ngôn ngữ lập trình : Python, Java
  3. Nếu sử dụng Python có thêm thư viện: ffmpeg.
  4. Cài đặt opencv 3.0.0 + python2.7+. Thực ra nếu cài OpenCV rồi, chỉ cần cài pip(ứng với phiên bản Python) và chạy : pip install cv2 --> done. P/s: nếu khi chạy thử xảy ra lỗi: libdc1394 error: Failed to initialize libdc1394 thì chạy cmd sau: sudo ln /dev/null /dev/raw1394

Tài liệu tham khảo.

  1. https://github.com/yuhonglin/shotdetect
  2. https://github.com/Breakthrough/python-scene-detection-tutorial
  3. https://www.dropbox.com/sh/h70pwalwqmu4h41/AADBw_jgqmum7ZnIa12ZS8Qia?dl=0
  4. http://www.bogotobogo.com/python/OpenCV_Python/python_opencv3.php
  5. http://www.bootply.com/zv7Hg6flPo
  6. http://flask.pocoo.org/docs/0.10/patterns/fileuploads/
  7. http://hanzratech.in/2015/01/21/adaptive-thresholding.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment