Pull to refresh

Comments 122

Поделитесь ссылкой на вдохновившее вас приложение из апп стора?
Спасиб.
Тут такое дело — я пользователь Андроида. И про новости Эппла узнаю из дайджестов, вроде этого:
А в аппсторе я не ориентируюсь, сори :)
Из ныне поддерживаемых нашёл только iWatermelon Deluxe. Melon Meter, о котором многие писали в 2011 году, уже отсутствует в аппсторе.
Мне кажется, будет велик процент ошибочных оценок людьми из-за их необъективности. На мой взгляд, арбузы по звуку хорошо определяются. Похлопывая по нему слушаем звук. Звонкое эхо — арбуз достиг кондиций. Если эхо вялое, ватное или переспел или недоспел. Налитые соком упругие клетки -хорошо пропускают звук, когда переспел или лежалый — клетки начинают или отделяться одна от другой «рыхлый» или терять воду и становиться вялыми. Проводимость звука падает. Может использовать механизм вибрации в телефоне? Прижимаешь телефон, программа делает несколько пингов вибратором и анализирует отклик. Заодно можно получить/учесть оценку размера арбуза.
Может использовать механизм вибрации в телефоне? Прижимаешь телефон, программа делает несколько пингов вибратором и анализирует отклик.

Вибраторы у разных моделей разные, сложно будет анализировать. Можно, как вариант испускать громкий эталонный звук, этакое УЗИ, но, боюсь, это будет и анализировать трудно, и в использовании будет не очень удобно.

Можно, как вариант испускать громкий эталонный звук, этакое УЗИ, но, боюсь, это будет и анализировать трудно, и в использовании будет не очень удобно.

Ну, на Windows Mobile была программа-сонар. Конечно, точность у нее ужасная, но как proof of concept она работает.


Так что вполне возможно, я думаю.

В качестве входных данных для нейросети можно использовать в т.ч. модель телефона.
доп.измерение(фича) повышает потребность в количестве входных данных, а их тут и так маловато.
Так три стука вместо одного это и есть…
Пробовал. Увы, на записи, сделанной необученным человеком слышен, в основном, дикий скрип микрофона по арбузу. Что до испускания звука — надо этот звук потом из записи убирать, что сложно — телефон не умеет «стрелять» импульсами и ловить эхо в реальном времени. Да и фильтры в нем делать…
С другой стороны, хорошая сеть должна (если будут образцы) сама поделить людей на категории по тому, как они стучат по арбузу. Вообще, я был потрясен, осознав, насколько сложно объяснить людям простые вещи, от «стучи костяшками, а не хлопай ладонью» и до «нажми кнопку и отпусти. Держать-то зачем?»

У вас не учтён кейс охлаждённого недоспелого арбуза — он звонкий как хз что, но со сладостью и прочими вкусовымиощущениями у него проблемы.

Если бы я знал, как его учесть… Впрочем, если кто-то покупает арбузы из холодильника — сам виноват.
Ну так спрашивайте, тёплый ли арбуз, который сейчас измеряется.

Покупал недели две назад в магните — были холодные (градусов так 15) и звонкие… они не были из холодильника, их, похоже, просто хранили в неотапливаемом помещении/очень долго везли/хранили в грузовике…
В общем сладости почти не было, с сочностью тоже было не идеально… в общем расстроился я с этого арбуза.

8Ж!!! Ужас. Я уже много лет не встречал несладких арбузов. В Литве. Правда, я выбираю согласно своим критериям «звонкого эха». Но похоже, они все равно все спелые, 21 век, однако. Кстати — у нас самые вкусные арбузы — из России. Венгерские, Украинские, Итальянские — сладкие, красивые… но чего-то в них не хватает. Вероятно поливают излишне. Очень хороший попался арбуз из Бразилии. Практически как Российский — на 5++.
Изображения в посте «умерли» только у меня одного?
Работают, только если открыть в новой вкладке, в посте только alt-текст показывается.

UPD: Chrome ругается, что изображения лежат на http, а страница загружена по https.
Понял. Буду исправлять. Странно, что у меня не ругается.
Отложил до релиза. Сервер тоже надо переводить на https, а программа передает данные по http. Следующая версия перейдет на https, и сайт — вместе с ней.
Ну так она же пишет аудио в файл, логично, что требует доступ
Тут есть один нюанс. Если программа пишет в свою внутреннюю директорию, доступ ей не нужен. Эти, видимо, пишут в общую.
Не вижу в статье ни одной сонограммы со звуками. Так чем же в итоге отличается звук у спелого арбуза и неспелого?

PS Ну и это, мода у всех программ лезть в интернет за каждой ерундой это идиотизм. Скоро калькулятор будет 2+2 post-запросом на сервер отправлять…
Отличается звуком :) Если бы я мог ткнуть пальцем, то нейросеть была бы не нужна.
Что до Интернета… Допустим, сети нужна сотря образцов для обучения. Я не железный — есть сто арбузов. Значит, надо просить пользователей присылать оценки. Значит — Интернет, куда же без него?
Эстетическое замечание — «How to test the Melon» переводится как «Как протестировать дыню». Советую написать «How to check your watermelon».
Да. Все время сбиваюсь. Поправлю в след. версии. Спасибо.
А почему еще никто не вспомнил трушного советского школьника из «Юного техника», который решал задачу без всех этих ваших аппликушечек, нейросетей и прочей хипстоты?
Письмо читателя
image
Я до сих пор собираю статистику по звуку, покупая арбузы. На работе уже смеются… Так вот, купил по звуку ПЛОХОЙ. То есть, специально выбрал, чтобы «тусклый» звук, а то в базе сплошь хорошие. Удельный вес — хороший. А арбуз оказался ТУХЛЫМ. И взвешивание тут не поможет.
Вот люди проводили тест-драйв этого метода школьника, и тоже нарвались на тухлый)
Надеюсь, метод в мобильном приложении работает лучше.
66.ru/news/freetime/214031
Пока что мобильное приложение работает не очень — мало данных. Его основная задача — собрать эти данные. В каждом следующем обновлении анализ будет точнее.
А сделайте обновление «на лету». То есть приложение просто скачивает обновлённую модель из Интернета и помещает в свою папку на устройстве. Так правильнее, мне кажется (на самом деле у меня просто gapps-ов нет на телефоне).
… и тогда пролетают те, кто хочет обновление с русским текстом :)
А арбуз оказался ТУХЛЫМ. И взвешивание тут не поможет.
А про это в «Науке и жизни» было, про программу для калькулятора:
Заголовок спойлера
image
И вообще-то эта программа эквивалентна бросанию арбуза в воду для проверки плавучести.
¯\_(ツ)_/¯

Погодите ка, а я с большой жо##й выбираю, а надо с маленькой что ли?

минусаторы гуглят «попка арбуза» и идут лесом.
Это если круглый арбуз определенного сорта. А если он вытянутый, как дыня — придется уже логарифмическую линейку приделывать. И, подозреваю, что к тем арбузам, которые без косточек или к желтым арбузам — нифига не подойдет тоже.

Несколько последних арбузов, что покупал имеют неправильную форму. Там уже и линейка не поможет.
Научить бы тогда по снимкам с камеры делать 3Д модель и по ней + вес высчитывать спелость :)

Сначала нужно создать нейросеть — на Питоне и Керасе, под Убунту. Можно — на эмуляторе Убунты. Можно — под Виндоуз, но потраченного дополнительно времени вам хватит, чтобы упомянутую Убунту изучить, и далее работать под ней.

Вы уж простите, но если у вас есть проблемы с поднятием Python, TF или Keras под виндой, то возможно проблема не в винде…
Если поднять питон и нужный стек под виндой сложнее, чем написать кучку приложений под нейросети, сервера, и мобильники — проблема точно в винде.

Очевидно, что этот комментарий означал: "На Винде нужный стек поднять так же легко, как на Убунте".
Мне жаль, что вы почему-то поняли это иначе.

У меня проблем нет :) Но если новичку предложить два пути на выбор, под Убунтой получится быстрее. Что я и написал.
Получится ровно с такой же скоростью.
На Анроид телефонах очень большой разброс по параметрам микрофона… Не уверен, что что-то можно из этого выжать. Разве что производить индивидуальную калибровку…
Иначе будет вопрос: «это микрофон дал глухой звук или арбуз»? Или глухой звук из-за материала корпуса телефона или его чехла.

Боюсь, если чехол закрывает микрофон, то юзеру об этом сразу скажут при первом звонке.

Мягкий чехол стучать об арбуз будет по-другому.
по инструкции стучать надо пальцем :)
UFO just landed and posted this here
Это проблема, но не очень серьёзная. Если мне пришлют запись на 8 килогерц (есть и такие андроиды) вместо 41.4, я это увижу, и в обучающую выборку не включу. А современные телефоны очень неплохо пишут звук — по крайней мере, те, что я тестировал.

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

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

Да, и пока игрался с постукиванием по стеклу планшета, она от 1.1 до 5.5 показывает рандомные цифири.
Насчет рандома — эта версия собирает данные. Анализ у нее слабый. Будет больше самплов — будет точность. Кастрюли она у меня, например, учится различать с пол-пинка :)

Что до перевода — в след. версии — то есть, вместе с апдейтом сети — будет русский.
Кстати, Гугл Плей утверждает, что 17% скачавших — из Саудовской Аравии. Надеюсь, до перевода не дойдет…
Ну что же, арбуз съеден, стуки отправлены, изучайте :)
Ну и опять же, страна не определяет язык, но юзер должен его определять.
Язык там пока только инглиш, вот и не определяется. Будет в ближайшем апдейте.
За арбуз — спасибо. Сэмплы драгоценны :)))
Но, возможно, машинное обучение для такой задачи и не нужно? :)

С современным развитием техники измерить размеры арбуза (а, возможно, даже вычислить его окружность) несложно. Остается взвесить, потом навести камеру на арбуз, нажать на кнопку и получить ответ:

Скрытый текст
image
А действительно, есть ведь ARKit/ARCore для измерений и даже дисплеи с определением силы нажатия для взвешивания (ну ладно, последнее спорно: неизвестен максимальный измеряемый вес без вреда для дисплея, это же арбузы как-никак). Но даже если взвешивать традиционными карманными весами, тот же ARKit 2.0 измерит габариты, приложение посчитает объём, останется только ввести массу.
Более того, вес можно сфотографировать и распознать ;)
Ну вот смотрите — пришел я в Пятерочку. Там стоит картонный ящик, перетянутый лентами — 1 кубометр арбузов. Надо нагнуться, достать, взвесить… И так 20 раз. То есть, приложение для штангистов. Стучать же можно in-place.
О как. В последний раз покупал арбузы на среднеазиатском базаре, где они лежат отдельно и их всё равно взвешивают — покупал не себе, сам не люблю. Так что с практикой приобретения в современных реалиях у меня всё плохо, да :)

Но тогда другой вопрос, если в ящике арбузы соприкасаются (и немного сжимаются при этом), не будет ли это влиять на звучание?
Вроде не влияет. По крайней мере, не сильно.

Этот метод рассчитан на идеальные сферические арбузы в вакууме. В реальной жизни арбузы формой не очень похожии на шар.

Ну что вы! С нейросетями и машинным обучением всё же становится лучше. А если ещё блокчейн каким-то образом к задаче приспособить…
Рассчитать в смарт контракте спелость арбуза будет стоить дороже, чем все арбузы мира. А так да, можно :)
конволюционная 2D сеть

Конволюции, это когда ночью снится яркий и красочный сон, в котором ты работаешь в Google DeepMind, изобретаешь сильный ИИ, достигаешь острия прогресса, просыпаешься и обнаруживаешь себя в постели с ноубуком, всём исписанным приложением по распознаванию спелости арбузов. А тип сети, о котором идёт речь — свёрточный.
Если честно, то я не понимаю за что заминусовали пост. «конволюционная 2D сеть» действительно очень странный термин. Первый раз вижу такой вариант перевода «Convolution» хотя уже несколько лет читаю статьи по DL
В качестве упражнения, я построил график звука и анализировал полученный битмап как картинку — с помощью 2d конволюционной сети. К моему удивлению, результат получился не хуже, чем при анализе «сырых одномерных» данных.


Это вы только как упражнение делали? А то в коде сети Conv1D. А в целом интересно весьма, достаточно простая сеть по объему (capacity). Сколько у вас датасет? Метрики можете написать? Видимо хорошо генерализовались данные сетью…
Завтра попробую выложить. Там нет ничего такого, просто как экстра усилие надо потом в Java приложении строить те же графики, и генерировать битмапы. То есть, лишний шаг в работе. А так, да, работает. Это же просто доп. преобразование данных :) Просто идея необычная.
Вот смотрите. Константы:
img_width, img_height = 100, 100
input_shape = (img_height, img_width, 1)

epochs = 50
batch_size = 16
validation_split=0.3	# 30% to validation

nNumOfOutputs = 2


Сама сеть:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))

model.add(Flatten())
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(nNumOfOutputs)) #1))
model.add(Activation('sigmoid'))


model.compile(loss='binary_crossentropy',
              optimizer='rmsprop',
              metrics=['accuracy'])


Где-то так.

Почему у вас сервер не взломают или не заддосят?

Прост так. Поиграться, посмотреть, что будет.
Вы анекдот про неуловимого Джо знаете?
Скорее продавцы плохих арбузов будут портить обучающую выборку: ставить высокие оценки плохим арбузам.
Вот кстати: а не продаться ли мне арбузной мафии? Делаю вай-фай анализатор, если данная точка в базе — арбузы показываю как хорошие, если нет — как плохие :)

Господа, а если замутить стартп с ультразвуковым сканером к телефону? Им можно что угодно же тестировать.

Был стартап к айфону, и вроде, даже, дошло до продаж. Как работал — не знаю, но красоты был неописуемой. Беленький…
Ультразвуковых сканеров несчётное множество. Зайдите в кабинет УЗИ — там увидите десятка полтора. Для каждой цели свой. И это только для исследования тела. Для УЗИ трещин в металле свои, для эхолотов свои, для воздушной среды свои. Какой конкретно вы собираетесь приделать к телефону и для какой цели?
Очевидно, что тот, который будет стоить копейку, а пользователю не нужны будут дополнительные знания. Спелость фруктов (по плотности), измерение толщины обшивки стен, поиск пустот в материалах, поиск проводки и кабель каналов, возможно — применения, которые не требуют особенной точности и могут быть реализованы простыми алгоритмами и датчиками. Может быть, простейший анализ качества строительной шпатлёвки или наливных полов (на предмет отслоения от подстилающей поверхности) — на первый взгляд реализуемо, но материалы очень неоднородные, и не факт, что это можно в общем случае решить непрофессиональным оборудованием. Трещины в металле (может быть простейшая диагностика сварных швов) и толщина краски/шпатлёвки, это в качестве бонуса если получится, т.к. там требования к датчикам достаточно суровые.
Да. Но я хотел универсальную сет, а Java — просто как возможное клиентское решение. Ведь попадись тяжелая задача — не на телефоне же ее обучать.
UFO just landed and posted this here
Вероятно, имелось в виду, что надо писать
if not os.path.exists(output_dir):
, вместо сравнения на False. Вот тут подробнее можно почитать
UFO just landed and posted this here
не делайте так, если в условии переменная, которая может принимать 0
А при чём тут 0? Здесь функция возвращает в точности логическое значение.
в этом случае нужно сравнивать с None явно
Ещё можно сказать, что надо сравнивать, используя "is None", а не "== None".
UFO just landed and posted this here
Желтое пятно на боку. Чем больше — тем слаще.

На самом деле, пятно вообще не показатель.

По личному опыту — лучше чем акустика и сухость хвостика. С удельной массой конечно не сравнится.

Величина пятна зависит только от того, как арбуз лег на почву. Цвет пятна тоже так себе показатель — у некоторых сортов оно насыщенного цвета, почти оранжевое даже на неспелом арбузе, а других имеет чуть желтоватый оттенок у переспевшего.
Могу точно сказать, т.к. выращиваю их в свободное время :)

Все так.
В попытке объяснить феномен рассуждал так: чем дольше арбуз лежит плоскостью на грунте — тем больше пятно, за недостатком солнечного света.

Сорт арбуза конечно вносит поправки, но сам не выращиваю (климат не тот), спорить не буду.

Так или иначе, арбузы на рынке пока успешно выбираю таким методом.

На самом деле, арбуз можно вырастить почти в любом климате. Я тоже раньше думал, что у меня климат не тот, а потом узнал про прививку и теперь выращиваю арбузы в открытом грунте по 10+кг. В этом году рекорд 14кг.

а можете поделиться ссылками — где про это (на ваш личный взгляд) лучше почитать\посмотреть?
Я начинал с дачного форума dacha.wcb.ru — и по прививке и по выбору сортов много инфы в разделе по бахчевым.
Здесь еще куча инфы (там и пара моих отчетов есть): vk.com/arbuzyatnya
По самому процессу прививки на youtube в поиске набираем «прививка арбуза».
Прививать можно на лагенарию или спец. подвои, их можно купить на Хупте, на Али (сейчас нет, обычно выкладывают их зимой-весной).
В прошлом году я под Уфой на грядке 14*3м собрал 2 центнера арбузов, в этом году еще не считал, но судя по количеству и весу, будет раза в 2-2.5 больше (правда и площадь посадки немного увеличилась).
Искнене надеюсь получить сэмплы со всех 2+ центнеров :)

У меня из коммерческих только продюсер и леди, а их почти доели уже. Остальные же сорта очень сильно отличаются от магазинных по фактуре и звуку. Желтокорые всегда с глухим звуком, т.к. корка мягкая, желтомясые всегда звонкие, а при созревании звук становится гулким. Про сортотипы чарльстон грей и шуга тоже отдельная история. Поэтому мои сэмплы врядли помогут вашим пользователям, т.к. такие сорта у нас все равно не купишь, или только за большие деньги типа желтомясиков. :(

То есть, по-хорошему, надо прикручивать анализ изображений… Спасибо за информацию. Я думал, все арбузы стареют одинаково.

Скорее всего хватит выбора фотки сортотипа при отправке образца.

Для пользователя это будет ад. Увы. Сортов много, да и в одном контейнере в магазине могут быть разные сорта…
А что в итоге подается на вход сети, все 5 секунд записи или выделяется только отрезок со стуком?
Интересно попробовать выделить только сигнал стука и разбить его на малые окна, длительностью в десятые доли секунды. Затем тренировать сеть только на этих малых окнах и усреднять итоговый результат по всему сигналу. Так из пары семплов малым сдвигом окна можно получить достаточно данных для тренировки сети и повысить итоговую точность.

Интересно, как пришли к такому размеру кернела в первом слое, 512. Ведь для 1D сигнала это по сути порядок FIR фильтра, т.е. тратится много вычислительных ресурсов, не принося особой пользы для классификации. 16-64 кажется более приемлилым диапазоном. Могу ошибаться, потому интересно откуда такая цифра.

P.S.
У вас в первом слое два раза применяется ReLU активация, сначала в Conv1D(..., activation='relu'),
а потом дополнительно model.add(Activation('relu', input_shape=(nSampleSize, 1)))
что в принципе никак не влияет на результат, но лишняя операция в графе)

Делал и так и так. Могу выложить код, вырезающие три стука, но он такой кривой, что неловко. Вроде, разницы особой нет — для 1д. Для 2д — есть, там надо резать.
Огроменный плюс разбивания — что можно первые два стука взять в обучающую выборку, а третий — в тестовую. То есть, данный стиль стука гарантированно учит сеть.
> У вас в первом слое два раза применяется ReLU активация
Упс. Что еще скажешь?
С тыквой я поступил проще. Тупо засунул в конусно-лучевой томограф. Очень рекомендую)
Продавцы на рынке охренеют. Плюсую.
Я в итоге ту тыкву есть не стал) Томограмма показала, что там очень мало мякоти и почти все внутренне пространство заполнено рыхлыми волокнами и семенами. Разрешение там до 0.2 мм, так, что все в подробностях видно) Хулиганство, конечно, но если томограф под боком есть — почему не воспользоваться?
Борюсь с ленью. Хотя, конечно, стоило бы.
Важный апдейт: вышла новая версия с улучшенным анализом. Спасибо всем, приславшим арбузы, и шлите, пожалуйста, еще!
Слушай, а в твоей программе есть ролик с эталонным простукиванием и звуком? Может улучшить однородность данных, если стучать будут по инструкции.
Теперь есть:
Звук решили не писать — важна «работа кисти».

Есть намного легче способ. Арбуз даже трогать не нужно. И иметь слух музыканта тоже. Просто смотрите на хвостик арбуза – если он высохший, то арбуз спелый и сладкий. Если хвостик завял но видно, что не совсем высохший, тем более если зеленый и свежий, то арбуз сорвали неспелым чтобы поспел во время транспортировки. Такой арбуз, даже если и красный, вкусным не будет. Если хвостика нет (специально удаляют чтобы не было видно), то арбуз не берем – нечего поддерживать плохие практики.

Sign up to leave a comment.

Articles