Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Распознавание музыкальных инструментов
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
Страницы: 1, 2
Огурцов
Цитата(Мур @ Apr 29 2016, 17:24) *
Разве что подогнать по самому медленному вычислению...

там не будет медленных вычислителей, оне все одинаковые

Цитата(Мур @ Apr 29 2016, 17:24) *
Уже есть

целочисленные ?
syoma
Заинтересовала тема, но интересно, сколько будет продолжаться это деление шкуры неубитого медведя путем сравнения МК с ПЛИС, если еще нифига не известно как должен работать алгоритм?
Я бы начал с решения задачи в Матлабе - засунуть туда музыку, попытаться выделить инструменты, записать в отдельный файл и посмотреть, что получилось. Можно проверить все, вплоть до нейронных сетей. А когда получится, там практически пофиг для чего генерировать код - хоть для МК, хоть для ПЛИС.
alexunder
Цитата(syoma @ Apr 29 2016, 20:15) *
Заинтересовала тема, но интересно, сколько будет продолжаться это деление шкуры неубитого медведя путем сравнения МК с ПЛИС, если еще нифига не известно как должен работать алгоритм?

священная война не закончится никогда sm.gif

Цитата(syoma @ Apr 29 2016, 20:15) *
Я бы начал с решения задачи в Матлабе - засунуть туда музыку, попытаться выделить инструменты, записать в отдельный файл и посмотреть, что получилось. Можно проверить все, вплоть до нейронных сетей. А когда получится, там практически пофиг для чего генерировать код - хоть для МК, хоть для ПЛИС.

Мне кажется, тут нужен совсем иной подход (как и предлагает один из участников спора МК-ПЛИС), нежели просто выделение (фильтрация) чего-либо. Как вот в этой типовой песне отделить вокал от баса или лид-гитары? Да никак. Правильно выше кто-то сказал: нельзя 3D разложить на 2D.
Мур
Цитата(Огурцов @ Apr 29 2016, 21:21) *
там не будет медленных вычислителей, оне все одинаковые

Время вычисления различных функций соответственно различно. Критичное время вашего конвейера на "рассыпухе из МК" будет определять самая медленная...
Цитата(Огурцов @ Apr 29 2016, 21:21) *
целочисленные ?

Естественно..


Цитата(syoma @ Apr 29 2016, 22:15) *
Заинтересовала тема, но интересно, сколько будет продолжаться это деление шкуры неубитого медведя путем сравнения МК с ПЛИС, если еще нифига не известно как должен работать алгоритм?
Я бы начал с решения задачи в Матлабе - засунуть туда музыку, попытаться выделить инструменты, записать в отдельный файл и посмотреть, что получилось. Можно проверить все, вплоть до нейронных сетей. А когда получится, там практически пофиг для чего генерировать код - хоть для МК, хоть для ПЛИС.

Абсолютно солидарен. Предельна гибкость(и дешевизна при клонировании) при развитии дает тендем МК-FPGA

Цитата(alexunder @ Apr 29 2016, 22:44) *
священная война не закончится никогда sm.gif

Нет никакой войны. Есть различные стили в подходах...
Цитата(alexunder @ Apr 29 2016, 22:44) *
Мне кажется, тут нужен совсем иной подход (как и предлагает один из участников спора МК-ПЛИС), нежели просто выделение (фильтрация) чего-либо. Как вот в этой типовой песне отделить вокал от баса или лид-гитары? Да никак. Правильно выше кто-то сказал: нельзя 3D разложить на 2D.

Тут не требуется абсолютного разделения из смеси... Тут пример порождения различных базисов разложения.
Огурцов
Цитата(Мур @ Apr 30 2016, 05:33) *
Время вычисления различных функций соответственно различно. Критичное время вашего конвейера на "рассыпухе из МК" будет определять самая медленная...

я предлагаю простой матричный конвейерный двухмерный вычислитель размером 16x16 камней на одной плате с производительностью где-то 25 000 мипсов по цене одного фпга
и военный - трехмерный, из 16 таких плат этажеркой, с производительностью 400 000 мипсов
никаких различных функций там быть не может, различного времени выполнения программы быть не может
хотя бы только по тому, что программа во всех камнях одинаковая
различны, например, весовые коэффициенты нейросети
либо модели (сэмплы) инструментов, по которым проводится сравнение
Мур
Цитата(Огурцов @ Apr 30 2016, 10:14) *
я предлагаю простой матричный конвейерный двухмерный вычислитель размером 16x16 камней на одной плате с производительностью где-то 25 000 мипсов по цене одного фпга
и военный - трехмерный, из 16 таких плат этажеркой, с производительностью 400 000 мипсов
никаких различных функций там быть не может, различного времени выполнения программы быть не может
хотя бы только по тому, что программа во всех камнях одинаковая
различны, например, весовые коэффициенты нейросети
либо модели (сэмплы) инструментов, по которым проводится сравнение

Имеет право быть, но как следующий этап после исследовательского в гибкой аппаратной платформе...
Мур
Заманчивый пример
http://www.nallatech.com/?s=Caffe+Integration
https://github.com/BVLC/caffe/

Удобно взять сверточную нейронную сеть (CNN) с архитектурой Caffe Integration на http://caffe.berkeleyvision.org/ Ее разработали в лаборатории Berkeley Vision and Learning Center с многими энтузиастами.
При этом нужно отредактировать имеющийся XML-файл настроек, который описывает различные комбинации блоков в слоях нейронной сети. А это 4 слоя:
- слой свертки, сворачивающий маленькие кадрики с ядрами, соответствующими разным признакам, ка-то угол, линия.
- объединяющий слой, в котором группируются в подрегионы максимумы реакций сверточного слоя.
- слой детекторов,
- объединяющий слой в котором изображение интерпретируется как множество векторов.
Затем XML-файл компилируется с выдачей модели CNN под конкретную ПЛИС.
Другой возможностью быстро освоить CNN в ПЛИС является использование системы ImageNet, которая есть в свободном доступе вместе с тренировочными последовательностями и испытательными стендами.
В ней 5 сверточных слоя и 3 полносвязных слоя, на которые приходится более 99% времени работы сети.
В сверточных слоях стоят те же фильтры признаков размером 11×11, 5×5 или 3×3. Причем базовым фильтром является фильтр (3×3), а большие фильтры получаются повторением вычислений с этим фильтром.
Для реализации CNN в ПЛИС используются блоки DSP с умножителем с аккумулятором 18×18 bits. Новые ПЛИС Altera Arria 10 позволяют сконфигурировать в одном таком блоке 1 умножение с плавающей запятой или 2 умножения 18×19 с фиксированной запятой. А если коэффициенты уменьшить до 10 бит и менее, то такую операцию можно делать на сумматорах. Поэтому есть смысл соптимизировать алгоритм на фиксированную запятую, умножив этим самым производительность в 2-3 раза.
В системе ImageNet предлагается библиотека с интерфейсом OpenCL, в которой собраны модели свертывателей с разрядностью коэффициентов, начиная с 10 bit 3×3.
Так что в ПЛИС Arria10 GX 1150 помещается до ~512 сверточных блока из этой библиотеки.
В примере программирования CNN используется ускоритель на ПЛИС Nallatech 510T, который втыкается в РС или сервер как карта GPU. На ней стоят 2 FPGA Altera Arria 10 GX 1150 и внешня память, обмены с которой происходят со скоростью ~60 GBytes/sec. Типичное энергопотребление - 150W, т.е. более чем вдвое экономнее, чем у хорошего GPGPU.
В данном акселераторе обрабатываются параллельно 16 кадров, над каждым из которых трудятся 64 параллельных свертывателя. Так что выделются одновремено 8 особенностей изображения в 8 точках. Таким образом всего вычисляются 1024 свертки 3×3 параллельно.
В результате, на обработку каждого кадра тратится 9 миллисекунд, а с учетом распараллеливания кадров - в среднем, 748 микросекунд.Т.е. это более чем в 3 раза быстрее,чем на крутом GPU К40.
AlexandrY
Цитата(Мур @ Jul 1 2016, 15:29) *
Заманчивый пример



Хм, такими темпами вы вечно будете делать свой инструмент. biggrin.gif
Чем учить то будете свою сеть?

Я вот за это время редактор по созданию обучающих последовательностей для 8-и канального генератора эффектов уже сделал.

Нажмите для просмотра прикрепленного файла
Make_Pic
Цитата(AlexandrY @ Jul 1 2016, 15:47) *
...
Я вот за это время редактор по созданию обучающих последовательностей для 8-и канального генератора эффектов уже сделал.


Ух ты... Интересно, можно поподробнее о вашей чудо машинке?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.