Вопросы по реализации обработчика изображения.

Тема в разделе "Флудилка", создана пользователем BeTepok, 1 июн 2016.

  1. BeTepok

    BeTepok Нуб

    Здравствуйте, решил,так сказать,окунуться в мир электронных устройств. Задумал смоделировать устройство, состоящее из Arduino nano, ЖКИ - модуля 16x2 или 16х4, внешней памяти,клавиатуры 4х4 и,возможно,Ethernet шилда.
    Принцип работы таков:на входе будет SD-карта,содержащая данные,симулирующие оцифрованное изображение. Данные с SD-карты можно записать во внешнюю память или сравнить с уже имеющимися "изображениями" во внешней памяти. Если изображения в sd-карте и внешней памяти совпали - вывести соответствующее сообщение на экран,если не совпали - вывести соответствующее сообщение на экран.
    Функции записи или сравнения выбираются нажатием кнопок на клавиатуре. Вдобавок ко всему,функция записи должна быть доступна только при вводе определенного кода-пароля на клавиатуре.

    Я в данной сфере человек новый,поэтому прошу вас помочь с алгоритмом сравнения и реализацией.
    -Думал взять 24lc515 или w27c512 в качестве внешней памяти EEPROM и подключить по SPI. Но из-за незнания теории, не в курсе,хватит ли памяти для хранения нескольких сотен изображений. Если нет, то как выйти из данного положения.
    -Не могли бы вы подсказать как реализовать функцию записи и сравнения данных с SD-карты с данными во внешней памяти с последующим выводом на ЖКИ-модуль. А выбор записи или сравнения осуществить вводом кода на клавиатуре.
    Заранее извиняюсь,если кажусь безграмотным и задающим очевидные и глупые вопросы.
     
  2. ZAZ-965

    ZAZ-965 Гуру

    По-моему, эта задача больше подходит для Raspberry.
     
  3. BeTepok

    BeTepok Нуб

    Если вас не затруднит,можете объяснить почему?Как я уже писал выше,я в этой сфере человек новый,много не знаю. Появилась идея,смотрел реализации отдельных частей, копал в одном направлении.
     
  4. ZAZ-965

    ZAZ-965 Гуру

    В каком формате будут храниться изображения? (jpg. gif, png,pcx,bmp)
    Какой планируется размер изображения, цвет\градации серого, битность?

    Первая i2c память, вторая с параллельным доступом, к тому же однократно программируемая.
    Объясните, что за франкенштейна вы пытаетесь сшить?
     
  5. BeTepok

    BeTepok Нуб

    Действительно Франкенштейн получается. :D

    Изначальная цель - сделать биометрический сканер рисунка вен ладони. По сути ИК-LED облучает ладонь,а отраженный свет попадает на ИК-камеру,которая оцифровывает изображение. На этом этапе я решил опустить ту часть,которая формирует изображение,поэтому решил представить оцифрованное изображение как информацию на SD-карте. Внешняя память же играет роль базы данных,которая хранит "изображения", которые представляются как n-число кодов.
    Грубо говоря,я разбил всю задачу на несколько частей. На данный момент меня интересует именно программная реализация. Собираюсь писать код в среде Ардуины,компилировать и отправлять в Протеус, чтобы посмотреть как это будет работать. Правда я не имею представления,какого объема должна быть внешняя память,чтобы хранить не менее нескольких сотен "изображений", а также сколько памяти будет занимать хотя бы 1 "изображение". Вопрос о качестве изображения пока не стоит, сейчас главное,чтобы это все заработало. Уже затем займусь вопросами качества. ЖКИ-модуль нужен просто для сообщения о совпадении или несовпадении "изображения" пользователя с другими "изображениями" в базе данных.
     
  6. BeTepok

    BeTepok Нуб

    Только сейчас понял,насколько глупо выбрал внешнюю память. Если представить изображение на входе как изображение jpg с разрешением 320х240 и глубиной в 24 бита,то занимать 1 такое изображение будет порядка 6 кБайт. А значит для хранения нескольких сотен таких изображений мне никакой eeprom не хватит. Проще взять SD-карту в качестве внешней памяти. Как думаете?
     
    Последнее редактирование: 1 июн 2016
  7. ZAZ-965

    ZAZ-965 Гуру

    Jpg формат сложный, со сжатием и потерями. Навскидку, можно начать с 256х256 формат bmp (1бит ч/б - вам ведь нужен рисунок вен, а не поиск тромбов и варикоза). Алгоритм сравнения придется писать свой, т.к. на нейросеть не хватит ресурсов. Поэтому вы будете бороться с ограничениями выбранной платформы, а не решать поставленную задачу.
     
  8. BeTepok

    BeTepok Нуб

    Хм. Не подскажите как приблизительно должен выглядеть алгоритм сравнения? Быть может,похожие проекты Ардуино,где происходит сравнение относительно больших по объему данных внешней памяти с данными поступающими на микроконтроллер. Или где следует копать. Конкретный литературный источник был бы кстати.Я,повторюсь,в этом зеленый как огурец.
    Алгоритм представляет собой серьезную проблему?Просто вы описали это как довольно трудоемкую задачу.
     
  9. ZAZ-965

    ZAZ-965 Гуру

    При сравнении двух изображений недостаточно делать попиксельное сравнение. Изображение может быть повернуто, отмасштабировано и тд. Поэтому - нейросеть, нечеткое сравнение матриц, какая-то своя хэш-свертка (с мат обоснованием) и т.п.
     
  10. ZAZ-965

    ZAZ-965 Гуру

    Знал бы, работал бы в Google :)
     
  11. BeTepok

    BeTepok Нуб

    Но если сделать следующее допущение:человек кладет руку на небольшую подставку,закрепленную на корпусе вокруг сканера,тогда вопросы о различном масштабе или положении отпадают,поскольку все пользователи будут иметь изображения в одном и том же положении. Следовательно можно сказать,что вопрос будет стоять только в попиксельном сравнении?Или я не прав?