Первые две недели GSoC с CCExtractor были отмечены тем, что все мы работали над открытыми проблемами в репозитории github инструмента CCExtactor. Этот период был назван периодом охоты на жуков.

Выпуск 713

Я начал работать над проблемой 713, в которой один из двух предоставленных образцов показал неожиданные результаты при попытке извлечь субтитры с помощью инструмента CCExtractor. Я не смог решить проблему, это может быть связано с неэффективным подходом, но я считаю, что это было довольно сложно из-за отсутствия большого количества информации. Подход не очень хорошо сработал, но следующие шаги я выполнил.

Для отладки программы я сначала создал инструмент CCExtractor в режиме отладки. Затем я использовал valgrind -tool=callgrind ./ccextractor [имя файла], чтобы создать файл использования кэш-памяти для них обоих.

Затем, используя инструмент KCachegrind для анализа файлов кеша, я смог получить количество циклов обработки для каждой строки исходного кода, количество вызовов каждой функции и поток исходного кода. (Я бы серьезно рекомендовал любому новичку использовать упомянутые инструменты для анализа кода).

Я искал разницу между этими двумя образцами выходных данных в отношении вызовов функций. Потратив на это достаточно много времени, к сожалению, я не смог найти ничего, чтобы решить проблему. Таким образом, я буду продолжать работать над ним в любое свободное время в течение следующих недель.

Экстрактор возбуждения - начало

Я начал работать над запуском своего нового программного обеспечения — Excitement Extractor. Проект состоит из большого количества обработки видео. У меня были варианты Moviepy и/или OpenCV для частей анализа. Преимущество Moviepy заключалось в лучшем импорте и экспорте и чистой интеграции с ffmpeg, а OpenCV — в основных инструментах обработки изображений. Кроме того, поскольку большая часть проекта была экспериментальной, мой наставник предложил использовать для разработки блокноты Ipython (теперь Jupyter). Я никогда раньше не пользовался Jupyter, но смог довольно легко понять его интерфейс и возможности.

Я начал читать и экспериментировать с библиотекой Moviepy, где мне пригодились блоги и документы Zulko.

В ходе дискуссий я понял, что тесты могут не подходить для проекта, который настолько экспериментальен, а результаты не фиксированы. Мне нужно будет оценить основные моменты, извлеченные кодом, чтобы сравнить их с ожидаемыми фактическими основными моментами. Таким образом, необходимо разработать механизм оценки.

Также я запланировал еще одну экспериментальную часть проекта. Я могу использовать субтитры, чтобы получить еще один компонент для извлечения основных моментов. Субтитры (если они включены в видео) будут извлечены с помощью привязки Python CCExtract0r и будут обработаны, чтобы отметить любое важное событие спортивного матча.

Изменена временная шкала

Измененная временная шкала выглядит следующим образом :

Неделя 3: обнаружение движения

Неделя 4: определение плотности порезов

Неделя 5: Звуковой анализ

Неделя 6: окончательное извлечение основных моментов

Неделя 7-9: разработка механизма подсчета очков и компонента обработки субтитров (будет объяснено в следующих постах).

Неделя 10–11: Написание графического интерфейса для приложения.

Неделя 12: Написание тестов для графического интерфейса

Неделя 13: Чистый код и полное документирование кода