Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
mayton


Скорее всего авторы заложились на какую-то коробочную библиотеку. Тогда Java в данном
топике не имеет вообеще никакого значения и надо курить ОперСи-Ви или Тензор-Флоу.

Еще раз - основное условие не испольовать никакие сторонние библиотеки
Ограничение по коду обосновано,так как решение эталонное занимает 100 строк кода( учитывая что там наверно 30 строчек под иморт ) то в реальности логики не больше 50 строчек.
26 окт 20, 11:18    [22220612]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
mayton
Member

Откуда: loopback
Сообщений: 49768
Как будет угодно. Я не настаиваю.
26 окт 20, 11:27    [22220620]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
mayton,

там собственно на гитхабе лежит весь код,он явно больше 160 строк .
суть его такова что сначала вырезается старшинство и масть ,далее все это покрывается серым цветом везде ,где полутона
все это кладется в мапу и далее уже каким то образом сравнивается с картинками ( каким я так и не понял -там какие то сдвиги бинарные и тд)
26 окт 20, 11:41    [22220635]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
andreykaT
Member

Откуда: Finland
Сообщений: 3233
Ну решение будет дерьмо. И что значит сторонние либы нельзя юзать? Жава утил можно?
26 окт 20, 11:44    [22220640]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
Zzz79

это питон вроде? сложно для понимания .
Подскажите в чем суть ? как у вас там решается данная задача?
я так понимаю вы создаете две мапы - одна с вырезанными старшинствами,другая с мастями
а далее каким то образом пытаетесь это сравнить?
Вопрос в том как вырезать и как сравнить- ведь ряд состоит из 5 карт- в зависимости от положения элементы различаются и бывает на 10-12 пикселей плюс к этому имеют смещение относильно центра картинки.


Вы оба проекта смотрели?
Я писал на Kotlin, второй проект на Java.
Второй проект, откуда взял алгоритм, распознавания образов загуглил за минуту, причем он у меня вышел первой строкой в результате запроса.
Просто берите второй проект, там всё на Java.
Единственное для распознавания туза нужно изменить смещение.

<:o)

Насчет смещения пикселейю
У меня такого нет.
Одно исключение - туз.
Да там смещение другое.

А так сами границы карт, для моих выборок всегда одни и те же.
26 окт 20, 11:45    [22220641]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
Zzz79
mayton,

там собственно на гитхабе лежит весь код,он явно больше 160 строк .
суть его такова что сначала вырезается старшинство и масть ,далее все это покрывается серым цветом везде ,где полутона
все это кладется в мапу и далее уже каким то образом сравнивается с картинками ( каким я так и не понял -там какие то сдвиги бинарные и тд)


Такой большой а на слово верите.
Мало ли что кто-то говорит.
Пока не предоставил кода, всё это не более чем слова. ;-)
26 окт 20, 11:47    [22220645]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
mad_nazgul
Zzz79,

HR после отправки решения тестового задания ушла в туман.
Но может быть вам повезет.
<:o)

я думаю что они вкурсе за этот проект на гитхабе и там явно видно что человек обладает глубокой экспертизой в области всех этих картинок и тд

red = (int) (0.21 * red + 0.71 * green + 0.07 * blue);

вот там в проекте такого у него пол проекта
что это и откуда взяты эти цифры?
поэтому вас и завернули скорей всего,так как видимо этот проект им на дню по 100 раз приносят)
или там вот есть понятия как гистограмма - проверка на красность пикселей если я верно это понял? а зачем она если карта не красная ?слишком сложно для восприятия для человека,который никогда не работал с изображениями.
26 окт 20, 11:52    [22220651]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
graycode
Member

Откуда:
Сообщений: 461
mad_nazgul,

На сколько понял, сравниваете гистограммы по вертикали и по горизонтали?
26 окт 20, 11:56    [22220656]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
mad_nazgul


Вы оба проекта смотрели?
Я писал на Kotlin, второй проект на Java.
Второй проект, откуда взял алгоритм, распознавания образов загуглил за минуту, причем он у меня вышел первой строкой в результате запроса.
Просто берите второй проект, там всё на Java.
Единственное для распознавания туза нужно изменить смещение.

<:o)

Насчет смещения пикселейю
У меня такого нет.
Одно исключение - туз.
Да там смещение другое.

А так сами границы карт, для моих выборок всегда одни и те же.

Да открыл второй проект ,на джава,но там непонятно как все это работает- тоесть теоретически я не смогу даже обьяснить что там
непонятно как происходит сравнение,как он подготовил масти и старшинства,какие то сдвиги ,бинаризация- я думаю на том конце провода сразу поймут что задание стянуто с интернета ,который сам был стянут неизвестно откуда

там есть такая строчка кода

int[] hist = IntStream.range(0, 256).map(i->0).toArray();

вот за это просто можно сразу было уволить,несмотря на то что человек "якобы понимает что такое гистограмы и сдвиги" -просто сразу видно ,что код не его
26 окт 20, 12:06    [22220674]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
graycode
mad_nazgul,

На сколько понял, сравниваете гистограммы по вертикали и по горизонтали?

посмотри оригинал кода на гитхабе - я честно пока не очень понял механизма что он там делает
26 окт 20, 12:07    [22220678]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
graycode
Member

Откуда:
Сообщений: 461
Zzz79,

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

Но я думаю что ожидается все таки более серьезный алгоритм, например какой нибудь из презентации ссылку на которую кидал выше.
26 окт 20, 12:15    [22220687]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
graycode
Zzz79,

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

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

так я понимаю что можно пройтись по вертикальной линии и это даст нам понимание что за карта-но есть одно но- внутрянка карт смещается взависимости от позиции в ряду карт- всего 5 карт может быть в центре и например на первой позиции туз бубей и на последней это две сильно разные по пикселям карты - где провети вертикальный верктор - вот в чем вопрос ,тоже касается и горизонтали -были бы карты одинаковые вопросов бы не возникало
26 окт 20, 12:26    [22220700]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
mad_nazgul,ты кстати мог и по времени не пройти - все таки слишком много в вашей версии манипуляций с пикселями + чтение из файловой системы - скорей всего не уложился в секунду на карту
26 окт 20, 12:28    [22220702]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
mad_nazgul


Насчет смещения пикселейю
У меня такого нет.


вот пост 22220188
две 6ки- размер картинок одинаков- но разное количество пикселей по краям-соотвественно можно было бы просто сделать матрицу контрольных точек и на 100% определять что за карта- но изза смещения это невозможно
26 окт 20, 12:31    [22220704]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
mayton
Member

Откуда: loopback
Сообщений: 49768
Можно просто сделать downscale исходного изображения в 2х раза по двум осям и объем расчетов уменьшается
в 4 раза. Игроделы эту технику используют под названием mip-mapping, super-texture e.t.c.
26 окт 20, 12:42    [22220710]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
graycode
Member

Откуда:
Сообщений: 461
Zzz79
так я понимаю что можно пройтись по вертикальной линии и это даст...

Ты понимаешь что такое гистограмма?

Вот твои карты
22220188

Вырежи шестерку и посчитай гистограмму по строкам,
третья строка сверху, сумма пикселей 9, на другой картинке тоже 9, разница 0,
четвертая строка сверху 12 и на второй картинке 11, разница 1*1 = 1,
...
девятая строка сверху, 5, 5, разница 0*0 = 0
...

А теперь возьми 9-ку, в девятой строке у тебя будет 10 пикселей в сумме и разница с шестеркой (5-10)*(5-10) = 25,
т.е. если ты посчитаешь среднеквадратичное отклонение между гистограммами, то разные фигуры и ошибки в пикселях
из за положения карт дадут разные на порядок значения.
26 окт 20, 13:10    [22220727]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
graycode
Member

Откуда:
Сообщений: 461
Zzz79,

Но я бы эту задачу решал следующим образом, я бы взял один из алгоритмов 22220356, вырезал эталоны старшинств и мастей, далее из карты вырезал бы области содержащие старшинство и масть и выполнял поиск эталонов в этих областях, размеры картинок у тебя очень маленькие, поэтому о производительности тут даже речь вести странно, более того, можно сначала производить поиск открытой карты на столе, после чего определять что это за карта. И думаю именно такого плана решение ожидают те кто дал это задание.
26 окт 20, 13:23    [22220738]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
АСУ ТПшник
Member

Откуда:
Сообщений: 1339
Пиксели считай, не парься.
26 окт 20, 13:28    [22220741]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
graycode
mad_nazgul,

На сколько понял, сравниваете гистограммы по вертикали и по горизонтали?


Ну это не я.
Это алгоритм в исходном проекте. :-)
И да. Там идет сравнение гистограмм.
В начале все сводиться к ч/б, картинке, а потом уже идет сравнение.
26 окт 20, 13:55    [22220768]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
Zzz79
mad_nazgul,ты кстати мог и по времени не пройти - все таки слишком много в вашей версии манипуляций с пикселями + чтение из файловой системы - скорей всего не уложился в секунду на карту


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

В вашем случае, похоже его придется написать.

ИМХО, уверен, что в 1 секунду не уложитесь. :-)
26 окт 20, 14:01    [22220777]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
graycode
Member

Откуда:
Сообщений: 461
mad_nazgul,

Вакансия связана с распознаванием изображений?
26 окт 20, 14:28    [22220800]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
graycode
mad_nazgul,

Вакансия связана с распознаванием изображений?

https://brainshells.io/
26 окт 20, 14:42    [22220819]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
graycode
Member

Откуда:
Сообщений: 461
Zzz79,

Graduate of mathematics or physics faculty
You love and know how to program
Programming for you is not a goal, but the way of accomplishing tasks
The programming language does not play a decisive role for you
Java
You know and love mathematics, especially probability theory and math statistics
You have experience in machine learning and artificial intelligence
You are able to read and understand a scientific article

))

Artificial intelligence
We work with professional players and create AI in games with incomplete information.

))

Сообщение было отредактировано: 26 окт 20, 14:54
26 окт 20, 14:57    [22220830]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
graycode,

я думаю можно сделать еще проще
0.берем эталоны и 5-6 линиям горизонтальным делаем проссчет пикселей не белых
1.берем карту - обрезаем ее по краям немного чтобы остался только белый фон и элементы внутри него
2.берем теже линии что и в эталоне и высчитываем - далее сравниваем

чем это лучше - не нужно менять цвет ,не нужно проходиться по всем пикселям карты ,мы минуем рассинхрон положения по картам - так как карты имеют рассинхнор только по оси X а по оси Y все карты слава богу не прыгают)

что нам это даст
1.скорость- очень быстро - пройтись по 5 линиям в двух участках карты
2.минимум кода
3.очень точный результат

соотвественно например масть можно иденцифицировать вообще лишь парой линий

сейчас буду пробовать - по сути там наверно будет даже меньше 100 строк кода
26 окт 20, 15:00    [22220833]     Ответить | Цитировать Сообщить модератору
 Re: Распознать элементы на картинке  [new]
graycode
Member

Откуда:
Сообщений: 461
Zzz79,

Не, не пойдет, там и среднеквадратичное отклонение по гистограммам не прокатит (эффективного кода думаю строк 50 все остальное обвязка), от соискателя ждут нормальное владение математикой и алгоритмами, ясельный уровень на этой вакансии явно не интересен.
26 окт 20, 15:05    [22220835]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
Все форумы / Java Ответить